Wednesday, June 25, 2008

Darwinports, fink, and porticus

In order to install some of the software, you may need to install other software that it requires to run. I'm not really sure of the histroy of repositories, but basically there are places where people can upload their newest version of their software, then users can download a command line program that will mangage all of the software that comes from the repositories. Fink and darwinports (also called macports) are exactly that. If you install fink, then you can go to the terminal and type in something like fink install vlc and fink will find the latest version of vlc, see what else needs to be installed to run it (dependencies), download them, then compile everything since they are all distributed as source, and tell you complete when it's done. It's a beautiful thing for those of us who get stuck just trying to download or unzip from the command prompt, not to mention compile. None of those things are actually that hard, but if you don't love it you're going to hate it.

But some of us are even scared of typing fink install vlc, so there are gui's that make nice little application windows that you can point and click to accomplish the same thing. Porticus works for darwinports, and Fink Commander for fink. For everything I've done, I didn't even need fink.

So if you are starting out, a good starting point would be to install darwinports, then download porticus. While you are at it, install the developer tools from you mac install cd. You will need some of the tools on there, and anyway xcode and quartz composer are good things to have. These are available from apples website as a free download if you can't find your install disc. If you are into video, quartz composer is an extremely useful tool to play with. And with a patch you can make your compositions multitouch and interactive. But if you are just starting out, come back to that, there is still a lot to do.

OpenCV

OpenCV is open source technology from intel that is designed for video processing. While I don't understand it in anyway meaningful, or how to apply it, what I have seen people do with it is amazing. The specifics of OpenCV are outside the scope of this blog, but the important thing is you need it for multitouch. Probably intel created it as another way to attract developers to intel's chips, so if you happen to be running an IBM powerpc processor you would be dumb to think you could run it. Fortunately, the internet caters to the dumb almost as well as the intelligent, and after discovering darwinports and a gui to run it, I could discard all the recent knowledge about compiling from source and cmake and whatever else I was attempting and have the software figure out to install it. More on that in the next post.

OpenCV was sort of the turning point for me. At first it was the impassable obstacle, but because I was getting stuck there I kept trying to learn about the options for the software that I needed to actually run the table. It was a great learning experience, but ultimately unnecessary.

Now that I am much further along and have abandoned touchlib altogether, I'm not sure it's even needed. But I'll try to recreate the process of installing it anyway in the next post.

nuigroup

Finally, I found nuigroup.com. It was memorial day weekend, I had a rare 3 days off because I thought I had visitors for the weekend ( I messed up the dates), so I had lots of time and nothing better to do. In retrospect, all of this is fairly easy, so long as you find the right guides and ask the right questions. But from where I was coming from, and the limitations of my g5 tiger Powermac being almost obsolete (great for most things but not for cutting edge technology) I had a lot to learn. I had to install software before I could install software before I could install the software. Fortunately, the Internet is the ideal learning environment, and there is nothing it teaches better than itself and computers in general. Nuigroup was incredibly helpful, once I asked the right questions. I read the forum and hung out on their irc channel (#nuigroup on freenode). Fortunately, the mac is unix based, so a lot of linux users are extremely helpful when it comes to doing things from a command prompt such as compiling software (more on that later). But I still kept hitting dead ends. nuigroup is really only about multitouch, and although they have different methods, they are all based off of the same concept of multitouch. So nuigroup was the starting point, but google was where I had to go to get most of my info.

cubit + lux

In the spring of 2008, some links hit reddit and digg about lux and cubit. Lux was a video demonstration of software, with no information. But they were interviewed by engadget or someone similar, and blogged about. No additional info except that these things are home built.

Cubit was selling boxes, for something like $800 not including the computer or the projector. Interesting, but not worth the risk.

Both sites were frustratingly vague.

The seeds had been planted. I knew it was possible, but I needed more info because every aspect of this was over my head. I've always had a computer and could get it to do what I want, but only by following step by step guides. I was going to need some step by step guides.

Multitouch discovery

I don't remember when I saw Jeff Han's Ted demonstration for the first time, but it was before the iPhone was announced in January 2007. That Ted talk was why I was fascinated with the iPhone. I remember seeing a few more demonstrations, I think even one from Microsoft. But at that point it was just a "wow" technology - it would have never occurred to me that someone could build one of these things at home (which means, of course, that I missed the whole point of the demonstration). Satisfied with my iPhone, I was still keeping an eye out for anything I found related to multitouch. To me, I see it as a great way to interact with the computer more naturally, which could allow for some interesting creative projects. A virtual puppet show or light show is obvious, and already done. At the time the thought of being able to turn the thing into a keyboard or turntables was beyond my imagination. That's already been done as well. I can't even begin to imagine where this will be in a few years when more developers jump on board. Still, at this point I hadn't heard the key point- these things can be made for cheap.