Usually at the start of a new year, various tech pundits take out their crystal globe and after peering at it for a while will come out with their predictions for the future. Here’s mine.
If you have been following many of my blog posts, it probably comes as no surprise to you that my opinion is that the underlying OS is becoming less and less important(for the average user) as more and more functions are moving to the web.
An average user spends more time on the browser than in anything else. Here’s my Wakoopa data if you don’t believe me. Even though I spend a fair bit of time on development, it turns out I spend more than 50% of the time on the internet.
So it hardly matters whether you are using a Mac, Linux or Windows, your experience is roughly about the same. This actually is the worst thing that can happen to Microsoft Windows and probably the best thing to happen to Linux and Mac.
Google realizes this and came out smartly with the Chrome OS with the stated goal of getting a user quickest from starting a machine to getting them into a browser and online. I am calling this the Browser OS, a modern development of the OS that tailors itself towards the function that most users are using. Quite neat.
This is still not ideal as some users still need to perform various things like interfacing with hardware etc, but I suspect that this will eventually be solved by still using the browser. For example, plugins inside a browser will allow websites to directly interact with computer hardware, so for example, your photos can get directly uploaded to the photo sharing site of your choice as soon as you plug it in into an USB port and so forth.
Believe it or not that day is not long off.
Tonido Backup application joins the family of utility apps available on all three platforms (Windows, Linux and Intel Mac). With this application, users have the ability to backup data using Tonido from any computer to any remote computer running Tonido regardless of its platform and its location!
Some of the features of the Backup application are
- Ability to backup file or folder.
- Unlimited backups records.
- No size limit on the amount of data.
- Ability to set target regardless of the platform (cross platform backup).
- Ability to schedule backup (Manual, Daily or weekly).
- Ability to select backup target regardless of its location as it uses Tonido id.
- Secure encrypted data transfer. All backup data is transferred using Tonido’s built in P2P engine and therefore the data is encrypted.
- Simple setup (Backup can be set between any two Tonido group members).
Tonido Backup application is designed to be very simple to setup and use. Tonido Backup allows backup of a file or a folder to any Tonido group member. The backup is incremental and only the changes are transferred keeping the bandwidth usage to a minimum.
Backup action can be set to performed on user input or automatically every day or week.
Under the hood, Tonido Backup application uses the built in P2P engine to perform the data transfer. P2P data transfers are completely encrypted and does not require (for vast majority of cases) any port forwarding .
There is no restriction on the number of backups. You can setup backup of a file/folder to multiple computers to increase redundancy, and furthermore, there is no size limit to the amount of data that can be backed up using Tonido Backup application!
So what are you waiting for? Download and install Tonido Backup application in your Tonido.
Help on Tonido Backup application is available here.
Let us know your thoughts via Tonido forums!
Marvell makes the ARM chips that powers the TonidoPlug and they hosted a Marvell India Technology Day (MITD) event at Hotel Leela Palace, Bangalore, India, on November 10, 2009. Since I was visiting India at that time, I was able to attend this event and also gave a talk at the Open Source Plug Computing knowledge forum. Thanks to Marvell for the opportunity.
Here are some impressions in pictures.
Plug Computing Knowledge Forum
That is Me
Leela Palace Decor is pretty nice
After reading forum post, blogs, web articles, magazine articles, one thing is clear.
Tonido is a hard concept to grasp 🙁
What makes Tonido powerful also makes it a tad bit confusing.
This is one of the series of blogs that hopefully will shed some light on Tonido.
Let me list some of the properties of Tonido
- Tonido is a software application.
- Tonido does not refer to one application/function but rather a software platform.
- Tonido’s functionality comes from its plugins and therefore can be tailored to meet various requirements by installing different plugins.
- Tonido is platform agnostic with versions currently available for Intel/Windows, Intel/Linux, Arm/Linux, Intel/Mac.
- Tonido UI is accessed via a browser using HTTP or HTTPS protocol (SSL certificate can be bought here).
- Tonido communicates to other Tonido instances using AES encrypted UDP connections.
- Tonido does not require third party servers to transfer data (unless using relay) and all data is local.
- Tonido provides a dynamic DNS function with a unique URL for access in the form of <id>.tonidoid.com.
- Tonido DOES NOT require active internet connection to access its data.
- Each Tonido instance can have one active profile logged in at any point of time. But multiple Tonido instances can be running in the same computer.
- Tonido SDK is available for third party developers using open source license for new plugins.
Some FAQs that might help are given below.
Do I need Tonido running in the local computer to access another Tonido instance running in a different computer?
Short answer, No.
Long answer, Since the way to access a Tonido instance is using a browser, all that is required is the Tonido id or the ip address of computer running the Tonido instance and the HTTP /HTTPS port number.
Do I need to have port forwarding done to access Tonido?
This is another pain point for a lot of users. The short answer is, depends.
In a home network, for accessing a tonido instance that is running in the same computer or computer in the trusted network, Port forwarding is not required.
But if one wants to connect to a Tonido instance that is not in the trusted network, then Tonido TCP port must be forwarded to allow access.
Lets try to understand the mechanics of accessing a Tonido server. Tonido is a software process that is running on a computer, listening on a specific PORT number for user requests. Therefore, inorder to access it, both these information is required. But most routers do not allow arbitary access of computer ports from external locations and require port forwarding. Some routers allow automatic setup of port forwarding using UPnP protocol and for others, user would need to setup manual port forwarding. More information is available here.
Alternately, Port forwarding can be completely eliminated by using Tonido Relay Service.
Do I need internet to access my data residing in Tonido?
Short answer: No
Long answer:Tonido data is stored locally and If the Tonido instance is running in the same computer, then that data is accessible. If the Tonido instance that you are trying to access is in a different computer, then, obviously, that data is not accessible 🙂 . You can read more about this here.
Is my data stored/examined by Codelathe?
Even using the relay service only allows for routing of encrypted data.
How secure is Tonido?
Tonido has been built with security and privacy in mind.
Tonido has been audited and tested by a independent security firm that specializes in application security. Furthermore, Tonido is constantly updated to protect against any potential vulnerabilities.
Tonido UI is accessed via HTTP protocol and, for a fee, SSL certificate for HTTPS access is also available allowing secure access to Tonido.
Tonido to Tonido communication using P2P engine is completely encrypted using AES 256 bit encryption.
Can I have multiple Tonido instances running in the same computer?
The only requirement is that they should be using different HTTP ports.
Can multiple profiles be logged into the same Tonido instance?
Every profile contains specific applications and associated data that are loaded based on that profile.
How can I get Tonido translated to my language?
Tonido has been built with internationalization in mind. So translating Tonido is easy. Read here on how to translate Tonido to your language.
Can I write new plugins (applications) for Tonido?
Can I login to different Tonido instances with the same profile?
No. Tonido profile really serves as an identifier for specific settings such as the plugins to be loaded in that Tonido instance and also acts as dynamic DNS identifier. Therefore, the Tonido profile is tied to the computer where it is created.
to be continued…
Nothing much. Everything pretty much continues to work. For the few things that don’t, you can find replacements. So rest assured, your TonidoPlug doesn’t become a $100 brick overnite.
First of all, CodeLathe has no intention of going under. We are a small company, our overhead is low, our efficiency is amazing and we are slowly working on making Tonido and TonidoPlug the best software on the face of the earth. But if you are still unconvinced, a picture is worth a thousand words. So see graphics below:
If CodeLathe goes under:
- Green boxes will continue to work. Your Tonido, Apps/Data all work.
- Orange boxes functionality can be replaced by other services. e.g. use any other DynamicDNS provider
- Red boxes will not be available. This includes Tonido Photos sync, Tonido Group Workspace Sync and the Relay Service which is in Beta currently.
We went through a lot of pain to make Tonido self-sufficient. So all your existing apps continue to function as normal and more importantly your data is stored in open SQLITE database formats.
Don’t want to take our word for it? Try it now, disconnect your internet connection and see how Tonido and the apps continue to function and will continue to function after we are long gone.
If you read my last post on my new computer build you would have seen how I was complaining about high temperatures on my Radeon 4850.
Well, recently, when I was cleaning the card (of dust bunnies), I was too overzealous and I broke two of the fins on the stock cooler fan. I couldn’t do much and put the card back in hoping it would still be ok. The card still ran reasonably well, but the noise was unbearable. If I started a game, the card would start whining like a jet about to take off. It got progressively worser to the point that it started to whine even at idle.
So to cut a long story short, I was about to buy a new video card to replace the 4850. With the 4850 less than a year old, it was going to be a big loss and write off. But luckily, browsing at the local computer store, I spied a VGA cooler and took a chance, and spending $17 on it seemed easier on my wallet than a $180 GeForce GTX 260 Core 215. I took apart the stock cooler attached the new cooler and low and behold, my study area becomes so quiet even a monk could meditate. And my idle went to 50C from 85C. Load went to 65C from 100C. Not bad.
Anyway, the point I am trying to get to in my laborious way is that stock coolers are not worth anything anymore if my experience is anything to go by. My Intel Quad Core ran like a furnace till I bought a aftermarket CPU cooler. And now my video card runs at lower temps and much quieter with an aftermarket cooler as well.
What is the point of the stock cooler if it can hardly do its job and even if it did, it left your computer components hovering around 100C, ready to fry an egg. Component manufacturers owe it to themselves to do a better job with stock parts that ship with their product or they are going to lose DIY computer builders who have such a bad experience with their computer build they don’t attempt one again.
We are happy to announce the new WebsharePro uploader under Apache 2.0 license. Source code for this application is available at the Tonido developer repository.
The current release has binaries for windows. Since the application is made with platform agnostic development libraries, it will be easier for other developers to improve, extend and migrate the application to other platforms.
A Word on Tonido Webshare and WebsharePro
Webshare is an application that runs on the Tonido platform. It lets users to share files from their home computers and make it available from anywhere on the internet. It lets users create accounts for friends and family thereby giving restricted access based on the identity. You can try the free download from here.
WebsharePro extends the ability of Webshare by allowing upload of files to their home computers from anywhere on the internet. It also makes it easy for users to send and receive files from others. A browser is the only requirement to upload files to remote computer.
Drawbacks with using browser for uploads
It is important to note that there are some drawbacks in using just a browser to send files to another remote computer.
- When a user wants to upload multiple files, he/she can only upload only one file at a time.
- Hard to upload a directory and its contents. Contents can be files or sub-folders.
- It is not possible to perform drag-and-drop of files and folders to be uploaded.
To overcome these issues we introduce the new WebsharePro Uploader. This is a standalone native application that is currently released only on windows. Once the application is downloaded and installed, all you need is to specify the Tonido URL, user name, password and you are good to go. You can use the built-in file/folder chooser or drag-and-drop files and folders. Uploader starts uploading them without anymore user attention. Go here for more information on setup, configuration and use of this uploader.
If you don’t have WebsharePro, you can also buy it from our Tonido Store.
We just released a new Tonido release 0.2.0.100121 for all 4 platforms. Windows, Mac, Linux and TonidoPlug. This is a major release.
UI is 2X faster
- With gzip encoding support, Tonido UI loads up to 2X faster over remote connections
- Tonido Relaying Service is available as a beta service in this release. To enable relaying, go to Network->Settings. Once Enabled, simply access your Tonido instance via http://<yourprofile>.tonidoid.com. It is that simple. Please note that when using relay, you will have to disable SSL first if you have enabled it.
Application Store Licensing support
- It is now possible to buy new applications in the Tonido store and download and activate them via Tonido’s UI.
- Login into https://store.tonido.com using your store account and buy any new app. (For example WebsharePro)
- Go to the App Store tab, set your Store credentials
- Then go to the Install tab and install the new application, activate it. You are done.
There are also a bunch of bug fixes, you can see the full release notes at http://www.tonido.com/release_notes.html.
After Tonido’s release, we have been working based on user feedback to fix the major pain points faced by our current and future users. One of the significant issues faced by many is setting up remote access to their Tonido software outside their network.
This problem is exacerbated by several issues.
- UPnP support by most routers is really poor.
- Port forwarding settings for routers can be convoluted and difficult to understand.
- Port forwarding simply doesn’t work on some routers
- Port forwarding simply doesn’t work for DHCP clients when IP changes
- Port forwarding is not possible under some conditions because there are no user-controllable routers available in some networks. (Businesses, Campuses, Free Internet Wifi Spots).
There really is no robust solution to this problem that will work in all those above cases.
The only real solution is to relay Tonido data via a server that acts as an intermediary between the remote client and the local Tonido instance.
That is exactly what the Tonido Relay service does.
So for users who are unable to setup remote access through their firewall, Tonido Relay service is a viable alternative.
The overall simplified architecture looks like below.
There are some salient points about this service:
- The relay service is purely a data streaming service, no data of any sort is stored or monitored. It is all a bunch of bytes.
- Strong encryption: The connection between Tonido and the relay service is encrypted via SSL so it is resilient against snooping/hacking.
- HTTPS SSL support will be available as well, thereby making the complete connection impregnable.
- Relay service is purely optional (and disabled by default), everything else still works the same as always.
Tonido has always stood for the ability to be independent and self sufficient, so we agree that this service goes in the opposite direction. But in some cases, practical benefits due to this service outweigh some of the cons.
It all comes down to the choices available to a user. We believe that Tonido still offers users clear choices on how they want to access their data. If they can setup portforwarding because they have great control over their network they can do that. If they can’t, they still can use Tonido using the relay.
Relay Service will become available as a beta service in the upcoming release and on all supported platforms: Windows, Linux, Mac OSX and the TonidoPlug.
It will be free to use in the beta period.
We use GWT (Google Web Toolkit) in Tonido as the underlying HTML/JS technology for rendering our apps. The nice thing about GWT is that it allows you to work in HTML/JS land using a higher level language (Java) with full debugging support. The bad thing about GWT is that JS files can become pretty large (~500KB for example).
Now loading 500KB in a local network or machine is imperceptible, but on an internet connection, especially with a slow 50KBps upload, it can take a bunch of time before the Tonido UI becomes available. It was pretty annoying, and we just put off optimizing it because we weren’t sure what it would take to make it faster.
HTTP Accept-Encoding to the Rescue
Turns out there is a a quick and dirty way of making loading huge HTML/JS chunks faster. It is something in the HTTP specification called Accept-Encoding. Supported by most modern browsers, this tells a HTTP server that the browser can handle content that is compressed. By making a simple change to send compressed HTML/JS data back to the browser there is an incredible speedup. For example on an moderate internet connection, Tonido main page loaded originally at around 14 seconds. After this change, in a whopping low 7 seconds. (500 KB files get compressed down to ~150KB)
But, you might say, wait, isn’t the Tonido server going to do more work because of the extra compression? Yes if we did this on-the-fly, but not really. To put minimal stress on the CPU, we pre-compress the HTML/JS content in our release package before we ship. Tonido just reads it off the disk and sends it off. No on-the-fly compression.
It is a funny thing in software development, you can make huge performance leaps with small changes and then the gains get progressively smaller even after a lot of work. And at some point it is not even worth doing it. This change just proves the point.