" /> UrlBlogGrey: September 2006 Archives

« August 2006 | Main | October 2006 »

September 27, 2006

NoteBook for Mac OS X

The human mind is extremely capable of processing and acting on information in real-time; however, it's not so good at maintaining a record of information for arbitrary lengths of time. Or, at least that's how my mind works. So, I rely on tools - digital and analog - to get by in this crazy world. One tool that I've become come to rely on at work is NoteBook 2.1 for Mac OS X.

NoteBook
NoteBook works just like the $2 Mead notebooks I used in school, except that it's intended to organize and collect digital information. Most people find themselves working with a mixture of digital information (e-mails, attachments, URLs for webpages, etc.) and analog information (post-it's, T.P.S. reports, etc.) Managing information across the two mediums can be a real pain. I don't know if we'll ever see a product that handles both successfully, but NoteBook does a wonderful job of taking care of digital half.

In my job, I often have a running list of new features I'm working on for the Documentum product, bug-fixes, and customer cases. Prior to using NoteBook, I created folders on my computer to hold attachments and random data associated with my current task. I also created a physical manila file-folder to hold the notes, printed e-mails, and research materials I collected. Correlating the two was difficult, and neither could be searched effectively.

NoteBook allows me to easily aggregate information into pages that resemble pages from a college-ruled notebook. Paste information from an e-mail, drag a URL from Firefox, or drag a ZIP file sent by a colleague - NoteBook ties it all together and maintains a hidden database of all the cruft that you collect in your notebook, just like iTunes takes care of the details of storing MP3 and AAC files without the user's knowledge. This makes is easier to get back to collecting and annotating your information.

I tried the 30-day demo of NoteBook and enjoyed it so much that I bought a copy within a week. I bought an individual license which cost $50. The license is enforced by NoteBook during program initialization by sending a multicast DNS query on the LAN; any other copies of NoteBook running in the LAN respond to the query, which allows NoteBook to determine if the license terms are in question. It's a pretty clever way to enforce the program's license. I don't usually need to run NoteBook on both of my Macs at the same time, so this doesn't create much concern.

Overall, NoteBook is an excellent tool that makes managing information and easy and efficient. I highly recommend at least trying the demo to see if it works for you!

September 24, 2006

Housing Market in the San Francisco Bay Area

Natalie and I have been visiting open houses for the last two months with the goal of buying a home in the San Francisco East Bay in Fall 2007. Our experiences have shown that the housing market is saturated with properties whose owners are trying to capitalize before the bubble bursts. In my opinion, the primary factors contributing to a dramatic drop in home prices and increased inventory are high consumer debt, fears of rising interest rates, and the climax of the housing market after 5 years of irrational exuberance.

The California real estate market has long been an expensive investment option. Most homeowners will cite "inflation hedge" and "pride of ownership" as being reasons for owning property. Unfortunately, neither of these have been true for the last couple of years in the Bay Area. Inflation was hardly a concern in 2000 when the Fed began lowering the prime lending rate; however, temptation to borrow has driven property owners to perform expenseive rennovations and treat their homes like ATMs with the aid of home-equity loans. Pride of ownership is just that, but with so little disposable income remaining available after paying bills, one's pride is severely weakened.

Reliance on home-equity loans might be explained by the fact that the U.S. has the lowest domestic savings rate of any industrialized country in the world. Germany claims a strong domestic savings rate of 10.6%. The domestic savings rate in the U.S. is a mere -0.5%. Once an individual, company, or nation has a net-worth in the red, their ability to borrow is severely diminished. How much longer will it be until companies are deemed a credit risk simply because they reside in the U.S.?

Rumours of people making small fortunes in the real estate market have lured many people with inadequate incomes to invest in a market that has been grossly over-valued. Many of these people resorted to the more affordable Adjustable Rate Mortgages (ARMs) which may be adjusted at higher interest levels in a couple years. Unless their incomes rise enough to accomodate higher mortgage payments driven by higher interest rates, many people may need to foreclose on the properties or resort to renting. Rental rates have been dispproprionately cheaper than mortgages over the last couple years. Our rent is roughly half what a comparable mortgage might cost.

I am very grateful for our ability to purchase a home in the near future; however, my confidence in the market is low. The Federal Reserve is left with a complex dillema: raise interest rates to thwart inflation at the risk of killing the real estate market, or keep interest rates low to foster economic development but with a higher rate of inflation. Either way, I think that much of California and the country are in store for some hard times.

Information elsewhere on the web hints at this outcome. However, I'm a pessimist, so it's natural for me to arrive at such a dire conclusion :)

September 1, 2006

Tomcat Support for the AJP Communication Protocol

I've been working on a case where a customer is trying to deploy our product in a fairly common server configuration that relies on the Apache web server to accept HTTP requests, and one or more Tomcat server instances on the back-end to process those requests. There are generally two options for choosing how the Tomcat and Apache servers communicate:


  • HTTP Reverse-Proxy - by far, the simplest, though the least efficient

  • AJP/13 - a binary protocol for handled by connectors on the Apache (mod_jk) and Tomcat (Coyote AJP connector) servers

So, the customer is trying to use AJP/13 for communication between the two. Configuring the two systems is simple; however, AJP is not very well-suited for real-time communications. The Documentum component I work on, UCF, establishes a communications channel between client and server and requires that the server be able to transmit pieces of an HTTP response over an extended period of time. The AJP connector included with Tomcat buffers HTTP responses until a sufficiently large (~8 kilobytes) amount of data is accumulated or the Servlet is finished, at which point the connector flushes the buffer to a socket connection between Apache and Tomcat. In our case, the server should transmit the small "heartbeat" messages to the client in the HTTP response instead of buffering them. While the messages are buffered in Tomcat, the client thinks that the server is dead.

I've arrived at the conclusion that Tomcat's AJP connector does not work well for real-time applications that have the requirement of being able to send small chunks of an HTTP response to a client. This might not be the case with other application servers, though I was able to verify this behavior in the Tomcat application server because the source code is made available to the public. I haven't seen any evidence that the AJP protocol does not support the transmittal of partial HTTP responses. Rather, it's just Tomcat's connector implementation that imposes this limitation.

I'm left with the option of using Apache as a simple reverse-proxy with the mod_proxy connector module. This problem would not exist if the Tomcat AJP connector provided a configuration parameter to indicate that responses should not be buffered before being flushed to the socket.