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:



To start off my series of web development posts, let's have a quick look at basic HTML.

Simply speaking the HyperText Markup Language is what drives the web and has ever been for the last 20 years. You can find an archived 1992 version of the very first website at W3C, as well as screenshots of the line-mode browser and the WorldWideWeb application for NeXTStep (a descendant of UNIX and BSD and ancestor of Darwin and Mac OS X) at CERN's website. So, what do you see? Ugly, plain text including some (hyper)links. Now have a look at Facebook, the world's second most visited website (following Google). Obviously there has been some development.


Welcome to my very first blog post, yay! So I decided to become a blogger...

A quick introduction: My name's Christopher Schramm, I'm in the last year of my studies of Computer Science (MSc) at a German university, with the main focus on networking and security topics. I've got in touch with web development over a decade ago, when I was only about 14 years old, "developing" a little online game with PHP. I've always pursued this topic ever since, and finally started working as a freelancer to make a living for the last couple of years. Currently, I'm the developer of a little web startup, I got in touch with freelancing, but I don't think it's going to work out, so don't expect me to talk about it.

To come to the point, although my main occupation is being a student, I presume to call myself a (Backend) Web Developer with insights in the full stack and I want to make a series of blog posts, giving an overview of most of the web development topics that come to my mind. I think of it to be a quite extensive "Who's Who" overview and, to be honest, I will not always know what I'm talking about, since I'm going to demonstrate technologies I've never had a deeper look at before, like Groovy and Node.js. The overview is targeted at beginners as well as advanced developers interested in some fresh views, although for the backend programming part, I expect basic knowledge of programming. I won't explain things like variables or functions and I further expect some object orient programming (OOP) background.