Meetups

Developer Day Experiences

Developer Day Sign

In an earlier posting on this site, I mentioned that I signed up for Developer Day. Yesterday, I drove to Boulder to attend the event. It was a brutal experience getting there as the first ice storm of the year had just hit. What should have been an hour and half drive (tops) ended up being over two and half hours. The roads were covered in black ice, visibility was low, a section of I-25 to Denver was closed due to a major accident, a lady slammed on her breaks (you should never do that on ice) and nearly spinned her front end into the side of my car, etc. In essense, I really shouldn’t have been traveling. Yet, I made it unscathed and glad I did.

The following are some observations, notes, reflections, etc. from the event.

The Passionate Programmer by Chad Fowler

I didn’t get to hear Chad speak, as mentioned above, but his book The Passionate Programmer is worth checking out.

TurboGears: An Exercise in Natural Selection by Chris Perkins

I had finally arrived at the conference by this time only to catch the end of this talk. I haven’t been following the Python crowd much but what I got from Chris was that the web frameworks in this space are still too disparate. There is nothing like Rails in the Ruby realm where one framework is emerging as a leader. It seems that Chris is pushing TurboGears as one solution to this problem.

The Cloud - Real World Applications and Pragmatics by Rob Sanheim

In this talk, Rob talked about using Chef or, more importantly, Chef Solo. Chef Solo requires less overhead and is a great way to get started without having to get mired in complexity of the more advanced Chef features. Basically, both allow you to write less code and use “cookbooks” which automate a lot of what you need for managing servers in the cloud. These cookbooks can be altered and modified for your needs creating a living, personalized, and updated cookbook for your unique situation.

BTW, the Relevance team has a continuous integration solution called RunCodeRun which might be of interest to some.

Playing Nicely with Others by Jeremy Hinegardner

Jeremy gave a talk on the various tools and languages you might need to get your job done. He mentioned several tools but I’d like to point out MongoDB and CouchDB as alternative database solutions to relational databases. I’ve not had a chance to play with these, myself, but they are on the radar. As for more tools you might need to be aware of, well, check out my Ruby page. That will keep you busy for a while.

Lightning Talks

These were a lot of fun. There are two I’d like to point out. The first was by David Eisinger who’s intro to Ruby loops, blocks, conditionals, etc while producing rap mixes with the MacOS system voices was hilarious. It was a good technique for introducing the language to newbies while keeping it entertaining. The second talk was by Jess Martin who emphasized the “right way” for developing CSS style sheets. BTW, you can find his slides here. There are a few things to take away from this talk:

  • Collapse your CSS, don’t nest it (i.e. keep each style to one line). Trust me, you’ll get used to reading CSS this way and it’ll make it much easier to browse. I’m glad to see more people supporting this practice.
  • Maintain your HTML structure within your CSS stylesheet. In other words, begin your CSS code with a header, then body, and finally footer as you would when building your HTML. Again, much easier to browse and all of it is in one place.
  • Don’t split your CSS into multiple files. Keep one and call it screen.css. In some case you might need a print.css or ie.css but that should do it. You might also need a reset.css or jquery-ui.css, which is fine as well. However, in the case of reset.css or jquery-ui.css, don’t touch these. It makes it hard to upgrade and maintain if you do.

I’ve been practicing these CSS guidelines for some time so, again, awesome to see more people promoting these practices. Although, Jess did mention that its not a bad idea to create CSS IDs and/or classes to mimic your RESTful routes. For example, /public/tasks could be #public #task { color: #000; }. That’s an interesting idea and worth giving more thought.

Stepping Up: A Brief Intro to Scala by Derek Chen-Becker

This was an excellent talk and some of the best exposure I’ve had to Scala since I’ve seen so little of it. That said, if I wanted to couple legacy Java software with a more productive language, I’d go the JRuby route instead of Scala or even Groovy. Scala is an interesting language though and still in its infancy.

