Archive for the ‘Uncategorized’ Category

Upcoming Downtime and the Next New Thing

July 22, 2007

My big contract wound down last week, and while I have some small projects going on, it may be a while before the next big one comes along. So in addition to blogging more (not that I expect anyone to really be reading this, but writing is a great communication exercise regardless), I’m thinking about what new technologies to focus on with my sudden free time (when I’m not oogling over my new toy, that is).

RIA (rich internet applications, think Flash and Ajax) are the logical choice. I recently attended a good presentation on OpenLaszlo, and it’s compelling but I have concerns about its competitive viability now that Flex has been open-sourced. Flash/Flex are good candidates, but last week I attended another good presentation on TIBCO General Interface. Basically, the entire UI runs in the browser, as JavaScript, and invokes “business-oriented” web services to exchange data. There’s no “web server”, per se, in the picture. The whole MVC engine is in the brower. This is Ajax taken to the extreme, and something I’d like to explore. I’m not certain that I’m interested in the TIBCO GI framework itself (will be deciding this following some research over the next few days) as much as the overall pattern. I don’t see why this wouldn’t work with Flash instead of HTML/Ajax, and that might open up some more interesting multimedia capabilities.

Another thing I’m doing is catching up on academic research, which is something I was pretty heavily involved with back in the day.  I rejoined the ACM SIGGRAPH and SIGCHI to hopefully get inspired and innovate some GUI widgetry.

Asinine security questions at NetBank

May 17, 2007

Who is your favorite celebrity?

That’s a sample of about 15 stupid security questions that NetBank forces you to answer, about three of which I have any hope of coming up with an answer for much less remembering that answer later (others like favorite candy, first musical instrument played, etc.). Whenever you attempt to log in without a cookie set (which is virtually always for me since I clear my cookies regularly), they ask one of these at random. Miss more than a couple and your account is locked until you call and talk to a human. After about 10 years (I think I was one of their first customers), I’m moving to Bank of America, which is much less annoying.

Mozy Doesn’t Support Resource Forks

April 29, 2007

Last week Mozy released a beta version for the Mac. I tested it using the metadata test file, located here, and unfortunately it did not preserve the resource fork. The best option for network backup continues to be JungleDisk, which does preserve the resource fork.  This is a bummer because Mozy is pretty slick. I think it’s rare for apps to still use the resource fork, but one which does is Quicken (which I found out the hard way).

Address Book Ate My Data

February 21, 2007

Today all my contacts disappeared from my Mac Address Book for no apparent reason.  I was adding a contact from Audium.  Both Audium and Address Book locked up.  I killed them off, and Address Book still wouldn’t restart.  I logged out then back in, and Address Book started up, but with the default set of contacts.  The .previous data file in Library/Application Support/Address Book didn’t have them either.  Gee, thanks.  This never happened to me under Windows.

I don’t know if the fault is with Address Book, Audium, or SyncServices (whatever that is), but it’s a pretty crappy experience.

Taking the Plunge

February 3, 2007

Recently I started my own company. It’s something I’ve always wanted to do and I finally found the right niche. I intend to write about the process here. To date, roughly in this order, I’ve:

  • Bought a couple of Nolo books.
  • Bought a new MacBook and assorted accessories (you’re right, this was all pretty much an excuse to get the new toy :-) ).
  • Begun researching group health insurance plans.
  • Hired an attorney (friends have done it themselves using various online services, but a close friend who’s an attorney (not the one I hired) talked me into it to make sure everything’s done right; plus I had a ton of questions that I wanted to discuss with an individual). He performed many of the subsequent filing tasks below.
  • Filed Articles of Incorporation with the Secretary of State. I decided to go with an S-corporation for liability protection and tax advantages. It was a tough choice versus an LLC, which is simpler to administer, but the self-employment tax advantage and fact that I can revoke the S-corporation election and have a regular C-corporation if I ever need to bring in investors were the deciding factors.
  • Landed my first client.
  • Quit my day job.
  • Filed assorted other corporate and tax forms with the SS and IRS. I’ll elaborate here later if I get motivated.
  • Obtained a FEIN.
  • Opened a bank account.
  • Obtained a city business license.
  • Hired an accountant (more on this later).
  • Bought QuickBooks Pro.

Whew!

SSO for Rails

January 1, 2007

I’ll soon be hosting a few Rails apps I’ve built on my Slicehost server and making them available for public use. I need a single sign on system for shared authentication and user identity, and this looks like a promising solution.

New MacBook

December 15, 2006

I finally broke down and ordered a new MacBook Core 2 Duo for general home use and on a significant new personal project I’m working on.  It’s a sweet piece of hardware, and I really miss OS X after being forced to use Windows at work for the past year.  Getting it set up with all my tools and such is a bit of a drag.  I installed a Subversion server on my Slicehost system and am using that to sync files between work and home and for general backup and version control.  Next up: getting my Ruby on Rails environment going, and installing Jungle Disk on said Slicehost system for offsite backups.

Why Use Hibernate APIs Instead of JPA?

November 17, 2006

Java Community News – Steve Ebersole on Hibernate 3.2 is an interview with one of the two leads for Hibernate 3.2 discussing, among other things, why one might want to use the proprietary Hibernate APIs directly instead of the standard JPA API that Hibernate implements. Notably:

  • Hibernate defines methods to allow the developer to manage the size of the persistence context.
  • Query-by-Criteria/Query-by-Example

There are a few more esoteric features in the Hibernate API, but for now I’m sticking with JPA. Outside of academic interest I’ve never seen much need for query-by-example. The ability to manage the size of a persistence context could be important, but for web-based applications which usually have a transaction per request I don’t think it will be necessary.

Object References When Defining equals() and Friends

November 16, 2006

When defining equals(), hashCode(), toString(), and compareTo() for a model object, you can either include references to objects you own (are composed of) or those that own you, but not both (else you’ll have an infinite loop on your hands).

For example, a Portfolio is composed of one or more Accounts. Either Portfolio.equals() can include the Accounts in its calculation (e.g., through Jakarta Commons Lang’s EqualsBuilder, or Account.equals() can include the Portfolio that it’s a part of, but not both. One could use neither, but I think this leaves out important information.

There’s a conceptual modeling argument to be made for including references with composition (i.e., putting the reference in Portfolio.equals(), but the relationship is not usually modeled this way in the database, and I’d prefer to keep things simple and follow the data structure. In other words:

public class Account ... {
...
public boolean equals(Object object) {
        if (this == object) {
            return true;
        }
        if (object instanceof Account == false) {
            return false;
        }
        Account rhs = (Account) object;
        return new EqualsBuilder().append(this.id, rhs.id).append(this.name,
                rhs.name).append(this.portfolio, rhs.portfolio).isEquals();
    }
}

Slicehost

October 29, 2006

I’m trying out a new Xen-based VPS hosting provider, Slicehost.  So far it looks pretty cool – for $20/month you get a 256MB, 10GB dedicated Linux instance with dedicated IP address that you can do with as you please (i.e., you get a root account).  The alternative was buying a new Dell or Mac mini system and running it from home over my cable modem and dyndns, but I got sick of hardware care and feeding long ago.