Time to go hiking!

It’s been nearly 2 months since I hiked Little Bigelow with Max (currently conquering THE Appalachian Trail)and a ragtag group of Appalachian Mountain Club members (including the dean of UMaine’s College of Engineering). Little Bigelow was my first big snowshoe trek, and was a great hike even though we were socked in with clouds at the top.

So now it’s almost March May (thanks mom). Snow has been mostly gone for a couple weeks, temperatures are reaching the 60′s, and I’m itching for a nice spring hike.

In trying to choose a hike, I grabbed the AllTrails iOS app, which uses google maps to show all sorts of different hiking trails in an area. AllTrails lets users rate, comment on, and add pictures of various hikes; altogether a well done app with a pretty decent user base.

I settled on the White Mountains National Forest, mainly due to it’s strategic location between myself and the other people I hike with. Oh, and the fact that it’s a huge region of mountains with tons of 4000-footers. I pointed the AllTrails app at the White Mountains, and settled on the Champney Falls Trail. 7.6 miles round trip to the bald-topped Mount Chocorua, including a waterfall along the way.

After a cold winter which saw me sunrise-summiting Sugarloaf and snowshoeing up Little Bigelow, I’m looking forward to shedding the layers for some beautiful spring hiking. I love being able to hang out atop a summit, enjoying the accomplishment, rather than making a quick turnaround to spare frozen fingers.

As usual, the end of the semester is very busy, but once school is over (May 7th), I’ll be trying to separate some people from their busy schedules for an excursion into the woods of Northeastern New Hampshire.

Radiolab: What Does Technology Want?

I was recently turned on to the addictive Radiolab podcast by a friend; I ended up listening to 6 episodes in a row.

The episode titled “What Does Technology Want?” features guest Kevin Kelly talking about the idea that maybe technology has some intrinsic guiding force that pushes it in a certain direction, similar to how a tree grows toward sunlight.

It seems like a more common perspective on technology is that it’s guided by what people want from it. People wanted to be able to communicate over long distances, so we invented the telegraph. People wanted to haul things, so we invented steam engines.

Instead, the podcast presents the perspective that ideas are bound to occur to someone given the right conditions. The example of the light bulb is used: the concept of the light bulb was apparently conceived separately by several people, all around the same time.

This is a really cool way to think about innovation — as long as you don’t get caught up on the idea that maybe creativity isn’t so much creative, as inevitable; I don’t — and I think I can pick out some examples of it.

In the past 5 to 8 years (ballpark), there has been major growth in mobile computing, carried on the back of semiconductor manufacturing advances and growing data networks. This has led to huge amounts of people getting directions while driving, sending emails from restaurants, and playing scrabble in bed (this guyyy).

In parallel to this proliferation of portable computers, major progress was being made in the field of position, navigation, and timing. Specifically, the Global Positioning System (GPS). Some really smart people worked really hard to solve a surprisingly difficult problem: providing an accurate location of anything, anywhere in the world.

So now we have people traveling all over the place with internet connected phones. And we have a network of satellites in orbit allowing those phones to figure out exactly where they are. I can see a pretty reasonable argument that it was only a matter of time before the idea of location aware services began to occur to (probably many) people.

When I think of foursquare (which I just joined), it seems like an almost obvious idea. Where is a good place to go out tonight? Trending locations. Even better, check-in based specials. Super cool.

Perhaps another example is internet search. As the internet started to snowball, it got to the point where there was way more content than any person could keep track of. Again, it’s not unreasonable to think the it “just made sense” to come up with some way to find specific things. It’s a logical next step. Pepper in a bit of algorithms, courtesy of math and computer science, and soon you’ve got everyone’s favorite ubercompany, Google.

So considering this perspective, can we get some insight on what’s next on technology’s agenda? There are certainly plenty of entrepreneurs trying to come up with the next big thing, but from what perspective are they searching?

I don’t want to tip my hand, but if I ever decide a new idea is strong enough to fully commit to, it’s almost certain that I will have been led to it by things I’ve previously done.

Solving sudokus the hard way

My partner and I recently presented our semester project in ECE 577 Fuzzy Logic:

A particle swarm optimization sudoku solver.

Sounds nasty right? Let’s break it down into a few parts:

A sudoku puzzle.

  1. Sudoku
    • A sudoku is made up of a 9 row by 9 column grid of cells
    • Each cell holds a number between 1 and 9
    • Each unique sudoku will have some of its cells already filled
    • The puzzle is solved when:
      • Each row contains the numbers 1 through 9
      • Each column contains the numbers 1 through 9
      • Each of the 9 little 3×3 squares contains the numbers 1 through 9
  2. Sudoku Solver
    A sudoku solver is something that can fill every cell in a way that solves the sudoku. This can usually be done quickly and efficiently by viewing sudoku as a Constraint Satisfaction Problem. We decided to try to solve the same problem using a particle swarm optimization.
  3. Particle Swarm Optimization (PSO)
    Particle swarm optimization is a stochastic search method that uses communication between particles to move toward a solution. Like other stochastic search methods, PSO is used to find a solution when there are too many possibilities to check one-by-one. Think needle in a really, really big haystack. A particle swarm optimization consists of a swarm containing some (usually large) number of particles. Each particle has a position in the search space, and a velocity that moves it toward a solution in the search space. Particles work together, telling each other about how well they’re doing. An analogy is vultures flying around, spread out over a desert, eventually all showing up at some dead animal.

The next step is to figure out how to massage the concept of a sudoku into a particle swarm optimization. There are two tasks here:

  1. Figure out how to represent a sudoku as a particle
    We decided to let each particle contain a filled out sudoku puzzle, representing a position in the 81 dimensional (9 rows by 9 columns = 81 cells) search space. Each particle contains another 9 by 9 matrix of velocity values, as well as some bookkeeping stuff for the PSO.
  2. Come up with a fitness function to evaluate our particles
    We eventually settled on a fitness function that scores:

    • 10 points per correct 3 by 3 square
    • 9 points per correct row
    • 9 points per correct column
    • 1 extra point for each cell that satisfies an extra constraint (intersection of: row and square, column and square, column and row, or all three)

We whipped up an implementation in python, and used the PyQt4 bindings to build a Qt4 Graphical User Interface (GUI) so we could watch what was going on in the simulation.

The PSO sudoku project.

Unfortunately, we saw very limited success as far as actually solving sudokus. In almost every puzzle we attempted, our swarm would work well for a while, but eventually get clumped up on one partial solution, and stop improving.

On the bright side, I got to get even more familiar with python (<3), and also got my hands dirty with the model-view architecture of Qt4.

A blog? That’s so 2000′s!

Yep, I’m late to the game. But I still think it’s worth creating a presence.

Over the past few years I’ve definitely had times where I’ve felt the need to write something down somewhere, but never really followed through. This will provide me a platform to do that. So what kind of stuff will I write about? Errything.

It seems like I always have some kind of random thoughts occurring to me on all sorts of topics:

Interview prep work.

My first shot at an android app logo

  • Stuff I wish I was good at (playing with vector art in inkscape recently).
  • More abstract stuff. I’ve been thinking a lot lately about how perspective (student vs. teacher, technical vs. non-technical, social/economic situation, etc.) influences things. Very general here.
  • Life stuff. This summer looks awesome, more on that later.

I don’t expect anyone to relate to everything I post, but I hope my friends and family will each find some portion interesting.

It’s 5:30am, and I’ve got a day full of DSP demos tomorrow; time for sleep.

blog.init()

So I finally bought myself a personal domain. anrope.com. It’s something I’ve been meaning to do for a long time, and finally convinced myself to do (after 1am, of course).

Here’s a quick review of my Easter night:

  1. Decide I should try to register the domain for my oft-used alias “anrope”
  2. Become excited that it’s still available
  3. Get sidetracked for an hour considering going Peruvian (points if you get this). The Nuevo Sol is the currency of Peru, and it’s currency symbol is “S/.” (as opposed to our $), which means I almost spent 100 times more than I meant to. Whew.
  4. Spend another hour learning the “domain registration game”. Lots of nasty reading, Hacker News and this nice list ranking registrars by domains registered were easily the most helpful. I settled on name.com, the 11th ranked US registrar. After grabbing a coupon from retailmenot, I finally bought my domain. I probably over-researched, but I do that a lot.
  5. Set up my new domain to use the same web hosting account as the Cobbossee Colony Golf Course website, which I maintain. I was happy with how easy it was to point anrope.com at a subdirectory on the host. The more nerve-wracking part was reconfiguring golfcobbossee.com to separate the two sites, without stepping on any SEO toes. I hope I did that right.
  6. Install a WordPress blog. As much as I usually prefer doing things myself, the SimpleScript setup of WordPress was seamless and super fast.

So, $8 and a few hours later, I’m now writing my first blog post on anrope.com. Feels good.

Almost 5am, but time for another post!