iPhone development talk in Philly

Last Tuesday I travelled down to Philadelphia to speak at the Philly ALT.NET meeting. Brian Donahue, the group organiser, invited me to talk about my experience of developing iPhone application from a .NET perspective. Over 20 people turned up and I was surprised that most of them already owned an iPhone and a Mac (remember this is a .NET group afterall).

I began with listing out the things require for iPhone development (hardware and software), then moved onto comparing Objective-C/Xcode with C#/Visual Studio. I showed a quick code demo to illustrate my points on language and environment differences. Finally I talked about the good, bad, and ugly things I feel about iPhone development up to this point.

This is the first time I gave this talk and feel the Philly audience got good value from my experience. The event was hosted at Drexel University campus and a few of the iSchool students were in the audience. One of them even came up to me afterward and asked whether I’d be interested in doing more talks on iPhone development for iSchool!

Here are the slides I presented:

 

 

 

One of the attendee also took some videos and I’ll post them as soon as I receive the link.

 

NY Alt.NET April meeting

Last Wednesday's NY Alt.NET meeting topic was Continuous Integration. Being a ThoughtWorker and had worked on build and deployment project at an enterprise level, it fells naturally to me to not only prepare the presentation material but also present it.

I was a bit nervous about the presentation, as it has been a while (over a year) since I last stood up in a group setting and presented. But I think it went fine, though of course there are always improvement to be made.
I also have the honour of speaking at Philly Alt.NET meeting on May 5th. The topic is on iPhone development for .NET developer. It is something completely different and still pretty new to me.

Read and post comments

|

Send to a friend

Alt.NET Seattle ’09

Couple of weekends ago, I was at Redmond for the Alt.NET Seattle conference. As this was my second time there, I was no longer a Open Space/Alt.NET virgin. Just like last year, an amazing amount of discussions were packed into two full days. It was very difficult to pick which sessions to attend, having to decide whether to sit in a technical discussion or a meta-discussion. But with so many people recording videos, it is almost possible to not miss anything. We are not quiet there yet, but I am sure in the future every session would be recorded/streamed in some manner.
Ward Cunningham Keynote

Ward Cunningham showed us the work he did during his time with the Eclipse project on unit testing on a new level of complexity. He calls it SWIM and was implemented in PHP/HTML/CSS/JavaScript. He proposed to start a new open source project to implement the same concept in .NET. This create enough interest to spawn off a separate session later this weekend. (The test case runner was provisionally named Swim Runner. Personally I think it should be named Swimmer!)
Encouraging Open Source in .NET

Last year in Seattle, a similar session was convened to discuss how to create more buzz and interest in open source projects in .Net space. This year’s session centered around how we can get more open source projects to start, worked on, and succeed. Scott Hanselman hosted this session and asked what the community can do. Should Microsoft give Oren Eini a mail-order bride so he can finish LINQ-to-NHibernate? (Joke) What about OSS projects adaption by VB.NET developers?
.NET/Mono on Mac, Linux, and iPhone

