Tuesday, December 26, 2006

Lightning Talks

There is an interesting [new to me] phenomena which seems to be spreading through a few technical conferences. It's called the Lightning Talk (i.e. - Google Test Automation conference lightning talks).

The idea is that the conference provides a series of sequential 5 minute presentation slots with only one strict requirement: the talk must be 5 minutes or less. This has some interesting effects . . .

For the speaker . . .

  • It creates a sense of urgency because they must make their point(s) quickly

  • It lowers the barrier to entry for seasoned and newbie speakers alike - most 5 minute talks can be prepared more easily than 1 hour talks. It's less intimidating to prepare for a 5 minute presentation.

  • New types of talkes can be considered - A speaker can talk about some things that are more appropriately sized to a 5 minute presentation (a new idea you're just beginning to explore, a novel approach they need some feedback on, a quirky language behavior discovery or a rant on why they think something is a good/bad idea).



For the audience . . .

  • The speaker must really focus on getting their point across quickly.

  • If the speaker is boring or the subject is not as interesting as anticipated, there is an easy-out: just wait 5 minutes.

  • It gives you quick exposure to variety of speakers and topics in a short time frame.



I suspect a portion of the popularity of this idea essentially a 'market reaction' (a) getting stuck in long, boring, [often slide-driven] presentations (see [here]) and (b) people wanting to stay aware of the shear abundance of interesting topics and techniques being discussed.

Supplementing a conference with a one or more sessions of 'Lightning Talks' seems to be a win-win for the speaker and the audience.

The open space-based conferences have also been gaining some traction in technical communities. This looks like a fun one to be sure. Now if I could just figure out how a half day of ski-ing will help improve my [software development] agility . . .

Tuesday, December 19, 2006

Public committment, the neocortex, and metrics in software development

I've been thinking a lot lately about how sweeping organizational changes can be effectively introduced and sustained. Blue Ocean strategy introduced me to the concept of tipping point leadership but I was left asking myself: "How do you make it last?". Then I stumbled on this video of Kent Beck talking about "Ease at work". Deep in this presentation I pulled out this useful tidbit:

Ken suggests the following as requirements for sustaining change:

  1. Make a Public Committment - to one or more people other than yourself

  2. Make sure there is Accountability - the one or more persons you make a committment with, schedule a date/time to check back with you on progress.



I think using these requirements works incredibly well on an individual level, and to a lesser extent on a group level (i.e.- timeboxed iterations, sprints). That said, it's better to have something (committment wise) on a group level rather than nothing!

Also useful to consider here is the concept of fishbowl management -- that is to say: Put all your leaders in a fishbowl and begin measuring them to the same, publicly visible standards. You then reward and punish [demote] based on people's performance relative to those standards.

I also pulled out some names for behaviors I've seen before including the "organizationally addictive hero-matyr pendulum" and the well-named game of "Schedule Chicken".

"Schedule Chicken" is when everyone around the table knows the project will slip or that some piece of functionality can't be done in the necessary amount of time, but nobody is willing to say anything . . . the first one to say something loses the game, but in the end everybody is relieved when it's out in the open (unless there's someone at the table who wasn't playing).


On a side note, I found a podcast interview with Dileep George on some of his work constructing software to emulate the neocortex.
http://www.itconversations.com/shows/detail732.html
http://www.itconversations.com/audio/download/itconversations-732.mp3

Dileep's homepage of interesting stuff: http://www.stanford.edu/~dil/invariance/

If he and Hawkins can pull this off, it will certainly be the beginnning of a revolution in what types of problems we can solve with software.

Lastly, Valtech TV has posted some interesting presentations. I just watched "The Great metrics Debate with John and Amr - Part 1" (Part 2), and found it to be a well thought out illustration of good and bad points to various metrics we tend to push in Agile and what to watch out for when using those metrics.

Monday, December 18, 2006

Ebay Architecture Presentation slides

Great set of slides (wish I had the audio!) on how eBay scaled their architecture to where it's at today.
 

Tuesday, December 05, 2006

Alistair Cockburn - Redefining Software Engineering

I listened to a decent podcast with Alistair Cockburn today.

http://www.itconversations.com/shows/detail1682.html
http://www.itconversations.com/audio/download/itconversations-1682.mp3


It covers some interesting subjects like:

  • What is software engineering?

  • How can new agile methodologies be effectively applied to people with
    various personality types? (particularly people oriented towards stability)

  • Can agile work in china and japan?

  • How are people doing distributed development most successfully?

Monday, December 04, 2006

Couple of new wiki pages....

Posted a quick book review at: http://netsmith.wikispaces.com/Blue+Ocean+Strategy+-+W.+Chan+Kim%2C+Renee+Mauborgne

and started a 'metrics' brainstorm page at : http://netsmith.wikispaces.com/Metrics

Also, found out that Dave Nicolette has a nice blog at: http://www.davenicolette.net/agile/

Thursday, November 30, 2006

OPML and Grazr!

I migrated the feed/rss/podcast list on the right side of the blog to use a neat new ajax widget (http://grazr.com) which is backed by an opml (aggregation of rss/links) file. Scroll down a bit and check it out!

I chose http://www.opmlmanager.com for my opml hosting. That allows me to store the raw opml on the web here: http://www.opmlmanager.com/opml/mpstx.opml. Then just point the Grazr widget generator at it, and wah la! An ajax opml/rss browser embedded in blogger blog.

Great Talk from Ken Schwaber - Father of Scrum

Check out this great talk from Ken Schwaber (father of scrum)






Some things I took away from the talk:

  1. Concept of a 'Design dead product' -- that is to say the gradual cutting of code quality over time (to satisfy deadlines) which backs a a team into a corner of design debt and steadily slows achievable velocity per iteration/sprint.
  2. "Scrum master also known as 'the prick'"
  3. QA is apparently a great source of people who can be an effective scrum master -- because they know what a true 'done' is ...

I picked this up from reading Xavier Warzee's blog.


It looks like Google has speakers in regularly and publishes them as Google Tech Talks on Google Video. These are worth keeping an eye on if they can get speakers of this quality on a regular basis.


Wednesday, November 29, 2006

Scrum and XP from the trenches

90-page document on one person's experience implementing scrum/xp with 40 people -- what worked and what didn't.

http://www.crisp.se/henrik.kniberg/ScrumAndXpFromTheTrenches.pdf

Monday, November 13, 2006

Saccades and the like

Entry on new research regarding saccades, and more importantly a statistic on how often people blink (15 times a minute). Fifteen times a second seems like an excessive amount of times to pop-up a reminder to remind someone staring at a computer screen to blink. I wonder how I can do that effectively in http://netsmith.wikispaces.com/Blinky . . .


http://blogs.zdnet.com/emergingtech/index.php?p=407

Monday, October 30, 2006

Cool list of presentations to go through

http://www.softwaresecretweapons.com/jspwiki/Wiki.jsp?page=GreatSoftwareEngineeringSpeechesAndPresentations

No Fluff Just Stuff 2006 - Dallas

I attended No Fluff Just Stuff last weekend in Dallas. To give you an idea of where I'm coming from.... though I've been doing JAVA related goodness for 10 years, this was the first JAVA conference I've ever attended. I live in the area where the conference was held, so there was very little travel necessary.

Sessions I attended ...

  • Working with Rules Engines - Venkat Subramaniam
  • Effective Teams (the dirty little secret) - Bruce Tate

  • Automating Business Value with FIT and FITness - David Hussman

  • Eclipse RCP - Scott Delap

  • NetKernel : XML Processing for the 21st Century - Brian Sletten

  • Google Web Toolkit - David Geary

  • Spring Web Flow - Ben Hale

  • Greasing the wheels of JAVA with Groovy - Scott Davis

  • Eclipse projects you might not know about - Derek Lane


The Good stuff ...

  • Attendees - a good mix of beginners and veterans

  • Speakers - a good mix of presentation styles across presenters. I was able to refine my list of what I consider to be an engaging, valuable, presentation style.

  • Full Electronic copies of the slides were provided in advance to help attendees decide which sessions to attend.



The Surprising stuff ...

  • A majority of the presenters had powerbooks/macbooks.
  • Ipods and an Xbox 360 were raffled off.

  • Food was provided.

The Buzz

  • Learning other programming languages (Ruby/Groovy/etc), ala the Pragmmmers' Knowledge Portfolio advice.
  • Finding ways to deliver value beyond heads-down programming (customer interaction, business knowledge/value)


Conclusions
As a conference focused entirely on technical sessions, I found NFJS to be a superb value. I got quite a bit out of it, and the fact that it was available locally was a bonus (saving travel expenses).

Wednesday, October 25, 2006

New entries on Ways to Debug Code wiki page

Added some new entries (under the java section) to the http://netsmith.wikispaces.com/WaysToDebugCode page....

 

Another good reason to give DRY serious consideration while writing code....

Another good reason to give DRY serious consideration while writing code....
 
"That there is wide spread belief in this myth is unfortunate because I have found that violating design principles or writing overly complex code is often the stumbling block to achieving good performance. In this case, not following DRY left the String concatenation operation and subsequent HashMap lookup scattered all throughout the application. This has two knock-on effects. The first being that any operation that is a bottleneck will be difficult to find as the scattering dilutes or hides the effect. The second is that if you are lucky enough to find that an operation is a bottleneck, you will be obliged to troll through the code looking for every instance of that operation." - Kirk - 2006-10-08 The Java Specialists' Newsletter [Issue 134] - DRY Performance -  http://www.javaspecialists.co.za/

Using Virtual Sockets to Fix Software Broken by Firewalls

http://java.sys-con.com/read/216367.htm

Fwd: agile pres

How agile development at google works . . .

http://www.javamug.org/mainpages/presentations/AgileDevelopmentatGoogle-DallasJUG.pdf

Hierarchical Temporal Memory

On the subject of how the brain works (as theorized in the On Intellgence Book by Hawkins) and how that will be implemented in software/hardware by Numenta:

http://www.numenta.com/Numenta_HTM_Concepts.pdf

Spring Forward 2006 Presentations

http://www.chariotsolutions.com/javalab/presentations.jsp

Tuesday, September 12, 2006

More updates to wiki

Closing on and moving into a new house has been taking up a lot of my free time lately. Lee contributed some updates to the http://netsmith.wikispaces.com/WaysToDebugCode wiki page (at the bottom).

Monday, August 21, 2006

No Fluff Just Stuff (Texas Lonestar Software symposium)

As part of my plan to continually develop my Knowledge Portfolio, I just signed up to attend No Fluff Just Stuff in Dallas on Oct. 27th.

Wednesday, August 16, 2006

Some cool java newletters . . .

In an effort to continue building my knowledge portfolio, I've decided to take the plunge and subscribe my e-mail address to a couple of mailing lists that have some pretty interesting content which I've been following in the past via the old school 'check the website periodically' method...

You can find the archives of the newletters (and ways to subscribe) through the following links:

http://www.javaperformancetuning.com/newsletter.shtml

http://www.javaspecialists.co.za/archive/archive.jsp

Friday, August 11, 2006

Some new brainstorms on the Wiki

I've added a new section on the wiki (in the left menu) for what I'll call brainstorms...that is ... wiki pages that are no where near polished or done, but I wanted to jot down some notes so I can start improving them. The first two pages I've created that fall into this category are:

http://netsmith.wikispaces.com/WaysToDebugCode

and

http://netsmith.wikispaces.com/What+should+be+in+a+DAO+test


Also of note, while searching for a link for the Rubber Ducking concept (terminology I picked up from the Pragmatic programmer), I stumbled on this interesting site which probably warrants some further investigation on my part: http://creatingminds.org/tools/tools.htm . Specifically it has a list of techniques: Tools for defining the creative problem , Tools for creating ideas , Tools for selecting ideas , and Tools for implementing ideas .

Wednesday, August 09, 2006

Hibernate Audio/Video Resources

Lately, more than one person has asked me for some resources to guide them on how to easily present what Hibernate is, when it should be used, and how the EJB 3 (JSR-220) spec is related. I usually recommend listening to the authors (Gavin King, Christian Bauer) presentations for a strong point of reference and writing code yourself to gain first hand experience using the API.

Here is a list of Video/Audio hibernate presentation resources I was able to pull together on the subject.

http://netsmith.wikispaces.com/HibernateAudioVideo

I'll try to post some Experiential style hibernate exercises in the future.

Tuesday, August 01, 2006

Source now in hosted Subversion!

I've set up a subversion project for any source code I post to the blog/wiki.

SVN repository URL: http://netsmith-blogwiki.googlecode.com/svn/trunk/


I just checked in Blinky to test it out, and it seems to be working ok.

If you're using Eclipse 3.2 and want to check out the souce code, make sure to get the latest subclipse plugin. Follow the instructions at http://subclipse.tigris.org/install.html and enter an update site of http://subclipse.tigris.org/update_1.2.x

Monday, July 31, 2006

How to get an OPML feed into your google homepage?

Several colleagues have been blogging recently, and sending around an OPML file for co-workers interested in following the new posts on those blogs.

The downloadable RSS clients seem to have good OPML import/export support, but I'm not a big fan of the fat client RSS readers because I like to be able to check my news on the go -- no matter what computer is in front of me.

I am pretty fond of my google homepage where I can scan new headlines quickly . . . so I set off to find a portlet for that page which would give me a quick heads-up to any new posts at my colleague's blogs.

After trying to search for an "OPML" portlet for my google homepage without much success, I finally found (right in front of nose) Google Reader. Here's how to hook it up to your Google homepage: http://netsmith.wikispaces.com/GoogleReaderInGoogleHomepage

hibernate resource

Here's a random hibernate resource I stumbled on which looks promising:

http://www.amicabile.com/hybernate/index.htm

Wednesday, July 26, 2006

Favorites on Booklist

I've added some ratings to my booklist page. I've pretty much just got 2 categories right now: 1. I've read it, and 2. I've read it and really really liked it. You can see the ones I liked by looking for the $$$'s (no relation to money, just a character that the wiki engine would avoid parsing).

booklist

Tuesday, July 25, 2006

Remembering to Blink

So, my day job consists mostly of writing Enterprise java Application/architectures (spring/aspectj/hibernate/j2ee/etc) with web front ends. With the occasional exception (last year I worked on a webstart based swing project which talked to a j2ee server backend), I rarely get to dive into what's new for java desktop applications.

I recently went on a search through the internet for a good program to remind me to occasionally look away from the computer screen (to keep my eyes from drying out while working on the computer for long periods of time). I found a mix of 'free but not quite right for my needs', and 'meets my needs and lots of other people's needs, and therefore somebody feels like it's valuable enough request payment for (nagware)'. Given that, I figured I could code something relatively quickly to meet my needs and try out a new JAVA 6 features in the process. The result: Blinky. It's an app which sits in the System Tray and reminds you to blink based on your activity level at the computer.

What did I learn from coding this? Several things:
  1. Eclipse 3.2 can work easily with JAVA 6 level code.
  2. The Full Screen JAVA API requires an active rendering loop (because of a difference in how paint events are delivered).
  3. JAVA doesn't have an event based way to monitor system wide mouse events.
  4. System Tray API included in JAVA 6 seems to work great.
Here's a link to the app/src: Blinky

Wednesday, July 19, 2006

Using 2 computers on one desk

The Challenge: How to best use the 2 computers at my desk to increase my productivity.
Comp #1: 3.2ghz laptop, 2 gb ram
Comp #2: 2ghz desktop w/lcd, 2gb ram

Attempt #1
Tried Multiplicity from Stardock. It let me use one computers keyboard/mouse to control both computers. To switch computers, I simply slide the mouse pointer to edge of screen towards the desktop I'd like to switch to.

Advantages
  1. Automatic clipboard sharing

  2. Let's you use all the hardware
Disadvantages

  1. Encountered too many bugs to use on a regular basis.

  2. Ability to switch can depend on responsiveness of the computer you're on (as opposed to a H/W kvm)
Attempt #2:

Use both comps. with their own keyboards/mice. Rotate my desk chair to reach each.

Advantages

  1. Full power of both comps. Easy for someone to pull up a chair and work on one of my spare comps pair style.
Disadvantages

  1. Too much rotating. Can't seem to get in a comfortable position for both keyboards/mice.

  2. No clipboard sharing without another external tool (see Resources)
Attempt #3:
Plug the display from comp2 into comp1, and use the windows extend desktop feature.

Advantages
  1. Lots of desktop space to work in. Can lay out my eclipse windows in some interesting ways (since the views undock). Tip: Create a two-monitor version of each perspective and save it under a custom perspective name, like "Java - 2 monitors" or "Debug - 2 monitors". Then you can easily flip to your 2 monitor layout or your 1 monitor layout depending on which computers are available on your desk at the time.
Disadvantages
  1. Dialogs in JAVA programs (namely eclipse tend to pop up in the wrong monitor, and/or eclipse incorrectly checks for focus based only on the current monitor).

  2. Sometimes when waiting on the cpu of comp1, I could be doing something useful. not using the full power of comp2 (no cpu)
NOTE: There is an option in windows to center the mouse on a dialog when it pops up (which saves you from having to slide the mouse very far when a dialog pops up on the wrong monitor).


Attempt #4 (what I'm using currently):
Bought a hardware usb KVM switch (IOGear miniview GCS632U KVMl). Uses one keyboard/mouse to connect to both computers. Allows me to tap Ctrl twice to switch computers
Advantages

  1. When an activity (i.e. - recompiling a workspace in eclipse) is bogging down one machine, I can switch to the other to accompllish something in the meantime.

Disadvantages

  1. Switching takes about a second.

  2. Can't see both computer's desktops at any instant.

Other options that I have not tried yet:

  1. Distributing the responsibilities of the software I'm using which bogs down. I.e. - put the database, app server, or both on a single machine which the other machine (running my development IDE for instance) then acts like a client for.

  2. Software to investigate: http://synergy2.sourceforge.net

Additional Resources
RemoteClip - http://www.cs.cmu.edu/~rcm/RemoteClip/ -- Synchronizes the clipboards on both computers

Tuesday, July 18, 2006

Java Posse

I'm continuing to flush out the spring enabled services notes on the wiki

I've been listening to Java Posse podcasts for the last month or so. Check them out if you get chance. http://www.javaposse.com . I think there's something about the 4 different voices, and the interactions between them that makes it more interesting to listen to this, than for instance, read the news headlines yourself.


This weeks show clued me in to a totally non-tech, but funny podcast... http://askaninja.com -- click at your own peril.

Thursday, July 13, 2006

Focusing on the wiki right now....

Tuesday, July 11, 2006

Tackling big challenges in Enterprise team builds, and a way to jumpstart Iteration 0

New build/codeanaylsis product with some very cutting edge features I haven't seen elsewhere (Build Grid, Delayed Commit, Distributed [on the build grid] Code Coverage and Static code Analysis) from the folks at Jetbrains (requires free SDN registration) :
http://developers.sun.com/learning/javaoneonline/sessions/2006/TS-5033/index.html

An all-in-one development team CD (Continuous integration, source control, bug tracking, wiki, bootable) from the folks at Thoughtworks: http://buildix.thoughtworks.com/

update: Jetbrains put up a product page describing some features of the aforementioned build product http://www.jetbrains.com/teamcity/
After parsing through a bunch of old amazon.com, audible orders, and the small bookshelf worth of material I have on hand, I've partially filled out the booklist. In fact, partially may be stretching it since my library is packed up right now, and I've haven't copied over my handwritten notes/reviews/opinions/etc for any of the material. Patience, grasshopper.
I've added a booklist to netsmith.

I'm going to attempt to backfill the booklist with as much as I can remember.

I'm want to keep a booklist for these reasons:
  1. So that when I give my opinion on a book to someone, they can have some context.
  2. So that I can keep track of the development of my knowledge portfolio over time and potentially identify trends or areas where I should refocus my learning efforts.
  3. So that when I personally want to recommend a book to someone and have trouble remembering the author or title, I can point them to my booklist.
  4. So that I have a place to keep notes, fieldstones, opinions, and resources related to a book.

Additionally, I plan to queue up books here based on recommendations received.

With the title and author, you can search a major bookseller to locate the book and find further information. I'm not going to use any commission/associate program (i.e. - amazon) as I wouldn't want to introduce any potential conflict of interest and/or unnecessary bias in any reviews or recommendations.

Monday, July 10, 2006

This post marks the start of netsmith -- a combination of a blog and a wiki site.

I have the following vision for the simultaneous development of both :

  1. Self Development (researching, writing)
  2. Contributing back to the internet

Here were my criteria for choosing this setup:

  1. Have a reliable, neutrally hosted blog/wiki so that I can focus on generating content.
  2. Create a blog for temporal content, opinions, research which I'm not intending to develop further.
  3. Create a wiki for more permanent content which is likely to be iteratively improved upon over time.
  4. Cost Effectiveness. Both Blogger and Wikispaces have free basic functionality.

Bonuses of this setup: Wikispaces has a feature to import a blog entry to a wiki page which could be useful.