Thursday, December 31

My turn! 2009 wrap-up

WHAT A YEAR!

First few months of 2009 were pretty ho-hum. Then I unexpectedly lost my fulltime contracting role at the end of May. A week later, I had work on Times Square's biggest, coolest electronic billboard. My consulting work has BOOMED since! Overwhelmingly so! I've gone from nearly a fulltime coder to 25% management 25% sales 25% architect and 25% coder. It's good to grow ... but there are almost always unavoidable growing pains! Great learning experiences however. I miss the days of 100% geeking out a bit, but everyone's gotta move on and experience new things!

Had some family drama. Wish it hadn't happened. Wish I could ignore it. Unfortunately those things simply aren't true. Life happens. Life goes on.

December came in like a lamb and is going out like a lion! Just this week, I considered an offer from Blackbaud Inc. to join their team as a .NET Solution Architect. While I _love_ Blackbaud and the work they do, unfortunately their start date needs were a bit incompatible with my current set of consulting obligations. Today, however, I accepted an offer from Apprenda, Inc., a local .NET startup, creators of SaaSGrid, to come on-board as their Senior Client Services Engineer. VP Matt Ammerman and I will be building out the Client Services unit, working to ensure the best possible customer experience for our clients! The role will be ~50% code, with the rest of the time spent traveling on-site, including internationally, to help clients get off the ground or resolve persistent issues, doing project scope and planning, as well as architecture, type work.

Finally, best of all, I am, after years of hiding in my cave and burying myself in work, in a relationship with a pretty awesome woman. Thanks for being the frosting on the cake of my 2009! Onward to bigger and better!

Thursday, December 24

Every now and then ...

... it's nice to realize that, despite the BS and stress of our daily lives, it's really the people in our life who make it what it is. Thanks to all the wonderful, interesting people in my life! Happy holidays, may they be safe, fun & healthy!

Tuesday, December 15

Well, it happened ...

... maybe when I wasn't looking, or paying attention. Or while doing my best to ignore it.

Some readers may recall a previous entry on professional transition.

I now officially spend at LEAST as much of my time on sales, client relationship management and management of subcontract "employees" as I do on writing code -- and, in fact, the balance may have tipped, and I'm just trying not to admit it to myself.

I love coding. I love getting my hands dirty. Since the age of seven I have loved everything from writing small tools and utilities to make my life easier or better, to building big, complex, shiny, flashing, humming, integrated-at-many-levels enterprise systems.

At some point, I've come to conclude, that has to change. There's only so far up you can go as a "mere programmer." Twenty, 30 or 40 years from now, I don't want to be the "programmer/analyst" who's been working a specific technology, platform or system for 20-30 years without advancement or change in title or role. I also don't want to be at risk for being outsourced -- and no matter how good you are and what kind of experience you bring, as a programmer, developer or software engineer in the business app world, you are inevitably at risk of having your work offshored.

For months now I've been occupied leading a small network of subcontractors on various projects. I've lead small dev teams at fulltime employers in the past but with a manager or architect providing a level of guidance and oversight; I've managed subcontractors in the past, but generally they were pretty independent projects I could spin off, let them work, act as an intermediary between client and subcontractor, but the majority of the project was in the subcontractor's hands.

Not so any more. I'm working several projects that are too big for one person to reasonably design & develop given the existing timelines and demands, and I am the point where the buck starts and stops. I'm finding myself struggling to find pieces that are easy to spin off independently. I'm finding myself embarrassed at the state of some code I have to share with others -- and in one particular scenario, this is a scenario where I came in to perform triage. My code is, as usual, solid ... or SOLID (: but the legacy code is nasty disassembled stuff, and heavy, archaic DB code with LOTS_OF_CAPS_AND_UNDERSCORES. Thing is, when it comes down to it, it's now my system and my responsibility. I'm still embarrassed by that mess, by handing any part of that mess to someone else, even though I didn't make the mess.

I also find myself responsible not just for the system, but for other people, both up and down the ladder. I'm responsible to both my clients as well as my subcontractors, or client employees/contractors placed under my lead. It's one thing to lead a team when you're a fulltime employee, quite another when it's all contractors, all working remote, all third party colo hosting, all spending money out of the pocket of a bootstrapping company founder. At the same time I'm responsible for keeping the people I recruit occupied, paid and happy, and keeping client & subcontractors in balance.

Sometime this week, I expect to hear back about a fulltime role as a .NET solution architect for the professional services arm of a kick-a$$ company down South, with clients nation-, and more and more so, world- -wide. The role is, at most, 25% coding. The horror! ;)

It's a whole different world. I kind of like it. I kind of miss geeking out on code all day ... but there's just no real, longterm future in that. It's a stepping stone to bigger, better things, and here I come.

Monday, November 30

PowerShell: Remove-SVN: Stripping .svn folders within a target directory tree

Over the past two years or so, thanks to TortoiseSVN and VisualSVN, I've become a fan of the SVN code repository tool. As a long-time Microsoftie, I've used various versions of SourceSafe dating back some 12 years. I've also used Sourcegear's Vault product. Both of these integrate using MSSCCI which offers a pretty seamless experience in my most commonly-used IDE: Visual Studio.

TortoiseSVN makes it possible to work with SVN directly within Windows Explorer, no commandline work required. VisualSVN is a great, cost-effective plugin for Visual Studio that takes integration into the IDE itself. Still, these products don't integrate 100% perfectly with Visual Studio, especially if, like me, you are prone to refactoring without a lot of checkins early on. You can end up making a mess of the .svn folders that these products use to track states of files under their control.

Every now and then, at least in my experience, you will goof up, and you need to strip the .svn folders out, and do a clean checkin. Jon Galloway had a Windows Explorer right-click context menu option for this, but it didn't work for me. I got it to work once from the commandline, but not without tweaking what he has there.

As an old-school VBScript guy, I'd played with PowerShell a few times, ran some one-liner commands, did a little simple piping and recursion, but that was about it. After a couple times of dealing with this SVN hassle, especially after some serious lost time after a machine rebuild, I decided to create a reusable tool in PowerShell to make my life easier.

I initially wrote Remove-SVN as a very simple, rather lean (and I'd like to think elegant :) PowerShell script:


function RemoveSVN
{ param ([string]$target)

If (Test-Path ($target + '\.svn'))
{
Write-Output ('Removing: ' + $target + '\.svn')
Remove-Item ($target + '\.svn') -recurse -force
}
}

$target = 'C:\TargetDirectory'

Write-Output ('Removing .svn for ' + $target + ' and children.')

RemoveSVN -target $target

foreach ($f in Get-ChildItem $target -filter *. -recurse -force)
{
RemoveSVN -target $f.FullName
}

Write-Output ('.svn removed for ' + $target + ' and children. Press a key to exit.')

Read-Host


... then re-wrote it as a significantly fatter C# snap-in so I could call it as a PowerShell cmdlet. Follow these instructions to install and register a PowerShell snap-in for yourself.

Here is a ZIP with both the original PS script and Visual Studio 2008 snapin/cmdlet project files.

One final note: if you're running Vista or Windows 7 64-bit, and you compile the snapin and cmdlet for Any CPU, or x64 specifically, you'll need to make sure you run the 64-bit version of Powershell, or the snapin won't appear when you list installed snapin DLLs, and you simply won't be able to register and use it. (For whatever reason, Win 7 Ultimate N x64 defaults to running Powershell x86. YMMV) You can find the x64 executable under the WOW64 directory: C:\Windows\SysWOW64\WindowsPowerShell\v1.0

Sunday, November 29

Quick stop in: Tweet Cloud

What a crazy month!

Four projects going full-steam, and a trip to Charleston to visit Blackbaud the first half of last week. Surprisingly, pre-Thanksgiving travel wasn't the horror I expected.

Created a Tweet Cloud based on a year's worth of my tweets, pretty cool:

Monday, November 9

Apprenda closes $5M round

Congratulations to Tech Valley startup, creator of SaaSGrid, Apprenda, on closing a five million dollar ($5M USD) round of financing! Along with seed-round investor High Peak Ventures, Apprenda has brought New Enterprise Associates (NEA) on-board for some major VC firepower!

Apprenda is located about 15-20 minutes north of Albany, and uses some verrrrry cool .NET technology to automagically convert your single-tenant apps to multi-tenant without you having to change your code or data model. SaaSGrid also facilitates granular monetization of your offering.

Congrats Apprenda team!

Wednesday, November 4

jQuery Datepicker & Z-Index Fix

While working on one of my current projects, I ran into an issue with a high z-indexed div already on my page floating on top of the jQuery Datepicker when it popped up on control mouseover. Rick Strahl to the rescue with a fix.

Thursday, October 29

Next Leg of the MSDN NE Roadshow is on!

THE MSDN Northeast Roadshow team of Jim O’Neil and Chris Bowen will be making another stop in Albany, NY:

MSDN Events Presents >
The MSDN Northeast Roadshow - "Don't Fear the Coder" Tour

Thursday, November 12, 2009
9:30 AM - 3:30 PM Eastern Time
Welcome Time: 9:00 AM

Rensselaer Polytechnic Institute
1623 15th St
Biotech Building
Albany, New York 12180

Lunch Included

The Agenda: Clever Hacking, Slashed Efforts, and Killer Applications
Topics Include:
• Something WCF This Way Comes
• RIA Window – Expression, Silverlight, and MVVM
• "Help!" – Grasping at Lifelines
• LINQ De-crypted
• Tales from the Webside - ASP.NET WebForms, AJAX, and More

Register today for the Roadshow (seating is limited), and we’ll see you soon! http://go.microsoft.com/?linkid=9693448

/MSFT announcement

A quick .02: seating's really not that limited at this event. Not once, not ever. But that's mostly thanks to the use of RPI's biotech auditorium, which can seat a good number of people.

Wednesday, October 28

Pipin' hot Google Wave Invites

So I happen to be up at 3:27am Eastern, and I happen to open Wave, and much to my delight, in pops an update (blip?) to my invite nomination wave, informing me I have 12 fresh invite nominations to pass on.

So ... friends & family & anyone I promised after I ran out the last time -- please get in touch! (I know a lot of you have invites already -- if so, please let me know that's the case, so I can pass these on to others.)

Tuesday, October 27

A look at the new Apple iTab



I kid! But check out Silicon Alley Insider/Business Insider's take on what the real Apple tablet might look like.

Mac fans are apparently willing to lay it on the line for this as-yet-vapor device:

Monday, October 26

TimesUnion.com == porn

At least according to Kaspersky Internet Security 2010:



When I clicked the link to indicate miscategorization, I was taken to a 404 page on Kaspersky's site. I've been able to flag other miscategorizations without difficulty. #fail

Grading Google's Acquisitions

via Silicon Alley Insider

Saturday, October 24

Important Thought For The Day

Disappointing: Stargate Universe

A looooooongtime Stargate addict, (since the movie went to video when I was a kid and we rented it from Blockbuster, or perhaps the pre-Blockbuster mom 'n' pop video store that no longer exists in my hometown) I have been doing my best to give the newest rendition - Stargate Universe - a fair shake. I didn't really appreciate Stargate Atlantis immediately, and though I never came to love it like the original Stargate: SG-1, it was watchable.

I'm afraid I can't say the same for SGU. While I like the new, darker take on and style of the atmosphere, ambience and lighting, the storyline has been a litany of, "Oh no, we can't control the ship!" and, "Yay, the ship is doing what's best for us," mixed with a side of, "Oh no, are we going to make it back in time?" and a bit of "Doctor Evil" (Rush) paranoia thrown in. Bleh. Give me those four hours of my life back.

SGU's launch has failed on take-off. Too much drama involving characters we are not (yet?) invested in. Too slow to unfold -- not enough action, not enough people-making-choices. I have not yet entirely given up, but, sadly, I'm about willing to concede this one. :(

Thursday, October 22

Bureaucracy

SlideShare lead generation #fail

I woke this morning to find an email from SlideShare in my inbox titled, "How To Capture Customer Leads with your Presentations."



Ever since their lame-as-hell, obnoxious and in some ways offensive (in their lack of respect for their users) April Fools #fail I have assumed all SlideShare email to be fake or spammy, which was my first thought here. However generating leads is one of my great weaknesses as a technically-centered consultant, so as someone who posts his 2x-3x/yearly technical presentations to SlideShare, I put aside my reservations and dug in further.

While the lead-generation offering isn't exactly super-robust, it does seem like a decent first-take effort to generate revenue in a fashion that represents wins all around. Cost-per-lead is one of my favorite advertising cost models. There's not a lot of room for BS, overcharging or general clickfraud there.

End users don't appear overly impeded in their use of your material. You can set a per-day budget cap (leads start a $1/ea. with a la carte offerings around navigation flow alteration and data collection intended to improve the quality of the lead) which is one of the things I love about advertising through Google.

Unfortunately when you wrap up the process and save the campaign and are prompted to add funds to your account, it appears that the only offering for payment is ... PayPal.

Wait, what? How massively un-businesslike is THAT? SlideShare #massivelyembarassingfail #2.

I've had a PayPal account for years of course ... 2000 or 2001 maybe. I don't have a PayPal account linked to my business or business cards/accounts however, and if I'm putting any kind of money into advertising, you better bet that's coming out of business accounts and getting written off.

What business in their right mind offers a PayPal payment option but no standalone credit card option in what is by all rights a B2B offering?

Tuesday, October 20

There are days ...

... when this is the scariest sight in the world, and others, when it's the rarest pleasure:

Monday, October 19

Worth living by

You have to pay the price. You will find that everything in life exacts a price, and you will have to decide whether the price is worth the prize.
Sam Nunn

Worth thinking about

Reality leaves a lot to the imagination.
John Lennon

Saturday, October 17

It's On! Tech Valley Code Camp 2009

Tech Valley Code Camp 2009 is slated for November 7th at SUNY Albany. Thanks to Griff Townsend for getting the site updated after it languished in my overly-busy hands.

Friday, October 16

A Twitter Mass Follow Movement I Can Get Behind

via Mashable

Drew Carey will pay $1M USD for Drew Olanoff's "Drew" Twitter name if he reaches 1M followers at his current Twitter account by the end of 2009.

This is part of Olanoff's effort to raise money for LIVESTRONG after his own personal fight with cancer over this past year. All money will go to LIVESTRONG. Olanoff has created an OAuth Twitter application as part of this effort.

I've followed @drewfromtv, and you should too!

Wednesday, October 14

Need attendees! Capital Region Business Council meetup

A new Meetup.com group, the Capital Region Business Council, is a bit light on attendees for an event this Saturday:

I wanted to get some feedback. I was hoping for a few more attendees and I will be soliciting new memebers aggresively this week. I have been traveling on Business last week and into this week so I apologize for the slow start. The event might need to be rescheduled to have a maximum amount of attendees. I did plan to have it at The Desmond and it is quite costly to go there. I am going to have the event Catered by My Favorite Caterer out of Albany. This event will be great. Please send me feedback of an Establishment or Location anyone might know of. I am looking for additional people as well who might want to be involved with the group planning. There are so many wonderful people with amazing talents within our group already. I look forward to meeting each and every one of you.

Sincerely,

Michael Velardi
President and Founder
Capital Region Business Council

Job: High Availability Linux/Python Guru

Email me and I can put you in touch: ...@badera.us

Description: SOFTWARE ENGINEER
Our Client is seeking a Software Engineer responsible for creating complex data processing and presentation tools that integrate tightly with some of the industry's biggest game franchises. You would function as a member of our team of backend and application engineers and business specialists to expand our game service platform.

Requirements:

• Experience delivering large, complex, highly available software systems

• Ninja skills in Python

• Knowledge of design patterns, SOA, refactoring and unit testing

• Experience with web application servers, web development frameworks, proxy servers and relational databases

• Experience with Linux

• Interest in working on-site at our office in Troy, NY

The ideal candidate will have:

• Experience with MySQL or Postgres

• Experience with other web technologies (Ruby, CSS, Javascript, HTML)

• Experience with NGINX and HAProxy

• Exposure to ESB technologies (MSMQ, RabbitMQ, HornetQ, etc.)

• Experience working with Agile development methodologies (XP, Scrum)

• An understanding of system optimization issues

• Familiarity with system monitoring tools (Monit preferred)

• A detail-oriented, organized thought process and be able to act decisively under stressful conditions.

• A proactive mindset and be able to multitask and prioritize requirements.

• A self-motivated work process and posses excellent communication skills
Benefits:

• Work with an experienced, successful, intelligent team

• Competitive salary, health benefits, and retirement plan

• Be an integral part of a growing, fast-paced company where your work will make a true impact

Tuesday, October 13

Twitter API & OAuth 101 - TVUG October 2009

Apparently I'm not the only one

You heard it here first: the dwindling of Friendfeed. And I called it pre-FB acquisition!


Is anyone still using Friendfeed?



Google Groups Spammed & Spoofed

Someone used a paid relay service to send a blast of spam mail to Google Groups today, including an email to DotNetDevelopment forged to look like it was from me, and one to the Twitter development list from Abraham Williams. I wonder if I can tighten up my SPF records further ...

Note:

"node67-rs.smtp.com is a paid relay service. We do not tolerate UCE of any kind. Please report it ASAP to abuse@smtp.com"

Reported! Too bad they're sloppy enough to either take on a paying scammer, or allow their server(s) to be compromised.

Entire original header below:

Received: by 10.204.57.197 with SMTP id d5cs159454bkh;
Tue, 13 Oct 2009 05:46:41 -0700 (PDT)
Received: by 10.224.36.161 with SMTP id t33mr5712657qad.346.1255437999331;
Tue, 13 Oct 2009 05:46:39 -0700 (PDT)
Return-Path:

Received: from mail-yw0-f143.google.com (mail-yw0-f143.google.com [209.85.211.143])
by mx.google.com with ESMTP id 16si5931388qyk.49.2009.10.13.05.46.37;
Tue, 13 Oct 2009 05:46:38 -0700 (PDT)
Received-SPF: pass (google.com: domain of grbounce-CXXeHAUAAABT6iFcnV0tp2J8uwopwMrD=[name]=[mydomain]@googlegroups.com designates 209.85.211.143 as permitted sender) client-ip=209.85.211.143;
Authentication-Results: mx.google.com; spf=pass (google.com: domain of grbounce-CXXeHAUAAABT6iFcnV0tp2J8uwopwMrD=[name]=[mydomain]@googlegroups.com designates 209.85.211.143 as permitted sender) smtp.mail=grbounce-CXXeHAUAAABT6iFcnV0tp2J8uwopwMrD=[name]=[mydomain]@googlegroups.com; dkim=pass (test mode) header.i=@googlegroups.com
Received: by ywh7 with SMTP id 7so11775014ywh.23
for <[name]@[mydomain]>; Tue, 13 Oct 2009 05:44:56 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=googlegroups.com; s=beta;
h=domainkey-signature:received:received:x-sender:x-apparently-to
:received:received:received:received-spf:received
:x-smtpcom-spam-policy:x-smtpcom-sender-id:x-smtpcom-tracking-number
:mime-version:from:reply-to:to:subject:content-type
:content-transfer-encoding:x-mailer:date:message-id:sender
:precedence:x-google-loop:mailing-list:list-id:list-post:list-help
:list-unsubscribe:x-beenthere-env:x-beenthere;
bh=v/3cjxr9yNnnn8YzYMWt3Zb3yFtZ6fg/QPjQ6F00xzU=;
b=f8zONo+Nd2OiMZboovaizKOIB3KdTwU639muyNz845TznnqnCLIFSbJBB8X9/tVaSP
SJXpcLquG3LMNCzwhNlwtxheFIo1gPaAqrBkoehXE5H6eVLh/lOUMazqBTVWITP+RN0p
QYspurQzDOcCZyOyToKh14c+5t9Y8jzYfDPS8=
DomainKey-Signature: a=rsa-sha1; c=nofws;
d=googlegroups.com; s=beta;
h=x-sender:x-apparently-to:received-spf:authentication-results
:x-smtpcom-spam-policy:x-smtpcom-sender-id:x-smtpcom-tracking-number
:mime-version:from:reply-to:to:subject:content-type
:content-transfer-encoding:x-mailer:date:message-id:sender
:precedence:x-google-loop:mailing-list:list-id:list-post:list-help
:list-unsubscribe:x-beenthere-env:x-beenthere;
b=OdKVMgfgp0pSRBItb7s3AarQySGe3257BGdagGxmJ32sNCqC0EX3btfyBksKm3CKzB
+5rU+D4gFe8kxK7g3JvgJ3JHoimWFXHOL2c47ftI9iHPwjsHErQysprNE05keLcSovWo
NXkulIIxbH0hk9X4T6okRCjxYagz2g09IJpzQ=
Received: by 10.224.124.213 with SMTP id v21mr334295qar.44.1255437890651;
Tue, 13 Oct 2009 05:44:50 -0700 (PDT)
Received: by 10.176.233.14 with SMTP id f14gr43027yqh.0;
Tue, 13 Oct 2009 05:44:41 -0700 (PDT)
X-Sender: [name]@[mydomain]
X-Apparently-To: dotnetdevelopment@googlegroups.com
Received: by 10.224.95.213 with SMTP id e21mr1582186qan.0.1255437857334; Tue, 13 Oct 2009 05:44:17 -0700 (PDT)
Received: by 10.224.95.213 with SMTP id e21mr1582185qan.0.1255437857289; Tue, 13 Oct 2009 05:44:17 -0700 (PDT)
Return-Path: <[name]@[mydomain]>
Received: from node67-rs.smtp.com (node67-rs.smtp.com [74.205.51.67]) by gmr-mx.google.com with ESMTP id 18si409687ywh.13.2009.10.13.05.44.17; Tue, 13 Oct 2009 05:44:17 -0700 (PDT)
Received-SPF: neutral (google.com: 74.205.51.67 is neither permitted nor denied by best guess record for domain of [name]@[mydomain]) client-ip=74.205.51.67;
Received: from 41.248.202.187 (unknown [41.248.202.187]) by node67-rs.smtp.com (Postfix) with ESMTPA id D31FA2B0529 for
; Tue, 13 Oct 2009 08:44:15 -0400 (EDT)
X-SMTPCOM-Spam-Policy: node67-rs.smtp.com is a paid relay service. We do not tolerate UCE of any kind. Please report it ASAP to abuse@smtp.com
X-SMTPCOM-Sender-ID: 2367
X-SMTPCOM-Tracking-Number: 71882385
MIME-Version: 1.0
From: "Forum" <[name]@[mydomain]>
Reply-To: dotnetdevelopment@googlegroups.com
To: dotnetdevelopment@googlegroups.com
Subject: [DotNetDevelopment] How To Unlock Locked iPod
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-Mailer: SendBlaster.1.6.2
Date: Tue, 13 Oct 2009 12:44:09 +0200
Message-ID: <386066006496256206824@sweet-a0aa22526>
Sender: dotnetdevelopment@googlegroups.com
Precedence: bulk
X-Google-Loop: groups
Mailing-List: list dotnetdevelopment@googlegroups.com;
contact dotnetdevelopment+owner@googlegroups.com
List-Id:

List-Post:

List-Help:

List-Unsubscribe:
,

X-BeenThere-Env: dotnetdevelopment@googlegroups.com
X-BeenThere: dotnetdevelopment@googlegroups.com

Monday, October 12

This could be the portable device I've been waiting for

The Asus Eee Keyboard

(via Engadget)

Asus Eee Keyboard

Atom N270 processor. 800x480 touch panel screen. SSD with 16 or 32 GB storage. b/g/n WiFi. A metric poo-tonne of IO ports for audio, video, external storage, docking, etc. etc.

Yeah, the screen res is still on the low side to be truly useful for portable software development, but I'd imagine it would work GREAT in a pinch, and UWB video transfer or docking ports would allow easy connection to a fullsize monitor for non-emergency scenarios.

Still awaiting a price and release date ... eagerly! (Christmas present to self perhaps? :)

Friday, October 9

Great Footprint Convo

Great carbon footprint conversation from NYTM:

Does anyone at Meetup or here have an idea of what the carbon footprint is for Meetup.
As Programmers do you try and make your clients aware about the carbon footprint of their websites and what options they have to lower it. I would say that if programmers design their code effectively they could make an impact on lowering the energy consumed by the servers in terms of lowering CPU cycles and spin cycles on the hard drives.Do any of the many developers get questions around such issues from their clients?
I was made aware of these questions at a lecture I attended recently.
In 2006 in the U.S. data centers and servers excluding client machines consumed 61Billion kWh and 55% of that energy consumed came from coal fired power plants http://is.gd/44RJF
Wonder if anyone here thinks along these lines in terms of web design and it's impact on the Environment.
Would welcome your thoughts...
Regards
baba



Baba –

Today power consumption inefficiencies is largely a hardware design problem at the data centers. Most of the gains to be had can be realized in areas outside of software. What people discuss on the internet is all new best of breed technologies that only a few large players are doing. I don’t necessarily agree with Steve that you need massive scale of Google/Microsoft to gain some efficiency (even today). As in any industry, scale will always let you exploit market efficiencies and this is the case for those big players. If you do not have massive scale there are still some things that can be done. I do agree that if you are a small shop it is mainly a hardware problem for you but even there you can do interesting things. Think shutting down VMs and client machines during night and powering on in the morning – everyone can do this today – but hey, where would the cool screensaver aquarium fish swim?

Long term we will see some shifts in programming paradigms that address energy efficiency. The game will most likely play out as a bigger part of distributing components of a program and smarter interaction among those components. The more the system executing your workload can know about it the better it can exploit efficiencies. The push to new programming paradigms is already happening today but it is not really being positioned as energy efficient but the focus today is on scaling, dealing with failure, operations and flexibility. I think multi-core is forcing a lot of changes in this direction and the pure-virtual talk from all the cloud providers, think AWS, Azures and AppEngines are also similar in some aspects. I like to think of the DOD as an early indicator of technology shifts and you can already see their field technologies being distributed and dynamic in the direction some of the changes are going. A soldier’s backpack does some processing, a tank does some relaying, drones gather data and coordinate components. All components dynamic and tolerant of failure, working smarter together. Here the scarcity of resources has forced them to create new techniques and sooner or later everyone will realize the scarcity of some resources (cost!!).

Smarter software drives smarter workloads, and there are many companies that are taking advantage of distributed components to optimize their workload processing. Shifting a workload from one data center to another based on time of day can have a large impact on cooling required during night time. Different parts of the world have different energy costs at different times and there are efficiencies to be exploited there that can be done based on smarter software. This is reality today and people are doing this. Hadoop is another example of workload optimization, moving the processing closer to the data – no longer are you wasting time on transport and waiting for data to arrive. A lot of networking infrastructure will need to keep up with the software changes and globally this is taking too long. Look at IPv6 adoption (and IPv4 is a scarce resource!!) as a real problem, support for internalization for addressing or countless other problems. We live in a globalized internet based world but the network protocols have failed to keep for many years – this must change!

The problem today with software only approaches is the margins are too small to make any significant and measurable impact on the energy footprint. If you are a small shop, you are not really worrying about power consumption too much. If you are a developer working on a custom application it is really hard to get any kind of gauge on your power consumption, but this will change. Hardware based usage monitors are not used or understood by most programmers today (it requires fixed hardware configurations) but as things move into virtualized environments it becomes much easier to estimate the power consumption (even if it’s theoretical) of a workload (even across networks and multiple systems). If you can completely shift your programming models you can certainly gain some efficiencies today (even though AWS, Azure, AppEngine are more expensive than the alternatives) but at the expense of cost – what you may gain today is the added flexibility that these models provide (and some of the pitfalls!). The cost benefits for now are mainly for the big players.

Today certainly some programmers think about being “green” but it is not the driving factor choosing a programming paradigm. Today the value added services drive this (operational mainly), but maybe long term we will see power cost become a bigger factor. The reality is somewhere in between, my thinking today is that until the entire software industry as a whole gets some measurable data and begins practicing it (rather than the few big players) we won’t be seeing power consumption being the significant driver of changes in programming paradigms. What you can sell today is better SLA guarantees, then try to squeeze out efficiencies from the process. The big guys and most of the education system is also doing a poor job in distributing some of the lessons learned from operating infrastructure for many years. Certainly, our own DOD can and should be augmenting our education system in a more significant way but that is not it’s primary purpose.

Most of the software industry is not really practicing anything PROFESSIONAL nor ethical - that’s what the industry really needs. This is the really sad state of affairs that we should be discussing on this list (rather than all the other noise that we did not sign up for).

Alex


Alex Osipov

Wednesday, October 7

Going dark for a few days

Probably won't be blogging much for the next couple weeks. A lot of deliverables and other obligations.

Tuesday the 13th I'll be presenting "Twitter API & OAuth 101 - What's this twit all about?" at TVUG @ VersaTrans in Latham.

Twitter -- it's all over the place, from mainstream media to grade school classrooms. We can't escape it if we tried. A large part of the success and popularity of Twitter is thanks to its open APIs and rich ecosystem of third-party applications. Learn how you too can take advantage of Twitter's APIs for fun and profit, while getting a look at OAuth, an evolving authorization protocol that's come to dominate the Web 2.0 and open API world.

Andrew Badera, CEO of Higher Efficiency, Inc., CTO of multiple startups, is a lifelong geek and longtime technology consultant with 13 years experience on Microsoft platforms. With a focus on
integration, enterprise service bus (ESB) technology and service-oriented architectures (SOA), Andrew finds Twitter and its APIs to be a rewarding distraction.


Tuesday-Friday of next week, I'll also be doing a training class on ActiveVOS (a BPM/workflow product). I haven't done a vendor training class since training on an IBM ECommerce product back in 1999 down in the Research Triangle area in North Carolina. (Incidentally that's also the trip where a gay gentleman became my best friend, plied my underaged-self with liquor, and spent his time, in and out of class, hitting on me. Gross. Is that what it feels like to be female?)

Monday, October 5

Sunday, October 4

Apparently Women Rule the Tubes

Or, "Digg is not the place to pick up women."

Via Mashable:

(No big surprise on Digg, eh?)

Thursday, October 1

Got my Google Wave invite!

W000t! After many months of waiting, I finally got a Google Wave invite. I signed up to request an invite the first 24 hours they were available ... unlike some of Google's other recent invite offerings, like GAE, I apparently ran out of luck, and had to sit and wait for an invite like the other 99,999 people who got them from Google in the past day.

For my friends and readers: I have 5 "invite nominations" left to give out. Ping me via email or Twitter if you'd like an invite.

Some people think Wave will change our communication landscape ... frankly, though impressive, what I've seen so far makes me think it's just another great tool in the toolbox of real-time web awesomeness. Remains to be seen if Wave becomes the most conversation-centric of these offerings, or if conversation-centricity is even relevant in the long run.

UPDATE: Less than 45 minutes later, I am now out of invite nominations. I will post a new post if/when I am granted more opportunities to pass these out.

Worth thinking about

I'm an idealist. I don't know where I'm going, but I'm on my way.
Carl Sandburg, Incidentals (1907)

US biographer & poet (1878 - 1967)

Wednesday, September 30

Healthcare Napkins All

Great breakdown on American Health Care that even Republicans can understand. (Via Marshal Sandler)

Things that make you go "Hrmmmmmm ..."

Anyone who works is a fool. I don't work - I merely inflict myself upon the public.
Robert Morley

Tuesday, September 29

Very Interesting SaaS Consulting CTO work

For about a month or so now I've been serving as consulting CTO for a stealth mode NYC startup in the SaaS/SCM/BI space. We've been researching and vetting a suite of products for integration as a SaaS offering. Lots of vendor phone calls, trial installs, conversations with industry leaders who really know their stuff.

My client has now inked some licensing paperwork. With the clock ticking on some expensive software licenses, it's time to move on to the rapid prototyping stage. We're looking at utilizing VPS (virtual private server) images -- perhaps "in the cloud" on EC2, perhaps at a more conventional datacenter -- to allow quick and flexible server provisioning as we explore the caveats of integrating these disparate architectures in varying configurations.

This prototype will serve multiple purposes: as stated above, we need to get to know the gotchas of operating and offering these products as a suite, as well as gain domain- and product-specific knowledge. We need to understand the strengths and weaknesses of various arrangements of the products and the supporting/surrounding infrastructure. The CEO of course needs something to put in front of potential investors and early clients.

I am really looking forward to this -- it's going to be a lot of fun. And, as always, a great learning experience.

Job: Mid-level .NET Developer in Saratoga, NY

A friend has "a client in Saratoga that needs a solid mid – to senior level developer – must be .Net C# and SQL. 4-6 years of experience. This person needs to be independent and take ownership of one of the products."

Pay range is decent for upstate NY -- email me a...@b... for details.

Angry-Coders: Banish communication from thy house



Or, requirements gathering with non-technical users: often a Sisyphean task.

Monday, September 28

Worth thinking about

We don't know one-millionth of one percent about anything.
Thomas Edison

Alan Weiss on Twitter: Consultant's Syndrome? Or just a jerk at work?

AKA, "Some people just don't 'get' it," or, "An Open Letter to Alan Weiss, Consulting Guru."

I lost a personal hero today: Alan Weiss, consultant extraordinaire and author of books on the field and practice of consulting (books that I own.)

Per his blog, Alan recently celebrated topping a few more than 1000 followers, the headline reading something to the effect of, "Rockstar consultant passes 1000 followers." Also per his blog, Alan is working on his first social media engagement. Being the consultant and big Twitter, social networking and open API guy that I am, I figured I'd check out his account.

I was immediately disappointed. Alan follows no one, had almost no @ replies ("mentions") of anyone in his Tweets, doesn't update frequently or regularly, and seems to post mostly broadcast tweets -- no engagement.

And I told him so: "@BentleyGTCSpeed I hesitate to follow you. I love your work, but you don't seem to really be embracing and engaging Twitter followers." http://twitter.com/andrewbadera/statuses/4393854070

What did this wise wizard of consulting, master of his profession, man from whom I already have learned much, have to offer in reply? "@andrewbadera I provide value, I don't think you have the rule book. Don't be so judgmental, your rules aren't mine." http://twitter.com/BentleyGTCSpeed/statuses/4394025226

Provide value? If I wanted a one-way broadcast, that's what your RSS feed (which I'm subscribed to already) is for. Twitter doesn't excel at, isn't predominantly consumed by people for, reproductions of RSS feeds, or one-way broadcasts -- that's what RSS aggregators are for. And ... judgmental? Maybe, but it's certainly my right to judge whether or not you and your account are worth me following. (Last I'd checked this wasn't Nazi Germany, right?)

From there the "conversation" degraded into Alan acting as though I had attacked him or issued an edict as to exactly how he should use Twitter, him protesting that he isn't "a herd animal." Then Alan tells me he's trying to "educate" me about my "narrow thinking." Alan, sorry pal, smart and experienced and education-capable as you are, you aren't the Great Educator. You don't Know It All. I simply offered an observation -- one you cannot protest, one that is not wrong, for it is my personal observation regarding my own personal feelings towards your Twitter account and whether or not I would want to follow your personal account with my own personal account -- and you turned around and spewed garbage and anger at me.

Alan Weiss, you've lost my faith. I will never buy another of your products. I will never read, nor pass on, another one of your crappy interviews (you just don't interview well ... or you just don't _care_ to interview well, and with my recent experiences of you, I'm going with the latter.)

Alan: Twitter is FILLED with consultants, and those who wish to be. A true "rockstar" of consulting, especially in this economy, could have tens of thousands of followers practically overnight -- if not hundreds of thousands, or millions. (That might be stretching it -- Joe Six-Pack doesn't know, nor care, who the heck Alan Weiss is. But 1000 is nothing -- certainly nothing to celebrate or brag about.) Twitter is the perfect medium for gurus, and you could be among the top, most-followed advice-givers, which could only build your brand and improve your sales while being hugely beneficial, possibly life-changing, to thousands and thousands and thousands of people. Of course, this sort of interaction with regular human beings (the aforementioned "herd") might simply be beneath you.

The reason you have a paltry 1000something followers is because you are not embracing the medium. You can certainly choose to use, not use, misuse or abuse your Twitter account as you see fit -- and I, as is my right, and as is the nature of social media, will continue to offer my opinion as to whether or not I feel like you embrace the medium in a fashion that makes me wish to follow you. If you do not care, as you claim, then ignore me instead of getting angry and parental with me. Arguing with me about an attack or edict I never issued, in lieu of thinking about what I have to say and reacting meaningfully to it, is childish at best, and exposes your limitations as both a consultant and a human being.

Alan, your first social media engagement would currently seem doomed to failure -- you demonstrate a complete lack of understanding and comprehension of the medium and its use, not to mention finer points of etiquette and interaction. I can only hope that you educate yourself and open YOUR narrow thinking.

Finally I must ask the reader, is this a prime example of Consultant's Syndrome? Smart, successful people so used to giving advice, and training and educating others, that we have a hard time accepting any kind of input that doesn't 100% agree with our world-view or ego? Or is it just a case of an egotistical, narrow-minded, churlish jerk being an egotistical, narrow-minded, churlish jerk? Either way, a lesson to be learned.

Friday, September 25

Bambibot: Evolution

Wow, twammers. I'm almost impressed. Nearly a 1:1 following:followed ratio, and some 1700+ followers at that. Believable Twitter updates, AND a blog backing the profile! Though bad grammar, capitalization and syntax are found throughout the text, it's sadly believable as the product of a child of the SMS generation.

Of course, turning to the blog, it's a spamblog/link farm. The supposed owner of the blog's pictures link to an adult dating site. And yet again, the screen name, "MichelleLoli," doesn't exactly match the alleged actual name, "Stefi Tossie."

Here's an account I followed for a while, where the person/people behind the account actually seem to interact with the other people the account follows. No actual conversations, but occasional, relevant, one-liner @ replies to something you said. Maybe the woman behind it really does Tweet, and she's just a really busy pornstar/dominatrix ... or maybe it's a half-hearted effort to pump traffic to the pornstar's site by some cheapo marketing firm or seospammers. Bambibot, or no?

Toward healthier living

It's approaching a year since I decided it was time to lose some of the extra weight I'd gained sitting in front of a monitor for 60+ hours a week for years on end. I figure it's time for an update.

I got off to a slow start, followed by period of little to no progress. I dropped a total of about 10 pounds from October 2008 through May 2009. A start, but only barely. Since the end of May however I've dropped another 25-30 pounds, thanks to eating MUCH healthier, and getting a little bit more time outside with my dog. My BP has dropped from scary numbers (150/110+ at times; gave the hospital a scare after a diagnostic procedure in June) to something generally much closer to 120-135/82-88.

Now, I should note: by MUCH healthier, I mean no Dunkin' Donuts or McDonald's breakfasts, and very few take-out lunches. And less drinking of alcohol or sugar. A little more fiber. Less sugar overall. Less bad fats. (Less fatty meats.) More good fats. (Fish, flax, nuts.) More veggies. More legumes. I was still frying foods all summer, but ran out of frozen fryer food in my freezer and tossed the deep fryer sometime late August or early September.

Interestingly, to me at least, what this DIDN'T mean was that I had to get all "Nazi" on my diet or lifestyle. I still often eat a steak, or two, a week, but it's more often a NY strip or sirloin or London broil than a ribeye, and I'm eating more chicken instead of steak (there are weeks with no red meat at all, which is a big change for me.) More low-fat cottage cheese as a snack, or even a small meal. I still order the occasional six-slice half-pepperoni pizza (maybe 2x a month, sometimes more) or Chinese take-out (1-2x/month, much smaller (1/2-2/3) quantities than previously) and my longtime favorite, buffalo chicken wings (2-3x/month instead of 4-6.)

I still go out for the occasional drinks with friends and professional acquaintances, and I still drink more Scotch than I (or anyone) should. I did cut out almost all non-diet drinks of any sort however. Still drinking my french pressed coffee, with sugar, Splenda w/ fiber and skim milk. I'm probably drinking more milk (skim and low-fat chocolate) than before. I'm drinking more Lipton's diet green teas than before. Water/overall fluid intake is probably about the same as it had been, maybe slightly increased.

I've been getting out for longer/more frequent walks with my dog, thanks to the benefits of doing mostly remote (phone and email driven) technology consulting work that has given my schedule a lot of flexibility. My dog has lost about 7 pounds too. That said, the busier I've been, the less we've been getting out for walks. I still try to get at least 2 miles in a day, but it has become tough. In the height of the summer weather, during a lull in my work, we were getting 2-3.5 miles every day, no problem.

Along the way I've used a few different sites to track progress, motivate me, and/or find healthy recipes and exercise techniques. These are:

Skinnyr
An embeddable graph. Not a lot of innovation over the past couple years. Now offering a premium option that I don't feel it worth paying for. I will probably stop recording my weight here ... in fact, I just made the decision. No more skinnyr for me.

DailyBurn (formerly Gyminee)
Great UI. Decent social interaction capabilities that can contribute to progress and motivation. Great food tracking. Good progress tracking overall. Decent reporting. Tim Ferriss is an investor, which personally I consider a negative point. Fortunately I don't see his obnoxious personality and ego in my day-to-day use of the site.

SparkPeople
Antique-looking UI. Great social interaction. Great database of healthy recipes. Great meal planning capabilities. Food database seems lacking compared to DailyBurn however, and the process of recording what you ate, if you eat off-plan, is EXTREMELY cumbersome. Decent reporting.

If you could combine the best of DailyBurn and SparkPeople, you would have the ultimate fitness site, in my ever-so-humble-opinion. ;)

***EDIT***

I almost forgot WalkJogRun! This site is awesome for hikers, walkers and runners. You can plot and save your routes, sharing them publicly or keeping them private, on a Google map, but unlike Google Maps, you can go off-road with your waypoints. WalkJogRun calculates distance and calories burned. WalkJogRun also offers an elevation map of your route. I'm not completely sure, but the calories-burned calculator may also take that elevation into account. (Which would be pretty freakin' cool if true.)

***EDIT***

I intend to drop another ~40 pounds in the coming year, which would put me under freshman year (high school) football weight, as well as get back in the gym and starting lifting some weight. Diet alone won't get me where I want to be.

I'd like to thank Allen Stern at CenterNetworks for originally turning me on to Skinnyr and SparkPeople.

Wednesday, September 16

I declare Web 3.0

I can do that because Bernanke says the recession is over and I have a blog, right? Even if I don't have an Irish last name, a large publishing and media empire, and huge ego? Wait, check that, got the ego.

Of course I'm sure you ask: what IS Web 3.0?

It's the SEMANTIC WEB like all the search gurus and jargon bandwagoneers have been blogging and blagging on about for years now, right?

Sorry people, I have to disagree. Web 3.0 is going to be all about "real-time web."

Let's look at the space:

Facebook gets it! They bought FriendFeed, which is real-time-centric, has real-time-search and created SUP - Simple Update Protocol. SUP is a mechanism of faster RSS & ATOM conveyance; per Wikipedia, some implementors include YouTube, Disqus, Brightkite, Identi.ca, Backtype and 12seconds.tv. And on a separate but related note, Facebook recently launched Facebook Lite.

Twitter gets it - they've been real-time since the beginning! And they have started to analyze conversations in real-time pretty hardcore in the past year or so, beginning with their purchase of Summize. Their real-time offering is their Streaming API. Twitter's busy enough dealing with availability and scaling issues, and gaffed over OAuth too often, to offer something that I would expect to propagate across the industry as a standard protocol however.

People at Google get it, at least 20% of the time: check out PubSubHubBub, (PSHB) a real-time RSS and ATOM mechanism that runs on Google App Engine (GAE). Some big name implementors include FriendFeed, Live Journal and Six Apart. As well as Google itself of course.

Dave Whiner Winer gets it: he developed rssCloud years ago. Unfortunately it never experienced wide implementation. It's a solid offering, but with the growing popularity of GAE and activity levels around PSHB, I think Dave's protocol is going to end up left out in the cold by a lot of developers and architects. That said, WordPress did implement rssCloud recently. I haven't noticed any other big names do so yet, but I can't say I've been particularly focused on the topic.

Of course real-time tends to greatly increase the volume of information (if not the quality of the signal). Perhaps semantic will play a large role in helping us sift through all the feeds from our various new real-time toys, but Web 3.0's foundation is going to be real-time, period. Rich, robust semantic will perhaps be icing on the cake of real-time.

Sunday, September 13

Worth thinking about

The brain is a wonderful organ. It starts working the moment you get up in the morning and does not stop until you get into the office.
Robert Frost
US poet (1874 - 1963)

Thursday, September 10

Busy fall in Tech Valley!

Great slate of upcoming events before the snow falls (hopefully!)

This week we had Steve Andrews' MVC presentation at TVUG. Next month, October 6th I believe, I'll be presenting the basics of OAuth and Linq2Twitter, in the context of using the Twitter API. That will be followed up at our November 7th Tech Valley Code Camp (I need to update the site, sorry!) with a more in-depth look at DotNetOpenAuth and Linq2Twitter.

Also coming up THIS MONTH: The Microsoft Northeast Roadshow returns to Albany on September 22nd at RPI! Jim O'Neil has full details.

Northeast Roadshow: Food for Thoughts Tour

After a long summer, you’re probably hungry for more tools and techniques to feed your development efforts. Touring the northeast this fall for the tenth Roadshow, road and code warriors Jim O’Neil and Chris Bowen have cooked up a select menu of sessions that are sure to please the heartiest of appetites. From current tools and technologies to practical insights, there is plenty to digest!

Reservations are required, so register today for a seating at these free and relaxed technology events.

You’ll see how Chris and Jim handle the heat of the demo kitchen, dish out knowledge, and pepper guests with half-baked humor, all the while being grilled by audience questions.

The Agenda – A Four Course Meal for the Mind

(Rochester attendees, note that program starts at 10 a.m.)

1:00 PM – Essential Patterns, Practically Served

Design patterns, they’re important but often presented with unappetizing formality, like getting only the oat bits from a box of marshmallow cereal. We’ll sample a small set of key patterns, but also show you how free frameworks and tools (such as Enterprise Library, Prism, Unity, Velocity, and others) put each of those patterns directly into practice – so you can too. You’ll leave with a mind full of practical technology and a healthy understanding of how to turn underlying patterns into recipes for success.

2:15 PM – 7-Up(grade) Your Applications

Refresh your existing applications by pouring in some the new features of Windows 7 via the managed-code Windows API Code Pack. We’ll quench your thirst for how to incorporate the Taskbar, jumplists, and Libraries by taking the cap off an existing Windows Forms application and adding new capabilities, all the while retaining compatibility for your XP and Vista users. We’ll have you bubbling with excitement, able to give your applications that extra pop.

3:30 PM – Silverlight Snacks that Satisfy

There’s a generous amount of delicious ingredients in Silverlight 3 and we’re going to focus deeply on some of the most enriching. We’re going beyond the standard fare in this code-heavy session to create an application that leverages the new out-of-browser and offline execution features, local and remote connections, local data storage, and more. You’ll see that Silverlight 3 applications can be fortified with features so they can go well beyond being eye candy.

4:45 PM – Chips off the .NET Block

As seasoned developers, we know there’s a mix of options on the trail to implementing requirements. From staples like value types vs. reference types, interfaces vs. classes, Strings vs. StringBuilder, to other more exotic ingredients you may have yet tried, this session will dip into ways to leverage .NET, offering a taste of the impact they have on code execution, performance, and extensibility.

5:50 PM – “Check Please!” We’ll box any leftovers, collect your comment cards, and distribute an array of giveaways.

Thursday, September 3

New Twist on Twam

Noticing a scary twitterspam trend these past couple weeks: bambibots and other spambots on Twitter are getting a lot more subtle. A few months back, you saw them spewing out random bits of text obviously taken from other sources, but those bits were often fragments, and the following:followed ratio was hundreds:1 or worse. Account names were still pretty obviously simple enumerations or iterations.

This week, I'm seeing spambot accounts with reasonable following ratios, believable names, and bits of text that would almost make sense as entire thoughts or sentences, if you didn't understand that a word like "uni" for "school" or "college" wouldn't be used by a girl in Louisiana, particularly not in the middle of August.


Big giveaway: name reads "Kayla," Ms. 'Claire.' Ooops!

The linkspam volume has died down. You could almost believe it's a real account, not just a broadcast mouthpiece for porn, SEO and MLM links.

One giveaway the nasty spammers seem to fail to be dealing with: the source parameter. Without an officially registered app, the source parameter describing the app that a tweet was sent from is going to be displayed as "From API." Not "From Web." Not "From Tweetdeck" or "From Seesmic" -- "From API."

With OAuth, there's no reason for legitimate users to be calling in over Basic Auth anymore -- no reason a legit user should be displaying "From API" -- certainly not with any regularity.

Developers: register your app, use the freely available OAuth libraries that are proliferating, and deal with the occasional OAuth downtime.

Friday, August 14

Twitter Continues Trademark Push

In addition to some C&D letters sent to various application developers who use the name "Twitter" or "Twit" in their app name or URL, I've noticed Twitter now calls "updates" "Tweets" on user pages. "Tweet" is a term that we USERS created and made popular. Twitter has trademarked it. If they do anything to enforce that trademark that negatively impacts users or developers, then let me say it now: SHAME ON THEM.

Thursday, August 13

The Bambibots Cometh

OK, so what exactly is the deal with bambibots? You know, that subset of spambots that haunt social networks, post a sexy photo and spew out lascivious crap like "I hate my [boy/girl]friend you need to cum f*ck me now www.obviouspornlink.com/ghg43p993p4" ???

Do people really click on this crap? I guess they must, because like the slew of email spam that clogs my pipes, someone puts an awful lot of effort into creating these spambots to drive these Bambi/Amber/Monik/Jezabelle/Irinia53530/so on and so forth accounts, and if there weren't a financial incentive, it simply wouldn't make sense. I wish there were a better way of blocking them.

A few weeks back I'd posted a suggestion on the Twitter development list about tunable anti-spam measures -- like the kind of utility that GMail gives you. Once I start blocking accounts, there ought to be some intelligent algorithms working behind the scenes to understand stuff like:

1. if someone is following hundreds or thousands and is followed by a handful, ignore,
2. if someone has had no conversational interaction with any other account, ignore,
3. if the "person's" photo is of them in a bikini, ignore,
4. if there's a link to any known porn site, off a list, or as recongized by other users, ignore!
5. if the words "SEO" or "empowerment" or "money" or "cash" or "prizes" or "smoke up my butt" is found anywhere on their page, IGNORE!!

I mean c'mon ... Twitter's made some strides in spam control, but they're far from where they need to be. I'm tried of waking to find my inbox filled with followspam. Aren't you?

Wednesday, August 12

Is GMail filtering spam Twitter account notifications?

This would be incredibly slick, and so totally Google, if true. Overnight some, but not all, Twitter notifications to my GMail account started going into the Spam folder, which has never happened before, not in the 2.5+ years I've been using Twitter. Each of the notifications that got marked as spam turned out to be for bambibot/spambot accounts with few or no followers, following a ton of people, sending out lots of spammy links.

That would be a pretty freaking cool process, if Google were in fact able to distinguish those accounts ... and if so, maybe they could/should share their algorithms with Twitter and help defeat these spammers at the source.

Edit: may have to scratch that GMail theory, I'm getting more spam follow notifications in my Inbox ...

Saturday, August 8

Quoted in Computerworld article re: Twitter DDoS

First off, I would like to say, I think the Twitter support team tries very hard, and is generally forthcoming and supportive when it comes to working with we Twitter app developers. Every now and then, they drop the ball, and that was unfortunately the case with the (Russian based?) distributed denial-of-service (DDoS) attack that caused problems earlier this week (Thursday/Friday the 6th and 7th of August) and continues to cause issues with throttling today.

App developers stung by Twitter's DOS woes

I think my input on the matter was a little more balanced than the parts quoted indicate:

'
Twitter could have done a much better job of communicating with the developer community, said Andrew Badera, president and CEO of Higher Efficiency, an IT consulting and software development company that has built several Twitter applications.

"The outreach was fair to poor," he said in an e-mail interview. While Twitter focused on providing updates about the performance problems affecting end-users, it was late in addressing specific issues with its developer platform, Badera said.

"Twitter worried about their infrastructure first, as was proper, then the media, before ever bothering to talk to the developer community in any fashion. And if it weren't for the third party ecosystem that has sprung up around Twitter, Twitter wouldn't have blown up the way it did, and the media wouldn't care about Twitter to begin with," Badera said.'

Part of the "interview email" that didn't make it into the published article:

-- At a more general level, what has been your level of satisfaction with the Twitter developer program overall? How could they improve it?

My response: 'Decent to excellent, especially since they brought on Doug Williams, and now Chad Etzel, (API support plucked from the developer community) but in general it's always been pretty good. Twitter and its engineers have always been pretty friendly to the community, and until recently, there have been no concerns about trademark issues, making it easy to create fun apps that fit well with Twitter. Whitelisting has always been a fairly painless process, especially now that they've cleared the backlog there. In general Twitter has been kind to developers, if not always as inclusive or informative as we'd like. They seem to be making genuine efforts to get better at these things, taking our criticism and suggestions in stride.'

My faith was shaken, however, when Twitter's head of the platform team engineer, Ryan Sarver, tweeted that he and other Twitter staff were headed out for sushi last night, while developers were still left without status updated on a lot of critical issues that continue to plague us this weekend. Preserved for posterity:

"
Headed to umi with @devon and a crew of Twitter peeps"

Now I, of all people, understand -- ya gotta eat! And work doesn't (shouldn't) own you. And I have much love where sushi is involved. However, when you've left your entire ecosystem of third-party developers and their apps hanging, when some of us have livelihoods in the balance, maybe you should be a little less public about your non-troubleshooting activities.

