<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>Jonatan Heyman's Blog</title><link>http://heyman.info/</link><description>heyman.info posts feed.</description><language>en-us</language><lastBuildDate>Thu, 09 Apr 2015 15:36:12 +0100</lastBuildDate><item><title>Releasing Bed &amp;amp; Breakfast websites</title><link>http://heyman.info/2015/apr/9/releasing-bed-and-breakfast-websites/</link><description>
&lt;p&gt;&lt;img src="http://static.boutiquehotel.me/img/og-image-bnb.jpg" style="width:100%;"&gt;&lt;/p&gt;
&lt;p&gt;This week, me and &lt;a href="http://www.tedvalentin.com/"&gt;Ted Valentin&lt;/a&gt; released a couple of new websites for finding nice &lt;a href="http://bedbreakfast-london.com/"&gt;Bed &amp;amp; Breakfasts&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We currently have websites that covers B&amp;amp;Bs in cities like &lt;a href="http://amsterdam-bedbreakfast.com/"&gt;Amsterdam&lt;/a&gt;, &lt;a href="http://bedandbreakfast-capetown.com"&gt;Cape town&lt;/a&gt;, &lt;a href="http://bedandbreakfast-dublin.com/"&gt;Dublin&lt;/a&gt;, &lt;a href="http://bedandbreakfast-gotland.com/"&gt;Gotland&lt;/a&gt;, &lt;a href="http://bedandbreakfast-newyork.com/"&gt;New York&lt;/a&gt;, &lt;a href="http://bedbreakfast-brighton.com/"&gt;Brighton&lt;/a&gt;, &lt;a href="http://bedbreakfast-london.com/"&gt;London&lt;/a&gt;, and &lt;a href="http://bedbreakfast-paris.com/"&gt;Paris&lt;/a&gt;. We're planning to release more places in the future.&lt;/p&gt;
&lt;p&gt;Ted has written more about the sites, in swedish, &lt;a href="http://www.tedvalentin.com/2015/04/hitta-fina-bed-and-breakfasts-runt-om-i.html"&gt;on his blog&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Thu, 09 Apr 2015 15:36:12 +0100</pubDate><guid>http://heyman.info/2015/apr/9/releasing-bed-and-breakfast-websites/</guid></item><item><title>Show number of requests made by different IPs, by analysing nginx log</title><link>http://heyman.info/2015/mar/10/requests-made-by-different-ips-from-nginx-log/</link><description>
&lt;p&gt;Here's a small command that uses &lt;em&gt;awk&lt;/em&gt;, &lt;em&gt;sort&lt;/em&gt; and &lt;em&gt;uniq&lt;/em&gt; to see the number of requests made to an nginx server, aggregated by IP, and sorted by the number of requests made.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:::
tail -n 300000 /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -n
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Can be useful to see who is crawling your website. The tail's -n parameter specifies how many of the last rows to look at, and can of course be tweaked. &lt;/p&gt;</description><pubDate>Tue, 10 Mar 2015 15:30:41 +0100</pubDate><guid>http://heyman.info/2015/mar/10/requests-made-by-different-ips-from-nginx-log/</guid></item><item><title>Get personalised event recommendations using Heyevent.com</title><link>http://heyman.info/2014/dec/15/personalised-event-recommendations-from-heyevent/</link><description>
&lt;p&gt;Recently I released Hejevent.se, a swedish website for finding local events, which I also &lt;a href="http://heyman.info/2014/dec/2/hejevent-new-website-for-finding-events/"&gt;blogged about&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Today, I'm very happy to announce that I'm releasing two new websites. First, &lt;a href="http://heyevent.com"&gt;Heyevent.com&lt;/a&gt; which is now available for anyone in the whole world who wants to get recommendations on interesting local events. I'm also releasing &lt;a href="http://heyevent.de"&gt;Heyevent.de&lt;/a&gt;, which should be the ultimate event guide for Germany.&lt;/p&gt;
&lt;p&gt;As I wrote in my previous blog post, I use &lt;a href="http://en.wikipedia.org/wiki/Collaborative_filtering"&gt;collaborative filtering&lt;/a&gt; to calculate recommendations based on events that the user has attended before. Here's an overview of the features that Heyevent provide:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Recommendations&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;At the core of the service are personalised recommendations. Heyevent is using a collaborative filtering algorithm to calculate recommendations based on the events a user has attended before.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://s3-eu-west-1.amazonaws.com/heyman.info/screenshots/heyevent-recommendations.jpg" width="300" style="border:1px solid #777;"&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Weekly e-mail updates&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;A user can subscribe to get weekly updates with personal recommendations of the most interesting events in the upcoming week.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Find out what's happening in your city or neighbourhood&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Anyone (both members and non-members) can check out everything that's happening in a certain place. For example, check out upcoming events in &lt;a href="http://heyevent.com/stockholm"&gt;Stockholm&lt;/a&gt;, &lt;a href="http://heyevent.com/new-york"&gt;New York&lt;/a&gt;, &lt;a href="http://heyevent.com/london"&gt;London&lt;/a&gt;, &lt;a href="http://heyevent.com/oslo"&gt;Oslo&lt;/a&gt;, &lt;a href="http://heyevent.com/brooklyn"&gt;Brooklyn&lt;/a&gt; or perhaps &lt;a href="http://heyevent.com/mitte"&gt;Mitte, Berlin&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Similar events&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;In addition to provide recommendations, for each event, my recommendation algorithm also calculates events that are similar. The similar events are shown on each event page below the description, and it's actually a quite nice way to discover interesting events as well (in addition to the recommendations).&lt;/p&gt;
&lt;p&gt;&lt;img src="https://s3-eu-west-1.amazonaws.com/heyman.info/screenshots/heyevent-similar.jpg" width="300" style="border:1px solid #777;"&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Liking events&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Users can "Like" events on Heyevent in order to teach the system what stuff they're into, in order to further improve the recommendations. Events that are liked are also collected under the "My Events" page.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://s3-eu-west-1.amazonaws.com/heyman.info/screenshots/heyevent-like.png" style="border:1px solid #777;"&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Search for events&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Heyevent also provides the ability to search for upcoming, as well as past, events. One can search in both titles and description texts.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Please go ahead and try out the service :). I'd love to hear what you think!&lt;/b&gt;&lt;/p&gt;</description><pubDate>Mon, 15 Dec 2014 20:15:55 +0100</pubDate><guid>http://heyman.info/2014/dec/15/personalised-event-recommendations-from-heyevent/</guid></item><item><title>Hejevent.se - New website for finding events (in Swedish)</title><link>http://heyman.info/2014/dec/2/hejevent-new-website-for-finding-events/</link><description>
&lt;p&gt;&lt;img src="https://s3-eu-west-1.amazonaws.com/heyman.info/screenshots/hejevent-screenshot.png"&gt;&lt;/p&gt;
&lt;p&gt;About a week ago, I released a new website called &lt;a href="http://hejevent.se"&gt;Hejevent.se&lt;/a&gt;. It's a website that helps you discover &lt;b&gt;events&lt;/b&gt;. &lt;/p&gt;
&lt;p&gt;Hejevent builds on top of Facebook events, which is nice since so many public events already exist on Facebook, it means that I already have the most comprehensive guide to events in Sweden.&lt;/p&gt;
&lt;p&gt;However, the real power from basing the site on top of Facebook data comes from the ability to recommend events in the future, based on what events you have been to in the past. I've spent a large part of the development time to program and fine-tune a recommendation algorithm, using collaborative filtering, to calculate great personal event recommendations for Hejevent's users. I'm very pleased with the high quality of the recommendations, which actually turned out even better than I thought from the beginning.&lt;/p&gt;
&lt;p&gt;The site is built using Python, Django and Celery. As data store I use PostgreSQL, Redis as Celery backend, and Memcached for caching.&lt;/p&gt;
&lt;p&gt;For my swedish readers, I encourage you to go to &lt;a href="http://hejevent.se"&gt;Hejevent.se&lt;/a&gt; and sign in using Facebook to see your recommendations (or if you don't use Facebook you could also check out the public pages for &lt;a href="http://hejevent.se/stockholm"&gt;evenemang Stockholm&lt;/a&gt;, &lt;a href="http://hejevent.se/goteborg"&gt;evenemang Göteborg&lt;/a&gt;, &lt;a href="http://hejevent.se/malmo"&gt;evenemang Malmö&lt;/a&gt;, &lt;a href="http://hejevent.se/uppsala"&gt;evenemang Uppsala&lt;/a&gt; or some other city).&lt;/p&gt;
&lt;p&gt;For non swedish readers, I hope to be able to release an international version (in english) of the site before the end of the year!&lt;/p&gt;</description><pubDate>Tue, 02 Dec 2014 12:39:15 +0100</pubDate><guid>http://heyman.info/2014/dec/2/hejevent-new-website-for-finding-events/</guid></item><item><title>Speed read things with Heyread.it</title><link>http://heyman.info/2014/may/28/speed-read-things-with-heyreadit/</link><description>
&lt;p&gt;&lt;img src="https://s3-eu-west-1.amazonaws.com/heyman.info/screenshots/heyreadit-phone-wide.jpg" style="width:100%;"&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;TLDR&lt;/b&gt;: &lt;a href="http://heyread.it" class="heyreadit-btn"&gt;Speed read this&lt;/a&gt;&lt;script&gt;(function() {var s=document.createElement("script");s.type="text/javascript";s.src="http://heyread.it/button";s.async=true;var o=document.getElementsByTagName("script")[0];o.parentNode.insertBefore(s,o);})();&lt;/script&gt;&lt;/p&gt;
&lt;p&gt;Last month, I was at &lt;a href="http://hackaway.com"&gt;Hackaway #1&lt;/a&gt; - an amazing Hackathon at a secret location, which ended up being a lovely island in the Stockholm archipelago. &lt;/p&gt;
&lt;p&gt;At this hackathon, I built &lt;a href="http://heyread.it"&gt;Heyread.it&lt;/a&gt; - a tool for speed reading. It works by displaying the words serially, one word at a time, at the same position. When reading a text normally, for every word, there's a short moment when your eyes are seeking for a certain position, while your brain is not processing words from the sentence. The technique Heyread.it uses removes this overhead.&lt;/p&gt;
&lt;p&gt;At the moment, Heyread.it is a &lt;a href="http://en.wikipedia.org/wiki/Bookmarklet"&gt;Bookmarklet&lt;/a&gt;, as well as a button plugin that let's you add Speed read buttons to your own website, like the one you see at the top of this post.&lt;/p&gt;
&lt;p&gt;Heyread.it should work well on any modern device.&lt;/p&gt;</description><pubDate>Wed, 28 May 2014 10:32:28 +0100</pubDate><guid>http://heyman.info/2014/may/28/speed-read-things-with-heyreadit/</guid></item><item><title>My year in review 2013</title><link>http://heyman.info/2014/feb/13/my-year-in-review-2013/</link><description>
&lt;p&gt;Unfortunately I don't blog every time I release a new website or open source project, even though I should. I'm going to try to be better at that, and also I thought I'd do a late new year's recap of (computer related) things I did in 2013. &lt;/p&gt;
&lt;h2&gt;Websites&lt;/h2&gt;
&lt;h3&gt;What is my ZIP&lt;/h3&gt;
&lt;p&gt;&lt;img src="http://www.whatismyzip.com/static/img/og-screenshot.jpg" style="float:right; width:100px; height:100px; margin-left:10px;"&gt;&lt;/p&gt;
&lt;p&gt;In the beginning of last year I &lt;a href="http://heyman.info/2013/jan/23/releasing-whatismyzipcom/"&gt;released&lt;/a&gt; &lt;a href="http://www.whatismyzip.com"&gt;What is my ZIP?&lt;/a&gt; - a small hack for displaying the ZIP/postal code of your current location. Later in May, I also added functionality for finding the ZIP codes for arbitrary addresses.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;h3&gt;Roni&lt;/h3&gt;
&lt;p&gt;&lt;img src="http://static.ronigame.com/img/facebook/board.png" style="float:right; width:100px; height:100px; margin-left:10px;"&gt;&lt;/p&gt;
&lt;p&gt;During 2012 I had been working extremely hard on our previous startup, &lt;a href="http://tripbirds.com"&gt;Tripbirds&lt;/a&gt;. Therefore, when &lt;a href="http://kajic.com"&gt;Robert&lt;/a&gt; asked me if I wanted to make an iPhone game with him and &lt;a href="http://www.burbas.se/"&gt;Niclas&lt;/a&gt;, it felt like a nice relief to work on something just for the fun of it. Our only goal was to make a game that would be fun, and that we would enjoy to play ourselves.&lt;/p&gt;
&lt;p&gt;The result was &lt;a href="http://ronigame.com"&gt;Roni&lt;/a&gt;. A swedish word game which we released in March. In terms of users (~1800) or income it hasn't been very successful (it has barely covered Apple's developer license fee). However, our goal wasn't to make money, but to create a fun game, and I really think we've succeeded with that. As evidence to that, almost 100k game rounds has been played. That's &amp;gt;50 game rounds per user!&lt;/p&gt;
&lt;p&gt;While talking about apps, I want to mention &lt;a href="http://appmagasinet.se/"&gt;Appmagasinet&lt;/a&gt;. A weekly newsletter (in swedish) about apps by &lt;a href="http://tdh.me"&gt;TDH&lt;/a&gt;. &lt;/p&gt;
&lt;h3&gt;Longitude.me&lt;/h3&gt;
&lt;p&gt;&lt;img src="http://static.longitude.me/img/opengraph-image.jpg" style="float:right; width:100px; height:100px; margin-left:10px;"&gt;&lt;/p&gt;
&lt;p&gt;In July I &lt;a href="http://heyman.info/2013/jul/9/share-your-current-location-using-longitude/"&gt;released&lt;/a&gt; &lt;a href="http://longitude.me"&gt;Longitude.me&lt;/a&gt;. It's a website for sharing your current position with others live on a map. The typical use-case is if you're meeting someone down town and want to share your position with her or him (or them). Then you just create a new &lt;a href="http://longitude.me"&gt;Longitude.me&lt;/a&gt; link, and send them the URL. Another use-case could be if you are going on a road trip with multiple cars, and want to keep track where the others are. One of the big USPs with Longitude.me, is that it works for anyone with a smartphone, with no need to install some app.&lt;/p&gt;
&lt;h3&gt;Boutiquehotel.me&lt;/h3&gt;
&lt;p&gt;&lt;img src="http://static.boutiquehotel.me/img/og-screenshot.jpg" style="float:right; width:100px; height:100px; margin-left:10px;"&gt;&lt;/p&gt;
&lt;p&gt;During the summer and beginning of the autumn, I developed and designed &lt;a href="http://boutiquehotel.me"&gt;Boutiquehotel.me&lt;/a&gt; together with &lt;a href="http://tedvalentin.com"&gt;Ted&lt;/a&gt;, which we &lt;a href="http://heyman.info/2013/oct/23/releasing-boutiquehotel-me/"&gt;released&lt;/a&gt; in October. It's a website for people who want to find the &lt;a href="http://boutiquehotel.me"&gt;best boutique hotels&lt;/a&gt; in the world. For example, check out &lt;a href="http://boutiquehotels-newyork.com/"&gt;New York boutique hotels&lt;/a&gt;, &lt;a href="http://boutiquehotel.me/stockholm/"&gt;Stockholm boutique hotels&lt;/a&gt;, &lt;a href="http://boutiquehotels-berlin.com/"&gt;Berlin boutique hotels&lt;/a&gt;, &lt;a href="http://boutiquehotels-capetown.com"&gt;Cape Town boutique hotels&lt;/a&gt; or &lt;a href="http://boutiquehotels-paris.com/"&gt;Paris boutique hotels&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Postnummer.me&lt;/h3&gt;
&lt;p&gt;&lt;img src="http://postnummer.me/static/sweden/img/og-screenshot.png" style="float:right; width:100px; height:100px; margin-left:10px;"&gt;&lt;/p&gt;
&lt;p&gt;At the end of summer I released a swedish version of &lt;a href="http://www.whatismyzip.com"&gt;What is my ZIP&lt;/a&gt; called &lt;a href="http://postnummer.me"&gt;Postnummer&lt;/a&gt;.me. It has the same functionality, but it's in swedish and has another (perhaps better looking?) design. While I was at it, I also made a site for seeing your &lt;a href="http://whataltitude.com"&gt;current altitude&lt;/a&gt; as well as a ZIP code site for &lt;a href="http://canadapostalcode.net/"&gt;Canada postal codes&lt;/a&gt; :).&lt;/p&gt;
&lt;h3&gt;Sexismdetector.com&lt;/h3&gt;
&lt;p&gt;I participated in the awesome art hackathon, &lt;a href="http://www.arthackday.net/"&gt;Art Hack Day&lt;/a&gt; Stockholm, where me and &lt;a href="http://friendlybit.com/"&gt;Emil&lt;/a&gt; created &lt;a href="http://sexismdetector.com"&gt;Sexism Detector&lt;/a&gt;. We let users sign in with their Facebook account, and we retrieve all comments made on their - and their friends - profile photos. Then we analyze the words that are used in these comments and display the words that are the most disproportionally used to comment photos of women compared to men, and vice verse. The result is unfortunately quite sad, but not that surprising.&lt;/p&gt;
&lt;h2&gt;Open Source projects&lt;/h2&gt;
&lt;h3&gt;Leaflet UserMarker &amp;amp; GeolocationThrottle&lt;/h3&gt;
&lt;p&gt;While making Longitude.me, I developed two small JS libraries that I've open sourced. The first one is &lt;a href="https://github.com/heyman/leaflet-usermarker"&gt;Leaflet UserMarker&lt;/a&gt; - a &lt;a href="http://leafletjs.com"&gt;Leaflet&lt;/a&gt; plugin for displaying user markers on a map. The second one is &lt;a href="https://github.com/heyman/geolocation-throttle"&gt;GeolocationThrottle&lt;/a&gt; - it solves the problem of throttling the number of callbacks that one gets from the HTML5's &lt;a href="http://dev.w3.org/geo/api/spec-source.html#watch-position"&gt;navigator.geolocation.watchPosition function&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;jQuery Draggable Touch&lt;/h3&gt;
&lt;p&gt;While developing Roni, we realized that there were no good jQuery (or pure JS) libs for making elements draggable, that had touch devices as it's main target (with support for multitouch, etc). Therefore I created &lt;a href="https://github.com/heyman/jquery-draggable-touch"&gt;jQuery Draggable Touch&lt;/a&gt; which solves this problem.&lt;/p&gt;
&lt;h3&gt;Locust&lt;/h3&gt;
&lt;div style="background:#222; padding:10px; border-radius:5px;"&gt;&lt;img src="http://locust.io/static/img/logo.png"&gt;&lt;/div&gt;

