Monday, August 31, 2009
This blog has moved to blog.joshng.com
I've decided to host my blog at my own domain: http://blog.joshng.com. Click on over to see more recent posts on software architecture, process, and whatever!
Thursday, January 08, 2009
Quick Mail.app enhancement: full conversation threads
For most of my email needs, I use Apple Mail.app on my Macbook Pro as an IMAP client for gmail. For the most part, I find that having a standalone, native mail app has clear advantages over a working in a tab in a browser. Also, IMAP is particularly useful for me because I have several gmail accounts, both for personal use and for various businesses. With Mail.app, I can choose to see all of my messages in one rolled-up inbox, or dig into specific mailboxes as needed. Finally, with Mac OS Leopard, Mail.app now replies to each email using the account associated with my recipient address in that email, thereby eliminating my biggest gripe with Mail.app in the past.
However, I've been a bit frustrated with one aspect of Mail.app lately: when I organize my mailbox by "Thread" (highly recommended! View --> Organize by Thread), my own replies aren't included in the threads. So, if I want to review how I replied to something in my Inbox, I have to click on the little arrow-button in the header of the message to see my reply -- which then opens in a clumsy new window. Other people's replies appear inline, but my replies are somehow *special*, so I have to go elsewhere to see them. This sucks. The web-based gmail application does a great job with this, but Mail.app really screws it up.
I just created a new Smart Mailbox (Mailbox --> New Smart Mailbox), called it "Threads," and configured it to include all messages that are either in my "Inbox" or "Sent" mailboxes.
Voila! Now, when I view that mailbox by Thread, my replies appear inline with the other messages in their respective threads.
Ok, it's not exactly identical to the way that gmail does it, and it's not a perfect solution -- these threads won't include items that I've deleted or moved out of my inbox, and the mailbox also contains independent messages that I've sent that weren't part of a thread... But these are small problems, and I can always switch to another view if I want. Better!
Nice, huh?
However, I've been a bit frustrated with one aspect of Mail.app lately: when I organize my mailbox by "Thread" (highly recommended! View --> Organize by Thread), my own replies aren't included in the threads. So, if I want to review how I replied to something in my Inbox, I have to click on the little arrow-button in the header of the message to see my reply -- which then opens in a clumsy new window. Other people's replies appear inline, but my replies are somehow *special*, so I have to go elsewhere to see them. This sucks. The web-based gmail application does a great job with this, but Mail.app really screws it up.
Happily, yesterday, I figured out a great solution: Smart Mailboxes.
I just created a new Smart Mailbox (Mailbox --> New Smart Mailbox), called it "Threads," and configured it to include all messages that are either in my "Inbox" or "Sent" mailboxes.
Voila! Now, when I view that mailbox by Thread, my replies appear inline with the other messages in their respective threads.
Ok, it's not exactly identical to the way that gmail does it, and it's not a perfect solution -- these threads won't include items that I've deleted or moved out of my inbox, and the mailbox also contains independent messages that I've sent that weren't part of a thread... But these are small problems, and I can always switch to another view if I want. Better!
Nice, huh?
Thursday, October 30, 2008
Programming is Art, and Code is the Medium
This post has been moved here: http://blog.joshng.com/2008/10/programming-is-an-art-so-teach-it-like-one/
Wednesday, October 03, 2007
More evidence that rails is fubared
Yes, rails has some nice features and cute tricks for building common functionality. However, the more time I spend working with it, the more I get the sense that many critical aspects of the library -- including rendering, logging, benchmarking, ORM -- are poorly constructed, difficult/confusing/impossible to configure ... and generally just fundamentally FUBARed.
Here's an example. I wanted to add some diagnostics to my app, but only if we're running with a certain log-level enabled. In Java, with commons.logging, I'd do this by checking 'if (LOGGER.isDebugEnabled()). "Ok," I figure, "rails has a reasonably full-featured logging infrastructure, there must be some way to do this..." So I google for 'rails logging configuration' and arrive at this page from the official Rails wiki:
http://wiki.rubyonrails.org/rails/pages/HowtoConfigureLogging/versions/62
Lo and behold, this "helpful" page is just SMEARED with markup from angry developers, complaining about how the rails-modified logger doesn't work as documented, as intended, or as they expect that it should.
More and more, my impression of rails is this: it's fine if you just want to throw together a small-scale website with attractive AJAX features. But if you intend to build an app that needs to be computationally intensive, or scalable, or support complex data-structures, trying to build it in rails is going to hurt more than it helps. So far, my experience has been best with SpringFramework MVC and a whole bunch of jakarta-commons support.
Here's an example. I wanted to add some diagnostics to my app, but only if we're running with a certain log-level enabled. In Java, with commons.logging, I'd do this by checking 'if (LOGGER.isDebugEnabled()). "Ok," I figure, "rails has a reasonably full-featured logging infrastructure, there must be some way to do this..." So I google for 'rails logging configuration' and arrive at this page from the official Rails wiki:
http://wiki.rubyonrails.org
Lo and behold, this "helpful" page is just SMEARED with markup from angry developers, complaining about how the rails-modified logger doesn't work as documented, as intended, or as they expect that it should.
More and more, my impression of rails is this: it's fine if you just want to throw together a small-scale website with attractive AJAX features. But if you intend to build an app that needs to be computationally intensive, or scalable, or support complex data-structures, trying to build it in rails is going to hurt more than it helps. So far, my experience has been best with SpringFramework MVC and a whole bunch of jakarta-commons support.
Monday, October 01, 2007
GeekSecrets?
Here we go. During the day, I'm a Software Engineer/Architect with substantial.com, a small development consulting firm. Recently, I've been the lead developer for yourstreet.com, the map-driven local news and discussions web-app.
I've been doing this stuff for 10 years, and I've solved some problems along the way. So I figure I might know some stuff -- "secrets?" -- that other geeks would like to hear. Or, I might have some questions that we might ponder together.
If I can find time, I might even share some of that stuff here on GeekSecrets.
I've been doing this stuff for 10 years, and I've solved some problems along the way. So I figure I might know some stuff -- "secrets?" -- that other geeks would like to hear. Or, I might have some questions that we might ponder together.
If I can find time, I might even share some of that stuff here on GeekSecrets.
Subscribe to:
Posts (Atom)