Sleep and the art of staying awake

| | Comments (0) | TrackBacks (0)
It has been far too long since my last post, so... here's one now.  I recently had a new baby boy.  That has  been really cool, but my 2 year old daughter has been more difficult, at least when it comes to sleeping.

Sleep is an interesting thing.  For some people it is an absolute necessity for basic functioning from day to day.  For others it is just a nice-to-have optional sort of thing.  However, when you go for long periods of little-to-no sleep, anyone will feel the effects.

I'm trying my best to keep my lack of sleep from affecting my day to day behavior and general happiness, but it's hard.  One of the main things that helps is good food and a good shower.
So this will probably be a first in a series of posts related to software design patterns and all my inner strugglings regarding what is hype and what is real.  There are probably lot of other people out there that may have similar strugglings, and more than likely there are some out there that are blissfully unaware of the concerns.  So what am I talking about?  Well let's start where I started a while ago, with ORMs.

ORMs (Object Relational Mappers) are a basically a way to have a OO layer between your application code and your RMDBS.  There are some basic "features" of an ORM, but not all ORMs support all of these.  In any case here is a list of common features:

  1. OO interface to tables, rows, functions, etc, in your database.  So you can use native application code and OOP to interact with your data.
  2. A more elegant/simpler API to interact with your database.  Many ORMs use some other database API under the hood, but add routines and interfaces (or simplifies calls) that the normal API lacks.
  3. Object (data object) persistence.  So that you can create an instance of some data you are modeling and then be able to store that object and revive it later with state preserved.
  4. Abstract the interaction between your application code and your database such that in the future if/when you need to move to a different database you application code will require as little change as possible.  Ultimately, changing databases should be a matter of configuration files, or perhaps even less work.  And your app code wouldn't even know the difference between Postgres, MySQL, SQLite, or something else.

Where's your cube again?

| | Comments (0) | TrackBacks (0)
So, I had an idea and wanted to capture it before I forget.  A relatively simple tool to graph a floor plan map of office cubicles with info about each cube- person who sits there, department, extension, and any other info about them.  It could be done really easily with the right database structure and using the Javascript graphing library wz_jsgraphics.js (http://www.walterzorn.com/jsgraphics/jsgraphics_e.htm).

That way, all you would need is to maintain the data through an easy management tool, then your map is updated realtime online.  And anyone can go to the map in their browser and mouse over a cube and get info, or do a search and get a highlighted cube within the map of what they are looking for.

Microsoft Exchange problems

| | Comments (0) | TrackBacks (0)
So a while ago at my work, "they" decided to move away from Zimbra and go with Microsoft Exchange.  The main points that made them want to switch were: 1) the calendaring/booking conference rooms/scheduling/sharing calendars didn't work very well in Zimbra and is "known to work in Exchange", and 2) email and calendaring for a large organization just needs to work.  Now- I must admit that this is my take on what has been going on, and I may be wrong here.  But, with that- my experience with Exchange has really sucked.  The points for moving to exchange are one-sided.

Exchange doesn't work well with free software.  Exchange is designed to work with Outlook, and no other client is even considered important.  They do claim to have IMAP support for other email clients, but Microsoft's IMAP seems to be unstable.  It continually has problems freezing up.  About 3-5 times per day the IMAP service on the Exchange server hangs and needs to be restarted!  Lame!  And so all Thunderbird users are stuck playing this "is my email working now?" game all the time.

The other thing is calendaring only works with Outlook clients.  Exchange doesn't support iCal/WebDAV or any other open standard.  So for calendaring we pretty much are forced to use the web interface for Exchange.  And the web interface for Exchange has two versions- a full featured one that only works on IE, and then a crippled one that is served to all other browsers.  LAME again!  So all the "features" of switching to Exchange are really only features for Windows users who use Outlook and IE.  If you use anything else, then your email and calendaring just got a whole lot worse!!