Friday, August 7

Not much of a 'quiz' guy, but ...

This one seemed pretty accurate, thought I'd share.


My Political Views
I am a center-left moderate social libertarian
Left: 1.64, Libertarian: 2.86

Political Spectrum Quiz

Thursday, August 6

The Twitter Denial of Service attack

We're all pretty familiar with (D)DoS attacks by now ... and the two major motivations are a) hacker cred and b) financial. So ... did Biz and Ev receive a ransom note amongst all this mess? Or is this retribution from Iran ... or China?

Wednesday, August 5

Leaving FriendFeed behind

Sorry, Paul Bucheit, Ben Golub and the rest of the FriendFeed crew, but I'm just not compelled anymore.

I don't like the feel of the realtime flow, and Google Reader offers me everything else I'm looking for in a social news discovery application. I know more active users, more intimately, on Facebook than I do on FriendFeed. Unfortunately for you, Facebook and Google definitely "stole" a lot of your momentum and innovation. The rest of what FriendFeed offers I already have through Twitter.

RIP FriendFeed, I see nothing that differentiates you or offers unique value anymore. I met a lot of interesting people early on -- which I think is one of the greatest experiences you have during early public betas of social network sites -- but these days it's loud, crowded, fragmented and just doesn't grab me like it once did.

I'll leave my feeds posting in, and I'll respond to interesting comments, (thanks to email notification) but that will be, and for some time really has been, the extent of my participation in FriendFeed.

