Professional Code Monkey

  • Archive
  • RSS
Swedish energy APIs neededToday I write on the Swedish API site mashup.se that “better APIs are needed to cater for new types of services based on an increasing number of home automation products entering the market.” 
It is a call to Swedish energy companies and government agencies to step up to the game and deliver APIs that enables developers to create meaningful services on that data. With products such as Ninja Blocks (I’ve ordered one for work), SmartThings, and Telldus, we’re able to, in a combination with energy APIs, generate useful insights and suggestions. 

Förmodligen (förhoppningsvis) finns det fler [datakällor] som bör finnas med i listan och med en snäll spark i baken på energiföretagen och myndigheterna kanske vi till och med ser dem på mashup.se framöver. Med bättre tillgång till energidatan genom APIer är jag övertygad om att vi kan få se riktigt nyttiga och häftiga tjänster för den hårdvara som börjar leta sig ut på marknaden.

Accessible APIs are a necessity to enable the next-generation of energy services. 
Ps. If you’re in Malmö, check out Media Evolution’s seminar on Open APIs (in Swedish)
Pop-upView Separately

Swedish energy APIs needed

Today I write on the Swedish API site mashup.se that “better APIs are needed to cater for new types of services based on an increasing number of home automation products entering the market.” 

It is a call to Swedish energy companies and government agencies to step up to the game and deliver APIs that enables developers to create meaningful services on that data. With products such as Ninja Blocks (I’ve ordered one for work), SmartThings, and Telldus, we’re able to, in a combination with energy APIs, generate useful insights and suggestions. 

Förmodligen (förhoppningsvis) finns det fler [datakällor] som bör finnas med i listan och med en snäll spark i baken på energiföretagen och myndigheterna kanske vi till och med ser dem på mashup.se framöver. Med bättre tillgång till energidatan genom APIer är jag övertygad om att vi kan få se riktigt nyttiga och häftiga tjänster för den hårdvara som börjar leta sig ut på marknaden.

Accessible APIs are a necessity to enable the next-generation of energy services. 

Ps. If you’re in Malmö, check out Media Evolution’s seminar on Open APIs (in Swedish)

    • #JustMigrate
    • #api
    • #energy
    • #future
    • #idea
  • 4 months ago
  • Comments
  • Permalink
Share

Short URL

TwitterFacebookPinterestGoogle+

Merry Techy Christmas

Santa is coming to town and all his stack frames are full with geeky goodies.

The day before Christmas Eve I talked with my grandma using Skype. She got a Samsung Galaxy 10.2 for birthday. Now she’s eagerly waiting for the introduction to “Internet” (read: browsing the web), but is already doing video chats with me and my cousins on Skype, playing Solitaire, and checking the TV guide through an app. Facebook isn’t really a priority yet, but hey, in a few weeks who is tagging the latest Christmas photos? 

Farmor_skype

A few hours ealier as we were going from Malmö back to me and my girlfriend’s hometown we stopped to eat lunch and pick up Lisa’s grandma Ann-Marie. She enthusiastically explained how she’s keeping track of birthdays in Broby (a very small town in th north eastern corner of Skåne). This intrigued Lisa’s other grandma and the result…

Grandma_computer
Ann-Marie showing Maud last year’s Christmas photos on her computer. I was stunned! Ann-Marie who only got her computer a day less than a year ago is writing e-mails, reading the news, and now, introducing other parts of the older generation to the world of technology. Luckily I managed to snap a photo of this historic event. 

Merry Christmas everyone! 

    • #JustMigrate
    • #education
    • #future
    • #nontech
    • #usability
  • 4 months ago
  • Comments
  • Permalink
Share

Short URL

TwitterFacebookPinterestGoogle+
Personality shelfBeen hanging out with friends in Stockholm the last few days and had the great honour of being hosted by my old classmate, the Greek geek, and generally awesome Vasia. One morning I snapped a photo of her bookshelf as I think it very beautifully captures a lot about her.
One of the most awesome gems is Dennis Ritchie’s and Brian Kernighan’s epic C Programming Language in Greek!
What’s on your shelf? Does it tell your story?
Pop-upView Separately

Personality shelf

Been hanging out with friends in Stockholm the last few days and had the great honour of being hosted by my old classmate, the Greek geek, and generally awesome Vasia. One morning I snapped a photo of her bookshelf as I think it very beautifully captures a lot about her.

One of the most awesome gems is Dennis Ritchie’s and Brian Kernighan’s epic C Programming Language in Greek!

What’s on your shelf? Does it tell your story?

    • #JustMigrate
  • 5 months ago
  • Comments
  • Permalink
