Latest from the blogs subscribe to RSS

Magnetboxlinks for 2008-07-24

Posted by Ben @ July 24, 2008 01:30 AM

Schneier on SecurityInformation Security and Liabilities

Posted July 23, 2008 09:09 PM

In my fourth column for the Guardian last Thursday, I talk about information security and liabilities: Last summer, the House of Lords Science and Technology Committee issued a report on "Personal Internet Security." I was invited to give testimony for that report, and one of my recommendations was that software vendors be held liable when they are at fault. Their...

Jason Bock's WeblogDynamic Languages

Posted July 23, 2008 07:35 PM

This is kind of a rambling post...

For a while now, I've been doing lots of DynamicMethod generation in my spare time (we all have our hobbies). I've also started to use the var keyword by default in C# (yes, I know var is just type inference and not late-binding or anything "dynamic" in nature, but still...).

I'm starting to wonder if I should just start moving over towards a dynamic programming language full-time.

Not that I'd ever give up on C#. Nor would I just dive into Ruby or Python (actually, I like JavaScript - there's lots of cool things you can do). But I'm starting to see that there's a definite benefit to having dynamic features in a language.

Maybe Cobra is what I'm looking for.

F#? Maybe...some geeks have fallen in love with it, and what I've seen with it is very cool...but I'm still not quite sold on it just yet...

For many years I've been in the typed world because dealing with typeless programs (i.e. VB pre-.NET) was incredibly painful. But times have changed (e.g. unit tests are the norm, which aids greatly in ensuring that code works as expected). I guess I'd like a little from column A and a little from column B when needed, and that should be seamless.

MN HeadhunterDaily Twitter Notes

Posted by MN Headhunter @ July 23, 2008 06:35 PM

Sometimes the day does not allow a blog post let alone write about things on my mind or I hear about like economic, political, local news (sports too).

With Twitter, you at least get some of the flavor, a flash moment during the day, of what I am thinking about. You can follow during the day or see the digest below.

Here are the highlights of my recent Twitter activity. If you want to see the full version click MN Headhunter on Twitter

MN Headhunter on Twitter | July 22, 2008 - July 21, 2008 (last one first, links added):

July 22, 2008

  • Checking out for the night and praying, "please mind shut up. turn off" I need some sleep.
  • Had a great breakfast this morning (that turned into a great 3 hour chat) with Claudia Faust and Alise Cortez of www.improvedexperience.com
  • @NicoleBodem Wake up, yeah your funny. 7 am I was up.
  • 72 hours (and 17 minutes) to the Minneapolis Recruiting Roadshow

July 21, 2008

Jason Bock's WeblogRush Playing Rush on Rock Band

Posted July 23, 2008 05:58 PM

OMFSM...this is classic - Rush tries to play "Tom Sawyer" on Rock Band:

EPIC FAIL :). They don't even get to Alex's solo!

(Hat tip: Isorski's Musings)

Jason Bock's WeblogC# Compiler Error CS0718 and VB Compiler Error BC30371 - This Feels So...Odd

Posted July 23, 2008 02:26 PM

Consider the following two classes:

public static class StaticClass
{
}

public sealed class SealedClass
{
    private SealedClass() : base()
    {
    }
}

Now, I thought there wasn't any difference between these definitions. There are some slight deltas, though...here's the dump from ILDasm for both classes:

.class public abstract auto ansi sealed beforefieldinit CSharpCode.StaticClass
       extends [mscorlib]System.Object
{
}

.class public auto ansi sealed beforefieldinit CSharpCode.SealedClass
       extends [mscorlib]System.Object
{
  .method private hidebysig specialname rtspecialname 
          instance void  .ctor() cil managed
  {
    .maxstack  8
    IL_0000:  ldarg.0
    IL_0001:  call       instance void [mscorlib]System.Object::.ctor()
    IL_0006:  ret
  }
}

It's odd that the static class is defined both as abstract and sealed, but...oh well. Anyway, let's define a generic class:

public sealed class GenericClass<T>
{
}

OK, here's the oddity. The following call works:

var genericSealed = new GenericClass<SealedClass>();

But this one doesn't:

var genericStatic = new GenericClass<StaticClass>();

I get the following compilation error:

Error 1 'CSharpCode.StaticClass': static types cannot be used as type arguments C:\JasonBock\Personal\.NET Projects\CS0718\CSharpCode\GenericClassConsumer.cs 12 41 CSharpCode

Here's what the documentation says for CS0718:

Because a static type cannot be instantiated, it cannot be used as a generic argument. To resolve this error, remove the static type from the generic argument.

But...you can't create an instance of SealedClass either! I could make an abstract class:

public abstract class AbstractClass
{
}

And use that in the generic type:

var genericAbstract = new GenericClass<AbstractClass>();

And that works.

I can even create a "module" type in VB:

Public Module ModuleCode

End Module

Which looks like this in IL:

.class public auto ansi sealed VBCode.ModuleCode
       extends [mscorlib]System.Object
{
  .custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute::.ctor() = ( 01 00 00 00 ) 
} // end of class VBCode.ModuleCode

It's pretty much like StaticClass, but without the abstract qualifier. And guess what, I can use that with the generic type:

var genericModule = new GenericClass<ModuleCode>();

As a side note, if I reverse the issue and write this in VB:

Public Module VBGenericClassConsumer
    Public Sub Consume()
            Dim genericSealed As New GenericClass(Of SealedClass)()
            Dim genericAbstract As New GenericClass(Of AbstractClass)()
            Dim genericStatic As New GenericClass(Of StaticClass)()
            Dim genericModule As New GenericClass(Of ModuleCode)()
    End Sub
End Module

That last line of code is invalid - I get the following error message:

Error 1 Module 'ModuleCode' cannot be used as a type. C:\JasonBock\Personal\.NET Projects\CS0718\VBCodeThatReferencesEverything\Stuff.vb 9 45 VBCodeThatReferencesEverything

This is compiler error BC30371.

So...these compiler errors are really odd. I'm guessing in the C# it must be looking for types that are abstract and sealed with no constructors and considering those to be "static types". With VB, I'm guessing that it's looking for classes that have the StandardModuleAttribute. Why? Because I compiled the following IL code:

.assembly extern mscorlib
{
  .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )
  .ver 2:0:0:0
}

