My File Sharing Setup (Linux)
Update: I have written a multi-purpose Ruby script to work with S3, Cloudapp and Imgur, and that’s what I use right now. Be sure to check it out.
There’s been a buzz around file-sharing sites for a while now- YCombinator’s KickSend receiving some funding, while Dropbox is growing as always. Somehow, I still feel the ideal file-sharing platform is missing. The closest app that has come to perfection is Cloudapp, but that’s only for Mac. However, they have an API and there are a couple of scripts to get it to work on Linux as well.
So, without further ado, here is my file sharing setup based on the scenario:
1. For small files (under 25 MB)
I use Cloudapp (free account) for this. Its a no-nonsense application that makes it really easy to share files. The native Mac client has this cool drag-and-drop interface on the desktop, and that is replicated for Linux to an extent by py-cloudapp. However, I spend most of my time in the command line, and I use my (forked) script cloudapp-rb. I’ve integrated a way to (g)mail the link of the uploaded file to someone, and it really takes the pain away from doing it in GMail’s web interface. So, to upload a file to cloudapp, and to send it to someone, I just have to press a few keystrokes:
ul file.txt classmate@domain.com
2. For securely transferring files (P2P)
Sendoid is the clear winner here. It has pretty generous filesize limit (I’ve successfully tested files of ~1 GB), 128-bit AES encryption, and you can even password protect your end-point URL. Also, it is P2P and the file is never stored on ther servers : it goes directly the sender’s machine to receiver’s.
The web interface is decent, but the AIR app is what makes this product awesome. The app is very clean, as you can see here:

3. For transferring big files
On more than one occasion, when not on my laptop, I’ve had to share source code with my classmates, which is usually an archive of size ~500MB. The Dropbox web-application fails here, as it has a 250 MB upload limit (if I’m not mistaken). That’s where Ge.tt comes to the rescue. It has no file-size upload limits that I am aware of. A free account gets you 2 GB of upload space, (3 GB if you were with them before the introduction of the pricing tiers). Get this: you can share the file permalink even before the file has finished uploading, and this is a great way to temporarily share files. You can group files into collections/folders of sorts and I wholeheartedly recommend this app!
4. Pseudo-Permanent File Sharing
Of course, there’s Dropbox, and I previously used it for sharing. But, I find it extremely inconvenient to copy the file in question to my Dropbox Public folder, and then copy the Public link. Hence, I shifted to cloudapp for sharing small files. However, there are some files that need to be shared for long time spans (and I need a backup of these files for personal use): That’s where Dropbox comes in. After putting the file in my Public folder, I can distribute the link and be sure that everybody can access it even months after it has been uploaded. Also, I can be sure it is synced across all my devices.
5. Expiring URLs and Command Line uploads
How can you forget the big-daddy of cloud storage: Amazon S3. I fail to understand why S3 has intimidated non-technical people. It’s web interface is super-easy to use, and the AWS free tier provides 5 GB of S3 storage - which is a steal even if you don’t use the plethora of other cloud services provided.
I use mishare, a script I wrote, which makes it really easy to upload files from the command line to S3.
# Upload file to S3 and email it to john@example.com , and the link should expire after 30 minutes
mishare ul -f file.txt -e john@example.com -t 1800
Twitter Share Bookmarklet's Secret (& Awesome) Feature
I just discovered something really cool about Twitter’s Share Bookmarklet, though I’m quite sure somebody would’ve noticed this before.
Yesterday I was reading a piece on Steve Jobs, and I decided to share it on Twitter. Keep in mind that it was a paginated article (split into 2 pages). Only after sharing it did I realized I was on the 2nd page of the article when I shared it, and the URL of that page was was:
www.nytimes.com/2011/10/07/opinion/the-man-who-inspired-jobs.html?pagewanted=2
Notice the end of the URL clearly saying pagewanted=2. However, when I checked my tweet, the URL that Twitter included had turned into:
www.nytimes.com/2011/10/07/opinion/the-man-who-inspired-jobs.html?pagewanted=all
I couldn’t believe it. I tried the Share bookmarklet on the page again, and sure enough, it was changing 2 to all. I then decided to experiment a little bit more - and see if this feature on other websites as well.
Here’s a list of pairs of URIs - the first URI is the actual page that was shared, and the 2nd URI is the ‘converted’ version - by Twitter’s apparently smart bookmarklet.
First up: Wired and GQ - which have a URL strucuture similar to that of NYTimes - they use a query string to specify pagination:
www.wired.com/wiredscience/2011/10/living-relics/?pid=2212 www.wired.com/wiredscience/2011/10/living-relics
www.gq.com/news-politics/big-issues/201109/dont-ask-dont-tell-gay-soldiers-military?currentPage=2
www.gq.com/news-politics/big-issues/201109/dont-ask-dont-tell-gay-soldiers-military
Next, Vanity Fair uses a fragment identifier:
www.vanityfair.com/business/features/2011/11/michael-lewis-201111#gotopage2 www.vanityfair.com/business/features/2011/11/michael-lewis-201111
And finally, Playboy and The Atlantic - which actually pass the page number as the last parameter in their URL:
www.playboy.com/magazine/playboy-interview-steve-jobs/2 www.playboy.com/magazine/playboy-interview-steve-jobs
www.theatlantic.com/magazine/archive/2011/07/the-brain-on-trial/8520/3/ www.theatlantic.com/magazine/archive/2011/07/the-brain-on-trial/8520
This seems more and more like specific use-cases added by Twitter to make their bookmarklet ‘smarter’. I’m not sure which CMSs the above sites run on, and it could be quite well be CMS-specific.
However, it did fail to do the magic on some websites:
Esquire passes the page number as a hyphenated value at the end of the URL-slug of the article.
www.esquire.com/features/william-petit-case-0611-4
NY Books, meanwhile, has a query string style page number, but it didn’t work.
www.nybooks.com/articles/archives/2011/aug/18/very-deep-america-friday-night-lights/?page=2
Sports Illustrated was an interesting case. The page number is the second-last parameter in the URL, with the last parameter being index.htm. I expected the bookmarklet to fail to work on this, and it did. It even failed when I removed the index.htm at the end.
sportsillustrated.cnn.com/vault/article/web/COM1061362/3/index.htm sportsillustrated.cnn.com/vault/article/web/COM1061362/3
I wonder if some Javascript Ninja could help out here, the Twitter Share Bookmarklet points to a share.js, that seems to do the magic.
Any thoughts? Tweet me @hardikr !
On Spotify
Spotify is an unbelievable service - it’s like having already purchased most songs in the world, and it looks great. It seems to be reducing piracy, and the premium plans look quite tempting. Everyone’s been raving about it for quite a while now, and it shouldn’t be long before it becomes the #1 music service used all over the world.
Anyhow, here are a few things I have to say regarding Spotify, that would be far from laudatory.
-
The requirement to have a Facebook login to create a new account is ridiculous. It’s probably driving away potential customers. Sure, Spotify may have been ‘forced’ to do it, but that really is no excuse.
-
Spotify should really cater to the Linux world too. Their Linux beta is only for paying customers, and non-paying customers have to rely on the Windows version to run on wine. A recent update to Spotify causes it to crash on startup. The fix for this issue ? When Spotify starts, you have to be fast enough to close the Facebook tab on the right, because that’s causing the crash. No problem if you were a Counter Strike sharpshooter (like me :)), but otherwise, keep trying. Many people will say that free users shouldn’t complain of a lack of functionality - but come on, this is broken. There should at least be a plain vanilla app that runs on Linux.
-
Spotify ads. This one’s really been bugging the OCD-hell out of me. I’m fine with ads, but Spotify often plays ads for the exact playlist/artist I’m listening to at that moment. Sure, they may not have those many ads, but playing ads just for the heck of it? I don’t know. It’s a waste of money for advertisers, because their target audience is already using their product. I realize that I may have found the playlist as a result of listening to the ad sometime in the past, but what use is that ad to me now apart from interrupting my listening the very same playlist that they’re advertising about? It’s like you’ve bought a car, and then a salesman drags you out of your car every 5 minutes to pitch you about the exact same car you’re driving. It’s maddening. I’m sure it’s not that difficult to ‘whitelist’ on a realtime basis, the listeners that shouldn’t be served this advertisement. Why not play a different advertisement ? Or reward the listeners by not playing the advertisement once, because they’ve presumably clicked through and are listening to the targeted playlist/artist.
Learn Kannada, Get Rich!
So, learning Kannada has been made mandatory if you want to work in Bangalore. Within a year from now, every non-Kannadiga (aka expatriate, alien) living in Karnataka has to clear the Std. VII Kannada exam.
The rationale provided behind this, by MLC ‘Mukhyamantri’ Chandu, head of the Kannada Development Authority (KDA), is this:
“With several IT companies and MNCs coming to Karnataka, lakhs of non-Kannadigas have settled in the state. If they could live with the land, water, air and other resources of the land, they should also understand the culture, history and language of the land.
Wasn’t that just cute? He buried language between culture, history and land; making it seem like a patriotic issue. So, you’re not Indian enough if you don’t pass the Std. VII local language exam. Over 35% of the 52 million people (2001 census) living in Karnataka are not frikking Kannadiga enough for the KDA.
This is not about culture, language or history. It was enough that we were made to memorise the innumerable volcanoes, rivers, mountain ranges and other spectacular geographical features of India, along with the mighty rulers who ruled different parts of India during different periods of time. Don’t get me wrong, I’m a sucker for history. But one thing I’m not a fan of ? Forcing people to do things.
It’s unfair to make an adult drop everything he’s doing and learn a language. And I think I speak for most North Indians when I say this: South Indian languages look, sound and feel the same ! They’re just squiggly ants going around in random paths.
Many people (mostly Kannadigas) have commented : “Get a grip. It’s just a Std. VII exam”. But wait, it’s not that simple. I believe children are some of the quickest learners around - especially at picking up languages. So, in one year, an adult (who’s also working full-time), has to match the Kannada skills of a kid who’s been learning it for over 12 years? You’ve got to be kidding me.
Also, can you imagine the excruciating pain of being forced to learn a new language? Don’t get me wrong but I’m better off knowing just Hindi and English. Another form of commentary on this story that has been disturbing, “Oooh you go and learn French and Spanish. But when we ask you to learn Kannada you’re cribbing. You anti-Indian hypocrites. Go Die.” Wait, first of all - I might want to learn French. Second of all , you can’t force me to learn something I don’t want to - especially squigglies!
Also, what about people with learning disabilities? Will they be forced to clear the examination within a year, or will they be given more time? What about SC/ST - do they have a quota ? What about foreigners who reside in Bangalore ? What about old people? Implementing a legislation like this brings so much fear, uncertainty and doubt (FUD) along with it. Why are these people trying so hard to save Kannada, and trying to save it from what? Extinction? As someone noted on Twitter, “Let Kannada find its (own) saviors.”. We had enough of moral and cultural policing. We’re now entering a new phase - one with linguistic policing.
To wrap it up, let’s take a moment, sit back and think, what is this piece of legislation going to achieve? 10 years down the line we’re going to have a bunch of people who know half-baked Kannada.
Learn to think beyond the IITs, IIMs and IIPMs! Learn Kannada, go to Silicon Valley of India and Get Rich or Die Tryin’!
A Simple Twitter DM Enhancement
One of the most irritating things I find about Twitter is interacting privately with people who don’t follow me. Twitter presumes that people who know each other follow each other - which is quite often the case. However, on many occasions, I receive DMs from people I follow, and who don’t follow me back, and I need to relay private information to them.
So, what do I do? Do I try finding out their e-mail address ? Do I scour the interwebs for their presence on other social networking websites? Do I ask them to follow me?
Instead, what if I’m allowed one DM as a reply to a DM I receive from that person? Surely I can’t be spamming because it’s a reply to a DM I received. This feature will increase the usability of Twitter DMs, while not contributing to the increasing spam on Twitter.
