Thoughts on Intellectual Property
A few days ago I watched a show on swedish television where two doctors in IP and creativity went visiting badly running companies and helping them get creativity back in to the company, and hence making the badly running companies back in game. The methods they used seemed fairly straight forward and I can’t really say much about them, except it seemed to be how it should be done. Bring in the people who matters, talk things over, get ideas for new business areas, get ideas on how to improve efficiency in the employees work, how to run the company, new retailable products and services, and so forth. All this is just perfect, however, there was one comment on a subject that struck me hard.
They where complaining that Sweden is one of the countries putting the most money into research and development, yet we get the least IP out of it, and for some reason they could not understand why. I work with development, and to some extent research and I’m not the least bit shocked about this. Lack of cooperation, simple as that. Humans are in a sense made to cooperate, to work as a team and to throw ideas back and forth, especially in this day when the mass of information is simply impossible to keep tabs on. There are probably more research and development papers published every day than I could read in an entire lifetime and I will never be able to read more than a small bit of everything out there in my specific area of expertise, and not even there will I be able to read everything. The problem stems, in my humble opinion, from all the IP lawyers and lobbyists getting their messages across all too well.
Let me give an example of what I mean, for the last 3-4 years, I’ve worked on 4 different projects at 4 companies. At every single one of them, we have all been brought to a big meeting with the entire project/department/company where some “IP department” representative or lawyer has stood up and told us, whenever you get an idea:
- Shut up about it, don’t talk to anyone.
- Send an e-mail (or preferably sealed envelope or actually come talk to them in person) about the idea to the IP people.
- They’ll discuss the idea with you, then wait for half a year or so.
- If the idea is patentable, wait another 2-3 years for the patent to go through.
- Now you can implement and start talking about the patent, and hopefully cash in on all the suckers who re-created your patent while you where biding your time.
I hope you can see the problem here. The whole idea is so completely remote from how creativity for most of us normal people work that it’s not even funny. For my own part, the best and most inventive days I’ve had, has been with friends. During my education, for example, we went out by the sea and talked mostly crap, but this is where and when we cross-breeded our ideas about cool things and how you could do them. How does a submarine work, what/how do you make it (sub)merge, how could you make it autonomous, how do you navigate, how does INS systems work, and so forth. Or whats the cheapest and simplest way to crossbreed a bicycle with a floating device so that you can bike around on water.
Not being able to talk to fellow colleagues about ideas and solutions to problems is probably among the biggest speedbumps in the entire system imho. One of the reasons I believe Google (for example) has been so successful is that the level of trust bestowed on their employees, and the level of openness within the company. People dare talk to eachother without the imminent threat of being fired or scalded for talking about the wrong thing, with the wrong person (this is actually not unheard of, where I am right now). Correct me if I’m wrong, but it’s one of the impressions I have gotten, without ever being a google employee myself.
Finally, don’t get me wrong on this subject. To live in a world, you have to adapt to the world. I’m not about to go divulge ideas and patentable IP on a whim that I hear about while at work. It is a fine line to cross between understanding and sympathizing with an ideology/theory and actually trying to live like an idealist, and it’s not one I would cross at this point of my life.
If/when I do get ideas on my own however, I would most likely not even consider the possibility of patenting it. I’d rather publish it openly so that it could benefit the world rather than try to suck the living bone marrow out of my victims. As a final thought, has anyone considered making an open source/open media “prior arts database” to, which would gather data and ideas on prior arts to patents, hence rendering current/future patents unusable?
embedded Linux seminar 25-27/11 2009
On the 25-27 of november I will be on tour with nohau.se and hold a embedded linux seminar. The entrance is free, but requires a registration, see the embedded linux seminar webpage. according to the following schedule:
- Göteborg 25/11, em 13-16. Plats: Centralhuset Konferens, lokal Orientkusten
- Stockholm 26/11, em 13-16. Plats: Kista Konferens, lokal Alfa
- Oslo 27/11, fm 8-12. Plats: Thon Hotel Vika Atrium, Munkedamsveien 45, Oslo
I will specifically do the Development using Embedded Linux track, which will be 50 minutes long. The presentation is still fairly crude and rough around the edges, but some of the bulletpoints I’m going to talk about is:
- When to use Linux/ When NOT to use Linux
- Pitfalls of open source vs closed source and vice versa
- Hardware vs Development time cost decisions
- Choosing the right hardware
- Choosing the right software
- Security.
I hope to see some of you at the seminars!
Added papers section
The papers section has been added under the Documents section of the site. It currently is rather empty with only 2 semi-old papers added and two more coming within a few weeks. This is one of the reasons I actually switched over to wordpress as it enables much easier updates and additions of new material. The first paper out is about lessons learned from a embedded linux project with Freescale MCF5329 running uCLinux. The second paper is an old but cancelled IETF RFC draft I made almost 6 years ago to enable connection state transfers between multiple firewalls and/or routers for failover, high availability and load balancing reasons. This was put on ice for various reasons, but I thought it may have some value to anyone who would be interested in doing something alike. If there is any interest in carrying on the work, I’m open for questions and suggestions.
Site update finally here!
I finally got around to finishing up a new site. As some of you may remember, I started over a year ago with rewriting the entire site from scratch after a year of pretty much not having time to fix the final touches. On top of this I realized that the site would still require a lot of time to update and maintain, which I realize was not in my main interest. So I decided to try out a few “pre-built” solutions and got hooked on wordpress. This is the final setup i’m going with. I will update the site more and more, but to get the site rolling, I decided to get it published as soon as possible.
To begin with, there isn’t much new material on the site, but this will change with some time. I have several papers and smaller projects I’d like to publish, and that I will have the ability/time to publish with the new site framework. Until then, I sincerely hope you will enjoy the new site. Any comments, please let me know!
Example transforming videos
I recently made some video editing on videos i copied to and from my cell phone and realized some of the stuff might be rather esoteric and hard to find good examples on how to do. Basically just going to post some minor tips and tricks that I picked up, and some very simple commands to use with mencoder, ffmpeg and kino.
I used mencoder and ffmpeg to do some of the basic edits, like turning videos around etc. After the basic video snippets where done, throw them into kino and make the final cut, and then recode the video into a distributable format (10 minute video in dv format as used in kino = 2.1gig data, while 10minute divx of the same video = 170 meg).
#Rotate video 90degrees
oan@laptop4:~$ mencoder -o lala.avi -vf-add rotate=1 V170709_12.54.AVI -oac copy -ovc lavc#Postprocessing filters, ac = high quality
oan@laptop4:~/Desktop$ mencoder -o lala.avi -vf pp=ac V170709_12.54-recode.AVI -oac copy -ovc lavc#Transcode video so it works on cellphone (KC910), this “works for me”(tm)
oan@laptop4:~/Videos$ mencoder -o lala.avi -oac copy -ovc lavc -lavcopts vcodec=mpeg4 alice-final.avi# Create a black 2 second frame (25 fps, 50 frames), I used this as a filler between
# two movies. There’s probably easier ways of doing this, but it “works for me”(tm)
oan@laptop4:~/Pictures/2009-08-01$ ffmpeg -r 25 -loop_input -i black.jpg -vcodec mjpeg -vframes 50 -y -an test.avi
Finally I put the videos together in kino in the order I wanted, with black frames in between and effects fading from the videos into black, and so forth, making for smooth transitions.
Dpkg and apt-get reading database is really slow [fixed]
I’ve had problems many times with the “reading database” step in deb package based systems getting really slow. Today it took over 1,5 minute on a quad core machine with 4 gig ram, which is simply over the top for me.
Within 5 minutes of searching I found this:
http://antti-juhani.kaijanaho.fi/newblog/archives/521
So a total of 7 minutes later, it takes me less than 2 seconds to install small packages again. I should’ve found this earlier :-).
Migrating windows to virtualbox
I finally got rid of the last windows computer in our home. My laptop had a backup installation of Windows XP just in case I realized I had either forgotten something on that partition, or I realized I had some need I had forgotten. This partition has now been moved to virtualbox on my workstation via the http://www.virtualbox.org/wiki/Migrate_Windows how-to.
Also, my wifes laptop running Windows Vista stopped working (again), and she had finally had enough of the problems that Windows installation has caused so she asked me to remove Windows Vista and install Ubuntu 9.04. The harddrive was also copied over to the workstation and I tried the same how-to as above, but it didn’t work properly unfortunately, so I winded up just moving the harddrive inside my old Windows XP installation.
Once this is done, I’m planning to reduce the size of the harddrives. This is 220gig data at the moment, so it could be a good thing. I will try http://forums.virtualbox.org/viewtopic.php?p=572#p572 and see how it goes. Once that is done, I’m almost 100% free of all the problems we’ve had with Windows. The only windows I have left is the backups for emergencies.
LG KC910 woes
As I’ve already said in earlier postings I relatively recently got myself a LG KC910 Renoir phone. The phone has been the cause of a lot of woes and problems so far and I’m afraid I must say I regret not getting a proper Android or iphone from the beginning. As it is, I’m stuck with this phone for another year+ until the subscription runs out – or get some other phone on my own tab.
The one really great part that I love about the KC910 so far is the absolutely wonderful camera, it has a 8MP camera that takes rather splendid snaps for a cellphone camera. Also, the video recording function, and video/music playback is rather nice.
For the really really bad part, well, look at the rest. Three of the main reasons I got this phone was for the ability to get some websurfing done “on the go”, and to get a good calendar that could be synced vs my work and private calendars, and finally I wanted to use the phone straight off for connecting to the internet instead of some dongle. Both these functions are completely botched in the KC910 as the, the webbrowser lacks a lot of functionality practically making most of the internet unusable on the phone, and the browser is also horribly slow, taking tens of seconds to “calculate/draw” complex webpages after its loaded. This problem should be easily solvable by downloading and installing another browser such as Opera you say, sadly, the install process hangs halfway through on the Renoir, and I have so far to find another browser that installs at all, which kind of brings a fourth point up (applications/third party market).
Second problem was the calendar, which is unfortunately totally borked. For basic calendar tasks it works fairly well, but very soon you will realize it doesn’t work very well. It lacks good support for reoccuring activities, the sync applications has a bad habit of screwing up timezones and moving activities/entries around based on timezones and at occasions it deleted entries entirely, and worst of all, LG has chosen to go all the way with their PC Suite set of applications, which essentially bars you from using anything but officially supported Microsoft Windows XP/Vista and Outlook. This goes for pretty much all functionality in the phone. Getting it to work with thunderbird, well, good luck. This is one of the reasons I had to work very hard getting Funambol setup at home to sync the phone and thunderbird with (I can not use a third party server as some calendar entries may in worst case contain sensitive data). The functionality of this setup worked out to be “semi-decent” to crap at best, and in the end I winded up reverting to just using my computer calendars.
My third problem has been internet connections. The only supported way of connecting to the internet is (again) via their PC Suite crapware. All other phone manufacturers support Bluetooth DUN or serial port connections without a problem, but not LG. It halfway supports DUN connections, I get a connection the first time that doesnt work, then get disconnected, and after that it takes 2+ days until I can connect again, and get disconnected again, exactly the same thing happened in Linux, Vista, XP, with/without PC Suite, over USB/Bluetooth, in accordance with 3’s and LG’s support etc. In the end, after 3-4 weeks of messing with this, I winded up getting a Huawei E180 HSPA USB stick, 30 seconds to unpack, plug in and click two buttons in Ubuntu and I was connected to the Internet.
My final annoyance is the lack of a third party aftermarket of some kind, I’m talking anything like the Iphone/Android app-store. A smart phone without a serious aftermarket support is pretty much as dumb as any old “dumb phone” ever was. LG has some eclipse based SDK’s available for download, but they only work for Windows, which has stopped me from trying them out at all so far, as I quit using windows completely half a year back. Anyways, the big problem is that there is no coordinated effort to make a decent app-store or app-store-a-like place to go for your applications for this phone. As always, the phone producers completely fails at understanding this part, in this day and age, you need to create officially endorsed systems of managing, getting and paying for applications. Whom the problem should fall upon is a hard question, but just dumping the problem on someone elses porch is not sufficient in this day and age, especially if you want to make phones that tries to emulate the success of “the big one”, you need to at least try and understand what made it big. It wasn’t a good camera or a nice looking (but slow) gui. It’s the ability to be adapted to my requirements, and to perform my required tasks. You can not predict it all (my needs are not your needs), hence adapt to standards (make shit plug and play with others), and make every effort you can to create a third party aftermarket that works (signed downloads, payments, etc etc).
As a verdict, if you’re looking for a smartphone/iphone/android, dont get an LG.
Syncing strategies
Another problem has (mostly) been solved for me it seems. I’ve had quite a lot of problems the last few months with calendars and email and contacts being out of sync between workplaces and my private computers/cellphones etc. The problem has been that I’ve gotten a new contract and hence am relocated to another workplace. My employer has a stupid (ok, maybe not so stupid, but annoying me nonetheless) policy of not allowing any e-mail to internal addresses be forwarded or fetched from external networks. At the same time, my contracting has put a heavy load on the calendar and all of a sudden I understand everyones problems with syncing e-mail/contacts/calendars etc… it’s really a must.
Anyways, in short, I started out with 4 calendars (workplace1, workplace2, home1, home2(laptop) and cellphone) needing sync, and using Microsoft Exchange weirdo protocols was not an option (I’m not using Windows or Outlook at home anymore). This has later been extended to sync contacts and my two instances of thunderbird (not yet finished). So, in short:
- Workplace1 = Windows Vista with bluetooth
- Workplace2 = Microsoft Exchange server with limited access.
- Home1 = Ubuntu with thunderbird
- Home2 = Old Laptop, Windows XP with thunderbird, will likely migrate to Linux soon as well since I barely use it anymore due to the OS on it.
- Cellphone = LG KC910 with bluetooth and wifi.
First off, finding a sync strategy wasn’t easy. First, decide on where your “central repository” is, or rather which will be your main device. My current solution relies on cellphone (LG KC910) being the central repository since it’s the only common gadget at all locations. connection at workplace1 is directly over bluetooth to the KC910 using the LG sync application. The application is absolutely horrible, but it does it’s job (barely). Unfortunately LG relies on a proprietary bluetooth protocol for syncing so I have yet to find any decent replacement applications.
My big problem was finding a working solution at home, and I think I finally found it in Funambol (https://www.forge.funambol.org/DomainHome.html) which is a SyncML server. Basically, I got a server on my local network running Funambol, when I get home, connect to the local wifi, and sync with funambol (See http://www.mobyko.com/phoneinfo/lg/renoirkc910Info.do, a bit down for instructions). The funambol server then acts as a “central repository” when I’m at home containing all calendars etc. Thunderbird sessions on Home1 and Home2 uses the funambol addon (https://addons.mozilla.org/en-US/thunderbird/addon/8616) to sync with the funambol server.
WARNING! So far I dont trust funambol to run on the public internet, for one part it seems to be sending passwords in cleartext, as well as data. I’d love to figure out a way to get it all encrypted using SSL/https, but I’m a complete newbie to Tomcat (base plattform for funambol) as well as java. As far as possible, try to use a closed/encrypted network for this unless you get https running imho.
A second note on Funambol is that I had some really funny Timezone problems when setting it up, all devices run the correct timezones, but for some reason my calendars winded up being winded 2 hours into the future at home, I got it fixed by setting all timezones in funambol for all devices manually, and then disabling the timezone handling in funambol… don’t ask me why it fixed it etc, I hate working with timezones 😉 .
All that said, I really think SyncML was a big saviour for me in the end, but I had a hard time finding a single word on it or anyone really recommending it. Bluetooth just needs to be …. well, better support, and everyone needs to agree on standards. Everyone (companies) seems to be running around doing their own thing, which means Linux has very good basic bluetooth support, but none of the higher layer stuff since it’s badly implemented or proprietary.
Inproductive productivity
Filed under: Configuration Management, Linux, Personal, Projects, Windows
For a while I’ve been stuck in slow speed mode again, not really doing great work, just being on average. It feels weird. Don’t really get much done, but I have on the other hand had a great deal of time to test some “new” technologies, well, new as in only 10-15 years old I guess :-). I’ll get back to that later. Also, I’ve begun a new contract at “a big company”.
This is my first time at a really giant hunk of a company, the biggest I’ve seen before was circa 500 people in all, and it moved slower (the beaurocracy) than this in all honesty. This BigCompany is quite interesting to me. Started off with almost 4 weeks of introductions, courses, and so forth. They have a dedicated TEAM of CM’s, that alone is just… wow :-P. I’ve just been put up to speed and started working a little before this weekend so I might be a bit premature, but I like it so far. The weird part is, things happen, but not as I’m used to it. I’m used to 13+hour days and frentic coding/hacking to get things to happen, everyone here eschews away with their 8 hour days — only working overtime at very special occasions — yet slowly things get done, new functionality gets added and so forth.
Another thing that kind of amazes me — and worries me to some extent — is the kind of planning that is done. I’m used to small scale projects with workpackages or task based development, where no workpackage should ever take more than 4-5 days to implement. This place uses a workpackage development structure where each package takes up to 6-7 weeks for 6-10 people to implement. We’ll see how it works out — at least their “stand-up meetings” works :-).
All that being said, I had the time to write quite a bit of python which is a first, then I’ve looked into d-bus architecture which is also a first, and I also looked into Bluetooth and how to use it — some test applications running, fetching services and graphically displaying info about all units it finds etc. The complexity of Bluetooth is rather saddening imho, it’s a horrible protocolstack to work with in some senses, even though I was really impressed by how much python does for you.
I’ve been unused to the whole concept of python before this, and just a tad sceptical. Mainly because of all the problems with version matching that you always wind up having to do, to make anything work properly (try getting scons, trac and wamp, and some more tools working on a win32 machine some day for some fun).
Anyways, I always figured there has to be an upside, and there really is — python is hackfriendly 🙂 . In less than 3-4 hours I went from writing my first simple helloworld to having a scratch written class based graphical (tkinter) interface implementing some very fundamental bluetooth commands. In my world, thats not bad at all ;).
I’ve also had time to learn a lot of new tools at work. I’ll comment on those some other day as I havent seen much other comments on some of them (some is imho very expensive crap with a nice wrappings, while some are completely awesome). Sidenote, I simply adore the systems we are working on 4 xeon with 4cores and 64 gig ram.
I’ll get back later :-).