.assembly ILStuff
{
  .custom instance void 
    [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = 
        ( 01 00 08 00 00 00 00 00 ) 
  .custom instance void 
    [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = 
        ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78   
        63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 )       
  .hash algorithm 0x00008004
  .ver 1:0:0:0
}
.module ILStuff.dll
.imagebase 0x00400000
.file alignment 0x00000200
.stackreserve 0x00100000
.subsystem 0x0003       
.corflags 0x00000001    

.class public auto ansi sealed NonAttributedModuleCode
       extends [mscorlib]System.Object
{
}

And I was able to use NonAttributedModuleCode as a generic argument in both C#:

var genericNonAbstractSealed = new GenericClass<NonAttributedModuleCode>();

And VB:

Dim genericNonAttributedModule As New GenericClass(Of NonAttributedModuleCode)()

At the end of the day, the compilers are "working by design". But...the design doesn't feel right in either language. With VB, it seems like it's looking for a specific attribute in the class (but without that attribute the code works so it seems like an odd restriction), but in C#, there are other types that match the description in the compiler ("cannot be instantiated") that work just fine.

Thoughts? Opinions? Criticism?

VISI BLOGPartners in Learning

Posted by Stephanie Jones @ July 23, 2008 01:36 PM

As mentioned previously, in a few short weeks on August 6, VISI is hosting a Web 2.0/Social Media webinar - a subject that is near and dear to my heart. I’m especially excited to announce that we have teamed up with the folks at August Ash Incorporated for this event. The format will be a panel [...]

Tech~Surf~BlogMy Day in the Sun - I Mean, the StarTribune

Posted by GraemeThickins @ July 23, 2008 11:41 AM

Or I really should say, our day in the sun -- meaning our whole team at DoApp (my new gig). What a bunch of great guys, and I tip my hat to every one of 'em! Especially our illustrious founder, Joe ("Google guy") Sriver, and our crack team of talented developers.

It isn't every day you wake up and find yourself at the top of page one of your local daily's Business section. I was even quoted there, before the jump. Here's the story: Apple Shines on Minneapolis Firm's iPhone App (Minneapolis StarTribune).  But wait, there's more: another great piece on us appeared late Monday: Minnesota Keeps Feeding the iPhone Habit (Minnov8.com).

Doappstartrib

Having our myLite Color Strobe and Flashlight app break into the top ten of *all* free apps on the iTunes App Store, surging past many big-name apps -- like Facebook, AOL, MySpace, Google, and the NY Times -- has been a humbling and amazing experience. (We topped out at #8, after a wild ride up the charts.) We're even ranked higher than all the apps featured on "What's Hot" on the App Store front page! (Apple's a little behind in updating that list, it seems...)

Go grab any or all of our apps on iTunes -- just type "DoApp" in the search box. And reviews are always appreciated once you download 'em!  (Our apps are getting high ratings by consumers, which you can see via the independent ranking service, Medialets. For example, myLite is currently #25 of all apps -- paid and free! -- with an average rating of 4.5 out of 5.)

Our other apps are myTo-Dos with Email Support and Magic 8 Ball (it's mystical, man!).  And DoApp has many more iPhone/iPod Touch apps on the way, in a variety of categories.  We're even updating our first three apps with cool, new features. (One you get an app, you automatically get the updates -- so sweet.)

Apple said yesterday the number of iTunes App Store downloads is now up to 25 million! Got an iPhone or iPod Touch yet?  Downloading apps like mad?  Tell us your experiences in the comments...

Schneier on SecuritySpeed Cameras Record Every Car

Posted July 23, 2008 11:32 AM

In this article about British speed cameras, and a trick to avoid them that does not work, is this sentence: As vehicles pass between the entry and exit camera points their number plates are digitally recorded, whether speeding or not. Without knowing more, I can guarantee that those records are kept forever....

behind the timesMetaprogramming in Groovy Pecha Kucha

Posted by Hamlet D'Arcy (noreply@blogger.com) @ July 23, 2008 12:11 PM

The Groovy Users of Minnesota (myself included) created a sweet 6 minute presentation on metaprogramming in Groovy. The format is a pecha kucha, which is a presentation style that just jumped the shark now that it went mainstream.

Check it out over on the GUM site: http://groups.google.com/group/groovymn/web/metaprogramming-pecha-kucha-wip

Or head straight for the YouTube video: http://www.youtube.com/watch?v=4XL42u7vtJ4

And yes, that is my sultry voice you're hearing. I'm available for voice work; I excel at roles typically reserved for 12 year old boys.

Tiny Pixel BlogiPhone 3g Fame Going It's Head

Posted July 23, 2008 10:08 AM

The iPod thinks iPhone is a douche. This is by far the funniest comic I've seen in a while. Still laughing about it! (hat tip @"johnreilly":http://twitter.com/johnreilly) and "see it on the website":http://tinyurl.com/6a6hel cause my image resizing sucks.

Tiny Pixel BlogMacBooks to Hit Sub-$1000

Posted July 23, 2008 09:37 AM

It's going around that Apple will drop MacBook prices to $999. Not sure if this is across the entire MacBook line (excluding Pro). But Apple believes that volume over price will eventually pay for itself just in volume alone. They had %41 growth in mac sales over the last year, so it's definitely in their power to accomplish that strategy. Click here to visit website

Bob McCuneIn case you missed it…

Posted by Bob McCune @ July 23, 2008 06:23 AM

Today the Wordpress team released the first version of their native iPhone application! I’m using it right now and am pretty impressed. The setup was a piece of cake and the editing interface is clean and simple. It provides you with the basic functionality you need to write posts, including nicely-integrated image support.

Overall, I think this looks like a great tool for mobile blogging. Kudos to the Wordpress team!

- blogged from my iPhone

ShareThis

Chase's Techno Rants and RavesBack at the Hall Of Justice...

Posted by Chase Thomas @ July 23, 2008 03:58 AM

I am back from the deep dark world of Brick n' Mortar and back to consulting again, and boy I gotta tell ya - it feels good!  And not only am I consulting again, but I found a place that truly appreciates the Geek Ninja in all of us and where the other consultants are in my opinion true rock stars of the .NET development world.  I have not met a more passionate group of folks anywhere in the past and I have worked at some places where passions on technology can run pretty deep, so that is saying A LOT!

So what is this Dojo of the Digital age you ask - well I am talking about ILM in Edina MN.  These guys are fantastic!  I have only been here a week and they have made me feel right at home!   Even the owner is a hard core techie.  And it's not just code that these guys are into, being a former professional mechanic and inventor, I can truly appreciate the stuff I have seen so far, never a dull moment for me and I am the guy who likes to rip things apart just to see how they work and challenge myself by putting it back together again (with no left over parts and in either working or better condition than when I started mind you - LOL). 

We all went out to lunch last week and I remember the owner asking us out of the blue, "So what are you guys excited about in Technology outside of programming".  This took me aback as I have never heard anyone else do this in the past, it's always been about code, but these guys were really talking my language now!  Could it really be that these guys are into all that stuff too?!  Sure enough we went from talking about the new G3 IPhone and other gadgets (typical everyday stuff) to theories on more efficient means to escape the earths gravity to facilitate cheaper space travel - and these guys were really deep in it - I had a blast,  truly awesome stuff.

I think I found a long term home here.

Nick SiegerJazzers and Programmers

Posted by Nick Sieger @ July 23, 2008 03:57 AM

At RubyFringe, I could have gone the easy route and talked about any manner of tech that I’ve been working on or associated with, including JRuby, JRuby-Rack, Warbler, image_voodoo, Glassfish, activerecord-jdbc, Connection pooling for Rails, or Ruby-Processing. Instead, I took a risk and went in a completely different direction. What follows are some thoughts I expressed in the talk. I’d be interested to hear your take as well.

Jazzers and Programmers

Why do we program? Why do you program? Not the 9-5 systems analyst working for a paycheck. I’m talking about you and me; we, the passionate fringe of the programming world. Fame and fortune? A knee-jerk answer, but that’s not the one I’m looking for. What I think drives great programmers is the desire to learn, share, collaborate, and constantly get better at what you do. Which might explain, to a large degree, why all of you came to RubyFringe.

RubyFringe bills itself as deep nerd tech with punk rock spirit. So what are some elements of punk rock spirit that we identify with? While I enjoy and appreciate punk and its culture of DIY, I’m not an expert. However, I am passionate and knowledgeable about jazz.

At this point you may be shaking your head, “Sieger didn’t get the memo!”

rubyfringe kenny g

At which point I counter: if you think this clown and the music he plays is jazz, then prepare to be corrected, because you need to hear what I’m about to tell you. Listen. Jazz is punk before punk even existed. And if we’re associating ourselves with punk, the fringe, or, to use another word, vanguard, perhaps we can learn a few things from this truly unique American art form.

village vanguard

How did I pick this topic for my talk? I was thinking about the fringe, the vanguard and growing up nerdy and a misfit, which we probably all can relate to. In addition to my interest in computers, I was also a band geek. I wore ties on random days at school just to accentuate myself away from the “in” crowd. And after school, I played in the jazz band. Playing in the jazz bands continued through college, where despite my majoring (and graduating) in electrical engineering, I decided to move to New York City to experience the big city and hopefully continue to play jazz. Instead, in an odd but practical twist, NYC became my transition into a programming career. Because you gotta pay the bills somehow, after all.

Recently, after taking in David’s “Surplus” talk at RailsConf, although it sounds trite, I really took his suggestion to heart to look outside the programming world for insights on how to become a better programmer. I soon realized that jazz, my dormant passion, was that place right in front of me that might hold some of those crucial insights. And as odd as it may appear that I am speaking about jazz at a programming conference, I thought I’d share some thoughts about this from my vantage point as programmer and jazz musician. (Plus, I get a kick out of saying that I came to RubyFringe, stood up in front of a captive audience, and auditioned jazz clips for 30 odd minutes.)

Styles of Jazz

It’s taken me all my life to learn what not to play. – Dizzy Gillespie

Jazz as a unique musical style is incredibly diverse. Its history spans over a hundred years, and is remarkable in its breadth. From Ragtime, New Orleans “Hot” Jazz, Swing, Bebop, Cool, Hard Bop, Free/Avant Garde, Jazz Rock/Fusion to splintering into a thousand directions, the music was (and is) constantly evolving and changing with the times.

The history of programming is undergoing a similar arc, but is nowhere near as developed as a communication medium as jazz is. Whereas modern programming only 40-50 years old depending on when you start counting, jazz was just getting a head of steam at that point. You could break it down like this: C is akin to New Orleans “hot” jazz: foundation for much that followed, and still relevant in a lot of ways, but definitely showing its age. Java is like swing (literally! c.f javax.swing.*): appeals to the masses, anyone gets it without a lot of cognitive load. Ruby is like bebop: favors minimalism, more powerful, more intellectual, and less understood.

So what does that mean for the future of programming? We’re already seeing an increase in DSLs, polyglotism, and languages and tools used for specialized purposes. I would expect that trend to continue, and using the development of the many styles of jazz as a ruler, would say that there will not be a Next Big Language (NBL). Specialization and niche skills will be increasingly important as differentiators in our careers, but that means there will also be plenty of opportunity to stake out that new ground for ourselves and become leaders in these new specializations.

Jazz Fundamentals

Anyone can make the simple complicated. Creativity is making the complicated simple.” – Charles Mingus

Jazz as a creative medium has a number of compelling features that surround the music itself as well as the players. Let’s examine a few of these, using them as a mirror to reflect on programming.

Instrumentation. The modern jazz small ensemble is built upon the rhythm section -- piano, bass, and drums. The bass is the starting point, and is responsible for marking the beat as well as laying the harmonic foundation, often by “walking”. Because of this critical role, the bass player in a jazz band is almost always positioned in the rear-center of the stage, between the piano and the drums. The piano and drums also have a role in keeping time, but have more freedom in creating tension and dissonance by layering rhythms on top of the bass, in an activity known as Comping.

The easiest parallel to programming is libraries, frameworks and patterns. These are the building blocks upon which we code. A well-designed library makes your work as a programmer easier and more enjoyable in the same way a solid, experienced rhythm section complements a soloist.

To use an example from web programming, may I suggest Bass-Drums-Piano == Model-View-Controller?

m-v-c

When you hit a wrong note it’s the next note that makes it good or bad. – Miles Davis

Musical Structures. Much of bebop and straight-ahead jazz employs the well-established structure of the head, followed by solos, and finally repeating the head. The head is basically a crib sheet that consists of a tune or melody (usually a well-known jazz standard) and a set of chord changes that forms the harmonic basis for the entire piece. During the solo section, one or more musicians improvise over the changes for one or more “choruses”.

blue-monk

The 12-bar blues is easily the most common form found in jazz. It is usually the first form that a budding jazz musician practices when learning how to improvise.

Every working jazz musician is expected to memorize and be able to play a large number of tunes and harmonic structures. This body of tunes is exemplified by the Real Book, an underground, illegal transcription of a large number of tunes by some Berklee College students in the 70’s that has become a standard part of a jazz musician’s toolbox.

Collectively, these musical conventions and rules form a jazz vocabulary and a shared ritual that allow musicians to play together in a jam session without having played together before.

The takeaway is that conventions and standards, when organically grown, tend to be powerful, liberating forces for communication and collaboration. There was no OASIS- or W3C-like committee that sat down when the roots of jazz were taking hold and dictated that it would be played this way. It just happened, night in, night out, on bandstands and in sessions all over New Orleans and Chicago and New York.

I believe that some of the best examples of programming and technology embody those same ideas. Certainly Rails is a shining example in the programming world of such a set of conventions and how they allow you to be productive no matter what Rails project you’re working on.

It was when I found out I could make mistakes that I knew I was on to something. – Ornette Coleman

Improvisation. Making it up as you go. Jazz wouldn’t be jazz without improvisation. The whole concept of improvisation in jazz builds upon the conventions and structure, but gives you the license to do whatever you want. Improvisation is what turns those constraints into freedom. Conviction is the key. Get up and play, tell your story, tell it with conviction, and there will be no wrong notes.

Improvisation is also where the musical conversation happens. Where the soloist connects with the crowd and his/her fellow musicians. As a listener, following along with that conversation sometimes takes a trained ear. But there are still some musical devices that are easy for anyone to appreciate and can give you something to listen for.

Trading fours is a conversational device between players in the group. Most commonly, it’s used to give the drummer a chance to stretch out by alternating four bars of soloing with one or all of the instrumentalists. It’s a great way to enjoy the inventiveness of the group collaboration element of jazz by listening to how the soloists play off each other in short spurts.

An outstanding example of trading fours can be found in “The Blues Walk” between Clifford Brown and Harold Land (at about the 5:30 mark in the tune). They trade fours for two choruses, then twos, then ones, then halfs. The lines they weave are unreal!

Quoting is humor and inventiveness applied to improvisation. It’s named for a device where a player spontaneously inserts a recognizable melody into the middle of a solo. It’s basically easter eggs applied to jazz. Dexter Gordon and Sonny Rollins are two players known for their penchant for breaking out and quoting in the middle of a solo.

Improvisation and Programming

Learn the changes, then forget them. – Charlie Parker

As far as programming is concerned, it’s harder to see how improvisation can translate. Chad Fowler recently posted about programming as performance, asking for examples. Unfortunately, most of the examples given use programming as a means, but with some form of multimedia art as the end. I’d like to see programming performance where the code itself is the end result.

Do programmers improvise? I certainly believe that the best ones do. While it may be hard to capture the spontaneity of pure, real-time improvisation in a way that maps to how we write code, I think we can get close.

Continuous rewrites. Consider Fred Brooks’ axiom, “Plan to throw one away; you will, anyhow.” Jazz musicians do this on the bandstand every night! What if, rather than throwing one away, you rewrote a non-trivial piece of code five, ten, twenty times? What do you think would come out of that exercise as a result?

Live coding as a performance and teaching mechanism. I think live coding is an awesome example of spontaneity and risk-taking in programming, and one that not enough people attempt. Have you ever looked over the shoulder of a great programmer? It’s fun to watch, because you learn a lot. I could easily sit for an hour watching a seasoned programmer create code while working in their own environment. On the other hand, there’s a trend in conference talks where the presenter, to avoid the wrath of the demo gods, stands idly by while playing back a pre-recorded video of the demo. Sorry, I don’t buy this. If it’s not live, it’s not real. Let’s make live-coding something we all strive to do! Don’t be afraid to show the audience that you’re not perfect!

Do not fear mistakes. There are none. – Miles Davis

Instead of a hackfest, try a Coding Jam Session. Hackfests only rarely unite people to work toward a common cause; people enjoy the communal feel but too often people revert to working on their own thing instead of collaborating. Sprints are better, where the general topic or project is shared but each person is still working on their separate pieces. Rather, what I’d like to see is a group of programmers working toward a single shared goal. Plan ahead for a gathering of a handful of people for a lengthy period of time, say 8 or 12 or even 24 hours. Agree upon a theme or rough plan ahead of time, but allow for serendipity and improvisation to take hold of the group during the session. Get together, and start writing code. Try “trading fours”, allowing each person in the session to drive and add their bit of code into the mix in short spurts. The overarching theme should be collaboration and building on each other’s contributions. Avoid negative responses, such as saying “No” or “Yes, but...” or taking over and deleting or substantially rewriting someone else’s code. Instead, say “Yes, and...”. Imagine yourself on the bandstand, where once a note is played, it can’t be taken back. Really try hard to put away your devil’s advocate side or need to take control and instead play up to each others’ strengths. Depending on the blend of personalities, this could be a great way to spike a idea for a new website or a startup!

Group Gitjour repository sharing. Crazy idea: what about using gitjour at a coding jam in a mode where everyone broadcasts their own repository and adds everyone else as remotes? Commit notifications could be broadcast on the local network with Growl or a similar tool, and pulling in someone else’s changes could be a simple short one-line command, or perhaps even automatic. Imagine writing code together where suddenly a git merge is done for you automatically and the text changes right before your eyes right in your editor! Real-time collaboration!

Join the conversation!

I hope you’ll join me and post your thoughts about some of these ideas, either in the comments below or on your own blogs. And find some inspiration in your passions and pastimes you have outside of the programming world that help you become a better programmer and collaborator!

Discography

Those who saw my talk in person may be interested in this list of song samples. I personally recommend any of these albums. Information is organized as Section: Artist, Song, Album.

  • Intro. Naked City, Thrash Jazz Assassin, Torture Garden.
  • Ragtime. Jelly Roll Morton, Maple Leaf Rag (Morton style), The Library of Congress Recordings, Vol. 1: Kansas City Stomp.
  • New Orleans “Hot”. King Oliver’s Creole Jazz Band, Dipper Mouth Blues, Louis Armstrong And King Oliver.
  • Swing. Duke Ellington & His Orchestra, Take The “A” Train, The Fabulous Swing Collection.
  • Bebop. Charlie Parker, Koko, The Complete Savoy and Dial Studio Recordings.
  • Cool. Miles Davis, Israel, The Birth of the Cool.
  • Hard Bop. Herbie Hancock, Watermelon Man, Takin’ Off.
  • Free. Ornette Coleman, Free Jazz, Free Jazz.
  • Jazz Rock. Miles Davis, Black Satin, On the Corner. (Also remixed on Panthalassa: The Music of Miles Davis, 1969-1974.)
  • Contemporary. The Bad Plus, Iron Man, Give.
  • Walking. Sonny Rollins, Blue Seven, Saxophone Colossus.
  • Trading Fours. Clifford Brown, The Blues Walk, Clifford Brown and Max Roach.

Update. I’ve posted a muxtape of the songs here. Enjoy! (Also, I had to substitute Focus On Sanity from Ornette’s Shape of Jazz to Come album due to the length of Free Jazz. SoJtC is an early free album, a little more digestible than FJ.)

Jason Bock's WeblogEvolving New Games

Posted July 23, 2008 12:13 AM

This seems interesting - he uses GAs to create whole new games.

The Gumption BlogPascal Update

Posted by thomas @ July 22, 2008 10:05 PM

He’s doing so well he doesn’t have to stay for the full 24 hours and is coming home tonight!  We’ve got a string of normal vet visits ahead of us to readjust his insulin levels, but that’s a minor adventure after what we experienced this morning.

“The world is a dangerous and uncertain place.  A few odd moments of respect and affection here and there is about as good as life gets.” — Hal Hartley, Ambition

ShareThis

thingelstad.comWordPress for iPhone

Posted by Jamie @ July 22, 2008 08:10 PM

I just installed the WordPress application on my iPhone and am testing it out. It will be fun to be able to post and edit on the road!

photo

Tags:

Related posts

Missing MethodCommunityEngine - l18n support added

Posted by bruno @ July 22, 2008 08:06 PM

Thanks to some great contributions from the CE developer community, CommunityEngine now has full support for internationalization. We even have a good portion of the interface translated into (admittedly poor) Spanish.

This means all you non-English speakers around the world can use CommunityEngine to build awesome community sites in your own language!

This release is tagged v0.10.5 and you can find it here: http://github.com/bborn/communityengine/tree/v0.10.5.

If you’re interested in helping us translate the application into another language, please let us know! Drop us a line at Google Groups discussion list.

MNteractiveRoku + NetFlix + RedBox = TV heaven?

Posted by Darrel Austin @ July 22, 2008 06:41 PM

Roku + NetFlix + RedBox = TV Utopia.

We recently went cold turkey and cancelled our satellite service. The price was getting close to gouging range and we were increasingly finding that we were just paying for a lot of crap. We recently redeemed our $40 government coupons for our Digital TV Converter Boxes and discovered there’s a 24 hour TPT Kids station. So that was the final straw…we no longer needed to pay DirecTV to babysit and instead of paying DirecTV, we can toss a few more bucks TPT’s way.

So, we’re going to see if we can get by on OTA TV and NetFlix.

NetFlix is great, but we tend to forget to watch what came in and it sits there for weeks. The online video selection is OK, but we’re stuck with the laptop for that.

RedBox is great, but we tend to forget to return the movie we get, so that $1 soon creeps up to $4-$5.

It seems like there’s potential there for a great partnership or outrright merger. Add the $100 Roku box for your TV and it seems like NetFlix could easily corner the market…RedBox instead of Blockbuster, Roku instead of iTunes, and NetFlix instead of cable/satellite. Hmmm…

Schneier on SecurityWashington DC Metro Farecard Hack

Posted July 22, 2008 06:29 PM

Clever: Thieves took a legitimate paper Farecard with $40 in value, sliced the card's magnetic strip into four lengthwise pieces, and then reattached one piece each to four separate defunct paper Farecards. The thieves then took the doctored Farecards to a Farecard machine and added fare, typically a nickel. By doing so, the doctored Farecard would go into the machine...

refactr blog on software development, design, agile processes, and businessRepsonding to RFP’s

Posted by Ben Edwards @ July 22, 2008 06:22 PM

At Refactr we don’t often get RFP’s (Requests for Proposals). Most of our consulting project work comes from word of mouth and referral where we help brainstorm what is to be created at the outset. It is the only time in a project where there are routinely meetings for more than an hour - a time of much personal interaction. I would say that sending out an RFP, sends an entirely different message. At best, it is impersonal and puts up walls that must be knocked down. More seriously, when it comes to software development projects at least, RFP’s can set the stage for failure.

An RFP attempts to describe and document the project. The first part of this (to describe) is good, but the intent for an RFP to do anything other than get some ideas down and start a dialog between the stakeholders and developers* is misguided. An RFP is drafted prior to development, when the least amount of information is available and with a small subset of the whole team in place.

Another side-effect of the RFP process is the creation of a mindset that software development is something that happens to an organization by an external source. Software development should be one of the most collaborative endeavors into which businesses enter. Stakeholders and developers should work side-by-side in designing the software, customers and those who use the software should be involved in the use-and-feedback loop.

To underscore the idea that RFP’s are simply the “hello” to a longer conversation, we often informalize the process right up front by meeting in person and responding with text emails rather than fancy Word or PDF file proposals. Our hope is that this helps to establish a new tone for the project and have found that when formality dissolves away, real communication happens.

* The terms developers and software developers are used here to encompass all people who develop software including visual, information, and interaction designers, client-side coders, server-side programmers, etc. I could also have used software designers to mean the same bunch of folks.

Schneier on SecurityThe Case of the Stolen Blackberry and the Awesome Chinese Hacking Skills

Posted July 22, 2008 04:05 PM

A high-level British government employee had his Blackberry stolen by Chinese intelligence: The aide, a senior Downing Street adviser who was with the prime minister on a trip to China earlier this year, had his BlackBerry phone stolen after being picked up by a Chinese woman who had approached him in a Shanghai hotel disco. The aide agreed to return...

Wide Awake DevelopersArticle on Building Robust Messaging Applications

Posted by michael @ July 22, 2008 03:52 PM

I've talked before about adopting a failure-oriented mindset. That means you should expect every component of your system or application to someday fail. In fact, they'll usually fail at the worst possible times.

When a component does fail, whatever unit of work it's processing at the time will most likely be lost. If that unit of work is backed up by a transactional database, well, you're in luck. The database will do it's Omega-13 bit on the transaction and it'll be like nothing ever happened.

Of course, if you've got more than one database, then you either need two-phase commit or pixie dust. (OK, compensating transactions can help, too, but only if the thing that failed isn't the thing that would do the compensating transaction.)

I don't favor distributed transactions, for a lot of reasons. They're not scalable, and I find that the risk of deadlock goes way up when you've got multiple systems accessing multiple databases. Yes, uniform lock ordering will prevent that, but I never want to trust my own application's stability to good coding practices in other people's apps.

Besides, enterprise integration through database access is just... icky.

Messaging is the way to go. Messaging offers superior scalability, better response time to users, and better resilience against partial system failures. It also provides enough spatial, temporal, and logical decoupling between systems that you can evolve the endpoints independently.

Udi Dahan has published an excellent article with several patterns for robust messaging. It's worth reading, and studying. He addresses the real-world issues you'll encounter when building messaging apps, such as giant messages clogging up your queue, or "poison" messages that sit in the front of the queue causing errors and subsequent rollbacks.

The Gumption BlogThe Most Unthinkable Disasters

Posted by thomas @ July 22, 2008 03:35 PM

Over the weekend Jen and I got our spankin’ new iPhones, which made us very, very happy.  This morning, after our usual walk, Pascal had a diabetic seizure and is now beginning a 24 hour stay at the emergency vet.  Interestingly, I’m reminded of one of the most truthful and scary quotes by the narrator of A Christmas Story:

Oh, life is like that. Sometimes, at the height of our revelries, when our joy is at its zenith, when all is most right with the world, the most unthinkable disasters descend upon us.

ShareThis

Chase's Techno Rants and RavesVSTS 2008 - Unable to create DB connections in Server Explorer and how to fix it

Posted by Chase Thomas @ July 22, 2008 02:02 PM

Recently I posted about how to install SSMS 2005 after installing VSTS 2008.  After doing this I ran into an issue the minute I tried to create a database connection to my local SQL 2005 server to do some T-SQL debugging.  The error I got was this...

Could not load file or assembly 'Microsoft.SqlServer.Management.Sdk.Sfc, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies.

This is happening because Visual Studio needs the latest version of SMO (which was deleted when you uninstalled SQL Express 2008).

To fix this - there is a patch available via the RC0 Feature pack for SQL Server 2008. 

You can get it here...

http://www.microsoft.com/downloads/details.aspx?FamilyId=089A9DAD-E2DF-43E9-9CD8-C06320520B40&displaylang=en

You only need to install the SMO stuff so when you get to this page scroll down until you find this...

Microsoft SQL Server 2008 Management Objects

As always there are versions for X86 and X64 as well as Itanium (IA64) processors - download the one you need - install it and restart VS 2008.  You should be able to create the connections to SQL from VS 2008 server explorer once again.

 

Technology EvangelistVerifying Comment Spam Phrases

Posted by noemail@noemail.org (Ed Kohler) @ July 22, 2008 01:40 PM

Sometimes I come across blog comments that are just a bit too generic. They're complimentary, but don't mention anything specific to the topic of the post. When this happens, there is a good chance the comment is a piece of spam.

Here's an example:

Comment Spam

It's certainly polite, although it also says nothing related to the topic.

Other hints: Keyword stuffed username, SEO site, and an email address a human would never use (test@)

If that wasn't enough, I searched for the blog post's phrase on Google and found this:

Comment Spam Phrase

WOW! That 10-word sentence has been indexed 17,300 times by Google.

Looks like that spammer has had quite a bit of success getting their spammy comment past thousands of bloggers.


Comment on this post

Book of the Month: Everything is Miscellaneous
Gadget of the Month: Panasonic HDC-SD1 AVCHD 3CCD Flash Memory High Definition Camcorder
Web Site of the Month: Google Docs - Used to Write Technology Evangelist Posts
Technology Evangelist Podcasts: Subscribe to Podcast Feed
Technology Evangelist Videos: Subscribe to Video Feed

Tiny Pixel BlogBeijing Police Ninjas?

Posted July 22, 2008 12:49 PM

Beijing authorities run anti-terrorism drills before the wake of the 2008 olympics. Needless to say you wouldn't want to run a "prank" across these guys. You'll get pwned instantly! "Check out some more photos":http://www.boston.com/bigpicture/2008/07/beijing_2008_preparations_thre.html which include breath-taking architecture.

bjhess blogPost Redirect Get in Rails

Posted by Barry @ July 22, 2008 12:00 PM

Post St.
Photo by Terry Bain

Post/Redirect/Get (PRG) is a web application design pattern used to supply users with nice, GET-generated results pages that bookmark and reload with ease.

Say you have a results page with a filtering form at the top. The user might alter filtering options, and submit a form to winnow down her results. This is a POST, meaning params will be hidden from the user (not in the URL), making direct bookmarks to the filtered results impossible. Also, reloading the page will result in a “POSTDATA” warning message (”Do you want to resubmit POST data or would you rather we do a hurkey-jerky dance to confuse you?”) to the user. These are not things people like to deal with. Post/Redirect/Get says that your application should accept the POST command, and redirect to the results page using a GET request.

This is really quite simple to implement in Rails. Take this example action filter for an expense report controller, reduced to its bare essentials:

class ExpenseReportsController < ApplicationController
  def filtered
    redirect_to fitered_expense_report_path(params) and return if request.post?
   
    # Actual action work here.
  end
end

Very easy - the trick is really knowing the pattern more than anything. There has been some discussion on adapting this to deal with validation failures. In my experience, I’ve only made use of this pattern in non-RESTful controllers. You are sure to do better with it than I.

Tiny Pixel BlogFeatured Posts at Tiny Pixel

Posted July 22, 2008 09:03 AM

I need to lock up a way to display featured posts. Sometimes you just need a post to sit at the top for a while. There is an extension for this, but I haven't tested it out yet. Not to mention, I need to finish a design I'm working on.

Tiny Pixel BlogCall of Duty 4 for Mac on 8/25/08

Posted July 22, 2008 08:54 AM

I really want this game. But I think I'd rather invest in a better (faster) computer or an xbox.
We'll see in the coming months. But seriously, I've been waiting for the Mac version of Call of Duty 4 for a very long time. Click here to visit website

Magnetboxlinks for 2008-07-22

Posted by Ben @ July 22, 2008 01:30 AM

Bex HuffOracle Open World Around The Corner...

Posted by bex @ July 22, 2008 12:31 AM

Oracle Open World starts September 21st... That's just 2 months away! Woot! Goosebumps, I tell you.

The conference last year was a bit chaotic for me... when I'm presenting, I never feel like I have enough time... And with 60,000 attendees, it can get a little crazy. This year will probably be similar. I'm doing a variation on my introduction to integrating with Stellent talk, because it was one of the top ten talks at Collaborate 08 a few months back. Nice... The IOUG folks were kind enough to score a spot for me, and I'm gonna soup up the talk a bit. Andy and I will probably also giving an ECM business-strategy presentation that aligns with our upcoming book.

Then I can relax!

I haven't looked at too many of the other presentation yet, but the ones that won Jake's "pick a session" contest on Oracle Mix all look good. I'm glad to see that Dan Norris will be presenting on how to be an Oracle ACE... also, Lonneke Dikmans will be presenting a shootout between Oracle WebCenter and BEA Weblogic.

I'm sure that last one will be hyper political...

Its also good to see Eric Marcoux presenting on a comparison between Oracle Portal, Oracle WebCenter, and Stellent... its nice to see a Stellent presentation make the top 25. Although it will be tough to give a decent comparison of all 4 Oracle Portal Products PLUS Stellent in one talk... Good luck to Eric.

Your turn: are you going to Open World? If so, what would you like to see?

read more

Minnov8: Minnesota Innovation in Internet and Web TechnologyMinnesota Keeps Feeding the iPhone Habit

Posted by Phil Wilson @ July 21, 2008 11:16 PM

DoApp has had a busy week. Their MyLite and MyTo-Do applications are currently available and moving up the rankings via the iPhone Apps Store and Magic 8 Ball and Whoopee Cushion are waiting in the wings. Current stats include MyLite ranking #8 overall on Top Free Apps, and #1 in Top Free Apps in the Utilities category along with MyTo-Dos showing at #81 overall on Top Free Apps, and #8 in Top Free Apps in the same category

Launched as PagePow, DoApp was founded in 2007 by former early Google employee Joe Sriver. The company positions itself as “a new kind of internet applications company.” They aspire to the rather lofty sounding mission of enabling “a glorious new world of distributed content and commerce.” Okay, so flashing lights and whoopee cushions don’t exactly sound “glorious”. However, in our interview Sriver assures me that there is more afoot at DoApp than finding your keys in the dark, telling the future, or goofing on your friends. The current applications for the iPhone are about establishing the firm and “gaining experience in the process.”

He goes on to say, “The iPhone applications are just one aspect of DoApp, making up part of a growing portfolio of work.” More serious applications in the commerce, utility (including MyTo-dos), and entertainment segments are planned.” We have a staff of eight and we are working furiously to keep pace with the ideas we are generating.” Those ideas include mobile and web based applications. In fact PagePow was originally launched as a widget builder. There is still a presence in that market with plenty of interest, much of it on an international level, but “the attention around iPhone applications has really replaced the buzz on widgets.” according to Sriver. Clearly, though it may be hard to believe, not everyone has an iPhone and there are still plenty of opportunities to supply applications for other platforms. This reality does not appear to be lost on DoApp.

As for iPhone applications, “Nobody really knows the criteria by which Apple decides which applications to release to the App Store, so we can’t really provide a timeline for what’s next there.” says Sriver. As the company expands beyond its current staff it will be less reliant on Apple because it will be delivering applications for other platforms. For now though, being ranked #1 in a category on the hottest application distributor site is not a bad way to bring recognition to a growing firm. Perhaps its own Magic 8 Ball app would say that it “appears likely” that this Minneapolis based firm will parlay that attention into serious application success.

(In the interest of full disclosure it should be norted that Minnov8 contributor Graeme Thickins is also the DoApp Marketing VP.)

Tiny Pixel BlogThe LG Vu is Good From Here

Posted July 21, 2008 07:16 PM

A week or so ago I bought an LG Vu in the midst of iPhone 3G fever (so shoot me). Like a good handful of people, I prefer trusted/established mobile device manufacturers. Don't get me wrong, the iPhone is a great device, I just didn't care to have one. Now on to the review. *Moving About the Cabin* The interface is painfully simple as it should be. In comparison to the iPhone, I was very impressed. Everything was easy to find and I was pretty well learned in finding everything easily within an hour. Like any new phone it's absolutely necessary to get acquainted with where everything is located. For example, I love using SMS/MMS (texting and sending pictures). So I spent time finding the quickest way to get a message started. Doing little things like this helped greatly in learning the interface. You can scroll just as you'd expect by flicking or sliding your finger in all directions (very similar to the iPhone). Touch calibration improved this quite a bit and stock settings will simply piss you off. All in all, the interface was quite solid and as a breathe-first competitor to the iPhone, I was very impressed. *Walking Around with the Vu* If you're thinking about getting an LG Vu, consider how much you use your phone outdoors. The LG Vu, while a great device, does not do well under sunny conditions (including most other daylight situations). You can still see things enough to pump out a text message or recognize a call, but it's not as good as I'd like. Another set back of the LG Vu is the task of walking while sending an SMS (a.k.a, "texting"). Doing this outdoors sucks due to a slightly less than bright display, however it's not completely intolerable. Just be careful! lol. *Touch Display* The touch display can be rather quirky if you're not use to moving things around with your finger. After all, we do live in a button laden society. After a few touch calibrations (found in settings) things were feeling more naturally responsive. After a few days of using the touch screen, I was moving around and typing pretty quickly and exceptionally faster than with predictive text. What's great about the Vu is that you can still make use of predictive text. As said before, flicking/sliding around the interface was refreshingly easy with only a few quirks. However, the iPhone wins the battle as it supports MultiTouch which allows simultaneous interaction of 2 or more fingers. The LG Vu definitely showed it's colors when I began typing faster than what is allowed by it's single touch limitation. The latency between touches is pretty short but nothing near the iPhone. *Surfing the Web* The LG Vu comes with full HTML and Javascript rendering. While the Javascript is sketchy at this point, my experience with web browsing has been delightful. Initially, you might want to take a look at how to turn on full screen view and landscape mode. I was close to unsatisfied before I discovered those options. Now my Vu browsing experience is satisfactory. One thing you must keep in mind is that the web was not built for the mobile platform. While the Vu does have full HTML/Javascript rendering, it's nothing compared Firefox or Internet Explorer. I will say that browsing full websites on the Vu isn't the greatest experience in the world. But I can definitely get around the web and consumer content comfortably (without too many problems). All in all the web experience on the view was acceptable. I'd like to see improvements in the future but it doesn't fall far behind the iPhone. *Conclusion* The LG Vu makes a pretty big slash in terms of the touch phone market. LG's biggest competitors are Samsung (Instinct) and Apple (iPhone and iPhone 3G). It will be interesting to see how competition plays out in the coming months. As far as I'm concerned, I'd easily recommend the LG Vu to anyone. It costs about the same as the low-cost iPhone 3G models (before rebate), however you have the benefit of utilizing cheaper data/voice plans, using MMS (sending pictures) and voice dialing, all the things the iPhone lacks. Essentially, the Vu is a solid touch phone.

Jason Bock's WeblogA Definition of Atheism

Posted July 21, 2008 05:23 PM

Spot on, if you ask me.

Technology EvangelistGoogle Indexing Audio Files?

Posted by noemail@noemail.org (Ed Kohler) @ July 21, 2008 02:56 PM

A thread on WebmasterWorld (via SEO Roundtable) suggests that Google is close to adding a new type of content into their indexing mix. To date, in addition to typical web pages, they index PDF files, Word docs, Excel, PPT, RTF, txt, and swf and a few other formats found here.

Adding MP3 into the mix would be incredibly cool since a ton of very interesting content found on the web today is hidden inside audio podcasts.

Many podcasters have been going through the work of transcribing their podcast productions in order to generate easily indexable text transcripts. Should Google manage to auto-transcribe the contents of MP3's for indexing, this may become slightly less important.

However, my initial take is that transcription would still be valuable since Google will still have an easier time indexing text over taking their best guesses at what was said in audio files. Hard of hearing and non-native speakers are also big fans of transcripts since it allows them to consume or read along with audio content that would otherwise be inaccessible.


Comment on this post

Book of the Month: Everything is Miscellaneous
Gadget of the Month: Panasonic HDC-SD1 AVCHD 3CCD Flash Memory High Definition Camcorder
Web Site of the Month: Google Docs - Used to Write Technology Evangelist Posts
Technology Evangelist Podcasts: Subscribe to Podcast Feed
Technology Evangelist Videos: Subscribe to Video Feed

Schneier on SecurityScary Knife Makes for Great Newspaper Headlines

Posted July 21, 2008 12:12 PM

Who can not feel a little chill of fear after reading this: "Britain on alert for deadly new knife with exploding tip that freezes victims' organs." Yes, it's real. The knife is designed for people who need to drop large animals quickly: sharks, bears, etc. I have no idea why Britain is on alert for it, though....

Schneier on SecurityCost/Benefit Analysis of Airline Security

Posted July 21, 2008 11:53 AM

This report, "Assessing the risks, costs and benefits of United States aviation security measures" by Mark Stewart and John Mueller, is excellent reading: The United States Office of Management and Budget has recommended the use of cost-benefit assessment for all proposed federal regulations. Since 9/11 government agencies in Australia, United States, Canada, Europe and elsewhere have devoted much effort and...

The Glass is Too BigMid-2008 Bookshelf Activity

Posted by J Wynia @ July 21, 2008 10:45 AM

Bookshelves
Creative Commons License photo credit: gadl

Somehow, despite a June where I found myself working an absurd number of hours, I've actually managed to squeeze in some reading of the dead trees variety recently. Even more surprising is that it wasn't all non-fiction.

Part of the reading time came when Shelly started a new job in May that is barely a mile from my main consulting client. Since then, whenever it's made sense for post-work scheduling, we ride together. That, in itself, resulted in a serious of negotiations.

Since her car gets much better mileage than mine, it made obvious sense for us to share her car. That gave us our starting point. However, given how we've both driven to work in solitude for many years, we figured we should probably work out some of the other issues.

First was the radio. Because it's been made clear for nearly as long as we've known each other that I don't like listening to her choice of radio station. That meant that one of us was going to be listening to headphones. A quick discussion later, Shelly offered to do the driving. That put me in the passenger seat for many of the commutes over the last 6 weeks.

That conversation also resulted in rules like "little or no talking". It felt vaguely like Jerry and Elaine trying to figure out how to sleep together and still be friends. We were trying to figure out how we could drive to work together and still keep our relationship working like it already did. However, our attempt seems to have worked considerably better than theirs did.

Much of that time in the passenger seat has been filled with reading. So, what exactly *have* I been reading?

Odd Hours


Because I aim for rational, critical thinking in so much of the rest of my life, I enjoy my fiction, my TV and my movies with a strong dose of the impossible. In the case of Dean Koontz, that doesn't mean futuristic sci-fi, but often does mean granting some rule of nature being bent or broken, bringing a bit of the supernatural to otherwise modern stories.

The "Odd" series is one of my favorites (and clearly one that others like too, given the sales figures). The latest isn't quite as enjoyable as the last couple have been, but was still enjoyable, nonetheless. If you haven't read any of this series, featuring Odd Thomas, the fry cook who sees dead people and hangs out with the ghost of Elvis in Pico Mundo, CA, you should definitely read at least the first one.

If you have been following the series, this one follows a similar story to the others, with Odd falling into the middle of a big mess, relying on his supernatural gifts and the guidance of the silent ghost of Frank Sinatra to work things out.

It's also worth noting that the audiobooks in the "Odd" series are particularly well done as well.

On Intelligence


A while back, I saw an episode of Wired Science on PBS, featuring Jeff Hawkins (he founded Palm Computing) talking about the area of study that's pulled him in repeatedly: neuroscience. His description of the neocortex, including its similarity in size and thickness to a cloth dinner napkin and that thin layer of cells' pretty much *being* the thing that makes us human intrigued me. So, I bought his book.

On Intelligence is the book on this list that took me the longest to actually get through. It's not particularly long or even hard to read. However, every chapter led me to ponder quite a bit. As a result, I tended to read this one in fits and starts over a few months.

The central premise is his theory and the science to back it up focuses on the general algorithm for the neocortex. Oversimplified, every portion of the neocortex just watches for and stores patterns, combining them and replaying them. That goes for sensory input, our own motor control, etc.

Ever since reading this book, I've been seeing more and more in day to day life that fits with this theory. Should his model for how the brain works turn out to be completely right, it will be huge, particularly in the area of computer-based artificial intelligence.

I fully expect to continue mulling this one over for months and years to come.

The Back of the Napkin


Given how much time I spend at a whiteboard, I've often contemplated how to more effectively use that tool. A really well drawn diagram, particularly if it's accompanied by both a good analogy and a good example ends up hitting nearly all of the learning styles in a given room.

The Back of the Napkin was recommended to me as a really good book for how to improve whiteboard diagrams. That recommendation wasn't ill-founded. This approach gives a nicely structured system for how to diagram most common business situations. By focusing on the who/what/when/where/how much types of questions, you clarify your own thinking as well as ending up with things that are fairly easy to draw out.

Fortunately, if you're concerned about your ability to draw, this book should help to alleviate some of those worries. That's because nearly everything he shows could be drawn by a typical elementary school child. So, "I can't draw" is not a reason to avoid drawing in this kind of context.

Presentation Zen


In a similar vein, I've enjoyed the Presentation Zen site for quite a while. So, when I saw that the author of that site had put out a book, I had to take a look.

Like all of the stuff on his site and in conference presentations, etc. I've really found his message to be one that resonates with me. I'm still struggling with how to apply the "zen" approach to Powerpoint in more technical presentations, as opposed to the inspirational and conceptual presentations that dominate the examples, but it's clearly a direction in which to strive.

The book is in keeping with the website content, and bundles it together quite nicely. Much like the presentations themselves, the book makes really good use of white space, vivid photographs and nice layouts.

If you're still using the standard bullet-point layouts from Powerpoint (and the default Keynote layouts aren't really any better, FYI), you should definitely read this one.

Crisis of Abundance: Rethinking How We Pay for Health Care


I read this really short book on a flight from Chicago in preparation for an economics book club that I joined this past month. It wasn't particularly engaging (I'm not really as much into the policy and politics of economics as I am the other aspects of the discipline), but did tackle a very timely topic: upwardly spiraling health care costs.

