Sunday, February 24, 2013
On Productivity, Part 3
Some studies/evidence has compared programmers to each other for the exact same task, such as a university assignment. This seems pretty awesome. Unfortunately, it makes it hard for a single person to test modifications to their own productivity.
For now, I'm going to go with the super scientific emotional measurement: do I feel like I'm more productive now?
Wednesday, February 20, 2013
On Productivity
So far, best improvement step seems to be meditating for 30 seconds before beginning a work session, and also making a big deal about the time being a "work session" to yourself.
Now I just need to stop checking email and writing in my blog.
Tuesday, February 19, 2013
Todo
2. Become a 10x programmer
2b. Unless being 10x involves finding and using other people's shitty code. If that's what it takes, I'd rather not be a programmer.
How
First list I found that doesnt suck (well, not completely): http://www.listry.com/list/93005/tips-for-being-a-more-productive-programmer
--I've already wanted to keep snippets of android code lying around.
Another ...well it has at least one good idea (turning off email): http://vimeo.com/7721974
Except most of the people writing articles about being more productive are stupid. Here are some rebuttals to dumb shit I see.
1. Code Reuse is overrated. Some other guy somewhere wrote a poor implementation of something, didn't comment or document it enough, and now you're supposed to go spend time learning how to figure it out. Worst case scenario, it takes longer to learn this shitty implementation than it would to write a better one, and using it in your project marries your project to that implementation, which will cause great pains later when you rip it out. The biggest example of this is the reliance on ridiculous service frameworks at my previous job. I was overjoyed to arrive at my current one and find out that the devs were smart enough to use HTTP.
2. Commenting Code is a Good Thing that brings balance to the force. This idea that code is self documenting, and this idea that comments mean you need to split a function, is complete bullshit. People who dislike commenting are either lazy or misunderstand their purpose, thinking that they are being asked to document the "how" of the code. I can already see the how. I'm reading the fucking code. I need to know why you did that. Oh, are we deliberately misspelling that word because someone wrote a shitty service that crashes when we spell it correctly? That needs to be in a comment.
3. 100% Unit Test Coverage?!? You are a fucking moron. Not only should 100% test coverage be impossible in SOA without making network calls, but somewhere between 70 and 80 you've crossed a dangerous line and have begun wasting your time writing unit tests that verity methods are throwing exceptions for null arguments. If you need to write unit tests to know that your null arg checks are working, you picked the wrong fucking line of work, pal.
Increasing Productivity
1. reduce distractions
1a. disable email and other notifications, turn phone off
1b. music to keep environmental noise out
1c. some kind of Do Not Disturb sign on my door??
2. fake meeting on tuesdays so i can code
3. deep knowledge of language? Will this actually make me faster? Maybe deep knowledge of platform (android)
4. possibly find better tools (vim for visual studio?)
5. solving problems by hand makes you dumber? automation / time boxing / r.o.i. / efficiency / avoid total wastes of time
6. weird thing about "not programming" -- but I've heard of this bridging-the-gap concept before
There may be a flaw in all of this 10x bullshit--I think the studies measured performance using lines of code, which is awful. Some of my best programming has added negative thousands of lines of code.
Thursday, February 14, 2013
And so it Begins
After deliberately acting like a dick all the time at my last job I chose to change strategies and be all nice and political this time around.
Unfortately the senior dev on our team just submitted a code review for a change where he spent 25 lines pulling a value out of a map (a.k.a hash table, dictionary). This is typically done in one line. And he doesn't want to change it.
For those of you who aren't programmers this is like...I'm actually at a loss for analogies.
Suffice to say, im about to get a lot of practice using tact.
Tuesday, February 12, 2013
TODO
http://www.reddit.com/r/LetsNotMeet/
These stories are like crack. I have been wanting to find a good villain for my road ninja characters, and summoning hatred for cops is exhausting. Creepy dirtbags though...I mean wow. I can't stop reading these stories.
Anyway, the important thing is, I think I need to buy a katana and keep it out of sight near my bed. Well, I also need to learn krav maga to win bar fights, but most importantly, I need a bedside katana. If I am ever in danger, it will probably be the one opportunity in my entire life to be the guy who whips out a katana during a real situation. Even if no friends are around, still worth it. Because the attacker will know. And he will remember that I'm the guy with a five foot sword.
Unfortunately katanas are expensive and I need a new guitar first.
Saturday, February 9, 2013
Smoking is Gay
Rum, on the other hand, tastes delicious, and makes you a friendly person with lower standards.
Thursday, February 7, 2013
Two Lives
So.
I am putting off personal website and revamping profile pictures until I look good with my shirt off. Planning to start weight lifting in early to mid march, probably under the tutelage of a personal trainer because I currently think a "dead lift" is something that involves zombies. I don't know how long it will take to look good naked, but I'm pretty fat, so we're gonna play this buy ear. I think the way this will work is I'll find a shirtless picture of a male soap opera star, and declare success when my body looks like his.
Anyway.
Then comes the personal website. I've been thinking a lot about this, and about the champion magic player who took a girl on a mediocre date and was outed when she went home and googled his name.
If I take a hot girl on a mediocre date, and she's on the fence, one thing that needs to not happen, ever, is for her to go home and find that I'm an accomplished computer scientist at a top software company with casual obsession for tackling math problems that have stumped the world's brightest minds for decades.
Similarly, if someone is thinking about hiring me...they need to not ever read anything I write on this blog, or my political opinions, or really anything about some of the shenanigans I get up to.
If a hot girl googles my name, she needs to see videos of me winning rally car/sportbike races, astronauting on the weekends, working in the peace core, skiing in the alps, providing aide to some kind of biracial and bisexual kid in a nonexistant third world country, sitting on my ass in france, rescuing kittens, adopting a dog from a rescue shelter and drinking shitty beer. And teaching a yoga class. And a zumba class. And cooking shit. And playing in my band--or a band. Oh and salsa dancing with two girls at once. I recently found out this is possible. Must remember to get my salsa teacher to show me. And then one shirtless picture, one of me in a suit, and one of me walking towards the camera in the style of almost every FPS console game's box cover. And a video of me doing something illegal on a motorcycle that I can't describe here.
How can you separate these two? How can we make an insane personal website only show up for girls and a nerdy professional site only appear for corporations? And keep in mind, many hot girls work for corporations. So IP addresses are out.
My best idea, so far, is to maybe have two names. My real one would have to be the one of my website, because it would be weird legally--wait this won't work. All of my friends use my real name, so if I meet girls through friends of friends...shit shit shit.
Also, we have other problems. Some things, like legos, should go on neither (so now I need 3 websites...) and some things should go on both, like my piloting career that I may start up again. That means I couldn't use the same flying pictures on both because someone could TinEye a flying pic on one sight and find the other.
Ok if an employer googles my name...not as important as when a chick googles my name, because employers can use my linked in. However, if some employer googled my name, and they see the personal website, they would match my linked in profile to the personal website and know it was me. How bad is that.... I'm not sure.
Living in a way where you are exempt from the social consequences of your job, vis a vis the career consequences of your personal stunts, is not easy.
Ok, no, I got it...maybe. Sort of. I could have a quiz on the professional site, such as: "find a euler path in this graph to enter." And on the personal site...ah shit. And this doesn't solve the lego problem.
Ok, one thing...typically when I go on dates, girls don't find out my last name right away. So, if we define the problem solely as how do we prevent hot girls from discovering hobbies of mind that they think are nerdy, maybe the best defense is to never tell them my last name.
Ok forget all that. Handles/screennames/nicknames are a bit more acceptable in social settings. I've been hearing for over a decade about blah blah blah your email address should be your real name. Pff.
In conclusion...I think I'm right back where I started, regarding the whole personal website thing. Its ok. I'll mull it over on the treadmill.
Next, I have to make an extremely important decision about chest hair: Sean Connery or Daniel Craig? Actually this might vary based on the girls around me.
[Edit]
Disregard everything in this post. That was pretty stupid. I'm drunk now, and even after that many captains I wouldn't write this shit.
[fiction] Christine Millar
Character notes
Only of biff's compatriots with any kind of maturity. Level headed and destined for normal and well balanced life. No interest in melodrama or civil disobedience or pranks. Knows what real problems are and has left them behind to become well adjusted high school senior
Only positive influence is a black stepfather and his black son by another marriage. Her mom didn't stay with him but Christine never lost touch.
Obsessed with journalism and world affairs. Interested in middle east and eradication of polio, etc.
Date raped while asleep at a party. Alcoholic white step father beats the shit out of the teenage frat boy who did it and goes to jail.
Black step father is an anti-stereotype while white step father is a full blooded white trash stereotype.
Christine gets abortion but later discovers that her birth mom tried to abort her. This is the single worst crises of her life and is solved when snow explains how he is able to live either amorally or with morals that are are complete contradictions of each other (his thesis is that both pro life and choice advocates are 'cunts' and there is no moral solution to unwanted pregnancy-everyone is wrong and all that matters is what you do with the time you have left). Christine makes the switch from living about how the world should be to how the world is and leaves behind childish notions of whatever
Christine has few friends because she is ridiculously hot--her friends routinely abandon her when she gets serious with anyone. No longer trusts. Likes being friends with snow because even though he might want to fuck her, she knows he gets too much pussy to care if he ever does. She sometimes longs to be one of the popular, slutty girls. This has something to do with her attraction to biff
Christine digs into snows past and, as a sympathetic character, realizes that political correctness obligates her try to force herself to lose interest in him when she finds out he has been scarred by someone from a protected social class, and his very name is a an antithesis of the person who betrayed him.
Possible themes of religious oppression. Maybe Christine believes in God but is ironically oppressed by crazy hippocritical religious mom, because Christine's interest in journalism and world affairs shatters the naive bubble of ignorance that Christian high school girls are supposed to have. (Ex: gets grounded for simply knowing the symptoms and treatments of common stds) . However theme must be portrayed in a way that says "fuck you" to religion haters of the kind that post passive-aggressive whiny shit on reddits athiest channel. Perhaps Christine retains her believes but with an open mind and seeks to test her beliefs empirically (like James randis horoscope trick)
Christine's body language is like L
Christine is not bisexual but close-enough for a subplot involving a female secret admirer. Snow makes it his mission to get her to hook up with the other girl. This subplot is how the rose becomes her symbol. This subplot combined with her rebellion involves Snow taking her to a sex shop (she must overcome feeling like a criminal and pervert) which is the cause of a chain reaction that culminates in her relationship with Biff. Possibly include themes of female sexual liberation that sometimes occurs in the early 20s.
Her exploits with Biff should put 50 shades to shame AND make its main character look like a giant pussy. Also Christine's nuanced views of grammar should shame the awful prose in that book.
So: why does she buy a ninja? Why is it pink?
The minivan that kills her is not speeding when it does so. It is driven by some bitch of a soccer mom who advocates for speed limit enforcement. This soccer mom is also religious and maybe a die hard supporter of Israel with racist views against Palestinians and a hatred of Arab culture.
Ah I got it. Christine buys a bike because it is part of her crises rebellion when she starts breaking rules. Speed limits are a symbol of rules imposed by the outside world which harm and imprison us until we realize we can be free.
By the time she dies Christine has lived a life most people only dream about. She is a female Achilles. Her Achilles choice is presented by her black stepfather whose is the son of a Red Tail.
Christine's death is the symbol of the need for men to learn how to move on.
After her death Christine (and her ninja) becomes a superhero ghost, functioning as a deus ex machina to trump Slasher horror that I hate.
Tuesday, February 5, 2013
Monday, February 4, 2013
Antipatterns
I like to complain a lot about working on projects designed by people who think spaghetti code and unnecessary complexity are a good thing.
In fact, most of the programmers I see fall into two camps. Not necessarily an on/off thing, more like a continuum. On one side, you have people who write shitty code and then get promoted or switch teams. On the other side you have programmers that get stuck with the shitty code, who either make it more shitty, slightly less shitty, or in my breed, perform herculean ninja refactoring to create good code when no one is looking, for no other reason than staring at shit all day makes us want to slit our wrists.
Why then do we even bother focusing on good coding practices? They all get corrupted in the end. Don't believe me? Sneak into my work and I will show you the terrible power wielded by people who use design patterns wrong. Object oriented programming can be a two edged sword, because it can make things that much harder to untangle. There is no language construct that can force people to separate concerns properly.
I've heard starving startup programmers wax prolific about the wonderful tidbits of their favorite language. What they don't understand is that it is just a fantasy--most people who make real money doing it will be doing it wrong.
So...if this is the way of the world, why not become experts in the most common antipatterns committed by shitty programmers? Oh a God class? No problem. Spaghetti code? In my sleep. Race conditions? There's an app for that. Cargo cult programming? Please. Copy and Paste programming? Come on. Some moron implemented the entire program using completely static methods with no separation of concerns? Consider me your static sniper.
That last one is actually quite true. Thanks to my current project I am getting quite skilled at fixing static methods. I mean these guys were really into it. They threw blocks of code that were only needed once into static methods of classes that shouldn't even exist. That's...special.
If I keep going with this I might even be able to write a book.