&lt;p&gt;I also did quite a lot of work on my biggest open source project, &lt;a href="http://locust.io"&gt;Locust&lt;/a&gt;. It's a load testing tool where you define your load tests in simple Python code, and then it lets you spawn millions of users generating load against your target system. We originally developed it to load test &lt;a href="http://battlelog.battlefield.com"&gt;Battlelog&lt;/a&gt;, and it's been used for the stress testing of both Battlefield 3 and Battlefield 4, so one can definitely say it's been "battle tested" ;). I very recently pushed out version 0.7.&lt;/p&gt;
&lt;h2&gt;Consulting&lt;/h2&gt;
&lt;p&gt;I also did some consulting last year. Most of the consulting I did for &lt;a href="http://dice.se/"&gt;DICE/EA&lt;/a&gt;, where I worked on &lt;a href="http://battlelog.battlefield.com"&gt;Battlelog&lt;/a&gt; and &lt;a href="http://www.battlefield.com/battlefield-4"&gt;Battlefield 4&lt;/a&gt;. I also did some work at &lt;a href="http://www.hyperisland.com/"&gt;Hyper Island&lt;/a&gt; where I made a &lt;a href="http://www.createforchange.cc/"&gt;conference website&lt;/a&gt; together with &lt;a href="https://twitter.com/trondhatlen"&gt;Trond Fröding&lt;/a&gt;, as well as some work on their main website.&lt;/p&gt;
&lt;h2&gt;Other peoples' projects&lt;/h2&gt;
&lt;p&gt;So now I've listed most of the computer related projects I did last year, but I would also like to mention a few projects of some other fellow swedish programmers/web people.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://twitter.com/martinaelm"&gt;Martina Elm&lt;/a&gt;, &lt;a href="http://jonnystromberg.com"&gt;Jonny Strömberg&lt;/a&gt; and &lt;a href="http://edelst.am/"&gt;Johannes Edelstam&lt;/a&gt;, who also are "Knackerists", have started their startup &lt;a href="http://getconfetti.com/"&gt;Confetti&lt;/a&gt;. They're building a great tool for event and conference organizers. They're also solving their own problem, since they are arranging the very promising conference &lt;a href="http://nordicjs.com"&gt;Nordic JS&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://tedvalentin.com"&gt;Ted Valentin&lt;/a&gt;, who has started Knackeriet, and who is my co-founder for boutiquehotel.me, has started a bunch of swedish sites like &lt;a href="http://popularamuseer.se"&gt;Populära Museer&lt;/a&gt;, &lt;a href="http://popularabarer.se"&gt;Populära Barer&lt;/a&gt;, and more.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://utvbloggen.se"&gt;Jonas Lejon&lt;/a&gt; has started the swedish site, &lt;a href="http://hittarabatt.se/"&gt;hitta rabatt&lt;/a&gt; for finding discount codes.&lt;/p&gt;
&lt;p&gt;&lt;a href="fyranyanser.se"&gt;Anton Johansson&lt;/a&gt;, the creator of &lt;a href="http://headler.se"&gt;Headler&lt;/a&gt; seems to have two exciting projects in the pipeline. &lt;a href="http://www.osomlaundry.com/"&gt;Osom Laundry&lt;/a&gt; seems to be some kind of modern Laundry service, and &lt;a href="http://alltid.se"&gt;Alltid.se&lt;/a&gt; is some secret project which I hope we'll hear more about soon.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://palander.se"&gt;Petter Palander&lt;/a&gt; is doing a lot for the startup scene in Malmö with his &lt;a href="http://malmostartups.com"&gt;Malmö Startups&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://susannejarl.se"&gt;Susanne Jarl&lt;/a&gt; is running a swedish recipe website, &lt;a href="http://recepten.se"&gt;Recepten.se&lt;/a&gt;, which is getting an impressive amount of traffic of 200k visitors/week.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://whatsnext.se"&gt;Tomas Wennström&lt;/a&gt;, who is one of the founders of the great unconference &lt;a href="http://www.swedensocialwebcamp.com/"&gt;Sweden Social Web Camp&lt;/a&gt; has a cool website with super local weather forecasts for sweden at &lt;a href="http://www.vackertvader.se"&gt;Vackertvader.se&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://javahacker.com/"&gt;Peter Jaric&lt;/a&gt; did a cool hack, which is a browser game that only uses the JavaScript &lt;em&gt;alert()&lt;/em&gt;, &lt;em&gt;confirm()&lt;/em&gt; and &lt;em&gt;prompt()&lt;/em&gt; functions. It's called &lt;a href="http://javahacker.com/acp/demo.html"&gt;Agessa's World&lt;/a&gt; and you should try it :).&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Update (2016-09-06):&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;You should also check out &lt;a href="https://twitter.com/razola"&gt;Sebastian Razola's&lt;/a&gt; new project &lt;a href="https://wherefoodieseat.com"&gt;Where Foodies Eat&lt;/a&gt;. It's a service for finding restaurants and other food places, and it actually beats both Foursquare and Yelp when it comes to finding great places. It's currently launched in &lt;a href="https://wherefoodieseat.com/new-york"&gt;New York&lt;/a&gt;, &lt;a href="https://wherefoodieseat.com/san-francisco"&gt;San Francisco&lt;/a&gt; and &lt;a href="https://wherefoodieseat.com/los-angeles"&gt;Los Angeles&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Predictions for 2014&lt;/h2&gt;
&lt;p&gt;I always think it's fun to read people's next year (tech) predictions, and I thought I'd come with one myself. I believe the adoption of &lt;a href="http://docker.io/"&gt;Docker&lt;/a&gt; - an incredibly useful tool for running applications in small linux containers - will explode. There are already many exciting projects building on Docker like &lt;a href="http://runnable.com"&gt;Runnable&lt;/a&gt; and &lt;a href="https://circleci.com/"&gt;Circle CI&lt;/a&gt;. Personally, I hope that &lt;a href="http://flynn.io"&gt;Flynn&lt;/a&gt; will come and solve all my deployment problems forever :).&lt;/p&gt;</description><pubDate>Thu, 13 Feb 2014 17:05:36 +0100</pubDate><guid>http://heyman.info/2014/feb/13/my-year-in-review-2013/</guid></item><item><title>Releasing BoutiqueHotel.me</title><link>http://heyman.info/2013/oct/23/releasing-boutiquehotel-me/</link><description>
&lt;p&gt;Last week, me and &lt;a href="http://www.tedvalentin.com/"&gt;Ted Valentin&lt;/a&gt; released our new website, &lt;a href="http://boutiquehotel.me"&gt;BoutiqueHotel.me&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;&lt;img src="http://static.boutiquehotel.me/img/og-screenshot.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Boutique hotels are, for those who don't know, (usually quite small) hotels with thought-through concepts and unique attributes. You can for example check out &lt;a href="http://boutiquehotel.me/stockholm/"&gt;boutique hotels in Stockholm&lt;/a&gt; or in &lt;a href="http://boutiquehotels-capetown.com/"&gt;Cape Town&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The site's tech stack is Python + Django &amp;amp; Celery, PostgreSQL with PostGIS as database, memcached for caching and Redis as Celery's backend/broker. All maps on the website are powered by wonderful &lt;a href="http://leafletjs.com/"&gt;Leaflet&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Hopefully, I will be be open sourcing some of the website's code through some JS/Python libs. For example our image viewer which calculates how to distribute the images to create a &lt;a href="http://boutiquehotel.me/hotel/276439/photos/"&gt;perfectly balanced photo album&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://boutiquehotel.me/hotel/398607/photos/"&gt;&lt;img src="https://s3-eu-west-1.amazonaws.com/heyman.info/screenshots/boutiquehotel-photo-viewer.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I've realised that there are a lot of really nice hotels, and my current favorite is probably &lt;a href="http://boutiquehotel.me/hotel/276439"&gt;Treehotel&lt;/a&gt; in Harads quite far up north in Sweden.&lt;/p&gt;
&lt;p&gt;Our aim with this site is to have the largest collection of the world's boutique hotels, and to give a far better experience when searching for boutique hotels than any other site out there. For this reason, we've started with just releasing the site for Sweden, and Swedish boutique hotels, but in the upcoming weeks we will roll out more countries.&lt;/p&gt;</description><pubDate>Wed, 23 Oct 2013 11:30:02 +0100</pubDate><guid>http://heyman.info/2013/oct/23/releasing-boutiquehotel-me/</guid></item><item><title>My flask entry point file that uses docopt</title><link>http://heyman.info/2013/sep/17/my-flask-entry-point-file-that-uses-docopt/</link><description>
&lt;p&gt;I've been using &lt;a href="http://docopt.org/"&gt;Docopt&lt;/a&gt; - a neat library that lets you define command line arguments in a good looking, human readable docstring - in the entry point file of some of my &lt;a href="http://flask.pocoo.org/"&gt;Flask&lt;/a&gt; projects lately, and I thought I should share it.&lt;/p&gt;
&lt;p&gt;It's nothing super fancy, but useful in development as it allows me to optionally specify the interface and port of the server. Here's the entry point file I use for &lt;a href="http://www.whatismyzip.com"&gt;What is my ZIP?&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:::python
"""
Whatismyzip.com Website

Usage:
  web.py
  web.py &amp;lt;interface:port&amp;gt;
  web.py -h | --help

Options:
  -h --help    Show this help
"""