His thesis is that among the tradeoffs we could employ, most, including limiting access to procedures are extremely unlikely and distasteful to Americans. The remaining possibility (other than just living with the higher costs) is to remove the insulation from the costs that plagues the US health care system.

Our current system grew out of wage freezes in the post-WWII era where employers attempted to attract employees by adding perks, among them health care. A couple of generations later, everyone presumes that this is the way it's always been and end up going to the doctor where an appointment resulting in a couple of Tylenol and one where you get an MRI and dozens of lab tests cost exactly the same.

If you remove that price insulation (as you've got with things like LASIK surgery), the market does a bunch of work on your behalf to pressure the prices.

It's an interesting theory and one we discussed on Tuesday at the book club. This is the kind of thing that's interesting if you find that sort of thing interesting. If not, skip it.

The Mythical Man-Month: Essays on Software Engineering


Most of the stuff in Fred Brooks' Mythical Man-Month is stuff I've read in one place or another over the years. However, I'd never read all of it in one place and it had been a while. When I heard the audio of his presentation at OOPSLA 2007, I grabbed a copy and read it through.

The details and examples are definitely showing their age, but the underlying principles, including the source of the title still ring true 35 years after he wrote them the first time. There are some myths of software development that just seem to have imbibed the zombie powder. They just won't die.

I've lost count of the number of project managers who seem to think that they're going to be the first to add people to a late project and speed it up. Re-reading these essays invigorates my desire to challenge that assumption more emphatically when it comes up.

Predictably Irrational: The Hidden Forces That Shape Our Decisions


Behavioral economics is a field that interests me deeply. For some reason, I'm drawn in whenever someone gathers data about not only *what* we do (rather than what we think we do), but why we do it.

When those things come together, it provides a model for understanding my own behavior and, when necessary, modifying it. This book hits one right up the middle in that way, as does the author's site.

He examines some of the behaviors we all exhibit that don't mesh with what a purely rational/logical behavior would be in the same situation. For instance, we nearly all have a completely irrational desire to avoid closing off options. We'll go to absurd lengths to keep our options open, even when 1-2 of those options are demonstrably better in every way.

That's an impulse I feel regularly that has bothered me. After reading this book, there's a lot of those kinds of things I see myself doing that bother me. Fortunately, now that I recognize them, I can actually stop and adjust my behavior. On the flip side, I also now understand other people's behavior a little better as well. That can help when you're working with others and need a better model in your head for how they're going to act in day-to-day situations.

Overall, definitely an eye-opening book and approach.

Wrap Up

When I sat down to write this up, I figured it would be a quick post. I had a couple of books that I finished and wanted to mention. As I started writing, I saw how many books were lying around that I knew I'd finished recently and, next thing you know, I've slobbered nearly 2000 words into this post.

A while back, I read a comment that said you should only pass along books worth reading. The person in question thought that if you didn't really enjoy a book, you shouldn't donate it to charity, etc. as it would encourage someone to read an unworthy book.

I don't think I agree with that (too many books are liked or disliked on largely subjective terms), but it does make me think whenever mentioning a book to make a point of being fairly clear about whether it worked for me or not and why. And, for this list, there you are.

MN HeadhunterDaily Twitter Notes

Posted by MN Headhunter @ July 21, 2008 05:28 AM

Sometimes the day does not allow a blog post let alone write about things on my mind or I hear about like economic, political, local news (sports too).

With Twitter, you at least get some of the flavor, a flash moment during the day, of what I am thinking about. You can follow during the day or see the digest below.

Here are the highlights of my recent Twitter activity. If you want to see the full version click MN Headhunter on Twitter

MN Headhunter on Twitter | July 20, 2008 - July 18, 2008 (last one first, links added):

July 20, 2008

  • @myklroventine A&W, you saying that brings back the kid in me. Fond memories.
  • MN Headhunter blog: June 2008 Minnesota Jobs Report

July 19, 2008

  • Minnesota Twins: Umm, last I saw Texas 2, Twins 1 early in the game. Now top 8th, 14-2 Minnesota. I missed a TD and 2 FG's. (crap)
  • 3 DM's today asking if I am OK. Had not made myself seen on Twitter yet today. Busy with event and day job stuff, Recruiter 101, PowerPoint

July 18, 2008

  • @RobertFischer Is this the third time I have sent you a message along the lines of, Recruiters Suck?
  • @StevenRothberg This is easy when John and the Recruiting Roadshow bring presenters and content like you. I can send email all day :)
  • MN Tech friends: Know a talented PHP programmer (Rails/Flex a plus) who may be looking for a perm job? I have a cool gig to share with them
  • MN Recruiters and Recruiting Roadshow event: FULL BABY!!! 250 of 250. A wait list has started as we will have cancellations.
  • State of MN jobs report: +3,400 jobs added but I saw little coverage about it. Good/better news must not be news.

The Savvy TechnologistSo digital natives don’t exist?

Posted by Tim Wilson @ July 21, 2008 04:16 AM

I was sitting in one of Ewan McIntosh’s sessions at BLC08 and couldn’t help noticing how much delight he took in disputing the digital native/digital immigrant distinction. The native/immigrant comparison may not be accurate (so Ewan says), but it sure is useful. I’ve used those terms many times since reading Prensky’s original article (PDF, 132kB) to bring the issue of relating to today’s kids more sharply into focus with groups of educators. So if there’s no such thing as a digital immigrant or native, is there any useful distinction to be made between today’s students and their teachers?

There are a couple others that I’ve used at various times. The first is a sort of attribution theory I read about some time ago whose reference I’ve misplaced. The basic message was that when adult learners encounter a technological obstacle such as a button that doesn’t do what they expected it would, they often respond by attributing their failure to their own lack of technology savvy. Kids, on the other hand, usually assume that the technology is poorly designed and try to identify a workaround. Ewan hinted at this when he talked about how kids will just press buttons to see what happens. I don’t see adults do that very often.

The other comparison I like is one that became clear to me when I was in the classroom teaching physics. We were talking about Newtonian mechanics, and the story of Isaac Newton and the falling apple came up in our class discussion. The classic story of the apple falling on Newton’s head is a myth; the actual story involved Newton observing the moon rise in the distance as an apple fell from a tree across the yard. When Newton witnessed those events he realized that the same force that caused the apple to fall must also be affecting the moon. He surmised that the moon is actually falling just like the apple. Of all the people who had ever witnessed a similar scene, what was different about Newton? Oh, I don’t know… how ’bout genius? :-)

