Tag Archives: programming

Cool on-going projects [part 2] – Going large

21 Apr

Working with a CCD camera and image recognition is one of the things you can do in if you choose to.

This time I want to highlight another student project carried out at the SEM program; the semester four Embedded Project. Linda, one of ITU’s PR responsible, wrote about last year’s project in Swedish on our institute’s (Applied IT) website and I have probably mentioned it before. But, this project is just so cool it deserves a mentioning on its own.

Muggy – the nextgen cleaning assistant
Each project is defined and organized by the students themselves and all students in the year two are involved. In practice this means that a few weeks before the project kicks-off a group of students voluntarily sits down, bangs their heads against the walls (banging is highly optional as it is not mentioned in the course plan), and comes up with an idea or concept for the class to realize. We did the so called ‘Mars Explorer‘. This year they’re making the world, or at least the IT-university, a better place by literally moving dirty mugs to the kitchen. The image recognizing, dockable, weight-sensitive beast built using multiple Arduino micro-controllers and some more will revolutionize the world. Right…

50 students, 1 product
Those of you with me so far realize that this project is doomed to fail. That is, of course, dependent on what you consider a failure. For me this project:

  1. provides a massive educational experience, as it
  2. is a complex social experiment with groups and individuals collaborating
  3. gives each student a chance to improve in his/her specialization

Despite the best planners and skilled students some parts of the project is going to fail, or put it more gentle, there will always be room for great improvement. This is surely not the first project for SEM students, most of our education is problem and project based, but it is surely the first of its size. Integration and communication are two challenging areas of work. In the end most of it is down to social skills*.

What’s that cool?

Apparently the LED indicates that the scheduling is working...

Basically, it boils down to this: you have tons of fun working together with friends building a single tangible result. Even if your robot won’t drive straight or mistake bananas for mugs, your robot will kick-ass. Because you’ve made it. Together.

Friends have often asked if I ever got the chance to do the same project over again, would I do it? At first my answer was simply no (it is quite tiring to work that much), but when I think about it, didn’t I just have too so much fun? No project is ever the same, with a new scope and new set of resources, of course I would do it!

Learn more
If you want to follow this year’s students’ progress check out their project blog: http://itupw056.itu.chalmers.se/trac/emb10/blog

* I realize here that many will probably disagree, that technical skills is a prerequisite for producing something at all. That could be true, but a techie not able to communicate his excellence is no good techie to me. Feel free to disagree (and please comment if you do).

Cool on-going projects [part 1]

12 Apr
Believe it or not, this is useful data!

Believe it or not, this is useful data!

As usual at the SEM programme, a lot of the studying takes place in project courses, and possibly culminates in the bachelor thesis. In this, and a following post, I will highlight a few projects which in my opinion is really cool and fun.

Finger-tracking interaction device
Imagine using your fingers to steer, maneuver, or in some way interact (this is the keyword) with a device. This is what Ludvig and Gustav are working on in their thesis currently named “Pushing Towards Embodied Interactions.” On a practical note they are using low-tech image capturing devices (read: two off-the-shelf web cameras) and then, with real-time constraints, filtering the images to outline the contours (see image to the left). With this information isolated they can bind certain movements to events and thus you are able to control your computer.

What is the applicability of this you ask? Well, a lot of research is currently being done in human computer interaction, in which this project also can be categorized. One possible scenario is found in their introductory text: “As an example, the BMW research and technology group has implemented a head- and gesture system for controlling infotainment systems [in cars] and mention that in contrast to speech recognition, it can be used in noisy situations.”

Modeling complex software models in 3D
Jonatan and Joacim are working together with Ericsson AB on an implementation of a previous thesis conducted by one of this blog’s co-authors, Linda. In essence, they are testing if it is easier to understand a complex UML software model if it is visualised in three dimensions. By using the programming language python and the 3D library Panda they have successfully built a functional prototype. Watch the video below for an introduction.

Their research falls into a category called Model Driven Development which means that applications and systems are no longer developed in pure code, but rather with the use of sophisticated modeling tools in which you express a system’s behaviour through, for example, state charts.

Stay tuned for more projects!

What hides in your social network?

26 Feb

Meeting new friendsA few weeks back I stumbled upon this blog post by Matt Biddulph, former CTO of Dopplr, where he explains how he used the Github API to find potential people for recruitment. The idea is tantalising! Obviously the results must be interpreted with some sanity but I started wondering if this was something I could apply in another context.

Outside my studies I’m actively involved in Scouting and I recently joined the planning team for a huge event in Sweden in 2011. It is the 22nd World Scout Jamboree and I’m working with some intelligent people on social media and marketing. One of the themes for the Jamboree is Meetings, implying that the Jamboree is a great place to meet new friends, bridge cultures and work towards better understanding. Around 30 000 Scouts from all over the world will be gathered. On a side note, roughly 20% of the participants are from Sweden. Meaning it will be a truly international event which hope to gather Scouts from more than 150 countries. The Olympic games isn’t even close ;)