Share

Short URL

TwitterFacebookPinterestGoogle+

Opening the Connectivity Lab

Connectivity Lab Live held during the 7-8 December marked the start of a new prototype lab at Malmö University called Connectivity Lab. The goal is to bring research and industry closer together by providing a facility for companies, researchers, and innovators alike to develop prototypes of their ideas. 

Dsc_0049 Dsc_0092 Dsc_0136 Dsc_0167
See the full gallery on Posterous

Why prototyping? 

As LEGO’s Ralf Voncken said in his talk: “prototyping is a way of exploring the unknown.” It is essentially a tool to minimise the number of bad results. Getting it right the first time is hard and, hence, we need ways to easily test out several ideas. As a software developer this is nothing new, we’re used to throw-away prototypes, pseudo-code, and code artefacts that gets refactored several times before reaching a usable state. The Connectivity Lab, to me, helps bring some of these traits to ideas that require a physical manifestation.

Wearable computing

During the event several international speakers were invited to share their insights on prototyping. One such talk concerned wearable computing.

I have a strong prejudice against wearables and wearable computing. It has always been too abstract and “arty” for me to appreciate. Often as a result of not knowing how to connect the ideas and prototypes to a scenario which may actually be usable for people like me (or my family for that matter). Thus, I decided to attend a talk on the topic by Valérie Lamontagne (Concordia University) to help sort that prejudice out. Although I will probably never get the grips of haute couture, the way Valérie tied fashion, philosophy and wearables together and linked it to the industrial applications made it more clear. For example, I had no idea that car companies are spending millions on research on how to integrate technology in fabric to be used in the seats. Most developments are still for performances and the arts, but I expect that we can see a great deal of progress over the next few years in the area. 

We have a different relationship to fabric, it is natural to touch it. If there’s technology inside, that can make a difference. We wouldn’t touch a computer screen in the same way.

See some other applications of wearables in this post by 3lectromode. 

Dsc_0478

Unexpected highlight

To initially great fear I was charged with setting up a Google Hangout between Jenn Karson (Vermont Makers), Dr John Cohn (IBM Fellow & Vermont Makers) and Mikael Haglund (Chief Technologist, IBM Sweden). Everything could go wrong. But it didn’t! It was a crazy, exceptional, and highly inspirational conversation. 

The end

It has been great following the development of the event. Marika and Christoffer couldn’t have done a better job. More than 300 people attended the event and 40 people participated in the hackathon, and the reactions from people attending have been overwhelming. 

Let the prototyping begin!

More from the weekend: 

  • Photos on Flickr
  • Live recordings on Bambuser

NB: I work for MEDEA who runs the Connectivity Lab. I am biased, but everything I write here is solely my own opinions.

    • #JustMigrate
    • #conference
    • #connectivity lab
    • #medea
    • #prototyping
  • 5 months ago
  • Comments
  • Permalink
Share

Short URL

TwitterFacebookPinterestGoogle+

Making Smart Things

I tuned in to the live feed of Le Web today to listen to the CTO of SmartThings. A company that successfully raised over a million USD on Kickstarter and who’s vision is to “add intelligence to everyday things in your world, so that your life can be more awesome.” Not too dissimilar to the research project I’m currently working in. Except, we try to make everyone’s life more awesome and not only your own. 

Watch the talk below.

I haven’t written much about my new work here yet, but in short: I make software happen in a research project looking at how we can use connected devices and (great) software to optimise our energy consumption in existing buildings. The project is informally called Elis.

There are some interesting takeaways from the talk (and its enjoyable to watch as well):

  • Community awareness: it is not enough to just develop cool technology, people have to use it as well if you’re to succeed. If you dwelve into the research of smart home and ubiquitous computing in general, too often you will find that research forget what the user really wants and needs. The life-logging company Memoto is also great at community building.  
  • Speaking to all stakeholders: the consumers, the makers, and the developers. It has to solve a problem for the user. Hobbyist and manufacturers must be able to integrate with SmartThings (i.e buildling a hardware and software eco-system), and in addition, giving developers access to create their own applications and adaptations. Now you can finally add that connected fridge of yours. Their, admirable, goal is that it should be as easy to install an application on your connected devices as it is to install an application on your iPhone. 
  • The physical graph: a term that seems to become more and more frequent in the Internet of Things community. Evrythng, a Swiss/Brittish company, is attempting a similar stand: to become the Facebook for connected devices. As PhD student @fohlin said “I’m not sure where I stand on this.” Neither am I since many architectures from a communication standpoint tend to involve a fixed, proprietary, centre. This brings me to the next point.
  • Creating lock-in: it is apparent that SmartThings want their consumers, makers and developers to contribute to the SmartThing cloud. But what if I want to extract data from it? Or more likely, integrate SmartThings with other devices in my home? We’re back to the question of federation and standards. This lock-in question is something we’re particularly interested in our research work when considering the platform upon which services are built. Might get back to that in a later blog post. 
  • Running a live-demo: AWESOME! That takes courage and shows their stuff work. I love it! 

