Nov
20
2009

I first read about Ignite Portland last year right after IP6 (Ignite Portland 6). I knew I had missed something cool, so I kept an eye peeled for the announcement of IP7. It finally happened last night.
I wasn’t sure going into it what to expect. The website describes the creators as “geeks”, there are techy sponsors, and if you dig a little further you’ll find an Ignite Community site that is sponsored by O’Reilly.
But the topics of the talks are generally non-geeky, as you can see here in the list of last nights presentations:
* Rick Huddle – Why we love DB Cooper
* Mike McClure – Roasting Coffee at Home: It’s easier than you think!
* Clifton B – Why Highway Communication Sucks and How We Can Make It Suck Less
* Michael Weinberg – Thanksgiving 2.0
* Jason Duerr – Pump Up Your Volume: Building a Pirate Radio Station
* Crystal Beasley – Ecstatics, Zealots & Mass Hysteria : How we collectively lose our minds
* Douglas Wolk – Kant’s “Critique of Aesthetic Judgement”: Drastically Condensed Awesome Version
* Adam DuVander – The Donkey Man is not on Facebook
* Colleen Wainwright – My bloody epiphany
* Phil Earnhardt – Robots Growing Up: The Future of Robotic Movement
* Marcus Miller – How to cultivate a wisdom of craft.
* Lou Alvis – Human Systems Analysis. What Are People Doing?
* Curtis C. Chen – How to Solve Any Puzzle in Less Than 47 Minutes
* Kelly Jo Horton – Confessions of a Dating Ninja
* Brett Stern – Rural mailboxes
* Elena Moon – How to Capture and Eat Your First Roadkill Deer
* Ward Cunningham – Becoming Bike Oriented
* Randal Schwartz – Karaoke for fun and profit
* Christian Howes – Inappropriate terms to use in an American business meeting if you are a brit!
* Kent Bye – The Resurgence of Hula Hooping
I showed up early, grabbed myself some pizza and a beer, and took a seat. A lot of laptops were open and a lot of iPhones were glowing. I decided to watch the tweets for #ip7 and they started flowing in at a steady rate. It kept me entertained until the start of the show. I’ve actually never been at an event like that and watched the tweets come flowing in live as it was all happening — knowing that they were all originating from those right around me. I knew that @skinny was ‘absofrakkinterrified’ about giving her talk (she kicked ass by the way). I also knew that another one of the presenters, @dropkickdesign was wanting “Less talky talky more beer poury poury” in the beer line.
Then it started. There was no intro, no MC, just a clock that started counting down. Rick Huddle took the stage. From then on it was back to back 5 minute presentations, with about 10 seconds in between. It was fast paced. The topics were of all sorts. The crowd was relaxed and fun, and the speakers were all great.
I won’t go into detail on all the topics here. Some were plain funny, some were downright moving, and others were simply educational.
You can watch the stream here.
Thanks to everyone who put Ignite Portland together, and all the volunteers. It was an awesome time!

1 comment | posted in Portland
Nov
19
2009
If you need a good (and free!) SQLite Admin, I’ve been using Lita, created by David Deraedt, for a bit and it’s been working well.
I must admit I mostly use it just for confirmation that my code did what I expected it to, but it seems pretty solid.


no comments | posted in SQLite
Nov
19
2009
If you frequently need to show/hide hidden files on OSX, here’s what I find is the easiest way so you don’t have to do a google search every time to remind yourself of the syntax.
Create a file called ’showHiddenFiles’
in Terminal, type:
chmod +x /path/to/showHiddenFiles
Make sure the location is on your path. I just use /usr/local/bin since it’s already on my path.
Edit that file with these contents:
#!/bin/sh
defaults write com.apple.finder AppleShowAllFiles $1
killall Finder
Now whenever you want to hide/show hidden files, just launch Terminal and type:
% showHiddenFiles true
– or –
% showHiddenFiles false
And don’t forget you can just type the first few letters (i.e. ’showH’), then hit TAB and Terminal should auto-complete the file name for you. Then you can just add ‘true’ or ‘false’.

no comments | posted in OS X
Nov
19
2009
OK, so yesterdays post was alright. It got you making an alias for Terminal. But if you tried it you probably noticed that you lost the alias after you quit Terminal. That’s usually not what you want. Let’s make it stick around.
Assuming you’re using bash:
Launch Terminal
% pico ~/.bash_profile
Add a line with a variable followed by whatever command you what it to perform, such as:
webroot='cd /Volumes/apache/webroot'
CNTRL-X, then press ‘y’ to save the file and exit edit mode
now restart bash_profile;
% source ~/.bash_profile
That’s it!
Now anytime you want you can launch Terminal, simple type % webroot, and you’ll be taken to ‘/Volumes/apache/webroot’
Now will all the typing this will save you, there’ll be more time for beer at the end of the day.