Core Animation on the iPhone and Mac by Bill Dudney

Fun talk and demo of animations with Objective-C. There is a lot of amazing things you can do with Objective-C libraries in this space, a lot! I can’t help feeling a little weighed down by the ceremony of the language, though. Again, I’m spoiled with Ruby. It’s hard to get excited about a language where you are forced to type more than you have to. Like Bruce, later mentioned after his talk below, there is definitely a lot of square brackets in Objective-C.

The Archaeology of Language Features in C++, Java and Python by Bruce Eckel

I really enjoyed Bruce’s talk on the archaeology and evolution of programming languages over the years. Granted, this was a limited view where the focus was on C++, Java, and Python. It is clear that Java is a legacy language now. To emphasize my point, I think its best if you see what fellow attendees had to say in this regard:

  • chadfowler Today at #developer_day, Bruce Eckel expressed his belief (and pleasure therein) that Java was becoming a legacy language.
  • nealenssle Bruce Eckels: “Java is likely going to become a legacy language.” #developer_day
  • digokili Dynamic languages are efficient and not afraid to be improved by breaking backward compatibility #developer_day

BTW, you can find these and more by searching for #developer_day on Twitter. Oh, and you might want to read Seeking the Joy in Java.

I would love to see this talk expanded to cover Smalltalk, Objective-C, Ruby, Scala, etc. In fact, a pros and cons matrix of each language with additional links, footnotes, etc. would be handy. This way one could delve deeper into each language to easily study how it ended up the way it did, the choices made, etc. All good stuff.

Final Notes

The TechStars office is awesome. I’ve watched Andrew Hyde produce various videos within the TechStars office before but to experience it first hand was nice.

There were some problems with the event:

  • The TechStars address was easy enough to find but the door to the cafe was locked and there was no sign indicating what to do. I later found out there was a second door with a note that you needed to call Ben in order to get in. Boo.
  • For some odd reason, no one could figure out how to turn the heater off for the building. The entire day was a sauna. I’m sure the energy bill is not going to make someone happy.

It was fun following the #developer_day Twitter feed while listening to the talks. Good to see people tuned in and providing feedback. I did find myself wishing I could hold up my iPhone over the crowd using some kind of augmented reality app that would show me what people were saying, in real-time, above their heads. Yeah, yeah, I read too much science fiction…bit it will happen…soon.

I did get to speak with Ben briefly about Haml. He agreed that it sucked as well. In fact, I think the words “devil” and/or “evil” were used but my memory could be bad. Fine by me, I hate Haml as well. I do like LESS for CSS though. As for an HTML template better than ERB…well I don’t have an answer to that as of yet.

Spending a dedicated day together with fellow passionate programmers can’t be beat. I wish I could have stayed longer with the crowd into the evening but I had a long drive home. Glad I went despite the weather.

Sunday, October 11th, 2009 Meetups No Comments

Developer Day

Developer Day Sign

In case you haven’t heard, Developer Day is drawing near and is scheduled for October 10th (Saturday). It is being hosted by Vigit Labs and Relevance, led by Ben Scofield, and will be held in Boulder, CO.

I, myself, have registered and am looking forward to a day of learning and mingling with my peers. Early registration fees are $50 only. If you don’t register early, the normal price is $75 which still isn’t bad. The day starts at 8:30am and runs until 5:30pm. Yeah, it’ll be a long day including the drive to and from the Springs but worth it.

If you are interested, register today. …and if you are coming from the Springs and need a ride up, just let me know.

Tuesday, September 8th, 2009 Meetups 1 Comment

Not Just Ruby (NJR)

Not Just Ruby (NJR)

I am happy to announce that Kevin and I have launched the first Ruby group in the Springs today called Not Just Ruby. The primary goal, as with any group, is to make connections, share knowledge, and grow as individuals. While most topics will be based around the Ruby language, we want to encourage discussion in other areas such as design and business, much like the Refresh Denver group.

