Archive for December, 2005

« Previous Entries Next Entries »

Catching up

Sunday, December 11th, 2005

The last couple of days have actually been pretty damn good! On Friday we had a big goal setting and team building event at work. Normally those kinds of things leave me wishing I could knaw off my right arm rather than attend, but this was surprisingly fun, if not slightly bland.

We all went out to lunch at the 13 coins for our goal setting, then over to Jillian’s for some pool for the rest of the afternoon. While pool is not really a game I get into it was kind of nice to take the afternoon and relax, experimenting with the Qtek 9100′s camera.

Saturday came as a blessed relief after a long week. I spent the morning cleaning and getting old computers ready for my mom’s new law practice, then in the evening Scott, Mark, Erin, Brien, and myself all went out to see Narnia and get some sushi at Wasabi Bistro.

Narnia was actually quite well done. I really enjoyed watching it and it had a few genuinely exciting moments. I had been a bit worried that the Christian backers might have made the religious side of the story a bit heavy handed but they balenced it well. I’m really hoping it does well in the box office numbers so that they end up making the rest of the series – it’s one I would want to hold marathons for at Casa Del Sparky.

Today I’m looking forward to spending much of the day relaxing. I’m at Red Line right now drinking some coffee and (obviously) catching up on blogging. This afternoon I have some dev stuff I want to play with, and a couch that needs some Sparky+Skype cuddle time!

A strange match

Friday, December 9th, 2005

Last night on the way home from the Engadget meetup Brien and I stumbled across this in a QFC. Strange bedfellows in a grocery store – die cast handcuffs and feminine care products!

Stuffy holiday affair

Thursday, December 8th, 2005

Tonight was the dreaded annual holiday party for my company. At least this year was better than years past, but good lord – I hate work events. I don’t understand why everyone seems to pressure me into coming to these things. Back at my old company my boss had to all but threaten to fire me to get me to come to the blasted things.

It’s not necessarily any one specific thing – but I don’t like events you have to dress up for, I don’t like big group events, and I don’t like things in Belltown. I guess I’m an old stick in the mud but I just don’t like it.

Am I weird that my idea of the perfect evening is going home early, taking a nice long walk with Skype, then spending the rest of the evening geeking out on the couch, content blaring and my powerbook in my lap.

After a few hours of torment I dragged Brien off. The Engadget Seattle meet-up was tonight, but somehow I didn’t seem to be in the mood for it. I was actually a little disappointed. I got a chance to meet Bre, but aside from that it seemed much of a fanboy crowd than people looking for technical discussion. From reading a few other peoples blogs it sounds like there were a few other cool people there but I just was not in the mood to stand around making small chat. We stayed less than 15 minutes then made for the door.

Now I’m home, have my TNG, my puppy, my powerbook, and am quite relaxed. At least the night was not a total loss – I managed to get a few shots I’m happy with at the work party before it got crowded:

Backlit bar

Someday perhaps I will understand the rest of the world. I’ll understand fashion, bars, and the need to continually party and be social. Until then I’ll be happy holed up in my little fortress, puppy at my side.

Unix philosophies applied to general programming

Wednesday, December 7th, 2005

Ronny has a great blog dedicated to software quality and he just made a really interesting post on the fundamental philosophies of Unix software development. These are simple principals that I think should be applied to all software projects.

Rule of Modularity: Write simple parts connected by clean interfaces.
Rule of Clarity: Clarity is better than cleverness.
Rule of Composition: Design programs to be connected with other programs.
Rule of Separation: Separate policy from mechanism; separate interfaces from engines.
Rule of Simplicity: Design for simplicity; add complexity only where you must.
Rule of Parsimony: Write a big program only when it is clear by demonstration that nothing else will do.
Rule of Transparency: Design for visibility to make inspection and debugging easier.
Rule of Robustness: Robustness is the child of transparency and simplicity.
Rule of Representation: Fold knowledge into data, so program logic can be stupid and robust.
Rule of Least Surprise: In interface design, always do the least surprising thing.
Rule of Silence: When a program has nothing surprising to say, it should say nothing.
Rule of Repair: Repair what you can — but when you must fail, fail noisily and as soon as possible.
Rule of Economy: Programmer time is expensive; conserve it in preference to machine time.
Rule of Generation: Avoid hand-hacking; write programs to write programs when you can.
Rule of Optimization: Prototype before polishing. Get it working before you optimize it.
Rule of Diversity: Distrust all claims for one true way.
Rule of Extensibility: Design for the future, because it will be here sooner than you think.

What are your thoughts? I think this is very similar to Adam Bosworth’s comments on how Google has been able to make such an extensible and scalable high-performance system. I’m going to spend some time pondering how to apply these principles to more than software development, and rather to life in general.

Prime number detector: sieve method

Wednesday, December 7th, 2005

