Your work is going to fill a large part of your life, and the only way to be truly satisfied is to do what you believe is great work. And the only way to do great work is to love what you do.
-- Steve Jobs

Wednesday, April 20, 2011

[SCRIPT] Nook Color USB Drivers and ADB Setup (WinXP&7) - xda-developers

[SCRIPT] Nook Color USB Drivers and ADB Setup (WinXP&7) - xda-developers
Here is a short script I wrote to get you all up and running with the Nook color in Device Manager and the USB Drivers to get ADB running.

Update: This didn't work for me until I followed the instructions listed here (as mentioned in the comments in the xda-developers post):
NookColor USB ADB - nookDevs

Thanks to both sites I'm up and running!

Up or Out: Solving the IT Turnover Crisis - The Daily WTF

Up or Out: Solving the IT Turnover Crisis - The Daily WTF
If you’ve worked at enough companies in the IT industry, you’ve probably noticed that the most talented software developers tend to not stick around at one place for too long. The least talented folks, on the other hand, entrench themselves deep within the organization, often building beachheads of bad code that no sane developer would dare go near, all the while ensuring their own job security and screwing up just enough times not to get fired.

Tuesday, April 19, 2011

Open Source Programming Tools On the Rise - Slashdot

Open Source Programming Tools On the Rise - Slashdot
snydeq writes "Peter Wayner takes a look at several open source development projects making waves in the enterprise. From Git to Hadoop to build management tools, 'even in the deepest corners of proprietary stacks, open source tools can be found, often dominating. The reason is clear: Open source licenses are designed to allow users to revise, fix, and extend their code. The barber or cop may not be familiar enough with code to contribute, but programmers sure know how to fiddle with their tools. The result is a fertile ecology of ideas and source code, fed by the enthusiasm of application developers who know how to "scratch an itch."'"

Bug Forces Android Devices Off Princeton Campus Network - Slashdot

Bug Forces Android Devices Off Princeton Campus Network - Slashdot
pmdubs writes "A major bug in the Android DHCP implementation has forced network administrators to (effectively) ban the use of such devices on the Princeton campus. In the last few months, Princeton has had to kick more than 400 Android devices off the campus network for using IP addresses well beyond the allotted DHCP lease (to the detriment of other users), sending invalid DHCPREQUEST messages after lease expiration, and a variety of other wacky behaviors. The link provides a clearly documented explanation of the buggy behavior, as does this largely neglected bug report. Without doubt, this buggy behavior is affecting other, less vigilant networks, and disrupting Wi-Fi traffic for Android and non-Android devices alike."

Monday, April 18, 2011

Apple Sues Samsung Over Galaxy Phones and Tablets - Slashdot

Apple Sues Samsung Over Galaxy Phones and Tablets - Slashdot
mystikkman writes "In the latest patent suit to hit the smartphone industry, Apple is suing Samsung, alleging the Galaxy line of phones and tablets infringe on a number of Apple's patents. 'Samsung's Galaxy Tab computer tablet also slavishly copies a combination of several elements of the Apple Product Configuration Trade Dress,' Apple says in its suit, noting that Samsung's tablet, like Apple's, uses a similar rectangular design with rounded corners, similar black border and array of icons. Apple previously sued HTC over Android. If Samsung is found to be infringing on the software, all the Android OEMs could be vulnerable."

Coding Horror: Why Can't Programmers.. Program?

Coding Horror: Why Can't Programmers.. Program?
I'm more than willing to cut freshly minted software developers slack at the beginning of their career. Everybody has to start somewhere. But I am disturbed and appalled that any so-called programmer would apply for a job without being able to write the simplest of programs. That's a slap in the face to anyone who writes software for a living.

Some “Developers” Just Can’t Develop : Richard Banks - Agile and .NET

Some “Developers” Just Can’t Develop : Richard Banks - Agile and .NET
I’ve been interviewing candidates for developer positions for over a decade now. In my early years I was very much hit and miss in terms of finding the right people and it wasn’t until a horror hire that I realised what I was doing wrong.

Using the Builder Pattern to Create Data Access Layer Integration Tests | Falconer Development LLC