Our inaugural meeting will be held on February 11th at 7pm at the following location:

Trinity Brewing Company
1466 Garden of the Gods
Colorado Springs, CO 80907
719-634-0029

Additional details can be found here so make sure to sign up.

In the future, I plan to be talking more about the Ruby language on this site but, in the meantime, feel free to check out my Ruby page in order to get started.

Monday, January 12th, 2009 Meetups No Comments

Colorado Springs Open Source Meetup (Blender)

It has been a while since I last attended the Colorado Springs Open Source Meetup. This time the talk was on Blender and OpenOffice. I’m not even going to attempt to talk about Blender except to say I wish I had more time to play with it. Pretty amazing stuff but comes with a stiff learning curve. BTW, a good discussion on Blender can be found by listening to FLOSS Weekly - Episode 25 - Blender if you haven’t checked it out already.

As for OpenOffice, I use it in a rather limited capacity. Actually, I’ve been using NeoOffice but tonight convinced me that I need to drop NeoOffice and check out OpenOffice again. It has improved quite a bit since I last used it. It even supports extensions. Neat.

I spoke with Gary, who runs the Colorado Springs Open Source Meetup, and offered to give a talk on Ruby, Ruby on Rails, etc. I mean, c’mon, the meetup has only been running since January of this year and still, there is no talk of Ruby or Rails? That needs to change. Hey Brett, if you are listening, I think you should fly up. We could give a rather compelling demo of Ruby, Rails, and Google Maps.

Thursday, August 28th, 2008 Meetups No Comments

EclipseCon 2008 - Day 4

EclipseCon 2008 Logo

Today is the last and final day at EclipseCon and here are a few notes (organized by sessions):

Panel: Services Versus Extensions by Neil Bartlett, Jeff McAffer, James Branigan, and BJ Hargrave

The panel discussed the pros and cons of OSGi Services and Eclipse Extension Points with James mentioning how Jazz can fuse the two together. While I could not find an article that would explain all three in detail, I did find Neil Bartlett’s article that compares services to extension points.

For those that might want to follow this space more, I suggest visiting Neil’s blog.

Creating Your Own Extension Points: It’s Easier Than You Think! by Mark Melvin

The PowerPoint slides are worth checking out.

Article Series - EclipseCon 2008

  1. EclipseCon 2008 - Day 1
  2. EclipseCon 2008 - Day 2
  3. EclipseCon 2008 - Day 3
  4. EclipseCon 2008 - Day 4

Tags: ,

Thursday, March 20th, 2008 Meetups No Comments

EclipseCon 2008 - Day 3

EclipseCon 2008 Logo

It is day 3 at EclipseCon and here are a few notes (organized by sessions):

Eclipse 4.0 by Steve Northover, Jeff McAffer, Jochen Krause, and Mike Wilson

  • The goal is to build a better desktop application, make it easier to build plugins, and bring Eclipse to the web.
  • The biggest news seem to be around the Rich AJAX Platform (RAP) which is a subset of SWT to bring Eclipse to the web.
  • The Eclipse versions are splitting. 3.x will be supported into the future while 4.0 moves forward. Changes applied to 4.0 will be applied to 3.x when apt.

PDT - The PHP Development Toolkit by Assaf Almaz

This talk had very little content as it was mostly an overview of what PDT 1.0 currently does and what is going to be new in PDT 1.1. It will be interesting to check out the new PDT 1.1 features when it is released this September (the first milestone is in May). PDT 1.1 will be built upon Eclipse 3.4 and WTP 2.0 (although the presentation mentioned 3.0 so I am confused about that).

Check out the PDT Project page for more info.

The Future of SWT by Silenio Quarti and Steve Northover

A significant amount of work has gone into SWT but more is needed to work within HTML, Flex, Silverlight, etc. Some demos where shown displaying SWT cross-compiled to run in Flex and HTML + Dojo Javascript library. There are implementations for WPF and Cocoa as well. Check out the demos.

