Welcome to a blog about nothing more than a bit of code, a little tech, occasional ranting, a little raving.
Thursday, December 31
My turn! 2009 wrap-up
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 ...
Tuesday, December 15
Well, it happened ...
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
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
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
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!
Thursday, November 5
Wednesday, November 4
jQuery Datepicker & Z-Index Fix
Thursday, October 29
Next Leg of the MSDN NE Roadshow is on!
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 ... 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
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
Saturday, October 24
Disappointing: Stargate Universe
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. :(
Friday, October 23
Thursday, October 22
SlideShare lead generation #fail
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
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.
Saturday, October 17
It's On! Tech Valley Code Camp 2009
Friday, October 16
A Twitter Mass Follow Movement I Can Get Behind
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
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
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
Apparently I'm not the only one
Is anyone still using Friendfeed?
Google Groups Spammed & Spoofed
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
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
(via Engadget)
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
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
Thursday, October 8
Wednesday, October 7
Going dark for a few days
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
From the VC Handbook
When a person has no need to borrow they find multitudes willing to lend.
Sunday, October 4
Thursday, October 1
Got my Google Wave invite!
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.
US biographer & poet (1878 - 1967)
Wednesday, September 30
Healthcare Napkins All
Things that make you go "Hrmmmmmm ..."
Anyone who works is a fool. I don't work - I merely inflict myself upon the public.
Tuesday, September 29
Very Interesting SaaS Consulting CTO work
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
Pay range is decent for upstate NY -- email me a...@b... for details.
Monday, September 28
Alan Weiss on Twitter: Consultant's Syndrome? Or just a jerk at work?
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
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
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.
Thursday, September 17
Wednesday, September 16
I declare Web 3.0
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
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.
US poet (1874 - 1963)
Saturday, September 12
Thursday, September 10
Busy fall in Tech Valley!
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
Friday, August 14
Twitter Continues Trademark Push
Thursday, August 13
The Bambibots Cometh
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?
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
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
"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 ...
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
Wednesday, August 5
Leaving FriendFeed behind
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.
Monday, July 20
Wednesday, July 15
Friday, July 10
I bought stamps today
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
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
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'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
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?
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.