Category Archives: Technology

How I spent my software stimulus …

A few months ago, Bill Wagner (my business partner at SRT Solutions) and I were talking about how companies were really pulling together in this economy and doing what they could to help others. I was really impressed with the brillant marketing of Atlassian when they rolled out several of their enterprise tools for $5 for 5 days for 5 users.  Nice.  And so we started to think about what we could do, how we could contribute.  The result of that was the SRT Software Stimulus Lab, which we held last Monday at Automation Alley in Troy.  We held a low-cost, no-frills event.  We told people to bring bag lunches and their own coffee.  We made it cheap for employed developers ($50 early bird) and free for those who are unemployed.  And it was … fun, interesting, and productive.  During the registration process, we asked registrants what they wanted to learn and we found that C#, Silverlight, WPF, and Scala were high on the list, as were version control, unit testing, and functional testing.

We started out the day talking one of the most fundamental and, in my opinon, essential tools: version control.  While most people had used version control in one form or another, many of them had only used tools like Visual Source Safe (which, you will likely recall mainly led to annoyance with your coworkers for leaving files locked).  We talked about tools like subversion as today's tools and looked forward a bit toward distributed version control, like bazaar and mercurial.  We set up a repository for the attendees to access and made sure that everyone was able to do so.

After that, we broke into mainly 2 groups.  One attendee, who I know from the Detroit Java User Group, came to learn more about Scala.  He's a Java developer with a significant amount of experience in Groovy.  I enjoyed my time with him, ane he seemed to have fun too.  I don't think that I sold him on Scala (that wasn't my objective), but I believe he left knowing enough about it to decide if he wants to pursue it further or to determine if he wants to stick with Groovy.  We compared and contrasted some features of the languages, and it was fun for both of us (I think!). People from the other group filtered in and out.  One guy teaches C++ on the side, and he was interested,  Another was a PHP developer who was popping in periodically.  We spent some time looking at unit testing in Scala as well as at a lot of the language features, and the preview of what's to come.  Fun stuff!

The other group worked mainly on WPF and Silverlight. The attendees seemed to really appreciate Silverlight (as well as the demos and tutorials that they worked on with the SRT staff).  The attendees also wanted to delve into multithreaded programming a bit, so the SRT staff came up with some demos and an impromptu discussion on that topic.

All in all, the day was what a Jam session should be: a group of people self-organizing into groups to work on things that they enjoy, free to move on if they changed their minds. I really enjoyed spending time with the attendees and I think that we'll probably do the Lab again sometime.  I know that I won't always get to do Scala.  And that's just fine.  I wouldn't have minded learning more about Silverlight myself!

The continuum of social media

A friend was complaining today that he didn't get Facebook. I mentioned that I didn't either.  That's not actually true.  I do get it; it just serves a different purpose than twitter.  Or LinkedIn.  So I thought that I would write a bit about how I see all of these pieces fitting together.

Twitter is truly emerging as a business tool.  And a political tool.   And social as well, of course.  But for business, it offers a great opportunity to engage your customers (and they, you) in a conversation.  Of 140 characters or less.  So, sure, it's not a meaningful long-lasting relationship conversation. But it's an interaction that you probably weren't having otherwise, so it's a good converation.  It's fleeting.  You "tweet" something and it's out there.  Then it's gone (except for the fact that the web has a long memory.  But for the most part it's fleeting.  It's difficult to carry on a conversation over time, particularly between more than 2 people.  Oh, and it's pretty open.  By default, your updates are available to the world at large. Sure, you can secure them, but then you lose a bit of the charm of twitter (the rapid web-like growth from friends and from sharing a common interest).  So, in short, twitter offers you a way to meet people through friends of friends (and through following threads of interest).  This is extreme networking, and quite effective.

Facebook fits a different need.  It's not open, by default.  You choose your friends, approve them.  With that, in my mind, comes responsibility.  I have to choose who I want to include and who I want to exclude. From a business standpoint, a personal facebook account can collide in an awkward way with your business interests.  Facebook is just that … personal.  People post photos of their families, and their high school friends connect with them.  It can be a bit awkward to have people 20+ years in your past posting side-by-side with your business associates.  I'm reminded of the friend who happily left a family nickname behind when he went to college.  Finally he was free.  Until some high school friends went to visit him at college and unwittingly revealed the decades-old nickname that he had been so happy to shed.  Ugh. 

What Facebook does nicely is promote events to your friends.  When one of them signs up for an event through Facebook, others learn about the event (presuming that they may have similar interests).  That's compelling, but for me, the awkwardness remains.  Facebook is adding some controls to allow you to partition updates to different people.  No matter.  I use Facebook for what I see as its strengths: communicating with friends. So while I see twitter as a way to meet new people and carry on very casual conversations with people I may or may not already know but share an interest, I see Facebook as a way to carry on a longer, more persistent conversation with people I already know (or used to, way back when).  I won't likely meet new people through Facebook, unless we happen to join the same "group",  But even so, I'm probably not going to carry on much of a conversation with them,

So where does LinkedIn fit it?  Good question.  LinkedIn is a referral network.  While they too seem to want to support group-based conversations, I don't see many people using it that way.  You don't "hang out" on LinkedIn like you might on Facebook and probably do on twitter.  You go there to see if you can get an introduction to someone, or to find someone with a particular area of expertise.

So, I see all of these as useful social media tools.  They really do just fit different needs. And I like it that way. 

 

So follow me: dmarsh on twitter.  But please don't feel offended if I don't add you as a friend on facebook.  It really isn't anything personal. I just don't spend much time there, and I don't particularly want to be reminded of my awkward teenage years.  My adult years are awkward enough!

AADND, Software Stimulus Lab, Agile Groupies: oh my!

Tomorrow is the 2nd Wedneday of the month, which means that the Ann Arbor .NET Developer group is meeting at SRT.  If, like me, you're still bummed that you missed last month's meeting with Michael Wood on PLINQ, you probably will want to make an extra effort tomorrow night, when Steve Smith is in town and speaking on ASP.NET MVC.  Steve will be presenting Robert Martin’s SOLID principles of Object Oriented Programming, with examples of violations of these principles in a simple ASP.NET MVC application. The principles are then applied, resulting in a much more elegant and maintainable application.  This is a free meeting, open to the public.

SRT Solutions is inviting all developers to join them at Automation Alley in Troy for a day of software development at the SRT Stimulus Lab. This is a jam format, not a lecture format (which means that it's very hands-on).  We'll start off with some fundamentals: version control (bazaar), continuous integration, unit testing and functional testing. The format is open; you can work on your problems (with encouragement, advice, and help from others) or on our examples, if you just want a flavor of some new languages.  This is a low cost event ($75 for the full day), and it's free for unemployed software developers (limited seats available).  Sign up at http://srtstimulus.eventbrite.com.  If you use the discount code SRTUSER, you can still get the early bird price of $50 for a few more days. 

The Agile Groupies in Ann Arbor will meet at SRT Solutions on June 16, from 6-7:30 or so.  Cost: $10 for food.  Joe Hershey will be pairing and speaking, and the talk is entitled, "TDD is Nonsense".

The Detroit Java User Group will meet on June 17 at Compuware, during the Eclipse DemoCamp and IT Exchange Forum, from 5-8 pm. 

The next Ann Arbor Java User Group meeting is scheduled for June 24.  I'm still waiting to hear what the topic is.

SRT’s software stimulus lab at Automation Alley on June 15

 

SRT Solutions decided that we wanted to join in and provide a little stimulus ourselves, for software developers in our area.  So, we're hosting an event at Automation Alley, geared toward developers. Next Monday, on June 15, our "Software Stimulus Lab" will provide an opportunity for developers to get together and learn from one another.  Software experts from SRT will be on hand to help out with languages and technologies, as well as giving some real-world experience in subversion and bazaar, unit testing and continuous integration.  This low-cost event ($75) is all day long and should be both informative and fun.  So far, registrants have indicated interest in Java, C#, Scala, F#, Python, and GWT.  We'll bring some lab exercises for people to  work on, and of course, you're free to bring your own projects as well.

Oh, and the stimulus part: it's free for unemployed developers. 

Registration is at: http://srtstimulus.eventbrite.com/

I hope that you will join us.

Events in Ann Arbor this week

Well, it's the first week of the month, so there are no shortage of user group meetings. 

Tonight, there's a meeting on Non-dilutive (that means free) finance for early stage startups.  The meeting starts at 7 pm at Blau Auditorium, UM Ross Business School.

Tomorrow night, Wednesday May 6, the Ann Arbor Computer Society will meet at SRT Solutions.  Who's speaking?  You are!  Lightning talks at AACS!  The meeting starts at 6 pm. 

On Thursday, May 7, the Michigan Python User Group will also meet at SRT.   Their topic is "non-relational databases".  This topic is not Python-specific, although many of the demos willlikely be in Python.  The databases: CouchDB, Mongo DB, Tokyo Cabinet, Redis, and Persevere.  More are welcome. The group meets at 7 pm.

And on Friday, SRT Solutions will hold lightning talks at 206 S. Fifth Avenue, Suite 200.  They start at 3:30 pm.

JavaFX, Microsoft Surface, and TDD talks this week

The Ann Arbor area is ripe with events this week (apologies to our spouses).

Join up with fellow coders tonight at NSCoderNight, at Sweetwaters in Kerrytown.

Tomorrow night (Wednesday April 15), you will have to choose between attending a JavaFX talk at the Detroit JUG and a Microsoft Surface talk at GANG (Great Lakes Area .NET User Group).  Jim Weaver has solidly embraced JavaFX, and is working on his second book.  I'm thrilled that he's returning to the area, since I missed his talk at the Ann Arbor JUG late last year.  The meeting will be held at ePrize, 1 ePrize Drive, Pleasant Ridge, MI.  I had a hard time finding the location the first time I went there, so definitely check out the directions. The meeting starts at 6:30.

The Microsoft Surface is also pretty exciting.  VectorForm is a Michigan company that has been doing Surface development perhaps as long as the device has been available.  My first view of the Surface was in the James Bond movie (Quantum of Solace), and then I was also lucky enough to see one at CodeMash.  So if you haven't seen the Surface, definitely head out to the Microsoft office in Southfield (1000 Town Center Drive, Suite 1930, Southfield, MI 48075) tomorrow night.  Joe Engalan and Jennifer Marsman will co-present.  The meeting starts at 6:30.

And after the meeting (around 9 pm), join up with CoffeeHouse Coders in person at Mujo's in the Duderstadt Center on North Campus or on their IRC channel.

On Thursday 4/16 for lunch, choose between the monthly A2 Nerd Lunch or the weekly A2B3.  They're about a block apart, so perhaps you can hit both.

On Thursday evening, you have several choices in Ann Arbor: Ann Arbor Startup Drinks at Grizzly Peak, and the Washtenaw Linux Users Group at WCC.

Also on Thursday, but a little further from home, Dennis Burton is speaking at the Greater Lansing .NET User Group with his talk on "Test Driven Development is Driving me Insane".  Dennis will discuss patterns and techniques for writing tests that are more robust and provide better information, including techniques that you can apply to your design when writing new code to make testing easier, as well as tools for working with existing applications that do not have good test coverage.  If you miss his talk on Thursday, catch this talk again the following week 4/21 in Toledo, at Northwest Ohio .NET User Group.

On Friday, you can learn how (and why) to join a non-profit board in the Ann Arbor area.  A2Geeks is helping to sponsor training at the NEW Center, for just $35.

This is your last chance (mine too!) for the 2008/2009 academic year to visit the MPowered Entrepreneurship Hour at UM.  The speaker this week is Joshua Pokempner of Entrepreneur Toy Company.  The meeting is held from 3:30-4:30.

Pair programming with Corey Haines last week at SRT

Corey Haines is a software developer from Cleveland, OH, who has embarked upon a pair programming journey. He's spending a year or so, traveling around the country (soon to be extended to Europe and perhaps Asia), programming on whatever projects individuals or small companies are interested in working on.  Last week, SRT was privileged to host Corey, and he paired with me one of the days that he was in town.  He also stayed with my family overnight, which is what he does in order to keep his expenses down during his year of travel.

When I was at the Java Posse Roundup, I spent an afternoon with a group of people working with Bill Venners on Scalatest. Several of us agreed to help afterward, but I hadn't had time to jump in.  Last Friday, with Corey, I found that time.  He and I spent the day working on an HTML Reporter for Scalatest.  We made a lot of progress, and even worked a bit with Bill, remotely.  No, Corey's not a Scala programmer, but his ability to pick up the language quickly speaks strongly of his aptitude for languages and perhaps of Scala as well.  Corey had previously worked with David Chelimsky on RSpec.  Since Bill has added behavior driven developmentsupport in Scalatest, we focused on that.

We accomplished WAY more than I had thought that we would, especially given that I couldn't dedicate the entire time to only pairing.  We certainly got more done together than I would have accomplished by myself.  (Hopefully soon,) I'll go back and finish up the other support, and get the code to Bill for his approval and checkin.  And, I think that Corey had a good time too.  He said that he's going to start working on a Scala port of RubySlim!

But I wanted to write a little about Corey's style of pairing and why I enjoyed it so much.  He likes each person to have a keyboard and mouse and monitor.  Instead of pairing side-by-side, he likes to pair across a desk.  That offers the ability for the pair to talk and to see one another.  I like this; it feels collaborative.  And, for someone who doesn't pair every day, it's less disruptive to the office environment.  There was no need to rearrange desks or squeeze behind one.  Rather, we just needed to pull up a desk.

The hardest thing for me when pairing with Corey was that he uses a Mac and I use a PC.  My keyboard doesn't have all of the fancy keys that his does (and I have a habit of using HOME and END, which mapped badly).  But we laughed it off and I really enjoyed my time on the Mac even if it was from my PC keyboard.  I keep threatening to buy a Mac, and by the end of the day, I was pretty convinced that I wanted to hit the Apple store.  Hmm, maybe next week.

My first experience in a bullpen programming environment was in 1988, when I worked for a very progressive company.  I enjoy working in collaborative environments and pairing just notches it up a bit.  Corey made some interesting observations about pairing.  We all spend time collaborating, working together, helping one another. Why not sit down and work together for a little while. Maybe try pairing for a few hours each day.  Try it for a few weeks, a month.  See what you think.  You might find it highly productive.

 

Tech events in Ann Arbor week of March 30

Well, I'm a bit late in getting this out, but the Internet User Experience Conference is ongoing at Washtenaw Community College.  It runs through Thursday, April 2.

On Wednesday April 1, Corey Haines will be speaking at the Ann Arbor Computer Society.  He'll talk about Software Craftsmanship, but I think that you will probably be able to entice him to talk a bit about how he's spent his past few months, on his Pair Programming Tour, as well.  I saw Corey last week at the Philadelphia Emerging Technologies for the Enterprise Confernece.  He's an amazing speaker, and it will be a real treat to have him in town.  He's going to be hanging out at SRT on Thursday and Friday, pairing with our staff on various projects, so I'm really looking forward to his trip.

Also on Wednesday, at the UM Ross School of Business, you can hear Jason Mendelson, Managing Director of Foundry Group, a Boulder-based venture capital firm that invests in early-stage information technology companies, speak on "Building an Entrepreneurial Community: Lessons from Boulder".  The meeting starts at 7 pm. 

Head directly from your choice of Wednesday evening events to theWeekly CoffeeHouseCoders, 9 PM at Mujo, in the Duderstadt Center (Media Union): http://coffeehousecoders.org

Thursday, April 2 is the monthly Michigan Python User Group meeting, at SRT Solutions, starting at 7 pm.  There will be some discussion of what happened at PyCon last week in Chicago.  And if that's not enough Python for you, the Ann Arbor .NET Developer group meeting next week, Wednesday April 8, features Darrell Hawley on IronPython.  That meeting starts at 6 pm.

This is an "off" week for SRT lightning talks, but there are plenty of other things going on Friday afternoon.  "Ask the VC: Live" with Jason Mendelson, Founder/MGP of Foundry Group. Jason says, "I'm going to plant my butt in a conference room on campus for a couple of hours and talk to anyone that wants to come by and chat, pitch me, talk about venture capital, etc.". Meet him between 3 – 5 PM at Lorch Hall (Economics Building) Room 171, 611 Tappan.

I'm hoping to head over to the Weekly M-Powered Entrepreneurship Hour, 3 PM at Stamps Auditorium: http://mpowered.umich.edu/index.php?n=Main.Courses.  I've been wanting to attend for a while.  I'm a huge fan of the Stanford Entprepreneurial Thought Leaders podcast and I'm thrilled that UM is doing something as well.  I'm really curious to experience it!  If only it were available in podcast form … it's WAY easier for me to listen at my leisure (while working out or while driving) than to break away from the office, but it would be interesting to attend in person as well.

Next week's quite busy as well.  In addition to the Wednesday April 8 Python talk at AADND, on Thursday April 9, Google Ann Arbor is hosting CloudCamp from 3-8 pm.

From the website: CloudCamp is an unconference where early adapters of Cloud Computing technologies exchange ideas. With the rapid change occurring in the industry, we need a place we can meet to share our experiences, challenges and solutions. At CloudCamp, you are encouraged you to share your thoughts in several open discussions, as we strive for the advancement of Cloud Computing. End users, IT professionals and vendors are all encouraged to participate.

CloudCamp is being organized by a2geeks.

 

Andy Hunt’s Refactor Your Wetware at Philly Emerging Tech

Andy Hunt gave a keynote at the Philadelphia Emerging Tech Conference, around the title of his latest book, "Pragmatic Thinking and Learning: Refactor Your Wetware".  The talk, and his book, are about our brains, and how we can make changes in the way that we use them.

He offered that some people have asked if the book is substantiated by science.  He warned that some of the book is backed up by science, and other parts by old wives tales, but warned that much of what was thought to be substantiated in science in the past has now been refuted and things that were thought to be old wives tales have been backed up by new studies!  One of the "facts" refuted is that we are born with all of the brain cells that we ever have. Ruin them and they're gone.  But now scientists know that new experiences are essential to the development of new cells, so he offers to get out and experience new things, and new ways of looking at problems. 

Andy talked about the right brain/left brain and how that's sort of fuzzy.  Instead, it seems more accurate to describe the brain as having a "dual core CPU", where one CPU is pretty good at analytical tasks, and the other is more like an asynchronous digital signal processor, with no real control over when ideas emerge.  And that there's a shared memory bus that can't really effectively be doing both tasks at the same time.  For this reason, he talked about how we can often become unblocked by getting up and going for a walk (freeing up the other part of the brain), or doing ANYTHING other than focusing on a very analytical task.

Other useful suggestions (there were many, and I'm going from sketchy notes):

  • Morning writing – try free journaling, writing 3 pages each morning, uncensored.  This will encourage the free flow of information, and is often used by both MBA's and in writers' workshops.
  • Labyrinth walking – I encountered my first labyrinth last spring on the beach in FL.  Check one out if you have the opportunity.
  • Keep track of good ideas.  Write them down (our memories suck).  If we reward our brain by writing them down, more ideas tend to flow. Keep a notebook handy and write down those ideas. 
  • If we continually ignore "good ideas", our brain seems to sort of give up on us, and the ideas stop coming.
  • Multi-tasking.  Stop it.  [Side note: if you haven't read "The Myth of Multitasking", do it]
  • Mind mapping. Andy said that he was all psyched about mind mapping and was talking to his kids about it and they told him that they did this in the second grade.
  • Meditation. Just try it.

Andy also talked about effective learning from books.  He summarized the Reading Summary Technique (SQ3R):

  • Survey
  • Question
  • Read
  • Recall
  • Review

Not so coincidentally, my daughter's kindergarten teacher sent home instructions about how to do this.

And, if you do nothing else, Andy offered one bit of advice toward a 20-30% productivity gain.  Get a second monitor. 

So, I just bought the eBook.  I'm sure that there are tidbits that I missed or have forgotten, and perhaps there are others that didn't make it into his talk.  Overall, this sounds like an enjoyable, interesting book to read.