On human nature and technology


Today, I looked at my flatmate – crouched over his laptop, phased out into the digital dimension and busy with work. “I probably look exactly like him” – my first thought was. Suddenly, I remembered something I read on the topic of embodiment:

“The environment is part of the cognitive system. The information flow between mind and world is so dense and continuous that, for scientists studying the nature of cognitive activity, the mind alone is not a meaningful unit of analysis.” This statement means that the production of cognitive activity does not come from the mind alone, but rather is a mixture of the mind and the environmental situation that we are in. These interactions become part of our cognitive systems. Our thinking, decision-making, and future are all impacted by our environmental situations.

Source: http://en.wikipedia.org/wiki/Embodied_cognition

Basically, what I get from this wiki article is that humans see the world as an extension of themselves and utilize their surroundings to fulfill their intentions (offloading tasks, for example, as in writing down notes instead of memorizing).


Now, what does it have to do with my flatmate? Well, I think this explains why people are so immersed into computers that they spend hours a day in an unnatural pose. See, the computer is a powerful tool – it can do many of the things we find difficult (memorizing, maths, wireless communication across the globe) with ease. This is why, when presented the opportunity, we gladly accept it into our cognitive mind as a part of us, loose ourselves into it, feel no hunger, no pain. The benefits are big – we get super powers, basically (WIFI is damn close to telepathy, don’t you think?).

So all is fine, nothing wrong with us… but wait! Back pains, eyesight problems, general health issues – all result from this “pairing”, us and the computer. And that’s a problem. If we agree that everything we do is well within our nature, then the computer must be to blame. And indeed, I claim that the health issues we face are due to how inconvenient computers are… have been so far, at least. This is changing!


Google glass is just one example of how technology is becoming more intuitive and unobtrusive. We need to wait till next year, when it comes out, to see if it will live up to the hype, but it is certainly a step in the right direction for me.

Now, I blabbered for enough. What do you think?


A quick update

Hello world,

Today was a day of bug fixing. I’m keeping myself busy with two projects right now:

  • TheHunt – Just made batch drawing of text work, so expect an update soon!
  • Ruby on Rails project – a friend and I are trying to put a website together. Rails is great. Taking an XLSX file and reading it into the database – done!

That’s more than enough to sleep soundly. Good night! ^^

TheHunt – Interactive graphical platform for AI experiments


Firstly, I apologize for the rather big break – I will try to be more regular from now on…

But finally I feel like I have something noteworthy to say, and show:


Prey casually flopping around

Prey casually flopping around


On the website above you can:

  • Download the current best version
  • View the full source code
  • Contribute! bug report, bug fix, adding a feature… or just a friendly comment on it, all are priceless =]

Short story:

  • Android game and live wallpaper simulating an artificial environment with algae and a fish (currently more like a fish bone, really)
  • Fish tries to eat as much as it can, munching on algae and food you’ve placed
  • You can catch the fish by surrounding it with a net
  • Open sourced, idea is to end up with other agents using the environment, maybe even interacting with each other (a crab? a seal?…)
  • Will be in the Play Store, eventually, when it matures enough

I will be using this blog to post regular updates on it, as well some behind the scenes information about how things work… also to answer to feedback you guys might have!

That’s it for now, I’ll be back soon to tell a bit more about some incoming features and maybe set some milestones!

More screenshots:

Prey hiding under algae, having heard the nearby net

Prey hiding under algae, having heard the nearby net


Catching the prey in the net!

Catching the prey in the net!



I thought I should say (in front of myself, mainly.. yes that was a reference to the number of followers I have, sad story) that due to my head full of exam materials which are of no interest to anyone (including future me) the “a post per day” routine is suspended for a while. I will still try to post as often as something comes to mind… but I will be back better than ever, so be ready! ^^

Anatomy of a CSP solver

This is a follow up post to SudokuH – Fast Sudoku Solver in Haskell.

Let’s see how SudokuH is made. I will try to be as little technical as possible, but it may still be a long read.


The first surprise! You open up the source code, and what do you see? Pure awesomeness. This has little to do with my pro skills (that’s short for programming skills, if you wonder), and more with Haskell. Let me tell you, I love Haskell. My feelings towards it deserve a separate post, so I will just say that Functional Programming is powerful and elegant. It does take some time to get used to but after this writing in imperative languages (like C, Java) feels… obsolete. If I had to implement the algorithms in SudokuSolver.hs in, say, Java, it might have very well become 500+ lines of code (compared to around 150 right now without the comments). So… if you don’t know Haskell, why not give it a try?

Continue reading

SudokuH – Fast Sudoku Solver in Haskell

GUI might not be beautiful, but it does the job

Edit: You can find out more about how SudokuH works in the separate blog post – Anatomy of a CSP solver

Do you like solving Sudoku? To be honest, I am not a huge fan of it – not sure if I had solved even one by myself. I find it a bit of a waste of time. During an AI course I had in uni, however, we wrote a fancy Constraint Satisfaction Problem (CSP) solver. Mine happened to be the fastest in the class, and despite the fact that I did win some chocolates and fame, I thought I can exploit it further. Thus, SudokuH was born – a GUI Sudoku Solver using MAC+MRV algorithm written in Haskell.

Continue reading