You're now viewing all of my posts relating to Programming. Enjoy!

New Kitties

This was a super busy week, so none of my personal projects got any real attention. There's new kitties up on my Caturday page, though. Enjoy them. :)


Caturday's Back!

Hooray, problem has been resolved. I can now go back to bed and sleep much better. Enjoy perusing more cats. I've got the first and latest functionality in there and working, tomorrow I'll add in display of which cat of how many you're on. :) I'm kind of worried though, my bandwidth usage for that host is already up to 60Mb and the site has barely been back up for 24hours. heh. I'll be needing to get advertising back in there soon. ;p


Caturday Oops

Oops, I made a breaking database change up on Joyent's servers right as my Internet connection crapped out and now fork is acting all the way over there. So, Caturday's down right now. :(


Labor Day Sale: Free Caturday!

Not to be confused with Draz Hands...

This was indeed a good labor day. I spent most of the day mucking about on my computer with various coding things, doing this and that. This. and. That. Oh right, I rewrote my caturday page from scratch for fun today and... what's that? Oh look... Cats.phantomdata.com is already back up for perusal. Not quite as many cats yet, they will get added automatically in short order. Enjoy!

Just like my Twitter comment says, I definitely enjoyed my day of Rails programming again. After all this ASP.NET stuff, its nice to get back to a more modern web-oriented framework with things like ORM, sane routing, database management (migrations really are sexy), out of the box sandboxing (including database) and unobtrusive semantic compliance. Did I mention just how lovely Ruby is to work with? I'm also very pleased with the new'ish RESTful routing that comes with Ruby on Rails 2.0 and got some very nice URI structure going on. Want cat 27 as a raw image? Sure, just call /cats/27.image. Want it for display? Easy, just call it with a standard GET request. RSS will be coming soon too so you can just call /cats.rss.

I'm definitely looking forward to getting to do more Rails work in short order. I've got a couple new app ideas that have been floating around, and will definitely be happy to see coming to fruition

More new kitties have been added to respond to demand..


Microsoft Sql Server Installs Suck

I just wanted to go out on a limb and point out how much Ms Sql Server installations suck. The last two days at work I've been futzing around with Ms Sql Server 2005 to get it installed on my box (just for reporting services!) and finally got it to work after a 2.5hr install run each time. Then, I go home and decide to try out the new Sql Server 2008 CTP (hey, it's interesting and Sql Management Studio is nice) only to find new issues. After downloading and installing it, I find that it installed everything but the actual server itself. Oi.

Anyway, I noticed that Sql Server 2005 Compact was installed on my server here @ home and knew that Sql Server 2005 Compact had caused my install problems at work. I'm in the process of uninstalling it, but I just needed to rant.

Thanks.


Summertime Coding: .NET or Ruby on Rails?

Now that the semester's over, I've got a decision ahead of me. I've two paths to go with my free time coding, Ruby on Rails and continuing with learning awesome new stuff that's incredibly useful and cool - or .NET and strengthening my professional coding to excel more at my current place of employment. Oh, what's a boy to do? You may have noticed that my Caturday page is down. I'm split in between redoing it in .NET or making it into a cool RESTful application through Ruby on Rails (lawl, how does .NET know REST? It doesn't.). I've now got two viable dev environments, so that's no longer limiting me... it's just a choice between personal growth and professional growth... oi.

I sat down yesterday to do some work on it in .NET, and was reminded of how much work it is to get an object saved into the database compared to Ruby on Rails. However, when I go back to work I'm impressed with how neat it is when all the groundwork is finally laid and everything works. Humungous upfront fixed cost for some neatness in the end (.NET) Vs. tiny upfront fixed cost for some neatness now (RoR).

I'm still not sure what I'll end up doing... the great Summer question.


T Minus Eight Days 'Till Total .NET

T minus eight days until I begin work for w3i and switch all of my development energies to .NET. I'm very anxious and looking forward to it. It's also going to mean some changes around the blog. Since my development work over there will be done using Microsoft's tools and ASP.NET, there's going to be a definite change in the content here. Rather than focusing on my usual Ruby and Ruby on Rails I'm going to have to shift my focus to look more at the Microsoft side of things. My recent tutorial series start on using MVC is just a taste of things to come. So, enjoy the new taste!


Listforge.net Live!

I finally got finished getting Listforge live tonight and what fun it has been. This is my fourth large Ruby on Rails project and I'm really in love with it. Development was relatively easy and straight forward while I was inching towards my goal of having a useful "want to purchase" application.

The software is still in beta and has some rough edges. Error notification is ugly, but that will be improving shortly. I need some logo work done, because I frankly don't have the time for Photoshoppery at the moment and would prefer a beautiful logo done by David. I also need to get better friending preferences, RSS feeds and avatars built in - but that's down the road.

For now, it's out there for all to enjoy and test. Do go create an account and let me know what you think!


Link Crawler Again

Whoops. I got everything fixed with the file format issues. Steve, check out the Google Code Repository for a version of the script that should actually work.


User agents from lighttpd access_log

Here's a simple way to figure out your UserAgents from a lighttpd access_log file.

cat /var/log/lighttpd/access.log | cut --delimiter="\"" -f6 | sort | uniq -c | sort -n


Lunch With David Yields a Link Crawler

I had tasty lunch with David at the China Restaurant yesterday. It was good to see an old friend that I met on the Internet ages ago. Hopefully sometime soon I'll get to see his babby.

Anyway, he mentioned that he was in need of a link crawler while at lunch yesterday. As we all know, I have trouble resisting psuedo-challenges like that... and oh look. What's this? Could it be? A garbage file? Put there by none other than Elingson's elite sysadmin... oh, what's this? Is this the secret bank account that the money was stashed in? Oh, I think it is. Man. You know, I kind of feel like God...

Oh, wait... sorry. Really and truly, it would appear as though rather than my usual night of BioShock and/or Metroid Prime: 3 I tore myself away to write some code. Well David, here's your link crawler! It's not heavily tested or terribly robust, but it runs against a handful of test sites and I think it does exactly what you described.

Update - 2007/10/02

I've published a bazaar repository for this project. You can find information and an updated version of this file at this posting.


Computing Royal Flush Probabilities in Ruby

In a surprising turn of events the other day, I actually willingly performed some math. Andy mentioned the odds (different from probability!) of getting a Royal Flush in a game of poker... well intrigued I decided to go about modeling it in Ruby. Maybe I'll try Haskell later...

cards=52
hand=5
winning_combinations=4.00

def factorial(n)
  (n==1) ? n : n*factorial(n-1)
end

combinations=factorial(cards)/( factorial(hand) \
             * factorial(cards - hand) )
p=(winning_combinations/combinations.to_f)
o=p/(1-p)

printf("Combinations: %d\n", combinations)
printf("Winning Combo: %d\n", winning_combinations)
printf("Probability: %0.07f\n", p)
printf("Odds: %0.07f OR %0.07f:%0.07f\n", o, p, (1-p) )
printf("Adjusted Odds: %d:%d\n", 1, \
      (combinations-winning_combinations)/winning_combinations )
Combinations: 2598960
Winning Combo: 4
Probability: 0.0000015
Odds: 0.0000015 OR 0.0000015:0.9999985
Adjusted Odds: 1:649739

Dr. Ernst would be proud. :)


Gallery Time!

So, you may have noticed that there's now some additional things on the sidebar to the right. That's right, I'm finally getting off my ass and organizing my photos into a browsable gallery. No more, "Where's Babbles' pic on Caturday again?".

If you're interested, I did in fact write the code that generates the gallery. Warning, it's hackish and hastily written. Then again, it works and it does what it does pretty simply. If you're actually interested in using it yourself, you can tell that there are some support files used - I can explain them if you contact me here.

Anyway, enjoy more pictures of Babbles!


Learning Java

Well, the semester's began and I need a new time-killer while on campus. This semester, rather than continuing with Ruby on Rails like have been in the past, I'm going to begin embarking down the Java path. It would appear as though Java is /still/ somehow managing to be the programming language of choice in professional-land. NetBeans looks quite interesting as well...

Wish me luck.


Rails Accounting Shots

Well here they are. I promised that I would take shots. :) Obviously this is test data, so don't judge me for sale of religious icons!