import re

from docopt import docopt
from raven.contrib.flask import Sentry

from whatzip import app


if __name__ == '__main__':
    # try to parse host and port, to listen to, from command line
    arguments = docopt(__doc__, help=True)
    listen_to = arguments.get("&amp;lt;interface:port&amp;gt;")
    app_kwargs = {}
    if listen_to:
        matches = re.match("([0-9A-z.-]+):(\d{1,5})", listen_to)
        if matches:
            app_kwargs["host"] = matches.group(1)
            app_kwargs["port"] = int(matches.group(2))

    # run app
    app.run(debug=True, **app_kwargs)
else:
    sentry = Sentry(app)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then I can start the development server using either:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:::
python web.py 0.0.0.0:8080
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;or, if I'm happy with the default interface and port, I can do:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:::
python web.py
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And in production I run it through &lt;a href="http://gunicorn.org/"&gt;gunicorn&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;:::
gunicorn -b 0.0.0.0:$PORT -k gevent web:app
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The final &lt;i&gt;Sentry(app)&lt;/i&gt; row under the &lt;i&gt;else:&lt;/i&gt; is there to set up &lt;a href="https://getsentry.com/"&gt;Sentry&lt;/a&gt; logging for the app, and that whole else clause can be skipped if you don't want Sentry logging in production.&lt;/p&gt;
&lt;p&gt;Hopefully this can be useful to someone else :).&lt;/p&gt;</description><pubDate>Tue, 17 Sep 2013 10:48:33 +0100</pubDate><guid>http://heyman.info/2013/sep/17/my-flask-entry-point-file-that-uses-docopt/</guid></item><item><title>Share your current location using Longitude.me</title><link>http://heyman.info/2013/jul/9/share-your-current-location-using-longitude/</link><description>
&lt;p&gt;&lt;img src="http://static.longitude.me/img/opengraph-image.jpg" width="500" height="500" alt="Longitude.me"&gt;&lt;/p&gt;
&lt;p&gt;Today I'm releasing a new website, called &lt;a href="http://longitude.me"&gt;longitude.me&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;With it, you can create "longitude links" which you can share with people in order to see each others current geographic position. The visitors' positions are updated live in real-time while you're looking at the page.&lt;/p&gt;
&lt;p&gt;So if you're meeting up with someone downtown, in the park, or anywhere else, and you need to know their location (or want to share yours), just send them a Longitude link! Or maybe you're going on a road-trip with more than one car, and you want to be able to see where the others are? Use longitude.me to &lt;a href="http://longitude.me"&gt;share your location&lt;/a&gt; :)!&lt;/p&gt;
&lt;p&gt;Since it's just a website (and no need to download some clunky app) and should work on any smartphone, it's super easy to just send a link to your friends whenever you need to see each others position.&lt;/p&gt;
&lt;p&gt;I've been using the site with my friends for a while, and found it really useful, but I'd love to get more feedback  on it! You can comment on the blog, send me e-mail at &lt;i&gt;my-first-name@this-domain&lt;/i&gt;, or &lt;a href="http://twitter.com/jonatanheyman"&gt;tweet me&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I should also add that I've tested out the site quite extensively using iOS where it should work fine, but unfortunately I haven't had the opportunity to use it much on Android. Therefore, there could be some Android-related bugs that I'll need to grind out.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:18px;"&gt;Try it out yourself! Go &lt;a href="http://longitude.me/"&gt;share your location&lt;/a&gt;&lt;/span&gt;&lt;br&gt;
(works best on a smartphone)&lt;/p&gt;</description><pubDate>Tue, 09 Jul 2013 15:14:05 +0100</pubDate><guid>http://heyman.info/2013/jul/9/share-your-current-location-using-longitude/</guid></item><item><title>Releasing Whatismyzip.com</title><link>http://heyman.info/2013/jan/23/releasing-whatismyzipcom/</link><description>
&lt;p&gt;&lt;img src="https://s3-eu-west-1.amazonaws.com/heyman.info/screenshots/whatzip-screenshot.jpg" alt=""&gt;&lt;/p&gt;
&lt;p&gt;Every now and then, I find myself in need to know the ZIP code for the location where I'm at. Usually this is when I'm at the office, visiting my parents, or similar, and I'm about to order something.&lt;/p&gt;
&lt;p&gt;I realized that combining HTML5's GeoLocation API with the Google Maps API, I could build a small website to solve this problem.&lt;/p&gt;
&lt;p&gt;The result of this is called &lt;a href="http://www.whatismyzip.com/"&gt;What is my zip?&lt;/a&gt; (use a smartphone or other device with GPS for best result).&lt;/p&gt;
&lt;p&gt;All the functionality was built in one hour on a train between Stockholm and Uppsala, and then I spent a couple of hours designing it. Beeing a small hack, I'm quite pleased with the result :).&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:18px;"&gt;See it in action, go &lt;a href="http://www.whatismyzip.com/"&gt;find out your zip code&lt;/a&gt;&lt;/span&gt;&lt;br&gt;
(works best on a smartphone)&lt;/p&gt;</description><pubDate>Wed, 23 Jan 2013 09:33:18 +0100</pubDate><guid>http://heyman.info/2013/jan/23/releasing-whatismyzipcom/</guid></item></channel></rss>