I’m impressed with what SmartThings are doing and how they are engaging the community. Their work is important to open up for future businesses so that we may unleash the full potential of connected devices. It’ll make it easier for consumers to accept devices that help optimise our energy consumption. 

    • #JustMigrate
    • #internet of things
    • #medea
    • #presentation
  • 5 months ago
  • Comments
  • Permalink
Share

Short URL

TwitterFacebookPinterestGoogle+

Culture shock within

That’s exactly what happened this morning when XDIN (a Swedish IT consultancy company) held a breakfast seminar at FooCafé in Malmö entitled “Embedded meets the Cloud.” 

After two years studying the intricacies of the so called cloud and classifying myself as a fairly adept user of so called cloud services, I was keen to know more about the embedded world’s view on this acclaimed future. So what’s new in this mix?

EVERYTHING! 

Or so it seems. The level at which the presentation was delivered was not at all what I expected. A pre-introduction to the cloud, its benefits, disadvantages, and possible alternatives. Why did I leave bed at 7am to listen to this? 

As a systems guy, perhaps my view of the world is too restricted? Perhaps EMDC trained me to solve problems according to one paradigm only? Perhaps I’m just living on the cutting-edge? We take the cloud for granted, using it whenever applicable. Or always(!). 

After the initial shock settled, these are some of the takeaways: 

  • The potential of connected devices is at its extremely early days. It is barely embryonic. 
  • Building complex hardware solutions are tricky and there’s a lack of talented people able to tackle these programming tasks. Moving intelligence to the cloud is a way of circumventing the lack-of-people-problem as it tend to be easier to develop software when you have “unlimited” resources. 
  • Service License Agreements are everything. These are probably the largest obstacle to adoption. Policies and standardisations for organisations to lean on (however boring they may sound) are a pre-requisite.  
  • There is a lack of experience amongst the classical IT-departments connecting small devices directly to the Internet. “It doesn’t look like a PC, it must be a security risk.” This may not be as big of a problem on an individual level as on an organisational level. 
  • We need more talks like this to bridge and learn from each other within our own industry. 

Note: I use the term “cloud” too broadly in this text, feel free to beat me up later. 

    • #JustMigrate
    • #cloud computing
    • #embedded
    • #foocafe
    • #internet of things
  • 5 months ago
  • Comments
  • Permalink
Share

Short URL

TwitterFacebookPinterestGoogle+

Nailing that thesis

Recently I’ve got a few questions along the lines “How did you know what you wanted to work on for your thesis?” “Where can I find thesis topics?” and “How did you find your thesis position?”

Needless to say, there’s no one recipe. This is roughly what worked for me.

Narrowing in on a topic

First step is discovering what you want to work on. For me that meant exploring areas of work that I found interesting or could see myself working with in the future. Previous project work and courses serves as excellent starting ground. Which projects did you particularly enjoy? 

Limit yourself to two or three areas. Too many will make you see the forest but not the trees, and it is those that you need to focus on. 

Finding options

This depends a lot on whether you want to pursue an academic or industrial career directly after your degree. As far as I understand PhD applications, getting a publication improves your resume significantly. 

Industry, however, is an altogether different matter. There are the types of thesis offers you don’t want and those that you do want. Those you don’t want are usually spotted as “We want you to implement this feature” or “Help us choose between X and Y”. While they might increase your chances of getting a contract with that particular company, they tend in my opinion to be too narrow-focused. 

Start, as usual, with your contact network. Don’t be afraid to contact those you only briefly. If you feel that your professional network is small, one way increasing it and of getting exposed to many companies is to attend conferences, breakfast seminars, hackathons, open after work sessions or similar networking events. All encounters shouldn’t (and won’t) result in thesis opportunities, but they may open doors to ideas. Hence, this process is also a part of narrowing in on a topic. 

Getting a position

Once you have an idea of the topic (or topics) that you are willing to spend six months of your time working, beating, and tearing your hair apart for it is time to get concrete. There is no such thing as getting the perfect offer without some work. No one will come to your doorstep and hand you a finished thesis proposal.

