Home » thoughts

Category: thoughts

I’m afraid I’m not as smart as I used to be.

I spent a few minutes this evening going over some old philosophy paper assignments. Looking at them, I can’t believe I was able to write those papers. I almost cannot imagine myself writing those papers. I vaguely remember reading some of the essay pieces but, now, I don’t remember enough to write anything coherent about them.

I wish I had been a better student.

How many things am I, are we all, half-assing our way through that we could be doing the right way? I feel that the answer is “too many”, but why? Why are we doing things that we absolutely know will hurt us in the future? Is it because we’re discounting the future value? Are we valuing the present too much?

I remember wanting to watch some TV show instead of doing one of the assigned readings. I can’t say now why that was a better thing to do other than “that’s what I wanted at the time”. I stayed up late so many nights reading assignments and writing papers that were due in 8 hours because I hadn’t bothered doing the work during the week that I was given.

I never did my best work because I never put everything into it. I could make excuses, I had a full time contracting job, I went to school full time, I had a wife and four kids. All true, but I stopped myself from doing my best. Despite all of that I was able to write the papers. Even though most of them were late.

I’m afraid I’m not as smart as I used to be but I am surely more wise. I may not be able to offer Socrates’ argument showing that there is no akrasia. But I know what’s important and I know how to prioritize and execute the tasks that need to be accomplished, shut out distractions, and complete my work.

The Importance of Posting Solutions

About 10 days ago I ran into a technical problem (looking for the git source and git-manpages archives) that wasted hours of my time because I wasn’t able to find a worthwhile search result. I pulled up MarsEdit and wrote about the solution I found, in anger.

Within three days of writing the post; I had used it as a reference four times. Without posting the solution it would have been worse for me because I would have had to dig through the entire day’s browsing history or my bookmarks to find the page again.

I’m sure almost everyone in a technical field has been in this situation:

XKCD #979

The original poster never posts the solution to his or her problem which is incredibly frustrating if it is a one-off thing (as most hard IT problems are).

The Stack Exchange network has been great for getting solutions to some of the problems I’ve had and I’m quite happy searching through it for some types of answers but it’s not perfect for everything. Small, short problem solution sets don’t really fit in very well; you, basically, have to ask the question and then answer it yourself. Which is fine, but, seems a little bit too much work for a quick problem/solution.

There’s something cathartic about posting the problem and solution to a problem somewhere. It can be Twitter, Github, Stack Exchange, a personal blog, Tumblr, or any number of other places. The important thing is that you do post the question and answer, somewhere.

Since the problem has already been solved the opportunity costs of 5-10 minutes to write it up are very low. So, take some time and post your solutions to the problems you run into; save someone else the hours you spent researching and testing…then charge consulting fees!

Business is hard. Part 1.

I am behind on my #P52 by a couple weeks so I am going to be catching up over the next few days.

Self help books and thousands of books on the Internet would have you believe that starting and running a business is easy, that it doesn’t take much, and that you will be better off for it. Web based businesses are touted as the ultimate business venture, you can make large sums of money building Web sites and web services for people, because you’ve a book on PHP and MySQL…what else is there to the web?

That is bullshit.

Starting a business is easy, building value is hard, in the State of Utah you simply go to http://business.utah.gov choose your business name, type, and enter the required information. Once you have completed those steps you pay your fees and get your FEIN from a link on their page and you’re set. You have a running business. Now what the hell are you going to do?

Now you, if you believe the hype, start working on your gold mine, Web sites, right…

Chances are you are still working a day job so that you can pay your bills which limits your time working on your own projects so you need to work extra hard if you want your own business to succeed. If you get a couple entry projects chances are you will realize you didn’t know exactly how some integral piece of the project works. If you are extremely unlucky you are also a student, have a family, or both.

Now the problem of time management rears its ugly head: how are you going to spend every moment of your day? There are not enough hours in the day to do what you need to do. Here’s how you might spend a day:

  • 8 – 10 hours at the job that pays the bills
  • 4 hours for school
  • 1 – 2 hours for homework

That is a total of 13 to 16 hours, now add sleep 11 – 8 hours, you haven’t eaten no time has been factored in for commutes or waiting…and you haven’t spent any time with any one other than the people you were in direct contact with at one of the above places. Of course, you will have days off or days without school so there are brief times when you can catch up on things that you are not getting enough of, like sleep or homework time.