Zimbra did have some known bugs in their calendaring, especially in booking conference rooms for meetings.  However, I believe the folks at Zimbra have been working on that for their next release.  Email never was a problem with Zimbra for any user that I could tell- Outlook or Thunderbird or whatever.

But I'm not bitter.... yet.

Cover your bases (musically)

| | Comments (0) | TrackBacks (0)
So I have an idea that I think would be really interesting.  I like music.  I like to listen to music.  I like hearing new songs and discovering new artists.  I also have a weird desire to hear the same song done in different ways by different people- covers.

I stumbled across SecondHandSongs.com and found that there is a database of cover songs (it only lists covers that were recorded and put out by a record label, no do-it-yourself or amateur covers allowed).  Fascinating.

Now I come to the idea part.  I think it would be cool to have a plugin for your favorite music player (Banshee, iTunes, WInamp, etc) that looks up the song from your play list and lists covers of that song, with other info perhaps or links to find more info.  It would be really cool to see a list of others that did that song and be able to click on them to hear a sample of their version, or a link to a music service (or store) to buy/download the other version(s).  And perhaps a way to rate them too?  Not sure about that one.

Finally a way to build my own collection of nothing but covers of the song "Moon River"! (this is a joke, I actually hate that song).

Hot Dang.

| | Comments (0) | TrackBacks (0)
Well, I finally got Movable Type installed here and working.  I'm using Postgres as my backend.  I just wish my hosting service used a recent version (they are still on 7.4.x!).  But Postrges is still the best open source RMDB so there you go.  I would have probably chosen SQLite if I could just get the perl module installed (yet another issue with my hosting service).  I think for any small - mid size database work SQLite is a better choice than MySQL, and for anything larger than that chose Postgres.

I like Movable Type a lot.  It seems to be more intuitive than a lot of the other ones I have looked at and tried.  I will be moving my posts from my other blog to this one over the next little bit.

Minimal AJAX toolkit

| | Comments (0) | TrackBacks (0)

So there is a wide world of tools and methods for "web 2.0", and for developers it is hard to know which one to chose to use and support.  I have tinkered with two AJAX toolkits and found things that I liked and disliked with them.  But overall I found that they were both too big and too feature rich for simple use.

So it occured to me that for some of my simple projects all I needed was bare-bone functionality, meaning the ability to fetch the contents of a given url.  Beyond that I can do what I need in small simple javascript.  I didn't need fancy event handling, or animation, or auto-complete drop downs, or such.  And if I did, then I could probably do that my self later, as long as I had the ability to easily fetch a URL.

 

If you are going to write a screenplay, then you really should look into Celtx (http://www.celtx.com ).  HandsCeltx down, this is the best tool you can have to begin your creative process.  There are many ways you can write a screenplay, and many tools to help you do so.  But Celtx combines all the best features, and many that others don't have, into one product.  And one of the best things about it- it is Open Source!

It is based on Mozilla's FireFox web browser, and works on WIndows, Linux, and Mac OS X.

book cover imageThis book is awesome.  I learned so much from it that I have placed it second on my list of books every software engineer should read.  There are so many great topics covered in such a easy to read and understand way that you can't help but want to try them out.  And after trying a few out, you start to wonder how on earth did you live without some of these things.  

There are a few books I have read that I really got a lot out of, and this was one of them.  I was familiar with a lot of the things discussed in here, but not at any great detail (at least with some of them).  I even learned a thing or two with perl (imagine that!).

new site

| | Comments (0) | TrackBacks (0)

So I finally was able to get the domain spencerchristensen.com.  It was taken for a while by someone else, but when I check just a couple of weeks ago, it was available.  So I am setting up my personal site.

I have had a personal site for years at  http://www.mecworks.com/~spencer , but this has fallen dormant for a long time.  I hope to get back into maintaining a personal site with this one.  I still don't have a lot of free time to give to this, but hopefully I can at least give more that what I have been doing.