no comments | posted in OS X, Terminal
Nov
18
2009
I launch Terminal many times per day, and usually go to one of a handful of directories right off the bat. I just discovered the handiness of creating aliases in Terminal.
Let’s say you often go to /Volumes/development/depot/mainbranch. Let’s create an alias to that called ‘mb’ for ‘mainbranch’ (this can be whatever you want, of course.
Simply launch terminal.
Type: alias mb=’cd /Volumes/development/depot/mainbranch’
Done!
Now just type ‘mb’ at the command prompt and you’ll be taken directly to that directory!
Sweet!
Note, you can also do the same to launch applications:
alias tx=‘open /Applications/TextEdit.app/’

no comments | posted in OS X, Terminal
Nov
17
2009
AIR 2 and the 10.1 Beta version of Flash Player are now available on labs.
Both now support multi-touch user gestures for those users on touch screens! This means that both your AIR Desktop applications and the applications you create that run within a browser will have this support. You can see Kevin Lynch’s 2009 MAX demo here.
In addition to that, Flash Player 10.1 has lots of enhancements and features for mobile devices including screen-orientation, accelerometer, graphics hardware acceleration, and more. You can see a full list here. And a more complete list of new AIR 2 features is here. Enjoy!

2 comments | posted in AIR, Beta, Flash Player
Nov
13
2009
If you just have a plain ol boring object, you can loop through it with a basic for…in:
var myObj:Object = {x:1, y:5};
for (var i:String in myObj)
{
trace(i + ": " + myObj[i]);
}
However, if you have a custom value object, that doesn’t quite work. But what you can do is use describeType() to create an XMLList version on your VO.
var vo : SearchVO = data.getBody() as SearchVO;
// create an XMLList version of the VO
var varList:XMLList = describeType(vo)..variable;
// loop through the property list
for(var i:int; i < varList.length(); i++){
// output the property name and value
trace(varList[i].@name+':'+ vo[varList[i].@name]);
}

2 comments | posted in Actionscript, Flex
Nov
12
2009
I remember hitting this before — after binding some data to a DataGrid (or any ListBase subclass) no matter where I rolled over the DataGrid only the last row was being highlighted.
After remembering that these ListBase classes rely on a unique id (uid) for each row/object, I started digging around and found that in my case, I was binding to VO’s which I had given a ‘uid’ property. This was interfering simply because I hadn’t yet hooked up that uid property so it wasn’t yet containing a unique id. So every row had the same unique id causing the DataGrid to essentially think it had only one row.
There are definitely other scenarios when something similar would happen. There’s more info here.

no comments | posted in Flex
Nov
10
2009
It took a while for me took figure out where AIR lives now on OS X — the app, but also the uninstaller.
So, to uninstall AIR you’ll find the uninstaller in /Applications/Utilities , and not just in /Applications

no comments | posted in AIR
Nov
2
2009
Just in case it’ll save anyone some time some day…
var _stateCodes : Array = new Array();
_stateCodes["AL"] = "Alabama";
_stateCodes["AK"] = "Alaska";
_stateCodes["AS"] = "American Somoa";
_stateCodes["AZ"] = "Arizona";
_stateCodes["AR"] = "Arkansas";
_stateCodes["CA"] = "California";
_stateCodes["CO"] = "Colorado";
_stateCodes["CT"] = "Connecticut";
_stateCodes["DE"] = "Delaware";
_stateCodes["DC"] = "District Of Columbia";
_stateCodes["FM"] = "Federated States of Micronesia";
_stateCodes["FL"] = "Florida";
_stateCodes["GA"] = "Georgia";
_stateCodes["GU"] = "Guam";
_stateCodes["HI"] = "Hawaii";
_stateCodes["ID"] = "Idaho";
_stateCodes["IL"] = "Illinois";
_stateCodes["IN"] = "Indiana";
_stateCodes["IA"] = "Iowa";
_stateCodes["KS"] = "Kansas";
_stateCodes["KY"] = "Kentucky";
_stateCodes["LA"] = "Lousiana";
_stateCodes["ME"] = "Maine";
_stateCodes["MH"] = "Marshall Islands";
_stateCodes["MD"] = "Maryland";
_stateCodes["MA"] = "Massachussetts";
_stateCodes["MI"] = "Michigan";
_stateCodes["MN"] = "Minnesota";
_stateCodes["MS"] = "Mississippi";
_stateCodes["MO"] = "Missouri";
_stateCodes["MT"] = "Montana";
_stateCodes["NE"] = "Nebraska";
_stateCodes["NV"] = "Nevada";
_stateCodes["NH"] = "New Hampshire";
_stateCodes["NJ"] = "New Jersey";
_stateCodes["NM"] = "New Mexico";
_stateCodes["NY"] = "New York";
_stateCodes["NC"] = "North Carolina";
_stateCodes["ND"] = "North Dakota";
_stateCodes["MP"] = "Northern Mariana Islands";
_stateCodes["OH"] = "Ohia";
_stateCodes["OK"] = "Oklahoma";
_stateCodes["OR"] = "Oregon";
_stateCodes["PW"] = "Palau";
_stateCodes["PA"] = "Pennsylvania";
_stateCodes["PR"] = "Puerto Rico";
_stateCodes["RI"] = "Rhode Island";
_stateCodes["SC"] = "South Carolina";
_stateCodes["SD"] = "South Dakota";
_stateCodes["TN"] = "Tennessee";
_stateCodes["TX"] = "Texas";
_stateCodes["UT"] = "Utah";
_stateCodes["VT"] = "Vermont";
_stateCodes["VI"] = "Virgin Islands";
_stateCodes["VA"] = "Virginia";
_stateCodes["WA"] = "Washington";
_stateCodes["WV"] = "West Virginia";
_stateCodes["WI"] = "Wisconsin";
_stateCodes["WY"] = "Wyoming";

1 comment | posted in Actionscript, Flex