Changing strategies

August 28th, 2010

I’ve decided that I haven’t been using this blog as much as I would like, so I’m going to shift strategy a bit: Post more, but make them smaller. So here we go:

Two things.

  • Dropbox is awesome and supports linux (even more awesome). You should check it out.
  • Minecraft is also awesome. If you like Legos and playing in the sand at a the beach. You will almost certainly enjoy Minecraft.

AMD’s CPU Warranty RMA website SUCKS!

August 27th, 2009

It sucks so bad! I’ve spent a good two hours trying to RMA an AMD CPU (Yes, I actually had a CPU go bad I’ve never heard of a CPU going bad before. I’ve always thought that CPUs are either good or bad but they don’t go bad,  apparently I was wrong. It was only a partial failure too, which added to the weirdness)

  • Problem 1: Requires IE (firefox and chrome both don’t work, important buttons and check-boxes fail to respond), the site recommend IE 5.x-6.x
  • Problem 2: IE 6.0 doesn’t work either. There are buttons that I can see in firefox, that I can’t see in IE 6, but are referred to on the site so I know they should be there.
  • Problem 3: The site is horribly written. The overall design isn’t that bad, but the usability is terrible, if you decide you want to change something, you usually have to start almost all over again. Twice I ran into an error that change my address so that I lived in Michigan, Afghanistan.
  • Problem 4: I can’t actually submit my RMA: I finally get to the last step and slick “next” and I get: “Error, RMA request could not be submitted” with no information about what caused it or what to do next.

This is inexcusable. I’ve seen better/more functional websites written by grade schoolers!

Now I actually have to call AMD, and I’m not going to be happy.

UPDATE: While their RMA website sucks calling them wasn’t that bad. I had an RMA number in about 4 minutes. Hmmm although I should have gotten an email from them by now…

UPDATE 2: 24 hours and still no email. Called them again. Apparently email was never sent. This time the sent it and I got it in a couple minutes. Hopefully the rest of this process will be more straightforward.

BarCamp!

August 27th, 2009

So my friend John convinced me and a mutual friend of ours (Joyce a geek in training) to go to BarCamp this weekend. We had a blast!

Barcamp is free, very open ad-hoc technical conference.
Registration is free, but everyone is encouraged to present something.
Time is allocated into 30 minute blocks and you basically just pick an open time-slot/room and write in what you are wanting to present, and then nerds show up at that time to listen to you (if it sounds interesting). I did a presentation covering a brief overview of Haskell (bad slides here) and got a chance to listen to the presentations of several other fellow nerds. It was a lot of fun actually :)

One of the coolest things about BarCamp was all the awesome free stuff! (sponsored by local companies):

  • Free Tee-shirts
  • Free pizza for dinner of Friday.
  • Later Friday evening we all headed over to the Grand Rapids Brewing Company (nice place) for free beer (free beer!) and free appetizers!
  • Free breakfast Saturday morning
  • Free Subway subs for lunch

And did I mention that this was all free!

Anyway, I had a great time. Will definitly be going again next year! :D

Moved to a new host

August 6th, 2009

I haven’t posted anything in a while, but I just moved the site to a new host (a VPS actually which is sweet) so I thought I’d add something.

Wordpress’s import feature is awesome. I just have to do an export at the old site, and an import at the new one, and all my posts, images, etc… just copyied over automagically. Took me all of a minute.

Finished moving from drupal to wordpress

April 11th, 2009

I just finished moving from my old Drupal setup to Wordpress. So far I’m liking it better :)   I need to find a better theme though… or shrink some of my images….

I’ve been moving my old posts over to the new system manually (only had a dozen or so). So, even though it says so, I didn’t write the last dozen posts in two days :)

Lake Michigan in January

April 11th, 2009

Cancerous Audio Cables – WTF?

April 11th, 2009
WTF?

WTF?

California: WTF?

Or maybe I should be asking Creative Labs why their audio cables contain cancer causing substances. Either way, someone is being an idiot.

click the ‘original’ link below if you have trouble reading the label.

Richard Stallman

April 11th, 2009

Richard Stallman - XKCD

Images shamelessly taken, and GIMP’d together, from here, here, and here. The whole process was done using only free (as in speech) software.

  • Thanks Stallman.

Linux Mint 6 x64 has been Released!

April 11th, 2009

I’ve been waiting for it for over a month, but the 64 bit version of Linux Mint 6 has finally been released! I’m very excited. I’m going to test drive Mint 6 and Sabayon 4 and see which one I like better. I’m currently running Sabayon 3.5. It’s an ok system, but it has a few annoying quirks and I really like the “it just works” properties of the Ubuntu based distros. We’ll just have to see how it goes.

Why Haskell is awesome (one of the many reasons)

April 11th, 2009

Code without sophisticated error handling in a large and complex component:


– lots of code …

buildParser factor resultToExpr name parseData m = checkParseData $ execState (m >> buildLexer) parseData
where
checkParseData (newParseData@(ParserData lexer opTable literals pegTable)) = expr
where
expr = buildExpressionParser exprOpTable (foldr (<|>) (factor newParseData) literalParsers)

more code


lots more code

Code with sophisticated error handling in a large and complex component:


– lots of code …

buildParser factor resultToExpr name parseData m = checkParseData $ execStateT (m >> buildLexer) parseData
where
checkParseData (Left errorMsg) = fail errorMsg
checkParseData (Right (newParseData@(ParserData lexer opTable literals pegTable)) ) = expr
where
expr = buildExpressionParser exprOpTable (foldr (<|>) (factor newParseData) literalParsers)

more code


lots more code

Did you catch it? can you see the difference?
Now, without any additional modifications I can use ‘lift $ throwError’ anyware in ‘m’ (which is big) or ‘buildLexer’, and the error will propagate all the way down here to checkParseData, which will then drop the error right into the Parsec parser monad.
Doesn’t it just make you happy? :D