Geniuses see connections that regular people miss entirely. I think the same difference applies to experts and novices. How long does it take you to learn a new word processor? Not very long I’d guess because you’ve probably used a bunch of different word processors in the past, and you realize that all word processors work pretty much the same. Technology novices tend to get hung up on the small differences.

I don’t know if either of those are as immediately useful as the immigrant/native comparison. I’d sure like to know if anyone has any proven techniques to accelerate the move along the novice-expert continuum.

MN HeadhunterJune 2008 Minnesota Jobs Report

Posted by MN Headhunter @ July 20, 2008 05:38 PM

No doubt the Minnesota jobs reports have not been outstanding but since the -10,000 in April '08 that was all over the print and TV news I have not seen much written about the +5,000 gained since then.

Frequent visitors are not surprised to see me say something like this, bad news is news and good news is not news. Some balance would be nice.

What I mean is, when the April report came out one might have thought the sky was falling. They did not mention with the late winter and spring employers had not yet started to hire for the season. They (most) did not mention that the biggest loss of jobs was for those under 25.

Does it suck to be under 25 and without a job? Of course. But looking at things in a macro view it needs to be taken in context.

Also, only a couple of national stories mentioned the higher minimum wage. I do wonder how much that plays a part in this. Surely some small employers are doing more with fewer workers. (This is not a political statement for against but it in some small part it has to be cause/effect)

