Thursday, December 27, 2007

Oh The Cards

My four day weekend for Christmas went well this year. While most of it was spent running to family/social events, I did spend a lot of quality time sorting cards and making decks. Also bought a whole slew of cards for Bob and I last night. While I already thought of one thing I forgot to put on my list, this purchase will lead to yet more decks, which is happy.

My cards are almost entirely sorted at this point. I think I have about 400 more creatures to go through, which I will finish tonight. It already feels nice to be able to look in an exact spot to see if I have a card. I can still go through them by hand for ideas, but all of my deck building is done by computer searches anyway, so being able to locate cards quickly is really handy.

Tomorrow is another pay day, and this is the one devoted to clearing out the balance on my Chase card before the 0% interest period ends, so not much excitement to be had. I did get to revise my monthly savings goals upwards though, due to the increased saving I can do with my 0% until 2009 Citi card.

Of course, I might have to revise them back down again if I do splurge on that video card and monitor. I am thinking right now that I'll hold off for a bit until they come down in price. It's not like I am dying for a second monitor at home, since I have two at work, where I spend more of my time. I think I would like to achieve that eventually though. Maybe after I get down to Texas this summer.

Friday, December 21, 2007

ruby ftw

So today I got paid (at my Java job) to write Ruby. It was quite productive. Made massive improvements to my code generating stuff with Allan today. Solved numerous issues it was having and we nailed down several other bugs in the Java portion of the app dealing with date handling.

I probably should have written this thing in Java, since this place is supposedly a Java shop, and whoever gets the file after me might not know Ruby enough to be able to change it. Then again, Ruby is downright easy to understand and I kept the idioms simple. Actually, thats a lie now that I think about it. I do some things like using here documents, C style inline conditionals, parallel assignments, block passing, and map function abuse, but it's almost hard to write in Ruby without taking advantage of such sugar.

At least I resisted the desire to write a macro for this one thing that kept repeating. Figured no reason to get too crazy.

Tonight is dedicated to Lisping, as Tyler is coming over tomorrow to work on stuff. Hopefully tomorrow will be a likewise productive day.

Thursday, December 20, 2007

The Best Programmer in the World

Read this rather insightful post from the ancient past (circa 2004) amusingly titled Why I'm The Best Programmer In The World by Jeff Atwood. It really spoke volumes about something I have been trying to put my finger on about my profession... and really his whole blog is really really insightful.

Not sure why I really post it here, as the 1.5 to 2 readers I have probably don't give a crap about programming, but I promise there is no code in that link, just good insight into the people that do it.

Today was a burn out day. Hopefully tomorrow will be better.

Wednesday, December 19, 2007

Java's Worst Enemy

Just read this awesome post by Steve Yegge about code bloat. Be warned: his post is really really long. (But worth the time.)

It ends up turning into an anti-Java rant, but I am fine with that. I remember when Tyler and I wrote Satupoly in Java during EECS 448 and at the time it just seemed like the best programming language ever. It had a ton of libraries to do what we wanted, and was really well documented. The tools for it were all free.

I can't argue with the plethora of libraries, but looking back now, I am kind of ashamed to have liked it so much. I think the reason it worked so well for us is because we hadn't tasted the dynamic language syntactically-sugared kool-aid yet... and because we didn't bother to follow any design patterns (other than good old MVC).

It could also be that Java has just changed a lot over the years. This was 2003 after all. I look at the code in front of me at work, and just see miles of bloat. I have been spoiled by Ruby's method_missing, thanks to which I haven't had to write out a billion getters and setters in a long time. I'm really spoiled by dynamic typing, which just seems so much more flexible and less whiny to me than static typing is. Add to that my love of passing around anonymous functions as data (thanks a lot Scheme and Javascript!) and closures, and Java is really becoming tiresome.

It's just strange now, to view with such derision something I loved so much back then. It's not just the code for this project either. I have tried to refactor it and DRY it up, but it's just really hard to get much out of it. You have to have getters and setters. You have to have big constructors. You have to have silly Hibernate xml files and implement all the CRUD in a frenzy of copy and pasted methods. Just trying to push standardized CRUD down into an abstract base class was a nightmare. Where is my macro to build these methods and add them to the object on the fly? All this explicit casting is going to break my brain. Why do I have to use objects just to hold enumerable options to pass to yet other objects? It doesn't feel like coding anymore, it feels like trying to make a movie by assembling a puzzle for each frame on the reel.

I don't think any language is really objectively better than another, let alone that one of them is the best. I do, however, think that, subjectively, Java is really excruciating... for me.

Oh, and I failed last night on doing something not-behind-the-scenes. I did however hack together a really neat HAML plugin that I hope to show off once I add some more features. It literally made my night when it worked.

Tuesday, December 18, 2007

Endless Coding

Yeah, I program a lot.

Today I had some fun in Javascript, generated Java with Ruby, and refactored Java code itself. I must say, I have always enjoyed programming in general, but this daily mishmash of several languages is the greatest mental workout in the world. It's not necessarily hard so much... it's just very mentally stimulating.

Tonight I get to go home and work more with Ruby and Javascript. Not entirely sure which feature I will choose to tackle on my list, but I'd like it to be something that isn't entirely behind-the-scenes for once. Last night's feature of choice was a Firefox search plugin, which is only semi-behind-the-scenes.

I have been moderately annoyed by haml too. It's really hard to write a decent block of javascript inside a haml template because it keeps wanting to interpret it (or the indentation). I have an idea though, which I am going to try tonight. I'll have to get back to you on whether it works. I really hope it does, as it would massively clean up my code. (Very massively. Yes, very.)

Anyway, it's about time to get out of here.

Thursday, December 13, 2007

Limitless Potential

I must say, the fan remixes (called Limitless Potential) of Year Zero might be even better than Y34RZ3R0R3M1X3D (the official remixes). I'm particularly in love with Capital G (Streetlab Mix).

Tomorrow is payday, and this payday is even better than most, because it all goes into savings. That means I am now only $9000 short of my goal. Unfortunately, this is the last time I'll get to save anything for about a month, as the next paycheck is dedicated to rent and my Chase card. Oh well, I should just barely make my end of the year goal.

Speaking of paychecks, I did a dangerous thing the other day. While I definitely plan on having a summer vacation this year, I figured up that if I had a least a token job next fall (couple days a week at Borders ftw), I could stretch my underemployed-become-the-best-programmer-ever period for well over a year and a half. At that point, I hope to either have hit a home run with one of my projects, or be back in grad school charging into that PhD mire. Either way, that means this might be my last cubicle job for a long time.

I could definitely live with that.

Wednesday, December 12, 2007

Ice Storm

So the supposedly world-ending ice storm didn't really pan out. It basically got just icy enough to make the trees look cool and the sidewalk slippery. I'm kind of disappointed. Who doesn't like a couple days of simulated apocalypse?

Man I miss my coke. On the other hand, Ceylon Tea is the win.

So I have been utterly worthless these last three days or so. Haven't really done anything, productive or not. Last night I came home and fell asleep at 8. The night before I wasted on a few games of dota and who knows what else. Sunday I just didn't feel like doing anything. Thankfully I woke up at 2pm that day, so there wasn't too much time to waste doing nothing. In my defense, the reason I woke up at 2 was because I stayed up until 9am working on Lorebroker.

Hopefully tonight I'll feel a little more useful.

Tuesday, December 11, 2007

Quote

For some reason this quote really struck me. Maybe it won't have the same effect for you out of context, but I think it's insightful.

"[A]ll human systems are gamed, for reasons rooted deeply in psychology, and great skill is displayed in the gaming because game theory has so much potential. That's what's wrong with the workman's comp system in California. Gaming has been raised to an art form. In the course of gaming the system, people learn to be crooked. Is this good for civilization? Is it good for economic performance? Hell no. The people who design easily–gameable systems belong in the lowest circle of hell." - Charlie Munger
Wonder how he feels about politicians?

Thursday, December 06, 2007

Nieve!

(That means 'Snow!')

So I knew that we would have some crappy weather this weekend, but I definitely didn't expect Mother Nature to lead off with snow. While I generally hate all cold weather (anything below 80 is cold), I couldn't help but enjoy the snow while walking to lunch. But I think that was mostly because the whole visual experience meshed really well with disc 2 of And All That Could Have Been.

I tried to get to sleep at a decent time last night, because I was supposed to have a meeting this morning at 9am and I wanted to actually get here on time. Unfortunately I couldn't actually sleep and ended up working on Lorebroker again until 1am. I didn't accomplish anything in the way of new features, but I got the three Urza sets loaded into the database. The apostrophe in their names had led to failure in the past, only I had never noticed.

I also wrote a script to normalize the card types into three separate fields (supertype, type, and subtype). While I got that done, I didn't get anything changed to take advantage of them, so didn't bother uploading it. In the process I learned that disabling ferret index updating when doing mass db manipulation like that can cut update time by a factor of 10. (Enough so that it's worth disabling and just doing a complete index rebuild.)

Between work and Lorebroker I am programming about 16 hours a day. Granted, it's not like I am furiously churning out code that whole time (a surprisingly large part of my day is spent staring at a legal pad and thinking out my next move), but I am definitely in a chair the whole time. It's amazing how my legs feel tired after sitting so much. I definitely can't wait till spring semester so I can go work out at the Rec Center after work. Now that the project with Tyler is starting up, I'll be working on three big things and writing in seven different languages (if you count html, css, and sql as 'languages' ... which might be a bit of a stretch).

Oh well. After spending several years being a worthless bum, it's nice to exercise the mind a bit again.

Wednesday, December 05, 2007

Strange Night

Last night was strange, but generally good.

I got home and sorted my green creatures. (Yeah, I still haven't finished the sorting. All those new cards I bought distracted me.) Then watched a bit of TV. Then started working on some ideas I had for the jQuery UI Dialog library I am using. After submitting two patches to them, it was 12:30 and time for bed.

The strange part was how incredibly awake I was. It took me quite a while to fall asleep (probably 20 mins, versus the normal instant-I-hit-the-pillow), and I woke up probably every 30 mins all night. And not just that quasi-alert-then-back-asleep type of waking... I'm talking full awareness.

Most of it was probably the wind, which was blowing at a steady 35mph and gusting to 50mph all night. Our bedroom is on the northwest corner of the apartment, which is exactly the direction from which the wind was blowing. It was loud and the lid on the bathroom fan exhaust kept clanging. At about 4:30am it got so loud that I went to check the weather, just in case we had some kind of freak unheard-of December tornado.

Of course, being so awake at 4:30am led to me working on Lorebroker a bit more, but I managed to pull away after only 40 mins. The rest of the night (all three hours of it) was equally wakeful.

The really weird part is how rested I feel. I haven't had coffee in two days and I just feel very alert. It's kind of nice.

Tuesday, December 04, 2007

jQuery is fun

So I spent a deliciously nerdy weekend working with jQuery and the new jRails plugin that transparently inserts it in place of Prototype/Scriptaculous. The framework itself is much smaller (by about half), and it is a dream to write in, since the syntax is downright simple. It actually kind of reminds me of my original love of Scheme. I just have a thing for simple (yet flexible and powerful) syntax. It looks nice, and just Feels Right™.

The UI elements show particular promise, but seem to have a ways to go. For one, the release versions are way behind the latest development versions, and the dev versions are definitely what the demos on the jQuery UI site uses. This is only really a problem because the dev versions aren't packaged for you, so you have to run around grabbing files if you want to use them. There is also enough difference between the release and dev versions that the docs (which are up with dev versions) are often unhelpful if you are trying to use the release code.

Whew. So basically I learned to just go find the bleeding edge stuff, and ignore the 1.0 code.

There also seem to be a lot of IE related issues. When I tried to open Lorebroker using IE7, I got some strange Operation Aborted error, with basically no graceful failure from which I can debug. It literally acts like the website is down or something. Not entirely sure how to tackle that, short of just giving IE the finger and ignoring it for now. Why can't Microsoft make anything work?

In work related news, I was thinking about the overall goal of this project we are working on, and it seems like we'd save an awful lot of time just using Rails for it. They made it pretty clear to me that they are a Java shop though, so not much hope for that. However, today as I was pondering, I remembered our early efforts to make a page builder at my last job. This project would be much simpler to do, and there is no need to get fancy and make a meta-circular editor, so I think I might work on writing a bit of code generation stuff to automate a lot of what I am doing. Any reduction of copy and paste would be swell.

That has been an ongoing process all week (reduction of copy and paste). I have always been against anything that felt kludgy, and copying and pasting code so you can change class names and database columns seems kludgy to the max. I've already abstracted a bunch of the DAO operations and shortened a few other files, but when it comes to the xsl files, they really need to be generated. Thankfully, they are fairly simple, so I have lots of hope for easy success.

I tell you what... I really miss macros right now. Darn Java.

Wednesday, November 28, 2007

Domain Names

So I randomly noticed yesterday that andrewfarmer.name was open, and heck, it's only $10/year. So now this blog is hosted under that. If I someday outgrow the blog, or want to host a real live website again, I'll have it for that too. It'll also be handy for hosting things like my resume, which I have thus far had to host on Lorebroker.

One thing that annoys me is how the domain forwarding works with Blogspot. They tell me to make a CNAME record to ghs.google.com, but don't give me an IP to use for the A record (which requires an IP, not another name). I did a ping of ghs.google.com and was using that IP for a bit, but a later ping give me a different IP, meaning that is some load balancing cluster. I don't want to hard code some IP in my DNS records that belongs to a server that could go up and down depending on demand. For now I had to use the decidedly unsatisfying solution of putting a meta refresh on the free hosting that came with the domain.

If they really wanted to make this feature shine, they'd give us an IP to point our A records at, and let us use multiple CNAMEs, instead of just one. That way I could set up wildcards and such.

Anyway, after getting this blog set up, I decided on a whim to add a Lorebroker development blog at blog.lorebroker.com. Not entirely needed at the moment, since I have no one to blog to, but hopefully useful someday for announcing features and just generally conversing with harry.

Tuesday, November 27, 2007

And Death to Facebook

Read an excellent article today that rather well articulates the feeling I have been getting lately about Facebook. Sadly, now that I think about it, I think Shana made this same argument some time ago, when she was 'cleaning up' her online presence. To save you reading the whole article, here is the snippet that really illustrates the point (with a +5 Burning Man reference!):

Here's one of Boyd's examples, a true story: a young woman, an elementary school teacher, joins Friendster after some of her Burning Man buddies send her an invite. All is well until her students sign up and notice that all the friends in her profile are sunburnt, drug-addled techno-pagans whose own profiles are adorned with digital photos of their painted genitals flapping over the Playa. The teacher inveigles her friends to clean up their profiles, and all is well again until her boss, the school principal, signs up to the service and demands to be added to her friends list. The fact that she doesn't like her boss doesn't really matter: in the social world of Friendster and its progeny, it's perfectly valid to demand to be "friended" in an explicit fashion that most of us left behind in the fourth grade. Now that her boss is on her friends list, our teacher-friend's buddies naturally assume that she is one of the tribe and begin to send her lascivious Friendster-grams, inviting her to all sorts of dirty funtimes.
I think it just comes down to the fact that we don't diagram and distribute a list of our friends in real life for this very reason. There are some people you don't bring home to mom, and there are some activities that you don't talk about with your boss. Facebook and it's ilk do exactly that if your mom, boss, and drunk friends all happen to be your Facebook friends too. It's not like I am ashamed of anyone, and I think most people are pretty realistic in not judging you by such things, but the problem arises when someone uses Facebook to look up information about you for something important, as some colleges and employers have been doing before accepting students and hiring. Why have a bad image out there?

Now the question is, do I have the guts to pull the trigger on my account? It does have it's useful features, like keeping in touch with my professors in Spain, and looking up phone numbers and email addresses. None of my friends are remotely questionable as far as I know, and I have already cleaned up my profile quite a bit. How much value does Facebook really provide?

If only we could get rid of those damn applications. If I get one more notification I'm going to go berserk.

Monday, November 26, 2007

Death to Turkey

Just for the record, "three thanksgiving dinners" is both a blessing and a curse. Yay to excellent food and people... boo to two days of turkey and stomach aches.

Absolutely no card sorting happened this weekend. I did however log about 18 hours on the magic site, which is tentatively online (in a very very alpha state) at Lorebroker.com. You can't really do much yet, but just getting it up in any form involved a lot of setup and deployment overhead, which doesn't really reflect in the site itself, but required a lot of time. Thankfully all that effort will make future deployments that much faster and more automated.

I learned quite a bit about Capistrano recipe writing, which is pretty neat. I had to rearrange my subversion repo to optimize that some, and got my cap setup all organized. Also took me about four hours to figure out how to automate the building and proper deployment of the bcrypt-ruby library, but it works like a charm now. Encrypted passwords for the win.

I have quite the to-do list just from talking to harry about it this morning. Makes me wish I was at home so I could work on it. Don't really want to risk mixing it in with my day job though.

I really do get more done when I am tag teaming something with someone else than I do on my own. It's just so much easier to get started when I have someone to which I am responsible in some way. Maybe that is the fundamental flaw in a day job in cubicle-land... it's too easy to be ignored and left to one's own devices. That, and my personal gain from a job well done is basically limited to keeping my job. It's not even the potential money gain that drives the personal projects to be interesting. It's creating something useful and cool.

Wednesday, November 21, 2007

More Conquests

In an effort to continue my recent habit of spending money, last night I won some more ebay auctions. This brings my current winnings to include four of each of these:

  • Broodstar
  • Cloudstone Curio
  • Dark Depths
  • Dread
  • Engineered Plague
  • Exhume
  • Grave Pact
  • Magus of the Jar
  • Shaman en-Kor
  • Tinker
  • Vulturous Zombie
On a side note, I love how ebay makes me feel like a winner each time I win an auction. It's like I won some contest or something. I mean, I guess I have, since it is an auction, but they make it sound so cheesy. I guess that is how you get people to overbid. If they get lost in the idea of "beating the other bidders" then they lose sight of what they really came to do, which was to get something they need at a decent price. I'm happy to say that I have easily saved over 50% so far from what I would have paid in a traditional online card store.

I also managed to get my Black and Blue Creatures sorted last night. It is really surprising to me how many duplicates I have of some commons. For instance, I must have about 35 Orzhov Euthanists. Yet another reason to get the magic site going, just to get those up for sale. It feels good to have half my creatures sorted though. I have a few hours between work and dinner with Bob and Jessie that I hope to spend on the other half. Then on to the last box... Instants!

Tuesday, November 20, 2007

I hate clever titles

I almost put some stupid pseudo-witty title on this entry, and then remembered that I downgrade people in my mental intelligence hierarchy (oh yes, I maintain one of those) for that kind of crap.

Quoting yourself seriously, using 'lol' to end a sentence, and claiming your life is hard! no one understands me! will also get you downgraded. Thankfully, by avoiding MySpace, I can generally avoid these symptoms of Eternal September. (As if you were smart/unique enough to be incomprehensible!)

Yeah, today I'm feeling cynical.

I got a lot of mental clutter cleaned up last night. Laundry and other chores got done, bills got paid, groceries got bought, etc. I also got some more magic cards bought on ebay. I will now have real Tinkers with which to cheatily whip out Memnarch!

I also started maintaining a To-do list on my Google home page. Tonight's chores involve sorting Magic cards (which I mostly avoided this weekend), and a couple more ebay auctions.

Oh man, lunch soon!

Well over 300 cards on the way to me now. For once I'll get something good in the mail. Man I can't wait for this long weekend to come. I will partake in so much nerdiness! Lisp/Erlang/Ruby ftw...

Monday, November 19, 2007

Xmas List

You know, it was nice being a kid for the sole reason that I always had things to put on my Christmas List. Now it feels like a struggle to think of anything I want (that can easily be purchased by family or friends). I mean, sure, there are things I want (financial freedom, my own business, a Ph.D.) ... but those things are hard to pick up at the local Wal-Mart or Best Buy.

Really what I would like to ask for is just money. The problem is that no one wants to give money, and I feel bad asking for it. Money just seems so un-magical; nothing like opening a shiny box on Christmas morning. Money would be more efficient though, since I could pool all my gift money to buy something big that I would actually use (or at least something big).

It would be nice to have this and this, but that is seriously $1000 worth of electronics. I don't have enough family and friends to even approach that in gift money, and I really should focus on saving up rather than buying more stuff. Sure, it would be useful for the programming to have two monitors, but is it really $1000 useful?

Toys aside, money would be really handy towards helping hit my goal of saving up six months' expenses by the end of the year, which I think I'm going to miss by a couple hundred dollars. I'd probably get way more satisfaction out of hitting that milestone on time than I would opening presents. Does that make me old and thrifty?

Maybe if I framed it as a charity donation. Donate money instead of material goods to the Get-Drew-Out-Of-A-Cube Fund. Any fundraiser needs a good countdown to a goal. Currently I'm $10,345.89 short of my goal. Wanna contribute?

Thursday, November 15, 2007

An Offer

This week I have been struck with an overwhelming urge to accomplish a lot of things.

The Magic cards are all sorted by type and color, and the Sorceries are even alphabetical now. I just need to alphabetize the other four boxes and I will finally be done sorting cards. This is easier said than done however, as one of those boxes is my Creatures, which represent over half my cards. I'd really like to get it done before the weekend, but there is only so much sorting I can take.

The sudden rush to sort is mostly to blame on a recent spate of deck building, which has resulted in seven decks that I can't find/don't have cards for. I need to get sorting done to determine which cards I am missing, so I can order them as soon as humanly possible. I want to put the decks together now, and waiting for cards to ship is going to be an amusingly nerdy form of torture.

I'd also like to finish reading the Ender Series (Xenocide and Children of the Mind) before the first two books get stale in my mind. Unfortunately with everything else going on, I am finding it hard to get a good block of free time for reading. My time situation will probably only get worse as we tumble into the holiday season. Maybe I should just unilaterally declare a certain day of the week to be The-Drew-Walks-Alone Day, where I can pursue my nerdy activities without the distraction of social/work engagement. I am already pretty isolated on weeknights though, so sacrificing a weekend day to that would probably result in mass friend mutiny.

Even disregarding birthdays and holidays, my free time is about to get cut even shorter, as Tyler called with an interesting offer yesterday. I am very excited about it. I have no idea what the protocol is on talking about these things, so I'll defer for now, but I am definitely looking forward to meeting with him and Scott on Sunday.

Next week is a short one due to Turkey Day, which is always kind of nice. While Thursday will be completely packed with events, I'm not one to shop so Friday will be a real day off. Surely I can get those books read then.

Then there are the various computer related projects I'd like to accomplish. The magic site got put on hold when I started sorting and reading so much about two weeks ago. Then there is Erlang and Lisp, both on my list of things I really want to learn, have books with which to learn, but are low enough on the todo list that I haven't learned yet.

You know, I was getting way more done when I slept biphasically for a couple weeks there. Maybe I should just go back to that. I really need to find a decent countdown alarm to make that work better, rather than the wake-up-at-this-time alarm I (and most people) have. The key is to sleep for a single sleep cycle, not to wake up at any given time. Too bad real life didn't work like that.

Wednesday, November 07, 2007

NetJ

So I am about to finish day 3 of the new job... and all I can say is that it rocks. I get to wear normal (jeans, tshirt, hoodie) clothes, I have dual 19 inch LCDs hooked to a dual Xeon 3Ghz box with a rather unnecessary raid 0 array running Ubuntu, and my coworkers rock. Add to that my proximity to home, hour long lunch break, and something totally different to work on, and I'm in heaven.

Still in a cubicle... but at least it has six foot walls instead of the normal five foot ones. Also way less foot traffic, as I'm officially located on Dark Alley (yes, the cubicle rows have street names).

I think the big thing is that everyone here is just generally glad to work here and happy to be here. I also find myself looking forward to the day's tasks, rather than dreading work. I'm sure some of this is honeymoon period... but hopefully it will continue through the whole six months. I figure at least there is no way I can get bored in six months anyway.

The project itself is updating this old dos app to run as a web app in a browser. The app itself is pretty basic, but there is a lot of data to bring into hibernate and provide CRUD for. As far as I can tell, there seems to be a lot of DRY-Violation so far, so I have hopes of making a decent impact on that front. This project is budgeted for like a man-year or more, and if there is really as much opportunity for automation as I think, we might be able to cut that in half.

Anyway, I have been re-engaged by the Ender series at home. Last night I was up until 4 reading Speaker for the Dead. I have read Ender's Game about a dozen times now, but I only read the other three once or twice each, as I never was a big fan of them. Now that I'm not 12 though, I am really getting into Speaker. I can't believe I didn't like it before. It has been gripping, as evidenced by missing my bedtime by about 6 hours last night.

Goal for tonight is to finish Speaker and get to bed early. Bonus points if I have time to sort my Instants. Magic Glee!

Thursday, October 25, 2007

Magical

I have been obsessed with all things Magic all week. Read the Time Spiral trilogy, been working on sorting cards, and quite a bit of time on the site. Hopefully soon getting to the point where I can go public with something. I also made three new decks.

In sorting my cards I realized that I don't really have anywhere to put them, so this weekend I hope to cook up some nice storage cases with my dad. I am thinking wood cases with felt linings. I also hopefully have enough black paint left over from my desk to paint them all. They should end up being pretty cool.

I have also accidentally fallen into a bi-phasic sleeping cycle. I get up at about 8am, work, then come home, eat and read until about 7pm or 8pm, fall asleep, wake up at about 11pm-Midnight, work on magic site or read more, back to sleep at 4am, repeat. It is very strange, but I feel like I slack off less after work.

Last night I fell asleep at about 8, slept for what seemed like an eternity, then woke up at midnight completely ready for a whole day. At 5am I finally forced myself to sleep again, just so today wasn't so hard at work. The only weird side effect I notice is that I have trouble keeping track of what day of the week it is, but that is pretty minor.

I'm definitely excited about the site, and really wish I was home right now so I could work on it. Harry is even doing design for me! I'm finally freed from my lack of artistic ability and my chromatic retardation!

In completely weird and unrelated news, one of my profesoras from Spain is visiting the US, and is currently here in the KC area, so hoping to go eat dinner or something with her tonight. I think this is her first time in the US... if I remember right, she has never even been to Madrid, which is only a six hour drive from Ronda. On Tuesday she saw the Grand Canyon, so I'm not sure how we KC people are going to top that.

Anyway, back I go to dreaming about Magic and Rails.

Monday, October 22, 2007

Slums

Today I was talking to Joe about telecommuting, which we both agree is the future of our profession. It just doesn't really make sense for us to show up to some physical place in person when what we do is concentrate and manipulate a virtual space. I can see having common meeting points to keep a group cohesive, but our particular profession is extremely poorly suited to the continuous interruptions of an office environment.

Programming aside, I think the closer an "office" is to your home, the better. And I don't mean physical proximity. In that regard, today's typical office is more like a homeless shelter.

The much touted reasoning for cubicles is that they lead to better collaboration, but I call BS on that. What leads to better collaboration is better common spaces. In a house, if people want to collaborate or be social, they go to the living room, family room, dining room, front porch, or back yard. These are all areas that are understood to be somewhat social in nature, and the person is allowed to choose when to participate. If the person wants to be private, they stay in their office, bedroom, or study. The point of these rooms is privacy and the ability to concentrate.

How this logic escapes the designers of offices just astounds me. Each worker should have a private space in which they can focus and get things done. Its walls should go to the ceiling, and it should have a door that can be closed.

In addition, the workplace should have several common areas, each suited to slightly different situations. One should have lots of food and comfy chairs and couches, and plenty of entertainment options (but not TV). This is for employees to blow off steam, chat with a coworker, or just eat their lunch. (I say no TV because it tends to destroy any interaction between people in a room.)

Another common area should be several office sized rooms with tables, outlets, and connections for small groups of 3-4 to work in the same room if they need to. If you don't know what I'm talking about, visit a good college library. These allow groups to work together without disturbing other groups.

The last area type really depends on the size of the company, but optimally you want a place where everyone can fit at once, for those all-staff events like kicking off the Next Big Thing, or just a company movie night.

The first area is like a living room and kitchen, the second area is like your dining room table, and the third is like your back yard. The private offices are much like your office/study at home. We have all these areas in a house because they serve a social purpose, allow us to establish boundaries and collaborate at will, and make the house comfortable and varied.

In contrast, modern offices are like homeless shelters. Everyone is in a shared room, cubicles being the metaphorical equivalent of bunk beds. There is no food, or at least nothing that doesn't come out of a vending machine. Also, the common areas are usually places of dread (meeting rooms) or discomfort (lobbies and lounges).

Meeting rooms usually have to be scheduled, so they don't allow spontaneous collaboration. It's no big secret that cubicles don't actually allow collaboration, since you have just enough privacy that you can't talk face-to-face with anyone without shouting. So how are your employees supposed to actually work in a team?

Lobbies and lounges are stark places with no relaxation value. "Oh man! I get to go sit and stare out the window by myself in a completely silent room lit by fluorescent lights!" If you don't believe me, ask yourself, which would you rather do? Go take a 15 minute break in your company's lounge area, or take the same break in your living room? You get the point.

The idea of a cubicle doesn't makes sense at all. As far as I can tell, it's only attractive in two situations. First, you need to be able to shout at your coworkers constantly. Maybe this makes sense in the bull pen of a stock trading firm, where the movies tell me brokers shout at each other across the room to get orders made. Thankfully, your typical office worker, much less a programmer, doesn't need to do that. If they need to talk to someone in person, they walk to that person's cubicle, which is really no different than walking to that person's private office would be.

The other reason cubicles are attractive is the ability to cram a lot of people in one big room, leaving flexibility to change the floor plan nearly at will. While this actually makes some sense, it doesn't necessitate that cube walls are only five feet tall. If you want to have modular office walls, make them go to the ceiling and put doors on them.

So think about it, would you prefer to live in a comfortable house or a homeless shelter? My guess is you picked the first one... so why do you allow your employer to keep you in the second?

Friday, October 19, 2007

48 Hours

Not 48 hours back to back, but that is how many hours at the current job I have left. Just six days.

(I gave my two week notice, but they let me use my vacation time for last four days, making my last day a Monday.)

It feels good to have that done with. I just need to wrap up my last project before then and hopefully get out of here without any parties or luncheons. I'd rather just say goodbye to people 1-on-1. Group goodbyes are just awkward.

It is amazing how your bosses suddenly talk to you like a normal person when you give your notice. I guess they don't have to tow the line anymore, and can be honest. My former supervisor (who I was about to rejoin on a project) just regaled me with a nice rundown on why this place fell apart and when it happened. Very insightful. If there is any reason to feel bad about my decision, it is leaving him shorthanded.

But mostly I feel good about it. I will have a new project in a new place with new people. One with a clear beginning and end, with a raise to boot. I'll also be closer to home and closer to the University, which I increasingly suspect I will join again in the future for a Ph.D.

Anyway, it's lunchtime now, so I'm going to go get my caffeine fix.

Thursday, October 18, 2007

Preparations

Op, another week went by.

I have been entirely occupied by Magic in one form or another for the last seven days. Some of those days were spent playing with Bob and Mark. Some were spent working on the site (much setup and an organized fresh start). Some have been consumed by sorting and deck making. The rest have been spent reading the Time Spiral books. It's so nice to be back into Magic world again.

I have had relatively little to do in preparation for tomorrow. In one sense I look forward to getting it over with. I figure there can be three outcomes, and I am perfectly happy with two of the three, and the third option isn't that terrible. On the other hand, I hate dealing with crap like this. It'd be nice if I didn't have to bother with giving notice, but that is a quick way to ruin a reference.

I actually caught myself today being kind of repulsed by YC News. The whole startup idea has gotten so trendy, and I have this weird aversion to all things trendy. I know it's kind of irrational. There are more startups because it is cheaper and easier than ever to do it, but my contrarian vein continues. Not like I can really talk anyway, as I have been sitting on an idea for nearly two years now. While I have made limited progress in that time, mostly I have wasted it. I know I will regret it someday if I never follow through on this. I just keep finding financial reasons to put it off. At least with the banishment of DotA I seem to be able to work on things during my evenings and weekends now. Here is hoping for some productive time!

Wish me luck tomorrow!

Wednesday, October 10, 2007

Gorillaz

So I can't help listening to Feel Good Inc. by the Gorillaz nonstop today. Today is the best day in a long time for me. I can't divulge details just yet, but let me just say I am overjoyed!

Whee happy music!

I made good on my promise to work out last night, and am suitably sore to prove it. The little gym at our apartment complex is decent, but it definitely lacks a curl bar and a decent place to do dips and situps. I managed about a dozen dips on the treadmill bars, but the belt is too close to my knees and I can't go down properly. Settled for tricep extensions instead. The lack of a curl bar prevents me from doing skull crushers or barbell curls, which I enjoy as a way to end my workout, but I'll deal with it since the place is included in my rent. I can always do situps under the couch anyway.

My new office chair is positively delightful. Sometimes I just go sit in it for no reason other than feel that relaxed feeling for a few minutes. It takes all the tension out of my back and definitely makes me a happy camper.

Anoche soñe con unos amigos españoles. Ellos estaban hablando totalmente en ingles, y yo en español, asi que nadie se podia entender. Ademas, estabamos en el medio del puente en Ronda, y hacia lluvia, pero nadie se daba frio, y el mar estaba cerca (a pesar de que el mar no este cerca de Ronda). Fue 2005 tambien... por que todos los amigos eran mis amigos de España en 2005. Que raro!

Pues, me voy! Que todo se lo pase bien!

Tuesday, October 09, 2007

Oil Change

So I have been telling myself that I will get up early and go have my oil changed before work ... since last Friday. The problem is, every time 6:15am comes around, I just tell myself "I'll do it tomorrow" and go back to sleep.

I seriously need to stop being lazy.

It was about this time last year that I started this blog in an attempt to motivate myself to get something done. It worked like that for a little while, but after a couple months (and the transition to Spain) I slacked off again. I just realized that I have been in my apartment for two months, and have yet to start working out regularly again. Lame!

Going to correct that when I get home today.

In unrelated news, I got my computer chair last night. It's so nice and comfy. Sitting at my computer is no longer painful after 20 minutes (it replaces a cheapo wooden kitchen chair). That brings me hope of actually getting something productive done in my spare time, assuming I make it through the current gauntlet of birthdays. Seriously, what is with people being born in October and November? Best I can surmise is that we can blame this on Valentine's Day (evil holiday, but that is another rant).

Monday, October 08, 2007

And More Meatballs

On my last post, Mum (hi mum!) left the following comment:

How much of this relational retardation is due to a generation of people where interactions are primarily "virtual"? Do interactions then take on an air of discomfort because ones have not learned to be genuine when dealing with "real" people? The rules of virtual communities are very different and are much more self focused than in-the-flesh interactions ever could be.


I was going to reply in the comments, but as I was writing, it kept getting longer and longer, so I just decided to make a full post about it.

Two of the group were definitely in their late 30s, which is, even at this point, too old to have their social norms set by virtual interaction. I agree that virtual interaction tends to be more anonymous and requires an entirely different set of social skills and cues than real-life interaction, but I also know at least two people that I have never met in real life with which I still manage to have a "deep" relationship (as deep as my friendship with Bob/Mark/Michael/etc).

After a weekend to reflect on this post, I think the issue is that our only culture now is mass culture (which isn't exactly a revelation). In the past, people cared about their neighbors, the events in their town/church/school, the history and cultural significance of things in their state or region. Now our only shared community seems to be mass culture, like hit songs, hit TV shows, hit movies, and professional (televised) sports. (A really excellent book on this phenomenon is called Bowling Alone.) I don't think people have lost the ability to interact on a deeper level, they simply have a narrowed range of topics for discussion. The old 'deeper' subjects still exist, but they require slightly more effort to broach than last night's Idol episode. Why would people that barely know each other dig for commonality when they have the obvious commonality of mass culture to fall back on?

I notice this creeps in even with my parents. I currently don't have television service. I supposed if I wanted to fish out some rabbit ears I could at least have the local channels, but I don't bother. Despite this, my mom still asks during idle conversation whether I have seen some new show or funny commercial. She isn't asking because we don't know how to interact socially, but these things are easy subjects when a 'deeper' subject isn't being pursued.

I think I only notice how pervasive mass culture references are now because of my varied attempts to not keep up with them. I don't have TV, I don't listen to the radio, and my time on the internet is confined to Hacker News and Slashdot. My only real connection to current events is the Economist, which isn't exactly trendy (thankfully, as I find the sparse dribble in more mainstream weeklies like Time and Newsweek to be rather repetitive and narrow), and NPR, which isn't either. I notice the references because I no longer get them. Maybe this whole tirade was just me feeling left out.

Friday, October 05, 2007

With Meatballs

So I was sitting in the break room upstairs eating some Spaghetti-O's when a foursome of generic business-casual people came in. Each was in their 30s, with alternating black or tan slacks and pastel-colored shirts. The two women wore gold bracelets and necklaces with little gold looking swirly things, and the guys each had their cell phones in holsters on their right hip.

They proceeded to ask each other where they were from, how long they had been working here, etc. Then an obvious awkward lull while they waited for the Pepsi Machine to do its business. I'm watching all this from the corner seat of the corner table with my Economist next to my bowl, amused. One of the guys brings up the Chiefs and miraculously the silence is broken. They chatter on about Sunday game rituals, like chili with the family or feeding the dogs bacon for good luck (no joke!).

At first I am amused at how utterly generic and meaningless this conversation is. Nothing more than an awkward cover story for being forced to mingle without supervision during a break in their day-long meeting. It kind of reminds me of being a new hire, and spending those first weeks constantly chatting with people that seem interested in you, but really are just excited to have new meat listen to their stories. Only, all four of these people looked like new hires, so it was bonus awkward.

Suddenly though, I got this gut-wrenching rage. Is this really our common culture? This... nothing? This shallow platitude driven nonsense? Instead of trying to meet people we simply all pretend to be generic people because we think that is what other generic people want. Short of the feeder-of-dog-bacon, not one of these people exhibited a personality quirk or unique story. And even bacon-feeder wasn't exactly stepping out of bounds by admitting that she liked dogs. Gasp!

Why is it that we create this weird divide between our personal lives (and hence our personalities) and our 'professional' lives? Is it that we are afraid of admitting our differences in fear of offending someone? I know that is how I feel when taking a new job. Be a yes-man to everyone until you figure out who thinks what and whose opinion actually matters. But even then, I'm not myself, because I just become what those-that-matter expect me to be. How is this behavior considered healthy?

It's just like we are all going through the motions of professionalism, and are afraid to just be people. I want to be friends with my coworkers, and not just 'at work.' Maybe it would just be easier to work with my existing friends, or to start my own company, than to find it elsewhere. I don't know, but I realized in that moment that I don't really care about the paycheck, as long as I can get by. All I really want is to have fun at what I do. Maybe I should reconsider this whole office-career idea, but for what?

Wednesday, October 03, 2007

Shell Games

So reading blogs today I found a kindred spirit when it comes to money (hyper)management. The guy over at MyMoneyBlog.com seems to have some interesting ways to nickel and dime yourself to riches, or at least extra cash. His series on using 0% interest periods on credit cards to earn interest on money that isn't even yours was amusing to read. While I won't quite go to his extreme, I have been doing something similar for some time.

The idea is to get a 0% period on a card for as long as possible with as high a credit limit as possible. You proceed to max it out, only paying the minimum during the 0% period, then pay it all off before regular interest kicks in. This requires some discipline to pay off on time, but should be easy if you have a pen and a calendar handy.

The point? You keep the real cash in high yield savings for the duration of the 0% interest period, earning a return on otherwise spent money. You use this cash to pay the card off at the end, but keep the earned interest. Obviously you are not getting rich on this scheme, but just delaying purchases like this will probably net me about $400 next year.

The guy at MyMoneyBlog.com advocates using balance transfer offers to basically transfer out negative balances, then request refund checks in the mail. While technically legal and all, it sounds like effort and possible hassle if anyone ever actually notices these shenanigans. He does make over $1000 a year doing it, so I guess if you really want to, some money is there to be made.

I just stick to the much easier method of basically delaying purchases as long as possible. This allows me to feed my paychecks directly into my savings. I can speed this up by paying for shared things (like bills, groceries, and trips) and have other people pay me back in cash, which I can keep on deposit. A bit stingy of me? Maybe... but it's actually kind of fun to play games with money. I think I get more enjoyment out of the act than the reward, as a $5k credit card is only worth about $200/year in interest.

Of course this is only possible with good credit, no balances, and people that pay you back (for shared expenses). Split a meal with someone that never pays you back, and you just flushed any advantage down the tube. Carry a balance on another card, and the interest there dwarfs anything you would earn with this tactic (always pay down high rate debt first - and credit cards are the highest rates). Bad credit, and you won't qualify for the 0% interest periods.

So an amusing trick (among many) to shuffle money and end up with more than you started with. It won't make you rich anytime soon, but it will pay the taxes on your cell phone bill. ;)

Monday, October 01, 2007

Blogging for the (lack of) Masses

Oops, let a month go by without a post.

Obviously we are settled in to daily routines at the apartment by now. I am excited because I finally bought an office chair that will allow me more than 30 minutes on my computer without back pain. The current situation (wooden kitchen chair) leaves me destroyed every night by the time I fall into bed.

Also bought a replacement motherboard for my laptop on ebay. Hopefully that fixes the no-booting problem (which has recently become 100% permanent). My only dota fix for like a week was this weekend when Ben was gone and I could steal his computer. Sad that I need such fixes, but hey, it's my one recreational activity.

That only leaves UPS and shoes on my list of things to buy, which means another $300 or so. I am debating whether to just get it over with now or put it off another month. I am leaning towards now, just to get it out of the way. Last paycheck went mostly into savings, which was a mental boost, but most of the next three will go towards the Amex card. Surprise car insurance this week didn't help matters at all.

Tonight will be filled with chores, but I hope to catch up on some reading too. I need to actually get ahead on my Economists so I don't feel like I am missing anything. Would also be nice to just devote a few days to finishing up The Singularity is Near (which I have been trying to read for a month).

Friday, August 31, 2007

Slacr

So my new machine is up and running. Quite nicely in fact. I'm especially fond of the modular power supply, as it is built like a tank. My only real worry is that the motherboard sags quite significantly (about an eighth of an inch) under the stock Intel heatsink. It is hard to tell if the sagging is from the weight of the heatsink itself or the pressure I had to apply to install it. Honestly not sure which scenario would be worse. I can't imagine the stock heatsink would be so heavy as to cause the motherboard to sag, but it's not like I pushed that hard on it either. So far everything seems to be running stably, but it just worries me.

The case itself is pretty tight, especially when I had to lace the IDE cable for my DVD drive. For that reason I returned that drive and got a SATA version. The SATA cables are nice and small.

Gentoo installation has so far gone well. All my hardware seems to be supported and I got X correctly configured the first try. The quad core seems to make compiling faster, but I haven't actually tried an objective comparison. Right now it is chugging away on OpenOffice, Firefox, Pidgin, and Conky. When I get home I'll sort out the Java mess and get Eclipse, Ruby, Rails, and Erlang compiled. Then I'll set up Samba and Cups. I know the printer sharing works, but still have to figure out the automatic driver serving. At the moment the client machine has to have the driver preloaded, which isn't a big deal for Ben or Kathy, but it'd be nice if it worked for any visitors too.

I'm also looking forward to trying out AzSMRC and Virtualbox. Hopefully I'll have enough time tonight to mess with that. If not, I guess I have all weekend.

Got new tires last night. Car = smooth as silk now.

Only other real focus at the moment is turning the financial situation around. I have been on a huge spending spree since I got home (computer, tires, apartment, shoes) and don't get my first paycheck until September 7th, which will immediately be passed on to American Express. I look forward to the day when I am putting money back into savings, which should be around October 5th by my latest estimate. Bonus points if harry and I get that side gig, which would move up F-Day quite a bit.

Wednesday, August 22, 2007

The Skinny on Dry Loop DSL with AT&T

As part of their merger with SBC and Bellsouth, AT&T is required to offer dry loop DSL (what you might call 'naked DSL' or 'toneless DSL') until some date in the future. About a year ago, I had dry loop service, and everything was great. Then I moved out of the country for a while, and just got back. When I called AT&T this time, the representative swore up and down that they no longer offered it, even when I said I was pretty sure it was required by regulators (op! this too!).

I have one friend that had dry loop, and several other friends that were also asking for it getting the same response. AT&T claims it's not offered because there is no demand. Fancy that... no demand for something they don't advertise and actively try to hide.

So finally I found the old number I called a year ago to set up my service. (Randomly stashed text files ftw!) For the midwest (11 states including Texas), that number is 1-800-264-0002. Let me make that clear, since you cannot find this number on the AT&T website.

AT&T Dry Loop DSL: 1-800-264-0002


The representative at this number assured me that they still offer dry loop, and quoted me the following prices (speeds noted as up/down):
  • 512kbps/3mbps (with 6 month contract): $49.99/mo

  • 256kbps/1.5mbps (with 6 month contract): $44.99/mo

  • 512kbps/3mbps (without contract): $54.99/mo

  • 256kbps/1.5mbps (without contract): $49.99/mo
While this is generally more than the bundled packages (with phone line), there are no taxes and fees like normal phone service. So if your plan is $49.99 a month, that is what you pay. Currently I nominally 'pay' $34.99/mo for 768kbps/6mbps DSL service, but by the time you add phone line and taxes it comes to about $65/mo. Not to mention I have to pretend to support AT&T's packaged deals, which I detest.

That brings me to the only downside I see. For some reason they could not offer me 6mbps download speeds with dry loop. Now I get to ponder whether that supposed extra speed (which I rarely if ever actually see, as my speed tests seem to top out at 4.5mbps on a good day) is worth the extra $15 a month. If any of you call them up and get 6mbps offered to you, please let me know.

Another tip: In some states telcos are required to offer what is called a measured line. If you have your line mainly for the DSL (and never use the actual voice service), you can ask for a measured line. This is still voice service, but you only get about 20-25 calls a month. The upside is it only costs between $5 and $7 a month. My state (Kansas) doesn't offer measured lines, so I am stuck paying $15.70 for basic service, without a phone even plugged into the wall. If you are like me and asked for the cheapest line possible (because you don't use it), chances are they gave you a flat rate line like mine. You could probably save about $8/mo if you switched to a measured line.

Thursday, August 16, 2007

Cheney on Iraq

No matter which side you are on, you have to admit this is amusing.

Wednesday, August 15, 2007

Shipped

So my new case was shipped yesterday evening from Rochester, New York. Hopefully that means it will get to my parents house by Saturday (when they bring up my desk), but we shall see. It was shipped USPS, so that could mean a longer wait than I had hoped.

I started this new computer with the intention of building something relatively cheap yet good. The problem is that I keep upgrading things slightly, and now I'm looking at like $1100 worth of stuff. Instead of a no-name power supply, I'm looking at a Corsair 450VX. Instead of a no-name case, I got a Qmicra II. Instead of a smallish hard drive, I'm getting a 750gb speedster. Instead of the 2GB of ram, I'm considering 4GB... 4GB of quality ram no less. Instead of air cooling, I'm wanting water.

Waking up at 6:45am has yet to get easier. If I have one complaint about a day job, it's the schedule. I don't see how anyone gets anything meaningful done being this tired.

We got kitty into our new place last night. So far her and Tulah have only approached to within six feet once, hissed, and ran in opposite directions. However, they sit and watch each other from 30 feet away without any hissing, so that is something.

Monday, August 13, 2007

Back in Town

Well just got moved back to Lawrence.

Several projects on tap at the moment. Helping Dad build me a computer desk for my new office space in my apartment. I really enjoy having an office area, and I'm sure I'll enjoy it even more once I have a big flat surface to work on. Also slowly putting together a new computer at home (only have the case bought at the moment). Preliminary specs are as follows:

  • Qmicra II Case
  • Core 2 Duo E6420
  • 2GB of DDR2-800
  • Western Digital SE16 750gb hard drive
  • Some kind of microATX motherboard (this is what is holding me back at the moment)
  • Possibly a GeForce 8600GT if the motherboard has crappy onboard video
  • Watercooling and generic DVD/CD writer
  • 24 inch black Samsung LCD that does 1920x1200
One thing I am excited to try is running XP on a VirtualBox VM from within Gentoo. It would be nice to be able to play DotA and use Skype without rebooting all the time. Not to mention it would free me from having a separate 20gb partition just for Windows. Now I'll just have a big fat 20gb binary file.

My laptop has some serious motherboard problems, so I'd like to get the new machine passably running so I can send the laptop in for repairs. It's past the warranty now, so it'll cost me, but need the darn thing to work well.

Current read is The Singularity is Near by Ray Kurzweil. I have just started it, but so far enjoy the heck out of it. Considering all the changes that have happened in my short life so far, I can't wait to see what humanity is like in 50 years.

Wednesday, June 06, 2007

A Viajar!

Kind of a belated entry, but I am now backpacking in Europe. We started on May 30th and I'm just getting around to writing that fairwell-for-now post I had meant to put up. I doubt I will really have time to read up on anything technical and comment on it here, so I think it's best I just take a break from writing until I get home.

That means my next post will probably be on July 27th or there abouts.

I'm really enjoying the complete vacation so far, and look forward to having some disconnection time to freshen up. I'll still be online at times, but mostly to make travel plans, and I'd rather not fill my blog with ramblings about that.

So, adios for now.

Friday, May 25, 2007

(Too Much) Free Money

I found this article on YC News today that claims that the recurring boom and bust of the Valley is somehow the Federal Reserve's fault. His only backup for this claim is a link to this article about the dangers of inflation, and the Wikipedia entry on the Fed itself. If you read the inflation article, you'll note it is from during World War II. While it rightly claims that inflation itself can be bad, the purpose is to support higher taxation and government borrowing during the second world war, not to talk about Fed policy in relation to economic bubbles. I'm not defending the Fed as perfect, the Wiki article has a whole list of criticisms, but I would ask what the better alternative would be... both to the Fed itself and (mild) inflation. The Gold Standard has been tried and found wanting, for numerous reasons. (The first link by a conservative writer, the second, by a liberal one, in case you think I am politically biased.)

Anyway, the point is that I'm confused at how the bubbles in the Valley (plural because maybe one is happening now, maybe not, time will tell) are the Fed's fault. There have been economic bubbles throughout history (South Sea Bubble, etc.). They always happen when what is normally a process played out by a small percentage of the economy (starting and funding businesses) gets popular and the rest of the economy tries to participate. Suddenly you have way more money (everyone is trying to fund small businesses and get rich) than you have startups (why come up with an idea and start your own company when you can just throw your money at someone else's Sure Thing™?).

After the bubble burst in 2000, the rich people that fund the VC firms and bought ridiculous IPO shares pulled back. They didn't pull back because it made economic sense, they did it because all the other rich people were pulling back. Markets are fickle and, much like high schoolers, move as a herd. It took a couple fantastic successes to get everyone on the bandwagon, and a couple fantastic failures to scare everyone back off it.

Here is my alternative explanation for why bubbles occur. No offense to the author of the other post, but I don't think it's due to inflation at all.

When dot coms (or Web 2.0) get popular, money comes flooding in to fund them, in the hopes of hitting the next Microsoft or Google. The thing that creates the bubble is that the number of startups doesn't increase proportionally to the money supply. There is a lag. In order to put all this money to use, everything under the sun gets funded. This is why people get money for doing nothing, as the post author claims. It's not because the Fed maintains a policy of low inflation. It's because you have too many dollars (that were probably up until recently chasing opportunities in the housing market) flooding into too few businesses.

In this case, supply creates demand. Funding becomes easy, even if you are creating no value for anyone. So, anybody with dollar signs in their eyes and a copycat idea gets funded (think Pets.com here). Of course, eventually one of these companies that is funded by easy money but has no profit potential fails as it should, and people start examining their own holdings. Maybe a couple more go down in flames, and suddenly startups look risky. Now our famously fickle investors want their money back before the next failure happens to be one they invested in. They try to dump their startups to acquirers or the IPO market. Above all, they tell themselves they will never get suckered in by dot coms and investing fads again. (Of course, two years later they create the housing boom by speculating in residential real estate.) In the sudden money vacuum, good startups get hurt because they can't find funding. The situation has reversed and now there are too many startups chasing not enough money.

My point is, the Fed has the power, and sometimes (as in the case of the housing boom/bust) the dubious honor of helping or exacerbating the boom/bust cycle. They can try to deflate bubbles by tightening up money, sucking away some of that extra funding. They can try to prop up markets by flooding the market with liquidity and cheap rates to keep people/companies spending. The thing they don't do is create the bubble to begin with, nor create the bust that invariably follows. The blame for that rests squarely on the herd mentality investors have, and the willingness of Pets.com and the like to take advantage of it.

Top 10 Dead Technologies

So YC News (or maybe it was Slashdot) had a link to the Top 10 Dead (or Dying) Technologies. Lo and behold, check out number 5 (I'll even save you the clicking and quote it here:


5. ColdFusion

This once-popular Web programming language -- released in the mid-1990s by Allaire Corp. (which was later purchased by Macromedia Inc., which itself was acquired by Adobe Systems Inc.) -- has since been superseded by other development platforms, including Microsoft Corp.'s Active Server Pages and .Net, as well as Java, Ruby on Rails, Python, PHP and other open-source languages.

Debates continue over whether ColdFusion is as robust and scalable as its competitors, but nevertheless, premiums paid for ColdFusion programmers have dropped way off, according to Foote. "It was really popular at one time, but the market is now crowded with other products," he says.


The real tragedy is that pretty much all my professional experience (i.e. worthy of putting on a resume) is with ColdFusion. Talk about a waste.

To make matters worse, management recently chose (god forbid they leave it up to the people actually writing the code) the only language that competes with ColdFusion in the over-engineered-stupidly-verbose-mind-and-soul-killer category: ASP.NET 2.0.

Time to put on some Incubus to make the pain go away. Anyone know how I can make $20k a year part time?

Wednesday, May 16, 2007

Summer Vacation

Growing up, summer vacation just meant the end of school to me. It was intrinsically a good thing, because I got to sleep in and every day was like a Saturday. Ninety Saturdays in a row. Now that I don't really have a summer vacation anymore, I have come to realize what it really was.

When you are a kid, summer is the natural demarcation point of age. Birthdays are always an occasion, but we really measured time by the passing of summers. Each summer brought the end of one epoch, and every August brought the beginning of an entirely new one. Kids can reinvent themselves over the summer. Some come back completely different. I remember a guy that used to get straight A's who came back after our sophomore year with a mohawk and a new penchant for getting high before school. I knew another guy that had piercings, tattoos, and a penchant for pot that came back after one summer with a crew cut and a new goal to be a Navy Seal. I have no idea what happened to them to affect such a change, but I'm willing to bet it wouldn't have been possible without summer vacation.

I think kids live in two entirely artificial worlds. One of them is school, with all its strange social pressures and crises. The other is summer vacation. School is a rather lame artificial world, summer is artificial only in that 'real life' sadly doesn't resemble it at all. In school, you have this contrived responsibility to do your homework and pass your classes. During the summer, however, you suddenly have a responsibility vacuum. School has its own hierarchy and social norms, while during summer vacation you only see the close friends you make an effort to see. School makes you work towards external goals (those of the teachers), while summer forces you to set your own.

Now, I wouldn't say that most summer goals are too lofty. When I was 17, I saved all summer to buy a computer. Going back further, I'd bet my goals as a ten year old were probably more along the lines of finishing my road in the sandbox or adding to my tree fort in the woods behind my neighborhood. The point is, in the absence of external goals, kids create their own. They don't stop to think about whether the goal is profitable, or even possible, or any of the silly things grown ups consider before setting out on a project. They just decide to do it.

Somehow this changes when you grow up. You wake up one day and think to yourself: "I don't want to go to work." At first, this feels kind of like school again. Who wants to go to school most days? But when you get to that point in school, you make the last push to make it to the next vacation. The thing is, work is not like school. There is no summer vacation from work. No time to check out for 90 days in a row. Even if you could just take a break from a job, it wouldn't be like summer vacation as a kid. You'd still have to keep up the house, run errands, and worst of all, pay for stuff. If you haven't experienced it yet, taking an unpaid vacation doesn't have quite the same carefree quality as a worry-free summer does.

The worst part about this is that, without a summer vacation, there is no time to reinvent yourself. To reinvent yourself, you need a break from routine. This forces you to examine yourself (usually subconsciously) and figure out what to do. When you have a daily routine, time passes almost unconsciously, and if you change at all, it's to be more like those around you. Without a routine, you suddenly have to find something to fill the time, and that something usually leads to a personal change.

Personal reinvention aside, routine also affects your goals. When you spend five days out of seven working towards someone else's goals, it's hard to justify making more of your own. Suddenly you spend time analyzing whether an idea is 'worth the effort' before you start it, and sadly, this is where most ideas die. A kid doesn't analyze anything, they just do it. A grown up wonders if it will fit in.

The point to all of this rambling is two-fold. First, if you are a student now, don't replace one routine with another. I know for most students it seems prudent to get a summer job to save up money for the coming school year, but don't do it. This is your time to be creative, to figure out what your passion really is. You can't do that if you never form your own goals and instead work towards someone else's.

My freshman year in college I got what at the time was a great job. It was the spring of 2002, and the dot com bust was in full swing. Computer Science grads were coming out with diplomas and no jobs, so I counted myself lucky to get paid to program. Granted, the language sucked (ColdFusion), and the site I worked on was neither hip nor bleeding-edge by any means. But it was a job that paid $14/hr to write code when everyone thought my field was dead. I counted myself lucky.

Looking back now, I realize how unlucky I was. Sure, returning to that job each summer allowed me to graduate without any debt, and gave me a couple years experience on my resume right out of the gate. At the time, it seemed like all upside. The downside is simply that I robbed myself of all that creative time. Three months, once a year, to both reinvent myself and work on crazy projects without a care in the world.

So, if you are a student, don't get that summer job just to fill the summer. Get that dream internship in your field if your field needs internships, but if your field is like mine (computer science), then you don't. What you need is an idea, a case of coke, and a computer. What you need is to do something you are passionate about. If the summer job at Target makes you jump out of bed every morning in eager anticipation, then, by all means, work it. But if (more likely) you are doing it for the cash, then just don't.[1]

For the non-students out there: quit your job. It's that simple, really. If you don't wake up every morning and nearly forget to shower because you are so excited to get to work, then quit going. (Or try and get a three month sabbatical if you think they'd go for it.) If you made it this far in my essay, odds are that you aren't that happy with your job. You need a summer vacation. Worst case is at the end you find a new appreciation for your job and come back rejuvenated. Best case is you reinvent yourself and at the end find a new passion. Maybe you'll start working on an idea you have always wanted to 'get around to' but haven't. Maybe you'll find out that you'd rather be in field X instead of your current one. Maybe you'll just remodel your basement. The point is, you'll accomplish something and feel refreshed. This is the the great thing about summer vacation: by the end you are new again.

Granted, you'll have to plan a bit more carefully than a college kid does. You don't have the mom and dad safety net nor the access to cheap capital (student loans). You do, however, probably have other financial tools at your disposal. Home equity, if you own a home, is a cheap source of funds if you know you can repay it later. Simply saving up three months expenses is another way. Might as well put that fat paycheck to use on something besides new cars and suits. There are small business loans if you want to go that route, and credit cards always allow you to put off expenses for a few months. Bram Cohen wrote Bittorrent while living on no interest credit cards that he maxed out in succession. If you can reasonably pay them down before the no interest period ends, this is like a zero interest loan.[2] There is no free lunch, but there is no reason you can't eat two weeks worth of dessert upfront.

Summer vacation is important, and as soon as you don't have it, you stop changing. It needs to be long enough that you can't glide through it by goofing off (you need to get bored). It needs to be totally free of routine (again, you need to get bored). Most of all, you need enough money to get through it without focusing on the money part. A little planning ahead can get you all of this, and it is well worth it.

Don't fall into the trap of thinking that summer vacation is a luxury for kids only, and if you are still in school and have it, don't waste it trying to work like a grown up. Go apply to Y Combinator or Google's Summer of Code instead. Spending years in an unchanging environment without a chance to remake yourself isn't healthy or natural, as much as cultural stigma tells us to the contrary. Do it for too long and you might never find time to grow as a person, work on that crazy idea, and chase that dream, whatever it may be. So here is to hoping you have a great summer vacation.



Footnotes:

1. If you are wondering how to pay for all this free time and don't think your parents will spring for the idea of you not working, there are these great things called student loans that are just made to take advantage of. Everyone looks at student loans as the refuge of last resort, but I'd argue they are infinitely better than summer jobs. You get a chunk of money upfront without giving away any time in the present. It's like mortgaging your time in the future (when you trade your time for money and then use the money to pay it back). You get three months now to reinvent yourself and find a passion in exchange for some time spent paying it back later. It's a total win because the amount you borrow to live as a college kid is going to seem like peanuts by the time you get around to paying it back.

2. I got one the other day from Chase that was no interest for 18 months. The $2000 credit line will reasonably buy me two months of living, and who can't pay back $2000 in 18 months (live on it for two months, then dedicate a whopping 72 cents of every hour for the next 16 months to pay it back in time).

Wednesday, May 09, 2007

Why credit cards are bad (and good)

So I got this email today from Providian (provider of one of my Visa cards) about a past due payment. I, being as drewish as I am, freaked out a bit and went to check on that account. Sure enough, I had a balance that was due April 14th, that I had never paid. After seeing it, I remember getting the last payment notice. I had gone to the site to make the payment, but their site was down for maintenance, so I just decided to come back later. Of course I forgot, and it never got paid.

This is mainly annoying for two reasons. First, I made it a point of pride to never pay the credit card companies a cent in interest. I have always paid my balances in full, before the due date. To me, a card is a means of increasing my liquidity and simplifying my planning. Since they give me a month lag between purchases and paying for them, I can know ahead of time how much of my paycheck is going to be spent (since it was in the past) and can put the rest towards savings and such. It's a nice system, and has worked wonderfully for years. I only carry $100 in my checking account, for cash emergencies. The rest is in high yield savings at ING Direct at all times.

Well now I have paid a credit card company my first cent. And, since I'm so generous, I paid them 2337 more cents for letting me spend my money through their service. I guess this was bound to happen eventually.

The second annoyance is that this will probably dent my credit score for a bit. Not that I need a better score or anything... it's already in the 90th percentile... but it's just the principle of the thing. I won't be buying a car or house anytime soon, so it doesn't really matter.

Anyway, I think when I get back I'm going to take a couple cards out of my wallet. I have four, and I really don't need them all. I had two to begin with, just in case, but then I got my American Express card, which I prefer to use for the rewards points when I can. Then, before coming to Spain, I got the Chase card because of the no interest offer. I plan to use it to cover this summer when I have no paycheck and am spending money all over Europe. When I get back however, I think I'll just ask Capital One for a higher limit and cancel the others. Keeping track of four accounts is a major time suck, and really I don't need that much credit. I have enough revolving credit at this point to live on it for two years. Obviously that would be stupid, since at the end of two years I'd be paying interest like crazy, but I could do it if needed.

Anyway, I still think cards are a great way to increase liquidity and plan ahead. They are also handy for unexpected expenses. Plus, I have enough points on my Amex card at this point that I'm planning to buy computer parts with them when I get back. So they aren't all bad.

Friday, April 27, 2007

Small Joys

So today has been a day of small joys. Little things keep making me happy.

For one, Google updated the style of their custom homepage to give everything a border and some tighter margins. It's just more visually appealing, and I find myself looking at my homepage for no other reason than that it's pretty.

Secondly, I ran across this (rather old) post about "real databases" that I thought was priceless. If only I could go back in time and hand this to my bosses at work when they laughed at me for suggesting we move our app to MySQL. We pay well over $100k a year for database licenses, and frankly I don't think MySQL lacks anything we need. Oh well, I am mainly bitter about being laughed at in the meeting, the fact we are wasting a ton of money isn't really my problem.

Also, now that I understand how to user rdoc at a basic level, I managed to generate the rdocs for various plugins I have installed, as well as the ruby standard library. This means I can accomplish more programming without the internet.

To top that, I found that hostal in Nerja that I like online, and sent them an email. Hopefully we will be able to get a room there. I was just happy they had a website.

Ademas, (I'm running out of synonyms for 'also' so I'm using some Spanish ones), I'm slightly less sick than yesterday. On the upside, I used my sick time today to read up on acts_as_ferret, and now have a general grasp of how to use it. Just found a page defining the query language used by ferret (FQL) and was delighted to find it already does prefix queries, which is what I was prepared to implement. Overall, I think using acts_as_ferret will be easier than my existing MySQL search.

Anyway, I'm off to find other fun things to read about. Happy Birthday (in a couple days) Bob!

Wednesday, April 25, 2007

Aire Comprimido

Note to everyone: Using compressed air to remove dust from your laptop's heatsinks can lead to a 40 degree celsius (72 degree fahrenheit) difference in your CPU and GPU core temperatures. I highly recommend doing this once every six months.

So yeah, my laptop is much happier now. It took me an hour and nine stores to find compressed air in a can, and it cost me an absurd $13, but it was worth it. My laptop no longer turns off during DotA games (it doesn't even break 60C anymore), and my left hand no longer rests on a furnace when I type.

Also of interest, I am withdrawing from classes here for the month of May to focus on Magic site stuff. Hopefully some good will come of this!

Sunday, April 22, 2007

Contraption

So the new Magic set is on Gatherer now. The cards generally look sweet, and since it is supposed to be a set of cards pulled from future Magic sets, there are a ton of new keywords and weird abilities. Fortifications for one... and hints of strange new card types like 'planeswalker' and 'tribal' (in addition to creature, enchantment, land, etc). Also, one card mentions 'contraptions' ... but the set itself has no contraptions. Quite mysterious, but well themed.

Anyway, it's about to pour here, so this will be a quick one. I have mainly been working furiously on my AJLA stuff to get it done in time, and it has been going well. Magic site has sadly been on hold as a result though. I have been writing down ideas as they come to me however.

Friday, April 13, 2007

Holy Cards Batman!

So a new Magic set comes out in two weeks! I wish I was back so I could participate in the joy of opening boosters. Oh well.

Stayed up late last night (a whopping 2am, how weak) working on the site. It was fun times. I hope to get some more done this weekend. I am trying to get it together enough to deploy a test version to another machine so I can do payment integration. That should be a fun problem to solve. Also a few big areas to rough out, and some general prettying up to do. Hoping to show it off to Bob and Mark soonish.

Also, to continue my drewishness, I added a sheet to my spreadsheet to track the balances of my credit cards, in an effort to control spending like I used to. My freshman year of college, I lived on $600 a month. I know that is impossible now (my rent was a paltry $188 back then), but I'd like to try and shave $100/mo or so.

Of course, I could just go back to Ramen and Spagetti-O's and shave a couple hundred right there. But I like Chipotle and I like Taco Johns, and recently I have been quite proud at my fledging ability to cook. For instance, yesterday I took drum sticks and covered them in garlic and oregano and cooked them. That is an accomplishment for me. I also found that fruit is good when you don't let it rot on the counter.

But I still miss Chipotle.

Thursday, April 12, 2007

Rain

So it has been rainy and cold for about two weeks now. It has rained nearly every day. I just want some warm weather!

Just read this excellent article on hiring and retaining high quality programmers. It reads like a laundry list of complaints I have about my current job. I have been working away on my work requests, trying to get stuff done in time enough to not get fired. Sadly at this point I almost kind of want them to make the decision for me. If only it weren't for money and my need of it. Just hoping to stay employed through the end of May.

In other news, steadily improving my Ruby-Fu. I desperately need a graphic designer though... harry? I take comfort in the fact that Google is so minimal because Larry and Sergy were bad at graphic design too, but I'm not trying to create the next Google either.

Yesterday I was reading a wiki about blocks and procs in ruby. I'd forgotten how much fun this stuff was. It brought back my Scheme and I'm resolved to read through Structure and Interpretation of Computer Programs again. Need a way to not have to worry about money and just nerd it up again. I'm determined to find a way!

Anyway, back to coding.

Monday, April 02, 2007

Examen y lluvia

Today was our monthly test. Considering I only studied for about 5 minutes before they handed it to me, it went really well. Pretty sure I aced the Conversation, unless she grades my essay down a bit for the usual gramatical mistakes. I think I write at about the 8th grade level, so you can picture the red that covers my papers when I get them back.

Grammar went pretty well too, but I'm only seeing maybe an 85 on it. Oh well, a 50 is all I need.

Last night I finally straightened out my subversion issues, and can move forward on the site again. Only problem is that I really need to get my AJLA work done this month, so I should probably just start on that and get it out of the way.

Bob: Since I never see you online anymore, if you read this, you should think of ways you think it would be easy to add cards to your collection/deck on the magic site. My current thought is have search results with a link to 'Add to Collection' ... but I didn't know if this would be clunky. I don't want the user to have to go a million places in order to accomplish something like adding new cards to his collection or finding cards to build a deck with.

Anyway, the battery is about dead on my precious computer, so I'm going to tromp home (in the rain) and do some chores. Adios todos!

Thursday, March 29, 2007

Externals

I hate going 10 days without writing.

Internet is still on hold. They needed on the roof to install the antenna, and I don't have the key. The process to get the key involves asking my management company, which asked my community president (of the neighborhood), who has to ask everyone in the community if they object to the antenna. It's a wonder anyone makes any improvements at all to their homes with such a process. Sadly, I'm sure many neighborhoods in the US operate similarly. Something tells me this will drag on for a week or two, at which point, if they say yes, I'll have to get a new installation appointment and wait another few weeks. If that is the case, probably not going to be worth it.

This week a group of high schoolers from Burbank, California is here. I guess it is their spring break. Unfortunately it has been raining and cold all week, some spring break for them. They seem to be making the best of it though. Three are in my class and they are amusing. Talking to 16 year olds makes me feel ancient though. When they asked what I studied, I told them that I had already graduated. Then they asked what college I was planning to attend. It took me a second to realize that they thought I was talking about graduating from high school. Heck, I've been out of college well over a year now. Crazy.

Spent the last hour or so fixing my screwed up vendor directory in my rails project. Not entirely sure what was going on, but it would error when I tried to update, commit, cleanup, delete, or change the svn properties. Finally resorted to nuking it completely in the Repository Browser and exporting the latest rails tag and all the plugins instead of using svn:externals. In the process of committing all that now. I think I like the idea of keeping it cleaner anyway.

Bah, today is just not my day. Commit won't work because of a subclipse bug. And, long story short, have to wait for Joe to do something tonight before I can finish committing it.

Tonight I have to write a paper for conversation class. Que Guay! I'm just going to quit writing before I start whining.

Monday, March 19, 2007

UI

The last couple days I have been schlepping my laptop around to various places to use free wifi. In the process I have had to reboot many times (I dual boot gentoo and windows [for games]) in order to play a random game of DotA in between programming sessions.

If you are like me, by the time your computer boots up, you already have about six programs in mind that you need to start. For instance, booting into windows for DotA, I open up the healthbar hotkey script, the war3 banlist, gaim (to see if any of my friends want to play), and War3 itself. When I boot into gentoo, I usually open gaim, firefox, eclipse, a terminal or three, etc...

The continuous rebooting this weekend led me to discover the single most annoying UI problem ever in the existence of man... focus grabbing.

For instance, in windows, I get the hotkey script and banlist open right away, while war3 is loading up... but then after I'm into War3 trying to get on bnet, gaim decides that it is very important that I see my buddy list load up. After this annoyance, I'm back in War3, maybe even into a game, when someone IMs me. If a convo window is already open, no problem. If it opens a new convo window, obviously it's necessary to rip me out of my game and show me my new message (*sarcasm bleeds*).

You would think that Gentoo would be better to me, but every new app I open demands my attention at random after loading. Azureus grabs focus every time I add a new torrent to it. Gaim acts the same as in Windows. Eclipse plays nice mostly, but firefox pops up windows demanding my attention all over the place. (Although I did find the awesome download bar plugin that minimized some of that.)

Grabbing focus should be on the canonical list of UI no-nos. It destroys the user's flow. It's like a forceful context switch for your brain. I believe this is why popup ads are so annoying. They are basically a forced context switch. Instead of continuing with whatever you have at hand, you must pay attention to this interrupter. It is both disorienting for novice users and downright death-by-1000-annoyances for experienced users.

If software needs your attention, it should flash in the taskbar. It can play sounds. It can blink it's systray icon. It shouldn't just assume that whatever it needs is more important than whatever you are doing.

The same goes for forms in webpages. I can't count the number of times I have been typing in my password to a bank/credit card site and the page finally finishes loading and an asinine onload event moves the focus to the username field. This is especially annoying when someone is looking over my shoulder. Nothing better than having my password shown in plain text.

So I make a resolution to never manipulate the focus in any software I write. I will use a message area, blinking taskbar items, whatever. I only wish others would do me the favor of removing their focus grabbing shenanigans.

Thursday, March 15, 2007

Das WiMax!

Well finally got a notice that they are coming to install interweb access in my apartment on the 23rd. This means 24/7 net access, which means that I will just sleep less and get out less. On the upside, I won't have to move around constantly searching for net access. Also, instead of 4-5 hours a day (mostly work), I'll have on the order of 10-12... not to mention I'll finally have something to do on Sundays.

Magic site work is coming along. Can now add/remove cards to/from your cart. Next up is the actual price/availability matching. That should be pretty fun. Hoping to work through it Saturday.

Today has been an odd day in general. I just feel like doing nothing at all. I just want to watch a movie, eat junk food, and sleep. No idea why. Hopefully it passes soon.

Sunday, March 11, 2007

Paris

So my brother is stuck in Paris overnight. Te lo juro, nunca debes volar al aeropuerto de Paris. (I swear, you should never fly to Paris' airport.) Not only did they lose his bag for a week (he got it back about 12 hours before he left), but now he is stuck there for a 24 hour layover. I guess at least his Europe trip was interesting.

Not much else is new with me. Battery is about to run out, so this will be a quick post. Trying to get as much as the new SG-1 downloaded before that happens. Also looking up vocab to use tomorrow when talking to Joaquin about withdrawing from class.

Hoping for an 80% refund... considering I got a 15% discount originally and my cheap living conditions, I can live with a bit of wasted money. If not, then I guess I'll finish out the courses.

Friday, March 09, 2007

Granada

Well my brother and I have been tourists the last couple days. I took him to Gibraltar on a day trip yesterday to see the Monkeys and the coast of Africa. Today we came to Granada, and are about to head up to the Alhambra.

I must confess that I am looking forward to getting back on the magic project. Problem is that with school and work, this isn't likely to happen for several days. Oh well, at least I can try and squeeze it in. Honestly been debating about withdrawing from school to work on it more full time. I think I might go talk to Joaquin about it on Monday. Part of me thinks its a waste to be in Spain and not focus on learning Spanish, but I don't feel very focused on it anyway. Work I have decided to put up with out of necessity, but at least I can focus on being nerdy most of the time.

Anyway, I feel like I rant about the same thing a lot here, so I'll drop it until something changes.

The weather has been awesome the last week. It's getting into the 70s pretty much every day, with lots of sun. Hopefully the cold days and nights are behind us now.

Well, Ben is back... time to run...