Refactoring Databases
Developer Ignite 2 was nearly two weeks ago. It was a load of fun to present, and lose my voice afterwards. I’m honored that I was able to present again with a panel of very awesome presenters. Heck, I even learned a few things…
All the presentations were recorded, and are available on Intel’s Developer Ignite Site. But, you’re all here to see me, and here is my 5 minutes of information is all it’s glory:
Desert Code Camp 6 Presentations
Wow, Desert Code Camp 6 was a busy, fun, tiring day! I enjoyed meeting many of you, and I hope you learned a few new things about the upcoming HTML5 and CSS3 standards. Of course, Objective-C blocks, closures and Javascript were tough subjects to discuss, but I still hope there was some nugget of information you were able to pull from my presentations.
As promised, here are my slides in PPT format (I was using Keynote, and exported)
Upcoming Talks
One of my favorite things to do is share knowledge. Events like Developer Ignite and Desert Code Camp have quickly become events that I look forward to all the time.
I’ll be presenting several topics at these next events:
November 7th @ Desert Code Camp
- HTML5 – Where have you been all this time?
I’ll be showing some of the new technologies that are available in HTML 5 such as browser databases, location awareness and of course, the new set of HTML tags
- CSS3 – Behind the website
My last presentation, CSS Sucks, went off pretty well at the last Desert Code Camp, so, we’ll move to the next generation of Web technologies and move the web to the current millenium
- Javascript – The untold story
Javascript is a really powerful, awesome language. The fact that it’s bundled in browsers helps and hurts Javascript’s rap quite a bit. We’ll go over the fundamentals of what you can do with javascript, building up to using it for more than a couple of functions
- Blocks – It’s what’s for Dinner
Blocks are the latest addition to the Objective C language. While function pointers have existed in C for a long time, Blocks are sightly different in that they follow the rules for closures a little better. This talk will go over the fundamentals of closures and and how they are implemented in Objective C
November 11th
In addition to these, I’ll be giving a Lightning Talk at Developer Ignite 2
I’ll be discussing Refactoring Databases.
November 11th
And, one more thing, I’ll be giving a Unit Testing Demo a the ASU IEEE meeting. I hope to start the careers of future developers off right by showing them how easy and awesome unit testing really is!
I’m looking forward to these events, and contributing to the community which has helped me grow as a developer over the past couple of years. See you there!
Announcing NSCoderNight in the Phoenix Area
Since I’ve become an indie developer, I’ve been able to do more and more of the things I’ve wanted to better interact with the local Cocoa community. One of the staples of most thriving Cocoa developer communities is NSCoder Night. While we still have Cocoaheads meetings and Phoenix iPhone meetings those are geared for prepared content and are set for once a month. NSCoder Nights are Weekly, and geared toward writing code with your friends and fellow Cocoa Developers. If you are new to the platform, bring your questions and get answers from some very knowledgeable developers.
In the Phoenix Area, we’re starting these at Liberty Market in Gilbert. Phoenix is very spread out, so we’ll probably start migrating the location if there is enough interest.
When: Every Tuesday Night, from 6-9pm
Where: Liberty Market
230 N Gilbert Road
Gilbert, AZ
Bring: Your laptop and code
See you at the next NSCoderNight!
Now on the iTunes App Store: Freshpod
So, I’ve been toiling away for a couple weeks on an app that I, personally, have wanted on my iPhone for a long time. I’m an avid listener of podcasts, and I have always found that the built in player, while it plays indivudual podcasts well enough, doesn’t really play them in the order in which they were added, or even sequentially without creating some sort of “On the go” playlist. I wanted something that was more automatic, and something that was fast, so I wrote it.
You can get Freshpod on the App Store now for $1.99. Download early and often :)
Phoenix iPhone Meeting