Points from the June ‘08 report:

  • The state has added 1,900 jobs through the first half of the year, compared with a U.S. loss of 438,000 jobs during that period.
  • Growth: Government, and Education and Health Services +1400, Financial Activities + 900, Other Services +600 and Construction +600.
  • Declines: Trade, Transportation and Utilities -1500, Professional and Business Services -800, Information -200, Leisure and Hospitality -200, and Natural Resources and Mining -100.

Unemployment rate (seasonally adjusted):

  • June '08, 5.3%
  • May '08, 5.4%
  • April '08, 4.8%
  • March '08, 4.7%
  • February '08, 4.6%
  • January '08,  4.5%
  • December ’07, 4.9%
  • November ’07, 4.4%
  • October ’07, 4.7%
  • September ’07, 4.9%
  • August ’07, 4.6%
  • July ’07, 4.6%
  • June ’07, 4.5%

Jobs Created/Lost (seasonally adjusted):

  • June '08, +3,400
  • May '08, +2,500
  • April '08, -10,100
  • March '08, +5,200
  • February '08, -4,100
  • January '08, +8,500
  • December ’07, -2,300
  • November ’07, +6,900
  • October ’07, -6,600
  • September ’07, -6,300
  • August ’07, -2,000
  • July ’07, -7,300
  • June ’07, +4,200