Introducing the new Web Tools Javascript Features by Phil Berkland

The JavaScript Development Toolkit (JSDT) is a sub-project of the AJAX Toolkit Framework (ATF) project and currently in incubation. The talk started out with a brief overview of JSDT and then quickly dived into a demo of JSDT features to write and edit JavaScript code. JSDT looks to be more interesting than JSEclipse but check out the demos for more info.

Article Series - EclipseCon 2008

  1. EclipseCon 2008 - Day 1
  2. EclipseCon 2008 - Day 2
  3. EclipseCon 2008 - Day 3
  4. EclipseCon 2008 - Day 4

Tags: ,

Wednesday, March 19th, 2008 Meetups No Comments

EclipseCon 2008 - Day 2

EclipseCon 2008 Logo

Another day has passed at the conference and here are a few notes (organized by sessions):

How eRCP stacks up against Android and other Mobile Rich Client Platforms by Ken Walker and David Girle

Ken and David built web apps using the following technologies:

  • eRCP: Supports a very small user base. Not many apps are developed using eRCP.
  • Android: Easy to setup. Only needs the SDK and ADT (Eclipse plugin). Really brings the desktop and mobile world together. Supports JDK 1.5.0. UI is a bit ugly though. Easiest to use but works in an emulator only as no devices exist yet.
  • WebKit: Has a popular and large user base due to the iPhone. Works on Android.
  • Others (things to consider): Java ME + MIDP 2.0, Adobe Flash/AIR, Silverlight, and GWT + Google Gears.

Based on this discussion, I would focus on the WebKit since it has a good user base already and can be easily tweaked to run on Android as well.

Java Annotations by Walter Harley

I’m glad I don’t have to work with annotations much.

Android and OSGi: Can they work together? by Neil Bartlett and BJ Hargrave

The answer is yes. Neil and BJ demonstrated running Equinox and Concierge on Android and made mention of a couple other OSGi technologies:

Code from the demo can be found here.

Introduction to the Jazz Technology Platform by John Wiegand

  • Jazz is built upon layers (listed from top to bottom): Clients (Eclipse, Visual Studio, etc.), Jazz Server Kernal (works with Jetty and Tomcat), Databases (state is stored as structured items stored as XML and arbitrary content stored as BLOBs), and finally the Equinox OSGi Framework.
  • Supports Lucene full-text search.
  • Authentication is performed by the Jazz Team Server communicating with a corporate directory server (LDAP).
  • Teams have projects and projects have processes.
  • In the future, Jazz will support more of a Web UI and communication protocol.

Probably best if you just check out the Jazz Demo Videos rather than refer to my notes.

Android, OSGi & Cloudsmith: Cool Things Come in Threes by Ken Gilmer, Lucas McGregor and Henrik Lindberg

Interesting talk that discussed using web technologies to develop, test, and use applications and hardware. For instance:

The demo showed a picture taken by a Bug Labs device and uploaded to an Android emulator.

Introduction to Groovy by Andres Almiray

  • Groovy is a an agile and dynamic language built on Java.
  • Looks like Java code which means the learning curve is very low for a Java developer.
  • Compiles to Java byte code so that it can run anywhere Java does.
  • You can use dynamic or static typing.
  • Variable interpolation can be used: ${my-variable-to-substitute}
  • Exceptions can be caught but if you choose not too catch them, they will be promoted as runtime exceptions by Groovy.
  • Supports annotations (JSR 175), generics, enums, and closures.
  • Supports operator overloading.
  • There is an Ecipse plugin for developing Groovy code in Eclipse.

In case you are looking for other languages that can compile to Java byte code, they are: Scala and JRuby.

Article Series - EclipseCon 2008

  1. EclipseCon 2008 - Day 1
  2. EclipseCon 2008 - Day 2
  3. EclipseCon 2008 - Day 3
  4. EclipseCon 2008 - Day 4

Tags: ,

