Category: technology

Thoughts on the Ballmer @ WWDC Rumor

So you may have heard the recent rumor that Ballmer is supposed to take up 7 minutes onstage at WWDC. I’ve spent the morning asking myself what this could mean.

If VS 2010 supports developing iPhone/iPad apps, what dose that mean in terms of language? Will VS 2010 support Objective-C? Or will C# compile into binaries that can be run on iPhones? The latter blatantly violates what Apple stated in the iPhone Developer program:

“Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).”

So the only thing this COULD mean, if this is true, is that VS 2010 will support Objective-C, and load in all the Apple CocoaTouch frameworks, so you can develop in Objective-C and CocoaTouch, on a PC and in Visual Studio. This would mean Apple sees the future as mobile, and not Macs, but we knew that already when Apple announced the only design awards for WWDC 2010 would be given out to iPhone/iPad apps, not for Macs.

OK, OK, I’ll RTFM!

Through the course of my progress through the iPhone Developer’s Cookbook, one thing is becoming increasingly clear to me: I did not understand fundamentals of Objective-C.

I really thought that my foundations in java, C#, and even C (thank you, Operating Systems with Jason Nieh) was enough.  I breezed through lists of the differences, read some code, and I was done, thankyouverymuch.  I even skimmed the “Objective-C bootcamp” section and deemed it irrelevant for me.

But with this challenge, I’ve promised myself to read every page of this book.  And you know what?  I really needed to RTFM.  Why?

  • I didn’t realize Objective-C is dynamically typed (even though I should have realized this with all the id variables floating around!)
  • I didn’t know selectors were basically just another way of saying “method name”
  • I didn’t know that if you do a child-to-parent assignment, like assigning an NSMutableArray to an NSArray, you’ll get the somewhat vague “assignment from distinct Objective-C” warning
  • I didn’t know you should always check for if (!self) in your init methods because in case of memory warnings, [super init] can return nil
  • I didn’t know that Apple has a standard on Class methods: any object returned by a class method is returned to you already autoreleased

It’s little things like these that can really trip me up.  So far, the Erica/Alexis project is incredibly rewarding.

Intro to Arduino: Blink, LED, Blink!

arudino-intro

Taking inspiration from the free Physical Computing lecture over at the 3rd Ward, my friend Elizabeth Fuller and her Life Dress, and from Tabs and all her unending enthusiasm, I have started playing around with Arduino. And now, I have my first blinky program!

I ordered my starter kit from hacktronics, but have been following this tutorial from sparkfun. There are a few gotchas, but the commenters have caught most of them. The ones that tripped me up, in case you’d like to try this yourself, were: Read more »

iPad: First Impressions

I wrote this entire blog on my iPad. It took twice the time to get it on the web as it took me to write it, and edit all images, in Pages on the iPad.

No headphones? Really?
The lack of headphones seems unnecessarily cheap, and very un-Apple. I mean, they gave us free water and free Starbucks in the line to get this thing, but no headphones with your iPad? LAME.

Ipad keyboard

It feels a little awkward not to have the tactile response. The keyboard also feels a little bit cramped. I am definitely not spreading my fingers out as much as I normally do on a real keyboard. I am, however, doing my best to type as i do on a normal keyboard (not looking at the keys, left fingers placed on ASDF).
Read more »

Zombies, demystifying the XIB, and console clearing: iPhone Cookbook Lessons

I’m on page 58 of the second edition of Erica Sadun’s “iPhone Developer’s Cookbook,” and here are the most important lessons I’ve learned so far:

  1. Zombies!
  2. What’s inside that XIB?
  3. The Clear Log Button

Setting NSZombieEnabled to YESZombies!
Did you know that, by default, your XCode project is NOT enabled to catch Zombies?  And by zombies, I mean objects that you have released, but then subsequently try to access?  THEY ARE ZOMBIES! They are the dead that still roam.  This is good for horror films, but very bad for your code.  But, by default, XCode’s debugger has no way to catch these nasties.

If you try and access a destroyed or released object, you’ll get back a cryptic objc_msgSend.  But!  If you ENABLE THE ZOMBIES as Sadun suggests, you’ll get back a much better message. In my case, I’m trying to access an array (via this call: CFShow([array self])) that I’ve already released. This gives me the following message in my gdb console:

2010-03-30 21:39:28.180 HelloWorld2[2398:207] *** -[CFArray self]: message sent to deallocated instance 0x1810260

interfacebuilderGetting inside those .xib files
Read more »

