How to: Easy SVN for code sharing

Upplagd av Johan

So, I thought I'd share this one, because I find it very useful in all sorts of projects that involve code. If you're not familiar with SVN, it is a way of keeping track of code when more than one person is involved in programing. It keeps track of changes, conflicts (multiple persons edited the same line) and lets more than one person edit a file at the same time. This tutorial will mainly go into how to set up a SVN using a program called Dropbox.

Dropbox is a small program that sits in your systray and keeps a folder on your hard drive synchronized with a server online. Everything you put in the folder is automatically uploaded to the server and you can access the files online. If you have the program running on more than one computer, the second computer automatically updates the content of the Dropbox folder when someone put a file in it on the first computer. Dropbox also lets you share folders with other Dropbox users, which is perfect when you need to share documents and code between group members in a small project.

The basic idea here is to avoid having to create a webserver, which is usually needed when using SVN. Instead we will use a shared folder in the Dropbox to store the SVN-information. So here we go, step by step (this is based on Windows but should be very similar on other OS):

  1. Let every group member register for a Dropbox account here (it's free and available for Windows, Mac and Linux!). Download and install the program.
  2. Create a folder somewhere in your Dropbox folder. This folder will function as the home folder for your project. Mind you that you should NOT put your folder in the folder "Photos", nor in the folder "Public". Other than that, you may put it wherever you like.
  3. Right click the Dropbox icon in your systray (you know the thing in the lower right of your screen if you're using Windows) and choose "Web Interface".
  4. Now hopefully your browser launches and you find yourself in your personal Dropbox page. If you scroll down you will find a web representation of your Dropbox folder. Navigate your way into the folder you created in step 2. Just below the text that say something similar to "My Dropbox >> My New Project Folder" you find a little text saying "Share this". Click it and invite all the group members to share the folder.
  5. When they accepted the invite, you all have a way to share whatever files you wish. Now it's time for the SVN-part!
  6. Go to this page and download TortoiseSVN. Install the program.
  7. Open your Dropbox by double clicking the icon in the systray and navigate to where your project folder is located.
  8. Now, create a new folder inside your project folder called "SVN" (doesn't have to be called this, but it is clearest this way). Right click the new folder and "TortoiseSVN->Create repository here".
  9. The program will now create a SVN-file structure for you. One important thing to remember with SVN is that YOU MAY NOT ALTER THE CONTENTS OF THE SVN-FOLDER IN ANY WAY WHAT SO EVER. This will ruin the SVN most likely, so it's best not to mock around in that folder at all.
  10. When the program is finished you have a SVN that is ready to use. Now all you have to do is to hook up your favorite coding environment to the SVN-folder. I'll show you how to do this in Eclipse, but it should be perfectly possible to use any other environment of your choice.
  11. Let's assume that you already have Eclipse downloaded, installed and running. Fire up a web browser and navigate to this page. We're going to install a plugin to Eclipse called Subclipse, which is for handling SVN. At the mentioned home page, look for "Download and Install" and well there, look for where it says"Eclipse update site URL". There will probably be a few different versions display there, so find the one that matches the version of Eclipse (use "Help->About" in Eclipse to see what version you run) that you have. Copy the URL.
  12. In Eclipse, go to "Help->Software Updates" (note: the exact name and location of that menu option may variate, but what you're looking for is the place where you can install new plugins. If you have problems installing Subclipse, try checking the help section on their web page). Click on "Available Software" and then "Add Site". Paste the URL you copied and click OK.
  13. The new site will now appear in the list of software sources. Fill in the box and click the button named "Install" (for some very stupid reason it's located to the upper right in my Eclipse version, very poor HCI indeed). Click your way through the installation and restart Eclipse when asked.
  14. Now we're almost finished! When Eclipse finished restarting, click "File->New->Other", find "SVN" in the list and click "Checkout Projects from SVN". Click "next".
  15. In the next screen you'll be asked if you want to use existing repository location or to create a new one. This has nothing to do with what we did before with Tortoise, so hit "create a new repository location" and hit next.
  16. Now you are asked to fill in a URL. The URL should be in the format "file:///C:/Path%20To/Dropbox/My%20Dropbox/ProjectFolder/SVN/". That is, "file:///" (yes, there should be three of them) and then the file path to the SVN-folder that we created using TortoiseSVN in step 8. You need to replace every backslash with a normal slash and all the blank spaces in the file path with "%20".
  17. If you done it all correctly, you should now be able to press next without any problems. If you are having problems clicking next, check the file path again. If it appears to be correct, try to install Subclipse again, we had some problems with it not installing correctly at the first attempt. The problem was cured by simply installing it again though.
  18. In the next screen, you need to mark the line saying "file:///C:/...."-someting (it has a yellow little icon next to it), and then next.
  19. Keep clicking next and following the instructions. At some point you'll be asked if you really want to check out the head revision, click yes. If every thing goes as planned, you should finally end up with a new project in your workspace, this will be your course project.
  20. For the rest of the group members, repeat steps 11-19.
I will not go through the use of SVN here, there are plenty of guides out there if you need them. Basically it all comes down to the TEAM-submenu that you get if you right click your project in the Eclipse workspace. There you can commit (upload) code, update code (download whats in the SVN-server that others have committed) and handle conflicts (click "mark as resolved" from the TEAM-submenu of the file that contained the conflict).

That's it, enjoy the SVN and the lack of troubles that usually come when people hack away at the same code at the same time... =)


Pattie Maes demos the sixth sense @TED

Upplagd av Nico

Amazing new implementation of the minority report interaction style! This time it's all portable.


FluffyTable | Demo

Upplagd av Nico

Here is our final demo:

HowTo | Piezo Sensors

Upplagd av Nico

Piezoelectricity is the ability of some materials to generate electricity in response to a mechanical constraint. It's called the direct piezoelectric effect, and the reverse piezoeletric effect is a strain of the material when an electric field is applied to it. They are many applications of this effect, and two very famous one are the lighter (or push-start for propane installations) and the quartz cristal in our watches (to generate the clock impulses).
So, the piezo electric sensors we use can detect both vibrations and direct taps by generating a proporitonal electric current. That's why there main application is around electronic drums and "tapping systems" in a broad sense but as we discovered here for our FluffyTable, they can quite easily detect also strokes (given with enought pressure).

One of their main advantage is to be very cheap (around 10kr each), and they exist in different sizes (from around Ø10mm to Ø35mm on elfa). They are quite reliable even if some sensors can be more sensitive than others from the same size (the way they are fixed is also important). It was ok for us because we just needed an activation value. Connected with a basic 220kΩ they return values between 0 and 400 that is completely enough to compare inputs.

Here is a basic drum application done with an Arduino and four piezo sensors:


The future?

Upplagd av Johan

Now that the course is almost over, maybe it's time to check out what awaits us in the future? (at least according to Microsoft)

<a href="http://video.msn.com/?mkt=en-GB&playlist=videoByUuids:uuids:a517b260-bb6b-48b9-87ac-8e2743a28ec5&showPlaylist=true&from=shared" target="_new" title="Future Vision Montage">Video: Future Vision Montage</a>

Using an Arduino Diecimila board to let a Nintendo Wii Nunchuck control a camera mounted on a "pan&tilt" mechanism with two servos. Nunchuck's accelerometer (an ADXL330) is used to move the camera. If the Nunchuck's "Z" button is pressed, the camera position is locked.
Sketch at: http://www.ideavirus.it


Make Your Own Inexpensive Multitouch Pad

Upplagd av shobaki

I found this one on YouTube. 

A small how-to to make a cheap multitouch pad using only a box, paper and webcam. It's a fun video and shows the easiness of making a such thing. 

Your very own multitouch, wow!

This very simple, but yet so extremly exciting game, over a distance. Can it be more fun?

Basically you're playing against a human opponent, just as regular, but this time the opponent can be in another room, city, country. I found it at the ACM portal Try to download the pdf.

After a visit on Google I found this page, describing how the game works.

There's a screen placed in the middle of the table that shows you the opponent and his/her side of the table. The puck is still physical, and whenever it's hit towards the other side another puck
 is being shot from the rotating cannons on the other side.

You can see that there's a certain delay between the two sides of the "table". It's as if the table is one meter longer.

We had ideas in the project group about making a game similar to the air hockey, but with the feature that let you hoover with your hand instead of holding a "shooting-the-puck"-thing. BUt this game over a distance sounded very interesting. Although we're into the Grass Rug Coffee Table, why not something physical over a distance?

Anyways, this air hockey game over a distance seems to be very fun.

Project exploration assignment

Upplagd av Tomas P

Project exploration assignment
For the project exploration assignment I have chosen the RoutePlanner (from the session “Student design competition”, CHI 2006). It’s a “portable personal training and motivational aide, which displays real-time statistical and locational data”. I don’t know if I fully have understood the product but as I understand it is something that tells you have long you have ran, biked or whatever you do and then even saves the different routes.

Unfortunately I couldn’t find any pictures and did not find much to read about it either but if the device does what I think it does, then I think it’s amazing. I believe it would make training so much more fun and it would be easier to vary your training by choosing different terrain and distances. Spontaneous tours with your bicycle would be easier to do since you would know where you are all the time. Simply a great tool for any runner, cyclist, walker and so on that I think would help a lot. I would definitely buy one.