tirsdag den 18. maj 2010

What is the value of beeing the best?

I want start out by telling you a little bit about my country, we are 5 million people and we have our own language and currently it is one of the richest countries in the world if you compare the median wealth of Danes to other populations. Not very many generations ago it was a rather poor country. But what really intrigue me is that this small country has been the farther of many cool technologies and yet we have failed to profit from these technologies.

1.) Denmark was a proud ship building nation for many centuries, we build the first boats that crossed the Atlantic, 500 years before Colombus. Until 2008 we build the largest container ships in the world, which has helped shape the world trade as we know it today. You would think that being the best in the world at something so important to the progress in the world would be important, yet we stopped doing it.

2.) Danmark was the leading country in the world in production of Windmills and Wind power systems until 2010. Windpower is currently the fastest growing green energy source. You would think that being the best in the world at something so important to the progress in the world would be important, yet we already sold our gold egg to foreign investors and we will soon stop all R & D and production in Denmark.

3.) Danish engineers practically invented the Digital Radios which is the basis of all mobile telephone and mobile data connections today. Both NMT and GSM and Bluetooth have its roots in Denmark. We had many of the first mobile phone companies, which were later acquired by Nokia, Siemens, Motorola and Philips to help them understand and handle what at this time was a very difficult technology. Today we still have a few big R & D departments from companies like Nokia in Denmark. You would think that being the best in the world at something which everyone agree is going to be the primary driver of the human evolution over the next 10 years would be important, yet we stopped doing it.

4.) Danish software engineers has had a major role in in the 5 of the 10 biggest programming languages in the world today. C++, C#, Php, Delphi, Pascal, Java and JavaScript. Many, my self included think that software is going to be the only real driver towards technological singularity, thus it is VERY ODD that the brains behind the majority of modern programming languages come from the same (very, very small) country. Needless to say, most of them does not live in Denmark any more..

5.) OK, so all of the above is in the past, what does Denmark have today?? I think we have something very cool! 2 out of the 3 leading companies in the world who have the technology to produce second generation gasoline are from Denmark. First generation gasoline is made from food, second generation is made from waste products from food production, stuff which is typically burned today. This technology is enzymes that can catalyze the process of converting one type of sugar / plant oil into another. In 2010 they will show the first production plant, which will be able to produce gasoline at market price. Needless to say this will have a major impact on markets, especially when we start to run out of oil in the world. But this is only half of the story. Because if you can control the process of converting one type of sugar / oil into another then there is a good chance that you will also be able to convert other types. Think chemical plant food production. Maybe some day soon we will be able to produce artificial produced milk and we will not need all the methane farting cows any more… or we will not need expensive raw materials for beer or vine, but can convert something a lot less expensive..

6.)
See my blog post from yesterday.
Denmark would be the perfect country for testing such an automated job offering system. On average our freelancer pay is 10 times higher than the average price for the same quality of work on Freelancer.com. Thus there are room for error in the beginning.

I need your feedback, please give feedback, let's discuss.....

Become a wage slave to software

I just love stuff like this:


And yes. I actually think it would be possible after some trial and error in the beginning.

I have been using freelancer.com for 4 years now.
It is a great place to find high quality workers.

Take my word of advise: You will usually get the best results and waste less of your own time if you choose some of the most expensive bids. Also try to choose someone from a culture similar to your own.


lørdag den 15. maj 2010

I think Technical Singularity could take off here:

Quote: “Life is what happens to you while you are busy doing other things”, This is certainly true for me. This is why it has been so long since my last blog entry. Anyway, this time I have collected a lot of things that are going to shape the next 10 years. I think they are important if, like me, you are trying to figure out how the path towards technical singularity will progress over the next 10 – 20 years.