Applying differs from case to case. If you have a contact at the company, I would e-mail that person first. If he or she finds it relevant your request will be forwarded to the appropriate authority. If you don’t have a clear entry-point, try to find the person or team in charge of recruitment. They will know who to ask to evaluate your request. 

So what do you include in an initial request? Things like a short background, if appropriate maybe a reference to where you met, and why you are contacting them should be obvious. Ending on a note “Do you have any thesis offers?” usually doesn’t ring too well though. It is crucial that you show interest in the company and a topic which may also be interesting to them. Make a little background research: what technology does the company work with? Do they have presentations from tech-conferences that you can use to make a case? Do their product suck!? Give them one or two examples of topics that you would like to work on. The topics should clearly reflect your interests. Whether you want to include a CV or not is entirely up to you. Reading your e-mail shouldn’t take more than 45-60 seconds though. And (!) put a clear descriptive title to your e-mail and don’t make silly spelling mistakes. 

Making an initial request empty-handed shows laziness from your side. Then you could equally apply for a “help us implement this feature” type of thesis instead. Getting a good thesis involves you doing some hard work. That cannot be avoided. 

Since you won’t know the company as well it is highly likely that they will change your proposals. It can be radically, or less so. But be prepared to hold a dialogue and straighten out question marks before you begin working. Remember it is for both your and their sake. 

Also remember that some companies have screening processes also for thesis applicants. At Tuenti that included a code test and three phone interviews, plus additional discussions on defining the topic itself. 

Offer in hand

It can be hard to evaluate if an option is interesting or not. Before you begin contacting companies and making a proposition it is good to define some metrics on which you will evaluate their potentially positive reply. Some of the ones I considered were: 

  • What depth of work is included? 
  • What are the company’s expertise in the area? 
  • Will whatever I implement/research have a chance for production usage? 
  • Do I need a publication in the end? 
  • How important is location?
  • Do they offer an office space? 
  • Will I be involved with other people in the company? 
  • Do they pay a salary/bonus? 
  • What are my future employment chances?
  • Who will be my supervisor? 
  • Do I get to learn something new? 
  • Will this be fun? 

They are listed in no particular order here, some may be more relevant than others though. Think about what matters to you. 

In conclusion

Summary: try to limit your search to a few areas, explore your network (work on enlarging them), make contact with concrete examples, and define your criteria for accepting an offer. 

There is no one formula for how to “find a thesis” but these thoughts have been part of my replies lately and helped me find my thesis. 

What are your thoughts and best ideas for finding a thesis? 

All it takes is 20 seconds of courage. 

    • #JustMigrate
    • #academia
    • #networking
    • #thesis
  • 6 months ago
  • Comments
  • Permalink
Share

Short URL

TwitterFacebookPinterestGoogle+
Command line tools in OS X Mountain LionEveryone developer once in a while need make. Previously in OS X a set of command-line tools were installed by default with XCode. However, since Lion or some version of XCode it seems this has changed.
You can install automake, gcc, and other command-line tools through XCode. Open Preferences, go to the Download tab, click install Command line tools. 
Why change the defaults Apple? 
Pop-upView Separately

Command line tools in OS X Mountain Lion

Everyone developer once in a while need make. Previously in OS X a set of command-line tools were installed by default with XCode. However, since Lion or some version of XCode it seems this has changed.

You can install automake, gcc, and other command-line tools through XCode. Open Preferences, go to the Download tab, click install Command line tools. 

Why change the defaults Apple? 

    • #JustMigrate
    • #development
    • #tools
    • #xcode
  • 7 months ago
  • Comments
  • Permalink
Share

Short URL

TwitterFacebookPinterestGoogle+

Interviewing with Tuenti

Here’s a short summary of the code test and three following phone interviews I had with Tuenti where I wrote my master thesis Online recommendations at web-scale using matrix factorisation. Many people have asked me about this, so when my classmate asked me recently I thought I’ll try to write down what I remember of it.

I have mixed opinions about interviews like this (food for another blog post). In general I can say though that I didn’t really expect the thoroughness when I applied for a thesis position.  

1. Code test

This was conducted before any interviewer was involved and used to screen potential recruiting material (me) before bothering the technical recruiters in the organisation. If you cannot code there’s no point working for us. The exercise is time limited to two hours and is, I believe, for most of us unreasonable to complete in that time. Essentially it is a tree-implementation with some special rules applied to how sub-trees are handled and moved. I enjoyed it. 

2. Algorithms and data structures