Sunday, July 26

Most awesome Twitter tool I've seen in a long time - TrueTwit


An acquaintance from the NYTM mailing list, Elaine Lee, turned me on to the most useful, most effective anti-spam anti-autofollow bot tool I've ever seen to hit Twitter: TrueTwit.

This service detects new followers and sends them a DM on your behalf (yes, I generally despise auto DMs, but only when they're disingenuous/spammy) asking them to verify their human-ness via reCAPTCHA on the TrueTwit website.

Once the new follower has successfully solved the reCAPTCHA challenge, TrueTwit will email you a notification very similar to the basic Twitter new follower notification. (Which TrueTwit recommends you turn off -- the point IS to avoid noise, after all.) From there you can choose to view the user's profile, or ignore, as you wish.

TrueTwit reduces the amount of time you spend looking at profiles to determine whether or not someone is worth following by eliminating all the non-human accounts BAM! right off the bat. Two thumbs up! My aggravation and distraction levels just dipped a point or two.

Friday, July 10

I bought stamps today

I bought a book of first class US mail stamps today for the first time in ... probably something like 5-7 years. Unquestionably over half a decade.

I nursed my last two stamp books until sometime in 2008 ... they were 30-something, .34 or .37 maybe. I would simply slap two of those babies on outgoing mail -- the rare pieces that I sent -- and said mail would arrive happily at its destination.

I've sent other pieces of mail here and there, but I either have the postage rung up at a counter, or via an online service, or I use UPS or FedEx. And when it comes down to it, I don't send a lot of first class mail, period.

It shocked me to think how long it had been since I had laid out money on good old stamps. I remember licking stamps as a kid. Will my kids even use stamps?

Thursday, June 11

I declare "Spymaster" a #fail

This game had real potential. Good spam control (even if it did still somewhat encourage self-serving spam), new behaviors and equipment available with level-ups, the ability to purchase revenue-generating assets, to transfer money between players, to assassinate your frenemies.

Unfortunately they failed on a few counts. They totally bungled the handling of an exploit that was reported by active users -- the game staff replied by wiping out those users' accounts. OK, that's a mistake, maybe a forgivable one. Unfortunately there's a more fatal failure: you hit level 30, which took about a week of regular play, and wham, you hit a wall. No new content.

The game staff promised new content "hopefully by Friday" -- of last week. Friday the 5th of June. Today is Thursday the 11th. Still no new content, no way for people to advance, so instead a lot of players are getting slaughtered by the more aggressively-situated players, losing their hard-earned weapons and armored cars, with no way to fix it or get around it. At best, those players will have a TON of ground to make up if the yahoos at iList ever get around to adding new content like they promised.

Fail. Completely frustrating, disappointing fail. But hey, I hope you guys at least got the viral benefits out of this for iList while failing a quickly devoted community. What a piss poor lack of prior planning and foresight. #fail #spymaster

Monday, June 8

I've become a believer

In LINQ. Well, at least in LINQ to SQL, and some of the neat LINQ-to projects like LINQ to flickr and those sorts.

I'm not quite so sure about LINQ to XML -- I still find myself using a lot of XPath, which I thought LINQ would let me get away from. Sure, LINQ to XML is nice for WRITING XML, but reading? I'm not sure it's a big win.

But let's get back to the subject at hand: LINQ to SQL. For quite some time, I felt that LINQ to SQL reduced developer knowledge of the data model below acceptable levels, provided a nearly unnecessary level of abstraction, and coddled the drag-and-drop Mort crowd.

Some of that may still be true, but when building a quick system like one project I've been working on the past three or four weeks and another the past five days, LINQ to SQL, in my mind, gives .NET the feel of something more dynamic like PHP or Ruby. This reduces development pain on short projects, mockups/prototypes or architectural spikes IMMENSELY. You can be much more agile in evolving your data model and business logic without paying the price of a brittle, static data tier. Yes, I found myself dragging-and-dropping tables, over and over again -- and I felt almost no shame in doing so.

According to Microsoft, LINQ takes measures against SQL injection -- one of the topmost reasons for using stored procedures. One of the other big reasons for SQL Server stored procs is performance of course. On small datasets, performance is adequate. I haven't had a chance to test on large datasets yet, or under scale conditions. There are steps you can take to improve performance I plan on exploring.

But of course you can still use stored procedures with LINQ, dragging-and-dropping again, and calling them like a standard .NET method via the wrapper LINQ and the Entity Framework create.

I'm not sure you lose anything with LINQ, and you certainly gain quite a bit in a number of scenarios. I suspect I will be using it quite frequently in the future.

Sunday, June 7

My work on Times Square billboard tomorrow :)