Normally, I don’t blog about the regular monthly user group meetings around the Phoenix area which I attend. There are places for that already. However, I’ve been working on my first iPhone app for nearly two weeks, dabbling mostly with the MPMediaPlayer framework. I figured I would earn some good kahrma points by sharing what the things I’ve learned in this time. So, with that, I’m going to be giving a short presentation on the Media Player framework from the latest iPhone SDK (that isn’t under NDA).
Come meet me and other local iPhone developers, we don’t bite, really :)
Phoenix iPhone Developer Group
When: Wednesday, August 5, 2009, 6:30 – 8:30pm
HTML5 + CSS3 = Awesome!
HTML5 + CSS3 = Awesome from casademora on Vimeo.
HTML5 is the next version of the web markup standard. New features include new tags, offline dbs, and geolation aware browsers. CSS3 is the next generation styling language. Together, they make will make the web a great experience.
This is my 5 minute Developer Ignite talk given at Gangplank in Phoenix, AZ on July 22, 2009
The Best Job in the World

I’ve been working at OpenRain for more than 6 months now, and I wanted to take some time to publicly reflect on some of my experiences there.
For starters, when I started, saying the phrase “I work at OpenRain” was a little odd to say. Kind of like when I was was married, or when my kids came along. In those situations it was tough to say “My wife”, or “I’m married”, or “My daughters”. Certain things in life take some adjustment time, and going from super large corporate environments like IBM and Intel to a privately owned small business was one of those odd transitions. However, nowadays, not only is it easy to say, I feel like I have a stake in the business, and I’m super proud to work with a group of awesome developers, businesspersons, and just awesome people in general.
While I’m not one of the Founders (see Preston Lee and Marc Chung), I still feel like I have a huge stake in the success and future of the company. And, in a company this size, it’s hard to feel otherwise. I’m directly responsible for the success of our current Small Business Product Offering. I have a huge influence in many of the technical directions in which we take the product, even if I am overridden from time to time, I’m glad that I have the opportunity to voice my opinions and ideas. And my ideas about other areas of the company are heard as well. We started to handle the Rubyology podcast for a while (I need to get back on that!) because I had mentioned the idea. Granted, it wasn’t entirely my idea, or my doing that brought that in-house, but planting the seed means that I know I’m heard.
One of my favorite things about working at OpenRain is that we are constantly trying to give back to the community, be it the developer community, local small business community, or the community at large. I believe in this philosophy for two reasons: it’s fun, and it makes each of us better people through our experiences, which, in turn makes us do our jobs better. In the past, I’ve presented at Desert Code Camps, or other local developer events, and didn’t get a whole lot of mention back in the office. My coworkers are generally on top of things in the community, and if I don’t point out that I’m presenting or giving back, there is always that suggestion.
The gentle suggestion to grow your skillset expands beyond the office, technology and business realms. Recently, Preston, one of the founders, started a new event called Reopen Phoenix. The idea of this event is to have a friendly, non-smoky, non-bar type of place to hold open-mic nights. Open-mic nights are times when anyone with any musical talent can perform on stage. Preston has been highly supportive of my growing my own musical abilities. Granted it’s not support like time off from work to study bass guitar for half a year, but still, it’s great that these events exist, are put on by my “boss”. And, if you really want to see my riveting cello performance, check YouTube.
I found this opportunity at OpenRain during a tough time in my career, and have been grateful to have found a place to work, where most of the time it doesn’t feel like work. This is the way careers should grow, with colleagues who push you to do your best every day and help you grow your skills.
Thanks for all you’ve done for me OpenRain team. I feel like we work well as a team. I truly feel like I have the best job in the world that doesn’t even feel like a job.
As it should be.
Phoenix Dev House - TONIGHT!