A part of the social media work is maintaining the @Jamboree2011 Twitter account which, at the time of writing, has 802 followers. Now, it seems to me that some of my twitter friends must also follow @Jamboree2011. Therefore, I postulated the following question: Would it be possible to measure the amount of meetings facilitated by the 22nd World Scout Jamboree? While that is a very broad question, perhaps we can use it to derive indicators for the social media marketing impact, and especially its contribution to the theme Meetings.

One way I thought of brought me back to Matt’s post on social recruitment. Twitter provides a developer API and there’s a handy python library to make it easy to use. Therefore, I started poking around with a small script that builds a graph based on the connections between the followers of a Twitter account. Here’s the first result when analysing @mljungblad:

@mljungblad's connected followers

Essentially, each red dot in the graph above represents one of my followers. Each connection between two red dots means that at least one follows the other, or both ways. Simply counting the number of connections gives us the total amount of meetings facilitated through me. Of course, there is little purpose of doing this for me, but it will generate some cool data on the Jamboree account. Until Twitter changes the rate limit on my account this is what I have to work with though.

Using the raw data we can make many more applications, such as plot the distribution on a world map using the geographical data that some users provide. We could make measurements over time, to see the increase in number of meetings between followers. Hypothetically we could also determine the most or best connected followers and recruit them to our HR department. Once the data is gathered, there’s so much you can do. What would you do?

Your sex doesn't decide your ability

7 Jul

adaHow come the IT-industry is so male dominated? There are always more men than women at IT-trainings. The SEM-programme is no exception. Has anyone heard of the opposite?

Sometimes it almost seems like women are incapable of handling a computers. Isn’t it sad that there is an award for women in computing? Why isn’t there one for men as well? Or is it really so fascinating when a woman succeeds to do anything useful in a male dominated area?

Nevertheless, the very first programmer is a woman.

Ada Lovelace: incredibly intelligent, excellent at both computing and mathematics, and still exceptionally feminine. Her wits have inspired generations of enthusiasts after her. She is an evidence of female potential. No wonder there’s a pillar with her name on it in the entrance hall at the ITU. I really hope she will ignite sparks in all the talented women out there, who are stopped by their sex.

Ready for Erlang Factory

25 Jun
Erlang Factory

Erlang Factory

Magnus, a classmate of mine, and me just arrived safely to the YHA* youth hostel in London. It is situated close to Great Portland Street, which we in turn hope is not that far from the Old Sessions House. What’s taking place there you wonder? Erlang Factory!

If you haven’t heard about Erlang before, I don’t blame you. It is one of those programming languages that has just recently begin to gain some real traction. Instead of me rambling about it here, head over to Wikipedia and read about it. In short, Erlang is a “really cool” (editors note) functional programming language suited for fault-tolerant and distributed systems.**

In term 3 of the SEM programme the language is taught to students in a five day highly intensive course by Mr. F***. It starts out with the basics, and then slowly introduces the three big hurdles of the language: recursion, pattern matching, concurrency (message passing). It’s a tremendous educational, fun and exciting journey if you are only used to object oriented programming languages such as Java, Python, C# or anything similar. C programmers wont recognize a lot either. Which all makes it very interesting!

Over the two day conference, Magnus and I will try to report our thoughts regularly on the speakers and their concerns. For a full list of speakers check this page.

For more information about Erlang and Erlang Factory check out the following sites:

- http://erlang.org
- http://trapexit.org
- http://erlang-factory.com

Follow mljungblad at twitter (http://twitter.com/mljungblad/) and also check out searches on “Erlang Factory” and #erlangfactory.

* The have free Wifi and what seems to be an awesome young atmosphere, already liking it.

** If that went over your head too, then at least remember the excitement. ;)

*** Mr Francesco Cesarini is the founder of Erlang Consulting Ltd

Can you teach me how to program?

12 Jun
Random Hackers by jpbader@flickr

Random Hackers by jpbader@flickr

There’s one short answer to this question, and one long. The short is: “No.” The long, well, that will take some elaboration. I was recently collecting some introductory material on programming for the new students who are arriving this fall and these are my top five ideas on how to learn how to program.

Work hard
Programming is highly practical. Your job is to transform words of English (or any other spoken language) into a language that the computer understands. The tricky part is that the computer has, compared to human beings, very limited interpretation skills. Surely, artificial intelligence is growing steadily, but it is far from ready to understand syntactical misspellings and so forth that you eventually will make as a programmer. Practicing, learning-by-doing, is the key to understand the wonders of programming. One awesome thing is that once you’ve passed the first barrier, the other is just next door and then there’s a world of possibilities.

Connect with reality
Find things around which you can relate to. While I was working as a Java supervisor I tried everything from apples to CD-racks. Those are tangible, things you have in your house, but most importantly things you already know. Ask someone for help if you have a hard time imagining what, for example, a heap looks like.

Love errors
I think the first thing we should teach people who are new to programming what a stack trace is. Irrespective of what programming language you’re using, there’s a huge chance the answer to what’s going wrong is in the stack trace, or error output. Be prepared to fail, and to learn from your mistakes.

