Monday, December 10, 2012

Miami Code Retreat - the Global Day of Code Retreat 2012

This past Saturday, December 8th was a Global Day of Code Retreat. CodeRetreats happen all over the world on the same day and I was lucky enough to notice ahead of time and register myself for the CodeRetreat in Miami. It marked the highlight in an otherwise frustrating week. Here are my thoughts.

So, what is a day of CodeRetreat?

The structure is a series of 45 minute Paired Programming sessions using Test Driven Development. You use a fairly simple programming exercise and each pair implements as much as they can in the timebox, in this case 45 minutes. Each session, the developers pair with a different developer, throw away the code from the previous session, and start over, again implementing as much as they can in the timebox.

The developers were supposed to come with a notebook computer prepared with their environment of choice. I had recently acquired a new replacement Windows notebook and loaded it with every Windows development environment I know how to set-up quickly, particularly Visual Studio C# and C++, Eclipse for Java, and MonoDevelop. I had also installed Ruby for Windows.

How did it go?

I should have taken some photos or video, but I was too busy shaking off some rusty pairing and code-language skills and jumping into the middle of things. I don't remember hearing final numbers, but it looked like there were about 20-25 people in attendance at any point, with maybe about 15 people staying for the entire day.

In addition to C#, I was thrilled to practice Test Driven Development in Ruby and Javascript, which I haven't done much TDD in. Of the few test frameworks people already had set-up, a few were Behavior Driven Development style test frameworks. I also haven't had a lot of experience with those, but was happy to try them out.

I was a bit surprised that none of the people I paired with had ever done Test Driven Development before. I was thrilled that they were all willing to try something new. I wish that I was less rusty in the languages they were comfortable with and less rusty in pairing practice. I like giving people a choice in development environments, but wish that more people had test frameworks already set-up in those environments, myself included.

I felt particularly lost doing BDD in RSpec with someone else that didn't seem to have much more experience in either area than I. But, that is part of the fun in an environment where you can try something new and learning is more important than worrying about whether you finished the exercise or not.

With each session a different constraint was attempted, such as:
  • Keep your functions or methods to no more than 5 lines long
  • Use only the keyboard, not the mouse
  • No talking allowed for the entire 45 minutes
  • Ping-pong: one person writes the test, the other gets it to pass 

What are my thoughts, take-aways, etc.?

CodeRetreats are similar in some ways to hack-sessions, coding dojos, XP-day events, and workshops I've attended in the past. I've almost universally enjoyed events with developers that are passionate enough about their craft to do it for fun or learning in their spare time. And by "doing it", I mean not sitting and talking about doing, but rather actually sitting down and working together, even if it's for just a few minutes. The CodeRetreat in Miami was no different in the positive energy, craft practice and learning that took place, for me anyway.

My main suggestion for improvement would be to present a bit of introduction to TDD before getting started. Particularly if a significant make-up of the group is developers who've never done it before. Rather than a mini-lecture, I'm picturing a pair of developers showing one or possibly two iterations of red-bar, green-bar, and refactoring.

I've been wanting to see a South Florida Agile group for a while now. It was great to meet some folks at Ultimate software in Weston a few months ago that are using some Agile practices. It was great to see that folks at the Independent Purchasing Cooperative, and a few other local companies, are doing Agile as well. Perhaps we can get enough Agile-minded folks to get an Agile or Software Craftsmanship group meeting and practising a bit more often. I particularly enjoy networking, learning, and practicing our craft with people that are similarly inclined.


Thank you so much to Tom and Carlos Ordonez of Creatus Angels for organizing this fantastic event in Miami. They also treated to a couple of rounds of Beer at the World of Beer afterwards. I couldn't imagine a better way to kick of the Holiday Season, being the first night of Hannukah, than with some like-minded Agile developers over a couple of beers.

Thank you to Bryce Kerley with Basho for doing an excellent job in the role of facilitator of the event.

Also, a huge thank you to Ed and the rest of Independent Purchasing Cooperative for providing the space and hosting the event. These are the guys behind the food, equipment, technology, services, etc. used by Subway Franchises.