Today I tried Google Goggles, which is an image analysis application for Android mobile phones, which allow you to take a picture and it then analysis it and find stuff on the web related to what is in the image. Today it work best with text and logos. You can take a picture of a product, book, DVD etc and find it on the web. But Google is working on making it better, such that it can find people on the web if you photograph their face. Or you can take a picture of your empty product packaging before you throw it out and your phone will let you order a new one with only 2 – 3 clicks. (No need to implement scanners and computers in your fridge, like we talked about just a few years ago). And in addition Google can also help you shop cheaper or more green or more sustainable or more healthy. And at restaurants you can take photos of the menu and of your food and give feedback and rate the foot and service. Thus the web can have realtime updated statistics, menu and price information from every restaurant in the world. When you walk by a restaurant you can take a picture of the restaurant and Google will show you pictures of their food, ratings, pricing. Google may even suggest another restaurant in the neighborhood, in same price range but with better ratings. And a few years later Google may even rate it related to other restaurants and dishes you your self have had recently. Of cause this will not just work for restaurants but for most other things too.

I think this will bring us a big step closer to technical singularity, when your phone help you select and order a large number of products without having to type or speak to your phone. Just a few tabs on the touch screen and it has helped you select and order and pay products and services which with high likelyhood is the product which you would have choose if you have had more time to study alternatives and select the product. I am not saying that we will use it for everything. In the beginning only a small fraction of the population will use it for a few type of products. But in 10 – 20 years the majority of us may use it to help us select or order half of all the products that we buy in a typical everyday life.

During the last week my wife and I spend 30+ hours looking for a summer vacation for the family. I would easily pay 100$ if I could type in my priorities and budget and a system would suggest several alternative packages for me. - And I knew from experience and word-of-mouth that I would not be able to come up with a significantly better list myself by researching for 30+ hours. - And the results had user ratings and maybe even links to persons in my network that had been there, whom I could contact to get a more personal introduction / rating / feedback. Of cause this hold true for many other products and services than vacation.

----------------

This bring me to my next subject: I call it Feedback Production. Today most products are mass produced. Typically a company designs a product or collection. Then they get bids from factories and subcontractors, then they place a big first order and maybe 12 – 18 month after the planning started, the products hit the stores at which time planning of the next product has already started. This is very risky, because it is difficult to predict this many month ahead what customers want, what other competitors will supply and production cost, raw material cost, etc. Because of this big risk it is very difficult or at least very expensive to lend money for a new product and it is also very expensive and often impossible to get 4 or 8 times as many products of the same design manufactures and shipped out to stores in a short time, if the new product turns out to be a block buster. Thus it is build into the way we manufacture and invent products today, that if you want to bring something new to the market we have to start in the small and grow it up slowly. Thus it is very difficult to make any revolution you can only make evolutions. And since patents do not work for most products, it makes very risky to be first movers.

But the good news is that I think this is going to change fundamentally very soon. (very soon meaning: Starting within the next 10 years). The new thing is that IT will help designers get very rapid and accurate feedback from customers. Through channels like Google Goggles and Facebook and Twitter. And we will see new types of production lines, where scaling of production is much more flexible and shipment to the store is less than a month. Thus designers can make small series of products (with a lot less risk) as soon as the first 1000 units hit the stores they can get the feedback from customers and change the product accordingly and adjust the production capacity accordingly. Thus we will start to see products that change not every year but every 2 – 4 weeks. It will be much easier for designers to order more production capacity for block buster products in a very short time.

For us working in IT this is great news, because this requires a lot of new IT infrastructure and this is what the majority of us will build during the next 10 years. In maybe in 20 years from now it will involve very little risk to bring a new product to market (here I am talking about products that does not require a huge R & D effort). Cost of the first series is very small and it can scale fast. If you can keep the feedback away from competitors then you win the race for this new type of products. And the winner is he who can manage the shortest loop from feedback to the next generation of adjusted products. Not like today where risk taking and production price coupling to huge production series make the winner. The feedback production paradigm is coming soon and it is going to remove the risk significantly and speed up production evolution and revolution cycles drastically. (The attentive reader will notice that Feedback production is a fundamental building block for technical singularity)

--------------

Did you know that China is the country in the world with the fastest trains? Did you know that they got this technology after working with companies like Siemens, Frensh TGV and a Japanies company to build a railroad for the Olympics in 2008. When the economic crisis hit in end of 2008 Chinese goverment decided to build a huge number of high speed railroads connecting all the big cities in China. Instead of investing in help packages in the bank sector they invested in infrastructure and jobs.

By the way they also invested $30 billion in a factory to build passenger jets to compete with Airbus and Boing. Trust me, soon (10 – 15 years) they will be a worthy competitor to those two old giants.