Tuesday, March 18th, 2008 Meetups No Comments

EclipseCon 2008 - Day 1

EclipseCon 2008 Logo

EclipseCon 2008 is being held in sunny Santa Clara, CA this week (Monday - Thursday) and I am here attending as well as helping out with a few presentations:

For those of you on site, hopefully you have attended the Band XI presentations this morning and you will join us this afternoon for the final presentation on Device Kit. Otherwise, check out the links for further information as the Band XI team has been doing some very interesting work in the embedded space using OSGi technology.

Even though I am only operating on four hours of sleep (more than I can say for the rest of my comrades) I must say it is great being here and getting a chance to see some of the old OTI crowd. It almost feels like the annual technical conferences held many years ago before IBM consumed OTI.

I’ll be posting notes and content as (or when) I can throughout the week. Stay tuned.

Article Series - EclipseCon 2008

  1. EclipseCon 2008 - Day 1
  2. EclipseCon 2008 - Day 2
  3. EclipseCon 2008 - Day 3
  4. EclipseCon 2008 - Day 4

Tags: ,

Monday, March 17th, 2008 Meetups No Comments

Refresh Denver (Web Business Startups)

Tonight’s Refresh Denver Meeting was about web businesses. Namely, startups and small businesses in general. It was panel discussion led by SuzAnn Brown and Heather Morgan from Launchpad Interactive and Alex King from Crowd Favorite. I didn’t manage to take very good notes this time around so a lot of this is from memory, my own thoughts, and discussions after the meeting had adjourned. Here are my notes and thoughts:

  • Establish a Business Plan - It is wise to have a sound business plan.
  • Create Your Company Entity - A business license is not a bad idea but, more importantly, establish your business as an Limited Liability Company (LLC). Otherwise, kiss your personal assets away when things go bad.
  • Seek Legal Council - You might be savvy or think you’re savvy, but lets face it, your not. Legal contracts, licensing, etc. is tricky and it would be wise to have someone you know and trust on your side to handle this. Take a page from Tim Ferriss’ 4-Hour Workweek book and outsource this instead.
  • Fixed vs. Time and Material Payments - A fixed payment is where you perform all work for a set price regardless of the time or additional resources needed to make it happen. Tricky and sometimes costly as you might underestimate or have unforeseen issues. Being payed for time and materials allows one to scale and get payed for the work done. In either case, it would be wise to establish a clear and well document list of work items to be performed. Also, it is not a bad idea to underbid and overproduce.
  • Source Code Reuse - As you grow your business you might want to think about building a foundation of core software that you can redistribute amongst your various clients. This not only makes things easier for you but saves the client money too. However, ownership of the intellectual property can get murky and is another reason for having an lawyer on hand to ensure both parties get what they want.
  • Education - Check out the HTML Writers Guild and Lynda to get more web training under you belt.
  • Collaboration and Project Management Services - A couple online services recommended by the panel for project management were: BaseCamp and TasksPro.
  • Seek a Mentor - There are free service out there via other business groups and or educational institutions that will help provide objective feedback of how you are doing. Find one, it’ll keep you honest.
  • Remember the Dream - Keep a threshold on what it is you are doing and remember to take a step back and remember what you initial goal and mission was. As with having a mentor around, this will keep your from meandering off track.

Tags:

Wednesday, January 16th, 2008 Meetups 2 Comments

Colorado Springs Open Source Software Group

Gary Hessler has just created an Open Source Software Group for the Colorado Springs area. I have never met Gary or know much about the group but have signed up as a member out of curiosity. If you live in the area, you might want to check this out as well. Here are the details of the first meeting:

  • Date: Thursday, Feb 28, 2008.
  • Time: 7:00 PM.
  • Location: East Library Community Room at 5550 North Union Blvd.
  • Meeting Topic: A general discussion of existing open source software in order to become more aware of what exists today.

See you there.

Tags:

Tuesday, January 15th, 2008 Meetups No Comments