Things I Hate

This week’s theme: Things I Hate.

Here are a few things off the top of my head, in no particular order:

1.  When people waiting to get on the train stand right in front of the door and don’t leave room for people to get off.  I know, you’re in a hurry and your time is more valuable than mine.  I get it.  There’s this thing called the laws of physics, though.  Turns out two objects can’t occupy the same space at the same time so you need to leave me room to get off, so you can have room to get on.

2.  C++ code written by people who don’t understand memory management.  There’s lots of bad, hard to maintain, hard to debug code out there, but this is frequently in a class of its own.

3.  Cyclists that ride against traffic.  Not only are you going to get yourself killed and you’re making the rest of us look bad, you’re also in my way when I’m riding in the bike lane going the right way.  Cycling in Boston is hazardous enough without having to swerve into the road to avoid people who are going the wrong way.

4.  That plastic packaging that’s impossible to get open.  Apparently the companies that use this want my initial experience with their product to involve maiming myself?

5.  Ayn Rand.  A favorite quote about her effect on people (originating here):

There are two novels that can change a bookish fourteen-year old’s life: The Lord of the Rings and Atlas Shrugged. One is a childish fantasy that often engenders a lifelong obsession with its unbelievable heroes, leading to an emotionally stunted, socially crippled adulthood, unable to deal with the real world. The other, of course, involves orcs.

6.  Reality TV.  I think this comic pretty much sums it up.

 

 

Mind, body and machines

More philosophy (though not more politics) today.  Sorry, I’m in that sort of mood.

The mind-body has been vexing philosophers for hundreds of years and is one of the big ongoing questions in philosophy.  The issue is, if the mind is not a material thing, how can it interact with the physical body?  If you want to say that we have immaterial souls, how can my immaterial soul cause my arm to lift?  If it can, how is this invisible to physics?  If you want to say that consciousness emerges out of plain matter, how does that happen?  I find the arguments on both sides entirely convincing.

So, how to get to the bottom of this?  I have a related that I’ve been thinking about that at least seems more answerable.  I don’t have an answer to it, but it seems like there could be one.

Back in the 1930′s Alan Turing came up with the idea for an idealized machine which can compute anything computable.  You simulate a Turing machine on your actual computer.  If you built an actual Turing machine, you could also simulate your actual computer on it.  Additionally, you can simulate a Turing machine in your mind.

If your mind is not reducible to a physical thing, it’s possible to have non-physical Turing machines.  Is it possible to simulate your mind on a Turing machine?  Is your mind doing anything, other than really sophisticated, abstracted, computation?

I want to say that it is, but I can’t really come up with a really convincing example.  I know most people are going to want to jump out and say emotion, but other than the fact the you experience emotions, it’s not clear to me how they’re anything other than state.  Now the experience part is nontrivial.  Even if the mind is just computation, if we set up a machine to simulate your mind, it would act just like you do.  I think that’s important.  Would it have experiences?  Who’s to say it wouldn’t?

It seems to me that if you want to say that the mind is or isn’t reducible to the brain, the best way to do that is to explain why the mind, other than experience, is or isn’t reducible to a Turning machine.  I think that cuts away lot of the messier parts of the problem.

Politics

Politics is on my mind a lot and probably will be more and more as we enter into the year of a presidential election.  I’m going to start writing about it, so, apologies in advance.  I do need to come up with three things to write about each week.

I thought I’d start out by talking a little bit about where I stand, what my biases are and what my underlying political philosophy is.  I grew up in a Jewish family in the Northeast.  I live in an urban area in New England.  I watch Jon Stewart religiously.  If you haven’t guessed, I’m a solid Democrat and always have been.  If you’re a Republican, I disagree with and may be angry with your policy preferences.  That doesn’t mean that I think you’re a bad person or we can’t have a reasonable discussion about it and agree to disagree.

I think a lot of political disagreements have their roots in political philosophy.  Most people who haven’t actually studied political philosophy have an ad-hoc, inconstant political philosophy, but a political philosophy nonetheless.  Perhaps, if we understand the underlying assumptions that lead to each other’s beliefs we would be more empathetic to those who disagree with us.  Maybe not, I don’t really know.  Either way, if you are interested in political philosophy and want to understand what I’m talking about you can find a good introduction in the Harvard political philosophy class that you can watch online here.

I am basically a Rawlsian.  John Rawls’ book A Theory of Justice put forth a political philosophy that I personally find much more satisfying than any other I have ever heard.  Libertarianism tries to maximize freedom, communism tries to maximize equality, utilitarianism tries to maximize happyness.  Rawls’ political philosophy tries to fairness.  He asks you to imagine you hadn’t been born yet and didn’t know who you’d be when you were born.  You don’t know what race or class you’ll be born into.  How would you design a society from this position?  He claims everyone would want certain basic rights, freedom of speech, freedom of religion, etc.  Secondly he claims that the economy should be organized according to what he calls the difference principle.  The greatest benefit should go to the least advantaged.  This is a subtle point so I’ll elaborate on it a bit.  It’s a very different idea than communism where every is put at the same level, to everyone’s detriment.  It’s probably good for poor people to live in a society where doctors are paid well, for instance.  It’s hard to get through medical school  and it’ll help patients as much as doctors for people to be incentivized to make it through medical school.  The idea of a Rawlsian system is to pull the poor up as much as possible in absolute terms, not relative to other people in the society.  If that means setting up a society where some people become fabulously rich, so be it.

In practice, I think this results in a system, that in broad strokes, resembles what we have in most Western countries.  A democracy with a market based economy and a social safety net.  As you’ll see, I have a lot of problems with the details of our political system.  I’m not looking for any major radical changes either though.

Blogenning Theme of the Week: Writer’s block

My turn to pick the theme this week.  I didn’t pick this theme because I couldn’t think of anything to write about for my theme, I swear!  I’ve been thinking about this a lot lately and I’m really interested to see what everyone has to say on it.  It’s not necessarily about writing specifically but about getting stuck creatively in general.

I think it’s fair to say I’m creative, though I’ve always struggled with acts of what I’d describe as “pure” creativity.  I’m very good at puzzling things out creatively and applying that across a wide variety of domains.  Perhaps some stuck up art types will say that my ability to look at a computer science problem and find an elegant, efficient solution isn’t really creativity, I say they’re wrong.  I often approach music in the same way.  Generally when we put a song together in Far From There, on the songs where I would write the bass part, it would be the last thing that was added to the song.  Part of that was that most of the time pounding root notes is an acceptable, if boring, approach to playing bass so there isn’t a lot of pressure to come up with something creative right away.  Another part of the reason is that I’m better at coming up with a part when the song is more put together.  One might think it should work the other way around, and for many people it seems to, but when I’m more constrained in what I can do I get more creative.  Obviously there’s a limit.  A song can get so busy that there’s no room to really do anything.  There’s a certain point before then, when a song is already good on it’s own, that I do my best most interesting work.  When code needs navigate a tricky design space or stringent performance requirements.  Working through the apparent paradoxes of philosophy.  These are the places my creativity lives.

The other side of all that is when I’m staring at a blank canvas, I get completely stuck. I’ve been doing that a lot lately.  Part of that is intentional.  One of the reasons I want to keep up with this blog is to get more practice at it.  This stuckness that I’m prone to is also the reason all my posts have been put off until Sunday lately.  I’ve also been confronting my stuckness a lot with the band lately.  We’re down one song writer and trying to come up with all new material.  It’s hard and I really want to be more helpful and more engaged than I have been but I can’t seem to get past this.

I don’t if it’s exactly the same thing as the gap Brandon posted about earlier, although it’s related.  I can see how I am hampered by my taste and my knowledge of music.  I’m sure almost fledgling songwriters write songs from the most cliché, played out chord progressions.  They keep writing and then they get better and realize how amateur they were.  I already recognize all those chord progressions and when I try to write and I stumble onto to one, I know exactly what I’ve done.  I’m not going to bring those chord progressions to the band because I know they’re lame and we’re better than that.  I reach around for more interesting chord progressions and I don’t find them.  I’m trying to run before I walk, I think.  Maybe I need to put together a three chord song for myself, just for the experience of it, just for the practice.  I’m not sure.

We we’ve written as a band, we always write bottom up.  The rhythm section puts something together, then Jeff threw his vocals and lead guitar parts on top.  Lyrics would often come much later.  I sometimes think I’d be more suited to writing top down.  Lyrics, then melody, then chords.  I have a melodic sensibility and it seems like it would be less arbitrary to find the right chords to fit a melody than to grope around for a good sounding but not too cliché chord progression.  The problem with taking that approach is that I never know what to write about.  I’m reminded of the parts of Zen and The Art of Motorcycle Maintenance about getting stuck creatively.  Phaedrus recommends to his students that they’re stuck because they’re thinking to generally and has them write essays about very specific and uninteresting things.  They write essays about the side of a coin or the leftmost brick of a building.  I do think part of the reason I get stuck writing lyrics similar.  I’m not so sure that trick works for music though.  Music is such an emotional medium, I just don’t think I can write a song about something mundane.

So how do I move past this stuckness?  I’m still really not sure.  It’s always been something I’ve wanted to conquer but I’ve never been able to.  I’m working on it now, harder than I ever have though.

Tubes vs Solid State

Oh crap, we don’t have any more demos, I need to come up with a third thing to write about this week…

Brandon wrote about this subject a little while ago.  I thought I’d add a bass player’s perspective.  I think most guitar players agree that tubes are king.  There are some nice solid state amps out there but tube amps really dominate the top end of the market.  I am very happy that I recently upgraded my guitar amp to a tube amp.

The bass world is a bit more divided on the subject.  First, from a purely pragmatic perspective, tube amps for bass are heavy!  A bass amp needs to put out roughly 10 times as much power as a guitar amp to keep up in terms of volume.  A 200 watt guitar amp is big and heavy but you don’t need one.  A 200 watt bass amp is considered the minimum you probably want to play with a band.  A 300 watt Ampeg SVT CL head weights 80 lbs! (this is WITHOUT the speaker cabinet) Maybe some day I’ll have roadies, until then, that’s not something I really want to deal with.

Second, overdrive and distortion matter much less important on bass.  You’d actually be surprised at how many rock bass tracks sound clean in the mix but sound overdriven when played solo.  It adds some extra richness but for the most part it gets lost under the guitars.  There are some bassists who are well known for a distorted sound.  Christopher Wolstenholme of Muse is one of the biggest examples.  He clearly gets his somewhat synthy tone through pedals and not through a tube amp though (he may play through a tube amp and that may contribute to his tone, I don’t know, his tone isn’t a tube amp distortion though).

Third, people have been hearing guitars through tube amps on all their favorite recordings for years, but bass is often a different story.  Guitars are almost always recorded by micing amps.  For various reasons it’s harder to capture bass that way.  Often bass players plug straight into a direct input box or straight into the mixing board.  Generally bass is captured more transparently than guitar.

Forth, often you want to feel the bass as much as hear it.  The attack of the note is a very important part of a bass sound.  Tubes get saturated and distort in pleasing ways and we’re all used to that on guitars.  Another side effect of tube saturation is dynamic compression.  Tube power amps often just don’t have the same kick that solid state power amps have.

So tubes are a bigger hassle, help your tone less than on guitar and can even hurt it in some ways.  Are all tube bass amps bad?  No way, there are lots fantastic sounding bass tube bass amps out there.  A lot of the tubier amps don’t quite line up with my personal tonal goals on bass.  Lots of people love them though.  I also agree with a lot of tube aficionados that solid state amps can often sound harsh, thin or sterile.

So, what do I play?  My amp is a hybrid, actually.  An all tube pre-amp into a small form factor solid state power amp.  Tube warmth, solid state kick, 500 watts, fits into the laptop pouch in my backpack, yes please.  Specifically it’s a Gallien Krueger MB Fusion.  A lot of hybrid amps, especially those put out by companies know for tube amps, try to sound like all tube amps.  GK is known for making solid state amps and the GK hybrid embraces it’s hybrid nature a lot more than most others.  It’s in that GK family of tone but it’s got the extra tube warmth and depth.  It’s a pretty unique combination and I’ve really been digging it.  (FWIW all the bass tracks on our demos were recorded using the direct out on that amp.)

Code Review

Reading code, even good code is hard.  Writing code to do anything non-trivial requires holding lots of information in your head plus some trial and error.  As hard as writing code can be, reading code is harder because it requires you to reverse engineer this process.  You start with the end results of hours of thinking very hard condensed down into a few lines.  Figuring out how it works and why it’s structured the way it is, can be a daunting task.

I’ve come to the conclusion that if you want a good code base, code review is absolutely essential to the process.  No matter how meticulously you test and document your code, you will never get it 100% right or 100% understandable without an outside perspective.  If your code makes it through a review at least someone other than the author understood it at some point in time.  That’s a lot better than plenty of code out there!

Not only is it good for your code, it’s good for you and your fellow programmers to participate.  People get direct feedback and learn to write better code.  New programmers get their hand held when initially making changes to the code base and learn all the conventions.  It stops knowledge from becoming too concentrated as the reviewers try to understand the code.  Everyone gets more practice reading code.  It stops people from being lazy.  If you have a copy and paste that you should really factor out, you’re a lot more likely to do it if you know someone’s going to look at your changeset.

Lots of coders out there think they don’t have time for code review.  In my experience code review pays dividends very quickly.  The fact is nothing sucks up time like trying to untangle a knot of unreadable code.  Lots of coders think they are infallible and always right perfect code and as such shouldn’t be subject to code review.  If you think they aren’t going to cause trouble for you, I have a bridge to sell you…  I’d put it up there with using revision control or writing unit tests on the list of things you really need to be doing if you write software.

 

Language

This weeks them post for the week on Language.  Ian beat me to the “A bit of Fry and Laurie” reference I was going to make.  I guess that’s what I get for leaving this until Sunday night.

I became interested in programming languages somewhat before really getting interested in natural language.  There’s a philosophy of language question which is very big in the programming language community that’s equally applicable to both types.  To what extend does our language influence our thoughts?

In programming languages in my purely anecdotal experience it seems like programming languages, both the language a person is using and the languages they know are both hugely influence in how the write a program.  Trying to explain to a programmer why a style of programming they aren’t familiar with may have some advantages is an exersize in futility.  There’s nothing quite like the smug superiority of someone who knows their programming language is best, period.

As Stephen Fry points out in that sketch, with natural language it’s trickier to tell.  Languages are strongly bound up with culture and it’s not clear how one would tell where the influence of one ends and the other begins.  As a monolingual person, I have no perspective to really speak from.  I took many years of Spanish in school but I don’t remember much of it.  More importantly, I never learned to think in it.  I memorized words and phrases and tenses and such but my thought process in putting them together was always in English.

I think it’s clear the strongest version of the Sapir-Whorf Hypothesis, the theory that language limits what we are capable of thinking, is false.  I’m sure we’ve all had a time when we couldn’t find the words.  If all our thoughts were completely based in and expressible in our spoken language, how would that happen?  What would that mean?  Still, I think in English, it seems like that would have a very large affect on how I put my thoughts together and thus the thoughts that I have.  I’m a very verbal thinker.  I understand that a little over half the population consists of visual thinkers (this is different from visual learners).  They think mainly in pictures.  I don’t know how this applies to them.

I’m always wary of having too narrow a perspective.  According to Alan Kay, creator of object orient programming among other things, “perspective is worth 80 IQ points”.  I think that’s about right.  The trick I use to make people think I’m smart is make sure I’m looking at problems from the right angle.  Language is so fundamental but it’s an area where I can’t really do that.  While I’d love to go really learn another language and immerse myself in a culture long enough to become fluent, I don’t want to uproot my life.  It’s a blind spot that I’ll probably always have.

Demo #5: Roses of Decision

Roses Of Decision by FarFromThere

We’ve got one more demo in the pipeline but this is the last one for now.  I’m not sure when we’ll get the other one up.  I guess I’ll have to come up with new things to write about next week.  This one was written by Jeff and wasn’t changed too much since he gave us the parts so I don’t have a ton to say about this one.  I really like the song but it’s fairly straightforward and I didn’t have much of a hand in putting it together.

Jeff likes to say my role in our writing process is that I’m the producer.  I’ve never written a song from scratch.  He or Brandon or both of them will come up with the ideas for the songs, often as things move towards a finished product, I have suggestions about things that aren’t quite working or things that could take the song to the next level.  This is one of those where I had to play that role a bit.  Jeff had a weird lead part he wanted Brandon to play with him in octaves on the chorus.  It didn’t really work because they were both playing chords and then suddenly both dropped out to play single notes and the sound just became much thinner all of a sudden.  I suggested that that wouldn’t work and Brandon agreed.  Eventually that part got scrapped entirely and Jeff wrote a different lead riff for the chorus.

Jeff wrote the bass part for the verse.  It really drives it and I really like it although it’s very unlike any part that I would write.  I don’t entirely avoid inversions but when the chord changes at the beginning of a measure I have a pretty strong tendency to land on the root unless I have a good reason not too.  The start of this riff isn’t even on a chord tone.  The chorus bass line mostly follows the guitar except I added a bit of downward motion on the last chord of the riff.  The rhythm is a little tricky on the bridge but mostly this is a pretty easy one for me.  I keep my left hand in one position the whole way through and play a total of 5 different notes.  Sometimes simple is best.

A letter to myself 10 years ago

This week’s theme sending a letter back to your past self.

Hi Dave,

I know you’re fed up with school.  The busywork, the bs, the cliques.  You wonder if this is what life is going to be like.  Well I’m happy to tell you that it’s not.  You coast by, putting in enough effort to avoid getting yelled at by your parents, to get into a decent college but you can’t help but feel the emptiness of all your efforts.  When you get to college you get to choose to study things that interest you and things that will be useful to you for your career.  Soon afterwards you will find a job where you know your efforts will go towards building something, something that helps people.

When you go off to college in Boston, you’ll find a lot more people like you.  After highschool, the world is big enough that no one cares about anyone else’s groups.  You will find geeks and nerds and you will be free to be yourselves.  You will meet all kinds of awesome people and be exposed to things you never knew about.

Adulthood is much less boring than you think it will be.  You’ll go to parties frequently.  I don’t think you’ll believe me, but you’ll play in a rock band.  You’ll find you have too many things you want to do and not enough time to do them.  You’ll realize how good of a problem that is to have and that that’s the way life should be lived.

Please stay hopeful.  Don’t get cynical.  Take risks.  Put yourself out there.  Invest yourself in what you do.  It’s all going to work out.

Best wishes,

Dave

Sleep Madness

Obligatory xkcd comic

I’m going to try to power through my 3 posts for the week today.  Fair warning though, I am sleep deprived.  Any sanity that I may seem to exhibit is purely coincidental.  I figured I’d do a post giving some background on my current sleep madness before subjecting you all to it.

For my new job I’m on a rotation to do releases which happen in the middle of the night to avoid inconveniencing our customers.  I needed to be at work between 11:00 on Friday and 6:00 AM on Saturday. It’s not as bad as it sounds, as long as it goes smoothly it’s not very involved and then I get to take a day of real work off.

I got to sleep around 7:00 AM yesterday and slept until about 4:30 PM.  My sleep schedule has a very strong tendency to want to fall asleep and get up later over time.  I find that trying to fix my sleep schedule by forcing myself to wake up at a certain time just results in me getting less sleep and being more tired and miserable.  I am not a morning person.

Since I have trouble keeping a sleep schedule under good circumstances, there’s no way I was going to get to sleep last night.  So, my method for getting back on schedule for Monday is to stay up as long as I can today.  My mother does not approve of this method of fixing my sleep schedule.  Morning people don’t understand night people.  So it has always been.

I’ll probably go to bed late afternoon or early evening and get 12 or so hours of sleep tonight if all goes according to plan.