Lastly, thank you to everyone that attended for such a fun, positive experience. Particularly those that had to put up with my rusty Ruby and Javascript language skills.

Jason Nocks

Thursday, November 1, 2012

Happy Halloween

Wow, it's been about a year since my last post here. Ugh. Went to the corporate IT world last year about this time. I'm back now. Have some interesting things in the works. For the moment, I'll just share some Halloween-related fun.
Did you have an enjoyable Halloween? Lenny got in the spirit:
Scary, no?
It's funny how perspective changes things. I hang my wetsuit up in the shower all the time to let it dry out after rinsing it. It has shower doors and no curtain rod, so the shower head works.
The other day, I opened the shower from the other door, and was amused by the same scene from a different angle:
So, even my shower got into the Halloween spirit. LOL.
Anyways, I needed to rethink some things and come back from a different angle. We'll see what happens.
Have fun.

Tuesday, November 8, 2011

Buffer for Facebook - Sign up for early access

If you aren't familiar with @bufferapp, check it out. You can find more on their site:

I've been using it on Twitter for a little while now. I love the ability to find something I want to share at some odd hour of the day/night. I add it to my buffer, and it gets posted by @bufferapp at an hour that I think more people might see it. In the past, I would try to remember to do this manually, make little notes, etc. But, @bufferapp makes this so much easier.

Then, a couple of weeks ago, I found out that @bufferapp was adding facebook access. So, I contacted @bufferapp and they nicely signed me up for early access. Initially, preview images weren't showing up on facebook posts. So, I didn't use it much. That seems to be fixed. Now, I highly recommend you check it out for yourself.

Click on the following link to try out Buffer for Facebook:
Buffer for Facebook - Sign up for early access.

Anyways, thank you @bufferapp. You provide a very helpful service. There have been a couple of glitches here and there. Seems like typical growing pains, but these seem to be getting ironed out.

Hopefully, the folks at @bufferapp will add Google+ integration once the Facebook integration is complete.


Sunday, October 23, 2011

Android Lionfish Tracker App

You may already know about the problem with Lionfish. If so, feel free to skip to the bottom. For everyone else, a bit of background info.

What's the problem with Lionfish?
A few Lionfish Quickfacts (provided by NOAA, REEF, Simon Fraser University and USGS):
  • In the Caribbean a single female Lionfish can spawn over ~2 million eggs/year
  • Reproduction occurs throughout the year about every 4 days
  • Lionfish eggs are held together in a gelatinous mass and are dispersed at the ocean’s surface by currents, where their larval duration is ~26 days
  • Lionfish are generalist carnivores that consume >56 species of fish and many invertebrate species, with prey up to half the Lionfish’s body size
  • On heavily invaded sites, Lionfish have reduced their fish prey by up to 90% and continue to consume native fishes at unsustainable rates
  • Native predators exhibit avoidance for Lionfish
  • Lionfish have very few parasites compared to native species

In summary: They were introduced by mankind, wipe out local fish populations, have no natural predators, and reproduce like crazy. The result, if unchecked, likely looks like this:
Image provided by REEF from a dive site in the Bahamas
Perhaps an image from the USGS Lionfish sightings database can help people visualize the problem. In 2007, Lionfish were first sighted off the Bahamas. The current distribution map from the USGS database is as follows:

What can you currently do about it?

Perhaps one of the most potentially effective solutions is to eat them!
Check out some Lionfish Recipes or get your own cookbook:

The cookbook from REEF has a lot of info about Lionfish
including how to capture, clean and prepare them.
Why an Android App?

A lot of divers come to the Florida Keys. Many of them have heard of the Lionfish problem. Many of them want to do something about it. Yet, I hear many ask, "Where are the lionfish?"

In contrast, local divers who dive lesser-known dive sites frequently are overwhelmed by how many Lionfish there are. I believe that in the areas we dive a lot, commercial dive operators are better trained in removing the Lionfish and do this regularly. So, the most frequently dived sites are probably the most free of Lionfish.