And did you know that the Chinese Government has announced that they will build a high speed railroad from Beijing to London before 2020. My first reaction was why? My next reaction was can they really do that? Then I thought who will be the customers? And finally how will they make agreements with the countries which it shall pass through?

It is planned to run average 320 Km / hour and cross 17 countries.

After some research on the topic and thinking a little more about it I realized that this railroad is not for passengers. It is for shipping products from China to Europe very fast. And to get raw materials like oil, iron, steel, cobber, lithium, etc into China fast. China government realized that what is most important to sustain their growth over the next 10 – 20 years is to get the raw materials they need and at a very predictable rate and price. Most of the countries that have these raw materials are actually some of the 17 countries on the planned line between Europe and China. None of these countries has the technical or economical or political strength to build the world fastest railroad and connect their country with 2 of the 3 most powerful regions in the world. So China figured that if they offer to build such a railroad through these poor countries, at no initial cost, they could probably get a good long term deal on raw materials. And the sooner this link would be ready the better for the Chinese economy. Thus over the next 10 years china are going to send a million railroad workers out to build this link. Basically the do what the Europeans did ruthlessly 200 years ago to conquer the world. Exchange technological advantages for world dominance.

-----------

OK, now let me talk about what the changes and growth in China can bring to technical singularity. First of all, I think that it is important that the "Western systems” have alternatives to which we can compare our systems. This will cause us to discuss important questions and bring changes to our system, which has been needed for a long time. Here I am thinking especially about political systems and all the bureaucracy in many of our system. In the west we think we have a real good democracy. But in my mind, the fact is that our type of democracy need rethinking and there are many problems that it does not address well or have a very bad influence on. The Chinese democracy is very different, so different that many people don't think it is a real democracy. But while I agree it has it's flaws too, I think they have some very smart features build into their system.

Another thing that strikes me as very important is the mindset among successful young Chinese. Throughout their entire life they have experienced very rapid growth. In the west we have a mindset that everything changes very-very slowly. The only industry I can think of, where we expect rapid growth is in the silicon industry, where we have learned to expect doubling of processing power and storage capacity every 18 month. This is a fundamental part of our mindset and most of our actions and inventions are tightly coupled with this relation. But in China the young generation has a mindset that they can expect enormous changes in almost all areas of the society within a decade. And what is even more important, contrary to the west, it is less likely that new ideas get rejected because peers and investors don’t believe in them. In China there is an atmosphere where everyone believe in big changes within the next decade and they admire those who push these changes forward. I think this atmosphere will drive many other industries into rapid growth similar to what we know in the silicon industry and consequently china will become the leader in most of these industries.

lørdag den 28. november 2009

Fast forward: Next 10 years

I finished my master degree 10 years ago. Back then there were very little video on the web and podcast was not "invented" yet. My master thesis was about filming lectures at universities, such that students would be able to optimize the way the study. By only viewing lecture videos with high ratings and be able to fast forward or rewind and review important stuff several times.

This year I realize that TED is a very good answer to my dreams back then.

Right after I graduated 10 years ago I got a job in the R&D department in Nokia, Copenhagen. I was supposed to work with GPRS and 3G data software (which was all very futuristic back then). I had many job offers. But I choose Nokia because I thought it was a very promising future with internet connection everywhere. But then 3G licenses was sold at astronomical costs and we techies realized that it would be many years before we would see low cost internet everywhere. And at the same time WAP manifested itself as a BIG flop.

This year something interesting has happened... I worked on a project where we would providefree WiFi internet in the trains in Denmark. Costs will be covered by advertisement. Later this project will spread to all sports facilities, waiting rooms, shopping centers, etc. Within a few years, there will be free internet in most of the public space in many countries. We will also see some mobile network operators which will provide free interent connection everywhere in exchange for advertisement.

Last week Google released their first alpha version of theirChrome OS (open source = free). Earlier this year they also released their Android OS (also open source and free).

I think that there is a very good probability that we will soon (2 - 4 years) see free computers and mobile phones given away to very large percentages of the population in the world. Affectingly resulting in free computers, mobile phones and free internet. Everywhere, always and for everyone with a credit card. (by the way I assume that credit cards will migrate into these devices soon too.)