I’ve never been to this type of event, but just a reminder that Phoenix Dev House starts at 7pm tonight!
I’m not sure what to expect. However, I’m going to be heading over to Gangplank tonight to get some development done or shared, or whatever. Come join me, and say Hi
jQuery Table and Row selection
One of the things I love about jQuery is the boat-load of default selectors like :first, :last, :nth-child, etc. One set of selectors that I thought was missing was a set to select specific columns and rows from a table. And, I would rather refer to these columns and rows by the header classes rather than indexes. For instance, I would rather select a specific cell of a table with
$('table:column(named-column):row(named-row');
The table has to have headers for each column and each row in order for this to work, like so:
<table>
<tr><th></th><th class="named-column"></th></tr>
<tr class="named-row"><td></td><td>data in named column</td></tr>
</table>
So, as any good programmer would, I wrote a very simple custom jQuery selector to accomplish these goals. I am not quite happy that the selectors have to look up the table row and column indexes for every cell, so I would only use this for small tables of data in HTML.
Feel free to send me any updates or comments to improve this code as this is really a proof of concept at this point.
Happy Coding!
jQuery.expr[ ":" ].column = function(obj, index, meta, stack){
var class = meta[3];
var cols = $(obj).closest('table').find('tr:first th');
var col = cols.filter("." + class);
var colIndex = cols.index(col);
var objIndex = $(obj).parent().children().index(obj);
return colIndex == objIndex;
}
jQuery.expr[ ":" ].row = function(obj, index, meta, stack){
var class = meta[3];
var rows = $(obj).closest('table').find('tr');
var row = rows.filter("." + class);
var rowIndex = rows.index(row);
var objIndex = rows.index($(obj).parent()); //which row is this object in?
return rowIndex == objIndex;
}
Developer Ignite, July 10
Coming fresh off Desert Code Camp, I signed up for a small event inspired by the Ignite movement, called Developer Ignite. The format is similar, 5 minutes, 20 slides, and a topic. The scope is a bit narrower however, as this event is aimed at the technical community. All technologies should be represented, from Javascript to C to Ruby. I’m eager to see what the other presenters have in store for us.
My presentation is dubbed HTML5 + CSS3 = awesome. I’m by no means an expert in either technology, so this will be a learning endeavor for me as well as for the rest of the attendees. I find that signing up to present topics to which I know little to nothing about really motivates me to learn something in a real hurry. It’s good for someone like me who tends to analyze many data points before proceeding.
Either way, this should be a fun event, even if it’s not as large at the regular ignite series.
Developer Ignite is being held at Gangplank on Wednesday July 22. Stop by and say hi!
Review: The Passionate Programmer

I’ve been a fan of the Pragmatic Programmers’ Press books and other instructional material for quite a long time. While on the flights to and from San Francisco for WWDC, I was able to go old skool and read my copy of The Passionate Programmer. I’d like to share a few thoughts below.
I was interested in this book because while I feel myself to be a competent and mostly passionate programmer, I want to take my skills, and career to the next level. I was looking for a few pointers here and there more than any major career changing advice.
Let’s start with the obvious, the title. The Passionate Programmer started life originally as “My job went to India”. I, as I’m sure were many others, was put off by the title alone. It seemed the odd book out of the Pragmatic Programmers’ series of books. The last thing I wanted to read was that I should be working harder for less money in order to compete with lower wage programmers from other corners of the Earth.
The Passionate Programmer is not a cover to cover read. I found myself skipping through the book, stopping at essays that interested me at that particular moment. For instance, I’ve been seeking out a mentor for quite some time, and the essay on seeking out a mentor provided a few helpful hints on finding one. Not only that, it reaffirmed to me the reasons I wanted one, and offered other things to consider when choosing a mentor. And yes, you should choose your mentor, not the other way around.
Some of the essays are ones I could have used a few years ago, such as the essay describing the business from your manager’s, boss’ or even CEO’s point of view. I learned several of those lessons the hard way, and I found it reassuring that someone as esteemed as Chad Fowler also went through the school of hard knocks on occasion. We’re all human after all.
The overlying theme of the book, in my estimation, is that there is only one person responsible for your career: You. This collection of essays points the reader to many helpful follow up questions, tasks and todos to follow with at the end of each essay. The true passionate programmer will take the bull by the horns when the time is right, and be able to guide their career to whichever direction they so choose. There is no secret sauce.
Thanks Chad Fowler for authoring such a helpful book. I recommend this read to anyone, be them in a career slump, just starting their career, or just want to see how someone else has managed their career.
iPhone talk from Desert Code Camp 09
Getting Started with iPhone Development from casademora on Vimeo.
On June 13, 2009, I gave a presentation on the extreme basics of iPhone development at Desert Code Camp 5. This talk goes over what you need, and walks through some code with regard to building a basic Twitter Client for the iPhone.
360iDev Schedule for September
This is going to be a whirlwind year for me. It was my first ever Railsconf, my first ever WWDC, and now it will be my first ever iPhone developer conference. While I was at WWDC last week, the guys who run 360idev" were running around with a few specials. One of which was a since 40% signup discount for WWDC peeps. I’m excited to head back to Denver yet again (my second home) and hang out downtown with more iPhone developers. It sounds like fun already! See you in Denver in September