iPhone Fluency in 163 Recipes

I recently picked up the Second Edition of Erica Sadun’s “The iPhone Developer’s Cookbook,” that focuses on the iPhone 3.0 SDK.

Now, admittedly, a third edition is now required given that the iPad comes along with SDK 3.2. However, I still feel that completing all 163 recipes outlined in Sadun’s book will bring me from iPhone development amateur to iPhone development expert–and give me a leg up in understanding the next version of the SDK.

So, my goal is to get through all 163 recipes over the remaining 347 days left this year.

Thanks to Julie & Julia for the inspiration on this one.

Dear people underwhelmed by the iPad: It’s the apps, stupid.

I’ve written a guest blog over at Technostraddle on the recent iPad announcement, and why you should be very, very excited: The iPad App Revolution: A Look at the Card Up Apple’s Sleeve

San Francisco Stop 1: Google

The first stop in my whirlwind tour of SF’s scene was to visit my good friend iceman. We were partners in the Operating Systems class back in the day.  We worked like dogs in the appropriately named “Mudd” computer lab, hacking the Linux kernel well into the night. And when you’re sleep deprived and writing C, there’s something super ridic hilarious about “your mom” jokes.

So went our refrain: “dude, you caused a kernel panic!” “your MOM caused a kernel panic.” “yo, we gotta reboot the VM!” “your mom’s gotta reboot the VM.” Trust me, hilarious. HILAR.

So while I expected Google to be wonderful and somewhat magical, I didn’t really expect it to be a slicker, paycheck-generating version of my college experience with iceman.  Except it was.  It was that, and so, so much more.

First, free food at the cafeteria.  Let’s talk fruit (peaches, berries), fruit shots (watermelon anyone?), kale, green beans, salads, sushi.  And then the unhealthy stuff like mac and cheese, cookies galore, boylan’s natural sodas . . . . all in a cafeteria overlooking the bay bridge and complete with binoculars to try and spot sea lions with.

Next is the office itself.  Yes to pool tables, ping pong, yes to big open spaces, yes to disco balls hanging from the ceiling.  Yes to massage chairs, a massage  room, lots of female employees, rock band stashed in someone’s office.  Yes, yes, yes to a SLIDE that was installed over top the left side of one staircase.  EFF YES to using a cafeteria tray to go down that slide.  Which makes you go ten times faster and, if you’re me, it beats the crap out of your knee and skins your arm — BUT WORTH IT!

skinned elbow

So have I sold you yet?  I certainlly have sold myself.  Young, smart engineers, an incredible space, and an undeniable vibe.  Google San Francisco, you may tempt me away from NY.  Or at least over to Google NYC.

Oh, and a giangantic printer that they actually allow employees to use at their discretion.  There is a big “THIS IS EXPENSIVE” warning sign, but no access code, nada.  NICE.

And one last thing. Apple, I may be at your WWDC and loving it, but someone needs to invite me to 1 Infinite Loop in Cupertino and court the hell outta me. Till then, it’s GOOGLE: 1, APPLE: 0.

Notes from the Drupal NYC Meetup 5/13/09

DrupalMeetupViewHere are the notes I took from my first NYC Drupal Meetup.  I highly recommend the group.  I learned an enormous amount, I got to see the legendary Earl Miles, and the space where it’s held is nothing short of breathtaking (think Hudson River views + floor to ceiling windows).    

Drupal NYC Meetup 5/13/09   

 Speakers:

  • Ezra Gildesgame
  • Earl Miles (merlinofchaos)
  • George Weiner, CTO of dosomething.org

   

 Nodequeue The nodequeue module can:

  • Keep track of how to notify users
  • Be used for granular permissions:
    • Ex: separate editors for designers, developers, admins
  • Works very well with Nodes and Panels
  • You can create Views specific to one queue
  • Recently added international support
  • You can have a MAX SIZE to the nodequeue
    • Once you’ve exceeded the max, the oldest story will be kicked out.
    • That’s why nodequeue works so well for lead stories
  • USE CASE: Read more »

PSD to Drupal: High Design in Seconds

Drupal is consistently blowing me away with its vast and eager community.  Now, in my quest to understand Drupal Theming, I have discovered an easy and powerful tool made by the folks over at PSD2CSS.  It’s a free service that allows you to upload a PSD file, and download a zip file containing a new folder you can simply pop into your Drupal install, and Bam!  Instant Theme.

Make sure you drop the entire folder (sites/) into the root of your Drupal install directory

LouiseBrooks theme byThemocracy