Using the Builder Pattern to Create Data Access Layer Integration Tests | Falconer Development LLC
Automated testing is a good software engineering principle regardless of which development management process being used, Scrum, TDD, XP, etc. You know all about the benefits of unit-testing. It will reduce the number of defects, catch bugs earlier, unicorns will manifest themselves and bring you a beer. Great! But how do you start?

There are various opinions on how to test your Data Access Layer (DAL). Some would argue that it makes sense to write tests that run against an actual database. Others will argue that DAL tests should be mocked. While, I’ve talked previously about techniques for unit-testing, advocating, pleading, begging for the usage of mocked dependencies (using a mocking framework). When it comes to testing the DAL, this is where I make an exception to that guidance.

Introducing ASP.NET MVC 3 Tools Update

Introducing ASP.NET MVC 3 Tools Update
Today at Mix, Scott Guthrie announced an update to the ASP.NET MVC 3 we’re calling the ASP.NET MVC 3 Tools Update. You can install it via Web PI or download the installer by going to the download details page. Check out the release notes as well for more details.

Notice the emphasis on calling it a Tools Update? The reason for that is simple. This only updates the tooling for ASP.NET MVC 3 and not the runtime. There are no changes to System.Web.Mvc.dll or any of its other assemblies that ship as part of the ASP.NET MVC 3 Framework. Instead, given that we just released ASP.NET MVC 3 this past January, we focused on improvements to the tools and project templates that we wanted to ship in time for Mix.

Spring Android and Maven (Part 2) | SpringSource Team Blog

Spring Android and Maven (Part 2) | SpringSource Team Blog
The Maven Android Plugin lets you build your Android applications with Maven and benefit from dependency management. Google's Android Development Tools (ADT) plugin allows you to develop and build Android applications within the Eclipse IDE. To get Maven dependency management within Eclipse, the Maven Integration for Android Development Tools plugin is required, which integrates m2eclipse, the ADT Plugin, and the Maven Android Plugin. This post will show you how to install this plugin and use it to get Maven-based dependency management working in the Eclipse IDE.

Spring Android | SpringSource.org

Spring Android | SpringSource.org
Spring Android is an extension of the Spring Framework that aims to simplify the development of native Android applications.

Architecting in the pit of doom: The evils of the repository abstraction layer

Architecting in the pit of doom: The evils of the repository abstraction layer
The whole purpose of a repository is to provide an in memory collection interface to a data source, but that pattern was established at a time where the newest thing on the block was raw SQL calls. Consider what NHibernate is doing, and you can see that here, one implementation of an in memory collection interface on top of a data store is wrapped in another, and it does nothing for us except add additional code and complexity.

Nilay Patel • The Android multitouch story gets even murkier

Nilay Patel • The Android multitouch story gets even murkier
There’s been a lot of chatter these past few weeks about Steven Levy’s new Google book In the Plex, and particularly some revelations in the book about Steve Jobs — specifically, that Larry Page and Sergey Brin wanted him to be the first CEO of Google, and that Jobs mentored the two founders until he later saw pinch-to-zoom in Android and everything went to hell. The acrimony was so deep, we’re told, that Jobs kept the iPad a secret from Eric Schmidt even though Schmidt was still on Apple’s board of directors while it was being developed. (Schmidt would later step down, of course.) It’s juicy stuff, and it nicely feeds right into the current iOS vs. Android narrative of the day.

Daring Fireball Linked List: The Sound of 1,700 Jaws Dropping

Daring Fireball Linked List: The Sound of 1,700 Jaws Dropping
Larry Jordan on Final Cut Pro X:
I can’t think of any other company that could so totally redefine what a non-linear video editor is than Apple. Since the release of Final Cut Pro 1, each version of FCP has contained incremental improvements. This is a complete restatement at every possible level.
As Phil Schiller, senior VP for world-wide marketing for Apple told me after the presentation, “This is a total rethinking of how we tell stories visually.”

Sunday, April 17, 2011

Spring Roo - springroo can't setup gwt - Stack Overflow