As might be expected the first interview focused on a general computer science / programming experience. Very little time (out of the 45 minutes) were spent on things that I had done in the past. Questions included: 

  • What is the difference between an array and a linked list? How would you implement the latter? When would you use the first? 
  • You’re in the middle of a maze, explain an algorithm to find your way out.
  • Explain how merge-sort works. 
  • In a 2-dimensional space, how would you find the K-closest points to (0,0) if there are 1 million points in the grid? 
  • In a project where you realised you wouldn’t be able to deliver on time, how did you do? 
  • What did you think of the programming exercise? 

At the end of the interview I could ask questions myself. However, since I this was the first time I’ve ever done anything like this I was too nervous to come up with anything sensible. In the end I think I asked for example on previous thesis work that has been conducted at Tuenti. No feedback from the interviewer was provided, so it was hard to tell how it went. 

3. The stack

The second interview was slightly shorter than the first one since the interviewer had other meetings to attend. This interview was more personal and connected with my CV a lot more, but also contained broader technical questions. Questions included: 

  • What was your role with the World Scout Jamboree? What problems did you encounter and how were they solved? 
  • What did you do at Ericsson? What type of product did you work on? 
  • Describe a hard problem you’ve solved and how you tackled it.
  • In as much detail as possible, explain what happens from the point that you enter a web address like http://www.google.com in your browser to displaying the result.
  • What are the constituents of the HTTP header? 
  • How does HTTP caching work?  
  • Do you know javascript? What is OOP difference between javascript and Java?

Similarly to the first, this interview also ended with the possibility to ask questions. In general I was a lot less nervous this time and the interviewer provided more feedback on his impression. 

4. Distributed systems

The last, in my case, interview was more of a discussion rather than strictly technical or experience-based questions. During the 45-minute interview only two or three questions were handled. The first one taking the majority of the interview. 

  • We’re building a system which is to store and deliver messages between a multitude of clients, some mobile, some not. If a client is not online, the message will be delivered later. How would you build this? 

As I started to outline the general architecture, the interviewer asked more questions, asked me to explain certain parts in more detail, and so forth. For example: 

  • We now have 10 million users, how do you handle that? 
  • What type of storage would you use and why? 

One other question related to memory allocation (I don’t remember it exactly) and one was similar to the sorting question asked in the first interview.

Also here there were no immediate feedback from the interviewer. I was happy with it though as most questions were close to what we had studied. 

Conclusion

  • There’s nothing wrong with saying: “I’m not familiar with that technology or not knowing the answer directly.” For example, I had no experience with Javascript and had no way of describing the difference between those two OOP models. 
  • Most questions were designed to let you think and reason, they prefer if you do it out loud. 
  • When I had a hard time formulating my ideas over the phone I got a minute or two to jot down a solution on paper. I don’t remember which question this was unfortunately. 

All in all, it was a good learning experience. And totally worth the pain of being nervous for interviews. Tuenti was an awesome place to do a thesis at. 

    • #JustMigrate
    • #interviews
    • #tuenti
  • 7 months ago
  • Comments
  • Permalink
Share

Short URL

TwitterFacebookPinterestGoogle+

Oops… what did we do?

My thesis work focused on scaling recommendations to millions of users. Through that work I got a different perspective on personalisation. For better or worse I’m not yet sure. Tonight I received this e-mail from LastMinute.com which got my attention. 

Lastminutemail
I’ve been deleting most of their recent e-mails directly because, well, I haven’t had any use for them How could they know I am was a student? 

On the other hand the touted master of recommendations, Amazon, didn’t get it quite right in their last e-mail. Their recommending me a book I bought just two weeks ago. 

Amazonmail
Heck, I don’t want to know I can get a 42% discount now! 

LastMinute, you did it right this time. 

    • #JustMigrate
    • #personalisation
    • #recommendations
  • 7 months ago
  • Comments
  • Permalink
Share

Short URL

TwitterFacebookPinterestGoogle+
Page 2 of 10
← Newer • Older →

About

Software developer at MEDEA, a research centre at Malmö University. M.Sc. in Computer Science with focus on distributed computing from KTH. Wrote a thesis on scaling recommender systems at Tuenti.

Active Scout since many years, right now leading the Info/PR team for Lägr1.

Hobby photographer, active reader, cautiously enthusiastic, avid traveller, and a big fan of smart ideas.

Found on-line at Github, LinkedIn, Twitter, and Facebook or via e-mail.

Twitter

loading tweets…

  • RSS
  • Random
  • Archive
  • Mobile

All texts are CC-BY.

Effector Theme by Pixel Union