Credit: here.

I love my AppleTV. One of the coolest home entertainment systems I’ve played with, but unfortunately it does lack some pretty important functionality like being able to play DivX/XVid, any sort of file storage capabilities, and no way to surf the web or anything cool like that.

Well, it turns out, The good people over at Apple Core, LLC agree that these things were important and have created a nice utility for making these dreams a reality! Here are some of my favourite features:

It was easily one of the best $50 I’ve spent in a while. It creates a nice bootable USB stick, just restart the device and go! It has also not conflicted in any way with the other core functions of AppleTV, and yes, it works with the very latest firmware (2.1).

If you have an AppleTV, I definitely recommend this upgrade.

Thanks to the fellows over at Rails Envy for doing a quick spot on my SmartMonth plugin! I actually had never heard of Chronic until they had mentioned it. I could see how this would actually go very well with a gem like that!

Speaking of SmartMonth, I have a couple of cool optimizations I plan to make in the new week, so stay tuned if you are interested!

Our big project at Panoctagon has a lot to do with time and dates, so we’ve been developing a series of Rails plugins that make our jobs easier. I had a lot of fun building this one, and I could see other people finding this interesting, so we decided to open source this one. I think it’d make a great addition to Rails core (if I do say so myself :P), but I am not really up to all the effort involved. Instead I created a simple to use, documented, and tested plugin that works with Rails!

So what does it do? Basically, it makes date month values more meaningful by adding a new Month class that can do complex(ish) calculations against the days of the month for you. It also allows you to treat a Month as an enumerable container, allowing you to iterate through the days of the month like an array.

Lets peek at some example snippets:

Getting The First Tuesday of September 2009

1
2
    Month.september(2009).first_tuesday #=> Date object
    Month.new(9,2009).first(:tuesday) #=> Date object

Getting Every Friday in August 2008

1
2
    Month.august.every_friday #=> Array of Date objects
    Month.new("August").every(:friday) #=> Array of Date objects

Getting Every Thursday and Saturday in June 2007

1
2
    Month.june(2007).every_thursday_and_saturday #=> Hash of Arrays of Date objects
    Month.new("June",2007).every(:thursday,:friday) #=> Hash of Arrays of Date objects

Getting The Last Monday in April 2005

1
2
    Month.april(2005).last_monday #=> Date object
    Month.new("April",2005).last(:monday) #=> Date object

Enumerating Through the Month of August 2008

1
2
3
4
5
   month = Time.now.month #=> Month object of the current time requested
   month.each do |day|
     day.to_s #=> Week day name ie: Saturday, Sunday, etc.
     day.to_i #=> Date value in context of the month ie: 1..31
   end

Other Odds and Ends

1
2
3
4
5
  Month.april.size #=> total number of days in that month
  Month.august.next #=> returns a month object populated with August
  Time.now.month #=> returns the current month in context to the #now response
  Month[5] #=> May Month object access as array index
  Month[:april] #=> April month object access as hash key

So, as you can see, it saves a lot of time and calculations and keeps it easy for you to treat months as essentially a container! Really useful for doing complex calculations against dates.

If you would like to use my plugin, feel free, I’ve released it under MIT, and its located at my github account. Please give me some props if you do, or send me a line.

If you are interested in my rdoc documentation, check our company’s documentation server. Let me know what you guys think!

10 points for most original title, ever.

Lately, my company and I have been looking into the benefits of switching to Git for source code repository management. Its currently the new “hotness” of the hacker world, and with some of the claims that I’ve read, its pretty hard to ignore.

Linus Torvalds has made a few references to how much he hates tools like Subversion and CVS, and he has a lot of interesting reasons for feeling the way he does. I don’t agree with everything, but then again, I am not writing a kernel. Subversion has worked great for me and my team in the past, but we are definitely starting to envy some of the Git advantages.

Its indisputable that Git makes it unbelievably easy to branch and tag your repositories, hands down. The bigger and more integrated my codebase and team is getting, the more of crucial of a feature that is to us. Decentralization is not a big deal to me. Frankly, I never am really “off the grid”, so most times I just do git commit followed by a push.

Fortunately for us, Unfuddle supports Git now, so its easy for us to use our existing project management tool with this new technology, at no extra investment! But, I have to take a moment to say, GitHub is definitely pretty killer. Unfuddle’s support for Git is new and will improve over time, but I am very very impressed with how well GitHub has nailed the integration. The biggest reason for me to move (some) of my code to GitHub is for the public aspect of it. From this point forward, I will be posting my company and I’s open source contributions there. Mostly because Unfuddle doesn’t provide external access to projects in the same way, which is actually sort of strange in my opinion.

Maybe in the future I will be so inclined to product an Unfuddle-Git bridge to keep my repositories (edit: there is one already, why isn’t this a part of GitHub yet?!) synchronized, for projects I plan to open source. Overall, I am pretty happy with Git, I think my initial impressions of it were tainted by the “growing pains” I experienced while trying to get it to work with Unfuddle. Seriously, with GitHub I was up and running with the repo in under 2 minutes!

You can check out my repositories here. There is one project there now that I haven’t talked about too much yet, mostly because I just built and released it in the last 72 hours. More on that soon!

Recently I attended the first ever Start Conference here in San Francisco, CA. The last segment of the day they did was a “Pitch Off”, which I thought was absolutely fantastic! Imagine American Idol + Startup Nerds + Hilarity, it was pretty much like that. I saw some really great presentations and some really bad presentations, but learned a ton from all of the above.

There was one startup in particular that really stood out to me as a product that is truly pushing the envelope, especially in a world of facebook++ mentaility when it comes to consumer internet products. That product was Apture. Apture is all about creating rich and interactive media linking. At first, I was like “wtf is that”, but their expertly-crafted powerpoint skillz made it very clear.

