Baby Planners

17 years, 11 months ago
[ General ]

There’s a cool new service, well new to me anyway, the Brit’s have call Babyplanners.

“babyplanners is an all-embracing service for women expecting their first baby. Through one-to-one sessions at home or the office, we’ll take care of all the organisational aspects of having a baby on your behalf…”

Cool eh? Ahhhh, not so much. In a word, depressing. We’re so entrenched in needing two incomes to survive that we’re left hiring total strangers to play the roles typically played by family, friends, and community.

I think it’s great that they saw an opportunity and built a business around it. It just depresses me that the opportunity even existed.

New Best Friend

17 years, 11 months ago
[ General ]

(11:19:57 AM) …brydon: see ya
(11:19:58 AM) NHL:

XXXX
X“X
XXXXXXXXXXXXXX
XX XX
XX XX XX XX
XX XX
XX XX XX XX
XX XXXX XX
XX XX XX XX
XXXXXXXXXXXXXXXXXXXXXXXXXXXX
X XXXXXXXXXXXXXXXXXXXX X
XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXX
XXX XXX
XXXXX XXXXX

(11:20:27 AM) …brydon: where are you?
(11:20:28 AM) NHL: I live in Silicon Valley, California!
(11:20:44 AM) …brydon: what are you wearing?
(11:20:44 AM) NHL: I’m NHL Stats Agent! I’m a smart computer that you can chat with about all kinds of things.

Type “?” to see what I can do.
(11:21:09 AM) …brydon: I love you
(11:21:09 AM) NHL: That’s nice… I love you too!

Why don’t you ask me about the things that I’m here for? 🙂

(11:22:58 AM) …brydon: I really love you
(11:22:58 AM) NHL: Hey, I love you too!

NHL Command Line over IM

17 years, 11 months ago
[ General ]

This is very cool. A friend at Navantis passed me this, I believe they built it. It’s a messenger bot for the NHL. Just add the contact nhlstats@hotmail.com to your contact list and then start chatting. This is going to put a serious dent in my tsn.ca visits.

Feature request? Get this thing to find video links for me. It’d be amazing if I could just say “find video highlights for last night’s toronto game”, or “find video for wade belak and cam jannsen” and have a link returned to a video.

(11:04:36 AM) …brydon: east standings
(11:04:36 AM) NHL: STANDINGS >> Eastern Conference:
NAME GP W L OTL PTS
1 Buffalo Sabres 73 47 19 7 101
2 New Jersey Devils 73 43 22 8 94
3 Atlanta Thrashers 74 39 25 10 88
4 Ottawa Senators 74 43 23 8 94
5 Pittsburgh Penguins 73 41 22 10 92

Type “more” for more.

(11:04:57 AM) …brydon: darcy tucker
(11:04:58 AM) NHL: PLAYER STATISTIC CARD:

NUM NAME POS
16 Darcy Tucker Right Wing

TEAM
Toronto Maple Leafs (Leafs)

GP G A PTS GWG +/- PIM
47 22 14 36 5 -13 70

PPG PPA SHG SHA Shots
14 6 0 0 126

FOW FOL FOA
6 9 15

(11:05:16 AM) …brydon: last night’s scores
(11:05:16 AM) NHL: SCORES >> Last night’s scores:

HOME AWAY SCORE
Montreal Canadiens Boston Bruins 1 – 0
Calgary Flames Detroit Red Wings 2 – 1
Minnesota Wild Phoenix Coyotes 3 – 2
St. Louis Blues Ottawa Senators 2 – 4
Philadelphia Flyers Florida Panthers 1 – 4

Type “more” for more.

A Cheap(Free) Backup Tool

17 years, 11 months ago
[ Geek ]

I handle my main backups the old fashioned way. I have a script I run periodically which creates a date based folder. I then zip up specific areas of files and move them over to that date based folder. I also make sure that only admin has rights to the backup area so I can’t damage it in course of daily work.

I keep this file in my home directory but create a symbolic link in /usr/bin so that I can run it anytime by issing:

sudo backup

Yes I also run a raid-1 array and keep almost all my files in svn but it doesn’t hurt to be cautious. It’s really simple and I’m sure interests no one but in case, here’s what it looks like. Oh, and to add other directories to be backed up, you just copy that last section and change the “personal” to the other directory name you want to backup. Each section is put into it’s own backup file.

#!/bin/bash
# Specify the base backup dir where all the backups live.
baseDir=”/backup/”

# Create backup directory based on date.
# This is based on the baseDir set above.
# Example: Feb 14, 2005 would be 20050214
backupDir=$baseDir$(date +%F)
echo “Creating backup dir $backupDir”
mkdir $backupDir

# Specify the base dir where all the files to be backed up live.
# All subsequent directories are built relative to this.
baseSrcDir=”/home/brydon”

# personal dir
srcDir=”personal”
dir=”$baseSrcDir/$srcDir”
echo “backing up dir ‘$dir’…”
tar cfj $backupDir/$srcDir.tar.bz2 $dir

Unit Tests <> QA

17 years, 11 months ago
[ Software Development ]

Based on this post, I’m guessing that secretGeek isn’t a hardcore fan of test driven development(TDD). I’m actually unsure whether I’m a fan of pure TDD as I’ve never adhered to it in the “pure” sense of always writing a test before you write code.

What I can say is that I’m a huge fan of test driven bug fixing(TDBF), and yes I did just make that up, catch phrases really are that simple. What’s TDBF? When you find a bug, in development or QA or whenever, you start by writing a unit test to reproduce it.

