Nov 22

Every single morning I wake up to a huge amount of posts in my feed reader. Here is how I manage it.

First, I make use of Google Reader and NetNewsWire. NetNewsWire hooks into my Google Reader account and keeps it in sync. Google Reader is great, but NetNewsWire adds a level of polish to my primary computer.

Secondly, I have an Instapaper account that saves web pages to “Read Later”.

My morning ritual involves me quickly scanning through my NetNewsReader. If I see an article that is long and in-depth that I’m interested in, I don’t read it then, I instead hit the keyboard shortcut to “Add to Instapaper” (or use a bookmarklet if I’m not on my primary computer).

The only articles I read in the a feed reader are short blurbs or equally quick reads. Everything else goes into Instapaper.

Periodically, when I have 15 minutes free, I’ll check for something to read in my instapaper account.

Doing this prevents me from spending 2 hours in the morning getting caught up with RSS feeds or, alternatively, missing a great article.

Tagged with:
Nov 17

It’s cool to see people continuing to use jME and do some really cool things with it. Grappling Hook is a very cool game similar to Portal.

Tagged with:
Nov 10

I decided that I needed to go ahead and keep my hobby code in a repository. This will help with back-ups, reminding myself what I was doing and getting up to speed with a new VCS. I’ve used RCS, CVS, Perforce and Subversion. The newest kids on the block (and thus, most popular right now) are Git and Mercurial. So, I figured I should learn one of them, and chose Git. So, all the Celery code is now in a local Git repo with a Github origin.

There are a couple concepts about Git that I find interesting, and a bit difficult to learn. This difficulty is largely due to “old dog, new tricks”. Firstly, locally you have your own repo. This means you do your adds/deletes/commits all locally. You maintain history locally as well. So, if you are unconnected, it’s not that big of a deal as you are still using the repo. For the “collaborative” part, a user can “pull” from your repo (when you are connected to the network) or you can “push” your repo up to the central server (github). This is where my confusion lies, as to when to know to push vs. pull. Fortunately, it will only be myself for the foreseeable future. So, I’ll have plenty of time to understand this.

Secondly, one of the primary focuses of Git is ease of branching. Subversion’s branching has caused no end of trouble here for us. So, not having to deal with merging a branch back into trunk sound’s quite nice.

You’ll also notice I did not explicitly point to my project, this is because the code is not yet at the point where I’m comfortable advertising it. However, I’m sure you could find it if you wanted to.

Tagged with:
Nov 07

Installed the great iPhone Theme plug-in for WordPress, WPtouch. It adds a mobile theme to the blog when viewed on the device. It really looks great, and makes reading any WP blog a treat. Highly recommend it.

Tagged with:
Sep 23

I’m still alive, but have been extraordinarily busy with the release of Weblings. However, now that it is Live, we have had our first successful feature update and everything is operating smoothly, I’m going to be focusing on reviving our iPhone project here. That will cause this blog’s activity to rise as I start delving into it more. And, hopefully, time will permit me to be more active in my own personal iPhone experiments again.

Tagged with:
Sep 13

FirefoxScreenSnapz009Well, it’s finally happening. Webwars: Weblings is live. The first game we have created at WebWars, LLC. It has been an interesting road, with ups and downs, but we have been able to conceive of an idea and see it to fruition in less than one year. It’s a free to play title with the ability to buy decorative objects and puzzle pieces. Our next goal is to start on another product in the same toolbar style.

Tagged with:
Aug 29

Cocoatoa :: Snow Leopard, a bargain at twice the price!.

Sounds like Snow Leopard has lots of development improvements. I know I am particularly curious about Grand Central Dispatch, OpenCL and Xcode improvements. I’ll be finding out on Tuesday. It’s not apparent how much of these improvements will make it to the iPhone, but I’m getting interested in general Cocoa development as well.

Blocks sound interesting, and I plan on checking it out. Closures has been in serious debate for Java 1.7. So, it will be interesting to see how Blocks tackles the issue. I’m more curious as to how this will help you in your daily development cycle.