Over The Year Job Growth (not seasonally adjusted):

  • June '08, +7,600
  • May '08, +7,100
  • April '08, +19,000
  • March '08, +17,200
  • February '08, +12,500
  • January '08, +15,300
  • December ’07, -700
  • November ’07, +2,566
  • October ’07, +2,100
  • September ’07, +9,800
  • August ’07, ???
  • July ’07, +19,165
  • June ’07, +35,133

 

Click Employment & Economic Statistics for more posts on the topic and MN Headhunter for the latest blog posts.

MN HeadhunterBackup Your LinkedIn Profile NOW

Posted by MN Headhunter @ July 19, 2008 11:46 PM

This may be my shortest post ever. Rather than repeat what Jason Alba posted at JibberJobber just go over there, LinkedIn Maintenance: Do This Right Now (or else?)

It has been 2 years or so since the last time I downloaded my contacts and back then I do not remember being able to do the same for my profile.

While there, be sure to check out his two books and related sites (Disclaimer: I get nothing for the referral):

I’m On LinkedIn – Now What???

I’m On Facebook – Now What???

behind the timesAwesome new Groovy Mixin Syntax (and F#'s alternative)

Posted by Hamlet D'Arcy (noreply@blogger.com) @ July 19, 2008 11:10 PM

Groovy's MetaClass recently acquired some new features...

Check out how easy it is to add multiple new methods to an existing class:
class ListUtils {
static foo(List list) { "foo called" }
static bar(List list) { "bar called" }
}
List.metaClass.mixin ListUtils

assert "foo called" == [1, 2, 3].foo()
assert "bar called" == [1, 2, 3].bar()
From the DefaultGroovyMethods source, it looks like you can currently call .mixin on any Class or MetaClass object, passing a new Class (here ListUtils) or list of classes. Awesome.

Paulk made a few comments regarding the Maximum Segment Sum implementation in Groovy from my last post. Looking at both the F# and Groovy original implementations, it was easy to see the value that F# brought for functional programming. But the new versions can be seen here, and the results are not so different.

Open classes are still available in F#, despite it being a statically typed, compiled language. I still find the F# open classes syntax simple and appealing:
open List

type List with
member x.foo = "foo called"
member x.bar = "bar called"

if "foo called"
[1;2;3].foo then failwith "error"
if "bar called"
[1;2;3].bar then failwith "error"
I especially like how the 'this' reference can be named anything at all (here 'x').

Let the golf begin.

SlickThought.NetWhat I'm Reading...

Posted by jab @ July 19, 2008 07:47 PM

I was having a conversation the other day with a customer and we started talking about what each of us had been reading (non-technical, no work related).  It is always fun to learn about a new author and share opinions on common books.  I thought I would post on what I have recently finished or am currently working on.

Recently Finished:

The Dreaming Void (The Void Trilogy, Book 1) : Peter F. Hamilton
I am a huge Peter F. Hamilton fan.  His The Reality Dysfunction Series was absolutely fantastic, as was his series starting with Judas Unchained.  The Dreaming Void is set in the same universe he developed for Judas Unchained.  It was a bit of a slower start than his other books, but it really started to move in the second half of the book.  Hamilton is a master at developing a complete world and the characters within i