My initial thoughts about Mesh...

First and foremost:The platform sells itself: The key is getting people to install the client,  add something to their Mesh from one device, and  'consume' it from another.  Nevermind the details, they complicate things.  Erick at TechCrunch stated in April that Mesh is 'aimed at developers'.  What?  Why are they aiming? Throw it out there with some simple user stories and see what happens.  Share photos, back-up your important stuff, access your favorites from any computer, write your own news stream.  It could be compared to the functionality of many social apps:  flickr, google docs, twitter, all the recent sync/backup services (that's the trend lately I guess)...

Wish my Blackberry had a Mesh client.  I would love to sync images/videos taken with my camera, view files from my laptop, home pcs, work pc, from my blackberry...  Mobile clients are due in late '08.

Wish Mac had a Mesh client.  My boss has shifted to the Mac camp, and I don't really blame him.  Ours isn't the only enterprise with a chance to convert from MSFT to Mac/Linux in the next 3-5 years.  Non-windows clients for the Mesh platform won't keep this from happening, but it will reduce the growing 'painting myself into the corner' feeling that MSFT technologies tend to have.  Mac clients are supposedly due for release late this year.

Source control??? Sharing of files & folders, reporting, versioning, syncing, and for extra credit: realtime collaborative authoring (at the very least, via remoting)???  Still unsure about how many requirements Mesh meets here, still playing around with it.

Smaller bits from the blog team: This is probably rediculous, but Twitter is ruining my taste for verbosity.  I guess there should be some detailed anchor content that is thorough, and it's as good a place as any.  I have to wonder though: If the Mesh team posted more frequently on much smaller stories and concepts, Mesh adoption may increase, and the details would flesh themselves out via posts from the developers they're targeting (like me).

Public Mesh: It may not be practical in a Mesh topology, but it would be cool to be able to watch how other people are using Mesh, and it may create opportunities to broaden networks.

Competing with Google: MSFT needs to go live with a model that makes me feel like they're giving it away.  I am sure they will have priced tiers for their services, but the 'free' service should be generous enough that I don't feel like I get more from Google.  Let people appreciate the value of the cloud before they are even asked to pay for it in any way.

Hotkey: I love notifyicons, but I love hotkeys more.  I don't like to have to hunt for my icon to view remote documents or interact with my colleagues.  It needs to become a natural extension of my Windows experience, like OS X's F12

Social net awareness: Import my friends from {twitter, gmail, facebook, linkedin}.  Mesh should give me as many opportunities as possible to bridge my social nets together - this complements its goals of bridging apps and devices.  Friendfeed does an amazing job at this, but will probably always be just a social net.

10 Years!

And here's to 60 more... I love you Jeanne.

DSC01677

Large File Uploads For Clients

Quick background: we have clients that occasionally need to send us very large files (up to 1gb).  We need a secure, quick, and easy way to make this happen.  FTP was designed for this, and HTTP still feels kludgy.  I'm looking into 3rd party components, services, plugins, as well as considering a custom approach.  At the end of this post are a few links out to some other HTTP solutions, and some blog posts on the topic.  Here is my initial solution, which uses FTP, hands the control over to our users (as opposed to the help desk), and gives us responsibility for the process, but requires the end-user to download an FTP client for their transfer.  Not sure yet if this is a good trade-off...

Business Process for Large File Transfers with FTP
Request: From lawyer, from their Marketing Dashboard:
- Client and Project ID
- Email of contact at client
- Duration to keep site active
- Additional Description/Instructions

Submit: (Use scriptable FTP server like FileZilla)
- Create FTP Directory for client: \\internetServer\FTPshare\clientProjectId
- Create user in FTP Server, add read-only privs to directory
- Create Destination Directory for File on File server \\fileserver\files\FTP\clientIProjectId
- Add a monitor for the file upload to complete (internal service we have running) and notify lawyer when done
- Email client with URL to page with FTP client download link & instructions

Recieve: (FileWatcher service sees new file is complete)
- Move file into Destination Directory on file server
- Remove FTP directory, instance, external user acct
- Email lawyer to notify that file is transferred, with link to file on file server


Existing solutions and posts on the topic:
Interestingly, TechCrunch made 2 announcements today related to uploading large files over http, regarding drop.io, and YouSendIt.

Outlook (as of today!)
YouSendIt Outlook Plugin, [TechCrunch announcement]

HTTP Services:
YouSendIt
Drop.io

HTTP Custom controls:
AJAX Uploader
JFileUpload
NeatUpload ASP.Net Component
Telerik's RadUpload

Blog Posts:
File Upload With ASP.Net
Why Are Web Uploads So Painful?
The Dark Side of File Uploads
Large file uploads in ASP.NET

Depot, an exercise in Community-Sourcing

No downloads or pics, just a quick rundown of a very cool app idea while it's in my head.

About a year and a half ago, I wrote a small winforms app.  It's stayed very rough around the edges and hasn't gone anywhere from the original prototype.  This prototype (I called it Depot) was written as a proof-of-concept of the simplest possible community-sourced bookmarking / tagging / searching tool that could possibly exist.  A self-organizing business-specific link / text library could provide immense value to a company.

Depot hinges on 4 basic features common with collaborative apps:

1. Producing: Adding content in the form of URLS and/or text (2 different fields that can be used individually or combined)

2. Tagging

3. Searching for any item by any combination of title words or tag

4. Sharing: All content is automatically shared, and open to edit & extend, by anyone within the network

The search is an autocomplete textbox, that works with any combination of title words and tags.  Typing 'catering' displays all catering items, but as you start to type 'catering madison', the suggestions filter appropriately.  As you would expect, changing the text over to 'thai madison' updates to items tagged or titled with thai and madison.

The url + text fields is an interesting feature - a user may want to toss in a quick note for a catering url someone else added, like "Beware the red curry!!!".

The app seemed to work beautifully, but the algorithm is not built to scale up yet.  Everything is cached heavily on the client-side.  There are no concurrency checks.  Also, to be fit for production, it will need some kind of user-auditing, history, and probably some kind of browser integration (or at least bookmark / favorites sync).

I don't know yet what will become of Depot.  I hope to find the time and motivation soon to dust it off and start polishing it up for a pilot group.  If nothing else, I got an ornery hog of a tag-search algorithm that may come in useful someday.

Cynical Spolsky - Why Mesh Might Work

Joel Spolsky has written a rather bitter post about Microsoft's Mesh architecture [Architecture Astronauts take over], and why it is bound for failure.

My 2 recent posts are on topic:

1. In Ideas Are Cheap Right Now, I center on the fact that new social network apps are a dime a dozen.  MySpace has given the regular everyday lay-user an entry point into the social networking world.  In the last few years, I have signed up for, played with, and forgotten about far more networks than I currently use.  Too many accounts, not enough time.

2. Shrinking the 'App Surface' - Microsoft Mesh considers Mesh as a solution to this NEW problem: New networks are built every day, old accounts are forgotten, information is lossy due to the surface of applications we have available to us.  Mesh provides a single space to manage our incoming feeds, as well as update our own feeds.

Why Mesh Might Work
Overwhelming number of online applications to use: Even new models show up every day.  For each new model, there are interest-specific clones built.  Digg.com introduces the model, DotNetKicks.com is a .net-specific vertical representation.  MySpace introduces a new model, GroupRecipes.com represents a cooking-specific vertical, and AnglingMasters.com represents a fishing vertical.

Mesh speaks the language of the Web.  Hailstorm did not:  RSS is passed out like digital candy from every new site that pops up... Hailstorm did use XML, but you still needed to wire it up to your apps (writing service layers or transforms, etc).  With RSS (and SSE, which is based on RSS), the wiring is automatic: you just provide the feed URL. 

Mesh will be free: This, combined with the ubiquity of the RSS protocol means a much lower barrier to entry for regular people.  Hailstorm was not going to be free.

Enterprise integration:  Syndication libraries like the open-source Argotic Framework make it relatively easy to feed-enable just about anything.  (I am keeping WCF and SOA out of the conversation on purpose, as this is more about bridging users to data than data to data).

Regarding Spolsky
I have been a big follower of JoelOnSoftware for many years (I even bought his books), and as I have pointed out in recent posts, I am excited by what he and Jeff Atwood are up to with stackoverflow.com.  I can't imagine those 2 minds not coming up with something new and exciting for us.  I am disappointed in his anti-Microsoft propaganda, which adds unnecessary and negative noise to his good technical and business writing. 

I think that stackoverflow.com is capable of enabling a strong industry-wide positive feedback loop in the community, regardless of platform, company, or favorite language of their user base.  I would hate to see the effectiveness of the project dampened by Joel's political shenanigans as more CodingHorror readers (primarily Microsoft developers) start paying attention.

Shrinking the 'App Surface' - Microsoft Mesh

I have lost track of how many social networks I'm involved with.  The 'app-surface' is too huge to manage.

In my work, we struggle with a problem of custom development: another system means another place for the lawyers to worry about their data. 

We are maintaining apps that were designed for a specific purpose but are being used by 25% of the organization.  

Occasionally, I will bang out a new prototype app that may or may not take off.   It helps keep the innovation conversation going, but it broadens the surface of possible apps to work in.  This is a problem.  The solution is buried somewhere within the combination of service-enabling application data, creating dashboards and pluggable architectures, notification systems, unified communication, etc... Lately we have been talking about Sharepoint as the ultimate solution because you can wire all of your enterprise libraries into web parts and slap it all onto a single webpage.  What about mobile data then?  What about non-web types of collaboration?  What about persisting a conversation between meetings, email, and phone?  The problem too big to solve with a website.  It may be too big to solve with a platform, but it sounds like Microsoft is having a go at it with Mesh.

The Mesh is composed of 'mesh objects', which are standardized feeds (SSE, which is now FeedSync) of data.  Mike Zintel from the Live Mesh Team talks about Mesh in his "Live Mesh As A Platform" post:

... a customer’s mesh, or collection of devices, applications and data that an individual owns or regularly uses...
... one instantiation of a mesh object is as a local (shared, aka Live) folder on a PC. This same mesh object might be instantiated as a slideshow on a web site, and as preview and upload UX on a mobile device with a built-in camera. A Live Folder is but one specialization of a mesh object. A mesh object could also represent a range of cells in Excel or a To Do list that can be accessed from anywhere
...  

I want this so bad... My collaboration post here shows where my head is at when it comes to communication channels and their disconnectedness from each other.  I think speech-to-text and text-to-speech, combined with data-to-feed and feed-to-data (bidirectional feeds especially, with FeedSync!) are going to tie things together and shrink our app-surface to a managable level.  The Mesh, as far as I understand it, is the first technology that makes this seem possible.

In the meantime we will keep juggling (and forgetting about) our socnets along with our various calendars, emails, meetings, and apps...

Ideas are cheap right now...

Random thought of the day...

Startups and mashups are all over the web, and there is no end in sight to the new ideas and social networks that are popping up.  It's very cool, but it's also overwhelming at how thin we are getting stretched.  For every new API-exposed web-app, there is another whole set of possible mashups... the possibilities grow almost factorially!  For the number of unique api-featured apps a, plus existing mashups m, the potential sum of mashups is m factorial.  The potential-app-surface formula goes something like: s = a + m!  Trillions of possible web apps with a couple dozen unique API-enabled sites... 

... play pin-the-tail-on-the-mashup, build what you come up with and hope for a positive-feedback loop in your new community, then sell out for $50 Million.

 

... design tweaks ...

Just some updates to make it sharper... lost the #88Fish baby blue, got this sharp #008ish blue thing going on with links, it is a step in the right direction, I like it...

Doug Kinney #4: We're gonna eat a dolphin!
Doug Kinney #2: We're going to pet a dolphin...
[multiplicity quotes]

What may have been http://ep.iphano.us

Still on the subject of Atwood (3rd post in a row) & stackoverflow.com (2nd in a row)... this is it though...

In Jan 07 I jotted some stuff down, called it ep.iphano.us (don't know if the domain was available then, it isn't now).  I wonder how close the stackoverflow.com vision is to what I had in mind?  I invisioned urls as answers, but it seems like Jeff & Joel want their own knowledge base of fresh answers.  Pasted notes from my tiddlywiki:

Overview
Digg-like community where users submit ideas or questions, and other users submit URLs as answers to them. Users can endorse questions, as well as responses. Each user has 2 scores: QEndorsements, and AEndorsements. The front-page effect is used for 2 lists, both chronological: Left lists requests (ideas/questions) that have passed some threshold of endorsements, and Right shows Responses that have exceeded some threshold of answer endorsements. Users can subscribe to filtered sets of questions and/or answers. Submissions (requests or responses) can be categorized, described, discussed, and tagged. Users can subscribe to their own sets, which may be as simple as all requests that are either tagged 'movie' or categorized as 'movie'.

Use Cases
- Submit new Idea or Question (request submission type)
- Submit new response (as url, to a request)
- Create filtered set for request
- Create filtered set for response
- Grab feed url for filtered set

- View set
- View front page (requests, and responses)
- Endorse request
- Endorse response

Db Tables
- SubmissionType {Request, Response}
- FilterType {EndorsementCount, CategoryType, SubCategory, Tags, UserEndorsements, UserEndorsements, User, Filter}
- CategoryType {Technology, Science, World & Business, Sports, Entertainment, Gaming}
- User
- Submission
- UserEndorsement
- UserFilter (UserSet)
- SubmissionTag
- SubmissionSubCategory
- UserSubmissionTypeScore

Stackoverflow.com = joelonsoftware + codinghorror

Jeff Atwood has paired up with Joel Spolsky and today they both announced stackoverflow.com, a new community support site that doesn't exist yet... but will be run by Jeff, created by the community for the community, and narrated weekly via podcast.  Looks like a digg-like structure where diggable items are answers to questions posted by the community.  Submit questions, submit answers, vote for answers...

[Jeff's announcement]

[Joel's announcement]

[stackoverflow.com]

[podcast #1]

This will be interesting...

.Net Open Source

I finally had time tonight to scrape through Jeff Atwoods spreadsheet o' candidates for his Open Source .Net grant.

ScrewTurn Wiki got the $5k (+ $5k more matched by Microsoft),was a great choice... it is the only wiki I have ever considered putting into production.  There were some awesome projects in the list (even nProf, but it's dead now, 404 and all), quite a few new ones I'd never heard of...

I've played with most of these before, just laying down single list of them on my site:

nHibernate - ORM framework that's been around forever

NProfiler

Paint.NET

Prof-It for C#

RSS Bandit

MEDIAPORTAL - Haven't played with this one at all, but it looks promising

They're coming right for us!

Milwaukee news has been going on about cougar sightings, like this one from about a month ago... Lists of local cougar-related news are here and here.

From that article: "According to the DNR, the last known wild cougars in Wisconsin disappeared in the early 20th century."

Today (via Guy Kawasaki on Twitter), a 150lb cougar was shot and killed just south of here, in Chicago.

From the Gospel of Wikipedia:

... large male territories of ...58 to 386 sq mi...

Male ranges may include or overlap with those of females but, at least where studied, not with those of other males...

Cougar is also known as puma, mountain lion, or panther...

I wonder how likely it is that it's the same one...

My thoughts went, "Why did they kill it? Chicago cops should have tranquilizers", which triggers the segue to:
Peppers: She's a beauty, ain't she?
Frank: Yeah, what kind of gun is this?
Peppers: It's a tranquilizer gun. If any of these little f***ers decide to freak out on the kids, I get to take them down. Ain't that right?
Peppers: [yank's on the mule's reigns]
Peppers: Oh, what? That's what I thought. Shut up.
[Frank cocks the gun]
Peppers: Hey, hey. Careful with that. That's the most powerful tranq gun on the market. Got her in Mexico.
Frank: Cool.
Peppers: Yeah, it is cool. They say it can puncture the skin of a rhino from...
Frank: [Frank shoots himself in the neck with the dart]
Peppers: YES! That's awesome!
Frank: What?
Peppers: You just took one in the jugular, man.
Frank: What? I did.
[feeling his neck]
Peppers: YES!
Frank: Oh my god. Is this bad? Is this bad?
Peppers: You better pull that s**t out man. That s**t is not cool.
Frank: Wait. What? Pull what out?
Peppers: You got a f***ing dart in your neck man.
Frank: [laughing] You're... you're crazy man. I like you, but you're crazy.
[imdb old school quotes]

The Thirsty Developer, Project Euler

I can't believe that I didn't post about this!  My site was acting up when we did this, so I probably didn't have a place to post it.

Larry Clarkin & Dave Bost from Microsoft have a podcast called The Thirsty Developer.

Back in December I met up with Larry, Dave, and Damon Payne at the Ale House in downtown Milwaukee to talk about Project Euler.  I remember having a lot of fun, despite being a bit nervous (my first experience on that side of a podcast!).  It was very loud in there as well; I think Larry did a great job of editing.

[Here is the Project Euler episode]

[The Thirsty Developer]

[Subscribe to The Thirsty Developer Podcast]

[Subscribe to The Thirsty Developer Blog]

 

Reading, Writing, Arithmetic, and Business

The land of opportunity, land of the free. The land of 40 million children between the ages of 5 and 15. The land where 85% of those children go to public schools [1]. 34,000,000 creative, open, trusting, impressionable minds with little or no education in business or financial responsibility.

There is something that occurs in a small percentage of these children. It is unfortunate, in this country, that it is such a small percentage. It is also unfortunate that by the time it happens, they are no longer children. They get the itch. It is opportunity. It begins with an idea, and often ends in a lesson. Whether it is the wrong ideas or the wrong execution, these lessons can be expensive. The expense is some combination of money, reputation, and time. The amount of this expense is proportional to the age of the recipient. The younger the student, the lesser the expense, and the easier the recovery.

Business is not about calculus, sociology, or accounting. For that matter, it is not about reading, writing, or arithmetic. In fact, it adds context to every other aspect of education. Math now has a purpose. Reading, writing, and typing provide communication skills that can be put into real practice. It is engaging, like a child's game. There are risks and rewards, tactics and strategies, successes and lessons. There are no prerequisites to learning these things. The concepts are as effective to a grade schooler as they are to a college student. It is easy to teach that business is about the exchange of money, for goods, services, and information, in a mutually beneficial transaction. It is easy to describe demographics, product positioning, reputation, relationships, profit, expenses, and negotiation in simple terms.

Twenty years ago, our trial-by-fire was the Lemonade Stand. Over a couple summer days, we tossed some lemonade together and sold it for a quarter a cup. The new Lemonade Stand is online. Services like Ebay and Amazon, Lulu.com and Google's AdSense provide an inexpensive, flexible point of entry into business. With a little guidance, any child could set up an account and start selling online.

In the land of the American Dream, opportunity is everywhere. Unfortunately, most people are oblivious to it. I strongly believe that it is our obligation to our children and our country to illuminate the young minds in the ways of business and financial responsibility.

[1] U.S. Census Bureau, http://www.census.gov/Press-Release/www/releases/archives/education/004214.html

©2008 Gerry Heidenreich

Linq to everything

Charlie Calvert has a list of Linq Providers here.

Amongst the ones listed were a few that popped out at me:

Linq to LDAP and Linq to Active Directory

Linq to C#

Linq to Geospacial Data

Linq to Lucene

Linq to Freebase

Linq to RDF

Linq to Sharepoint

Linq to WMI

Update: From the looks of things, there is no Linq to Link yet.  I believe that Damon Payne is working on this provider though.  His work is clearly inspired by the NIN cover of Legend of Zelda theme song.

Noun-Verbing!

In the spirit of my last 2 posts... things are too serious around here, and it's bugging me...

Deeper In .Net 2008, 7AM tomorrow, Marriott in Waukesha, www.wi-ineta.org for details!

The headline to this video is the best part: Biker Nails A Perfect 380.  Been there... concussions, dislocations and all... good stuff.  They should have kept rolling, because it's not funny until he gets up and walks away from it.

Community-Sourcing

I have been a HUGE fan of Digg.com for years.  The content is generally good, the community is fun and (again, generally) intelligent, but the model: Submit/Vote/Discuss/Report... brilliant.

MyStarbucksIdea.com, and Dell's IdeaStorm.com follow the Digg.com model, but in the context of innovation focused on a business.  They are crowdsourcing their innovation to the world, and their future offerings are going to be more organic than ever before.  The new tool on their belt gives them a clearer idea of their actual customers' wishes.  Minimize the assumptions.  Outsource your innovation to the one group the really cares about your product, and spend next to nothing for the data you get from it... brilliant.

Wikipedia (currently) defines Crowdsourcing as "...  the act of taking a task traditionally performed by an employee or contractor, and outsourcing it to an undefined, generally large group of people, in the form of an open call."

I am in the habit of repurposing (or desigining my own) social-network ideas as internal solutions, and along the way I have occasionally had my share of failage/lesson-learnage, but I've also scored some wins.  Like everybody else that thinks they have a new idea worthy of its own name, I have started calling it 'community sourcing'.

I reformed the definition above to fit my needs:

Community Sourcing
The act of taking a task traditionally performed by a specific member of the group,  or consultant and exposing it to a controlled, generally large group of people who share the same interest as the group, in the form of an open call.

The term seems to be out there (google 2080 hits), and the purpose looks similar.

As far as walking-the-walk goes, we have working 'community sourced' systems used every day for content-management, marketing, and project management.  Newer and (therefore, I hope) less-used solutions include link-tracking (think del.icio.us), and yes, a submit/vote/discuss/report app, which, in my humble opinion, is... brilliant.

EnterpriseLog, usage-logging

Most development work contains some type of logging.  Usually, it's to a local log file or an email, for exception tracking at the most.

Recently, I decided to throw together an EnterpriseLog table.  We tossed our logging bits into a central library... I don't know why it took so long to centralize this particular functionality, but I'm glad we did it.

Our EnterpriseLog table is providing useful data, as well as helping us answer some good questions:
- What applications are people using?
- Tracking ClickOnce downloads, system updates made by clickonce apps, etc.
- What terms are people searching for?
- Exceptions
- Usage

Usage Logging
Usage logging is has been very interesting so far.  An immediate benefit we have found is keeping track of how formatted information is being entered in unexpected ways.  It is amazing how many different ways there are to enter a phone number!  With a quick look at EnterpriseLog usage data for an application, we are able to recognize, learn, and accommodate actual usage patterns.  Continuing with the phone # topic:

With any phone number, a quick regex levels the playing field by stripping out all non-digit characters:
string nums = Regex.Replace(textBox.Text, @"[^\d]", "");

If the result string is 10 chars (in the US), format appropriately for area code and exchange.  If it is 7 characters, try to infer the area code from the exchange.  If it is only 4 characters, assume it is an extension and build the real number from there if possible.

In this case, usage logging helped me to skip the annoying validation and instructions and let my users do what they do.  We have been able to identify actual usage, throw assumptions out the window, and help them arrive at the appropriate result invisibly:
textBox.Text = String.Format("({0}) {1}-{2}", areaCode, exch, num);

Most of us base our UI development on assumptions about our users, past experience, and hopefully a book or two.  It is the assumptions part I have trouble with.  I'm a data guy.  I prefer to question the assumptions, set up some auditing and collect some data, and turn the assumptions into concrete UI features that keep the user in the flow. 

Deeper in .Net 2008!

Deeper in .NET 2008 is just around the corner!

Our schedule is full, and all of the speakers are top notch! Jason Beres from Infragistics is returning again this year for his fifth visit. In addition, Mark Miller from Developer Express, Richard Campbell from Strangeloop and .NET Rocks, Charlie Calvert from the C# team at Microsoft and Scott Wisniewski from the VB team at Microsoft are on the schedule this year.

We're working with a number of sponsors to support the event. Our Annual Sponsors are listed on the side of this page -- please be sure to support and thank them. Additionally, we are working with a number of companies to provide many prizes to give away throughout the day.

Mark your calendars for April 5, 2008, and sign up now!  Space is limited, and registration (FREE!) will be required for this event.

Free training!  Free food!  Free books and software giveaways! 

[Register here]

Saturday, Apr 5, 2008 at 07:00 AM
Deeper in .NET 2008 will be held on April 5, 2008 at the Milwaukee Marriott West (Map & Directions).
Check-in will begin at 7:00 AM.

Dr. Dobbs, Customer / Coder Disconnect

Along the "Stop Thinking Like A Programmer" line,

Stephen Benetau in this month's Dr. Dobbs Alia Vox, titled "Where Are the Clients In A SOA?":

"If my customers can choose their service provider, and let's make no mistake, they are making those choices, what do I need to do to make sure I keep winning their business?"

"our customers are perceived to be entities to which we have no real access or feedback"

"There are more people in our wider organizations to shield the customer from us than there are people in our development team."

Salesperanto AND Coderian?

"Stop Thinking Like A Programmer"YinYang

I swear it's the theme this week.. I was actually told this by someone at work.  In my own defense, I was thinking like somebody that would rather script a solution than wait 3 weeks for it (ok yeah, that's like a programmer).... 

Think about this...

1. Business: Coders should be able to think in terms of features, interface complexity, barrier to entry, design and visualization, and capable of elevator pitching their product (notice I didn't say solution?) to a customer in these terms.

2. Innovation: getting the "I can do that" people (e.g. your engineers/architects/coders) to be able to speak directly to the "it would be cool if..." people (e.g. your billers, customers, parents, etc)

3. Apple's innovation/momentum and Microsoft's shift in perspective & ability to compete:  Microsoft has always been guilty of "thinking like programmers", and it has been very profitable for them, but things are changing, and they are reacting accordingly.

4. Black & White: on one side are the geeks that appreciate your architecture and could debate code/frameworks/paradigms all day.  On the other side are your customers, who want to know how you are going to make them more profitable/efficient/confident/marketable/competitive.  Not much of a grey area here.  2 different languages: Salesperanto AND Coderian. 

5. Intentional Programming [wikipedia]: Your skillset is in demand, but we are getting closer to the day that "Everyone Writes Software"... Lutz has a section dedicated to this.  Developers must learn to understand the intent of their users.  Stop thinking in syntax, start thinking in semantics...  Mashups, FDD, REST, RDF, Pipes & Popfly (Google SETS prediction).

There is a pattern developing here, and there is A LOT of money being tossed around because of it (check this out!). 

MIX, TED - there goes your day...

MIX Session videos: http://sessions.visitmix.com/

Follow-up email from TED conference:

And now, when you're ready, take 18 minutes to watch this astonishing talk from Harvard-trained brain scientist Jill Bolte Taylor. It drew a huge standing ovation in the first session of the conference and, by general consensus, counts as one of the most memorable TED talks of all time.

We also had a chance to hear details from Craig Venter of just how close he now is to creating synthetic life -- for example, bacteria designed from scratch to gobble CO2 and generate advanced fuels. This could be one of the biggest scientific stories of our lifetimes. It will either thrill you or scare you -- or both.

The astronomer Roy Gould ended weeks of blogosphere speculation by unveiling a beautiful new product created by Microsoft's Curtis Wong: the WorldWide Telescope. Here's the hi-res version of this talk. It's spectacular.

Ballmer on Yahoo!: "we will be a PHP shop"

I hadn't even thought about it...

MIX '08 keynote with Guy Kawasaki, about 43:28 into the interview.  Also, I noticed Rob Zelt got to ask a question during the Q/A  afterwards...

The interview covered Yahoo, as well as MacBook Air, Google, Apple, Firefox, and some Monkeyboy love for web developers.

life hard to any - concept album meme...

Fisterra

It was the randomness that sucked me in... I had to try this out.

Found this on Brownie's site, who found it on Jeff's game blog.

Band: Fisterra
Quote: "Make yourself necessary to somebody. Do not make life hard to any." - Ralph Waldo Emerson [link]

Back???

I had to bring the blog down because the spam was killing me, and I couldn't find the time to upgrade to SubText until now.

The upgrade was a pain in the neck, went smoother after deleting over 11,000 comments I didn't need anymore.

Links referencing the site still work, syndication works...

Strange path issue I have to deal with, and I need to get a good skin going, but I'm happy to be up again.