I had mentioned on Thursday that I had a killer little project underway. I was contacted by Ashley John Heather of dotbox for some rush assistance in their Best Friends Day campaign for the charity DoSomething.org.

I'm taking #bff tagged results from search.twitter.com and pulling them into a local SQL Server 2005 database. The intake procedure filters for banned words, banned users, prioritized users. Then 10 at a time, pre-filtered tweets are put in front of a human moderator using a WinForms interface (yes, WPF would have been sexier, but I had <4 days to get this done) where the user can choose to "Display", "Prioritize" or "Ban" based on the tweet's text content and author. Content is batched for publishing to the ticker to be displayed on the bottom of the billboard.

OK ... that sounds like pretty run-of-the-mill CRUD work, right, so what's the point? I hear ya! Here's the kicker: the tweets approved in the moderation process will be published to Time Square's largest billboard, the Clear Channel billboard, from 8am-8pm Monday (tomorrow) June 8th, six out of every 15 minutes:


Yeah, how friggin' cool is that?

Thursday, June 4

I told myself I'd blog every day for a week

But I just can't do it! It's driving me insane!

I kid. This blog has done nothing to contribute significantly to my overall levels of insanity.

Apologies, but today's entry is going to be a bit weak. Not sure if I'll make it tomorrow yet or not.

