Summary: At an inflection point, need for efficiency will overtake need for power. In the past, industries eg. weapons and auto have reached such an inflection point. Computing is approaching such an inflection point. Once we hit such an inflection point, light devices such net books, cell phones and light devices will be more popular than heavy weight desktops. Increase in user data, popularity of light devices and increase in bandwidth will lead to a central data repository. Current trend is to go to cloud services to host such a repository. Tonido and Tonidplug offer better alternative than cloud.
When arms race began in early part of 20th century, countries where building weapons that could pack as many TNT as possible in a missile/bomb. All through the world war, only thing that mattered was “how much TNT of power can be packed per cubic inch or per gram”. However, after years of building weapons, countries had nuclear bombs and other weapons that can pack tons of TNT. Power wasn’t constraint anymore.
Post world war-II, weapon builders shifted their focus from power to precision. What mattered now was precision, how accurate a weapon can hit a target and how precise can be the damage. Another such example is car industry. Automakers were on an arms race to build higher HP cars. Focus was on “how much horse power you can pack in a car”. However, when energy crisis began, focus shifted to efficiency. Everyone knows that the supply of oil is not unlimited, hence future of cars will be on efficiency not horsepower.
In computing, as defined by Moore’s law, power of the processor increased and size decreased, our appetite for bigger and more powerful machine grew. We use 64 bit processors in desktops. Question is will arms race to pack more power will continue or will it turn towards efficient and low maintenance devices?
Already enterprise servers are moving towards efficiency as cooling and energy costs become big part of data center costs. Soon, efficiency will be the key in running desktop and personal devices since users want their system run for long time for streaming media, or downloading TV programming, torrents, files, videos and music.
Constraint in with these light weight devices will be size and weight. By design, these devices should have limited (<100GB?) storage if not, these devices aren’t designed optimally taking advantage of bandwidth. With the current rate of growth in user data and growth in bandwidth, central remote data repositories are viable.
Such remote repositories can be hosted by cloud service vendors (Dropbox, Google etc) or you can use personal devices (TonidoPlug, PogoPlug) to host and maintain your repository. At CodeLathe, we believe your remote repository should be in a personal device which guarantees absolute privacy and prevents from any vendor lock-ins.
CodeLathe’s TonidoPlug is a small energy efficient device that would help you host files, data and applications at fraction of the cost that you have to pay for cloud services. Free cloud service today doesn’t always mean free forever, soon cloud companies will have to charge fee to be sustainable.
TonidoPlug can offer more than just remote drive or repository. You can access music, video/photos and manage calendars, contacts, Tonido applications. TonidoPlug will relieve you from running you power consuming desktop from running 24×7 to download torrents or running your home server to stream music or video in your home.
TonidoPlug will save you money in initial cost as well as in operating costs. Learn more at www.tonidoplug.com.
What a difference a year makes. Last year, Microsoft offered $40+ Billion to get access to Yahoo!’s search traffic but yesterday, Microsoft announced a deal where it got Yahoo’s traffic almost at no premium. Of course, if I were Yahoo shareholder I would be very unhappy about Yang’s decision of not accepting the offer last year.
Why it is important for Microsoft? Search is a business of scale, more people search, your product and algorithm gets better. More searchers will attract more advertisers and generates higher revenue from advertisers. With this deal, instantaneously, Microsoft can scale three times its current size, can fast forward its product development and receive higher price for its ad inventory.
Analyst estimates put Microsoft’s search division to make $600-$700M and prices for ads in Bing.com is almost half (1/2 ~ 1/3) the price of Google’s. With this deal, if Microsoft catches with Google in terms of ad pricing, revenue for Bing will double with no additional cost. A value of ~$500- 600M per year for shareholders. $500M * multiple of 10 = $5Billion in value.
With help of the deal, if the product improves and Bing.com brand presence improves, and Bing.com captures another 4% share to grow from current 8% to 12% market share, revenue will double with disproportionately small incremental increase in investment, creating another $500-$600M (at a higher monetization from the deal) in revenue. Potentially, another $5B in value for Microsoft.
What does Yahoo get? Yahoo clearly understands if it wants to be in Search it has to fight with two 500 pound gorillas – Google and Microsoft. These two giants have almost endless source of cash to invest. Yahoo can either compete and invest tons of money in Search or it save its investment and can concentrate on its other products Yahoo portal, yahoo mail etc.
From yahoo’s point of view, Search is getting commoditized and why to invest and still fall behind? hence outsource the search to a specialist. According to Yahoo CEO the deal could “add $500 million annually to Yahoo’s operating income” and will ease Yahoo’s Capex. Over $5-7B in value for Yahoo from these savings.
Why wait till launch of Bing.com? it was clearly a bet from both sides. Microsoft kept its bet that Bing.com will be a hit. On the other hand, Yahoo was hoping that Bing.com will fall flat. In reality, Bing.com did well and helped Microsoft share to increase to 8.4%. This gave Microsoft an upper hand. If Bing.com continues to gain share, Yahoo will continue to lose its negotiating power. Hence Yahoo had to close the deal as soon as possible. If Bing.com would have been flop and have received bad reviews, the story would have been different.
Overall, Microsoft shareholders are the winners who got something for free when they were ready to pay $44B for it a year before.
GeoCities holds a special place in my heart. I first created my first web page at GeoCities back in 1997 (remnants if which still exist today), existing for about 12 years.
…12 years is an eternity in Internet time.
I still remember how cool GeoCities used to be with all the different neighborhoods and the graphics and user site directory for each section of the neighborhood. And of course, my site was in the SiliconValley neighborhood; the cool place to be. It was all quite exciting. (In fact URLs had funky numbers in them, mine had something like /siliconvalley/9567 or something like that)
Of course, since those heady days, it went steadily downhill. The annoying JS bar in the bottom, ads in the right etc. It almost seemed like Yahoo gave up on GeoCities the product, just coasting along while people left it in droves for the new fangled blogs. Why GeoCities never added blogging support remains a mystery to me.
Nevertheless, shutting it down is an end of an era. It is a piece of Internet History that passes into Legend and will be forever remembered by many including myself.
Yes. TonidoPlug may be the first ever low cost, low-power, personal, p2p device that offers true online freedom. Some of you may know TonidoPlug runs the Tonido platform that allows you to share and sync files, photos, music and media with your peers without relying on third party servers or public online services. What we mean by “True Online Freedom” here is that except for the initial handshaking of peer devices your data never travels through our servers, and all your data is stored in your own storage devices not in ours.
The current trend in computing is to store all your data in cloud aka “third party server” and access it from anywhere. Users are increasingly storing their data on cloud servers without realizing the implications of losing control and privacy of their personal data. The current trend belies the logic and natural order of things. On one side, computers are getting powerful and personal storage devices are getting cheaper. But still we are turning the custody of our data to profit seeking entities whose market valuation is dependent on “how much customer data they have in their server” and “how much value they can get off from customer’s data“. They call it as a “Life time value of a Customer” or ” Lifetime value of your data“.
Also, if you look at the Internet landscape you can realize that few companies monopolize information. I am not being paranoid here. Information monopolies have serious consequences on how we discourse, share ideas and information and how our thought process can be influenced by selective information filtering. Now for any online business or a news story if it doesn’t come in the first two pages of Google search or News we can safely say that particular piece of information is destined for obscurity.
Tonido and TonidoPlug intend to correct the anomaly (Cloud Service) in the natural order of things (Democratization of internet) by giving the end users the complete control of their data and at the same time giving anywhere access as cloud services. Now every Tonido user has the freedom to produce and consume the information as they wish without relying on third party servers.
By virtue of owning TonidoPlug, the plug computer becomes a p2p node in growing Tonido private p2p network. Through Tonido’s private p2p network, one can share, sync files, photos, music and media with your peers in few clicks.
So let us build the world’s largest peer-to-peer network without “information monopolies” and which espouses control of your data.
For more Info, please visit TonidoPlug.
Version control systems play a vital role in the success of a software development team. This blog aims to provide a simple branching and merging strategy to manage the code in a fast paced team development environment.
When do you need branching?
You may need to adopt branching in many different scenarios. Let us assume that on a day to day basis you use agile methodologies such as extreme programming or scrum and you have finally released a reasonably complex project with Version 22.214.171.124. Couple of days after the release, you get a request for a new feature that must go as Version 126.96.36.199. You envision it will take couple of weeks to get that feature coded, tested and released. Meanwhile, simple modifications and patches are requested on a day to day basis in the Version 188.8.131.52.
Essentially, with the changing business needs you are required to do a deployment every other day or so i.e. your deployment cycle is 2 days or less.
With a team of 10 developers it will be a nightmare in the absence of a proper branching strategy.
Trunk, branch, and tag are the 3 main divisions in subversion repository.
The code in trunk is always maintained as close to release state as possible. Any developer making changes to the trunk must be absolutely certain that his or her part can be coded, tested and is ready to deploy within 2 days (can vary depending on your length of deployment cycle). If it takes more than 2 days, they are not allowed to directly change the code in the trunk. They have to create a branch.
Each developer must create his or her own branch if their code will take more time to program than your normal deployment cycle. It is the responsibility of the developer to regularly (timeframe depends on your development environment) merge changes from trunk to his branch.
Create a feature branch if 2 or more developers are going to work on a new feature that will take considerable time to complete. It is the responsibility of the team lead to merge changes from trunk to this feature branch on a regular basis.
It is always beneficial to merge changes from trunk frequently. Because, after a couple of days conflict between trunk version and branch version can get out of hand and merging will practically be impossible.
When the developer branch or feature branch is ready for release, merge changes back from the branch to trunk.
Tag is similar to branch. When you create a branch simply rename the folder from branch/branches to tag. I always use Tags to tag a release whenever a new release version is deployed. This will come in handy if a very minor patch has to be made on the release version when your trunk is temporarily dirty. Ideally, you do not merge from trunk to the tag.
Finally, remember that there is no ideal branching and merging strategy. It pretty much depends on your unique development environment. If you have any other strategy, I would like to hear about that.
Tonido is chockful of features you may or may not know about. For example, Tonido has built-in support for serving static HTML websites easily.
To do this:
- Create a folder, say “public“, drop in all your HTML files, images, CSS in that folder.
- Open Webshare Application, select the public folder and create a new share called “website“
- Assuming your start page is index.html, then your website location is at http://<TONIDOURL>/app/webshare/share/website/index.html
- Send the URL to your friends and family along with the access URL
It is that simple. Now you can host your own websites using Tonido.
A recent article in the web said that Tonido is not mature because of the low version number(0.2.0.8156). This is downright silly.
The version number as used by most software is simply a number pulled out of thin air that has no connection with ground reality. Most commercial software for example, pick numbers > 1 to send a signal their software is somehow ready. But what does it mean anyway? Your software could be called version 100 the first time it is released and it still says nothing inherently about the quality of the product. It might just as well be another name for your product. e.g. Xyclotron Series 800 Model 101 Version 2.4.
Software version numbers allow one to distinguish between two different builds of the software so that for example one can answer questions like:
- Is this the most recent version of the software?
- What features(and bugs) are available in this build?
- What features(and bugs) are not available in this build?
Version numbers also can be used to indicate other things about the software (binary compatibility, stability) etc. But those are secondary functions with no standard.
In Tonido’s case the version number consists of 4 numbers:
When we say 0.2.0.8156, it means we are at a (0) first major release cycle, (2) second minor release, (0) not a patch release, (8156) the internal build version.
The internal build version is keyed off Subversion’s version number. The advantage of using Subversion’s build number is that the version number now allows us to quickly answer the questions posed above by simply looking at the version tracking system’s change logs. If someone reports a bug and we know we fixed it, we can simply figure out if the build they used had that fix or not.
Anyway, I think the notion of version numbers telling something meaningful about your product are outdated. eMule is at 0.5 after 6 years. Java (version 6) actually refers to version 1.6, they simply omit the first version number and these days most web based software applications don’t have a version number, they are just at perpetual beta.
In Tonido’s case we are at 0.2 after 2 years, and at this rate we will probably hit 1.0 in 10 years. So if you are waiting for Tonido 1.0, you might have a long wait ahead.
Another first for Tonido!
Tonido is featured in August issue of Linux Magazine. Check out http://www.linux-magazine.com/issues/2009/105/cloud_9.
Thanks Dmitri Popov for your balanced and thorough review.
Sometimes when you check out shell and perl scripts from subversion to run automated tests it will be handy if you can set the executable permission permanently in the subversion repository. The following code snippet will do that for you. Just change the filename to your script name.
svn propset svn:executable ON filename
Note: I wrote this post 2 days before the launch of Opera Unite. So read it from historical perspective – Where the world was without Opera Unite.
I am writing this post with a hope that Håkon Wium Lie (CTO of Opera) will get a chance to read this post. I used Opera browser 3 years ago. I don’t really remember the reason why i have switched from Opera to Firefox. But i still think it is a great browser. Probably one of the under appreciated ones for the value it provides to the users. I recently came across a blog post from Geek Technica (http://www.geektechnica.com/2009/06/8-browser-innovations-started-by-opera/). It is shocking to see a pioneer known for its innovations has only ~2.2% market share in desktop browsers compared to IE6′s 14.2% market share.
One can categorize the browser players into four major categories.
- Microsoft (IE), Apple (Safari) – Both OS and Web play
- Google (Chrome) – Pure Web play with Google Native Client
- Firefox – Pure Web play with extensible add-on architecture
- Opera – Pure Web Play
Since Microsoft and Apple have operating system play they are not going to go in the direction of making operating system completely irrelevant. But they do have the advantage of bundling their browsers with their operating systems. So IE and safari are going to be around for the foreseeable future. They are not going to go away easily.
The other leading browser Firefox commands immense loyalty with their user base. Firefox’s powerful add-ons and extensible architecture make the browser indispensable to its users and it will be hard for other players to poach the Firefox’s committed user base.
The recent entry of Google chrome has made browser market much more competitive. If you look at the chart Google Chrome has gained 5.5% of market share in a short period of time. With the introduction of Google native client its strategy is very clear. Bring the power and speed of native applications to the web platform and make the underlying operating system irrelevant for the end users. Google native client allows the developers to access the full computational power of underlying CPU and enables them to create rich dynamic internet applications. Considering their past track record Google will be able to provide all the mainstream desktop applications in browser with the same functionality and features. I will not be surprised if Google can gain at least 1/4th of total desktop browser market share in a year time.
So with the exception of Opera, all the browsers have one or other advantages (bundling, native client, add-ons, etc..). The situation is precarious for Opera in the desktop segment. Unless otherwise they do something groundbreaking or revolutionary they may not be able to increase the market share from current level and most probably will be delegated to obscure status.
So now coming to the core of the topic. How Tonido can help Opera not only to gain the market share but also to win the the browser war ultimately. For people who don’t know what Tonido is: It is a cross platform , peer-to-peer, personal web application platform.
Tonido Platform Features
- Portable: Runs on x86, ARM
- Cross platform: Windows, Linux, Mac OSX
- Small memory footprint: high performance
- Small download: 5 MB download without applications
- Open development platform that allows new applications to be built
- 1-click seamless install of new apps from Tonido app store
- Apps have Web based UI
- Apps accessible locally, from intranet or internet http://mike.tonidoid.com
- Apps can communicate via P2P
- Apps run locally and store data locally
- Apps can be used online or offline w/o internet connectivity
- Rich, Interactive Web 2.0 style UI.
If you want to know more about Tonido Platform, please refer to our post How Tonido Platform Works
So How Tonido Platform can help Opera Browser?
- Tonido provides an development platform for Opera to create interesting rich internet applications.
- Tonido development platform offers native OS access for Opera without limiting APIs to ones provided by Opera itself. With the native access sky is the limit for number of interesting apps you can develop on Tonido platform. All the popular desktop apps can be targeted for replacement with the help of Tonido Platform.
- Tonido development platform offers an in-built http server and a p2p stack to Opera. Now users become not only the consumer of information provided by public online services, but also can become the producers of information. This approach is a game changer and totally revolutionary.
- Tonido Platform is light weight. It can run happily on embedded systems. So taking the Tonido platform to Opera’s mobile forte is a cakewalk.
- With Tonido’s P2P stack, Opera browser will be able to create the largest private p2p network mankind ever witnessed. Later Opera can use this for content delivery.
- Finally with the help of Tonido Platform, Opera can thwart the competitions from FireFox (Extensible app and update architecture offered by Tonido) , Google Chrome (Native OS Access Offered by Tonido Platform), IE and Safari.So all-in-all Tonido Platform is a great fit for Opera. If anybody from Opera Top management reads this please don’t hesitate to contact us.
— Original Blog Post Ends Here —
Note: Opera’s Unite launch today closes the opportunity for us. But Kudos to the Opera Team and we wish good luck with their endeavors.
For the naysayers, Opera’s Unite launch completely validates the concept of Tonido. We are happy about it! But we are not going to sit idle as well. This is a big space and Opera’s Unite will raise awareness overall about solutions that respect privacy and freedom from thirdparty servers and it is a good thing. And we are going to march steadfast until we reach our goal.
A question to the developer community: If Tonido decides to build a browser based on WebKit with a http and p2p stack, will you be interested in it? Will you be able to develop applications for Tonido? Let us know.