Amazon.com Widgets December 2010

Flotsam and Jetsam #18

By Nick at December 30, 2010 11:30
Filed Under: Flotsam and Jetsam
  • Cool Thing Done with Delphi of the Week:  Now this is the kind of thing where Delphi can really shine – connecting to hardware.  I’m sure some of you got an XBox 360 Kinect controller for Christmas, and if so, you can now write a Delphi app to use it.  Simon Stuart (aka LaKraven) continued his string of writing Delphi interfaces to interesting things (he started with TTwitter, or maybe even something before that that I don’t know about!)  by writing TKinect, a component to connect to, well, a Kinect controller.  Smile  And then the folks at the IT Security Lab made some really cool demos.  The 3D stuff is particularly cool. Definitely worth a look, just for the coolness factor. 
  • As a general rule, I find most everything Seth Godin says to be interesting, but I thought that this post was particularly interesting.  Made me thing “Grow where you are planted”. And it made me think that your job doesn’t have to be that which it is “supposed” to be.  For instance, being a waiter might seem mundane, but you can make it an opportunity to learn how to delight people, as Godin deftly points out. 
  • Great list -- 29 tech phrases you should be punched in the face for using.  And just for the record, I only type “LOL” when I actually do LOL.  Winking smile  (And while we are at it, here’s another great list.)
  • I ran across an interesting coding technique called “Spartan Programming”.  I agree with much, but not all, of the tenants.  I’m definitely in favor of limiting scope as much as possible, creating small interfaces, limiting horizontal and vertical complexity, and minimizing coupling,  But I can’t say I’m a fan of limiting the size of variable names or limiting character count in general.  In that area, I think it pays to be clear and verbose.  I do agree, though, that routines should be short and sweet.  In any event, interesting ideas.
  • Cool Delphi Code of the Week:  TKBDynamic in the kblib project on GoogleCode.  This is a small but really useful library that lets you easily write records to streams, even if the records have relatively complex structures.  Pretty cool – and it isn’t even yet taking advantage of the new RTTI.

Using Your BitTorrent Powers for Good, not Evil

By Nick at December 27, 2010 21:10
Filed Under: Tech Stuff

I’m a big fan of the BitTorrent Protocol.  It’s an amazingly simple yet clever protocol for easily and efficiently moving bits around on the internet.  By grabbing small chunks of a given file from multiple peer computers anywhere in the world, it can quickly and efficiently move files from one place to another. 

Sadly, BitTorrent has a bad reputation, as it is commonly used to move pirated software, music, movies, and TV shows around in violation of any number of copyright laws.  But the fact that it is used for nefarious purposes doesn’t make BitTorrent itself evil or illegal, anymore than cars are illegal for being used as bank robbery getaway vehicles.  It’s a shame that many companies and other organizations feel that they can’t avail themselves of BitTorrent because of its bad reputation.

In fact, there are plenty of legitimate uses for BitTorrent.  Many companies do use it to distribute their software.  For instance, Ubuntu provides torrents for their Linux distributions.  It’s a nice way to make large files available to customers fast and free – there’s no bandwidth limit or any fee associated with BitTorrent.  But be advised of one thing – once a torrent is out in the wild, there is no getting it back. It is totally roaming free out on the Interwebs.

Below is a screenshot of my µTorrent client, showing the torrents that I’m serving up from a server at my house.  Those Ubuntu files are quite popular, and because there are so many “seeders” (that is, other people making the file available for downloading), I was able  to download many of those files at rates over 2MB per second meaning I was downloading 650MB files in a matter of minutes.

Torrent

In addition to the Ubuntu files, I also went to ClearBits.net and downloaded a number of legal, free-and-clear torrents. I leave my client running 24 hours a day, and gladly give up some of my upstream bandwidth to support the good folks at Ubuntu and the furthering of the distribution of fine literature via completely legal torrents.  I like to think of it as a small contribution back to the community and doing my part to contribute to the legal side of BitTorrent.

So if you haven’t checked out BitTorrent, give it a look.  There are plenty of legitimate uses for it out there, and there’s no reason you can’t be using it  to distribute your software -- and maybe even providing a bit of bandwidth to the world. 

This Wild Year of 2010

By Nick at December 26, 2010 13:28
Filed Under: General, Personal

This year of 2010 ended up pretty dang good, considering I got fired from my job about half way through it.   For that, I am very thankful.  I’m really quite happy in my new job, my new house, and  my new state.  Things are going well all around. This wasn’t something I fully expected, and so it is an especially nice place to find myself.