I’m having trouble finding more information about the wonderous Xcode improvements, but I did see that GCC 4.2 is standard (as a Java developer this means nothing to me) and Clang is built in (which is super cool, I have been using that). It also sounds like the Build Error window has improved, as well as code completion.

OS X has always been amazing at the price, with including an amazing developer toolset. With Snow Leopard at $29, it continues to show Apple is moving to continue improving market share.

UPDATE: M Cubed Blog has good Xcode 3.2 information.

In the world of multi-touch trackpads, Xcode isn’t being left behind and now has a few gestures of its own. Much like with other browsers, 3 finger swiping left or right will move back or forwards in the history. However, 3 finger swiping up or down now moves between the header and documentation windows, which is a great new feature and one I wish I could have on my iMac.

Beautiful.

Tagged with:
Aug 23

Code Documentation for me, and as I expect for many others, a topic that their opinions vary greatly over the course of their careers. I’m fairly certain that most people follow the same pattern:

  • Education – Told to document in assignments, hated it and feel that its more pain than its worth.
  • Junior Programmer – Documents everything sometimes redundantly. Documentation is the doorway to advancement.
  • Mid-Level Programmer – Documents everything but not so redundant. Understands giving coworkers explaination.
  • Senior Programmer – Documents rarely, and only what absolutely needs it.

When development is busy, deadlines are looming, the first sacrificial lamb is documentation. Why fight this? It’s the way it is and the way it will always be. “Self Documenting Code” is a buzzword that gained popularity with Java, but could possibly be more than just a buzzword if done correctly. It’s a matter of understanding when the code is enough, when to write documentation and understand the pros/cons of any single line of comments.

Pros

Informs the user of the intent of the Class - Intent is the most important word there. If you are just rewriting the code in English, you are helping no one. The intent of a class should never change throughout its lifetime, the implementation changes often. If you are documenting the implementation, not only are you having to change the code, you have to update the documentation. And, this is one area where most programmers fail, allowing stale comments to persist in code. Notice that I mention only Class. Methods should be named well enough that it is obvious what they do.

What about tricky areas of code? If a piece of code is so clever in its implementation, you did it wrong. Rather than spending time commenting that bit of code, think about cleaner ways of writing it. Once you have the implementation down to an obvious state, you don’t need documentation and your code is better for it. Exception: If after reducing the complexity of the code, you still want to explain elements (say, explain what a third-party API is doing) that is fine.

What about commenting complex Methods? If the name of the Method does not explain everything the method does, you need to refactor to simplify the method, possibly breaking it into multiple simple methods. Exception: If a method made it past this point and is in public use, it’s much more difficult to refactor. Document it and learn from this mistake.

Cons

Context switching. Similar to bilingual speakers, switching from (say) Spanish to English and back to Spanish takes mental overhead. The same is true with code and comments. When a developer is reading code, the truly are reading it. They are parsing syntax of the particular language, switching to reading comments has a cost associated with it. When those comments don’t add anything to the understanding of the code, it is expensive for little reward.

So, generally, I find myself caring less and less about people fully commenting code, and more and more about writing clean well structured code that can be easily understood. I do like to see general intent comments about the Class itself, but more than that it typically not needed.

APIs

Notice that I like to use the words “generally” and “typically”. This gives me nice outs when people raise all the legitimate situations where fully documenting code is beneficial. Perhaps the biggest reason to fully document code is when writing an API. Especially if you are generating API Docs via JavaDoc, Doxygen, etc. Unfortunately, this situation necessitates writing fully comments even where the vast majority are redundant. The morale of the story is don’t write APIs… if it was only that easy.

Tagged with:
Aug 19

GameDev.net has an article on jME. I know this is an iPhone blog now, but still want to mention my first baby. Last month was the when I finally let go completely and turned the project over to the community (it had been in the community hands for almost a year anyways, but I finally let go of all connections). I had not contributed to jME for a couple years before this anyway, but there was a part of me that couldn’t quite let go. Fortunately, jME found people that had vision for it and passion to drive it forward. These people convinced me that it was finally time to cut all ties and let it go on with them. Best of luck, guys.

Tagged with:
preload preload preload