Fun With Maps Pt1

August 16th, 2013

I’ve been working on getting a mapnik server up and running and tweaked the way I want. Here are some useful things I learned.

Showing logs for renderd
tail -f /var/log/syslog | grep renderd

Restarting the renderd process
/etc/init.d/renderd restart

This is the default maps view file. You need to edit it to change the server address from localhost to (for example) your external IP, so you can view the maps over network.
nano /var/www/osm/slippymap.html

This is where you can find configuration XML files
cd /etc/mapnik-osm-data/

This is the config file that lists the shape files in use
layer-shapefiles.xml.inc

This is where the shape file data is stored
/usr/share/mapnik-osm-data/

Clear all cached tiles
rm -Rf /var/lib/mod_tile/default

Codility And Candiate Testing

July 28th, 2013

Tonight, I tested through a series of tests on Codility. Well … kind of.

Codility, for those of you who haven’t heard, is a automated test tool used to filter interview candidates, or for developers to show off their chops. A great idea in practice, what this leads to in reality is testing that is geared to math, because it’s easy to evaluate automatically.

Case in point, the tests I was presented with were:

  • Movement/path overlap detection
  • Rectilinear space intersection/area calculation
  • Binary period location (P [P ≤ Q / 2] and [S[K] = S[K+P] for 0 ≤ K < Q − P])

Of these three questions, I managed to complete one and started trying to understand the other two before I said “Screw this”.

No, you didn’t read that wrong. I had a 33% success rate, and then I just didn’t care enough to keep going. I didn’t consider the problems relevant enough to my ability to bother taking them. I would not consider myself a poor programmer (in fact, a few colleagues have told me the opposite). I have been programming for over ten years, and have developed some really complex projects. I am highly creative, analytical and a good problem solver.

Maybe I’m just cranky because I didn’t complete their testing, but I would not use Codility if I ever needed to hire. Many self-taught developers are in the same boat as I am (lacking the comp-sci math background), but end up being stuck without the luxury of bailing out on the testing, because they need to test for some job they’ve applied for.

Reddit hiring is a much more useful test of ability and problem-solving.
http://blog.reddit.com/search/label/hiring

What To Do

July 12th, 2013

Sometimes, in fact many times, we are faced with the difficulty of what to work on. With so many projects and tasks, and so little time to complete them, it becomes as much work to decide what to do as it is to do it.

Today, I’m faced with that decision.

Do I work on the projects that I have been working on, that is a ranked and prioritized task in my current contract work list?
If I do this, then I make money, and I get one step closer to closing this project.

Do I depart from the list completely, try to take a step to freeing up time later on by working on automating some server build processes?
If I do this, then I make money, and I get to reduce the time I spend next time I have to build these servers.

Do I depart completely from paid work and instead put the time into my own project?
This would give me personal satisfaction and maybe down the road I might earn money.

Do I even want to spend this time behind the keyboard? Should I instead go do something to make the place I live a little better/cleaner?
Well, it’s house tasks, so I have to do them eventually. If I do them now, when I’m a little tired, then I can focus on work when I’m awake and rested again.

Or do I slack off and watch some TV, take a small mind vacation?
‘Nuff said about this.

It’s these decisions that we make every day. This isn’t even a developer thing, but rather just an everyone thing. We all have to make these kinds of decisions all the time, working out the benefits and costs in our head to decide where to direct the time we have.

Tonight, I think I’ll be a little productive and work on actual paid contract work.

This is part of being a contractor, working whenever you can focus enough to get some time done. And that leads into the next thing to write about.

One of the challenges we face every day is getting work done. It’s kind of different from working in an office, where just showing up is enough to get paid. As contractors, we have to focus and work, and we only get paid when we do. Sometimes it requires so much discipline to sit down and write code, to grind through the problem we are on, instead of gaming for a few more minutes, a few more hours. The benefit and the drawback of working from home is that you can do whatever you want.

Work in a towel after just stepping out of the shower because I didn’t want to put on pants? Did that.
Take a phone call and play with my cat at the same time? Have the scratches to show.
Play Minecraft for 3 hours because the code I was working on was boring and I got stuck? Absolutely.

Volumes have been written about this, about how so many people burn out doing this kind of work and have to go back to an office job.

I’m proud to say I’m a freelancer, and that I work from home.
It shows I have the discipline to keep logging hours.

Speaking of which…

Life and Development

July 11th, 2013

Development is such a hard thing to do sometimes. It’s not so much the work itself, but rather, the things outside of work. Life is messy, distracting, and expensive. I’m going to try and blog more about development, and the process around it, as I work through my job, my projects, and other things I do.

Today’s post was going to be a bit longer, but I’ve discovered that my car needs a new catalytic converter. Given the cost of having that fixed, I have to get back to work and log more hours so I can pay for that.

Life is messy.

Eating Your Own Dog Food

September 14th, 2010

Some background. I have a simple time tracker that I built a few months ago. It lets me log start and end times and a message to describe the work I did during that time. It was a simple journaling tool, but limited to one client per copy.

I’ve gotten tired of working that way, so I am currently developing a v2 on top of my new framework. It’s going to have proper time tracking, client management, and all sorts of other goodies.

This is defiantly a lesson in eating your own dog food however. I have encountered so many small and large bugs in many of the pieces of code I have developed. Still, a lot of fixes result in this. The most interesting though is this is the first time I am using my ACL class in a full project. I had done some rudimentary unit tests in the past for this project, but it was after the fact, and only intended to catch basic problems. It is so useful to have a project to test it with, and this work is uncovering so many things I didn’t even consider when I first built ACL. I’d worked on that class for a year and a half, but there are still many things that I need to add it seems.

For those of you that are interested, I will be releasing ACL in the near future, as it is a useful piece of code that will make your brain explode. So my next project is going to be documentation as well.

WordPress - Entries (RSS) and Comments (RSS) - © 2011 Ben Dauphinee