In addition, many of you sent words of encouragement and support throughout the year, and for that I’m grateful. 

So all in all, 2010 was a pretty good year. Here’s hoping that 2011 is an even better year for all of us.

Flotsam and Jetsam #17

By Nick at December 15, 2010 17:24
Filed Under: Flotsam and Jetsam, Delphi

Listening

By Nick at December 12, 2010 14:23
Filed Under: Leadership

Imagine this (it shouldn’t be all that hard):  You are a widget manufacturer.  You’ve been tasked to figure out how to make 1000 widgets.  You’ve been planning for weeks.  You’ve gathered data, run the numbers, made estimates, and come up with a plan you believe in. You’ve left a little wiggle room for inevitable unknown obstacles.  You’ve put it all into MS Project and up on the screen in Powerpoint slides.  You are an experienced team – you’ve done this all before many times --  and the guys doing the work are battle-hardened  veterans who know their business.  Everything looks good.

Now it’s time to present your plan to the executive team. You lay everything out in a Powerpoint presentation that you’ve reviewed seventeen times.  But when they hear the plan, they say:  “Sorry, but that’s all wrong.  You say you can make 1000 widgets in fourteen months.  We say it only takes eight months to make that many widgets.  Get to work”.

Terrific.

Now you and your team know how long it will take to make 1000 widgets – 14 months.  But somehow your “leadership” has decided that it only takes much less time than that.  Never mind that these guys have only been with the company for a year or so, and have no real experience with the difficulties and the process of building 1000 widgets.  They are the bosses and their style of “leadership” seems to be to assert their all-knowing authority over the guys who actually know what is going on.  It seems to them that “leadership” means being a hard-ass and “pushing” the team to get more out of them than is possible.  Bottom line:  They didn’t listen and they didn’t trust you.  Why did they ask you to do all that planning when they were just going to tell you the schedule anyway?

We all know what happens next: after about seven months, it becomes hopelessly, overwhelmingly, manifestly clear that there is not going be 1000 widgets on the loading dock in a month.  Now everyone is scrambling to adjust course.  This, naturally, is a vastly worse situation than if they had merely planned on the 1000 widgets being available in 14 months from the start. Or agreed to make the number 500 in seven months instead.

True leaders listen to their people and believe them.  Good people tell you the truth they know they will be trusted.  The last thing you want to do is create a situation where your folks start “gaming” you and telling you what they think you want to hear.  This is a direct result of not trusting them.

If you are a leader and you don’t believe what you are being told, then it is overwhelmingly likely that you are the one with the problem.  You either need to radically change what you are doing or get new people – and again, it is very, very likely that you are the one that needs to change, not your people.  And if you have the wrong people, that is probably your fault, too.

The people in the trenches are the ones closest to the issue, and they know best what is happening “on the ground”.  Believe them, and you can adjust your plans and needs accordingly from the start.  Don’t believe them, and your plans will get adjusted anyway.  You can’t  make a baby with three women in three months, and if your plan requires that you do that, your plan is in trouble no matter how much of a hard-ass you are.  And the team knows that you can’t get a baby in three months, and they will be the ones who suffer for a bad plan.  They learn not to trust you and their morale goes into the tank.

Building and maintaining trust in both directions is a critical requirement for a good leader.  Trusting your people will engender their trust in you. It’s a virtuous circle.  Sometimes you even need to trust them even when they are wrong to help build future trust and to show that you believe in them.  If they trust you, they’ll follow you. Their morale will be up.  They’ll do the extra work and they’ll put in the effort because they want to.  People who are trusted and believed do that as a matter of course.

And isn’t that what we want our folks to do?

Be a Rockstar!

By Nick at December 09, 2010 13:56
Filed Under: General, Delphi

I am hoping that this will get people to stop teasing me about TSmiley sort of in the same way that hitting yourself in the head with a hammer makes you forget that it hurts when you hit your hand with a hammer.

Strange Poster

By Nick at December 08, 2010 16:51
Filed Under: General, Delphi

Someone posted this in our developer lounge this week:

IMAG0035

My Book

A Pithy Quote for You

"A man's got to know his limitations"    –  Dirty Harry Callahan

Amazon Gift Cards

General Disclaimer

The views I express here are entirely my own and not necessarily those of any other rational person or organization.  However, I strongly recommend that you agree with pretty much everything I say because, well, I'm right.  Most of the time. Except when I'm not, in which case, you shouldn't agree with me.

Month List