spring roo - springroo can't setup gwt - Stack Overflow
I had the same problem with the Roo sample expenses.roo project. I solved it by adding the missing maven dependancy to project.
From Roo shell run this:
dependency add --groupId com.google.appengine --artifactId appengine-api-1.0-sdk --version 1.4.0

Google Plugin for Eclipse - Google Code

Installing the Plugin - Google Plugin for Eclipse - Google Code

Spring Android and Maven (Part 1) | SpringSource Team Blog

Spring Android and Maven (Part 1) | SpringSource Team Blog

rBuilder Online - Release: Git Server

rBuilder Online - Release: Git Server

rPath have released the Git Server VMware (R) Virtual Appliance.

Using Git with Visual Studio - Stack Overflow

Using Git with Visual Studio - Stack Overflow

[Q] Nook Color Honeycomb usb SD card mount? - xda-developers

[Q] Nook Color Honeycomb usb SD card mount? - xda-developers

smakcc
This application was quite easy to use.

1. Plug USB in Nook and connect to PC
2. Open NookColorUMS.
3. Select "Mount Media"
4. Nook Pops up on PC.
Beginning Android Application Development (Wrox Programmer to Programmer)  Hello, Android: Introducing Google's Mobile Development Platform (Pragmatic Programmers) Programming Android

Day to day stuff: On making a custom Ubuntu Bootable USB stick

Day to day stuff: On making a custom Ubuntu Bootable USB stick

In my upcoming Wicket course the students will use a rental laptop. How do we guarantee that they will be up and running in no time? Colleague Jason had the solution: burn a Ubuntu Live CD to a USB stick!

Though simple this may sound, in the end it took us almost 3 days to put it together. This article gives an overview of the steps I took to create the USB sticks and how I tested them with VirtualBox.

Friday, April 15, 2011

Game Developer Group Warns Against Amazon Appstore - Slashdot

Game Developer Group Warns Against Amazon Appstore - Slashdot
The International Game Developers Association has posted a warning to the game development community about the Amazon Appstore's distribution terms, detailing several unfavorable situations possible under the rules and saying, "Amazon has little incentive not to use a developer's content as a weapon with which to capture marketshare from competing app stores."

"Amazon does not need the terms it has established for itself in order to give away a free app every day. Nor does it need the powers it has granted itself to execute a wide variety of price promotions. Other digital games platforms, such as Xbox LIVE Arcade and Steam, manage to run effective promotions very frequently without employing these terms. Amazon may further argue that its success depends on the success of its development partners, and therefore, that it would never abuse the terms of its distribution agreement. Given that Amazon can (and currently does) function perfectly well without these terms in other markets, it is unclear why game developers should take a leap of faith on Amazon’s behalf. Such leaps are rarely rewarded once a retailer achieves dominance."

Making Money | Small Business Advice from Jason Fried of Inc.com

