Monday, April 14, 2014

The old is new again

So far so good with my new self-scheduling.  My buddy was more than happy to take over my "yell at myself" role.  But I think what may have been most helpful was just creating a calendar for myself with mile-stones.  It feels a little more manageable than a long list of Trello tasks and it will be much more apparent when I'm slipping.

On a different note, c++ has come a long way since I used it in college.  I'm currently re-writing my level solver with it to hopefully get the performance I need to check optimal level solutions (due date Wed).  Since my level solver relies on a large hash table of level states, I was doing a bit of research on hash functions.  And I was surprised to learn that there's still improvements being made on this very basic area of computer science: non-cryptographic hashing.  I eventually settled on something called SpookyHash (http://burtleburtle.net/bob/hash/spooky.html).  No idea how it works under the hood, but apparently it's reeeeaaally fast.

Another thing I had to re-learn is memory management.  C# and lua both use garbage collection so the developer doesn't need to worry too much about allocating deleting objects.  Even Objective C has auto reference counting now (ARC) which makes things a lot simpler.  Well apparently the latest version of C++ has something called a "smart pointer."  It frees the developer from worrying about deleting objects the same way objective c does it: through reference counting.  I think the latest c++ even has lambda expressions.  Suddenly it's not looking like such a dated language anymore.

Wednesday, April 9, 2014

On working for yourself

I've got the best and worst boss in the world: myself.  He lets me work on the things I really want to, but he's far too forgiving when I don't get my work done on time.  A good example is this blog.  I was planning to use this to keep myself motivated and on track.  A sort of self-scrum and to record mile-stones etc.  But then a month went by without me writing anything.  And my boss said "that's fine, you're busy, you can do that later."  And then another month went by.  And another.  And now it's been almost four months since my last post.  I should have fired me by now.

It's not just the blog either.  I've made a lot of progress with Too Many Snakes, but I'm much further behind than I'd hoped to be at this point.  My new goal is to be ready to launch by the end of May, but even that deadline is looking iffy.  I think I need to accept the fact that I'm a much too lenient boss and find other, external ways to keep myself on track.

One thing that definitely helps is Focus applicaton (http://www.heyfocus.com/).  It blocks websites like reddit and hackernews for a set amount of time to reduce distractions.  But I've also been thinking of ways to structure myself better.  My latest idea is to try forcing one of my friends to be my project manager.  He won't need to actually care about what I'm doing.  I'm just going to give him my schedule and then ever other day we'll have a short chat about where I am with things.  I'm hoping that by simply talking to someone besides myself about my progress, it will create more incentive to keep on task.  Maybe I'll post my schedule on this blog as well to double that incentive. 

To start off, the first thing I'm putting on that schedule is to report back on this blog about how the new system is working.  Before the end of the month.  Or else I'm fired.