How long can you viably sustain this pace? How many days of straight work before you are just too tired to do anything? What about support? If you *have* customers there is going to be a time when they need help or have questions and, if, you get a client from hell you will spend *a lot* of time dealing with his/her issues.

The time table above also doesn’t add any time for your new business or recreation. What do you cut out to make room for everything? What part of your life suffers? Who do you cut-out?

I still don’t know.

Quick post this week.

Edit: It seems that the publish call didn’t go through all the way so I am publishing it again.

As a contractor I spend a lot of time working on projects other than my own. To keep track of the things I need to do for each project as well as University classes I have been using Things recently. Both Things Mac and Things iPhone have greatly helped in keeping me organized between my work, client work, and University classes. Not to mention home. The price is a little steep for both of them. I don’t really know if it was worth the entire $60 since there is no push feature. I am confident from CulturedCode’s awesome status page that the features will actually come out so I considered it a future purchase.
For time tracking I am currently using Billings and Billings Touch, together both are fairly expensive as well $55, if you want to be able to sync between them. I tried a couple different web based apps as well as a couple other Mac
specific apps for time tracking but the rest were not as comfortable or powerful enough for me to use. Billings takes a second to configure and isn’t very intuitive slips can be marked as done but when a project over laps a month it doesn’t really seem to be useful.

All in all Things and Billings are just the apps I have been looking for to help manage my time and task list.

Thoughts about Java and Python.

In my Computer Science course I was asked to write a program, in Java, that would compute the powers of 2 from 2^1 to 2^20 using only a while statement. At first I tried, with just the basics that we had learned so far, to create the program. Things did not go well because I couldn’t get the powers to work correctly using pre or post decrements. After I looked through the extensive Java Math library here is the solution I came up with:

Coming from a completely Python world, I wondered how I would have implemented the same program in Python. This solution is probably not the most elegant solution but Java was very heavy on the brain while I wrote it.

A couple of things I really missed from Java when coming back to writing Python were:

  1. Post and pre increment, I understand why Python doesn’t have them but damn are they useful
  2. Brackets for the while statement, I know brackets are horrible and messy but it really makes the start/stop of a code block easy to follow…fuck Ruby and its “end” command that is just ugly.

I really like the way Python’s “print” values work. It is much nicer to use %s inside the code and then add % (count, multiplier**count) at the end of the statement rather than using the “+” and variable names.

In the Python world Java gets a lot of shit from a lot of people. Granted, Java does have its share of problems and oddities but it is an extremely powerful, well backed language. Oracle’s support of Java after their acquisition of Sun Microsystems has dramatically increased since a great number of their products are built on Java. Probably the strongest piece of the Java programming language is the Java Virtual Machine. The JVM is so versatile, that, practically, every language can be run on it. There are implementations for Ruby (JRuby), Python (Jython)[1], and even, my favorite web framework, Django (Django-Jython)[2].

With Django and Python gaining traction in the Enterprise world Django-Jython and Jython are perfect building blocks for organizations that *have* to run Java for some of their applications or middleware but want the ease of use that comes with Django and Python for their internal or even external web teams. I like where things are going and I am on the bandwagon with both languages.

[1]: http://www.jython.org/

[2]: http://code.google.com/p/django-jython/

Meta and random musings.

Shorter (read: less content) blog post this week because life has been overly strenuous this week. School has become, almost overwhelmingly, full of homework and reading assignments as well as programming assignments. Besides that, work has been extremely tiring because of the workload and being short handed (for completely valid reasons –  I don’t blame any one for being where they are, under the same circumstances I would do the exact same things). Life at home has also been stressful because of all of the other factors.

Perhaps the most amusing thing I have seen today is http://www.michaelv.org/ which is a Javascript rendition of Windows 3.1 (the third operating system I ever used the first being DOS the second Apple something). This is where the meta part of this post comes in. Inside of the Javascript Windows 3.1 you are allowed to open a browser and because the browser runs Javascript you can once again open the same web page (Windows 3.1) over and over again, currently I am at 10 windows open but the screen shot only shows 2:

This can go on, I am assuming, indefinitely as long as you correctly format your window sizes. This  project gets 5/5 pyl0ns from me.

More amusing software that I found today, because of Jeff Croft (http://twitter.com/jcroft/status/81415197100) is exactly what I was looking for to make my transition from work, where I use Firefox as the default browser, to my regular browser (Chrome|Safari) much easier. I had looked for AppleScripts and tutorials to see if I could find some way of programmatically setting which browser was my default but my Google-Fu failed me. Now I can simply create 2 “programs” that can be launched from LaunchBar that will set my default browser without all of the extraneous clicking, plus it runs on Jython which is just cool since at this point in my life Java and Python are the only things I am focusing on. I highly suggest checking Project Sikuli out, there has to be something in your life that you can automate.

“The Book of Eli” – don’t waste your money. *spoilers*

I normally don’t go to the theatre to watch movies (I have a nice size TV and a good surround system) but, occasionally, it is nice to go to the theatre and watch a movie. This was not one of those times.

Watching the trailers for “The Book of Eli” had me believe 3 things:

1. Denzel is a badass

2. He has a magic book

3.  Gary Oldman wants to take it from him

The first half of the movie is spent on establishing my number 1 assumption with Denzel fighting and killing dozens of people with a sword, gun, hands, and what ever else he could use. At the end of everyday he spends time reading assumption number 2. After he reaches the town that Gary Oldman runs the movie starts to go down hill as we learn that this book is “The Bible” not just any old magic book. (queue boredom) Gary Oldman wants to use the words of “The Bible” to make un-educated people follow him, tricking them into believing it, and thus set himself up as king of the world (how early Christian of him).

*More spoilers*

From there the movie gets boring and predictable, the only reason I didn’t leave (I’ve never walked out on a movie before) is that I wanted to find out what was out “west”. Turns out that “west” was Alcatraz where Alex (from “A Clockwork Orange) is a crazed looking old man who prints books to give back to the world. The only real plot twists from the middle to the end of the movie was:

1. The book is in braille

2. Denzel was blind the whole move (but God let him see so that the book could make it “west”, yay God!)

The book doesn’t make it “west” but luckily Denzel memorized the entire book so he could repeat it word for word when he got there (I know, right?).

Summary:

The movie, from the middle on, is shit. The first half is good for action. If you are going to watch it, wait until there is a decent torrent – there is no point wasting your money.

My Battle of Twitter Clients.

Recently (after upgrading to Snow Leopard) I have been forced to find other twitter clients than the one I had been using for almost a year, Nambu. As a part of the MacHeist offering I got a copy of Twitterrific which I tried for a couple weeks…I hated it. Here they are with their pros and cons:

Nambu (10.5 version):

Pros:

  • Multi-account setup is easy
  • Good layout

Cons:

  • On Snow Leopard, if left running will use 2.0GB of RAM

Nambu (Snow Leopard version):

Pros:

  • Smaller RAM usage
  • Free

Cons:

  • New UI is awful
  • The break outs of retweets
  • Resizing window doesn’t resize tweet field

Twitterific:

Pros:

  • None, simply awful

Cons:

  • Always on top
  • Horrible UI
  • It costs money

TweetDeck:

Pros:

  • Multi-column so you can see all of the info you want

Cons:

  • Ugly – even if the color scheme is changed
  • Adobe AIR
  • Multi-column

Tweetie:

Pros:

  • Beautiful UI
  • Wonderful multi-account setup
  • Overall, very enjoyable

Cons:

  • Pop out compose field
  • Search setup is odd and clunky
  • Dock icon doesn’t show number of tweets
  • Number of tweets isn’t shown anywhere

Echofon:

Pros:

  • Simple, clean interface
  • Number of tweets is clearly visible
  • Search is quick/easy to use
  • Compose bar is built in
  • Slide out drawer info is helpful

Cons:

  • Multi-user accounts are clunky

After my full evaluation of these clients I’ve found the perfect twitter client for me would be Echofon and Tweetie smashed together, giving me the in app compose bar with the left sidebar and the slick interface that Tweetie has.

I’m still unable to decide between Tweetie and Echofon so I am currently using both. (side note: leaving 4 twitter clients open at a time quickly reaches the API limit.)