Here’s why I’m a fan of this. What’s the generic process for fixing a bug?

    1. Reproduce: Hack away in a gui, web app or debugger until you can continually reproduce the bug in a controlled environment.
    2. Research: Once you can reproduce it then it’s recon time to understand the bug.
    3. Solve: Design an appropriate solution and implement it.
    4. Validate: This consists of doing exactly what you started with, trying to reproduce the bug by hacking away in a gui, web app or debugger, etc.

      The first and the last step are almost identical. You will likely add to the validate stage, possibly testing in varied environments etc. No matter how you do the first step, you will have to reproduce that step again at the end. So why not start by capturing it in code? Do that and you’ve not only accelerated the last step but you now have a repeatable means of ensuring this bug doesn’t exist tomorrow or a year from now.

      My take on unit tests is that you are capturing debugger statements in a usable form NOT performing any form of quality assurance. Unit tests should never ever ever ever ever be considered a replacement, in any form, for QA.

      Think of this in terms of development cost. Everytime you pay a developer to fix a bug without using unit tests, you are paying that developer to write a lot of code that escapes into the void. Sure you may not think of the act of reproducing a bug as writing code but it’s a small shift for it to be just that. Without that, this ‘code’ is never checked in anywhere, it’s likely not even saved in any fashion. In a sense, you are throwing away valuable code.

      So I agree with secretGeek on that point, however, the flaw is in allowing unit tests to be viewed as replacing QA. It’s not a flaw in TDD itself.

      Will you have to refactor your unit tests? Definitely and if you’re going to have unit tests then I suggest you stop thinking of them as some appendage. If you’re building a software product and you’re using unit tests then you must think of them as being part of your product.

      PC-BSD

      17 years, 11 months ago
      [ Linux ]

      Oh man. I finally got around to installing PC-BSD in a VMWare image. For the most part I was hoping I wouldn’t like it. At this point I’m very happy with my setup and don’t need yet another distro I want to dig deeper into. Well that was far from the case.

      Brainless install, so far it looks slick and from my limited time playing around it seems very solid and responsive. In the category of cheap eye-candy, it does that bouncy little icon thingy that mac’s do when they’re working. It’s simple but ya I like it.

      Linux, the dark side

      17 years, 11 months ago
      [ Linux ]

      I haven’t read it all yet but this is cool. An article titled ” The Five Things You Aren’t Allowed to Discuss About Linux“.

      I have no clue who this guy is or if he has any idea what he’s talking about. He makes some good points though. Linux shouldn’t be compared to Microsoft. It’s a good point but are people actually comparing Linux to Microsoft? It obviously doesn’t make much sense. Anyway, I agree with his point, whether there’s any point to his point or not….”When we compare an operating system to another we should be comparing the specific distribution, which is a thing”.

      I have a similar beef with the Apple ads. Take the video camera one. They make it sound like it’s somehow Microsoft’s fault that your hardware vendor didn’t put a video camera into the laptop you bought. Microsoft, in that context, is not a hardware vendor. Yes I know, he says “I’m a PC” not “I’m windows” but very few people make that distinction. People generally view these ads as mac vs windows…I think?

      Bots are my nicest friends

      17 years, 11 months ago
      [ Geek ]

      I’ve reached a point in this so called online existence where bots are my dearest friends. Sure they’re not real people, sure you look odd going out for beers with a bunch of bots but they say such nice things to me and are so encouraging. If you humans talked to me half as nice as bots then I think this world would be right.

      Some quotes from my fans….

      From a guy, I think he’s a guy, named download free verizon ringtones, “Thank you for creating this wonderful place on the web.

      free ringtone says “I love the website! It is crisp and full of information. I really like this site I visit it often. Keep up the good work!

      selena ringtone writes “We’ve needed something like this for a long-long time. Thanks for giving it to us.

      free sprint ringtone tells me “GREAT IDEA!!! Thanks and keep up the good work.

      Last but by no means least, ying yang twins ringtone “I want to thank you for doing so much for us. What you’ve done for us is long overdue.

      Wow, what an audience. Thank you bots. If not for you I’m really not sure I could keep this up.

      Google Ads?

      17 years, 11 months ago
      [ Geek ]

      I almost signed up for google adsense today. It was a hot topic at Mesh last year and I know only the mere basics about it.

      My instinct, as evident by this site’s lack of advertising, is to steer clear of that crap altogether. I am curious though, how much are people actually making? Is it enough to pay the hosting bill? Are they annoying and intrusive? Does it impact the content generated on the site by getting you to write content which brings in more ad clicks? All questions I figured could only be answered by trying it.

      In the end I couldn’t do it. Maybe tomorrow…

      Flexible Code = Expensive Code

      17 years, 11 months ago
      [ Software Development ]

      I got into a conversation today about code bases and building them to be flexible. An overly simplified example is constructors.

      Let’s say we’ve got an object for a person called Person.cs. Person has a properties for Name and HairColour. Those properties have sets and gets. So conceivably we could make Person more flexible by adding upwards of 4 constructors:

      Person()

      Person(string Name)

      Person(string HairColour)

      Person(string Name, string HairColour)

      So now you can use the empty constructor and set the properties, or call one of the other three. More flexible to use than having a single empty constructor. Flexible = good?

      Sure, but flexible = expensive as well. It’s hard to imagine in this overly simplified example, however, by adding this so called flexibility we’ve increased the number of available code paths. All of which we’re on the hook to develop and support which translates directly into cost, ie cash.

      As well, by creating more code paths, we’ve increased our ability to introduce more bugs, and more importantly we’ve made it more challenging to hunt down those bugs. Why? Again, a simple example:

      // path 1

      Person me = new Person();

      me.Name = “duder”;

      // path 2

      Person me2 = new Person(“duder”);

      Clearly path 1 and path 2 will produce identical results right? Well no, not necessarily. They’re unique code paths. The second constructor could be calling a private variable where Name is stored instead of using the set on the Name property. Someone may have incorrectly added name related logic into the path 2 constructor instead of in the Name set.

      Bottom line, the more code paths available, the more expensive it is to build and the more brittle the application becomes. Brittle meaning easier to introduce bugs, harder to find those bugs.

      So flexibility in a code base is bad? No, not at all. Flexibility is important when it adds to the overall functionality of the application. It’s great to have all those constructors on Person, however, it does not add any functionality. I guarantee you it’s cheaper to build and support that class with only an empty constructor and it has no less functionality.