I'm thinking it would be great to connect these folks. With smartphones and social apps available today, this seems like a problem that technology can help. Having previously run a software development company and worked on many mobile applications, I feel like I am in a position to help.

When I looked at the USGS invasive species database, I was disappointed at how few Lionfish sightings and/or collections were reported recently. I believe that many people initially report Lionfish sightings and then report them much less frequently. So, adding information to this database would seem beneficial to the research community as well. Others may also release a Lionfish App. If we are all pulling information from the USGS database and putting it back into that same database, that would just result in more data.

So, I started working on an Android Lionfish Tracker App. Here are a couple of screen captures. The app displays an icon representing Lionfish sightings. I also added a diver icon to represent dive sites. The icons are ones that were freely available that I've modified slightly for this app. When you click on either, more information is presented. If you press and hold, even more information will be presented. I'm building the app up incrementally, testing it and getting feedback along the way. I will likely also publish the source code under a GPL licenses (Open Source Software).

How can you help this project?
Think this project is worthwhile? Want to help? First, start by doing one of the items in the "What can you currently do about it?" section above. Then, the following would also be appreciated:
  • Feedback! Comments, concerns, questions, or suggestions are all welcome. Please let me know what you think I'm doing either right or wrong. Words of encouragement are certainly welcome!
  • If you are in South Florida, please consider becoming an alpha/beta tester.
  • If you think you can offer help, please contact me via Twitter, Google+, Facebook, LinkedIn, Email, etc. My username is "jasonnocks" on all of them.
  • Monitor this project. Share it with your immediate friends/associates. If you know someone that you think could help, please put us in touch. If you know someone that you think would be able to benefit, let them know about it. 
I really need to start putting together some alpha/beta testers. I'll be contacting dive professionals in the Key Largo area soon to see who wants to be an alpha/beta tester. If you are excited about that idea, please let me know. If not, feel free to say so.

REEF has done a great job making people aware of the problem. I hope this helps with the effort.

Thank you in advance.

Monday, October 17, 2011

Divers Direct Shark Dive in Roatan

Last month a few Divers Direct employees had the pleasure of travelling to Roatan and dove with Anthony's Key Resort. I'm very jealous that I didn't get to go. Here's a video I edited from footage shot by Jason Farr with Ron Spodnik's camera. I work with Jason and Ron at the Key Largo Divers Direct store.

For most of the dive, the sharks hang around, swimming near the divers. Later, the sharks swarm as they finally get into the bucket. Ron can be seen with the red fins taking beautiful shots with his awesome still-photo camera set-up. Jason Farr turns the camera on himself a couple of times. I had a lot of fun editing the footage.

I had the pleasure of doing a Shark Dive with Unexso on Grand Bahama Island a few years ago. Wish I had a GoPro HD Hero back then. if you haven't been on a shark dive, it's an awesome experience. Give's you a different perspective. I added a couple of still photos I took from that dive.

All of the video was recorded with a GoPro HD HERO camera. We sell them at Divers Direct. With a color correcting filter and some other tweaks and tips, they take excellent video and are a lot of fun.

This video was shot with a flat port, but not recorded in 1080p mode. With the HD Hero, when you record in a lower resolution than 1080p, it goes into a wider angle shot (which is what you need the dome port for). This leaves you with some of the camera's bezel in the shot. It looks like this:

In a future post, maybe I'll put up some comments on how to crop the video, etc. I apologize for the black bars in the resulting video. I wanted to give as much of the video frame that was left after cropping out the bezel.

Oh, and I can't give enough shout-outs to the ccmixter folks. The music, Pulse, is from George Ellinas on ccmixter.

So, what are your thoughts?


Saturday, October 15, 2011

Google+ integrating YouTube

In case you hadn't noticed, Google+ added YouTube integration.

First reaction:
I like the Google+ side much better than the YouTube side. I wanted to share this video of a boater nearly running over some divers at a popular dive site, the "Blue Heron Bridge":