In essence, its a tool that allows you to make your links in your blog far more interesting, what do I mean by that? Well, since I have recently enabled my blog to use apture, via the wonderful wordpress plugin they provide after their 3 second sign up, let me show you. :)

It has all sorts of integrations with places and things that people use most often on the web, so for instance, if I were to tell you I live in Albany, CA, I could provide a simple little map right here on my page (click the link to see what I mean). Now, when you click on that link, you’ll notice a Google Map appears, I’ve also annotated that link with another link to a wikipedia article of my favourite local pizza place!

Cool or what? Now check this out.

Anyone who knows me knows that I love The Mars Volta and Radiohead, they are definitely my two favourite bands. Now, if you click on both of the band names, you can see the cool sorts of things that Apture does for you, with very little effort at all!

Really the only downside to this product is the centralization aspect, if their servers go down, so do my links :(

I am able to create these links on the fly, and make them as inter-connected as I choose! Apture is definitely one of the coolest web tools I’ve seen in a while and I encorage my fellow bloggers to try it out for themselves!

Yesterday I attended the first ever Start Conference, in San Francisco, CA. That conference was amazing, I will without a doubt be attending next year. I learned so much about the core of starting a business in ways that I found truly invaluable. It was a fantastic conference with a fantastic vibe, I highly recommend it to anyone who is in a startup, starting a new company, or just interested in the entrepreneur world.

If you’ve been following my blog, and talking to me with any regularity, it is no suprise I quit the day job and started my own company almost 10 months ago now (wow). I am happy to report I am still standing, for the most part. It has been an absolute challenge in so many ways, and every single thing I’ve learned along the way have been important to put me on the road that I am heading towards now, at quite a rapid pace.

I’ve gone into business with my brother, and although we see eye to eye on many things, at times, we disagree, which I think is healthy. One of the things I heard somebody mention during the conference is “never go into business with family”. I have always wondered in the back of my head, did I do the right thing? After this past week, I really feel like I have. The reason why it works so well for me is knowing that no matter what sorts of fights and challenges we are faced with, at the end of the day we are still brothers, and we have a common, builtin respect and love for each other, which is not something every founder can say about their co-founder.

Its hard to imagine that we’ve been doing this for the last 10 months. We’ve seen growth, albeit modest, but still, growth nonetheless. We’ve been working with a close friend of mine in defining the first product my company will release by the end of the year, and we are all very very excited that its almost worth hearing about.

I’ve never believed in that whole “stealth mode” startup bullshit. In most cases, I’ve never made anyone sign an NDA to find out what I’m up to, quite the contrary. I am excited to tell people what we are doing, because I love to see what they think about it, ask them from their prospective, its very eye opening! The reason I don’t say a lot about what I am doing, even at this very moment, is because we are still forming the concept to be “widely consumable”. Until today, we didn’t even have a true name for the product, just a codename!

What I can say is, its not directly related to the consumer internet. No, I am not building the next Twitter, I am not building the next Facebook, and I am not changing the way people work with spreadsheets. I am doing something to help a market of people who, I feel, have been ignored in the rebirth of internet technologies.

Its a modest goal, I want to help people by giving them what they are asking for…its the true entrepreneurial spirit. Hopefully, in a couple more weeks, I will actually have a cohesive “pitch” thats worth telling people about, I am looking forward to that, very soon.

I am hooked on the religion that is known as GTD (Getting Things Done), and I have also become rather dependent on an application that follows the whole GTD way of, well, getting things done, known as Things. Its a fantastic application! But unfortunately, its not a finished work of art, just yet.

I’ve never played with OmniFocus before, and some people will call blasphemy right about now, but hear me out. The attraction to Things is its simplicity. It doesn’t get in your way with its opinion of how you should manage yourself, it just lets you tell it what you need to do, and its up to you to get crazy with it.

I love that! A tool that simply does what I want to do, the way I want to do it! CulturedCode, the company behind Things, has also released a fantastic Things iPhone app that brings the love on the road with you, awesome! It can’t sync with the desktop YET. Sync capabilities are coming within the next week, and I am very excited about that.

But I didn’t write this post to basically tell you why Things is so great, actually, quite the contrary. I think there are some big gaps in quality in Things, and I am hoping that CulturedCode hears me and maybe takes my thoughts into consideration. Maybe. :)

So, shall we begin?

Web Service Integration
What do I mean exactly? Look at a tool like Evernote. Seamless integration, your information is constantly synchronized. Not with ad-hoc wireless hacks, not with iPhone tethering, not with MobileMe, through good ol’ internets. Why would this be cool?

iPhone App: Include Proximity Capabilities
I have to say, this is a really neat feature of the OmniFocus iPhone app. It gives you your contexts based on how close you are around them, if you define a proximity (via address or something). I would love that!

iPhone App: Voice Notes
Sometimes the last thing I want to do is type on my little screen, I just want to take my “open loop” out of my head and make it go elsewhere, quick and easy! I know, this kind of thing gets dangerous when I talk about web integration, suddenly you’ve got larger file overheads, but compression algorithms can make this not a big deal, per se.

More In-Depth Syncing
What I mean by that is, if I “schedule” a task in Things for a specific day, or even a due-date. It should create a Calendar entry for me in iCal that corresponds. Obviously it has a concrete date (and sometimes a time), that is easily translatable to a calendar event.

That is all that is coming to me right now, really the biggest thing in my mind is web service integration. That would be killer, on so many levels. I really think thats the missing peice to this whole system, in my eyes…its also missing from OmniFocus (I think?).

Either way, Things is definitely worth taking a look at if you are into GTD, and have a mac.