At the same time the cloud computers are raising at a fantastic speed. Today Google is buying more computers than Germany every year. And Google, Microsoft, Amazon, etc. continues grow huge data centers at a very fast pace. Today there are 1 billion internet connected computers in the world. Soon we expect there will be trillions of internet connected computers. At which point humans will not control the computer, but system will control information, which control computers, which control most aspects of the humans everyday life.

She asks: So will all this computer power be green? Island has been pointed out as a perfect place to place huge datacenters with billions of computers. Island has free energy from their seismic underground and at the same time they have lots of cooling water and great internet connection. Sitting on top of most of the transatlantic internet cables. (So invest in Island now ;-))

Today the leading housing product manufactures in Denmark demoed a very energy efficient house. In fact the house can produce more energy than it uses, thus the surplus energy can be sold or used tocharge a car to drive 100 km pr. day. Then you add the modern water cleaning technologies that uses reverse osmosis and can produce 99.9999% clean water. This completely remove the need for cable and pipe infrastructure to every house and remove the need for power plants too. In addition it makes more sense to produce these modern houses in factories in low cost labor countries. In fact IKEA has already started doing so.

Next week there is a big climate conference in Copenhagen, where world leaders will try to reduce oil needs and boost renewable energy production. But we all know they will fail BIG time to make any significant changes in climate and energy production. But they will make sure their appearance are optimized for positive domestic press. If they had any balls what so ever, they would reduce oil, gas and coal consumption by 5% every year starting from 2010. We clearly have all the technologies to do so, but this will cost jobs … which is not good for reelection.

Let me try to summarize what this will mean to our economics as we know it today. Utility companies and media corporations will die a slow and painful death. Construction companies and craftsman labor force will probably be reduced to ½ of what it is today. Information and advertisement will be coupled even closer than we have seen before and in ways that is increasingly difficult to deciphered. Real time search engines and other agents will be an absolute necessarily for any human and corporation. So old jobs will disappear and new jobs in IT sector and housing factories will be created. But not necessarily in the same locations.

Meanwhile my brother and I worry more about when the next major world war will surface. Both USA and China are very proud nations and I predict that the American economics will worsen when weapon based oil dominance, seas to drive the US economics with unfair advantages. At the same time China continues to take control over huge chunks of the American brands and economic. This could cause dark forces in US to raise and take power and demand war.

By the way: Reasonably I asked my brother: What is the biggest shift/event in the world during the last 5 years. Answer: China is now the biggest english speaking country in the world!!

The big thing the next 10 years will be user aware advertisement. As computers and networks know more and more about us they can predict the probability that we are going to by this and that. Advertisement-network-operators will profile you and give you free products and services in return. A good profile may be worth 10 - 25% of your expected yearly spending ability. Similarly your price at banks, insurance companies, etc. will depend on your profile. Your ability to inspire people in your network to buy the same brands as you do will affect your profile too. And a new industry will rise that will help you optimize your profile to create more value for you.

(oh, and by the way.... as in politics where swing voters are important, this is also true in sales of goods). So be aware that this new industry will be a double headed creature. And you never can tell if your agent is working for you or a company that are looking to increase market share or a political candidate who is looking for increased market share.

The next Bill Gates like billionaire will be he who finds a smart agent that can profile people well from information they are willing to give on request or is freely available on the net.

AND DON'T.... send your kids to collage any more. It is a waste of time and money. You need to teach them to learn from the net. I am 100% sure that they can learn minimum 10 times faster from the net, than from old fashion lectures. If you don't know where they should start; I suggest starting to read large parts of Wikipedia and watch TED videos. Find something they are passionate about and get a job related to that.

My final word of advice. If you don't want to invest your money in the top 10 ad serving companies. Then you should invest in Chine or India. Hans Rosling predicts that in 2048 Chinese and Indian economics will catch up with US and Europe. Thus investing in real estate in major cities in these countries may be a sure bet. By the way I recommend Hans Roslings talk at TEDas one of the best 15 minutes lectures on world economics and history combined. (Did you know that receiving standing ovation at TED is considered comparable to a Nobel price)