From Google+ I can either search for YouTube videos and share them or insert a link to the YouTube video. In either case, an embedded preview and player show up. Unfortunately I don't get the same behavior in comments.

I wanted to add this video I shot at that very dive site, the "Blue Heron Bridge":

All-in-all, the Google+ side seems to work OK. Although my YouTube videos still don't show up under the "Videos" tab in the Google+ profile page. Maybe there's some processing delay, we'll see.

The YouTube side seems lacking.

In YouTube, I now see more activity on my YouTube page. When I connected my YouTube and Google+ account, I also connected my Twitter and Facebook accounts. Check out this link, "Connect YouTube with Google+".

However, when it comes to pushing content from YouTube to Google+, I can "+1" the video or create a hangout. Have I missed something?

What I really want is to just share the video on Google+. I'm not really surprised that you can't do that. You can't easily share any web pages on Google+ without launching Google+ and sharing it from there. Or, again, have I missed something?

When is Google+ going to make it easier for people to just press a "Share on Google+" button? The whole +1 thing is nice. But, sometimes I really want to just "Share on Google+".

When people are already using YouTube, I don't think they want to have to go to Google+ to share the video they are looking at.

Just my thoughts. Happy to see progress being made integrating YouTube with Google+.


Saturday, October 8, 2011

A Response to "Stallman is Wrong on Steve Jobs"

There's a bit of uproar going around right now. Seems to have been started by Joe Brockmeier in his post "Why FSF Founder Richard Stallman is Wrong on Steve Jobs" He writes that, "This time, Stallman says that he's glad Steve Jobs is gone." There's a lot of confusion in this post. I'll try to limit my response to the main point. The post seems to imply gladness over the recent event, the death of Steve Jobs.

The best example of this confusion is when Joe Brockmeier writes, "I'd love it if Stallman would retire,... As long as he's alive, there's hope he might change. I'd never be glad that he's gone. And I'm certainly not glad that Steve is."

Mr. Brockmeier is using the word "gone" to imply "dead". The full quote in Stallman's post, "I'm not glad he's dead. I'm glad he's gone" clearly does not use the word "gone" to imply gladness over his death. How do we know this? Because he uses the words "not glad he's dead". The quote is actually from a Chicago Mayor over a deceased corrupt Mayor. It seems Stallman thought the quote conveyed his sentiments.

Mr. Brockmeier himself writes "I'd love it if Stallman would retire". The word "retire" is probably closer to the definition of "gone" in the quote used by Stallman again because it includes the words, "not glad he's dead".

Admittedly Stallman can be REALLY hard to understand. Here's the full post that elicited the uproar:

Steve Jobs, the pioneer of the computer as a jail made cool, designed to sever fools from their freedom, has died.
As Chicago Mayor Harold Washington said of the corrupt former Mayor Daley, "I'm not glad he's dead, but I'm glad he's gone." Nobody deserves to have to die - not Jobs, not Mr. Bill, not even people guilty of bigger evils than theirs. But we all deserve the end of Jobs' malign influence on people's computing.
Unfortunately, that influence continues despite his absence. We can only hope his successors, as they attempt to carry on his legacy, will be less effective.

To my knowledge, Stallman has never been about popularity. He sticks to a principle whether you agree with it or not. I'd argue that it is precisely this act of sticking to a principle that separates the Free Software from Open Source Software,

If you are an Apple user/fan, I would expect Stallman's words to be somewhat difficult to understand, and most likely somewhat offensive. But, I hope that you can still see the difference I point out above. Many people use GPL'd software on Apple, Microsoft, and other proprietary systems without any significant knowledge of Free Software, Open Source Software, or Richard Stallman. If Stallman's message is confusing to you, I encourage you to do a little research for yourself.

Personally, I've used Apple products in the past. I may find the need to use them again in the future. However, I choose to use GPL'd software whenever possible.

Last but not least, Cancer is a cruel disease. Sorry to see Steve Jobs lose his battle with it.

Just my thoughts and opinion. Hope it helps.

Jason Nocks