Last week we saw the launch of Tipit.to, the Dutch startup by Reinier, Jeroen and Alper. Tipit is a webservice that allows anyone to give a small tip (starting at 1 cent) to anyone. Tips are aggregated before payed and a similar system is used for payout. This makes it way more easier to pay a tip using Tipit than having to go through the PayPal process for every 10 cents you want to pay someone.
Why tips?
So why would you leave tips? Well honestly there are numerous reasons, but I always like to think about it as a good anti-advertisement measure. Most sites show Google Ads simply because the income they get from it pay for the server bills, which doesn’t mean they feel happy to have to show their users advertisement. Instead, a Tipit button on a website could allow users to make simple and easy donations, eliminating the need of advertisement.
Creative uses
There are obviously other reasons to have a tipjar besides preventing advertisements, and since the launch last week we have already seen a few uses that were pretty creative. The most notable is Lauren, who’s house burned down and is now looking for some money to get his life back on track (photos and videos here, or tip him here).
How to join?
Setting up your own tipjar is pretty easy, just go to Tipit.to, sign up, create a tipjar, and place the nice button on your site. In contrary to other services like Paypal they don’t need an awful lot of info about you before you can set up an account, and in contrary to services like TipJoy they pay out real money.
Is tipping the future?
I personally think we will see more and more tipping in the future. Tipping is the logical extend of the currently increased social activity on the web. Recent research shows that people are clicking less and less on advertisements and honestly I think we all hate to see them around anyway. Add on top of this that many people are starting to feel more and more invested in the sites they use day in and day out (see Flickr users vs the Yahoo/MS news), and tipping is definitely going to be hot in 2008.
So last weekend I went to SemanticCamp, a semantic BarCamp organized by Tom Morris here in London at Imperial College. The event was kind of “OK”. I said OK because honestly the event was not the best thing for me. I personally went because I was wondering what all this “semantic” stuff was all about. I guess more people had the same idea, and as a result, at most of the times, only 1 talk was going on. Combine this with a lot of no-shows and you get bored soon. I didn’t feel like listening to too many talks on RDF so I hung around with some people in the other rooms instead.
There were some great things about SemanticCamp though, most important of which was the organization, the location, and the drinks afterwords. One of the other great things about SemanticCamp was the Semantopoly game, custom made by Jon Linklater-Johnson. The game is a kind of Monopoly where you can play a web “celebrity” and buy technologies and social networks to make mashups and get venture capital. One of the board characters was Jeremy Keith so image the joy we had when Jeremy decided to play himself in the game.
I used this line to automatically add any new files to the repository. This was handy because often new files are created (e.g. attachments for posts in a blog), as you wouldn’t want to do this by hand every time.
This code doesn’t keep in mind deletes though. If you delete a plugin in your Wordpress, SVN will miss it and start complaining. Additionally the method above overwrites SVN:Ignore settings, which means you can’t ignore certain files (e.g. cache files that change constantly).
So instead I decided to come up with a new solution: see what files are new and what are removed, and perform “svn add” and “svn remove” actions on those files. I used a bit of code from this blog to come up with a fairly good solution.
And replace it with:
svnstatus=$(svn status)
added=$(printf "$svnstatus" | sed -n 's/^[A?] *\(.*\)/\1/p’)
removed=$(printf “$svnstatus” | sed -n ’s/^! *\(.*\)/\1/p’)
What this does is run the “svn status” command that will return a text output of all the modified files (starting with a ‘M’), added files (starting with a ‘?’) and deleted files (starting with a ‘!’). The next 2 lines do a regex to figure out the file names of the new and missing files.
Now add the following two pieces of code after the previous bit of code (and before the svn commit).
if [ "x$added" != "x" ]
then
echo adding “$added” to repository
svn add $added
fi
if [ "x$removed" != "x" ]
then
echo removing “$removed” to repository
svn remove $removed
fi
Both pieces of code use the previously regex calculated paramaters and sees if there are any files to be added or deleted. In then runs the “svn add X” and “svn add Y” commands to update the svn status. After this, a svn commit will include all new files and remove all old files from the repository. This does not remove the backup, so you always go back in time!
The “echo” commands used in these lines of code will show up on the command line, and if your cron job forwards output to an email address this can be used to check if the cron job is working correctly. If it becomes annoying, just remove them.
Since I wrote this article I added a followup article fixing a small problem with this script. Read the article below first though!
This tutorial is really most of all a reminder for me, and some of my friends who use Site5 hosting. It has a few flaws which I will get back to in the end. This site is intended for small sites, like Wordpress blogs, running on shared hosts. The main idea is this: backup all the data of your website daily, automatically, to an offsite location.
Step 1: Get Access to a Subversion Repository
The great thing about Subversion is that it offers incremental backups, allowing you to go back in time as far as you need to restore any problems you might run into. Assembla.com offers free subversion hosting (besides all the other things they offer), which is virtually unlimited. They do charge corporations, but with my current use (4 sites doing a daily backup) I haven’t had any problem with them contacting me or something.
Simply sign up and set up a “Space”. Ignore most of the settings but make sure to setup a Trac+Subversion package for your space. This will enable Trac support and subversion. Once the site is setup, go into the Trac/SVN tab and check the Subversion URL. It should be something like this:
I was having a very interesting talk with Ian and Glyn yesterday during dinner about the DataPortability workgroup. I can start explaining what the idea of data portability is, but I think that this next video explains way more. Let me just say that Google, Facebook and Plaxo recently joined for a good reason.