A code monkey randomly typing on a keyboard for an infinite amount of time will almost surely produce brilliance (almost).

Gitx + Gity = (Gitxy? Gity-x?) a Good Git Gui

Posted: December 10th, 2009 | Author: Huyen Tue Dao | Filed under: Development | Tags: , , | 4 Comments »

I know that maybe for the sake of personal robustness (Insert obligatory bad joke here) that I should be training myself to git via command line and learn the ins and outs of this distribute-ed version control.  But I have to admit I love guis.  I especially love native-application-type guis on Mac OS X.  Knowing this, a somewhat reputable source recommended GitX and Gity.


GitX is very similar to gitk, the Unix-based repository browser that comes as part of the git package.  Being an open source project, it has that nice price tag of $0.  It has a nice browser with a cute timeline-type representation of the repository history (just like gitk) as well as a flexible interface for staging commits.  The diff functionality is clear and easy. But that’s pretty much it.  You have to already have a repository setup locally, and you can only commit.  No pushes, pulls.  You can branch but no tags.


Gity by Mac Endeavor is less a repository browser and more of a straight-up gui for most git functionality.  Branches, tags, and remotes are listed on the left hand side, and the main page basically lists files in the currently repository.  There are toggles for untracked files, modified files, and staged files.  Commits are a simple dialog. The implementation of these features feels lacking compared to that of GitX.  However, Gity rocks when it comes to all the functionality that GitX omits.  You can clone repositories, create new remotes, fetch, push, pull, branch, tag, configure git, and other advanced functionality that flies over the head of this n00b. UPDATE Thanks to Aaron @ Mac Endeavor for giving some heads up in the comments on updates to Gity history and diff functionality.

Is one better than the other?  In my opinion, nope. I use Gitx daily.  I use Gity every now and again.  Gitx does what little it does very well.  Gity is loaded with features. GitX is free. Gity is $18 (after a 20 repo refresh trial).  Do I think that Gity is worth $18?  Eh.  I would pay $18 if GitX and Gity merged to have GitX’s interface with all of Gity’s extra functionality.  THAT would be epic, and I know people before me have said the same.  On a related note, anyone else notice how strangely similar their logos are?  Hm… *speculate, speculate*

But fanciful, wistful fantasies of applications-not-yet-written aside, if you do end up getting both GitX and Gity, you’ll be in good shape to getting going with your git-ting.

Speaking @ 360|Flex!

Posted: November 13th, 2009 | Author: Huyen Tue Dao | Filed under: Development | Tags: , , | No Comments »

Just got my welcome letter today as a speaker at 360|Flex!  I will be again presenting Greenthreading as I did at CFUnited, but I will be expanding to include some more material and more examples and address questions that came up during my first session.

If anyone has any suggestions or questions still or ideas of whatever further extensions or clarifications they would like to see, please feel free to email me and hope to see you in San Jose!

Oh Em Gee, All of Those trace() Statements

Posted: November 6th, 2009 | Author: Huyen Tue Dao | Filed under: Development | Tags: , , , , | 2 Comments »

Alright, so I saw this insideria.com article by Tyler Larson about conditionally compiling for cleaner Actionscript when it came out and figured that it would be a good idea for peeling out some performance.  And Procrastee McProcrastinator (that’s me) didn’t get a chance to try any kind of pruning yet.

Then tonight as I’m tidying up some code for my side project I see this tweet by Ben Clinkinbeard noting that adding a trace statement increased a loop’s runtime by 1 second.  So following Larson’s article with a little help from flexexamples.com for setting up a flex-config.xml file, I set conditional compiling for every single trace statement and then compiled a new release build.

Wow.  Just wow.  We’re talking seconds shaved off loading batches of images.  And I’m frequently loading these small batches of images so the additional time was just piling up.

I feel incredibly duh-I-should-have-known-that-I-am-such-a-noob.

But hey, live and learn, right?  And I apologize to folks following me on Twitter for the spam and gratuitous face-palming. :)

Update: Dave Rosenfeld informed me via Twitter that trace actually initiates some disk I/O.  No wonder.

Learning GIT: Everyday GIT with 20 Commands

Posted: October 22nd, 2009 | Author: Huyen Tue Dao | Filed under: Development | Tags: , | No Comments »

Lately, I’ve been meandering over to the GIT side of the version control landscape, and today I found a great tourist map (the kind with oversized icons that point out all the best landmarks and all the restrooms): Everyday GIT With 20 Commands Or So from kernel.org.  It breaks up basic git commands into groups by what role the user is playing and has plenty of mini use examples with step-by-step instruction and explanation.  Also links directly to man pages for flag-looking-up-type goodness.

Today I created a tag.  I deleted a tag.  And I branched off of a tag.  And I deleted a branch.  Where’s mah cookie? ;)

Dash: Actionscript code scripting in Eclipse

Posted: October 13th, 2009 | Author: Huyen Tue Dao | Filed under: Development | Tags: , , , , | No Comments »

Who was tired of writing out getters and setters constantly? *raise hand*

Who especially didn’t like do it while trying to override commitProperties() and thus had to write a monkey-buttload of xVariableChange booleans for when a property changed? *raise hand*

Who found a really great Eclipse plugin for generating getters/setters, static consts, and other I-really-don’t-want-type-or-even-copy-paste-these-keywords-anymore constructs? *raise hand*

Posted in 2007,  eokyere’s blog post on Dash (the Plugin Formerly Known as Eclipse Monkey) is a nice little intro to the plugin with a little example (showing how you can actually generate getters/setters with minimal work) and a little script (showing how to get Dash to generate getters/setters).

Short, sweet, easy-to-read.  The Dash update site was down supposedly for a while, but as of today, it’s back up and in business on my new copy of Eclipse Galileo (Cocoa, 64-bit).