The Professional Steve

The very important blog of a professional Computer Science undergrad and professional dork

Don’t Read The Manual

I’m not sure anyone but me needs to hear this advice, but maybe there are similar dunderheads out there in the world wide webiverse. As Jeff Atwood tells us, no one reads the manual.

No one but me it seems. I’m the sort of guy who won’t start a scala/android project until I’ve read Land of Lisp and Scala for the Impatient. Impatient I am not, and I need to be.

What kills me is that this is a lesson I already learned at my internship, when I was thrown into the deep end an told to write tests and fix bugs for a Java EE framework I had no prior experience in. Heck, I’d never seen a servlet until I got hired.

So this is bascially me talking to myself, and you get to have a look at the discussion:

“Hey, nitwit! Just start already! Find the hello world for Scaloid and get started! You’ll learn what you need to as you go!”

P.S. Here’s that Scaloid hello world. It looks sooooo cool!

Taking Care Of Yourself Is Not Optional

I’m guilty of not taking care of myself. I still don’t sleep 8 hours a night. Or excercise enough. I probably don’t eat enough veggies. Let’s all agree that not doing these things is not only bad for our health (decreasing our quality of life, increasing the risk of disease) but that it also hampers our productivity.

I’m trying baby steps. I’ve been sleeping 7 hours for the last few nights. I’m doing 5 to 10 minutes of cardio, a yoga sun salutation or two, and a few situps and pushups for the last few nights as well.

Let’s all try to do better, a little bit at a time.

OMG You Guys Hoverboard

And just in time for 2015. Have a look at this kickstarter from the future! I want one. Want want want. I wonder if I could build one for middle-aged fat guys? That couldn’t possibly be dangerous right?

Reblog: Editing Google Docs with Vim by Aaron Karper

My computer is slow you guys. It’s a 4 year old netbook running unbuntu. I got tired of having to wait for google docs to load, so I googled and found this post by Aaron Karper.

The instructions for getting started worked for me, but the html formatting didn’t. So be warned. You may only be able to edit plain text docs. This works fine for my purposes, but your mileage may vary.

P.S. I made a quick little bash script so I don’t have to type a bunch of crap every time I want to edit a doc:

google docs edit --title "$1" --editor vim

It takes the name of the file as a terminal argument.

It’s all based on this thing called googlecl, which allows you to access all kinds of google services from the Linux terminal, not just docs. Here’s their manual:

There’s a comment on the post that says there’s a more active fork of googlecl here, but I didn’t really have a look at it.

Lessons Learned. Sometimes You Just Need To Get It Done.

During the semester I often follow a regular pattern. I get an assignment in one class, it takes a long time, then I need to catch up on some other assignment. I start late on that one, which causes me to start late on another and so on. It snowballs until, well, basically the end of the semester when I’m scrambling to get it all done so I can pass my classes.

The latest assignment in this snowball is one in which I needed to mimick the behavior of the bash shell. For those of you not familiar with bash: have you ever opened up the terminal (in Linux or a Mac) or the command line (in Windows)? It’s usually a black window with nothing but text. The way it works is that you type a command, for example in the linux terminal:

steve@StevesNotebook:/$ echo potatoes are my friends

and then the command is executed.

potatoes are my friends

echo parrots what you just typed, but there’s lots more to it. Anything you can do in graphical user interface can be done by typing commands in the terminal. If you get good at it, you’re going to get things done much faster than if you used a mouse.

Even though the assignment didn’t ask us to make a fully featured terminal, it was still a big project, which I started late. Starting late was mistake number one. Mistake number two was due to my tendency to pursue whatever I’m interested in at the time at the expense of getting things done. I had been learning a bit about compliers and testing so I decided to make my own testing language for this project.

Mistake number two, after realizing writing an entire new language for a class assignment was a stupid thing to do, was to continue testing my code after it was due. The assignment was past due, but I was still taking my sweet time testing every new feature I added to the program.

Writing automated tests for your code sounds like a good idea, and it is. But when you’re past deadline, in school or in industry, you need to do things as quick and dirty as you can. Get it done. Test it manually. Yes the resulting code may not be that great. Yes your program might break for some small percentage of time. Yes it might run more slowly than it ought, but it will be done. If you have time later, you can fix it then.

I’m still learning that perfect is the enemy of done. I’m also still learning that I need the discipline to do tasks in paralell even if one of them is due very soon. Otherwise I’ll keep putting myself in this position.

When You Network, Trim Your Tribe

I’ve been greedily listening through the archives of The Self Publishing Podcast. It’s hosted by 3 people who make their living writing books in a very workperson like way. They write a lot of books, as fast as they can, as good as they can (they believe strongly that writing faster means an improvement in writing quality for a variety of reasons). There’s a bit more to it. In the podcast they spend a lot of time talking about marketing, promotions, product funnels, etc. It’s all great stuff and I can’t recomend this podcast enough.

They’re inspiring in a lot of ways. I believe their general approach to creativity and business can be adapted to any field, including software. But there’s one paticular thing they talk about all the time that is really hitting home for me recently, the idea of trimming your tribe. When your write a book or record a song, or make a movie, some people will like it and others won’t. Even if you have a dedicated fanbase you still can’t please everyone in that fanbase. Some people won’t like your new work even if they liked what you did before. Not to mention that most people outside your fanbase just won’t dig you. This is just how taste works. People like different things. Nothing personal to Justin Timberlake, but I don’t care if he brings the sexy back or not; I’m just not interested. On the other hand, while it was going on, I read Nimona pretty much religously.

This trimming your tribe idea also applies to networking. When you meet people in your industry sometimes you really gel with people and sometimes you don’t. You need focus on the former kind of relationship. You need to find your tribe. Follow up with the person you had a half hour discussion with about software which then tagented to operations management which then tangented into an enthusiastic discussion about World War I. Don’t try to build on relationships with people you have nothing in common with or who just aren’t on the same wavelength that you are. If they hate scripting languages and you are a die hard Rails person, maybe you two should go your separate ways. I don’t mean that you should only seek after people who are just like you. Diversity is good for any tribe and working with people who have different view points is enriching and more productive. This is about chemistry, not seeking after sameness.

It’s obvious when you think about it. Where would you be happiest working? Wouldn’t with be people who you get and who get you? Doesn’t a team work best when all its members share a similar vision and similar goals?

School Presentation

This won’t make much sense if read on its own, but I did want to make my presentation on software patents easily available to my instructor and fellow students if they’re interested.


I love The Pomodoro Technique. It’s so simple. You pick some task you have to do, set a timer for 25 minutes and go. For those 25 minutes, don’t do anything else. Just do the task. No facebook, no videos, no nothin’. Then take a 5 minute break and do it again. when you take your fourth break, make it 20 minutes. Lather, rinse, repeat. There’s more to it: getting better at avoiding distractions, time estimation, etc. I really should get around to reading the book sometime.

How to learn Ruby while sitting on the toilet.

This post is only for those of you with an android phone. If that’s you, go install the Ruboto irb app on your phone. Open up Ruboto and type the following:

print "chunky bacon"


Hit “go” and you should see this:

>> chunky baconnil


Don’t worry about that ‘nil’ thing at the end. It’s just the value that print returns. If that annoys you you can add a space:

print "chunky bacon "

Now you need a Ruby tutorial. I heartily recommend Why’s Poignant Guide To Ruby. It’s full of fun, silliness, it’s a great read, and you’ll be learning before you know it.

The Basecamp Books

I’ve just bought and read what many people might think of as the 37signals or Basecamp Books: Getting Real, REWORK, and REMOTE. They’re all gold. Getting Real is about how to develop a web application without most of the detritus (documents, charts, long time tables, large teams, and other crap) that can surround such efforts. It’s an agile book. Agile and Scrum are (apparently widely adopted) methodologies for software development that I intend to learn more about.

The Basecamp folks (formerly named 37Signals) realized that the principles in Getting Real applied to more than just web development. They expanded and add to their ideas of keeping your products and business small and sensible in REWORK. REMOTE is all about how to successfully run a business in which many or most employees work remotely.

I kept laughing and nodding my head all the way through these books. I have fallen in love with these people. They have inspired me to create my own application and, perhaps, my own business. It will be a personal organization app. Boy do I need help with personal organization, time management, goals, and all that stuff. I’ll keep you posted on my progress.


Get every new post delivered to your Inbox.

Join 164 other followers