Don’t read a book
Well, do that too, but there are few books to my knowledge that suits students with absolutely no programming knowledge. The best book I’ve found is called “How to think like a computer scientist” by Allen B. Downey as he starts at a more conceptual level and then slowly moves into the Java programming language. Most importantly, however, start filling out that blank white sheet with some code!

Learn from others
Work two and two. Find a friend who’s also new to programming and sit down together. Attack a problem, discuss, test, fail, discuss again, and change. Read other people’s code. There are plenty of open source projects out there where the code is freely available. Inevitably some of it will fly over your head, but study the details and you will soon see similarities. Once again, it will require hard work.

All of this may sound so simple when reading it. It is not. That is why I cannot teach you how to program.

Happy hacking!

Unveiling Rift

4 Jun
One world in Rift

One world in Rift

What goes into game development? In IT, apart from perhaps FRA, the game industry is one of the most secretive there is.

The Swedish game industry is growing despite the global financial crisis, and in a few days it is time for this year’s edition of Swedish Game Awards. This year there’s to my knowledge at least one contribution from the IT-university; Rift.

My brother is part of the team behind the game and I’ve curiously been following the development this past half-year and so last  Monday I got invited to their release party for a full try-out! While I was getting used to the Xbox control (I’m not usually gaming a lot) I contemplated the code behind it. A couple of thousand lines probably, a physics engine, maybe even dirty hacks!? Evidently, there were some bugs, but bugs in the games are different from those in desktop applications. As long as it looks and feels awesome, the implementation doesn’t matter. You strive to provide the gamer with an experience, that’s what counts.

Though their game wasn’t nominated for the finals they’ve gained a huge amount of knowledge about the all the intricacies that goes into the development of a computer game. Rumours says they’re already, with uttermost secrecy, working on the next “big thing”!

Links:

- Rift – Trailer

- Rift at SGA

- Download Rift from Fragzone – Don’t forget to vote ;-)

The art of achieving programming skills

29 May

Learning to program is tricky if you lack the passion or interest for it. People who like it have no difficulty at all to focus for hours, since they don’t actually notice that they’re making an effort. Being able to just play around and find it fascinating is a great way of learning. But others might not feel this way. Subsequently, the effort needed to actually master programming is insurmountable.

Many students say that the only way to learn programming is by doing it, without minding books. Trial and error, learning by doing… you name it! Phrases like that have constantly been echoing in the corners of the university as well as in my brain. But being a newbie, it is frightening to stare at a blank page in Eclipse. The anxious feeling not knowing how or where to start just overwhelms you.

head-first-javaPersonally I think many beginners think it’s more complicated than it is. One reason might be the endless books with an endless number of pages that are just too serious. Although there is one book that I’ve found totally amazing. Head First Java -the funniest programming book on the market so far.

This is from the section Life and Death of an object:

…then he said “I can’t feel my legs!” and I said “Joe! Stay with me Joe!” But it was… too late. The garbage collector came and… he was gone. Best object I ever had.

Suddenly life seems a bit brighter. With this book I get the feeling that everyone can program. The weight of a little humor bends your brain into submission. Trust me.

Knowing standard geek expressions

17 May

There are certain prerequisites for studying IT. Oh yes, there are. You ought to know how to open a Word document and how to send an email, which everyone already knows, of course. But in reality you should be pretty clever and know how to program (although no one says so until your first Java exam is scheduled). Anyhow, there are these additional things you must know to handle social situations with computer geeks.

Therefore, take a look at this nicely embedded video! It really teaches you many good things that you would never find in a book.

YOU FAIL IT! YOUR SKILL IS NOT ENOUGH. SEE YOU NEXT TIME. BYE BYE!

The programming fuels

12 May

jolt-or-no Some students at the IT-University never seem to run out of energy. They’re fully charged from early morning to late at night and work like there was no tomorrow. You imagine that most of them are busy chatting, as you notice the sound of high-speed typing fingers. They can’t be working… seriously. And it’s not that astonishing to stay alert while communicating with friends and loved ones over the Internet! So, you sneak behind their backs to get at glimpse over the numbers of messenger windows that are up on their screens, but what you actually see is lines and lines of code… Not really what you had expected! You start to feel slightly nervous and to ease your worries you inconspicuously search for the battery hatch on their bodies. But there are none to be found! The peculiar students ARE humans. Not robots or cyborgs or anything else.

So what in the world keeps them going?

Well, one qualified guess is the fuel they get from the coffee machines. IT-students can fill their cups with anything from the list below for free:

  • Kaffe
  • Mocka
  • Choklad
  • Cacao Crème
  • Chocoffee
  • Wiener Melange
  • Cappuccino
  • Café Au Lait
  • Caffé Latte
  • Macchiato
  • Tevatten

One or more beverages in the list seem to increase your programming efforts. I don’t know which one yet. Do you?

Follow

Get every new post delivered to your Inbox.