Thursday, March 1, 2018
- Dan Terminus - Automated Refrains(album)
- John Frusciante - The Empyrian(album)
- Jesus Lizard - Goat(album)
- Melvins - Houdini(album)
- Kyuss - Welcome to Sky Valley(album)
I've been thinking about abstraction a lot recently. Mainly in the context of computer programming, but I view life in a holistic manner so maybe these thoughts apply in other areas.
Generally, an abstraction is made to hide complexity. You might want to build a class that can be reused many times. This is generally seen as a good thing. Abstract all the things - it wouldn't do for us to be rewriting the same code over and over again!
The problem that I seem to be encountering quite a lot though, is when the abstraction tries to do too many things. Maybe there are a lot of similar use cases that resemble each other enough to want to cram them all into one abstraction. It appears like this is a tempatation for a lot of developers, but I feel like it's the wrong way to go. I often times find myself reverse-engineering these abstractions (classes, components, etc) in order to account for new business logic, new customer requests, or new use-cases that just don't fit in the context of the abstraction. It can be quite painful.
In the interest of self-presevervation, I've unlearned a few things. Sometimes, a little bit of boilerplate is a better option. Sometimes, sacrificing two extra lines of code that could be eliminated by an abstraction, for the sake of clarity (and posterity) is a worthy tradeoff. Rather than making my code as reuseable as possible, I now strive to make it as clear and understandable as possible, approaching abstraction cautiously and only implementing new abstractions after I'm certain they're required. A hidden benefit of this approach is that I find myself gaining a much deeper knowlede of the problem at hand before I even attempt to shoehorn it into a class somewhere. This makes my solutions neater and more elegant by the time I'm ready to produce them.
In a nutshell, it's not wrong to be cautious when planning your abstractions (classes, components, etc). It's much easier to implement a new abstraction and switch to using it in your code, than it is to crawl your code and unravel a bad or poorly thought out abstraction and remove it.
I drag myself out of bed in the morning. I try to shower at night because if I do so in the morning, I'll take up too much time and be late for work. Shower thoughts.
I'm always, always tired. I have lots of side projects going on. I stay up too late. Get up too early. Half the time when I get to bed, I can't sleep. I lay awake for hours thinking about blog posts, website design, Python, or some other thing. The other night I lay in bed fantasizing about living in a van...for three hours. I didn't realize that I wasn't sleeping uptil 2AM. My brain is weird.
I commute to the office, fighting the other angsty commuters and school buses, the hordes of humanity going about their day. Call me a skeptic but I look at this routine and question the purpose in it all. Why are we doing this to ourselves? Why am I doing this to myself? That's before sitting at my desk.
My office is a small, windowless closet. I can't tolerate the abrasive flourescent lights, so I work in the dark. Occasionally I come out and say "hi" to the other plebes in order to try to convince them I'm human.
I spend hours generating silly CSV files from databases with Python scripts, fixing "data integrity" issues on the backend of our crummy web app, and trying to find meaningful work to do. After getting the fifth "trivial" request for the day, each of which requires thirty seconds for someone to imagine and hours of intense effort on my part to accomplish, with nary a thank-you, I'm spent. If it's been a bad day, I've had someone who is totally and completely ignorant of the things I do harangue me because I haven't fulfilled their whims to the letter.
I try to remind myself that it isn't that bad. I have "first-world" problems. But then the fleshy logic-machine between my ears kicks into gear and asks, "Why do you have to remind yourself that things aren't 'that bad'? If they're not THAT bad, then they're not good."
The truth: I'm tired of living a life that isn't that bad. I want to live a life that is good. If only I could figure out what that means.
1. Sleep as little as possible.
2. Start watching TV or surfing the internet from as soon as you get home from work until you're too tired to stay awake. For maximum effect, do both at the same time.
3. Make sure to avoid working toward personal goals outside of working hours. Productivity belongs to your boss.
4. Never go to the gym. Avoid all forms of exercise. All time not spent in front of a glowing screen is wasted.
5. Remind yourself daily that there is no god, no higher purpose, and no afterlife.
He was digging his toes into the sand they way he'd done that night a year ago when they met. The sensation of the individual grains rubbing against his skin triggered a flood, a year's worth of experience compressed into a moment. The month was March, her name was April.
He was a black hole. She, powerless. Motorcycles and leather, running from the cops - he was invincible and nothing could touch him. She tried to keep up, but the drugs were too much. He found her in the bathroom soaked in vomit, already gone.
"There was nothing I could have done."
He sipped warm beer and gazed at the bonfire while he lied to himself.
I have been accused of being a hipster a number of times. Since we're nearing Fall of 2017 and I don't keep up with things, I'm not sure if hipsters are a "thing" anymore. Tally another mark against me in the "hipster" field.
So what have I done to deserve this grievous accusation?
So yes, apparently I'm a hipster...but wait! I'll make an argument here...the hipster distinction hinges on motivation. WHY you do something is what really matters, and what really makes you a hipster...or not.
I'm aware of a witch-hunt aspect to this whole hipster thing; if you attempt to defend yourself, that makes you look even more guilty. Well if I'm guilty anyway, I might as well explain myself!
My hoodie is my security blanket. I don't like having my skin uncovered, for some reason. Black, because I like un-adorned garments, because I don't like to draw attention to myself. Ever seen a hipster with a massive handlebar moustache, a man bun, and 37 tattoos? Hipsters LOVE attention! My hoodies are not hipster.
On the surface, this is really a hipstery thing to use. "Old things are so much cooler! I'm so much cooler than you modern digital people!" Here's the deal with this one: I've had the same camera since I was about 12 years old. I spent about $300 on it, a huge amount of money for me at the time. Since then, I've been dirt poor, going to college and paying back student loans. I have a lot of nice lenses for my old camera, and I'm familiar with it. It does what I want. I don't show it off to people, unless they happen to ask about it. Boom - not a hipster.
Like I said before, this one looks pretty bad. The reality is this: I've had my typewriter since before I could afford a laptop. Typewriters don't need electricity. And I can't get any writing done on the computer, because it's too fun and distracting. The typewriter is the perfect tool for an internet-addicted writer. Send me to hipster hell if you want, I'll deny my guilt until the very end.
Apparently, not being trendy and not caring about your appearance is the new trendiness. I don't have much to say about this one. I just don't care that much about my clothes, except that I need them to be comfortable, not too smelly, and to draw as little attention as possible. I don't like attention.
Look, I like weird music. I'm the first to admit it. But here's the true hipster test for music: Hipsters want to tell you about all the obscure music that you've never heard about, so they can lord your lack of knowledge over you. They're part of a super special, smart music club that has refined tastes - and you're just a rube that wouldn't know a turd from a trombone. I, on the other hand, share my favorite music with people because I think it's good enough to share. I recognize that we all have different tastes, and no taste is inherently better than any other. Except for rap. I just can't do it.