søndag den 12. juli 2009

3 features could double the speed of software development

If the following 3 features was implemented in modern programming tools, then I would be twice as productive as a software developer:

§1.
When testing the software in debug mode and I hit an exception then the debugger should record all the steps and states that happened previously and I should be able to step back to any give step before the exception accrued and continue debugging from there.
It should also automatically set a break point at the line where the exception occurred and automatically jump right back to there. (today VS2008 jump to the catch statement when it hit an exception and the memory state is broken so that I cannot go back to before the exception occurred and get a view of the memory state of all objects.

§2.
When I create a new method, the software IDE should automatically generate an set of test cases for this method. Then I should be able to right click on the method and go directly to these test cases. And it should be easy to add new test input. Even if it is complex. (I.e. a DataSet or a Bitmap or a custom class)
Next the test cases shall be able to test the new method even when the entire project do not build. As long as the new method builds and the underlying classes etc. that it depend on builds.
I should not need to run the test cases manually. They should run in the background automatically every time I change something that relate to each method and the output (ok or not ok) should be listed in the same view as Errors and Warnings. Today VS2008 run the compiler in the background when developing VB.NET applications and continuously show a list of errors in the source code. I just want the same thing for method test cases.
When I am in debug mode, then I shall be able to right on a function call which has just completed and "Add to test case" and then the IDE shall automaticlly add that input/output as a new test case. Similar whenever an exception is caught in debug mode, then the IDE shall automatically add the test case of the function call, which resulted in the exception.
We would need this feature anyway if we want computers to be able to write their own software in the near future.

§3.
There should be an automatic refactoring feature. A tool that would be able to inspect a peace of source code and then be able to refactor it such that the same code was not written twice any where in the current project. (not one liners of cause, but it should inspect for patterns)
Then if some "stupid" programmer on my team, had copied my code from one method to another and just changed it a little in the second method. Then the computer should be able to automatically change this, such that the code would only be there one time. And me and the stupid programmer's code :-)), should be refactored to call the new common code snippet with parameters, which would allow them both to function as before.
- Next it should even be possible to also include one or several databases of code snippets in this pattern search. Such that the pattern search is not only done across my own project but also across one or several databases. (public or private)

--------

I think a small team of 3 - 5 programmers per feature above would be able to implement these as describe in approximately one year.
OK, so if it is true that these 3 features would save millions of hours for software developers around the world each year. Why are these features still not in our tools in 2009??

My conclusion is: Because we, mankind, have not found a good way to collaborate and push software innovation forward in faster and faster cycles each year.
One of the reasons for writing this blog, is because I want to present some of my suggestions on how we can collaborate and innovate much faster in the software industry.

lørdag den 4. juli 2009

What I want to talk about in this blog

I find technological singularity a very interesting subject. Now I made a decision to write down some of my thoughts on the topic in this blog .. and hopefully get some feedback.

This blog is going to talk about the technological development, primarily related to software development, law and politics, which will happen from today until we reach Technological Singularity. (period marked with green below)


Let me start out with some short statements. (I wanted to keep the format very short, since most of my readers are probably already familiar with Technological Singularity some of the folloing relations)

§1
Technological Singularity to me, is the point in time where computers take over the the control and development most of the technological development and innovation in the world. (Here after referred to as TechSing.)
§2
TechSing is man made, since clearly we humans must drive the development from today until we reach TechSing.
§3
It is inevitable that that we humans and our computer software will make big mistakes and dangers errors before we reach TechSing.
§4
Such errors will create resistance, which will for some periods cause certain technologies to be banned or otherwhise place obsticals for the technolgical development.
§5
The fundamental building blog, which computer software must master on its own is: It must be able to create a simplified model of systems or processes, which emulate the same behaivour of the system from the real world. (in the following I will refer to this as modelling or just make a model)

§6
The computer must be able to model on it's own and even be better than humans to do so. (until this day I have never seen the computer model on its own. Not even very, very simple system.) I think we will see this happen within the next 50 years, but I must admit that it is also possible that it will never happen)

§7
My belly feeling tells me that the acceleration towards TechSing will not happen until:
A. We humans can bring forward a sequence of the probable development steps, which we need to accomplice between 2009 until we reach TechSing.
B. We humans start a war that can be won if humans create a computer that model on its own. :-(

§8
To avoid confusion I want to point out that: For many years it has been possible for computer programs to write other computer programs. These can even be made very complex and base on dynamic statistics, libraries and databases. But somehow they are not able to compare the resulting system model to the real world and improve it's own model to match the world better.
(if the reader want to argue that Neural Networks do this, then I don't agree. Neural networks can optimize there settings to better match input and output. But they can't change the topology of the network to make it more optimal to solve a new problem)
§9
I have worked professionally with software development for more than 10 years. My experience tell me that Moors law have very little influence on when we reach TechSing. If you look at how little operating systems or search engines has change during the last 5 years, then it is obvious that it can easily be 20 years before our computers will be able help us make the most simple decisions or work on its own.
If the computer shall even be able to out perform the human in innovation and development. Then we need to make some tools which enable programmers to develop and debug VERY, VERY complex software systems in short time. Today more than half of the time in software projects are used on test and debugging. If we were able to get this below 5% then we would have taken a huge step towards TechSing.
But note: For many years there have been invested huge economical resources to reduce this, but still progress is VERY, VERY slow. It is my hope that this Blog will help us discuss and come up with some better ideas for this subject.
§10
Before I end this first blog entry, I want to list a number of software technologies, which I think may be some of the important stepping stones on the road towards TechSing. (not listed in a particular order)

  • Spellchecker software which can correct the text (without asking questions) just as good or better than if I send the same text to another human for proof reading.
    [How difficult can that be.... my guess is that we will see this problem solved within 10 years]
  • Search engines which only give one answer (the right answer).
    [This already exists, but it needs to get much better during the next 20 - 50 years]
  • Computers which does not give error messages. But instead fix the error it self and only ask if it is in doubt which of two possible options to select.
    [This already exists, but only for very simple problems, it must improve extensively next 20 - 50 years]
  • Software tools which can automatically port software applications from one platform (i.e. operating system or programming language) to another.
    [Technically this is already possible to implement, but there needs to be a profitable market for it to develop]
  • Software which can make text, graphics and speech in video search-able and relate this to all the knowledge you already have. This of cause require that the computer monitor everything you do through your computer.
    [Development in this area is already started and I think we will see the first solutions which can relate new information you acquire to stuff that you have already learned in 5 - 10 years. (through the computer that is)]
  • Applications to give you suggestions, where to buy the same or substitute product at a lower price near by every time you make a purchase.
    [I have already seen the first of such applications. But I expect that this will grow very big within the next 10 years]
  • Cars which can drive by them self and airplanes which can fly by them self's.
    [There are already experiments with both, but I doubt that we will see this in our everyday life within the next 15 years]
  • Systems which can give us cheaper insurance and minimize the security check in airports etc... If we allow the software to monitor our behaviour every day in our life and record who I meed, who I know, where I go, what I use my money on, what I read and see. Based on this the software will easily be able to establish a risk profile and allow me to save time and money.
    [Technically it is not a problem to implement this today. But there must be a market for it to happen.]
  • Systems which monitor what you use your time on and try to suggest how you can become more productive on your computer by comparing how you work to how others work. E.g. suggest which software application or services you could purchase to increase your own output.
    [This type of products will typically start in a niche, improve over time and spread to other niches. Today similar software exist, which record computer usage and behaviour in large organizations and consultants use the output to suggest action to management]
  • Systems which can optimize the way limited shared resources are distributed among members in the community. Like hospital waiting lists and traffic congestion. Today we rely on fixed rules or market economy to govern how to distribute limited resources. Potential this can be done better with an adaptive software application, which can model how different distribution models will maximize the joint community value.
    [You probably already noticed that this is similar to what a chess computer does. Maybe it would be possible to make a general toolbox, which would make it easy to create application for many such related problems. Anyway if we expect that computers shall take over all decisions in the future, then we must start with such systems. In the beginning politicians will make the rules for how the system shall govern the resources. But as the models become more complex and relate on more and more input, then the computers will be used to simulate and suggest different possible models for the politicians to choose between. In the end the computer will only give one suggested model --- it's own favorite choice ;-)) ]