Miguel de Icaza of the Mono Project hosted the session. He showed us the tooling and technique to develop iPhone app/game using the Mono stack on the Mac. He also demonstrated autogeneration of linux bootable image with pre-configured apps. (Side observation #1: only a few people at last year Alt.NET Seattle had iPhones, this year very few people has phones that *isn’t* an iPhone. Since this year’s event was just before MVP Summit, there are lots of MVPs there with iPhones! Just to show loyalty does not lie with brand but usability! #2: Less than 1/3 of attendees aware of Twitter last year, this year, very few are *not* on Twitter.)
Why so mean?

Hosted by Scott Hanselman. We explored why there is an perception of elitism in the software developer community. Why C# developers talk down to VB.NET developers, why average Microsoft developers are dimmed un-savable. This discussion led to a new session on Sunday about teaching, ALT.NET Pedagogy.
Oxite Retrospective #2

When the Oxite project (a sample blogging engine created using ASP.NET MVC framework) was put up on CodePlex, it created a huge controversy in the Alt.NET community. This is the second part of the retrospective on the project and the aftermath. One of the Oxite team member from Microsoft joined us on Sunday and gave his point of view from the inside.
When to use F#?

With F# being the first class language within the Visual Studio ecosystem, functional programming is gathering more interest. When is functional programming be appropriate for a .NET project? What type of problem would it solve better than plain old C#/VB.NET? Why not just use F# for everything?
Abstract Test Assertions

The ASP.NET MVC Contrib project relies heavily, of course, on TDD. An interesting problem arise when contributors want to develop using different unit testing framework. This session explored the idea of abstracting test assertions so that any frameworks can be used for the project, and what technique should be employed to achieve that.
I’ve recorded all these sessions on video for those who couldn’t attend. Scott Hanselman also streamed live via Kyte.tv for a number of sessions. My videos can be viewed on Vimeo, with the rest of video links on the Alt.NET wiki.

 

NY ALT.NET First meeting: OR/M

Tonight was the first NY ALT.NET meetup and I think it has gone very well. Over 30 people turned up and many have not participated in a fishbowl style discussion before. Stephen Bohlen first gave a quick, 10 minutes, overview of OR/M. Then after a quick pizza break Don Demsak, Stephen Bohlen, and Mark Pollack kicked off the discussion and soon more people joined in the fishbowl experience. After the meeting, I talked to a few attendees and all of them gave very favorable feedback about this more interactive style of meetup, verses the traditional presentation by a speaker style.
On the technical side, we decided to stream the video live after we received a few requests from people who couldn't attend in person. The logistic of setting a stream up using Ustream.tv is trivia but there are a huge amount of fingercrossing and wood touching because everything had to come together at the same time:
  • Mark's DV camera talks to my Macbook Pro via Firewire and record to tape at the same time.
  • Ustream.tv's player recognized Mark's camera
  • Ability to get onto Microsoft's guest wi-fi network
  • Ability to find a place to put the camera that doesn't get into people's view but close enough to get decent sound reception
Having said that, I can't imagine streaming live video on the internet to the public 5 years ago (or even 2!) without huge infrastructure expense, lots of testings, and poor results. Now, it is free, easy to setup, and provide great user experience.
Here is Stephen Bohlen gave an overview of OR/M before the main discussion (~10 mins):

The main discussion (~1 hr 47 mins):

Read and post comments |
Send to a friend

NYC ALT.NET user group

A group of like minded .Net developer and I have started a local ALT.NET user group for the NYC area. Our first meeting will be held on Thursday, September 25th, 6:30 PM at the Microsoft office in midtown Manhattan.

The topic for the first meeting is: Object-Relational Mapping: the philosophies and the tools. More details can be found on our user group web site: http://nyalt.net/ or you can RSVP directly on the meetup.com page.

Read and post comments |
Send to a friend

Video of Alt.Net Opening

You can probably see me standing in the back, as I got there late!

Read and post comments |
Send to a friend

Come mingle with me

It has been a long time since I've worked on the ecto/Windows code in any serious manner. Sure, I've fixed a few bugs here and there as well as updating various libraries that ecto uses, but the last time a major feature was added to the code was at least 6 months ago, if not longer. That doesn't mean I have not given any thoughts to the development of ecto during that time. I had many ideas on and off on either new features or how I would code it now if I were to start from scratch.

Well, last week I officially started jolting down some of these ideas and tasks. I've tried recording my ideas down 'properly' and used it as project planning before but had never found a tool that worked well. I've tried the basic (text files) to complicate (bug tracking application like Mantis). This time I thought I would try Mingle, an Agile project planning tool developed by (yes, my employer) ThoughtWorks. *

So far, my experience is pretty positive. I've recorded my ideas on new features, improvements, and tasks down in Mingle. Each of these is stored as a 'story card' and Mingle allows me to tag it, set properties (which I can define my own), and add description. It is the description part that proves to be powerful to me. Mingle allows a kind of wiki style markup in the description so I can add URLs, format the text, or even link to another story card inside the description. This means I can record links that are relevant to the story (e.g. product page for new feature, API documentation for references, etc.) right there so I don't have to look for them in my bookmarks or google it every time I need them.

I can also record bugs or issues in Mingle and reference them back to ecto's support forum so I won't lose track of the bug as it gets push down the message board. It is not a full blown bug tracking application such as Trac or Bugzilla but I don't need those features anyway as I am working on my own.

The iteration planning aspect of Mingle is of less relevance to me since I won't be forcing myself into a strict weekly or bi-weekly schedule, likewise with the very nice and powerful graphing and reporting features of Mingle.

We'll see how well Mingle will hold up as a repository of ideas and knowledge when I slowly move into the actual coding phase.

* I've started using Mingle during their beta testing phase before I joined ThoughtWorks. But having the inside track on what's coming in the next few versions certainly helps me decide on trying it out!

Read and post comments

|

Send to a friend

Change of perspective

Yesterday I've finally decided to apply for a new job, as my current one no longer excites me. In fact, it has been this way for the last 9 months so it has been long time coming. Now that the decision had finally been made I am much more mellow about my current job. Whatever happens in the office, happens.

So far I have not been expanding too much effort on job searching but I did apply for this .Net Application Architect job, which if even I just get an interview, will make my boss jealous to no end.

Read and post comments

Dallas Summit

Right now I am sitting at the Newark Airport waiting for my flight to Dallas to arrive, blogging offline. Every year, Thomson brings technology people from all of their organisations together to Texas to exchange ideas, compare experience, and most important of all, do some networking. So for the next two days, I will be spending time with people I hardly know but hugely important to my career, talking shop and mixing business buzz words with technology TLA (Three Letter Acronym).

When my company was acquired by Thomson back in March, we almost missed the opportunity to be part of this technology summit since the deadline for registration had already passed. But after a few well placed calls to high level development management, invitations were extended to my boss and me. It would be a big loss for us if we were to miss this summit due to its annual nature. And my boss and I believe we can bring a lot to the Thomson organisation with our Agile practice and .Net development experience (Thomson has only recently started on both, whereas we have been doing them for over 3 years now). Conversely, Thomson’s extensive knowledge in business analysis, software development process, and functional testing with FIT (Functional Integration Testing) would be very useful for our own project.

One decision I had to made this morning is whether I should bring my PC laptop or my PowerBook with me. Bringing the PC laptop means I can work on ecto or any work related programming while I am in Dallas but would I actually have the time or the inclination? With the PowerBook, at least I can blog with ease using all the tools that I love but I’ll have to be careful about letting Thomson people know about the Mac. If only it is a Macbook Pro so I can at least say I am trying out the new Microsoft development tool, Silverlight, on the Mac. And I can always dual-boot into XP on the Macbook Pro if I have to. Flimsy excuse, I know, but it is better than nothing. But I can’t really justify the cost of a new laptop, even a used one from eBay due to my lack of travelling, business or personal. So my trusty G4 800MHz PowerBook has to last for a little longer.

Oh, one last thing. Our official Thomson titles have been announced yesterday. Almost everyone keep their titles apart from me. I got ‘demoted’ from Senior Manager of Development to Lead Software Engineer. No change in pay which is good. How do I feel about the ‘demotion’? I think it is a good thing. Senior Manager implies a degree of managerial tasks that I perform when in reality there is nothing for me to manage unless my boss is out of office for extended period of time. So the new title reflects much more in line with my daily responsibility which can only be a good thing. Hey, they can call me a janitor as long as they keep paying me the same!

Read and post comments

Create a free website or blog at WordPress.com.

Up ↑

%d bloggers like this: