Friday, June 20, 2014

[coding] Code Crime

Please, consider the following:

public enum EventType {

    SOME_EVENT,
    ANOTHER_EVENT;

    public long timeElapsed = -1; //and this fucking gets set at multiple places in the code
    //and why the fuck does this compile?!?

}


That is all.

When asked why we can't do this, a monstrous, unstoppable tide of righteous anger smashed into an immovable bastion of self control, and I ended up growling "Its an enum" through gritted teeth.

Monday, June 16, 2014

[coding] Fucking Programmers, Part 2

Continuous Integration is a subset of Continuous Deployment, that sexy thing that programmers managers love to talk about getting it.  I actually had a service called Pokey that was fully on Continuous Deployment, and had a checkin-to-production time of 6 minutes.  Unfortunately my manager, Mr. Crankypants, told us to turn it off for unrelated reasons, but I still remember how easy it was to get there.  So, I went ahead and designed a continuous integration system for my current team.  You check in, it auto builds, and it automatically runs the tests.  My manager was super impressed, and this was probably the biggest contributor to a promotion.  Unfortunately (foreshadowing), no one else on the team seems to understand or recognize the point of continuous integration.

Anyway.

I was only gone for three months.  In that time, the team managed to:
  • make dozens of sloppy changes without any regard to design
  • introduce a feature that only works because of a memory leak
  • broke continuous integration, and never fucking checked it, so that
    •  we can no longer automatically build the drops to give to customers
    • and the tests no longer run automatically
  • broke the command line form of the build, which prevents us from automatically generating documentation, and also is going to look make us look like fucking morons as soon as anyone outside the team finds out
  • broke the unit tests
  • broke the test ads by commenting them out, instead of moving them to the test project
    • including a special test ad that I spent a week convincing a team to write for us specifically so we could automate more testing
Again, this shit was working when I left, and it is now broken.    They pretty much broke everything--everything automatic.  There is this test framework that you have to run manually.  Its called "automated test framework," so that's funny.  The manually automatic framework does work a little, except for the broken tests.

I am gaining a very interesting perspective on software development.


Friday, June 13, 2014

[coding] Fucking Programmers

At work:

Intro:  one of the devs--my only dev--seems to have improved considerably during my absense.

Foreshadowing:  seems to

So, he copy and pasted one of my unit tests, and then he uses a FIVE MINUTE THREAD SLEEP in his fucking test.  Who the fuck thinks that's acceptable?  That's worse than a broken test.  When a test is broken, you look at the error message and figure out why.  When a test thread sleeps for a whole 5 fucking minutes, you start to wonder if the ADB bridge went down, or maybe Eclipse put itself in a deadlock, or maybe your fucking phone crashed.  Who knows?  You don't, because you're just sitting there reading reddit with the frozen junit test in the corner of your eye.  The entire test run takes--or should take--less than 5 minutes.

And the most annoying thing is, it doesnt have to be 5 minutes.  I've already written the configuration override gear that lets you change the timing values in the unit tests.  In fact, the lines that change similar config values were part of the shit he copy & pasted from the test that I wrote.

Five fucking minutes.

At the Startup:

The contractor I asked to integrate dropbox functionality has managed to find some kind of mysterious Android SDK that does not appear anywhere on the fucking dropbox website.  I don't even--wait, I just figured it out.  Man that just goes to show:  if you want to solve a mystery, start bitching about it on blogger.

Anyway.  Dropbox thought it would be fun to have one API on their website, complete with documentation, and then another, completely different API, in the .zip file that you download when you download the SDK.  I'm not even kidding.  There isn't a single class file here that matches anything on the website documentation.

Normally, when I write java code, I use a special javadoc website called google, where I just type something like "java InputStream" into the magic box and the javadoc is the first thing that pops up in the search results.  Unfortunately, "java AndroidAuthSession" does not return anything useful.    I'm going to have to actually manually navigate this javadoc folder in order to find the documentation I need.  What am I, Amish?


Conclusions

My accomplishments for the day include fixing the unit tests that someone else broke for the second day in a row, and also finding a javadoc hidden in the bowels of a zip file.

Monday, June 9, 2014

Imagine

Today, one of the devs on my team sent me an IM.  He mentioned a current issue we are dealing with, and then referenced a specific line of code.  For a brief moment I experience some kind of profound joy.  I thought to myself, "this must be what it feels like to write code with other people!  I want to do this more!"

Then my coworker proceeded to suggest that we solve a performance non-issue by introducing a race condition.

I'm going to remember that feeling though, and I'm going to find good people to work with, somewhere, somehow.

Sunday, June 8, 2014

Days of Future Entrapment

Image you are at home watching fighting on the TV and hear a knock at your door and you find two obnoxious strangers wearing white shirts and ties who ask you:  "Do you have time to talk about gay people?"

Thanks to some incredibly poor dialogue that is how it feels to watch most of the X-men movies--but not the recent one, not Days of Future Past.  Days of Future Past has actually replaced such preaching with plot and character development.  And don't worry, the plot does still revolve around the struggles of a minority that is different from others.  I could have used more fighting though; there were only two battles of consequence, and they were extremely short.  Still, it was the best movie.  

In other news, I tried to meet some girls on craigslist.  I was both disappointed and intrigued when I found that I was talking to, allegedly, two ladies of the night.  The plot thickened after about two carefully worded emails exposed them as cops.  Now, I don't know what the going rates for a likely STD-ridden blowjob, but  175 "roses" sounds ridiculously overpriced.  I briefly considered setting up a meet with them and bringing, literally, 175 actual roses, however since roses do have a real value, they would count as consideration, and I could probably still be arrested.  So instead I told them that I hope they get shot the next time they make an arrest, and they responded with an email full of curse words, mostly in all caps.

Tuesday, June 3, 2014

Won't Look Down Won't Open My Eyes

1, 2, 3 1, 2, 3 drink
1, 2, 3 1, 2, 3 drink
1, 2, 3 1, 2, 3 drink
Throw 'em back till I lose count


I've been in NYC for about a month now.  You might be wondering how it is going.  I have ten drafts  of blog posts detailing the misadventures so far.  Unfortunately, the bar for that shit making it onto the open internet keeps getting higher, mostly because I have become sick of my own whining.  The only things that need concern me now are the things that I can change.

On the subject of things I can change, I have made some progress.  Even though my furniture and most of my clothes are still allegedly en route (more likely on the bottom of the ocean or in some police officers house), I have started buying new clothes.  I found some affordable button-down shirts at some store called Uniqlo, and I look pretty damn good in them.  I intend to buy enough so that I can wear them every day instead of my standard short-sleeve-over-long-sleeve-t-shirt look (with optional REI jacket) that I have abused far past the point where it became a de facto uniform.  So, you could say that I have now improved my fashion sense to where it was when I was 24.  Still counts as progress though.

Next, I signed up for some sports league...it was probably volleyball.  So I signed up for that, and also I'm going to start going to a drop in class for On2 Salsa.

I googled something about "best restaurants for solo diners" and I will start going to those restaurants alone.  I don't really like dining alone, but apparently that's what you do when you...are alone.  I have tried drinking in a bar alone recently and didn't like it.

On the subject of friends...I am effectively starting from ground zero here, and I am not sure how to break in.  In Seattle I invited people over to play that Settlers game...unfortunately I have like no furniture and my apartment looks like the battlefield where a war took place among factions of sentient cardboard boxes.  I actually have a number of people in the Philly area that I want to invite up to hang out in NYC but I have nowhere for them to sleep, except for possibly a couch.  Maybe I should just spend a few weekends in Philly.

Work is exhausting.  I spent 2 hours crafting a single email today.  The email was mostly successful in its purpose, but afterwards I felt like I needed a cigarette, and I was too mentally exhausted to get real work done the rest of the day.  Right now, I literally don't know how I will find the time to survive at work and also get this start up off the ground.  At my day job, I have people filing bugs on my team because our software fails to live up to what is effectively an imaginary Feature Spec.  In fact, you could say our feature spec remains in a permanent state of quantum superposition.  You can't know if something is in the spec until a team files a bug about it.  In the future I am going to try to not hold myself responsible for everything that happens on this project, but how do you come home exhausted from all that and then work on a completely different project?

The startup is an even bigger problem.  I can't quite tell you what happened, but there has just been major drama between the founding members, and the one who doesn't do any coding is now taking a 2 week vacation from not coding.

I was at a wedding over the weekend.  My family seems quite distressed that I am still single (I am the last unmarried member of my generation) and they seem to believe that the reason I am single is because I've had no one to tell me who to talk to, tell me who to dance with, or manipulate me into sharing a 10 hour car ride with someone.  Their constant interference caused my wedding game to suffer, although I have to admit that talking to girls is already close to impossible if my family is around.  The reason for this is difficult to put into words.  Anyway, I don't know what my romantic future holds, but it has become clear to me that I must walk this path alone.

But none of that really matters.  You know whats really important in life?  I need to go on a fucking roller coaster.