Android backup using rsync

Today I finally implemented a backup solution for my Android phone after regretting not having done any backups multiple times now.

I'm running Cyanogenmod 7 (Android 2.3.7) with root access, but I'm pretty sure the method should work without root privileges on a conventional Android distribution of pretty much any version. Although, there may be tools missing. Please report if you find out that's the case. (Tools used are: dropbearkey, ssh, rsync, vi, chmod)



I've already talked about browsers a couple of times before in this series, mentioning browsers introducing features like HTML tables, which got adopted by others and later merged back into standards, browsers transmitting abstruse user agent strings pretending to be someone else, browsers implementing different subsets of past and upcoming standards and so on. So not only due to the fact they are the direct gate to the user of a website, browsers are definitely worth and necessary taking a closer look at.


JavaScript, Frameworks, CoffeeScript, ClojureScript, Dart

Introduced in Netscape Navigator 2.0 in 1995 and adopted by Microsoft Internet Explorer 3.0 as JScript in 1996, JavaScript - or ECMAScript, the name of the vendor-independent standards first published in 1997 - has had many faces: It was a useful toolset to accomplish web developers' tasks, it got misused to just annoy the user, it was misunderstood and brought barriers into websites, but maybe the most important: It is the engine powering many innovations in web development. To just name a couple of buzzwords connected with JavaScript backstage: Ajax, SaaS, HTML5.


SASS, LESS, Twitter Bootstrap, Bourbon, HAML, Slim

I've already addressed frontend technologies like HTML and CSS in this series. In the backend you're free to use whatever technology you want to use, it only has to be available for the platform you're working on. And even that is no restriction, since you can also choose your complete server stack as you want. It does not affect the user. You can write your backend code in 68K Assembler and run it on such a chip, if you want. The only common characteristic the system has to have is to speak the IP / TCP / HTTP protocol stack to deliver the content to web clients. Therefore, there are many different backend technologies, some newer, some older, with different philosophies and communities of different sizes and compositions.

The frontend-part is completely different. The World Wide Web has ever been designed for a diverse set of client software (browsers), which means a specific website is not to be made for a specific browser (although that happens all day). And this results in a need for standards. Standards, defining in what form a web server can deliver content so that every of those clients will be able to render it. Such standards are HTML, CSS, JavaScript in their various versions and modules. While you're able to use whatever programming language, technology, web server software and such you want in the backend, you're eventually bound to write HTML documents the browsers can handle (well, actually there are some unpopular alternatives like XSLT, we've seen).



In this series, we've already seen XHTML, using XML, HTML5, which can be used with an XML syntax and SGML, which both classic HTML and XML are subsets of, and you probably encountered XML apart from HTML.

Other technologies using the Extensible Markup Language are the newsfeed formats RSS and Atom, the data exchange protocol SOAP, the instant messaging protocol XMPP (Jabber), the OpenDocument as well as the newer Microsoft Office formats, the vector graphics format SVG and many many many more. It's also commonly used for things like configuration files or data exchange.

Let's use this flexible all purpose tool to define the JDBC, the John Doe Business Card format. ;)



To motivate Cascading Style Sheets (CSS), let's take John Doe's home page from the latest post of my web development overview and add some style.

Say, we want to have two centered boxes side-by-side, each of them having a width of 480 pixels and equal height. They shall have a light gray background, a 10 pixel padding with rounded corners and a gap of 20 pixels. The left one will hold John's profile, while the right one will be used later on and remains just empty right now. Additionally, every second level headline shall be red. Now, good ol' HTML: