• Dropbox Chat

    Have you ever wondered how well Dropbox would work as a chat application? I did and I finally created a client for it. The concept of having Dropbox handle all the complicated server side stuff is very appealing and actually works quite wel.

    The use case I can imagine happening is that you want to share and store quick conversations you have with co-workers/friends while working on a project. Instead of navigating to Basecamp, emailing (which is less direct) or copy-pasting chat logs, you can just open the Dropbox chat client and have a short conversation. The chat log is right there in the same folder and the only thing you have to do to get it to work, is drop the application in the Dropbox project folder you’re working on.

    The experiment is really easy to setup. Just clone/download the repository on GitHub. Put the folder in your Dropbox folder and share the folder with your friends.

    To run the application open a terminal window and navigate to the folder you just shared. Like this for instance (don’t type the $ sign):

    $ cd ~/Dropbox/Projects/DropboxChat

    Now run the application.

    $ ruby chat.rb

    If it throws an error, this means it might need to install some additional libraries called gems.

    $ gem install [gem name]

    After it starts it’ll prompt you for a nickname, pick something original and that’s it. Just start typing .

    Dropbox chat

    Dropbox chat

  • Maintenance page while deploying with Capistrano

    I got tired pretty fast of staring at Passenger’s 500 errors while Capistrano and Rails are busy setting up a new release of a project.

    Of course other people got tired as well and came up with numerous fixes. The one I like best is where you first put up a maintenance page, deploy and after all went well, remove the maintenance page. Kind of like how Apple disables the store when they’re adding new stuff, but less flashy I suppose..

    It’s pretty easy to do this and I’m just going to provide two links that explain it very well. One for Apache and one for Nginx. They’re both very similar and you can easily pick either of the deploy.rb parts.

    That’s about it. It’s very easy to do and probably something a lot of people know already, but definitely something that’ll make you feel more comfortable while deploying.

  • Instalike

    We had a Saturday Night of Awesome this weekend and came up with the idea to create an iPhone and Android app that allows you to share images to Facebook very quickly. A few hours later both apps were done and the Android app is already live.

    The iPhone App will be released as soon as Apple approves it.



    With InstaLike you can ‘like’ everything you see, instantly!

    Just start the app, point your camera and shoot. The image will be uploaded to Facebook directly, for all your friends to see .

    InstaLike allows you to share your pictures as fast and easy as possible.

    Download it and let me know what you think!

  • Google Apps Script: TTResponds


    TTResponds is a Google Apps Script that allows you to automatically send a confirmation to people who’ve filled out a Google Form.

    It’s been available for a while in the Script Gallery, but I haven’t gotten around to write about it. The reason I’m doing so right now, is because I’ve received a couple of returning questions that I can probably better answer right here.


    First login to your Google Docs environment, and Google Apps both work fine. After that, choose to create a new Form.

    New form

    This will present you with a pop-up that allows you to customize the fields. For basis functionality it should at least contain a name field first and an email address second. After that you can add anything you want.

    Setup form

    Clicking save will send you to the Spreadsheet, setup to receive form submissions. The next step is to add TTResponds. You can do so by clicking ‘Tools’ and then ‘Script gallery…’.

    Script gallery

    Search for ‘TTResponds’ and click install.

    Find TTResponds

    Authorize the script to read your Spreadsheet and send out emails.


    A new menu item called ‘TTResponds’ just appeared. Click it and select ‘Create config’. This should add an extra sheet called ‘TTRespondsConfig’, you can change the properties to provide a more relevant response. After you’re done, make sure all ‘Triggers’ are setup correctly by clicking ‘Tools’ and after that ‘Script editor…’.

    Script editor

    In the pop-up select ‘Triggers’ and then ‘All your triggers…’.


    Make sure your setup looks like the image above. If it doesn’t, click ‘Add a new trigger’ and set it to ‘onFormSubmit’, ‘From spreadsheet’ and ‘On form submit’. That’s it! Fill out your own form and you’ll receive a confirmation automatically!

    HTML Email

    Per default the script sends text-only emails. You can change this to HTML email pretty easily (I’ll probably add it as an option in an update). First open the script editor again and navigate to line 119.

    HTML email

    You’ll see that is says:

    { name: _config.from }

    Change it to this:

    { name: _config.from, htmlBody: _config.body }

    The script will now send the confirmation as HTML, allowing you to send a fancier response .


    I’ve created a GitHub repo for TTResponds. If you’re adding features, or fixing bugs, please fork the project and send me a pull request.

    Let me know

    It would be awesome if you let me know if you use and/or like the script through the comments, thanks!

  • Omniauth + Facebook = OpenSSL::SSL::SSLError

    I’ve run into this issue twice and now I’m writing down the solution. When authenticating with Facebook via Omniauth, my server always fails with the following error:

    OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed):

    This is easily fixed by adding the following to one of the initializers:


    It’s probably not the best solution, as this turns off SSL peer verification..

    A better solution: