Jeff

new design

So I redesigned the site, if you can’t already tell. I also have migrated from my moldy old Django backend to a static site generator that I started using because of it’s integration with GitHub (where I store most of my side coding). I have made a number of changes with this (and done a few things that I had always lied to myself that I would get around to doing). I am now using flickr to hold all of my pictures, this then crawls that every so often and generates a gallery page for that. I have added disqus comments to select posts (I can dictate this on a post by post basis).

In regards to the design, I stuck with my usual philosophy of minimalism. I don’t like incorporating images or crazy lining up of things to achieve a crazy effect. In this, the major design piece is the “word wall” that sits behind everything. This gets generated on every page load from a set of ‘categories’ that I have defined in the javascript file, these words are randomly added to each row and are set to highlight when the corresponding link on the left is hovered over. (Go ahead, try it, hover over any of them, watch the background). I am still tweaking the whole system, trying to get the effect to be pleasing without overbearing or being missed. I also want to cover the text itself so you can’t accidently highlight it.

I want to have this work on various devices too. I have tried it before with my programming log and have mixed success. I also have basically forgotten tweaking that since I got it up. As always, though, I will continue to use this as an experimenting ground for stuff I want to try. Ideally, I will get this working with one of my side projects to have it update on demand.


productivity and effectiveness

So I started reading a sort of self help book entitled The 4 Hour Workweek. It describes a man’s strategy to shorten the amount of time he spent working without decreasing the amount of things he got done. He primarily used two different economic theories. The first is that 80% of income comes from 20% of the customers (this basic theory varies a lot in terms of numbers and examples), this is called the Pareto principle. The second is that the task’s complexity and effort is based more on the time allotted to do it than the actual task, this is called Parkinson’s Law. I feel like these two theories apply well to ways I can improve myself and how I do things.

The first, the Pareto principle, applies well to me already. I have always said that, for me, programming is all about ‘bursts’. I mean that I get most of my productivity done in a short, focused burst of effort. I can really put myself into a super focused mindset and really produce work, the difficulty of doing this is keeping focused, for various reasons. The main reason is hitting roadblocks, things like a coworker’s mistake stops me from progressing and I must stop and consult them to figure it out or someone runs into an issue with something I wrote and I need to help them resolve my mistake. This breaks up my ‘flow’ and all the effort I took to get that ball rolling is gone and must be re-applied. But also, the largest deterrent in doing this is keeping myself going from the end of one part to another. I may rewrite some code that does A, but once that is done, I do not know, immediately, what to move on to. So I am going to begin planning out my burst periods. I will then allot a set amount of time (for me I am saying 2 hours between the morning stand up and lunch) to accomplish this full set of tasks. (I then have a laundry list of tasks I can work on in the afternoon, but will do so out of a ‘burst’ mindset). The goal is to start accomplishing most of my work in a very efficient and effective period of time. Doing this will allow me to continue using this strategy with tasks at home, like planning out my goals on a train ride to/from work. This would mean less dicking around on the train and I would actually make progress on various projects.

The second, Parkinson’s law, is even more applicable. If someone gives me a single task to do and a whole week to do it, I feel little urgency to get it done sooner, so the tasks expands to fill the available time to do it. Whereas, if I limit the time to something smaller, it will be more urgent and also much simpler, in order for me to meet that deadline. Simple (and slightly relevant) example is planning a wedding. For most wedding plans, people have a year+ to plan the entire thing. So with a whole year, people end up nitpicking the colors of flowers, the seating arrangement of the reception, and all sorts of other small details. Versus, if you only have 4 months to plan a wedding, you end up quickly forgetting or diminishing the importance of such small details and just focus on the important and larger details. This idea can be applied to help simplify various goals that I have and allow for them to be easier accomplished. First, it requires that I start drawing up deadlines for projects, I fear that if I don’t, they will never have the urgency to get finished. Also, doing this along with the previous rule, I can force myself to maximize the use of that focused time. If I keep that 2 hour period as fact and pick out goals that are a generous focus for those 2 hours, I feel like I will end up amplifying that time usage rather than diminishing it (so it wouldn’t really be 80% work in 20% of the time).

So, starting today, I will be setting shortterm deadlines for various subparts of projects. My first (and experimental one) is getting this website open sourced. I have broken down the tasks I want to get done to consider it in a “1.0” state and have it be proper for an open source view. I am setting the goal at a month. I have picked time periods of (at most) a week per task and I will begin breaking those down into smaller, day sized, chunks. This allows me to get the feel if I am making good use of that time or not. Also, setting the time so short, it allows me to eliminate various other optimizations I had thought of, a common form of the perpetually moving target syndrome many projects get. We have this issue at work at lot, and I have begun to speak up about us ending up in it. It basically ends up where we are getting near the end, yet we keep wanting to improve things, eventually pushing back the release. The real need is to set in stone the goal to accomplish and set that as the goal for a decided upon release, then start making a list of improvements. These improvements then become the list of things for the next version, which gets set in stone at the end of the previous deadline and with a new deadline. Wash, Rinse, Repeat

The real hope here, is to eliminate distractions and improve my use of time. Allowing for me to feel more accomplished in the time that I do spend working on things, without lessening the time I spend doing other things. If I spend 8 hours traveling every week and most of it is dicking around because I have no sense of urgency or need, I am very likely to just waste the time neither doing something entirely enjoyable nor entirely productive, the time really becomes a wash. I would be better spending the 15-30 minutes of actual time used in one go and then spending the rest of the time reading, writing, or sleeping. Hopefully, I will be able to eliminate my chance of being distracted and increasing the amount I get done in the time I do work, giving myself more uninhibited free time, along with a greater sense of productivity.


migrated

So I migrated my new code in. In the process, I removed all of the old images, so the gallery is currently empty. I wanted to do this because the new process for building a gallery will need to be done for everything. There are still plenty of rough corners throughout this site, like the animation for sliding between pages pushes the bottom down a bit. shrug. I will spend some time the next few nights going through and cleaning up entries, functionality, and such. I have some stuff going on my laptop to help me store the stuff I don’t want anymore.

The RSS is broken, I will probably rewrite that stuff at some point (or not at all and just screw subscriptions for now). There are a number of things I need to do, but the design is here. I also have the move to nginx+gunicorn ongoing, I decided to work on those in the background so that I don’t risk hijacking the other sites hosted here. (The gunicorn stuff works, just need to hook that up to nginx and service everything). With this here, hopefully changes I work on will make it live on a regular basis (at least for a while). I will probably take some random breaks from improving this while I work on other projects I want to try.

But anyways, it is late and I will probably begin getting tired soon, so I am going to call it pretty for now. The next few weeks will see improvements as I go about trying to clean up the codebase (modular settings), Javascript implementation (tons here), and functionality. I will also take time to upload pictures (including many I have needed to upload for years JAPAN). My first project will probably be cleaning up the Journal though. I have plenty of old posts that really don’t fit in among my writing, and some outdated tags to get rid of. And updating everything to use the new markup.