Posted by Chris Shorrock
Tue, 29 Aug 2006 23:05:00 GMT
So work has REALLY been s l o o w i n g down lately. I'm not a salesman and never have been so finding my own work is often difficult. I feel I'm very skilled at what I do yet establishing yourself on the global market is something that isn't easily accomplished. I'm now debating going back to an office job but find the whole prospect of doing so somewhat demoralizing.
My current work arrangement is quite good, I work from home in my nice little office in a nice quiet neighborhood in a nice quiet town. I'm able to focus and get heaps of work done since there's nearly no interruptions and I'm very self motivated. I can wake up at 7, work for 10 hours and still be home by 5. I can BBQ for lunch, and if I need to, workout during my lunch break. All in all, I really have nothing to complain about.
On the flip side, my nice quiet home has a mortgage attached to it, as well as a wife and daughter living inside of it who, for some reason, demand food now and then. So due to the downswing of work it may be time to head back to a real office as baby and mom aren't so happy when the bills don't get paid.
But why is going back to an office job so bad? Well, I suppose I just appreciate a good thing and throwing that behind you can be difficult. My nice little neighborhood is about an hour and a half commute to downtown where I'm sure I would end up working. That means 3 hours each day commuting minimum, and that's if I drive, which I probably wouldn't, so public transit would be getting a new customer.
Also I need to consider what I want to do. Do I go with Java or Ruby? Java is a great language which I enjoy (and even named my dog after... yes I'm that much of a dork) but getting stuck in a web shop that does glorified business card sites gets tedious quick, so I would almost need to find something with a level of complexity to challenge myself in order to remain sane. On the other hand, I've really enjoyed Rails work as of late, the ability to turn stuff out quickly makes even normal web development enjoyable due to the high ratio of work to show; that is, the amount of hours put in results in more done that typical development environments.
This entry has turned into a rant with no real focus or direction but It had been a while since I posted anything so I thought I'd just throw up what was on my mind. I'm still not sure what's going to happen in the near future but hopefully it turns out for the best. I still have some time until I need to make a decision so hopefully I can find the light at the end of the tunnel I've just entered.
Posted in Programming, General | Tags contracting, java, rails, ruby, work | 1 comment | 1 trackback
Posted by Chris Shorrock
Wed, 09 Aug 2006 19:50:00 GMT
Now I’m not here to name names, or call people out on their bad designs, but there is something very scary about how credit card processing works. As someone who has had to implement credit card processing using a variety of different processors for a variety of different companies I’m always amazed by the amateur status of almost (as their are a few rare exceptions) all credit card APIs.
For those of you who are wondering what the problem is, let me enlighten you, these APIs seem to have been designed by monkeys. It’s my belief that these companies have employed the infinite monkey theorem to get things done. I can’t speak to what happens after you send you’re information to these companies as the process is (as it should be) a black box, but if the client interface is any example you should be afraid, very very afraid.
Now considering that my monkey theorem presented above is correct, I have to applaud the monkeys for at least getting the documentation correct some monkey needs to be spanked for the awful documentation that is presented to developers of almost every system. Let’s take a peek at an the XML structure for an unnamed payment processor.
<auth>
<order>
<orderDescription>order12312323</orderDescription>
<customerPaymentPageText>M123456789</customerPaymentPageText>
<currencyText>USD</currencyText>
<amount>100.00</amount>
</order>
<card>
<cardHolderName>Steve Smith</cardHolderName>
<cardNo>8005787962</cardNo>
<securityCode>123456789</securityCode>
<cardTypeText>BLAH</cardTypeText>
<ipaddress>192.168.1.1</ipaddress>
</card>
<option>
<useroption>100000000000000000000000000000</useroption>
</option>
</auth>
Looks good? Sure it looks ok, until you start looking at the description for each of these fields:
cardNo: you would expect this to the card number of the card. However, the monkeys thought differently, this is actually a 1-800 number. Yes, that’s right, a phone number is stored in the cardNo field.
useroption: What’s this happy little fella? Most processors give you some level of customizability, this is this processors attempt at this. The problem lies in that if you omit this field or if it does not equal 100000000000000000000000000000 you will get an error which reads Request Timed Out from Processor - Connect switch. So there’s a field that is required that is meant to provide customizability, yet can only contain 1 value or else you get an error that reads like it was a configuration problem? Yes - thank you monkey, thank you for the for the 4 hour headache this caused as I worked out the problem with your technical support monkey who I’m sure was reading answers out of a book.
Does it work? Yes, eventually, after costing more development money than it should.
Is it scary? YES^2.
Why is it what should be an uber-professional API is almost always is a gong show? Marketing - because these processors have a nice looking website, with flashy buzzwords, the powers that be, WOW’d by the shiny objects, will always go with the service thats has the most shine. What they neglect to realize is that the company has thrown the monkeys in the back room while they smear their poo on the wall. Not so shiny in that room…
Posted in Programming | Tags cards, credit, java, monkeys, programming | 23 comments | 2 trackbacks
Posted by Chris Shorrock
Wed, 09 Aug 2006 13:51:00 GMT
I had said for some time that I would never do THIS. I would never jump on this whole blog thing as my interests don’t often mesh with the rest of the worlds. But here I am, writing about how I never intended to write.
Why did I start? Peer pressure, plain and simple. My wife was harassing me to, friends said I would be good at it - so here I am - giving into peer pressure - like a girl on a prom date.
A brief introduction is in order, I’m a programmer living out of Vancouver Canada, with a wife of 5 years and a screaming little thing that is hurting my head daughter. Currently working as a pseudo-freelance programmer specializing in all things Java while I enjoy dabbling in Ruby and other things in my spare time. I’m also play more video games than I should and enjoy rolling around and trying to submit other men Brazilian Jiu Jitsu, and mixed martial arts. People often think I’m grumpy but I’m really just shy, which is good cause I’m not often in the mood to talk…. Maybe I ought to re-evaluate that statement.
As I said, my interest are diverse but if there are any programming fathers who like to play games and get in the occasional fight, I suppose you’re my demographic.
I’m an awful speller, so if you feel the need to point it out, I’ll ignore you take very careful note of it. I also need a better title for this whole blog, so any suggestions are appreciated.
Posted in General | Tags arts, bjj, daughter, java, martial, myspace, programming, rails, ruby, wife | 6 comments | 25 trackbacks