As promised I have implemented an Eratosthenes Sieve algorithm for prime number detection. This method differs from the brute force method in that rather than detecting if a given number is prime, it detects all primes up to n. Basically you step through an array removing all multiples of known primes starting from the bottom up. If a number has not been removed from the array it must be prime.

$step = 2; //initialize our counter
while ($step <= $totest):
if ($sieve[$step] == true) {
//if this number is prime then
for ($multiples = ($step * 2); $multiples <= $totest; $multiples = $multiples + $step){
$sieve[$multiples] =
false; //set all multiples of $step to non-prime
}
}
$step++;
//increment $step and begin again
endwhile;

I added a simple bit of code to let the viewer select if they want to see the prime numbers alone, or highlighted amongst the entire array of numbers. I’m playing around with the ability to make the list of numbers wrap at the square root of n but that’s a little dodgy at the moment.

This is getting easier and easier. Next I’m going to tackle databases and start doing some MySQL work. I have a lot of plans and ideas for customizing SugarCRM but that will require me being back in the swing of things with RDBMS technology.

Prime number detector: brute force method

Tuesday, December 6th, 2005

Tonight I continued my development efforts and implemented a simple brute force algorithm that detects if a given number is prime. You can see it in action or check out the code I used:

$max = (int)(sqrt($totest) + 1); //set the max value to test
$isprime = true; //initialize the $isprime variable
for ($i = 2; $i <= $max; $i++) { //for loop from 2 to $max
//Determine if $totest is divisible by $i
if (fmod($totest, $i) == 0) { //is there a remainder?
$isprime = false; //the number is not prime
$i = $max; //exit the loop
}
}

Neat huh? Not too complicated but fun to do. Next I’m going to implement a sieve algorithm to determine if a series of numbers is prime or not.

SugarCRM

Tuesday, December 6th, 2005

I was just informed of a nifty open source CRM solution called SugarCRM. The consulting company I work for will be implementing it and possibly building a practice around doing custom implementations for other companies. I’m quite pleased to see more proof that Microsoft was wrong about open source software not being a good business model.

SugarCRM has made quite a bit of money for themselves doing custom implementations and selling support for their software solution, while giving not only the application, but it’s source away. They benefit by having a legion of free developers who will fix their bugs, and extend their functionality. They have a great development site called SugarForge which is worth checking out.

Because SugarCRM is all made with PHP and MySQL I installed a copy into my MAMP development environment and have been playing with it tonight. It’s quite customizable and because it’s open source it’s easy to add functionality should their base package not exist. Better yet there is a good chance someone else has provided that functionality already so dig in!

I’m hoping that this might be yet another avenue out of recruitment for me. If I get good enough with PHP and learn enough about SugarCRM then I might be able to transition over to a PM/Dev role if my company starts to focus on open source consulting.

Fun with multidimensional arrays

Monday, December 5th, 2005

So my experiments with PHP have been going well. I have been slowly getting back into the programming thing. Tonight I sat down and tackled arrays, and specifically multidimensional arrays. My result was a nifty little script to generate a multiplication table. If anyone is interested in the source code leave a comment on this post.

It’s pretty simple I know, but it’s a start. Next thing I’m going to tackle (another night when it’s not past my bedtime) is going to be two prime number generators based on both the sieve and brute force methods. As a child when I was learning programming the first time I had a fascination with prime numbers and they always are fun to play with when learning how to implement algorithms in a given language.

Hopefully I’ll be comfortable enough with all this by this weekend to start working on databases again. I have an idea for an application that mixes a blog and a wiki with a focus on tracking information for a recruitment shop. It would be of significant use not only to myself, but hopefully to other techno-geek recruiters out there.

Wikipedia drama + thoughts

Monday, December 5th, 2005

Wikipedia founder Jimmy Wales has announced that due to problems with spam and bogus content creation the Wikipedia will be restricting the creation of new articles to registered members. Not that this will change much – it’s still free and easy to register, but still not necessarily a welcome change.

That coupled with a recent flame war resulting from the internet famous podcaster Adam Curry editing articles to minimize others involvement in the current new-media podcast revolution has left the Wikipedia to face the brunt of a wave of bad media.

I think it’s sad that everyone is taking such a negative view of the Wikipedia suddenly. Wikipedia is a great resource, and although it should not be considered the authoritative source for serious research (yet) it is a great source of information and as more and more authors/editors participate it’s becoming a great bastion of collective human knowledge.

It will be interesting to see how wikis grow over the next 10 years or so. It’s a very new concept that I think has some incredible potential. How else can such a disparate group of (potentially anonymous) authors come together and be able to create a melding of intellect and knowledge. I hope that in years to come both the enterprise market and groups of people with like minded interests continue to use wikis as methods of sharing information with each other and the world in general.

Go on – if you have a passion start a wiki about it. MediaWiki and other free, open source platforms are available for the general public to easily set up, use , and share their wealth of knowledge with the world – or just keep it handy and organized.

« Previous Entries Next Entries »