I thought I had time. I thought I was essentially on a paid vacation. Turns out not to be so much the case. Met with the good people at Apprenda, the Tech Valley startup that creates SaasGrid, catching up with a client who's been blowing up (in a good way! www.skinnyjeans.com), trying to get to a little bit of REST for a certain ISV, and some discovery/research/proposal work on two other projects, one heavily Twitter-centric, one a standalone custom web app for doing some business process management (BPM). But none of that is what is about to swallow my time for 3-4 days straight.

Not going to talk about it too much now -- if all goes well I will of course follow up with details, and at least a link, maybe a video feed, of the result :)

Wednesday, June 3

Best notebook accessory ever?

The first time I saw a notebook cooler, it looked like a clunky, cheap piece of junk.


A year or so later, I purchased my Dell Vostro 1500, and was introduced to the life of living with medium-rare thighs. (I sit in a lot of places where my work gets done in my lap.) I learned to live with the pain. To love it. OK, not to love it. To tolerate it.

The sensation did get me thinking, however, that perhaps a cheesy-looking notebook cooler might be worth the dent to my cool-factor. (Because I'm super-cool. Don't kid yourself. You don't know anybody cooler than me.)


NewEgg.com to the rescue with the BYTECC Aluminum Notebook Cooler Model NC-500 (USB):
This thing looks reasonably cool, doesn't break the bank, doesn't sound like a jet taking off, IS lap-comfortable, and isn't greedy with your USB ports -- the Bytecc is USB-powered with passthrough, so the port is still usable. Best of all? My notebook is running 10-20F cooler. I kid you not. My thighs are no longer red. My notebook keyboard and underside are no longer warm or hot to the touch. The air coming out the exhaust vents is notable cooler as well. Performance seems smoother.

Definitely a thumbs up.