Making Money | Small Business Advice from Jason Fried of Inc.com
Today, I run 37signals, a software and design firm that I co-founded in 1999. Sales have grown at double-digit rates every year for the past decade; so have profits. (Like many private companies, we don't disclose revenue.) How did I learn how to do this? I have a degree in finance, but I don't remember taking any classes that even remotely taught me how to make money. I've read plenty of business books. Same thing—lots of talk about money, but not much about how to actually make the stuff.
One thing I do know is that making money is not the same as starting a business. For entrepreneurs, this is an important thing to understand. Most of us identify with the products we create or services we provide. I make software. He is a headhunter. She builds computer networks. But the fact is, all of us must master one skill that supersedes the others: making money. You can be the most creative software designer in the world. But if you don't know how to make money, you're never going to have much of a business or a whole lot of autonomy.

Daring Fireball: Cutting That Cord

Daring Fireball: Cutting That Cord
After Apple’s iPad 2 introduction event last month, I ran into Josh Topolsky, and, of course, we talked about what we thought of it. Topolsky made an interesting observation: that the iPad 2 epitomized how Apple seems to be a generation ahead of its competitors on the device side — both hardware and software — but a generation behind on the cloud side.
I’ve been thinking about the iPad in this context ever since, and I think it’s a perfect synopsis of the state of iOS. There will be no tablet this year from any competitor that matches the iPad 2 in terms of elegance, battery life, or build quality. No competing OS will match iOS in terms of on-the-device user experience.

Thursday, April 14, 2011

America's Tech Decline: a Reading Guide - Slashdot

America's Tech Decline: a Reading Guide - Slashdot
ErichTheRed writes "Computerworld has put together an interesting collection of links to various sources detailing the decline of US R&D/innovation in technology. The cross section of sources is interesting — everything from government to private industry. It's interesting to see that some people are actually concerned about this...even though all the US does is argue internally while rewarding the behaviour that hastens the decline."

VMware Releases Open Source Cloud Foundry - Slashdot

VMware Releases Open Source Cloud Foundry - Slashdot

Julie188 writes "VMware shook the cloud world with an announcement that it was releasing an open source platform-as-a-service called Cloud Foundry. Not surprisingly, the new cloud platform takes direct aim at Microsoft's Azure and Google's Google Apps platforms. Cloud Foundry is made up of several technologies and products that VMware has acquired over the recent past and is released under an Apache 2 license. While VMware isn't the first-and-only player to launch an open source cloud initiative (Red Hat has DeltaCloud, Rackspace and Dell have OpenStack), some believe that with VMware now in the open source cloud business, pressure could be mounting for Microsoft and Google to release versions of their cloud that could be hosted somewhere other than their own data centers."

Wednesday, April 13, 2011

What Is ADB And How To Install It With Android SDK

What Is ADB And How To Install It With Android SDK
When it comes to Android modding, most novice users are confused or left wondering by reference over reference to a certain “adb”. This is specially true when you are looking up something on modding your device, or root it in particular. ADB is the wonder toy of Android and everyone seems to love it, so lets have a look at understanding what it is and why you need it, and how you can get it.

Expensify CEO On 'Why We Won't Hire .NET Developers' - Slashdot

Expensify CEO On 'Why We Won't Hire .NET Developers' - Slashdot
TheGrapeApe writes "The CEO of San Francisco-based, VC-backed startup Expensify wrote a post on the company's blog about why he considers .NET experience on a resume a general liability, saying that it will 'definitely raise questions' when screening for developers in his shop. Quoting: '.NET is a dandy language. It's modern, it's fancy, it's got all the bells and whistles. And if you're doing Windows Mobile 7 apps (which the stats suggest you aren't), it's your only choice. But choosing .NET is a choice, and whenever anybody does it, I can't help but ask "why?"' Does he have a point? Or is it counterproductive to screen devs out based on what platforms or languages they have used in the past?"

Red Hat Uncloaks 'Java Killer': the Ceylon Project - Slashdot

Red Hat Uncloaks 'Java Killer': the Ceylon Project - Slashdot
talawahdotnet writes "Gavin King of Red Hat/Hibernate/Seam fame recently unveiled the top secret project that he has been working on over the past two years, a new language and SDK designed to replace Java in the enterprise. The project came out of hiding without much fanfare or publicity at QCon Beijing in a keynote titled 'The Ceylon Project — the next generation of Java language?'"

Tuesday, April 12, 2011

Code Review: SharpArchitecture.MultiTenant

Code Review: SharpArchitecture.MultiTenant
It has been suggested that I’ll look at a more modern implementation of SharpArchitecture, and I was directed toward the MultiTenant project.

Scripting Layer for Android brings scripting languages to Android

android-scripting - Scripting Layer for Android brings scripting languages to Android. - Google Project Hosting
Scripting Layer for Android (SL4A) brings scripting languages to Android by allowing you to edit and execute scripts and interactive interpreters directly on the Android device. These scripts have access to many of the APIs available to full-fledged Android applications, but with a greatly simplified interface that makes it easy to get things done.
Scripts can be run interactively in a terminal, in the background, or via Locale. Python, Perl, JRuby, Lua, BeanShell, JavaScript, Tcl, and shell are currently supported, and we're planning to add more. See the SL4A Video Help playlist on YouTube for various demonstrations of SL4A's features.

Microsoft TouchStudio Uses Phone To Program Phone - Slashdot

Microsoft TouchStudio Uses Phone To Program Phone - Slashdot
theodp writes "Over the weekend, Microsoft released the beta of TouchStudio, a free Windows Phone app that allows one to write programs for a phone on the very same phone, no computer required. According to the Microsoft Research project page, the work-in-progress TouchStudio aims to bring 'the excitement of the first programmable personal computers to the phone.' Among the code examples provided is a four-liner that scans a phone's music collection for songs less than three minutes long and produces a fairly slick, clickable playlist complete with track info and artwork. Easier than iPhone SDK programming, no?"
I would love to see something like this for tablet development on Android Honeycomb / iPad.

Update:

 asnelt (1837090)
Android has had more powerful scripting for quite some time: http://code.google.com/p/android-scripting/ [google.com]


Monday, April 11, 2011

Daring Fireball Linked List: The Gap Theory of UI Design

Daring Fireball Linked List: The Gap Theory of UI Design
Yours truly, speaking at Webstock in New Zealand back in February, taking a tour of the entire history of Apple’s graphical user interfaces, and forming a basic theory about the philosophical difference between the old way (pre-Mac OS X) and new way.

Apple AirPlay Private Key Exposed - Slashdot

Apple AirPlay Private Key Exposed - Slashdot
An anonymous reader writes "James Laird has reverse engineered the Airport Express private key and published an open source AirPort Express emulator. 'My girlfriend moved house, and her Airport Express no longer made it with her wireless access point. I figured it'd be easy to find an ApEx emulator — there are several open source apps out there to play to them. However, I was disappointed to find that Apple used a public-key crypto scheme, and there's a private key hiding inside the ApEx. So I took it apart (I still have scars from opening the glued case!), dumped the ROM, and reverse engineered the keys out of it.'"

Sunday, April 10, 2011

Rapid Application Development for the Cloud - Google Web Toolkit - Google Code

Rapid Application Development for the Cloud - Google Web Toolkit - Google Code
Getting started with GWT, Spring Roo, and SpringSource Tool Suite
One of the main features of GWT 2.1 is the integration with SpringSource developer tools. This collaborative effort is focused on making it easy to develop rich web apps for business, bringing together GWT, Spring Roo, and SpringSource Tool Suite (STS).

Spring Roo 1.1.2 GWT bug (not) fixed in 1.1.3

When trying to create the sample project in the Spring Roo tutorial I got an error at the 'gwt setup' step. A quick Google search turned up this thread which pointed to this ticket. Another search turned up this thread which points to the the nightly snapshots.

Update: After downloading and installing 1.1.3 and recreating the project I encountered a new issue at the 'perform tests' step. The org.springframework.roo.annotations-1.1.3.BUILD-SNAPSHOT.jar file was not being recognized despite being in the 1.1.3 release folder. I imported the file as a Maven dependency and once again tried to run the tests. This time the annotations dependency was resolved but the GAE issue is still there:

[ERROR] The import com.google.appengine cannot be resolved

I guess I'll try installing GAE.

Android SDK Tutorial – Learn how to install Android SDK | Android Tutorial

Android SDK Tutorial – Learn how to install Android SDK | Android Tutorial
This page describes how to install the Android SDK and set up your development environment for the first time.

Saturday, April 9, 2011

Getting Started with Android Development with Honeycomb - Stack Overflow

Getting Started with Android Development with Honeycomb - Stack Overflow
I recently purchased one of the nifty Motorola Xoom's and I'd really like to take a shot at developing some applications for it. I work as a .NET developer using C# and it has been about 6 years since I have looked at Java. In my research I haven't really found and good tutorials or learning resources about Android 3.0 and how to leverage its uses in Android development. So my question(s) is this, does any one know of any good resources? books? whatever for learning Android development or would tutorials say involving 2.2 or 2.3 be acceptable?

Google Releases Android 3.0 Honeycomb Development Kit | TechnoBuffalo

Google Releases Android 3.0 Honeycomb Development Kit | TechnoBuffalo
For the developers, they will find news tools such as:
  • New UI framework for creating great tablet apps
  • High-performance 2D and 3D graphics
  • Support for multicore processor architectures
  • Rich multimedia and connectivity
  • Enhancements for enterprise
  • Compatibility with existing apps
And for the 99.9% of you our there who don’t develop apps, what we have to look forward to is things like:
  • System Bar, for global status and notifications
  • Action Bar, for application control
  • Customizable Home screens
  • Recent Apps, for easy visual multitasking (pictured to the right)
  • Redesigned keyboard
  • Improved text selection, copy and paste (editorial: About blasted time!)
  • New connectivity options
  • Updated set of standard apps (browser, camera & gallery, contacts, e-mail)

Barnes & Noble launches Affiliate Program, will pay 6% commission on nook sales - CrunchGear

Barnes & Noble launches Affiliate Program, will pay 6% commission on nook sales
According to Best-eReaders.com, Barnes & Noble just sent out an email to its business partners, announcing that will start paying a 6% commission fee on sales of nook devices, ebooks, warranties and accessories.
Commissions will be paid on shipped orders only.

Legal Risks of Affiliate Programs

ClickingThroughList 1.2--Legal Risks of Affiliate Programs
All business relationships include risk, and affiliate programs are no exception.

Bloggers & Bookstore Affiliates

Frisbee: A Book Journal: Bloggers & Bookstore Affiliates
Food for thought...
Do affiliates compromise more in their reviews? I'd have to analyze reviews and note stats and... Heavens! It's not Bloggergate. But I just clicked on some blogs on my blogroll and am amazed to find so many enrolled in affiliate programs, among them A Common Reader, A Work in Progress, Dovegreyreader, Nonsuch Books, Random Jottings, and The Literary Stew.

A few of these bloggers are really about PR. They say they write only about books they like. I used to suspect some of being marketing firms. And that doesn't mean I don't enjoy them. I DO. Only not always for their book reviews. They're TOO nice, and that means they're unreliable.


But quite a number on my blogroll are NOT enrolled in these programs. I tend to respect their judgment, too. I must admit I feel relieved I'm not the only one not in business. There's something about making money off a blog that doesn't SEEM right to me. I never thought about it, of course, before I read Cleave's Guardian piece, though.

Installing Android 3.0 on the Nook Color

I just got my Nook Color last night and am looking forward to running Honeycomb from the SD card. They had an entire area in the front of the store with multiple test stations and lots of display space devoted to various covers and other accessories. I opted for the dark polyurethane flip cover with magnetic clasp. Although I think $39.95 is pretty steep for a basic flip cover it does seem well made and well thought out. The cover also doubles as a portrait viewing stand with two positions. There were several sales staff on hand to answer any questions and share stories of how they use the Nook (and how wonderful it is). However, I was misinformed by the staff that the Nook comes with an 8 GB card SD card pre-installed. When I asked to see how to access the card on one of the test units he wasn't able to open the cover since the Nooks in the store are security tethered at the corner. I could have picked up a card at MicroCenter while I was there getting a card reader but figured I'd give it a try with the 8 GB card first before spending the cash for a 16GB card. Lesson learned: trust, but verify.

Other than that (and a stuck pixel that I'm hoping will sort itself out) the purchase experience was pleasant and I was still able to use the Nook's built in web browser to do some reading. It was fairly quick and responsive and despite the limitations seems worth the asking price as-is. Yet it offers the potential for so much more, and notably, without any restrictions. B&N seems perfectly content to sell you the unit for $249 and let you do whatever you want with it, hoping you'll buy a case and few books. Sounds like a fair deal to me and I'll probably buy a few books to throw them some business for being cool. Given Amazon's support for Android with their cloud player and app store I'm surprised that their hardware offerings don't support the platform. I think they're missing the boat on this one.

I'll pick up an SD card this afternoon and hopefully have a capable Android tablet at a bargain price. In the meantime, here's what I'm reading to get prepped:

Download Android 3.0 For Nook Color | TheTechJournal.com
Deeper-blue, the chap who’s been spending the past few days porting the Honeycomb SDK over to the Nook Color has today decided to release his latest work out to eager users and fellow coders. He’s enabled the accelerometer, touchscreen, buttons, graphics acceleration and wireless connectivity.But by the instalation of Android 3.0 Honeycomb the other things like sound remain on the to-do list.
[HOW-TO] Download/Install Honeycomb to Nook Color (SD card)| Android Central
Here's how to get Honeycomb running on your Nook Color right now.

Credit to dev deeper-blue (Rafael Brune) whose thread can be found here: Android 3.0 Honeycomb Image - xda-developers

And some YouTube videos from TechnoBuffalo:
 

Thursday, April 7, 2011

Success, and Farming vs. Mining

I saw this on Daring Fireball and it is definitely worth a read:

Call Me Fishmeal.: Success, and Farming vs. Mining
The problem with mining in the software business is that it doesn’t work. It creates broken, useless companies.

Wednesday, April 6, 2011

Clean Code - A Handbook of Agile Software Craftsmanship

Clean Code - Slashdot
I attended Bob Martin's keynote speech and design patterns workshop at the 2010 Better Software / Agile conference in Las Vegas. His views on professionalism, software craftsmanship and clean code have definitely given me a new outlook on what it means to be a professional software developer. After reading Cory Foy's review on Slashdot I recently purchased this book and am looking forward to working through it.
As developers, system admins, and a variety of other roles in IT, we have to deal with code on a daily basis. Sometimes it's just one-off scripts we never have to see again. Sometimes we stare at something that, for the life of us, we can't understand how it came out of a human mind (or, as the book puts it, has a high WTF/minute count). But there is a time when you find code that is a joy to use, to read and to understand. Clean Code sets out to help developers write that third kind of code through a series of essay-type chapters on a variety of topics. But does it really help?

I had the pleasure of attending Bob Martin (Uncle Bob)'s sessions at several agile software conferences over the past several years. In them, Bob has a unique way of showing us the value of clean code. This book is no different. There is a warning in the introduction that this is going to be hard work — this isn't a "feel good" kind of book, but one where we slog through crappy code to understand how to make it better. The authors also point out that this is their view of what clean code is all about — and fully acknowledge that readers may "violently disagree" with some of the concepts.

Results-Only Work Environment (ROWE)

Results-Only Work Environment (ROWE)
Results-Only Work Environment is a management strategy where employees are evaluated on performance, not presence. In a ROWE, people focus on results and only results – increasing the organization’s performance while cultivating the right environment for people to manage all the demands in their lives...including work.

Ask Slashdot: Would You Take a Pay Cut To Telecommute?

Ask Slashdot: Would You Take a Pay Cut To Telecommute?

The topic of telecommuting comes up at Slashdot every so often and almost always generates a lively discussion:

Fallen Kell (165468)
Really, I would think that the company themselves should be willing to pay more for someone who telecommutes, due to needing less facility needs (space, cubicles, utilities) that would be saved from allowing telecommuting. And there is the added benefit of making sure all the equipment can be administered via telecommuting as you can then simply call up the IT group(s) and they can fix the problem from home without waiting the upwards of a hour that it would take to bring someone in to flip a switch/enter a password.

 Locke2005 (849178)
The problem is that most organization have no way of actually tracking productivity, so they pay people basically for being on site for X hours a day. Meaning that anybody who isn't filling a chair for X hours a day will be suspected of not pulling their own weight. Pay people for what they actually accomplish, instead of just for being there, and telecommuting looks a lot better.

aminorex (141494)
My experience has been that telecommuters fall into 3 categories: 20% are bums, and need to be fired. 5% are typical workers who like the flexibility. 75% are insanely ambitious and should be paid more, not less, because the time saved commuting goes directly into productivity, plus they never have to stop working, so they put in way more than full days.

Anonymous Coward
 Pro tip: If your job can be done from your house, it can be done from India.

aminorex (141494)
If you can find an Indian who does what I do, you should go into professional recruiting. i don't think you can outsource innovation.
 nsxdavid (254126)

Telecompute is so.... 90s. I hate to say it. But we've moved past that.

The future is ROWE. Results Oriented Work Environment. In a ROWE only results matter. Not how you get it done, or where you get it do it.

In essence, if you can get your work done from a tropical island (with good wifi), then by all means do it. You are not paid for putting your butt in a seat, but rather for your productivity.

ROWE treats employees as adults who know how to manage their own time. Telecommuting, "flex time" and the like are just ways of rewarding employees with what they should already have... control over their lives.

ROWE came out of a successful experiment at Best Buy (HQ not retail stores). Its been adopted by a lot of big name companies, including Netflix.

To learn more, check out: http://gorowe.com/ [gorowe.com]

I switched my company to ROWE last year after months of due diligence. And we've never looked back.

David

Rock on, David!

Tuesday, April 5, 2011

Uncle Bob - The Transformation Priority Premise

The Transformation Priority Premise - Uncle Bob's Blog
This blog poses a rather radical premise. It suggests that Refactorings have counterparts called Transformations. Refactorings are simple operations that change the structure of code without changing it’s behavior. Transformations are simple operations that change the behavior of code. Transformations can be used as the sole means for passing the currently failing test in the red/green/refactor cycle. Transformations have a priority, or a preferred ordering, which if maintained, by the ordering of the tests, will prevent impasses, or long outages in the red/green/refactor cycle.
“As the tests get more specific, the code gets more generic.”
Recently this mantra has taken on a new meaning for me.

Uncle Bob - The Clean Coder: Software Craftsmanship: What it's all about?

The Clean Coder: Software Craftsmanship: What it's all about?
Why is there a software craftsmanship movement?  What motivated it?  What drives it now?  One thing; and one thing only.

We are tired of writing crap.

That's it.  The fat lady sang.  Good nite Gracy. Over and out.
We're tired of writing crap. We are tired of embarrassing ourselves and our employers by delivering lousy software.  We have had enough of telling our customers to reboot at midnight.  We don't want bug lists that are a thousand pages long.  We don't want code that grows more tangled and corrupt with every passing day.  We're tired of doing a bad job.  We want to start doing a good job.
That's ... what ... this ... is ... about.  Nothing else.

Uncle Bob - The Clean Coder: Bringing Balance to the Force

The Clean Coder: Bringing Balance to the Force
I read Martin Fowler's contribution to the craftsmanship thread with interest.  He spoke of the so-called "crevasse" between developers and customers.  He reiterated Dan North's fear that the craftsmanship movement could widen this crevasse.
We are programmers.  We need to talk about programming from time to time. We need time and space to focus on our primary discipline: programming.  That discussion, and that focus, is a very positive thing.  It means we care about what we do.  But have we gone too far?  Are we too technical?  Is the Software Craftsmanship movement a movement only about techical practice and details?  Have we forgotten the customer?

Martin Fowler - Craftmanship And The Crevasse

CraftmanshipAndTheCrevasse
Dan North's recent blog post on software craftsmanship has unleashed a lot of blog discussions (which I summarize below, if you're interested). There's a lot in there, but one of his themes particularly resonated with me, hence this post.

Before I get to that, however, I just want to push one element off to the side. I've long felt that debates about metaphors for software development are tedious. While MetaphoricQuestioning has its place I'm fundamentally uninterested in whether software development is a craft, an art, a trade, or a dessert topping.

The point that matters to me isn't about the craftsmanship metaphor, but more a characteristic of the movement that seems to have sprung up in the last couple of years. From my outsider perspective, the primary force that's energized the software craftsmanship community is a reaction to the change in the agile movement. In the early days of the agile virus, the dominant strain was Extreme Programming, which has a lot to say about technical practices. Now the dominant agile strains are Scrum and Lean, which don't care very much about programming - and thus those people who primarily self-identify as programmers feel a large part of their life is no longer important in the agile world.

Uncle Bob - Sapient Testing: The "Professionalism" meme.

Sapient Testing: The "Professionalism" meme.

Uncle Bob - The Three Rules Of Tdd

ArticleS.UncleBob.TheThreeRulesOfTdd

Uncle Bob - Mocking Mocking and Testing Outcomes.

Mocking Mocking and Testing Outcomes.

Uncle Bob - Certification: Don't Waste Your Time!

Certification: Don't Waste Your Time!

Uncle Bob - Software Calculus - The Missing Abstraction.

Software Calculus - The Missing Abstraction.