<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

 <title>Writing — by Jan Lehnardt</title>
 <link href="http://writing.jan.io/" rel="self"/>
 <link href="http://writing.jan.io/"/>
 <updated>2026-02-19T13:42:56+01:00</updated>
 <id>http://writing.jan.io/</id>

 
 <entry>
   <title>Vegan Japan October 2025 Edition</title>
   <updated>2026-02-15T00:00:00+01:00</updated>
   <id>http://writing.jan.io/2026/02/15/vegan-japan.html</id>
   <content type="html">&lt;p&gt;We spent &lt;a href=&quot;https://narrativ.es/@janl/115339875232455011&quot;&gt;three weeks in Japan&lt;/a&gt; &lt;strong&gt;in October 2025&lt;/strong&gt;, eating 100% vegan. In this post, I’m sharing the restaurants and cafés we went to.&lt;/p&gt;

&lt;p&gt;Vegan eating in Japan has a bad rep and based on our 2019 experiences trying to eat vegetarian, we knew first hand that it could be a bit tricky.&lt;/p&gt;

&lt;p&gt;I’m very happy to report that &lt;strong&gt;it has gotten a lot better&lt;/strong&gt; in recent years and I’ve had some of the best food of my life on this trip.&lt;/p&gt;

&lt;p&gt;We did go into this with extensive planning and finding a plan A and B for each lunch and dinner. This might take more time than you’d like to spend. We had an exceptional time and no dud food-wise, but with our experience now, we are happy to relay that even &lt;strong&gt;with just a little planning&lt;/strong&gt;, you should get to experience vegan Japan just fine.&lt;/p&gt;

&lt;p&gt;Our preparatory research mostly consisted of Google Maps search with additional research and reservations through Instagram and other specific reservation platforms that the restaurants will link to (or can be found on Google Maps). While in Japan, we augmented this with &lt;a href=&quot;https://www.happycow.net&quot;&gt;HappyCow&lt;/a&gt; to work around changed travel plans or temporary closures.&lt;/p&gt;

&lt;p&gt;It’s obviously easier in larger cities, but with Buddhism well established, plant-based food is available even in smaller places if you know how to ask (your translation app and being polite will work wonders). Since not everyone is aware of the vegan label, it can also help to ask about food without meat, fish, dairy, eggs. Most small towns have the obligatory Indian restaurant that usually has got you covered.&lt;/p&gt;

&lt;p&gt;The fact that this information is locked into US-megacorps is not very fun, so I took a couple of hours to add or edit all places to [OpenStreetMap][osm], if they didn’t exist already. You can use the excellent &lt;a href=&quot;https://veganguide.org/&quot;&gt;open source Veganguide&lt;/a&gt; to look at them all.&lt;/p&gt;

&lt;p&gt;Restaurants in Japan are generally very very good compared to what you’re probably used to. That means that vegan restaurants compete for customers on a very high level and some of the food you’ll find you’ll get nowhere else.&lt;/p&gt;

&lt;h2 id=&quot;table-of-contents-23&quot;&gt;Table of Contents (23)&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;?#:~:text=Sekigahara-,Tokyo,-T’s%20Tantan%2C%20Tokyo&quot;&gt;Tokyo (12)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#:~:text=Daiichi%20Takimotokan%2C%20Noboribetsu&quot;&gt;Noboribetsu (1)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#:~:text=Gmaps-,Sapporo,-Organic%20Plus&quot;&gt;Sapporo (2)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#:~:text=Hakodate,-Yasai%20Bar%20Miruya&quot;&gt;Hakodate (1)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#:~:text=Kyoto,-Vegan%20Restaurant%20F&quot;&gt;Kyoto (4)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#:~:text=Osaka,-Asakara%20Good%20Store&quot;&gt;Osaka (3)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#:~:text=Koyasan,-Maruman&quot;&gt;Koyasan (1)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#:~:text=Himeji,-Il%20Riccio&quot;&gt;Himeji (1)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#:~:text=Hiroshima,-Jirokichi&quot;&gt;Hiroshima (3)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#:~:text=Miyajima,-Sonoma&quot;&gt;Miyajima (1)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#:~:text=Nagoya,-Miho’s%20Kitchen%20Grains&quot;&gt;Nagoya (1)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#:~:text=Ghibli%20Park,-Gibli%20Park%20Café&quot;&gt;Ghibli Park (1)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#:~:text=Sekigahara,-Ibuki%2Dann&quot;&gt;Sekigahara (1)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#:~:text=Even-,More,-Here’s%20a%20list&quot;&gt;Even More (11)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;tokyo&quot;&gt;Tokyo&lt;/h2&gt;

&lt;h3 id=&quot;ts-tantan-tokyo-station&quot;&gt;T’s Tantan, Tokyo Station&lt;/h3&gt;

&lt;p&gt;An honourable mention up first. We did not actually go to this restaurant, but &lt;a href=&quot;https://narrativ.es/@pat@hachyderm.io/115349506981129197&quot;&gt;@pat swears by it&lt;/a&gt; and we &lt;em&gt;did&lt;/em&gt; pick up its supermarket Ramen at Tokyo Station on our first night to eat at the hotel after coming in too late and tired for a restaurant and it was delicious!. Random supermarkets across Japan will carry this, but we have not found a stable pattern.&lt;/p&gt;

&lt;h5 id=&quot;links&quot;&gt;Links:&lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://ts-restaurant.jp/tantan/&quot;&gt;Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://veganguide.org/21wwejd&quot;&gt;Veganguide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/BZRwzmsv59CTpMM76&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_3850.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_3850_small.jpeg&quot; alt=&quot;A paper cup with vegan ramen held in hand, two chopsticks sticking out&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;—&lt;/p&gt;

&lt;h3 id=&quot;gluten-free-ts-ueno-hirokoji&quot;&gt;Gluten Free T’s, Ueno-Hirokoji&lt;/h3&gt;

&lt;p&gt;A brightly lit and very friendly restaurant seating around 12 people. It focusses on gluten-free dining, but vegan options including starters, mains and deserts are available and very tasty. You can even buy some of their gf ingredients, like pasta to cook at home.&lt;/p&gt;

&lt;h5 id=&quot;notes&quot;&gt;Notes:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;You order via a website on your phone.&lt;/li&gt;
  &lt;li&gt;Last order 30 mins before closing time.&lt;/li&gt;
  &lt;li&gt;Make reservation for evenings and larger groups.&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;links-1&quot;&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://glutenfree.co.jp/menu-en/&quot;&gt;Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://veganguide.org/65yv7pb&quot;&gt;Veganguide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/3F3P2yozHVvtK4JA9&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8175.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8175_small.jpeg&quot; alt=&quot;Round restaurant sign, white on blue with black background, Gluten Free T’s in the middel, various small emblems on the outside&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8176.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8176_small.jpeg&quot; alt=&quot;Top view of a pasta with mixed veggies dish&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8177.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8177_small.jpeg&quot; alt=&quot;top view of two chocolate cake pieces with sugar dusting and three orange slices&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8178.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8178_small.jpeg&quot; alt=&quot;Restaurant billboard advertising gluten free food&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8179.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8179_small.jpeg&quot; alt=&quot;Restaurant billboard advertising gluten free food&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;—&lt;/p&gt;

&lt;h3 id=&quot;organic-bar-nourish&quot;&gt;Organic Bar Nourish&lt;/h3&gt;

&lt;p&gt;Cozy organic restaurant with vegetarian and vegan food options. The service is very friendly and the food is excellent. They offered free miso soup with their lunch deal. Near Rikugien Garden which is well worth a visit.&lt;/p&gt;

&lt;h5 id=&quot;notes-1&quot;&gt;Notes:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;Restaurant is on the second floor.&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;links-2&quot;&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://k-nourish.tokyo/&quot;&gt;Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://veganguide.org/662x6t4&quot;&gt;Veganguide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.happycow.net/reviews/nourish-tokyo-115395&quot;&gt;HappyCow&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/VtVyyPvDRqkkanTp7&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8064.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8064_small.jpeg&quot; alt=&quot;Top view of a mixed plate dish with rice, salad, vegan meatballs, veggies and sauce&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;—&lt;/p&gt;

&lt;h3 id=&quot;marugoto-vegan-dining-asakusa&quot;&gt;Marugoto Vegan Dining Asakusa&lt;/h3&gt;

&lt;p&gt;An absolutely lovely riverside lunch and dinner spot that can open its full front to let nice weather in. The entire menu is vegan and all the food we sampled was sublime. A nice respite from the otherwise busy Asakusa area.&lt;/p&gt;

&lt;h5 id=&quot;notes-2&quot;&gt;Notes:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;You order via a website on your phone.&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;links-3&quot;&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://dining.marugotovegan.com/menu/&quot;&gt;Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://veganguide.org/4q78v72&quot;&gt;Veganguide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/LGqCvLEAx9xF28d77&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8285.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8285_small.jpeg&quot; alt=&quot;sidewalk and restaurant entrance with street sign advertising vegan food&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8286.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8286_small.jpeg&quot; alt=&quot;two drink glasses on a restaurant table, one filled with water and one with dark red hibiscus lemonade&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8293.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8293_small.jpeg&quot; alt=&quot;spiral notebook on table, left page is green, right page tells a story about the restaurant mascot Rin: she is an alien who came ot explore the earth. This character is Rin a Taiwanese staff mamber at marogoto vegan. Rin loves eating — especially unch plate! Her hobbies are: filming videos, collecting goshuin (temple and shrine stamps), exploring vegan foods spots&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8294.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8294_small.jpeg&quot; alt=&quot;top view for plate with various foods, tempura fried vegetables, a sauce, brown rice and vegan meatstuffs&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8298.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8298_small.jpeg&quot; alt=&quot;restaurant store front: vegan dining &amp;amp; inn&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;—&lt;/p&gt;

&lt;h3 id=&quot;shiba-park-hotel&quot;&gt;Shiba Park Hotel&lt;/h3&gt;

&lt;p&gt;The Shiba Park Hotel restaurant does Hanasanshou Dinner (similar to &lt;a href=&quot;https://en.wikipedia.org/wiki/Kaiseki&quot;&gt;Kaiseki&lt;/a&gt;) including modern Chinese and Western variants, all vegan. The service is exceptional and the food is fantastic. Our head waiter was delighted when we ordered three Japanese dinners as westerners and he greatly enjoyed showing us the ropes. Highly recommended if you are looking for a special evening.&lt;/p&gt;

&lt;h5 id=&quot;links-4&quot;&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.shibaparkhotel.com/en/restaurant-the-dining/&quot;&gt;Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://veganguide.org/6605w7p&quot;&gt;Veganguide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/WCbdA8GbiQ3gqknq9&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_1243.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_1243_small.jpeg&quot; alt=&quot;Top view of dinner, soup and salt and pepper bowls&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_1244.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_1244_small.jpeg&quot; alt=&quot;brown bottle of Osaka bay blues beer, yellow label with black writing&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_1246.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_1246_small.jpeg&quot; alt=&quot;Side view of dinner, aluminium plate on a spiritus cooker, plate with soup ingredients, bowl to drink from and large ceramic spon&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_1257.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_1257_small.jpeg&quot; alt=&quot;top view of desert in two bowls and a glass, various brown goos and white balls on a square plate&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_1473.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_1473_small.jpeg&quot; alt=&quot;top view of orange soup&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_1474.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_1474_small.jpeg&quot; alt=&quot;side view of fancy dinner plate, fried rice skin scupltured atop grilled veggies and sauce arranged in a ziczac fashion&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_1475.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_1475_small.jpeg&quot; alt=&quot;round slices of grilled vegies arranged in a semi circle crossed with green asparagus and brown sauce drops completing the circle&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_1476.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_1476_small.jpeg&quot; alt=&quot;top view of a lozange shaped plate with desert cake and ice cream&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;—&lt;/p&gt;

&lt;h3 id=&quot;kyushu-jangara-shiba-daimon-store&quot;&gt;Kyushu Jangara Shiba Daimon Store&lt;/h3&gt;

&lt;p&gt;Random off-the-main-street Ramen place with excellent service and vegan Ramen options. You pay at the machine at the entrance, but staff can help you if need be. Near &lt;a href=&quot;https://en.wikipedia.org/wiki/Shiba_Park&quot;&gt;Shiba Park&lt;/a&gt; and &lt;a href=&quot;https://en.wikipedia.org/wiki/Tokyo_Tower&quot;&gt;Tokyo Tower&lt;/a&gt;.&lt;/p&gt;

&lt;h5 id=&quot;links-5&quot;&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://kyushujangara.co.jp/shops/shibadaimon/&quot;&gt;Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://veganguide.org/6604klb&quot;&gt;Veganguide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/16HDGV4Poi5hwuR67&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_1118.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_1118_small.jpeg&quot; alt=&quot;overview of a tiny ramen restaurant with open kitchen, patrons and chef busy with their activities&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_1121.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_1121_small.jpeg&quot; alt=&quot;top view of a vegan ramen soup bowl with seitan nuggests&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;—&lt;/p&gt;

&lt;h3 id=&quot;brooks-greenlit-cafe&quot;&gt;Brooks Greenlit Cafe&lt;/h3&gt;

&lt;p&gt;Modern and cozy café next to a small park (that doubles easily as outdoor seating if you are okay with flaunting Japanese etiquette and take your order out). Excellent sweets and matcha. We did not get to try the delicious looking sandwiches, but would go again. Pairs well with a visit to &lt;a href=&quot;https://en.wikipedia.org/wiki/Meiji_Shrine_Outer_Garden&quot;&gt;Meiji Jingu Gaien Ginkgo Avenue&lt;/a&gt;.&lt;/p&gt;

&lt;h5 id=&quot;links-6&quot;&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.brooks-greenlitcafe.com/&quot;&gt;Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://veganguide.org/6605wsf&quot;&gt;Veganguide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/hP7AZ6LqWourkqhWA&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_1165.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_1165_small.jpeg&quot; alt=&quot;pink package with green spronkeled donut, label says dairy free, gluten free, white sugar free&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_1166.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_1166_small.jpeg&quot; alt=&quot;top view of a macha latte in a paper cup with a heart shape on top&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_1169.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_1169_small.jpeg&quot; alt=&quot;top view of green donut with stripes of chocolate across&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_1174.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_1174_small.jpeg&quot; alt=&quot;top view light brown donut with sprinkles&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;—&lt;/p&gt;

&lt;h3 id=&quot;vegan-ramen-uzu-tokyo-inside-teamlab-planets&quot;&gt;Vegan Ramen UZU Tokyo (inside teamLab Planets)&lt;/h3&gt;

&lt;p&gt;Only available to visitors of the &lt;a href=&quot;https://en.wikipedia.org/wiki/TeamLab_Planets_TOKYO_DMM.com&quot;&gt;teamLab&lt;/a&gt; exhibition which is a must-see. The line and wait for the vegan Ramen can be off-putting but it is well worth it. Bridge the time with donuts from the cart at the back. Pro-tip: you can go back into the exhibition after eating, so if you need a break in-between, have a snack.&lt;/p&gt;

&lt;h5 id=&quot;links-7&quot;&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://vegan-uzu.com/pages/uzu-tokyo&quot;&gt;Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://veganguide.org/4q78v9t&quot;&gt;Veganguide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/xvvX3XtiiorHQkRb7&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_1364.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_1364_small.jpeg&quot; alt=&quot;top view of a bowl of ramen with half a grilled potato and green okra shoots, broth is opaque&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;—&lt;/p&gt;

&lt;h3 id=&quot;vegan-eat-tokyo&quot;&gt;Vegan Eat Tokyo&lt;/h3&gt;

&lt;p&gt;Tranquil fully vegan Japanese + world fusion restaurant with very friendly staff and great drinks selection in the otherwise busy Aksakusa area.&lt;/p&gt;

&lt;h5 id=&quot;notes-3&quot;&gt;Notes:&lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Google maps says permanently closed but HappyCow still shows reviews as of this week.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.happycow.net/reviews/vegan-eat-tokyo-392920&quot;&gt;HappyCow&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/MFdhaKwqv4JhKCXV6&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.instagram.com/veganeattokyo/?igsh=MXh4bHp6dzF6a3poaw%3D%3D&amp;amp;utm_source=qr&quot;&gt;Instagram&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_1574.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_1574_small.jpeg&quot; alt=&quot;glass caraffe with green tea&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_1576.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_1576_small.jpeg&quot; alt=&quot;lunch starter, corn soup and salad&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_1577.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_1577_small.jpeg&quot; alt=&quot;top view of grilled pasta dish in terracotta bowl&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_1580.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_1580_small.jpeg&quot; alt=&quot;piece of pink cake&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_1581.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_1581_small.jpeg&quot; alt=&quot;view of tiny restaurant, chef and servers abuzz&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_1582.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_1582_small.jpeg&quot; alt=&quot;restaurant chalkboard with wifi password and instagram handle&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_1583.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_1583_small.jpeg&quot; alt=&quot;restaurant chalkboard advertising new vegan beers&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_1586.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_1586_small.jpeg&quot; alt=&quot;restaurant entrance&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;—&lt;/p&gt;

&lt;h3 id=&quot;alchemy&quot;&gt;Alchemy&lt;/h3&gt;

&lt;p&gt;A bit awkward to find in a mixed-used commercial building, but a nice and wide-open space with a wide selection of plant based food and fun coloured (and tasting) drinks. Probably best paired with exploring the rest of the stores there, e.g. the adjacent large bookstore. The amazing city view from their outdoor terrace is also a big plus&lt;/p&gt;

&lt;h5 id=&quot;notes-4&quot;&gt;Notes:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;You order via a website on your phone.&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;links-8&quot;&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.alchemy-japan.com/&quot;&gt;Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://veganguide.org/5ae2o5t&quot;&gt;Veganguide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/4BGN281eDVUFHkZ4A&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_1629.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_1629_small.jpeg&quot; alt=&quot;assorted dinner starters, edamame, olives, potato salad&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_1630.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_1630_small.jpeg&quot; alt=&quot;two drinks in glasses, one red one blue&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_1631.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_1631_small.jpeg&quot; alt=&quot;three soft shell tacos with assorted ingredients arranged like a rainbow&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;—&lt;/p&gt;

&lt;h2 id=&quot;daiichi-takimotokan-noboribetsu&quot;&gt;Daiichi Takimotokan, Noboribetsu&lt;/h2&gt;

&lt;p&gt;This is a luxury Onsen / Hotel with an outstanding Grand Bath that’s worth its own visit. If you’re a guest, Kaiseki dinner is available for pre-order. Compared to other vegan Kaiseki we had it was middle of the road, which by Japanese standards still means very good, but there’s better to be had. This is mainly so you can safely book this hotel and spa and have food covered.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://takimotokan.co.jp/ja/&quot;&gt;Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.openstreetmap.org/way/238811172&quot;&gt;OpenStreetMap&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/rZTMgEjZgMcvCxXK7&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8449.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8449_small.jpeg&quot; alt=&quot;Kaiseki dinner: three appetiser on a square plate, each in their own little bowl, tofu, beans and jelly &quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8452.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8452_small.jpeg&quot; alt=&quot;Kaiseki dinner: alumnium plate and lid cooking over a spiritus oven&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8454.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8454_small.jpeg&quot; alt=&quot;Kaiseki dinner: earthware pot and lid cooking over a spirtitus cooker &quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8459.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8459_small.jpeg&quot; alt=&quot;Kaiseki dinner: top view of a small empty square bowl with elaborate ornametnation and red bird illustration in the middle&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8461.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8461_small.jpeg&quot; alt=&quot;Kaiseki dinner: top view of an ornamented round plate with mixed veggies and sauce&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8467.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8467_small.jpeg&quot; alt=&quot;Kaiseki dinner: quarter-circle plate with tofy, asparagus and a cherry tomato&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8468.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8468_small.jpeg&quot; alt=&quot;Kaiseki dinner: four types of potato in a bamboo steamer&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8472.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8472_small.jpeg&quot; alt=&quot;Kaiseki dinner: tempura fried vegetables and dark brown dipping sauce&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8473.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8473_small.jpeg&quot; alt=&quot;Kaiseki dinner: mushroom risotto in earthware pot&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8476.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8476_small.jpeg&quot; alt=&quot;Kaiseki dinner: miso soup&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8485.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8485_small.jpeg&quot; alt=&quot;Kaiseki dinner: fruit desert&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8487.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8487_small.jpeg&quot; alt=&quot;Kaiseki dinner: tea cup&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;next-restaurant-suidobashi&quot;&gt;NEXT RESTAURANT (Suidobashi)&lt;/h3&gt;

&lt;p&gt;This is a delivery-only place. The rice bowls are great, skip the pizza.&lt;/p&gt;

&lt;h5 id=&quot;links-9&quot;&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://next-restaurant.com/en&quot;&gt;Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/yjRoK2fKb5puyMyH6&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;kailash-asian-dining--bar&quot;&gt;Kailash Asian Dining ＆ Bar&lt;/h3&gt;

&lt;p&gt;A totally serviceable and friendly Indian restaurant around the corner from the &lt;a href=&quot;https://en.wikipedia.org/wiki/Tokyo_Skytree&quot;&gt;Tokyo Skytree&lt;/a&gt;.&lt;/p&gt;

&lt;h5 id=&quot;links-10&quot;&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/Dkcv2aCeJez4a8zEA&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr class=&quot;japan&quot; /&gt;

&lt;h2 id=&quot;sapporo&quot;&gt;Sapporo&lt;/h2&gt;

&lt;h3 id=&quot;organic-plus&quot;&gt;Organic Plus&lt;/h3&gt;

&lt;p&gt;Cozy wine bar with organic kitchen that serves vegan options. The food is very good and service is top notch; as is the music selection. The menu clearly labels everything as either vegan, lacto-vegetarian or lacto-ovo-vegetarian. Do not miss. Feels like being in an early Murakami novel (without the smoking).&lt;/p&gt;

&lt;h5 id=&quot;links-11&quot;&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://ameblo.jp/organic-plus/&quot;&gt;Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://veganguide.org/22wijpt&quot;&gt;Veganguide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/JNXvF7CEaUK694fs9&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8759.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8759_small.jpeg&quot; alt=&quot;Dark wood panelled wine bar and chris&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8764.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8764_small.jpeg&quot; alt=&quot;top view of a vegan aubergine burge pattie with kress topping&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8769.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8769_small.jpeg&quot; alt=&quot;chocolate cake and scoop of ice cream&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8771.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8771_small.jpeg&quot; alt=&quot;restaurant exterior: natural wine bar Organic&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;—&lt;/p&gt;

&lt;h3 id=&quot;veggie-way&quot;&gt;Veggie Way&lt;/h3&gt;

&lt;p&gt;We didn’t eat here in person, but got take-out instead, and the food was excellent.&lt;/p&gt;

&lt;h5 id=&quot;links-12&quot;&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://veggy-way.com/cafe/&quot;&gt;Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://veganguide.org/4wsqdxb&quot;&gt;Veganguide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/BNnKhw3SWMm519WQ9&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr class=&quot;japan&quot; /&gt;

&lt;h2 id=&quot;hakodate&quot;&gt;Hakodate&lt;/h2&gt;

&lt;h3 id=&quot;yasai-bar-miruya&quot;&gt;Yasai Bar Miruya&lt;/h3&gt;

&lt;p&gt;Tiny open kitchen restaurant, woman-owned sole-proprietor and one of the sweetest places we have been. The food is excellent, the location is tucked away between residential and harbour districts, but just two tram stops from the central train station. This is a prime example of trusting recommendations and not just betting on flashy exterior. Approaching, especially in the dark you barely notice it is a restaurant at all. Staying open minded and just going for it rewards you in ways you could not have imagined.&lt;/p&gt;

&lt;h5 id=&quot;notes-5&quot;&gt;Notes:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;Reservations are not possible, best arrive early.&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;links-13&quot;&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.facebook.com/yasaibarmiruya/?ref=bookmarks&quot;&gt;Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://veganguide.org/6601601&quot;&gt;Veganguide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/DF9cXhjqsprQ2kB78&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8891.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8891_small.jpeg&quot; alt=&quot;A very narrow standalone house at a street corner at night&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8892.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8892_small.jpeg&quot; alt=&quot;a glass of ome made ginger ale&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8902.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8902_small.jpeg&quot; alt=&quot;dinner plate with vegan meatballs, potato sallad, carrot salad, rice, miso soup, grilled veggies and fruit all in their own little bowls&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8903.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8903_small.jpeg&quot; alt=&quot;open restaurant kitchen with sole proprietor&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8904.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8904_small.jpeg&quot; alt=&quot;nondescript retaurant entrance&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;hr class=&quot;japan&quot; /&gt;

&lt;h2 id=&quot;kyoto&quot;&gt;Kyoto&lt;/h2&gt;

&lt;h3 id=&quot;vegan-restaurant-f&quot;&gt;Vegan Restaurant F&lt;/h3&gt;

&lt;p&gt;One of our favourite experiences and some of the best food we’ve had on the trip. Small-ish mom &amp;amp; pop restaurant with a seven course fine dining experience that you will not forget. A tiny highlight is the home-made vegan cheese, the best vegan cheese we’ve ever had. They sell it to go and if feasible we’d have bought the whole stock. Service is lovely, prices are surprisingly low (~25€ per person, incl. drinks).&lt;/p&gt;

&lt;h5 id=&quot;notes-6&quot;&gt;Notes:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;We reserved in advance via Instagram.&lt;/li&gt;
  &lt;li&gt;Staff doesn’t speak english, but politeness and a translation app ensures a pleasant stay.&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;links-14&quot;&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.naturale-f.com/&quot;&gt;Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://veganguide.org/5l1xk3x&quot;&gt;Veganguide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/Mqw8d3DN3M6tguxC8&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.instagram.com/cucinanaturalef/&quot;&gt;Instagram&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9226.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9226_small.jpeg&quot; alt=&quot;Dark wood panelled restairant entrance framed with various flowers, at night with spot lighting&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9228.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9228_small.jpeg&quot; alt=&quot;small restaurant interior, white walls with dark brown wood support beams, red curtains and half open kitchen&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9227.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9227_small.jpeg&quot; alt=&quot;menu, main feature a choice of 5 or 7 course meal for 4000 and 5000 yen respectively&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9230.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9230_small.jpeg&quot; alt=&quot;appetizer platter with quiche, carrot salad, vegan cheese slices, green lead salad, tiny mac and cheese bowl and pickeld cabbage salad&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9231.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9231_small.jpeg&quot; alt=&quot;hokkaido pumpkin soup&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9232.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9232_small.jpeg&quot; alt=&quot;pasta and veggies dish&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9234.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9234_small.jpeg&quot; alt=&quot;soy and chickpea meatballs on white and green asparagus&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9238.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9238_small.jpeg&quot; alt=&quot;desert: ice cream and macha cake and rice pudding&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9240.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9240_small.jpeg&quot; alt=&quot;tea&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;—&lt;/p&gt;

&lt;h3 id=&quot;vegginy&quot;&gt;Vegginy&lt;/h3&gt;

&lt;p&gt;Another top favourite experience and the best burger I’ve had in my life. Truly a Scooby-Doo contraption that tastes like nothing else. Service is great and the atmosphere is chill. Do get some of the art exhibited, sales go towards a good cause.&lt;/p&gt;

&lt;h5 id=&quot;notes-7&quot;&gt;Notes:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;Entrance is in an easy-to-miss basement.&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;links-15&quot;&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://veganguide.org/4xyhj10&quot;&gt;Veganguide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/YgJYQkC2NYTz52L49&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/YgJYQkC2NYTz52L49&quot;&gt;Instagram&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9087.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9087_small.jpeg&quot; alt=&quot;Street sign for a restaurant veggini&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9092.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9092_small.jpeg&quot; alt=&quot;wine glass filled with home made bright red  kombucha&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9095.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9095_small.jpeg&quot; alt=&quot;tea in a glass cup&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9099.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9099_small.jpeg&quot; alt=&quot;soup and drinks&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9101.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9101_small.jpeg&quot; alt=&quot;20cm high veggie burger&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9106.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9106_small.jpeg&quot; alt=&quot;tiny kitchen area with three staff laughing into the camera&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;—&lt;/p&gt;

&lt;h3 id=&quot;veg-out&quot;&gt;Veg Out&lt;/h3&gt;

&lt;p&gt;This was our only re-visit from 2019 as we loved it so much and it did not disappoint. With enormous windows for a brilliant river and mountain view, this tranquil café serves vegan buddhist-inspired cuisine that will make you visit again, too. Shares an entrance with a yoga studio, if you need even more tranquility. Easy to reach from or to &lt;a href=&quot;https://en.wikipedia.org/wiki/Fushimi_Inari-taisha&quot;&gt;Fushimi Inari-taisha&lt;/a&gt;.&lt;/p&gt;

&lt;h5 id=&quot;links-16&quot;&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://tamisa-yoga.com/cafe/&quot;&gt;Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://veganguide.org/2yxmgeu&quot;&gt;Veganguide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/s47X9HGxyqXsuYcA8&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9332.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9332_small.jpeg&quot; alt=&quot;view of a wide riverbed through a tall window on a cloudy day&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9333.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9333_small.jpeg&quot; alt=&quot;top view of a cup of soup&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9334.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9334_small.jpeg&quot; alt=&quot;round platter of buddhist lunch: rice, fried tofu strips, various salads&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;—&lt;/p&gt;

&lt;h3 id=&quot;vegetable-dishes-oki-shijo&quot;&gt;Vegetable Dishes ”OKI” SHIJO&lt;/h3&gt;

&lt;p&gt;Entrance-level canteen of a hostel-like hotel with fantastic vegan breakfast options, both Japanese and Western-inspired. We didn’t go for dinner, but vegan available there, too.&lt;/p&gt;

&lt;h5 id=&quot;links-17&quot;&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://imuhotel.jp/&quot;&gt;Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://veganguide.org/6601j6s&quot;&gt;Veganguide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/tzzm8pCwu6tbEAci6&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8955.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8955_small.jpeg&quot; alt=&quot;Street sign for restaurant Oki&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_8953.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_8953_small.jpeg&quot; alt=&quot;two breakfast trays, one with vegan french toast, one with various japanese veggies, salad, miso soup, rice and fruit, surrounded by various drinks&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;hr class=&quot;japan&quot; /&gt;

&lt;h2 id=&quot;osaka&quot;&gt;Osaka&lt;/h2&gt;

&lt;h3 id=&quot;asakara-good-store&quot;&gt;Asakara Good Store&lt;/h3&gt;

&lt;p&gt;Excellent breakfast, mostly western diner-style, vegetarian and vegan options aplenty in a cozy and relaxing atmosphere and great service. So good, we went twice. Great location for visiting &lt;a href=&quot;https://en.wikipedia.org/wiki/Osaka_Castle&quot;&gt;Osaka Castle&lt;/a&gt; before or after.&lt;/p&gt;

&lt;h5 id=&quot;notes-8&quot;&gt;Notes:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;You order via a website on your phone.&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;links-18&quot;&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://asakara-gs.com/menu/&quot;&gt;Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://veganguide.org/3yi5ivd&quot;&gt;Veganguide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/xJAegPo5jm2Uu1eC8&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9841.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9841_small.jpeg&quot; alt=&quot;Small restaurant interior, main view of the open kitchen counter with staff&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9413.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9413_small.jpeg&quot; alt=&quot;plate with assorted grilled veggies, avocado, sour dough bread&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9410.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9410_small.jpeg&quot; alt=&quot;fruit on top of a muesly bowl and macha latte&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9855.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9855_small.jpeg&quot; alt=&quot;5cm thick sandwich with salad and avocado&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;—&lt;/p&gt;

&lt;h3 id=&quot;mercy-vegan-factory&quot;&gt;Mercy Vegan Factory&lt;/h3&gt;

&lt;p&gt;A bright and friendly restaurant and bakery. All food is vegan, and a selection of ingredients can be purchased for home use. They do traditional lunch/dinner as well as sandwiches and cakes, which make great to-go items.&lt;/p&gt;

&lt;h5 id=&quot;links-19&quot;&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hotpepper.jp/strJ003298114/&quot;&gt;Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://veganguide.org/4po7w3e&quot;&gt;Veganguide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/V8YdW4cvjJJLrKWM8&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9461.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9461_small.jpeg&quot; alt=&quot;view of a small restaurant with half open kitchen&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9467.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9467_small.jpeg&quot; alt=&quot;tray with plate of vegan sushi, a cup of soup and a glas tea pot&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9468.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9468_small.jpeg&quot; alt=&quot;home made lemonade&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9471.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9471_small.jpeg&quot; alt=&quot;restaurant sign advertising all plant based vegan food in english and japanese&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9477.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9477_small.jpeg&quot; alt=&quot;a café display of cakes and sandwiches&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;—&lt;/p&gt;

&lt;h3 id=&quot;shukhansana-pozzuoli&quot;&gt;Shukhansana Pozzuoli&lt;/h3&gt;

&lt;p&gt;Pizza &amp;amp; Pasta, not usually the cuisine you go to Japan for, but this is an excellent one-man operation. The tiny restaurant seats maybe 10 people and you get a full view of the even tinier open kitchen. It is a pleasure to see the maestro at work while you wait. The pizza is excellent and the service is very friendly.&lt;/p&gt;

&lt;h5 id=&quot;notes-9&quot;&gt;Notes:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;Reservations are recommended&lt;/li&gt;
  &lt;li&gt;Take-out is not guaranteed if the current pizza queue is too long&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;links-20&quot;&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://veganguide.org/5cgsflg&quot;&gt;Veganguide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/3Upws77tctF7DEWL7&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.instagram.com/sukhasana_v_pizzeria&quot;&gt;Instagram&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9822.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9822_small.jpeg&quot; alt=&quot;open kitchen in a small pizza restaurant with sole proprietor cooking&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9823.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9823_small.jpeg&quot; alt=&quot;red lemonade drink in a glas&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9833.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9833_small.jpeg&quot; alt=&quot;vegan pizza with thick crust, half melted mozzarella slices visible&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9834.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9834_small.jpeg&quot; alt=&quot;vegan pizza with thick crust, bell pepper slices and cheese&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9835.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9835_small.jpeg&quot; alt=&quot;white vegan pizza with lemon slices&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;hr class=&quot;japan&quot; /&gt;

&lt;h2 id=&quot;koyasan&quot;&gt;Koyasan&lt;/h2&gt;

&lt;h3 id=&quot;maruman&quot;&gt;Maruman&lt;/h3&gt;

&lt;p&gt;This was a spontaneous discovery for us as the restaurant we had planned to visit was closed on the day. This is a casual Japanese lunch place with limited western-style seating, so expect to take of your shoes and sit on tatami. At the time of visit there were two vegan dishes on the menu and the staff is happy to help you find them.&lt;/p&gt;

&lt;h5 id=&quot;links-21&quot;&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://veganguide.org/2x09krb&quot;&gt;Veganguide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/EHrFLMZZm4ov9MBCA&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9549.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9549_small.jpeg&quot; alt=&quot;noodle soup with tofu cutlet&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;hr class=&quot;japan&quot; /&gt;

&lt;h2 id=&quot;himeji&quot;&gt;Himeji&lt;/h2&gt;

&lt;h3 id=&quot;il-riccio&quot;&gt;Il Riccio&lt;/h3&gt;

&lt;p&gt;Spacious yet cozy lunch spot and organic food store in central Himeji perfectly situated half-way between train station and castle. Food, ambience and kitchen staff look like they came out of a Ghibli movie and the food is excellent.&lt;/p&gt;

&lt;h5 id=&quot;links-22&quot;&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://il-riccio.com&quot;&gt;Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://veganguide.org/5l0k8vl&quot;&gt;Veganguide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/kv9yM98ym1XNC7kJA&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9876.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9876_small.jpeg&quot; alt=&quot;side view of a restaurant entrance with large window and grey walls&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9878.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9878_small.jpeg&quot; alt=&quot;restaurant interior, ground floor has a half-open kitchen with an open second floor seating area up top. White washed stone walls and wooden interor accents&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_9887.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_9887_small.jpeg&quot; alt=&quot;tray with various sized bowls with soup, salad, rice, soy-meat and sauce and veggies&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;hr class=&quot;japan&quot; /&gt;

&lt;h2 id=&quot;hiroshima&quot;&gt;Hiroshima&lt;/h2&gt;

&lt;h3 id=&quot;jirokichi&quot;&gt;Jirokichi&lt;/h3&gt;

&lt;p&gt;Tiny Hiroshima Okonomiyaki place straight out of Cowboy Bebop. This is noodle-base Okonomiyaki that is distinct from the Osaka variant. The atmosphere is great and the food is delicious. Main dishes are prepared &lt;a href=&quot;https://en.wikipedia.org/wiki/Teppanyaki&quot;&gt;Teppanyaki-style&lt;/a&gt; and served on your own per-table hot plate. The menu has a distinct section for vegan options. Do not miss. Close to the &lt;a href=&quot;https://en.wikipedia.org/wiki/Hiroshima_Peace_Memorial_Park&quot;&gt;Peace Park&lt;/a&gt;.&lt;/p&gt;

&lt;h5 id=&quot;notes-10&quot;&gt;Notes:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;The restaurant is on the second floor (2F).&lt;/li&gt;
  &lt;li&gt;Reservations are recommended and only available via phone.
    &lt;ul&gt;
      &lt;li&gt;The host speaks a little english, if you keep your language simple you will manage as we did.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;links-23&quot;&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://towheree.com/hiroshima/540369-jirokichi&quot;&gt;Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://veganguide.org/6602v6c&quot;&gt;Veganguide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/63zvmkwBYj9QPM6K9&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_0118.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_0118_small.jpeg&quot; alt=&quot;japanese restaurant sign, illuminated at night, directing patrons to the second floor 2F&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_0134.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_0134_small.jpeg&quot; alt=&quot;two noodle based hiroshima-style okonomyaki on a hot plate embedded in the restaurant table&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;—&lt;/p&gt;

&lt;h3 id=&quot;kissa-saeki&quot;&gt;Kissa Saeki&lt;/h3&gt;

&lt;p&gt;Friendly organic daytime café serving various main dishes as well as coffee, tea and cake. Second generation family-owned vegetarian and vegan operation with many gluten-free options. Service is very friendly and the food is excellent. Close to the &lt;a href=&quot;https://en.wikipedia.org/wiki/Hiroshima_Peace_Memorial_Park&quot;&gt;Peace Park&lt;/a&gt; and Fukuromachi shopping area.&lt;/p&gt;

&lt;h5 id=&quot;notes-11&quot;&gt;Notes:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;Cash only&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;links-24&quot;&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://kissa-saeki.com/menu-organic/&quot;&gt;Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://veganguide.org/20hn4zd&quot;&gt;Veganguide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/tBpeffkqyz6mvfpK8&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_0200.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_0200_small.jpeg&quot; alt=&quot;vegan purple milky drink with ice in a frosted glass&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_0203.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_0203_small.jpeg&quot; alt=&quot;tray with plate and bowls containing soup, rice, salad, veggies and vegan burger patties&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_0206.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_0206_small.jpeg&quot; alt=&quot;desert cake with decoration&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_0207.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_0207_small.jpeg&quot; alt=&quot;desert cake with decoration&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_0209.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_0209_small.jpeg&quot; alt=&quot;restaurant entrance with shite walls and black wooden door and window frames, sign up front&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_0210.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_0210_small.jpeg&quot; alt=&quot;street sign for organic cafe and kitchen in english and japanese&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;—&lt;/p&gt;

&lt;h2 id=&quot;jogesayu&quot;&gt;JoGeSaYu&lt;/h2&gt;

&lt;p&gt;Modern and bright Japanese vegan restaurant with a focus on flashy dishes. The food quality is mid-range for Japan, so pretty good overall. The menu is on the larger size, which makes this a good spot for larger groups and the larger-than-usual dining hall size helps as well. The service was friendly.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://jogesayu-hiroshima.com/en&quot;&gt;Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://veganguide.org/5w8cgqh&quot;&gt;Veganguide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.happycow.net/reviews/jogesayu-hiroshima-459653&quot;&gt;HappyCow&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/Sq2JsrgBS7DrFXYs9&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.instagram.com/jogesayu_hiroshima&quot;&gt;Instagram&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_0363.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_0363_small.jpeg&quot; alt=&quot;restaurant entrance, white wall with JoGeSaYo lettering&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_0372.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_0372_small.jpeg&quot; alt=&quot;fried tofu starter&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_0373.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_0373_small.jpeg&quot; alt=&quot;plate with saitan meat balls and salad&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_0377.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_0377_small.jpeg&quot; alt=&quot;creamy soup with various vegetables bobbing at the surface&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_0384.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_0384_small.jpeg&quot; alt=&quot;wine glass with several scoops of ice cream, fruit and decoration&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;hr class=&quot;japan&quot; /&gt;

&lt;h2 id=&quot;miyajima&quot;&gt;Miyajima&lt;/h2&gt;

&lt;h3 id=&quot;sonoma&quot;&gt;Sonoma&lt;/h3&gt;

&lt;p&gt;Tiny curry-serving cafe with a chill atmosphere. Vegan options on Miyajima are a little limited and we are very happy to have found this. It’s on the way to/from the ropeway station.&lt;/p&gt;

&lt;h5 id=&quot;links-25&quot;&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://veganguide.org/66056e7&quot;&gt;Veganguide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/j6YiYdsFBx5ZATB59&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://instagram.com/sonoma_miyajima&quot;&gt;Instagram&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_0512.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_0512_small.jpeg&quot; alt=&quot;restaurant entrance with sunshade&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_0516.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_0516_small.jpeg&quot; alt=&quot;deep dish with rice and brown curry&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;hr class=&quot;japan&quot; /&gt;

&lt;h2 id=&quot;nagoya&quot;&gt;Nagoya&lt;/h2&gt;

&lt;h3 id=&quot;mihos-kitchen-grains&quot;&gt;Miho’s Kitchen Grains&lt;/h3&gt;

&lt;p&gt;My favourite of the trip. Miho runs this place solo with occasional serving help. Our first night there was so good, we just went again the next day. Nagoya being a little less touristy translates to vegan food being less abundant.&lt;/p&gt;

&lt;p&gt;Miho spent two years &lt;a href=&quot;https://camp-fire.jp/projects/814694/view&quot;&gt;developing and crowdfunding&lt;/a&gt; “Okacon”, a delicious pork-rind like vegan meat substitute that she now exclusively sells. It is very versatile and nutritious on top of being extremely tasty. I’m most impressed by the fact that part of the ingredients is an otherwise discarded byproduct from tofu production that goes to waste at 700,000 tonnes per year.&lt;/p&gt;

&lt;p&gt;The dishes Miho creates from this are out of this world and you can’t get them anywhere else.&lt;/p&gt;

&lt;p&gt;On top of all that, the fermented tomato base Ramen is the best soup I’ve eaten in my life (sorry gran).&lt;/p&gt;

&lt;p&gt;Seating is traditional (no shoes, you sit on tatami floors) and extremely limited, you basically get to hang out with two more parties in Miho’s living room while she cooks.&lt;/p&gt;

&lt;p&gt;If you’re visiting &lt;a href=&quot;https://en.wikipedia.org/wiki/Ghibli_Park&quot;&gt;Ghibli Park&lt;/a&gt; or &lt;a href=&quot;https://en.wikipedia.org/wiki/Battle_of_Sekigahara&quot;&gt;Sekigahara&lt;/a&gt; (or both), make this your staple dinner place. It’s conveniently close to the train station.&lt;/p&gt;

&lt;h5 id=&quot;notes-12&quot;&gt;Notes:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;Reservations via Instagram&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;links-26&quot;&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://grains.nagoya/&quot;&gt;Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://veganguide.org/6603pxz&quot;&gt;Veganguide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/oVq3i1XMXAQifSGM8&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.happycow.net/reviews/grains-nagoya-109648&quot;&gt;HappyCow&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.instagram.com/grains.nagoya&quot;&gt;Instagram&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_0610.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_0610_small.jpeg&quot; alt=&quot;dark alley at night, illuminated by an orange lantern above an open sign&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_0618.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_0618_small.jpeg&quot; alt=&quot;tiny restaurant with traditional japanese seating on tatami-mats. three small tables&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_0620.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_0620_small.jpeg&quot; alt=&quot;square plate with vegan pork chops, veggies and salad&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_0621.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_0621_small.jpeg&quot; alt=&quot;rounded corner square bowl with assorted salads and fried vegan meat&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_0624.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_0624_small.jpeg&quot; alt=&quot;a bowl of soup, vegan pork chops and a bowl of rice&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_0951.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_0951_small.jpeg&quot; alt=&quot;fermented tomato-based ramen with vegan pork chops&quot; /&gt;
&lt;/a&gt;
&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_0635.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_0635_small.jpeg&quot; alt=&quot;restaurant entrance in an ally at night, sparsely illuminated&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;hr class=&quot;japan&quot; /&gt;

&lt;h2 id=&quot;ghibli-park&quot;&gt;Ghibli Park&lt;/h2&gt;

&lt;h3 id=&quot;ghibli-park-café-tairiku-oudan-hiko&quot;&gt;Ghibli Park Café Tairiku Oudan Hiko&lt;/h3&gt;

&lt;p&gt;The cafe outside the great warehouse features a single vegan avocado sandwich that will get you through the day. Pro-tip: share three among two people and bring some snacks for variety.&lt;/p&gt;

&lt;h5 id=&quot;links-27&quot;&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://ghibli-park.jp/food/&quot;&gt;Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://veganguide.org/6603pxz&quot;&gt;Veganguide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/S7kugBuGDy4yfRsw9&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_0728.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_0728_small.jpeg&quot; alt=&quot;two avocado sandwiches with tiny flags stuck in them&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;hr class=&quot;japan&quot; /&gt;

&lt;h2 id=&quot;sekigahara&quot;&gt;Sekigahara&lt;/h2&gt;

&lt;h3 id=&quot;ibuki-ann&quot;&gt;Ibuki-ann&lt;/h3&gt;

&lt;p&gt;The cafeteria in the annex of the Sekigahara battlefield museum and memorial features a single vegan udon soup. You order via the machine next to the kitchen. Do ask staff to point you to the right option, they are extremely helpful and friendly.&lt;/p&gt;

&lt;h5 id=&quot;links-28&quot;&gt;Links:&lt;/h5&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://ibuki-ann.jp&quot;&gt;Website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://veganguide.org/6605mae&quot;&gt;Veganguide&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/bqWqsefmqzAGRonQ6&quot;&gt;Gmaps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a class=&quot;japan&quot; href=&quot;/img/japan/IMG_0983.jpeg&quot;&gt;
  &lt;img loading=&quot;lazy&quot; src=&quot;/img/japan/IMG_0983_small.jpeg&quot; alt=&quot;two udon noodle suops&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;hr class=&quot;japan&quot; /&gt;

&lt;h1 id=&quot;even-more&quot;&gt;Even More&lt;/h1&gt;

&lt;p&gt;Here’s a list of places we had to skip for various reasons, but would have gone to if we didn’t randomly go to one of the other places in the spur of the moment. Gmaps links only, apologies.&lt;/p&gt;

&lt;p&gt;Tokyo:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://visitjapan-vegetarian.com/ts-tantan-the-incredible-vegan-ramen-chain-in-japan/#How-to-Get-to-a-T&apos;s-Tantan-Restaurant&quot;&gt;Various T’s&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/Y3msBFuWPhP9iApT8&quot;&gt;Veg Kitchen&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/T3sthBhz5k2MpALD7&quot;&gt;Himalaya Kitchen&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/dKHRGYDKGT8tpLU9A&quot;&gt;Tsukemen zuppa&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Kyoto:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/e1p5Py93VUVCu9Sb9&quot;&gt;ZIRAEL Vegan Restaurant&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/rxwr1ARECsJZGPJ38&quot;&gt;VOG Kyoto - Vegetarian &amp;amp; Vegan Restaurant&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Osaka:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/5sPjK1PVdwYb14wJ8&quot;&gt;Vegan and Gluten Free Osaka&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/ZjF3nB3gz9bdXoBi8&quot;&gt;new order&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/4kkhkY2sBtD2gnTQ6&quot;&gt;The Fire&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Koyasan:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/qeYcRaYg4awZR7Tu9&quot;&gt;Sukhasana&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hiroshima:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/2LASrDLcpxf3F3Em7&quot;&gt;Nagataya&lt;/a&gt; Note: we did an inquiry here during the day while shopping nearby and staff was surprisingly rude, so we didn’t pursue it further, maybe you have better luck.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sekigahara:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://maps.app.goo.gl/j8rcyyHCMkxnuBkS7&quot;&gt;Andante&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
 </entry>
 
 <entry>
   <title>AI Veganism</title>
   <updated>2026-02-02T00:00:00+01:00</updated>
   <id>http://writing.jan.io/2026/02/02/ai-veganism.html</id>
   <content type="html">&lt;p&gt;I have finally worked out why the “AI-vegan” narrative is a logical fallacy.&lt;/p&gt;

&lt;p&gt;AI-boosters, and yes, that includes all you with the “nuanced takes”, use it to absolve themselves.&lt;/p&gt;

&lt;p&gt;The “choice to forego meat on ethical grounds” analogy would work if programming was always done with genAI and now folks are abstaining because the numerous externalities are no longer bearable.&lt;/p&gt;

&lt;p&gt;But in fact we have not been programming with genAI this whole time and now we have discovered meat, a way to produce protein in one of the most atrocious ways imaginable.&lt;/p&gt;

&lt;p&gt;However, we are not using that protein to feed the starving. Instead the people who already have more than enough food to last a lifetime, get their fill of protein a little bit faster. And producing that protein takes away nutrition from the people who don’t have enough of it in the first place.&lt;/p&gt;

&lt;p&gt;That’s the actual analogy.&lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>How to disable Google Gemini in your Google Workspace</title>
   <updated>2025-01-17T00:00:00+01:00</updated>
   <id>http://writing.jan.io/2025/01/17/how-to-disable-google-gemini-in-your-workspace.html</id>
   <content type="html">&lt;p&gt;Google has started to aggressively out-roll their Gemini AI service and is
opting everyone into not only the feature but also a 17% price hike come March.&lt;/p&gt;

&lt;p&gt;For Google Workspace users, there is no obvious way to out-out of Gemini in
Gmail or Google Docs.&lt;/p&gt;

&lt;p&gt;Within a day of this arriving, I received multiple employee complaints about
the invasiveness of the service in the respective UIs. That sufficiently
motivated me to find a way to turn it all off.&lt;/p&gt;

&lt;p&gt;After touring &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;admin.google.com&lt;/code&gt; for a good while I concluded there is no &lt;em&gt;off&lt;/em&gt;
switch. But I can now tell you how to get one (or four, to be precise), check
this out:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/no-gemini.png&quot; alt=&quot;screenshot of the google workspace admin panel with four areas where google gemini can be turned off&quot; style=&quot;margin-left: -4em&quot; /&gt;&lt;/p&gt;

&lt;p&gt;How do you get this? Simple-ish! Talk to support. The upper right corner of your
Workspace admin dashboard has question mark icon that lets you contact support.
I opted for a chat and after three escalations to higher levels and (nicely)
persisting I wanted Gemini to be disabled (rather than replying to their
somewhat useless banter) my fourth support contact was able to enable the
disable UI for me.&lt;/p&gt;

&lt;p&gt;You will find it under &lt;em&gt;Generative AI&lt;/em&gt; -&amp;gt; &lt;em&gt;Gemini for Workspace&lt;/em&gt; after it has
been enabled for you.&lt;/p&gt;

&lt;p&gt;This won’t opt you out of the announced price increase, but at least the
invasive UI clutter and questionable results are disabled.&lt;/p&gt;

&lt;p&gt;Good luck!&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Chocolate Chip Cookie Recipe (vegan &amp; gluten-free)</title>
   <updated>2024-02-03T00:00:00+01:00</updated>
   <id>http://writing.jan.io/2024/02/03/chocolate-chip-cookie-recipe.html</id>
   <content type="html">&lt;p&gt;&lt;img src=&quot;/img/cookies.jpg&quot; title=&quot;Chocolate Chip Cookies&quot; id=&quot;cookies&quot; style=&quot;float: right;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://narrativ.es/@janl/111868349825823336&quot;&gt;I made cookies&lt;/a&gt;, folks were interest in the recipe, I scrounged this from
multiple others on the web to make this exact kind.&lt;/p&gt;

&lt;h2 id=&quot;ingredients&quot;&gt;Ingredients&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;280 grams gluten-free flour, cake mix&lt;/li&gt;
  &lt;li&gt;1 tea spoon backing powder&lt;/li&gt;
  &lt;li&gt;1 tea spoon Psyllium seed husks&lt;/li&gt;
  &lt;li&gt;1/2 tea spoon salt&lt;/li&gt;
  &lt;li&gt;2 table spoons sweetener, I use half and half maple sirup and agave syrup&lt;/li&gt;
  &lt;li&gt;3 dashes of cinnamon&lt;/li&gt;
  &lt;li&gt;1 pinch of fresh vanilla&lt;/li&gt;
  &lt;li&gt;170 grams vegan butter, let soften in 2x2cm cubes for 10–15 minutes&lt;/li&gt;
  &lt;li&gt;60 grams vegan cream cheese&lt;/li&gt;
  &lt;li&gt;1 linseed “egg” (1.5 table spoons linseed flour, 3 table spoons boiling water, mix and let sit for 3 minutes)&lt;/li&gt;
  &lt;li&gt;vegan chocolate chips to taste, a crushed chocolate bar will do, dark ones to taste&lt;/li&gt;
  &lt;li&gt;crushed peanuts, pistachios and walnut seeds to taste
    &lt;ul&gt;
      &lt;li&gt;Optional, replace one nut variety with 3 generous tea spoons raw cocoa powder OR add cocoa to the whole batch, in which case, use 6 generous tea spoons&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;preparation&quot;&gt;Preparation&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;pre heat oven to 180ºC, over/under heat&lt;/li&gt;
  &lt;li&gt;first bowl: mix all the dry ingredients thoroughly&lt;/li&gt;
  &lt;li&gt;second bowl:
    &lt;ul&gt;
      &lt;li&gt;separately mix all the wet ingredients except for the linseed “egg” and mix thoroughly for 2 minutes&lt;/li&gt;
      &lt;li&gt;add the linseed egg and mix thoroughly for a further 5 minutes, hand mixer or kitchen aid recommended
        &lt;ul&gt;
          &lt;li&gt;the result should be creamy &amp;amp; fluffy and of a unified colour&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;combine bowls and mix briefly, a minute tops&lt;/li&gt;
  &lt;li&gt;separate 1/4 of the dough into your other bowl&lt;/li&gt;
  &lt;li&gt;add 1/4 of the chocolate chips and one of the crushed nuts variety, mix briefly&lt;/li&gt;
  &lt;li&gt;use two table spoons to make ca. 1–1.3cm thick and 4–6cm wide circle splotches onto baking paper leave 2cm space at least&lt;/li&gt;
  &lt;li&gt;repeat with 1/4th of the dough until you are out of nuts and/or cocoa&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;baking&quot;&gt;Baking&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;put backing paper on a grill sheet, or pre-heat while the oven warms baking sheet in a pinch&lt;/li&gt;
  &lt;li&gt;bake until the sides and top of the cookies have started to get brown for a good five minutes, approximately 15 minutes&lt;/li&gt;
  &lt;li&gt;when unloading, the cookies are still very soft and fragile, use spatular gently to move to a wooden cutting board for cooling off&lt;/li&gt;
  &lt;li&gt;let cool for 20–30 minutes&lt;/li&gt;
  &lt;li&gt;serve with favourite hot and cold beverages depending on season&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Yum.&lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>Ebike Recommendations</title>
   <updated>2024-02-02T00:00:00+01:00</updated>
   <id>http://writing.jan.io/2024/02/02/ebike-recommendations.html</id>
   <content type="html">&lt;p&gt;I’m in the market for an ebike&lt;sup&gt;&lt;a href=&quot;#f1&quot;&gt;1&lt;/a&gt;&lt;/sup&gt; and &lt;a href=&quot;https://narrativ.es/@janl/111861346146461992&quot;&gt;I asked around&lt;/a&gt; to
figure out what is important when making a purchase decision. I am not asking
for specific bike recommendations, but rather what criteria are important for
making a decision. The responses were useful and I’m summarising them here,
roughly grouped by topic.&lt;/p&gt;

&lt;h2 id=&quot;bike-tech&quot;&gt;Bike Tech&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;If you (like me) know a lot about “acoustic”&lt;sup&gt;&lt;a href=&quot;#f2&quot;&gt;2&lt;/a&gt;&lt;/sup&gt; bikes, all that still applies.&lt;/li&gt;
  &lt;li&gt;Avoid bikes with custom parts to ensure you have an easier time repairing this
long-term.
    &lt;ul&gt;
      &lt;li&gt;This includes all-inclusive brands like VanMoof, Sushi or Cowboy.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Having lots of gears is less important on ebikes. Some folks prefer even no
gears, even on hilly terrain.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;weight&quot;&gt;Weight&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;weight is a mobility concern if you ever have to manoeuvre the bike up or down
stairs.&lt;/li&gt;
  &lt;li&gt;25kg is not a bad weight for a (men’s) model.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;maintenance&quot;&gt;Maintenance&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Have a local shop that you trust to stick around for repairs.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;electrics&quot;&gt;Electrics&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Motors are usually custom and there is new tech every ~two years. Go with big
established brands like Shimano, Bosch or Yamaha.&lt;/li&gt;
  &lt;li&gt;Aim for easy battery removal so you can store and charge it safely.&lt;/li&gt;
  &lt;li&gt;Avoid rear-wheel motors, pedal-hub it is.
    &lt;ul&gt;
      &lt;li&gt;&lt;em&gt;Update:&lt;/em&gt; modern rear-wheel motors are getting better and are used in
overall more lightweight bikes, keep avoiding older ones.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Update:&lt;/em&gt; Throttles (ask the bike to go on its own) are not classified as bikes in Germany
but might be a neat feature if they are available in your jurisdiction.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;driving-experience&quot;&gt;Driving Experience&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Always test drive in situations you are going to use the bike.
    &lt;ul&gt;
      &lt;li&gt;Use bike rental shops or bike sharing programmes to get access to a trial
bike.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Motor responsiveness varies, try out what suits you better, immediate power or
more delayed action.&lt;/li&gt;
  &lt;li&gt;“Ebikes changed my life, I even sold my car”.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;purchase&quot;&gt;Purchase&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Avoid secondhand bikes because motors can be shot and they can’t really be
replaced.&lt;/li&gt;
  &lt;li&gt;If you want to save some money, go with previous year’s models, but no older
than two years.&lt;/li&gt;
  &lt;li&gt;Add 1500€ to your “acoustic” bike budget for an ebike.&lt;/li&gt;
  &lt;li&gt;Cheap bikes are crap.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;—&lt;/p&gt;

&lt;p&gt;&lt;a name=&quot;f1&quot;&gt;&lt;/a&gt;
&lt;small&gt;1. I’m going with &lt;a href=&quot;https://www-cs-faculty.stanford.edu/~knuth/email.html#:~:text=A%20note%20on%20email%20versus%20e-mail&quot;&gt;Don Knuth on dropping the
hyphen&lt;/a&gt; here as soon as possible.&lt;/small&gt;&lt;/p&gt;

&lt;p&gt;&lt;a name=&quot;f2&quot;&gt;&lt;/a&gt;
&lt;small&gt;2. 😂😘&lt;/small&gt;&lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>Save Co.Up</title>
   <updated>2019-12-17T00:00:00+01:00</updated>
   <id>http://writing.jan.io/2019/12/17/save-co-up.html</id>
   <content type="html">&lt;p&gt;Story Time: When I was new in Berlin in 2007, I had worked from home as a freelance consultant for many years and I was ready to think about getting an office. One of the reasons why I was moving to Berlin was to have more opportunities to meet likeminded people.&lt;/p&gt;

&lt;p&gt;In the city I moved to Berlin from, that is otherwise lovely, everybody was very much doing their own thing. Open source and community was not a topic at the time, and I didn’t feel rooted enough to start something. From Berlin I knew there was a PHP user group that people I knew regularly attended. That sounded exciting to me, I wanted to be part of something like that. One day, I found myself in a U-Bahn towards RailsConf EU randomly meeting &lt;a href=&quot;https://twitter.com/langalex&quot;&gt;@langalex&lt;/a&gt; on our way to RailsConf EU and we started talking. His company with &lt;a href=&quot;https://twitter.com/freaklikeme&quot;&gt;@freaklikeme&lt;/a&gt; had just moved moved into a new office space, but they had a few desks to spare. At the time coworking wasn’t really a thing, but we had heard of it, so the idea to move in with them made immediate sense. Some time in 2008 I became the first renter of what was later to become &lt;a href=&quot;https://twitter.com/co_up&quot;&gt;@co_up&lt;/a&gt;. Soon joined by…&lt;/p&gt;

&lt;p&gt;Soon joined by now Berlin veteran luminaries like &lt;a href=&quot;https://twitter.com/kriesse,&quot;&gt;@kriesse,&lt;/a&gt; &lt;a href=&quot;https://twitter.com/klimpong&quot;&gt;@klimpong&lt;/a&gt; and &lt;a href=&quot;https://twitter.com/roidrage&quot;&gt;@roidrage&lt;/a&gt; we had a lot of fun working our respective jobs, share lunches in good company and exchange knowledge about the technologies we were interested at the time. &lt;a href=&quot;https://twitter.com/langalex&quot;&gt;@langalex&lt;/a&gt; positively spent weeks teaching me git on the side.&lt;/p&gt;

&lt;p&gt;At the time, I had occasion to go to California where I met &lt;a href=&quot;https://twitter.com/dreid,&quot;&gt;@dreid,&lt;/a&gt; who I knew from my open source work on Erlang and CouchDB. He introduced me to the concept of a Super Happy Dev House (SHDH). Basically a weekend of hacking on fun stuff at the office.&lt;/p&gt;

&lt;p&gt;One of the most mindblowing (to me at the time) things about SHDH was that it came with instructions on how to run your own: &lt;a href=&quot;http://termie.pbwiki.com/HowToDevHouse&quot; title=&quot;termie / HowToDevHouse&quot;&gt;http://termie.pbwiki.com/HowToDevHouse&lt;/a&gt;. I thought how hard can it be? We have a nice office space, we had many friends who might be up for it.&lt;/p&gt;

&lt;p&gt;So we ran one. Introduction and recap links: &lt;a href=&quot;http://jan.prima.de/plok/archives/161-Introducing-DevHouseBerlin.html&quot; title=&quot;Introducing DevHouseBerlin  - plok&quot;&gt;http://jan.prima.de/plok/archives/161-Introducing-DevHouseBerlin.html&lt;/a&gt; &lt;a href=&quot;http://jan.prima.de/plok/archives/163-DevHouseBerlin-1.html&quot; title=&quot;DevHouseBerlin #1  - plok&quot;&gt;http://jan.prima.de/plok/archives/163-DevHouseBerlin-1.html&lt;/a&gt; It was a great success.&lt;/p&gt;

&lt;p&gt;I met many fun people there over the weekend, many of which are still active in Berlin actively doing community work. In the recap, you can read about how the &lt;a href=&quot;https://twitter.com/SoundCloud&quot;&gt;@SoundCloud&lt;/a&gt; founders popped by and hacked up a web-iTunes using jQuery UI on top of their API.&lt;/p&gt;

&lt;p&gt;Just to highlight a single connection here, every single developer event I have done in Berlin that required sponsorship has since been supported financially by SoundCloud. And all attendees have countless of similar stories each.&lt;/p&gt;

&lt;p&gt;Long story long: we caught a first glimpse of what benefits to the community it had to run open and accessible events, and we all would double down hard after this.&lt;/p&gt;

&lt;p&gt;Our little office community quickly outgrew the original office space and we started looking for a larger place and settled eventually on what became the original &lt;a href=&quot;https://twitter.com/co_up:&quot;&gt;@co_up:&lt;/a&gt; a larger coworking space, and success didn’t stop there.&lt;/p&gt;

&lt;p&gt;On top of the coworking, we also kept organising events, like &lt;a href=&quot;https://twitter.com/berlinjs&quot;&gt;@berlinjs&lt;/a&gt; and &lt;a href=&quot;https://twitter.com/upfront_ug&quot;&gt;@upfront_ug&lt;/a&gt;, which have since long been surpassed in number and frequency by multiple events every week (h/t’s &lt;a href=&quot;https://twitter.com/rmehner&quot;&gt;@rmehner&lt;/a&gt; &lt;a href=&quot;https://twitter.com/sheley&quot;&gt;@sheley&lt;/a&gt; &lt;a href=&quot;https://twitter.com/carolstran&quot;&gt;@carolstran&lt;/a&gt;. And most recently the inaugural &lt;a href=&quot;https://twitter.com/queerjs&quot;&gt;@queerjs&lt;/a&gt; (h/t &lt;a href=&quot;https://twitter.com/nikkitaFTW&quot;&gt;@nikkitaFTW&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A few years in, we again could make good use of a larger office space and a new floor had opened up in the same building and put up a little fundraiser to be able to cover renovations. In particular, we ordered custom-built folding tables that allowed us to transform the floor from coworking by day into a meetup space by night in the matter of five minutes. The &lt;a href=&quot;https://twitter.com/co_up&quot;&gt;@co_up&lt;/a&gt; third floor you all know and love today was born and we started to run events down there, and kept the coworking separate on the fifth floor.&lt;/p&gt;

&lt;p&gt;One special one-off event, heavily inspired by the &lt;a href=&quot;https://twitter.com/RailsGirls&quot;&gt;@RailsGirls&lt;/a&gt; project, we ran a JavaScript for Absolute Beginners workshop (JSFAB. h/t to &lt;a href=&quot;https://twitter.com/theophani&quot;&gt;@theophani&lt;/a&gt; and &lt;a href=&quot;https://twitter.com/marijnjh&quot;&gt;@marijnjh&lt;/a&gt; for the inaugural teaching materials &lt;a href=&quot;https://writing.jan.io/2012/07/22/jsfab.html&quot; title=&quot;JavaScript for Absolute Beginners&quot;&gt;https://writing.jan.io/2012/07/22/jsfab.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;JSFAB brought willing learners and willing teachers together in a safe space to enjoy technological education. For free. Even while planning the event, it became clear that this model of well-educated people with well-paid jobs using their privilege giving back to the community wasn’t limited to JavaScript, and Open Tech School was born at the same time, as an umbrella organisation for community-teaching, but for any topic. &lt;a href=&quot;http://www.opentechschool.org&quot;&gt;http://www.opentechschool.org&lt;/a&gt;— Open Tech School is worth its own thread, but they have run many hundrends of meetups for any and all topic imaginable. They’ve enhanced the initial teaching weekends with continuous learning groups that kept people growing, a proper, completely volunteer run school, for anyone, for free.&lt;/p&gt;

&lt;p&gt;I frequently get asked about how to transplant, for example, &lt;a href=&quot;https://twitter.com/berlinjs&quot;&gt;@berlinjs&lt;/a&gt; into another city, and while donated office space is often available, there is usually a commercial quid-pro-quo, when a company opens their doors, which often is to the detriment to the event itself.&lt;/p&gt;

&lt;p&gt;My first reaction usually is: well, for starters, you need a &lt;a href=&quot;https://twitter.com/co_up&quot;&gt;@co_up&lt;/a&gt;. A not-for-profit community space, centrally located, lots of tasty street food nearby (so you can avoid terrible pizza sponsorships), that is free to use for free community events. That’s then usually where the conversation stops, and I have to reflect that what &lt;a href=&quot;https://twitter.com/langalex&quot;&gt;@langalex&lt;/a&gt; and &lt;a href=&quot;https://twitter.com/freaklikeme&quot;&gt;@freaklikeme&lt;/a&gt; have set up with &lt;a href=&quot;https://twitter.com/co_up&quot;&gt;@co_up&lt;/a&gt; and what the rest of the community has done to run with that is properly unique.&lt;/p&gt;

&lt;p&gt;I am no longer able to remember and recount all the magical things that happened when one community or another came together. 10s of 1000s of people have been through &lt;a href=&quot;https://twitter.com/co_up&quot;&gt;@co_up&lt;/a&gt; events. 1000s have used events at &lt;a href=&quot;https://twitter.com/co_up&quot;&gt;@co_up&lt;/a&gt; as a first step into the community, like I did with PHP all those years back. Again 1000s have found new friends, new employers, new co-founders, even new partners and the collective benefit of bringing all these people together in the past 12 years is immeasurable.&lt;/p&gt;

&lt;p&gt;Unfortunately, as you already know, capitalism. All this success has downsides. One of which is property speculation in the city going rampant. We finally have a rent break in place, but that’s after rent hikes of over 2x in 10 years just a few blocks away from &lt;a href=&quot;https://twitter.com/co_up&quot;&gt;@co_up&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Over the years, we have seen the building &lt;a href=&quot;https://twitter.com/co_up&quot;&gt;@co_up&lt;/a&gt; is located in transform from predominantly producing industry to IT. A lot less of which likely would have happened, if &lt;a href=&quot;https://twitter.com/co_up&quot;&gt;@co_up&lt;/a&gt; didn’t prove the viability of the location. None of that, however, counts today.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://twitter.com/co_up&quot;&gt;@co_up&lt;/a&gt; third floor rent is getting jacked up significantly in January and &lt;a href=&quot;https://twitter.com/co_up&quot;&gt;@co_up&lt;/a&gt; is running a fundraiser to get the community to support paying the new rent. For me, this is an extreme no-brainer. Even after moving out of &lt;a href=&quot;https://twitter.com/co_up,&quot;&gt;@co_up,&lt;/a&gt; &lt;a href=&quot;https://twitter.com/neighbourh00die&quot;&gt;@neighbourh00die&lt;/a&gt; kept supporting it.&lt;/p&gt;

&lt;p&gt;From what I can tell, the fundraiser is mainly supported by individuals who experienced the benefit of a not-for-profit event space first hand and this warms my heart. However, the funding goal is mere peanuts for Berlin’s well-funded tech companies and startups.&lt;/p&gt;

&lt;p&gt;The equation that supporting &lt;a href=&quot;https://twitter.com/co_up&quot;&gt;@co_up&lt;/a&gt; quickly amortises your recruiting costs, some of which are many times the monthly rent required to keep &lt;a href=&quot;https://twitter.com/co_up&quot;&gt;@co_up&lt;/a&gt; open, seems not to sink in.&lt;/p&gt;

&lt;p&gt;Aside from a few trusted partners, Berlin’s startups are, unsurprisingly, happy to exploit the free support system, but I think it is a disgrace. If your company has any budgets left for 2019, or if you are ready to commit, even just a little monthly donation (say 100€), you can help make one of the pillars of Berlin’s community sustainable for the long term. Give generously, and &lt;a href=&quot;https://twitter.com/hashtag/saveCoUp&quot;&gt;#SaveCoUp&lt;/a&gt;. Take a minute to scroll through the hashtag and see how many people, how many user groups and meetups you could be supporting.&lt;/p&gt;

&lt;h3 id=&quot;bonus-story&quot;&gt;Bonus Story&lt;/h3&gt;

&lt;p&gt;One more bonus story. In 2015 during the West African Ebola crisis, a non-profit running vaccination programs in the region started setting up a development team in Berlin to be able to move faster. because &lt;a href=&quot;https://twitter.com/co_up&quot;&gt;@co_up&lt;/a&gt; was a natural fit for such a team, they settled quickly.&lt;/p&gt;

&lt;p&gt;At the time, the Ebola-affected countries were dealing with many compounding crisis, including a lack of infrastructure. The non-profit set out to build tools to help first responders that turned pen-and-paper-based processes into mobile web apps.&lt;/p&gt;

&lt;p&gt;That allowed first-responders to help more people faster, and make their work more organised and collaborative. When trying to contain an epidemic, time and speed are a factor.&lt;/p&gt;

&lt;p&gt;Because of the lack of infrastructure, the team had already settled on &lt;a href=&quot;https://twitter.com/CouchDB&quot;&gt;@CouchDB&lt;/a&gt; and &lt;a href=&quot;https://twitter.com/pouchdb&quot;&gt;@pouchdb&lt;/a&gt; for their technological foundation, because no other technology was readily available and open source that would allow them to quickly build mobile web apps that worked offline.&lt;/p&gt;

&lt;p&gt;One day over lunch, they asked around if the others at &lt;a href=&quot;https://twitter.com/co_up&quot;&gt;@co_up&lt;/a&gt; knew anyone who knew &lt;a href=&quot;https://twitter.com/CouchDB&quot;&gt;@CouchDB&lt;/a&gt;. As &lt;a href=&quot;https://twitter.com/CouchDB&quot;&gt;@CouchDB&lt;/a&gt; project management chair and longest standing contributor, I’ve had talked to each and every person at &lt;a href=&quot;https://twitter.com/co_up&quot;&gt;@co_up&lt;/a&gt; about it, if they didn’t stop me quickly enough and so we quickly got put together.&lt;/p&gt;

&lt;p&gt;In the course of about 12 months, my team at &lt;a href=&quot;https://twitter.com/Neighbourh00die&quot;&gt;@Neighbourh00die&lt;/a&gt; and I fully joined &lt;a href=&quot;https://twitter.com/eHealth_africa&quot;&gt;@eHealth_africa&lt;/a&gt; to build out the Berlin development team. We grew from ~6 to 29 in the course of six weeks and helped build tools that eventually ensured that the Ebola endemic could be stopped.&lt;/p&gt;

&lt;p&gt;We also worked on the apps that ran the first clinical trial that later lead to the first Ebola vaccine in history.&lt;/p&gt;

&lt;p&gt;A lot of things came together to make this happened, but if it weren’t for &lt;a href=&quot;https://twitter.com/co_up&quot;&gt;@co_up&lt;/a&gt;, it would likely have gone a lot slower.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Community Legacy</title>
   <updated>2017-09-18T00:00:00+02:00</updated>
   <id>http://writing.jan.io/2017/09/18/community-legacy.html</id>
   <content type="html">&lt;p&gt;Berlin’s most influential &amp;amp; groundbreaking coworking space &lt;a href=&quot;http://co-up.de/2017/09/14/end-of-one-journey.html&quot;&gt;Co.Up is closing shop&lt;/a&gt;. Their famous event space remains open.&lt;/p&gt;

&lt;p&gt;As Co.Up’s first ever renter, nine years ago, about a year before it even became Co.Up, I feel obliged to say a few words. This is, however, not a eulogy.&lt;/p&gt;

&lt;p&gt;On the surface, a coworking space is office space with tables for rent, and there’s at least one in every major city today. When what eventually become &lt;a href=&quot;https://vimeo.com/8435403&quot;&gt;Co.Up started in fall of 2008&lt;/a&gt;, coworking was decidedly not a thing, not usual, not common.&lt;/p&gt;

&lt;p&gt;Of course, people have shared office space since there was office space, but a dedicated office sharing culture, a notion of a temporary home for digital nomads with globally shared values, that was new. And Co.Up was at the forefront of this now ubiquitous movement.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;sad to hear about the closing of @co_up as a coworking space. your atmosphere was formative for me. thank you, @freaklikeme and @langalex.
— &lt;a href=&quot;https://twitter.com/electricgecko/status/908663706011209728&quot;&gt;@electricgecko&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In the past ten years, and without hyperbole, Co.Up has been the foundation and nurturing space for sustainable communities that started with technology, but now spans culture, education and the arts.&lt;/p&gt;

&lt;p&gt;How is Co.Up different from other coworking spaces in this regard? The openness and willingness to try things that are different, that are unconventional, but ultimately the right thing to do.&lt;/p&gt;

&lt;p&gt;Co.up was born out of the desire of &lt;a href=&quot;http://upstre.am&quot;&gt;Upstream&lt;/a&gt; founders &lt;a href=&quot;http://twitter.com/langalex&quot;&gt;Alex&lt;/a&gt; &amp;amp; &lt;a href=&quot;http://twitter.com/freaklikeme&quot;&gt;Thilo&lt;/a&gt; to have a nice office they can share with others. Alex’s &amp;amp; Thilo’s community involvement made it an attractive space for other technologists to hang out. Later, and with Aleks’s initiative and support, other communities found a home at Co.Up.&lt;/p&gt;

&lt;p&gt;These communities and the coworkers participating in them enabled thousands of people per year to connect, start out their careers in Berlin, find jobs, find partners in crime^Wbusiness, found companies, start &lt;a href=&quot;http://co-up.de/events.html&quot;&gt;user groups&lt;/a&gt;. Even &lt;a href=&quot;http://opentechschool.org&quot;&gt;OpenTechSchool&lt;/a&gt;, a global initiative in volunteer education, has its roots at Co.Up. On top of all this, countless friendships have found a beginning at Co.Up that have since long outlived the confines of the offices at Adalbertstraße. And this is only a tiny sliver of groups that started out at Co.Up.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Thanks co.up for being my work home for many years, for all the people I got to meet, and everything you did for the community :’( https://twitter.com/co_up/status/908617161308082176
— &lt;a href=&quot;https://twitter.com/kriesse/status/908660646778212354&quot;&gt;@kriesse&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Co.Up’s probably most radical initiative was the opening of a 100+person event space that was free for events that were open to the public. I keep meeting folks that say they want to start something and they need place to meet and every time it comes down to Co.Up’s generosity to support the Berlin communities pro-bono that enables so much. In other cities and contexts, the deal usually involves a commercial involvement, hindering many initiatives.&lt;/p&gt;

&lt;p&gt;Luckily, Co.Up’s event space remains open.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Met lots of great people by way of @langalex and @freaklikeme, and the team at @co_up. All the best on their next journey.
— &lt;a href=&quot;https://twitter.com/klimpong/status/908656762731008000&quot;&gt;@klimpong&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Personally, I’ve given up my desk at Co.Up in 2015 after founding &lt;a href=&quot;http://neighbourhood.ie&quot;&gt;Neighbourhoodie&lt;/a&gt; and needing a space of our own, but we continue to support Co.Up’s event space financially, like &lt;a href=&quot;http://co-up.de/2016/06/10/thanks.html&quot;&gt;many other Berlin companies&lt;/a&gt;. I’ve simply outgrown the model of a coworking space and now Upstream is going through the same transition. As they mention in their closing blog post, success is a matter of focus, and their focus is now their software business &lt;a href=&quot;http://cobot.me&quot;&gt;Cobot&lt;/a&gt;, a very successful coworking space management software, so they are still very much support the coworking community.&lt;/p&gt;

&lt;p&gt;My thanks to Alex, Thilo &amp;amp; Aleks for all their hard work. Your dedication will live on in the DNA of so many Berlin communities, people, and hearts.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Understanding the Facebook vs Apache Software Foundation License Kerfuffle</title>
   <updated>2017-08-19T00:00:00+02:00</updated>
   <id>http://writing.jan.io/2017/08/19/understanding-the-facebook-vs-asf-license-kerfuffle.html</id>
   <content type="html">&lt;p&gt;Translation: &lt;a href=&quot;/2017/08/19/understanding-the-facebook-vs-asf-license-kerfuffle.fr.html&quot;&gt;French&lt;/a&gt; by &lt;a href=&quot;https://twitter.com/gnieh_&quot;&gt;@gnieh_&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclaimers: I am not a lawyer. I’m not speaking for Facebook, the ASF, or CouchDB. This is a personal view on the matter.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;tl;dr:&lt;/strong&gt; Projects at the Apache Software Foundation can no longer use dependencies that are distributed under Facebook’s “BSD+Patents” license, including &lt;a href=&quot;https://github.com/facebook/react&quot;&gt;React&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;intent-of-this-post&quot;&gt;Intent of this post&lt;/h2&gt;

&lt;p&gt;I’m trying to explain the situation in simple language and without bias. There is a lot of misinformation around this issue that I hope I can clear up here. If there is anything that &lt;strong&gt;I&lt;/strong&gt; got wrong here, please &lt;a href=&quot;https://twitter.com/janl&quot;&gt;do let me know&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;what-happened&quot;&gt;What happened?&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;em&gt;April 20th:&lt;/em&gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/LEGAL-303&quot;&gt;Apache Cassandra asked ASF legal if they could use RocksDB as a dependency&lt;/a&gt;, which was then licensed as BSD+Patents or GPL2.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;em&gt;June 17th:&lt;/em&gt; After a lengthy discussion, ASF’s Vice President of Legal Affairs Chris A. Mattmann &lt;a href=&quot;https://issues.apache.org/jira/browse/LEGAL-303?focusedCommentId=16052957&amp;amp;page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16052957&quot;&gt;concluded that Facebook’s BSD+Patents &lt;strong&gt;license&lt;/strong&gt; is not compatible&lt;/a&gt; with ASF’s &lt;strong&gt;policies&lt;/strong&gt; about dependencies.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;em&gt;July 15th:&lt;/em&gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/LEGAL-303?focusedCommentId=16088730&amp;amp;page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16088730&quot;&gt;RocksDB changes its dual-license from BSD+Patents to Apache License 2.0 &amp;amp; GPL2&lt;/a&gt; (that means you can choose to use either license when adding RocksDB as a dependency). As a result, RocksDB is now compatible with all ASF policies again.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;em&gt;July 17th:&lt;/em&gt; upon searching for other dependencies with the BSD+Patents license, React is singled out and the &lt;a href=&quot;https://github.com/facebook/react/issues/10191&quot;&gt;ASF is asking for clarification&lt;/a&gt; in the hopes that it can follow the RocksDB example.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;em&gt;August 18th:&lt;/em&gt; &lt;a href=&quot;https://code.facebook.com/posts/112130496157735/explaining-react-s-license/&quot;&gt;Facebook releases a statement&lt;/a&gt; and &lt;a href=&quot;https://github.com/facebook/react/issues/10191#issuecomment-323486580&quot;&gt;closes the respective GitHub issue&lt;/a&gt; stating they are staying with the BSD+Patent license.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;why-did-it-happen&quot;&gt;Why did it happen?&lt;/h2&gt;

&lt;p&gt;To understand the conflict, we need to examine what the ASF and Facebook respectively are trying to achieve with their policies and licenses.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Aside: I want to make doubly clear that I’m not trying to take sides in any of this, I’m merely explaining the underlying intentions of very dense legal texts. In my opinion, both Facebook and the ASF can do whatever they want in terms of licensing. And if their goals differ, that might lead to conflict, like in this case. That’s unfortunate, but that’s the messy world we live in.&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&quot;the-asf-side&quot;&gt;The ASF Side&lt;/h3&gt;

&lt;p&gt;It is the ASF’s &lt;strong&gt;Policy&lt;/strong&gt;, that anyone using Apache projects as a dependency for an Open Source or commercial project can do so without (m)any restrictions.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0.html&quot;&gt;The Apache &lt;strong&gt;License&lt;/strong&gt; 2.0&lt;/a&gt; lists a few restrictions, briefly:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;you can’t use the Apache project’s name or trademark(s).&lt;/li&gt;
  &lt;li&gt;you must include a copy of the license and a notice that the project in question is being used by your project.&lt;/li&gt;
  &lt;li&gt;if you changed anything in the Apache project, you need to mention that too.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In return, the Apache &lt;strong&gt;License&lt;/strong&gt; 2.0 then grants you a &lt;strong&gt;copyright license&lt;/strong&gt; that lets you do whatever. This is what’s most relevant to other Open Source projects.&lt;/p&gt;

&lt;p&gt;It also grants you a &lt;strong&gt;patent license&lt;/strong&gt;, which is most relevant to commercial users of Apache projects.&lt;/p&gt;

&lt;p&gt;As an example, this means I can take Apache CouchDB and release it as a new commercial and closed-source database &lt;strong&gt;JanDB&lt;/strong&gt;. Given that I abide by the requirements mentioned in the Apache License 2.0 (as summarised above), with or without modifications, for free or for money or any other purpose I choose.&lt;/p&gt;

&lt;p&gt;This “downstream freedom” is a major intention of why the ASF exists in the first place and is as such encoded in their policies and licenses.&lt;/p&gt;

&lt;p&gt;Now, the Apache License 2.0 includes one more restriction and its part of the aforementioned &lt;strong&gt;patent license&lt;/strong&gt;. If you are using an Apache project you can’t use any of your patents to claim that the ASF or anyone else who is using that same project is infringing on your patent without losing the patent license to the Apache Project.&lt;/p&gt;

&lt;p&gt;In the JanDB example, if I hold a particular patent on database technology, I can’t sue any other CouchDB users over that patent, without also losing my patent license for CouchDB from the ASF. I can still sue them over other matters, including patents infringed on by other software the other companies are using.&lt;/p&gt;

&lt;p&gt;In order to make it simpler for Apache projects to decide what kind of licenses its dependencies can have, the ASF has created a &lt;a href=&quot;http://www.apache.org/legal/resolved.html&quot;&gt;handy overview of allowed, and disallowed licenses, and everything in between&lt;/a&gt;. The disallowed licenses are classified as “Category X” licenses. &lt;a href=&quot;http://www.apache.org/legal/resolved.html#category-x&quot;&gt;This list includes a number of very popular Open Source licenses including the GPL family&lt;/a&gt; and many others.&lt;/p&gt;

&lt;h3 id=&quot;the-facebook-side&quot;&gt;The Facebook Side&lt;/h3&gt;

&lt;p&gt;Facebook’s focus with its &lt;a href=&quot;https://github.com/facebook/react/blob/master/PATENTS&quot;&gt;BSD+Patents license&lt;/a&gt; is protection against so-called “frivolous” or “meritless” lawsuits. In short: if you are a big company with lots of money and exposure, enterprising assholes will try to come after you for whatever reason to legally extract some of that money or exposure. Patents are a prime vehicle for such asshattery.&lt;/p&gt;

&lt;p&gt;The BSD+Patents license is designed to minimise these lawsuits for Facebook, and with the August 18th decision they  have confirmed that this remains a high priority.&lt;/p&gt;

&lt;p&gt;The Facebook patent clause has a similar restriction to what the Apache License 2.0 states, except, it is broader in definition. Whereas the Apache License 2.0 version specifically restricts its clause to “the Work” (say Apache CouchDB), the Facebook patent license is revoked when &lt;strong&gt;any&lt;/strong&gt; “Patent Assertion” is brought up against Facebook.&lt;/p&gt;

&lt;p&gt;So if you have a patent that you think some part of Facebook infringes upon, but is unrelated to your use of React, you lose your patent license to React when you decide to sue Facebook over that patent. In the Apache License 2.0 case, you only lose the patent license if you assert the same infringement for the project you are yourself licensing (say Apache CouchDB in the “JanDB” example).&lt;/p&gt;

&lt;p&gt;In October 2014, Facebook &lt;a href=&quot;https://github.com/facebook/react/commit/dcf415c2b91ce52fd5d4dd02b70875ba9d33290f&quot;&gt;switched React from the Apache License 2.0 to BSD+Patents&lt;/a&gt; explicitly, because it contains a broader protection and in October 2016 have &lt;a href=&quot;https://issues.apache.org/jira/browse/LEGAL-303?focusedCommentId=16046579&amp;amp;page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16046579&quot;&gt;confirmed their intentions in call between the ASF and Facebook&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;what-does-that-mean&quot;&gt;What does that mean?&lt;/h2&gt;

&lt;p&gt;Projects at the Apache Software Foundation can not use any dependencies that are labelled as Category X by the ASF’s Legal team. This includes React + ecosystem projects that are also released by Facebook under the BSD+Patents license. Projects that already use such dependencies can not make any new releases past August 31st, 2017 including these dependencies, and have to migrate away from these dependencies now.&lt;/p&gt;

&lt;p&gt;Affected projects are (at least): Cordova, Superset, TrafficControl, Ambari, Allura, Whimsy, Spot, Myriad, CouchDB, Lens, SensSoft, &lt;del&gt;Sling&lt;/del&gt; &lt;em&gt;(Updated August 22nd).&lt;/em&gt;&lt;/p&gt;

&lt;h1 id=&quot;faq&quot;&gt;FAQ&lt;/h1&gt;

&lt;h2 id=&quot;what-are-the-options-for-asf-projects-now&quot;&gt;What are the options for ASF projects now?&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;remove the dependency altogether, or find an alternative that has a compatible license, and deal with whatever extra work that needs to be done to make the migration.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;move to a plugin architecture where the BSD+Patents licensed plugin is maintained and distributed outside of the ASF, but can be added by end-users.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Aside: it is true that there are projects that have (or claim) API compatibility with React, that come with compatible licenses. “Just use X” is a common recommendation that ignores a bunch of realities:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;React is more than just it’s core, but there is a wide ecosystem for many related tasks around building web apps. Many of those related projects are also licensed under BSD+Patents, so they can’t be used either, and few or no replacements exist for those. So “moving to X” is not as trivial as it might sound, depending on the level of other projects that are used on top of React. As a point of data, for CouchDB’s Fauxton admin interface, the porting work is estimated at 3+ months of dedicated developer time for switching away from React. In our case, it’s a significant time investment that takes valuable developer time away from other pressing matters.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;React includes a number of technical innovations, some folks have suggested to move to another framework that includes a subset of these innovations (say JSX), but not any of the other ones, including API compatibility. Moving to such a framework is significantly more work than the previous option. In CouchDB/Fauxton’s case, that is very likely prohibitive, but we’re still exploring options.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;why-didnt-the-asf-do-this-sooner&quot;&gt;Why didn’t the ASF do this sooner?&lt;/h2&gt;

&lt;p&gt;The ASF Legal team doesn’t proactively review any and all software licenses. This issue was brought up on &lt;a href=&quot;https://issues.apache.org/jira/browse/LEGAL-303&quot;&gt;April 20th, 2017&lt;/a&gt;, and resolved within the ASF by &lt;a href=&quot;https://issues.apache.org/jira/browse/LEGAL-303?focusedCommentId=16052957&amp;amp;page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16052957&quot;&gt;June 17th&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;what-does-that-mean-for-the-license-compatibility-with-other-apache-license-20-licensed-projects-using-react&quot;&gt;What does that mean for the license compatibility with other Apache License 2.0 licensed projects using React?&lt;/h2&gt;

&lt;p&gt;Nothing.&lt;/p&gt;

&lt;p&gt;The incompatibility is between the BSD+Patents license and ASF policy.&lt;/p&gt;

&lt;h2 id=&quot;what-does-this-mean-for-my-open-source-or-closed-source-project-that-uses-both-asf-and-react-software&quot;&gt;What does this mean for my (open source or closed source) project that uses both ASF and React software.&lt;/h2&gt;

&lt;p&gt;Nothing.&lt;/p&gt;

&lt;h2 id=&quot;what-does-this-means-for-memy-open-source-projectmy-company-that-is-using-react&quot;&gt;What does this means for me/my Open Source project/my company that is using React?&lt;/h2&gt;

&lt;p&gt;Nothing.&lt;/p&gt;

&lt;p&gt;Unless you are part of the ASF or another organisation that has a similar policy regarding the BSD+Patents license. There &lt;a href=&quot;https://github.com/facebook/react/issues/10191#issuecomment-315607798&quot;&gt;seem&lt;/a&gt; &lt;a href=&quot;https://github.com/facebook/react/issues/10191#issuecomment-316046522&quot;&gt;to&lt;/a&gt; &lt;a href=&quot;https://github.com/facebook/react/issues/10191#issuecomment-316102045&quot;&gt;be&lt;/a&gt; a &lt;a href=&quot;https://github.com/facebook/react/issues/10191#issuecomment-316180525&quot;&gt;few&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;why-was-rocksdb-relicensed-and-react-etal-werent&quot;&gt;Why was RocksDB relicensed and React et.al. weren’t?&lt;/h2&gt;

&lt;p&gt;I can only speculate, but React is a much much larger target, was differently licensed from the get go, and Facebook is interested in having RocksDB support in Cassandra and seems to be contributing that work. But I wouldn’t know for sure.&lt;/p&gt;

&lt;h2 id=&quot;arent-software-patents-just-the-worst&quot;&gt;Aren’t Software Patents just the worst?&lt;/h2&gt;

&lt;p&gt;Yes.&lt;/p&gt;

&lt;p&gt;But I’d rather have the ASF and Facebook be upfront about their intentions than leaving things in the dark like most other Open Source projects and companies.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Comprendre le bazar de licence entre Facebook et l’Apache Software Foundation</title>
   <updated>2017-08-19T00:00:00+02:00</updated>
   <id>http://writing.jan.io/2017/08/19/understanding-the-facebook-vs-asf-license-kerfuffle.fr.html</id>
   <content type="html">&lt;p&gt;&lt;em&gt;Note du traducteur : Ceci est la traduction du &lt;a href=&quot;http://writing.jan.io/2017/08/19/understanding-the-facebook-vs-asf-license-kerfuffle.html&quot;&gt;billet daté du 19 août 2017&lt;/a&gt;. Pour toute correction ou commentaire, &lt;a href=&quot;https://twitter.com/gnieh_&quot;&gt;contactez moi&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Avertissement : Je ne suis pas avocat. Je ne parle pas au nom de Facebook, l’ASF ou CouchDB. Ce billet reflète uniquement mon point de vue personnel sur le sujet.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;tl;dr :&lt;/strong&gt; Les projets de l’Apache Software Foundation ne peuvent plus utiliser de dépendances distribuées sous la licence Facebook « BSD+Patents », y compris &lt;a href=&quot;https://github.com/facebook/react&quot;&gt;React&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;but-de-ce-billet&quot;&gt;But de ce billet&lt;/h2&gt;

&lt;p&gt;J’essaierai d’expliquer la situation en des termes simples et sans biais. Beaucoup de fausses informations ont circulé sur le sujet et j’espère pouvoir clarifier la situation ici. S’il y a quoi que ce soit que &lt;strong&gt;je&lt;/strong&gt; ne rapporte pas correctement ici, &lt;a href=&quot;https://twitter.com/janl&quot;&gt;faites le moi savoir&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;que-sest-il-passé&quot;&gt;Que s’est-il passé ?&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;em&gt;20 avril :&lt;/em&gt; le projet &lt;a href=&quot;https://issues.apache.org/jira/browse/LEGAL-303&quot;&gt;Apache Cassandra a demandé au département légal de l’ASF s’il pouvait utiliser RocksDB en dépendance&lt;/a&gt;, qui était alors sous double licence BSD+Patents ou GPL2.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;em&gt;17 juin :&lt;/em&gt; après une longue discussion, le vice président des affaires légales de l’ASF, Chris A. Mettmann, &lt;a href=&quot;https://issues.apache.org/jira/browse/LEGAL-303?focusedCommentId=16052957&amp;amp;page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16052957&quot;&gt;a conclu que le &lt;strong&gt;licence&lt;/strong&gt; Facebook n’est pas compatible&lt;/a&gt; avec les &lt;strong&gt;règles&lt;/strong&gt; de l’ASF sur les dépendances.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;em&gt;15 juillet :&lt;/em&gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/LEGAL-303?focusedCommentId=16088730&amp;amp;page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16088730&quot;&gt;RocksDB change sa double licence de BSD+Patents à Apache License 2.0 &amp;amp; GPL2&lt;/a&gt; (cela signifie que vous pouvez choisir d’utiliser l’une ou l’autre des licences lorsque vous dépendez de RocksDB). Le résultat est que RocksDB est désormais à nouveau compatible avec toutes les règles de l’ASF.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;em&gt;17 juillet :&lt;/em&gt; en cherchant d’autres dépendances sous licence BDS+Patents, React particulièrement est remarqué et l’&lt;a href=&quot;https://github.com/facebook/react/issues/10191&quot;&gt;ASF demande des clarifications&lt;/a&gt; en espérant que React suive l’exemple de RocksDB.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;em&gt;18 août :&lt;/em&gt; &lt;a href=&quot;https://code.facebook.com/posts/112130496157735/explaining-react-s-license/&quot;&gt;Facebook publie un communiqué&lt;/a&gt; et &lt;a href=&quot;https://github.com/facebook/react/issues/10191#issuecomment-323486580&quot;&gt;ferme le ticket GitHub associé&lt;/a&gt;, annonçant qu’ils restent avec la licence BDS+Patents.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;pourquoi-cela-est-il-arrivé&quot;&gt;Pourquoi cela est-il arrivé ?&lt;/h2&gt;

&lt;p&gt;Afin de comprendre le conflit, nous devons examiner ce que l’ASF et Facebook essaient respectivement d’atteindre avec leurs règles et licences.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: j’aimerais mettre doublement au clair le fait que je n’essaie pas de prendre position dans tout ça, j’explique simplement les intentions sous-jacentes aux textes légaux qui sont très denses. Selon moi, Facebook et l’ASF peuvent chacun faire ce qu’ils veulent en terme de licence. Et si leurs buts diffèrent, cela peut conduire à des conflits comme c’est le cas ici. C’est dommage, mais c’est le monde désordonné dans lequel nous vivons.&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&quot;du-côté-de-lasf&quot;&gt;Du côté de l’ASF&lt;/h3&gt;

&lt;p&gt;La &lt;strong&gt;Politique&lt;/strong&gt; ASF veut que chacun puisse dépendre des projets Apache pour un projet Open Source ou commercial, et ce sans (trop de) restriction.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0.html&quot;&gt;La &lt;strong&gt;Licence&lt;/strong&gt; Apache 2.0&lt;/a&gt; liste quelques restrictions, en résumé :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;vous ne pouvez pas utiliser les noms ou marques déposées d’un projet Apache ;&lt;/li&gt;
  &lt;li&gt;vous devez inclure une copie de la licence et une note indiquant que le projet en question est utilisé par votre projet ;&lt;/li&gt;
  &lt;li&gt;si vous changez quoi que ce soit dans le projet Apache, vous devez aussi le mentionner.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;En retour, la &lt;strong&gt;Licence&lt;/strong&gt; Apache 2.0 vous accorde une &lt;strong&gt;licence de copyright&lt;/strong&gt; qui vous permet de faire ce que vous voulez. C’est ce qui est le plus important pour les autres projets Open Source.&lt;/p&gt;

&lt;p&gt;Elle vous accorde aussi une &lt;strong&gt;licence de brevet&lt;/strong&gt;, ce qui est plutôt important pour les utilisations commerciales de projets Apache.&lt;/p&gt;

&lt;p&gt;Par exemple, cela signifie que je peux prendre le projet Apache CouchDB et le redistribuer en tant que nouvelle base de données commerciale et propriétaire &lt;strong&gt;JanDB&lt;/strong&gt;. Tout cela sous réserve que je respecte les exigences de la Licence Apache 2.0 (tels que résumées ci-dessus), avec ou sans modification, gratuitement ou de manière payante, ou pour tout autre but de mon choix.&lt;/p&gt;

&lt;p&gt;Cette « liberté en aval » est la raison première de l’existence de l’ASF et est inscrite ainsi dans ses règles et licences.&lt;/p&gt;

&lt;p&gt;De plus, la licence Apache 2.0 inclut une autre restriction qui fait partie de la &lt;strong&gt;licence de brevet&lt;/strong&gt; susmentionnée. Si vous utilisez un projet Apache, vous ne pouvez utiliser aucun de vos brevets pour affirmer que l’ASF ou quiconque utilise le même projet viole votre brevet, sans perdre la licence de brevet sur le projet Apache.&lt;/p&gt;

&lt;p&gt;Dans l’exemple de JanDB, si je détiens un brevet sur les technologies de base de données, je ne peux attaquer aucun autre utilisateur de CouchDB sur ce brevet sans perdre dans le même temps ma licence de brevet pour CouchDB accordée par l’ASF. Je peux cependant toujours poursuivre ces utilisateurs pour d’autres raisons, incluant des violations de brevet par d’autres logiciels utilisés par ces utilisateurs.&lt;/p&gt;

&lt;p&gt;Afin de rendre plus facile la tâche de décider quel type de licences les dépendances des projets Apache peuvent avoir, l’ASF a créé un &lt;a href=&quot;http://www.apache.org/legal/resolved.html&quot;&gt;aperçu très pratique des licences autorisées et non autorisées, et tout ce qui est entre les deux&lt;/a&gt;. Les licences non autorisées sont classifiées dans les licences de « Catégorie X ». &lt;a href=&quot;http://www.apache.org/legal/resolved.html#category-x&quot;&gt;Cette liste inclut un bon nombre de licences Open Source très populaires dont la famille GPL&lt;/a&gt; et bien d’autres.&lt;/p&gt;

&lt;h3 id=&quot;du-côté-de-facebook&quot;&gt;Du côté de Facebook&lt;/h3&gt;

&lt;p&gt;L’intérêt de Facebook avec sa &lt;a href=&quot;https://github.com/facebook/react/blob/master/PATENTS&quot;&gt;licence BDS+Patents&lt;/a&gt; est la protection contre les poursuites dites « frivoles » ou « vexatoires ». En résumé, si vous êtes une grosse société avec beaucoup d’argent et une grande exposition, des enfoirés entreprenants essaierons de vous poursuivre pour quelque raison que ce soit afin de vous extorquer légalement cet argent et cette exposition. Les brevets sont un outil de choix pour ce genre de connerie.&lt;/p&gt;

&lt;p&gt;La licence BDS+Patents est conçue afin de minimiser ces poursuites judiciaires contre Facebook, et avec leur décision du 19 août, ils confirment que cela reste un grande priorité.&lt;/p&gt;

&lt;p&gt;La clause sur les brevets de Facebook a une restriction similaire à ce que la licence Apache 2.0 exprime, sauf que sa définition est plus large. Là où la version de la licence Apache 2.0 restreint spécifiquement sa clause au « Travail » (disons Apache CouchDB), la licence de brevet Facebook est révoquée dès lors qu’une &lt;strong&gt;quelconque&lt;/strong&gt; « revendication de brevet » est portée contre Facebook.&lt;/p&gt;

&lt;p&gt;Ainsi, si vous détenez un brevet que vous pensez être violé pas une partie de ce que fait Facebook, mais qui est sans lien avec React, vous perdez votre licence de brevet pour React dès lors que vous poursuivez Facebook sur ce brevet. Dans le cas de la licence Apache 2.0, vous perdez uniquement la licence de brevet si vous revendiquez cette violation par le projet que vous licenciez vous même (soit Apache CouchDB dans l’exemple de JanDB).&lt;/p&gt;

&lt;p&gt;En octobre 2014, Facebook &lt;a href=&quot;https://github.com/facebook/react/commit/dcf415c2b91ce52fd5d4dd02b70875ba9d33290f&quot;&gt;a changé la licence de React de la licence Apache 2.0 vers BSD+Patents&lt;/a&gt;, explicitement car elle contient une protection plus large, et en octobre 2016 Facebook a &lt;a href=&quot;https://issues.apache.org/jira/browse/LEGAL-303?focusedCommentId=16046579&amp;amp;page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16046579&quot;&gt;confirmé ses intentions dans un appel avec l’ASF&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;quest-ce-que-ça-signifie&quot;&gt;Qu’est ce que ça signifie ?&lt;/h2&gt;

&lt;p&gt;Les projets de l’Apache Software Foundation ne peuvent pas avoir de dépendances classées dans la Catégorie X par l’équipe légale de l’ASF. Cela inclut React ainsi que les projets de l’écosystème qui sont publiés par Facebook sous licence BSD+Patents. Les projets qui utilisent déjà ce genre de dépendances ne peuvent plus publier de nouvelles versions après le 31 août 2017 qui incluent ces dépendances et doivent se séparer de ces dépendances maintenant.&lt;/p&gt;

&lt;p&gt;Les projet affectés son (a minima) : Cordova, Superset, TrafficControl, Ambari, Whimsy, Spot, Myriad, CouchDB, Lens, SensSoft, Sling.&lt;/p&gt;

&lt;h1 id=&quot;faq&quot;&gt;FAQ&lt;/h1&gt;

&lt;h2 id=&quot;quelles-sont-désormais-les-options-des-projets-asf&quot;&gt;Quelles sont désormais les options des projets ASF ?&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Supprimer purement et simplement les dépendances ou trouver une alternative publiée sous une licence compatible et assumer tous le travail additionnel qu’une telle migration impose.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Migrer vers une architecture de plugin où les composants sous licence BSD+Patents sont maintenus et distribués en dehors de l’ASF, mais peuvent être ajoutés par les utilisateurs finaux.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Note : il existe des projets qui ont (ou affirment avoir) une API compatible avec React et qui sont publiés sous une licence compatible. « Tu n’as qu’à utiliser X » est un conseil classique qui ignore tout un tas de réalités :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;React est plus que son cœur et a un large écosystème pour de nombreuses tâches relatives à la construction d’applications web. Beaucoup de ces projets annexes sont aussi sous licence BSD+Patents et ne peuvent ainsi pas être utilisés non plus et peu ont un remplaçant compatible. Ainsi « migrer vers X » n’est pas aussi trivial qu’il n’y parait suivant le nombre d’autres projets qui sont utilisés par dessus React. À titre d’information, pour l’interface administrateur Fauxton de CouchDB, le travail de portage est estimé entre un et deux mois de travail à plein temps d’un développeur pour ne plus utiliser React. Dans notre cas, il s’agit d’un investissement en temps non négligeable qui prend un temps précieux au développeur sur d’autres sujets plus importants.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;React contient un bon nombre d’innovations techniques, et certaines personnes on suggéré de migrer vers un autre framework qui contient une partie de ces innovation (par exemple JSX) mais pas toutes, incluant la compatibilité de l’API. Migrer vers un tel framework requiert sensiblement plus de travail que l’option précédente. Dans le cas de CouchDB/Fauxton, ce coût est très probablement prohibitif, mais nous explorons encore des options.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;pourquoi-lasf-na-pas-fait-ce-travail-plus-tôt&quot;&gt;Pourquoi l’ASF n’a pas fait ce travail plus tôt ?&lt;/h2&gt;

&lt;p&gt;L’équipe légale de l’ASF ne relit pas de manière préventive toutes les licences logicielles. Ce problème a été soulevé le &lt;a href=&quot;https://issues.apache.org/jira/browse/LEGAL-303&quot;&gt;20 avril 2017&lt;/a&gt; et résolu par l’ASF le &lt;a href=&quot;https://issues.apache.org/jira/browse/LEGAL-303?focusedCommentId=16052957&amp;amp;page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16052957&quot;&gt;17 juin&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;quest-ce-que-cela-signifie-pour-la-compatibilité-de-licence-avec-dautres-projets-sous-licence-apache-20-utilisant-react&quot;&gt;Qu’est-ce que cela signifie pour la compatibilité de licence avec d’autres projets sous licence Apache 2.0 utilisant React ?&lt;/h2&gt;

&lt;p&gt;Rien.&lt;/p&gt;

&lt;p&gt;L’incompatibilité se trouve entre la licence BDS+Patents et la politique de l’ASF.&lt;/p&gt;

&lt;h2 id=&quot;quest-ce-que-cela-signifie-pour-moimon-projet-open-sourcema-société-qui-utilise-react&quot;&gt;Qu’est-ce que cela signifie pour moi/mon projet Open Source/ma société qui utilise React ?&lt;/h2&gt;

&lt;p&gt;Rien.&lt;/p&gt;

&lt;p&gt;À moins que vous fassiez partie de l’ASF ou de toute autre organisation qui a une politique similaire envers le licence BDS+Patents. Il &lt;a href=&quot;https://github.com/facebook/react/issues/10191#issuecomment-315607798&quot;&gt;semble&lt;/a&gt; &lt;a href=&quot;https://github.com/facebook/react/issues/10191#issuecomment-316046522&quot;&gt;y&lt;/a&gt; &lt;a href=&quot;https://github.com/facebook/react/issues/10191#issuecomment-316102045&quot;&gt;en&lt;/a&gt; avoir &lt;a href=&quot;https://github.com/facebook/react/issues/10191#issuecomment-316180525&quot;&gt;quelques-unes&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;pourquoi-rocksdb-a-été-relicencié-et-pas-react-et-les-autres&quot;&gt;Pourquoi RocksDB a été relicencié et pas React et les autres ?&lt;/h2&gt;

&lt;p&gt;Je peux seulement émettre des hypothèses, mais React est une beaucoup plus grosse cible, a été licencié différemment depuis le début, et Facebook semble intéressé par avoir RocksDB pris en charge par Cassandra et semble contribuer à ce travail. Mais je ne peux en être sûr.&lt;/p&gt;

&lt;h2 id=&quot;les-brevets-logiciels-ne-sont-ils-pas-juste-terribles&quot;&gt;Les brevets logiciels ne sont-ils pas juste terribles ?&lt;/h2&gt;

&lt;p&gt;Si.&lt;/p&gt;

&lt;p&gt;Mais je préfère voir l’ASF et Facebook clairs sur leurs intentions que de laisser les choses dans le flou comme le font la plupart des autres projets Open Source et sociétés.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Sustainable Open Source: The Maintainers Perspective or: How I Learned to Stop Caring and Love Open Source</title>
   <updated>2017-03-06T00:00:00+01:00</updated>
   <id>http://writing.jan.io/2017/03/06/sustainable-open-source-the-maintainers-perspective-or-how-i-learned-to-stop-caring-and-love-open-source.html</id>
   <content type="html">&lt;p&gt;If you want your open source maintaining to be sustainable, &lt;strong&gt;you need to stop caring.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Wait what?&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://nolanlawson.com/2017/03/05/what-it-feels-like-to-be-an-open-source-maintainer/&quot;&gt;Nolan wrote&lt;/a&gt; a very in-depth description of what maintaining open source projects can feel like.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://medium.com/@mikeal/time-to-leave-a68294ccb2af#.p8ss5xeqz&quot;&gt;Mikeal suggests&lt;/a&gt; leaving projects is the solution, which I think is only the most extreme option.&lt;/p&gt;

&lt;p&gt;I’m offering middle ground: stop caring.&lt;/p&gt;

&lt;p&gt;I can relate to everything that Nolan is saying and I must know that Mikeal’s solution is always an option in order to be able to not care effectively.&lt;/p&gt;

&lt;h2 id=&quot;inbox-zero-redux&quot;&gt;Inbox Zero Redux&lt;/h2&gt;

&lt;p&gt;Before I stop caring though, I’d like to address a flaw in how I see people apply &lt;em&gt;“Inbox Zero”&lt;/em&gt;. Nolan uses the powerful metaphor of people in front of your door with their problems.&lt;/p&gt;

&lt;p&gt;Just because there are people with problems in front of your door, &lt;strong&gt;that doesn’t mean they are your problems&lt;/strong&gt;. You can choose to make them yours, but you want to be very careful about what to care about. Ideally you don’t care about any of these problems and none of these people (more on the people later).&lt;/p&gt;

&lt;p&gt;Inbox Zero doesn’t mean you have to have looked at everything, or even handled everything (like replied to every email or commented on every issue), but to have sorted everything into piles that you can work on in batches (it’s more efficient from a context-switch perspective) &lt;strong&gt;when you have the time.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When you have the time. This implies that you have to &lt;strong&gt;make time&lt;/strong&gt; to actually resolve issues coming into your inbox. This also means: if you can’t make time, these issues are not going to get handled. And &lt;strong&gt;the only way to be okay with this is to stop caring about the issues.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And being very good about being able to bubble to the top what you do want to take time for.&lt;/p&gt;

&lt;p&gt;GitHub Notifications, like Email, is often treated as a world-writable todo list. This works for small number of people writing issues, but with a semi successful open source project or multiple small ones, you easily surpass this being a useful model.&lt;/p&gt;

&lt;p&gt;As a result I treat all my open source notifications and email as: I might not get to this.&lt;/p&gt;

&lt;h2 id=&quot;caring&quot;&gt;Caring&lt;/h2&gt;

&lt;p&gt;This is from my perspective of maintaining two large-ish Open Source projects: &lt;a href=&quot;http://couchdb.apache.org&quot;&gt;Apache CouchDB&lt;/a&gt; and &lt;a href=&quot;http://hood.ie&quot;&gt;Hoodie&lt;/a&gt; and many many small projects I started, or contributed to. CouchDB even went through the birth of the NoSQL database category, so on top of all the Open Source stuff, I had a nascent venture capital infused industry to deal with.&lt;/p&gt;

&lt;p&gt;All the advice I have here is for later-stage Open Source projects. For early stage projects, care is the only thing you can give them. But once you’ve shipped version 1.0.0 or even 2.0.0, once you wrote all the documentation, once people start using the project in production with success, once you’ve talked the 100th person through getting started on IRC or Slack, your priorities have to change.&lt;/p&gt;

&lt;p&gt;Here’s the list of things I &lt;strong&gt;do care&lt;/strong&gt; about in later-stage Open Source projects:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Code of Conduct violations:&lt;/strong&gt; these are basic ground rules that govern everything we do in a project. If somebody doesn’t play along, that needs to be dealt with asap.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Security issues:&lt;/strong&gt; once you are used in production, handling security issues swiftly and professionally is a imperative. Since they can pop up at any time, you want to be having some spare time that you can allocate to this at all times. That doesn’t have to be you individually, but as a project, you always need to be able to handle these.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Trademark violations:&lt;/strong&gt; Apache CouchDB is a registered trademark, and within the Apache Software Foundation it is the job of the Project Management Committee to go after trademark violations. US trademark law requires action against transgressors for a trademark to be upheld. So this is something I have to do. These things aren’t as urgent as security issues, and are usually solved with a form letter.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;No new contributors coming in&lt;/strong&gt; and &lt;strong&gt;signs of fellow maintainer burnout&lt;/strong&gt;: I’ve written at length about this before in &lt;a href=&quot;http://writing.jan.io/2015/11/20/sustainable-open-source.html&quot;&gt;Sustainable Open Source&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Do I sleep/eat/have fun/sport/partner/friends/nature enough?&lt;/strong&gt; If I don’t function, I can’t give anything to projects or people in Open Source. Michael Bromley sums it up nicely in &lt;a href=&quot;http://www.michaelbromley.co.uk/blog/529/why-i-havent-fixed-your-issue-yet&quot;&gt;Why I Haven’t Fixed Your Issue Yet&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;not-caring&quot;&gt;Not Caring&lt;/h2&gt;

&lt;p&gt;Here is a list of things that come up repeatedly, with any variety of urgency, anger, and frustration:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Hey, I found [other database] works better for me.”&lt;/em&gt;: Great! I don’t care.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Hey I’m building this app / solving this university assignment, can you help me with…”&lt;/em&gt;: No, don’t care.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Hey, I see you haven’t released a new version in X days/weeks/months/years”&lt;/em&gt;: I don’t care.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Hey, I found problem X in your tool”&lt;/em&gt;: I don’t care.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Hey, I can’t get started with your thing”&lt;/em&gt;: I don’t care (I’ve already written the docs).&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Hey, I reported this issue, but nobody is picking it up”&lt;/em&gt;: I don’t care, send a PR and it &lt;em&gt;might&lt;/em&gt; get better.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Hey, I opened a PR and it doesn’t get merged”&lt;/em&gt;: I don’t care.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Hey, I opened a PR and it doesn’t get merged, and now I’m frustrated and I blame you for stringing me along to spend so much time on this.”&lt;/em&gt;: I especially don’t care about guilt-tripping.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Hey, I read on Hacker News…”&lt;/em&gt;: I don’t care.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Hey, your project is shit.”&lt;/em&gt;: Don’t care, insta-block.&lt;/p&gt;

&lt;p&gt;None of this is to say that I don’t &lt;strong&gt;try and address these people’s issues and concerns&lt;/strong&gt;, as much as I can, too. But &lt;strong&gt;on my terms&lt;/strong&gt; and &lt;strong&gt;in my time&lt;/strong&gt;, and the only thing that lets me sleep at night is not caring about any of these things. I’ll get to them eventually, some may fall between the cracks.&lt;/p&gt;

&lt;p&gt;It’s not nice from a project or people perspective, but short of leaving the project and leaving it all behind, &lt;strong&gt;I found this to be the only way to make my personal Open Source maintainership sustainable.&lt;/strong&gt;&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Ten Years with CouchDB</title>
   <updated>2016-10-23T00:00:00+02:00</updated>
   <id>http://writing.jan.io/2016/10/23/ten-years-with-couchdb.html</id>
   <content type="html">&lt;p&gt;I read a lot of biographies. There is a pattern where people move on after ten years on a project, be it a band, a movie franchise, a company, or an open source project. Not everyone leaves whatever they are doing after ten years, but there is a definite trend.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/couch2x.png&quot; align=&quot;right&quot; style=&quot;border: 0px&quot; /&gt;&lt;/p&gt;

&lt;p&gt;A few years ago, when my ten years with CouchDB started showing up on the horizon, I started wondering whether I’d be one of the people that feel after ten years, they have given their project everything they had to give, and that they had to move on.&lt;/p&gt;

&lt;p&gt;I started preparing for the fact that I might feel like I’m done with CouchDB. I started thinking about what that would mean in terms of transitioning my duties at the project.&lt;/p&gt;

&lt;p&gt;I never got very far. A scenario where I wouldn’t be part of the CouchDB project just didn’t present itself. So while still being open minded about the ten year mark, I stopped worrying about it.&lt;/p&gt;

&lt;h2 id=&quot;getting-started&quot;&gt;Getting Started&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.couchdb.org/2016/09/20/2-0/&quot;&gt;CouchDB 2.0 just came out&lt;/a&gt;. It is a major milestone in the project. In a way it is finally fulfilling CouchDB’s original vision. It occurred around my ten year anniversary, and from a timing point of view, it would be the perfect moment to move on.&lt;/p&gt;

&lt;p&gt;But I never felt it. I never felt being done. Instead, I feel we are just getting started. We’ve got the basics down now and there are &lt;a href=&quot;https://lists.apache.org/thread.html/afd87c27745141be1325203a2ea0610a0d2886a729658110b1de3ef6@%3Cdev.couchdb.apache.org%3E&quot;&gt;a large number of topic areas that we can pursue to make CouchDB a lot better for a great number of people&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;from-the-archive&quot;&gt;From the Archive&lt;/h2&gt;

&lt;p&gt;My first contribution to CouchDB &lt;a href=&quot;http://jan.prima.de/~jan/plok/archives/39-Porting-CouchDb-to-Unix.html&quot;&gt;was a Unix-compatible build system&lt;/a&gt; (Linux, FreeBSD &amp;amp; Mac at the time). Custom &lt;a href=&quot;https://gist.github.com/janl/493d0458f5a82891b86db6cef06655df&quot;&gt;Makefile&lt;/a&gt; and everything. It became part of &lt;a href=&quot;http://damienkatz.net/2006/10/couchdb_050_lin.html&quot;&gt;CouchDB 0.5.0&lt;/a&gt; and &lt;a href=&quot;http://damienkatz.net/2006/10/couchdbx_couchd.html&quot;&gt;I threw in a Mac application&lt;/a&gt; as well.&lt;/p&gt;

&lt;p&gt;I have since worked on every part of the project, and I have a long list of things I’d like to achieve before I feel I’ve given CouchDB everything I’ve got to give.&lt;/p&gt;

&lt;p&gt;I feel like I’m just getting started.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Sustainable Open Source</title>
   <updated>2015-11-20T00:00:00+01:00</updated>
   <id>http://writing.jan.io/2015/11/20/sustainable-open-source.html</id>
   <content type="html">&lt;p&gt;Recently, two major &lt;a href=&quot;https://github.com/gruntjs/grunt/issues/1403&quot;&gt;open&lt;/a&gt; &lt;a href=&quot;http://bower.io/blog/2015/bower-alive-looking-contributors/&quot;&gt;source&lt;/a&gt; projects in the JavaScript world have started pleas to contributions, because they were running out of people to move the projects forward.&lt;/p&gt;

&lt;p&gt;Reading the issues and tweets around this, &lt;a href=&quot;https://twitter.com/janl/status/667632082869469184&quot;&gt;I accidentally a Twitter rant&lt;/a&gt; (&lt;a href=&quot;http://knowyourmeme.com/memes/i-accidentally&quot;&gt;*&lt;/a&gt;). Now I want to write this up with a little more detail.&lt;/p&gt;

&lt;p&gt;All of this is based on the premise that the lifeblood of an open source project are the &lt;strong&gt;people&lt;/strong&gt; who work on the project. If you disagree with that premise, you don’t have to keep reading (I’m not saying you are wrong, but you won’t get anything out of this).&lt;/p&gt;

&lt;p&gt;Another premise here is that open source projects are largely contributed to by people in their spare time. Of course that’s not all open source projects, and those who have paid full- or part-time staff still benefit from this discussion, but I want to focus on the scenario where people contribute to projects, and create a benefit for the larger community, in their own time.&lt;/p&gt;

&lt;p&gt;In the twitter rant, I postulated a list of priorities for open source projects, if they want to be run sustainably. Before I go into the priorities, let me explain what I mean by a sustainable open source project.&lt;/p&gt;

&lt;h2 id=&quot;sustainable-open-source-project&quot;&gt;Sustainable Open Source Project&lt;/h2&gt;

&lt;p&gt;A sustainable open source project is one that, during its lifetime, does not run out of contributors. There are two factors here that make projects run out of people:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Existing people leave the project.&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;2. No new people join the project.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To keep people who are already contributing, there are few basics things you need to get right.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Care about them as people&lt;/strong&gt;, rather than producers of contributions (whether it is code, or docs, or designs for the website).&lt;/p&gt;

&lt;p&gt;For example: if somebody promised to do something at a certain time, but then life gets in the way: don’t chastise them, and don’t have a culture of where they are even afraid of telling you that they are missing the deadline. Support them in their hardship, be open and understanding of people’s limited time. You don’t have to become their counsellor, but caring about your collaborators as &lt;em&gt;people&lt;/em&gt; instead of just the code they commit makes all the difference.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Make sure your contributors don’t burn out,&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In open source projects there is always a lot to do, more than could ever be done in a reasonable amount of time, even if paid for full-time. That creates &lt;strong&gt;pressure for the people who care&lt;/strong&gt; about moving the project forward, respond to all issues, review all pull requests, write all the docs, etc.&lt;/p&gt;

&lt;p&gt;As the people who run an open source project, it is your responsibility that this pressure &lt;strong&gt;doesn’t eat up contributors&lt;/strong&gt;. For example, observe whether people take a break from contributing. As in everything, you &lt;strong&gt;must take breaks&lt;/strong&gt; to be successful long-term. Maybe have a policy where people have to take a week or two off from participating in the project every three months. I’m sure you can think of other ways that would work for you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3, Make sure there are enough people&lt;/strong&gt; who, together, can take on the workload of the project, even with people taking regular breaks. If you can’t get enough people together, &lt;strong&gt;reduce the scope&lt;/strong&gt; of the project until it matches what your contributors can handle.&lt;/p&gt;

&lt;p&gt;This specifically includes not only writing code, but writing docs, supporting end-users in issues, on Slack/IRC, StackOverflow etc, project marketing (updating the blog/twitter/tumblr), keeping drive-by contributors happy by reviewing pull requests and issues in a timely and friendly manner, and so on. There are ton of time-hogs that are not obvious in open source projects.&lt;/p&gt;

&lt;p&gt;For larger projects this even includes press inquiries, legal topics (licensing and naming are just two of the very hairy topics that eat a lot of time, in my experience), coordination with other projects in the space, work on foundations (hello Node.js) etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;tl;dr: Open Source projects are a lot more than just committing code&lt;/strong&gt; to a repository somewhere. Make sure you have enough people to handle what you want to achieve.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Have a Code of Conduct&lt;/strong&gt; and be prepared to enforce it. As with all human things, people are bound to disagree. A CoC will bind everyone to keep disagreements civil and productive. And yet, some people won’t play by the rules, or understand the rules in a different way. And with a potentially global audience, cultural difference will make this doubly complicated.&lt;/p&gt;

&lt;p&gt;But: &lt;strong&gt;you have to have a Code of Conduct&lt;/strong&gt; that explains what happens if somebody repeatedly violates it. And when that happens, &lt;strong&gt;you have to act on what you wrote down&lt;/strong&gt;. In most extreme cases, this means expelling an individual from the community. This is one of the hardest things I’ve ever done while running an open source project, but &lt;a href=&quot;https://www.youtube.com/watch?v=-F-3E8pyjFo&quot;&gt;it has to be done&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;getting-new-people-to-join-the-project&quot;&gt;Getting new people to join the project&lt;/h3&gt;

&lt;p&gt;All of the above will help you retain people, once they are engaged with your project. Here are a few tips on how to make sure you have enough new people coming in to shoulder all the work, account for people taking breaks, and account for others losing interest, or having other commitments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Always be recruiting.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As an open source project, &lt;strong&gt;your scarcest resource is people’s time and attention.&lt;/strong&gt; In order to get anything done, you will need more people. And as everywhere else, recruiting is hard, so it has to be your top priority.&lt;/p&gt;

&lt;p&gt;For example: there’s a tough bug in your code, you could sit down for an hour and fix it. Or you could sit down for an hour and write an issue that explains enough of the context of the project so someone else would be able to fix it. Do the latter and you have a chance of recruiting someone, while at the same time more than one person can learn about the project’s internals from the issue, maybe take that part of the issue and put it into your README under “developer documentation.”&lt;/p&gt;

&lt;p&gt;There are many, many more opportunities on how to involve new people rather than “quickly doing it yourself”, try to find out which ones apply to your project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Again: Care about the people first and their contributions second.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Naturally, newcomer’s contributions aren’t as complete or far-reaching than those of experienced contributors, so it is doubly important for you care about the people and their enthusiasm about your project more than that typo-fix they put on the website. We’ve turned someone who fixed a single typo on the website to a steady contributor and well respected community member that now helps out all over the project at &lt;a href=&quot;http://hood.ie&quot;&gt;Hoodie&lt;/a&gt;, for example.&lt;/p&gt;

&lt;p&gt;At the &lt;a href=&quot;http://apache.org&quot;&gt;Apache Software Foundation&lt;/a&gt;, where the &lt;a href=&quot;http://cocuhdb.apache.org&quot;&gt;CouchDB&lt;/a&gt; project is run, we have a mantra: &lt;strong&gt;Community over Code&lt;/strong&gt;. — It is a hard learned lesson from running high-profile open source projects like the Apache Web Server, Hadoop or Lucene, for over 20 years now. The reasoning is simple: &lt;strong&gt;if the right people rally around an idea, the right code will follow&lt;/strong&gt;. But without a community who cares, no ever so brilliant piece of code, is worth anything.&lt;/p&gt;

&lt;p&gt;This takes very little of your time and makes &lt;em&gt;all&lt;/em&gt; the difference.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Document your processes.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Have you ever been to a (tech-) event where you didn’t know anyone, but everyone else seemed to stand in groups and chat like old friends? — I’ve been to tons of them, and as an introvert, this is not a lot of fun, and even as an extrovert, this is a challenge.&lt;/p&gt;

&lt;p&gt;Now imagine you want to contribute to an open source project where you see some people doing some work, but you don’t see why or how this is happening and where people talk about things.&lt;/p&gt;

&lt;p&gt;Here are a few things that happen in your open source project that are handled implicitly. You personally have no problem with this, because you either invented the practices, or were around when they were established, but for a newcomer, these are &lt;strong&gt;impenetrable barriers to participating&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Releases&lt;/strong&gt;. Someone somewhere puts a tag into git, a tarball on a website, or a package into your package manager. Who decides when that happens? What objective criteria need to be fulfilled before a new release is made? Who or what decides whether a particular contribution, feature, or bugfix makes it into the next (or any) release? Who decides on the tag? Who publishes the tarball or package?&lt;/p&gt;

&lt;p&gt;If you don’t document all of this in detail, you won’t get anyone ever helping with this. Usually, much of this is very implicit, and by making it explicit by documenting it, you often find that you have some flaw in your procedure, that you can simplify or automate a certain aspect, but most of all, somebody else can join and help.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Hey, we are stuck on step 3 of the release process, does somebody have time to do 4 and 5?”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Accepting and declining Issues, feature requests and pull requests&lt;/strong&gt;. Who decides whether an issue is an issue? Who decides whether a particular feature is merged from a pull request, or against the direction the project wants to go in? What are your commit message, code-listing and test-coverage requirements (use GitHub’s &lt;a href=&quot;https://github.com/blog/1184-contributing-guidelines&quot;&gt;CONTRIBUTING.md&lt;/a&gt;)?&lt;/p&gt;

&lt;p&gt;Put as much of your project’s vision and direction in writing. Of course a lot of this will be in flux as you go along, but if you copiously document this, anyone can jump in at any time and make the right call.&lt;/p&gt;

&lt;p&gt;At CouchDB, we even went so far as to document our &lt;a href=&quot;http://couchdb.apache.org/bylaws.html#types&quot;&gt;decision making process&lt;/a&gt; as part of our &lt;a href=&quot;http://couchdb.apache.org/bylaws.html&quot;&gt;bylaws, which explain how the project operates&lt;/a&gt;. If this seems overly tedious bureaucracy to you, you do have a point: this takes time, especially agreeing on everything in large community, but it is very worth it. Since establishing the bylaws, we’ve had numerous new contributors come in and work as part of the project as if they’ve been around forever, following the right procedures to get their initiatives to a successful conclusion and thus making CouchDB a lot better.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Make your communication channels explicit&lt;/strong&gt;*. At the ASF we have a rule that every project decision must happen on the dev@ mailing list in order for everyone having a chance to read about it in their own time and join the conversation at a central and transparent point.&lt;/p&gt;

&lt;p&gt;At the same time, we have a busy IRC channel where we discuss a lot of ideas in a higher-bandwidth environment. However, once we get out of the half-baked stage for anything, we write it up on dev@ and have everyone else who couldn’t e.g. be on IRC at that moment (because they are on the other side of the globe, or at work) catch up with everything and partake in the conversation. Yes, this slows things down a little, but it makes sure everyone has a chance to see everything and be heard.&lt;/p&gt;

&lt;p&gt;Whatever your communication channels are, make sure they are documented in your README, on your website and documentation. Make it easy (and free) for people to join and explain the &lt;a href=&quot;https://www.freebsd.org/doc/en/articles/mailing-list-faq/etiquette.html&quot;&gt;etiquette&lt;/a&gt; of the medium.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Special shout out to the &lt;a href=&quot;https://www.freebsd.org&quot;&gt;FreeBSD project&lt;/a&gt;, which is &lt;a href=&quot;https://www.freebsd.org/docs.html&quot;&gt;outstanding&lt;/a&gt; at &lt;a href=&quot;https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/&quot;&gt;documenting&lt;/a&gt; their &lt;a href=&quot;https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook&quot;&gt;inner&lt;/a&gt; &lt;a href=&quot;https://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook&quot;&gt;workings&lt;/a&gt; &amp;lt;3&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Specifically reach out to people for “positions” you want to see filled&lt;/strong&gt;. At Hoodie, we’ve recently decided that we’d like to have a dedicated editorial team that handles our website, twitter, tumblr, etc. because the rest of us didn’t really have the capacities to maintain them all, and previous attempts made us lose two community members getting overwhelmed with the responsibility, so now we are recruiting a team (c.f. taking on only so much that you have enough people to handle it, see above).&lt;/p&gt;

&lt;p&gt;As a result, &lt;a href=&quot;https://github.com/hoodiehq/discussion/issues/84&quot;&gt;we published a dedicated “job ad” for the position&lt;/a&gt;. We are just getting started, but the response has been so overwhelmingly positive that I strongly believe we’ll be very successful going forward with this for other positions. Try it.&lt;/p&gt;

&lt;h2 id=&quot;culture&quot;&gt;Culture&lt;/h2&gt;

&lt;p&gt;In an earlier life I was deeply involved in the PHP community. One of the prime places to get support for problems with PHP was the IRC channel #php on EFnet. IRC and EFnet in particular are notoriously hostile places (I know there are worse IRC networks, I don’t need to be reminded of them), and that culture translated to the #php channel.&lt;/p&gt;

&lt;p&gt;I was young and just thought that’s how things are. So I helped people out, and made fun of people who didn’t seem to know there way around (“press F4 to make this chat go faster”). I’m not very proud of being part of a hostile culture in hindsight, but at the time, I thought that’s just how things are.&lt;/p&gt;

&lt;p&gt;Over time, I learned how beneficial it is to not antagonise people who are trying to use your open source project. Maybe in the context of PHP it didn’t matter because it was &lt;em&gt;so&lt;/em&gt; popular, but later on, this got me thinking.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;BIG FAT DISCLAIMER INTERMISSION: This is not a generalisation about the PHP community. As any community, the PHP community goes through its ups and downs and has its good and bad actors, but overall, the people who work on and with PHP are a great bunch that I have learned from half a career’s worth of knowledge and experience. Senior developers have mentored me (a high school student at the time) and helped me understand a lot about the web, not just PHP. I’m eternally grateful for this. INTERMISSION END.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;When I started out at CouchDB and we finally joined the ASF and it was standard procedure to have a user@ mailing list for end-user support, I remembered my days in the #php channel and decided that that’s not the culture I want to have there. So for the first three or so years, I tried to be involved with every thread on the mailing list, and showing exemplary behaviour, being nice to people, taking their issues seriously and trying to be helpful overall. After a while, people stuck around not to only ask questions, but to help with the answering as well, and to my complete delight, they mimicked my style.&lt;/p&gt;

&lt;p&gt;My responsibilities since have shifted quite a bit and I’m no longer checking on the user@ mailing list day-to-day, but every time I join and read, I see the culture that I helped plant there seven years ago and it makes me very proud.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Culture isn’t just what happens to you, culture is what you make of it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Whatever you want your culture to be for your open source project’s community, as the people who are most visible, &lt;strong&gt;it is up to you to lead by example.&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&quot;money&quot;&gt;Money&lt;/h2&gt;

&lt;p&gt;If you follow my premise of &lt;em&gt;people&lt;/em&gt; being the biggest asset in open source and recruiting and retaining them is your first priority, then it follows that it would be really easy to grow your contributors.&lt;/p&gt;

&lt;p&gt;The ratio of women in IT is about 17-25% (depending on the study), but &lt;strong&gt;the ratio of women in open source are 0.1-5%&lt;/strong&gt;. For me that means: we have spare talent that isn’t participating in our projects that could help with all of the above.&lt;/p&gt;

&lt;p&gt;Sadly, we don’t have good numbers (as far as I know, if you have them, please send them along!) for other groups of people who are underrepresented in technology and open source specifically, including, but not limited to, &lt;strong&gt;people of colour, LGBTQI+ people, people with disabilities, people who do private care work (for children or elderly family members), or people of lower economic status&lt;/strong&gt;. All of this section equally applies to all of these groups and I’m just taking women as an example because we have the numbers there. Rest assured, &lt;strong&gt;the numbers are worse than they are for women in open source&lt;/strong&gt;, so we have some work ahead of us.&lt;/p&gt;

&lt;p&gt;The summary here for why this disparity exists is that most people in open source are young white guys from a upper-middle-class (in the EU sense) and above,  like myself. We all have the privileges that allow us to spend our spare time, or even paid time, on open source projects, but as is evident by the numbers, that privilege doesn’t extend to your average single mother of two, &lt;a href=&quot;http://www.nber.org/digest/sep03/w9873.html&quot;&gt;or person of colour who couldn’t land a job in IT, despite the qualification&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;One way out of this would be a way for people to get paid to work on open source projects, and &lt;strong&gt;especially&lt;/strong&gt; those people who are underrepresented in tech, because their time needs to be paid for. &lt;a href=&quot;http://marijnhaverbeke.nl/blog/sustainable-maintenance.html&quot;&gt;But this also includes the dedicated individuals who were privileged enough to have enough time to work on an open source project that is now so popular that it demands so much of their time that they can’t do it in their spare time sustainably&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Unfortunately, I have no guidelines for this. &lt;strong&gt;Financing open source is an open topic&lt;/strong&gt; and people have far-reaching opinions from wanting to &lt;a href=&quot;http://david.heinemeierhansson.com/2013/the-perils-of-mixing-open-source-and-money.html&quot;&gt;keep money out of open source at all cost&lt;/a&gt; (&lt;em&gt;rimshot&lt;/em&gt;) or &lt;a href=&quot;https://medium.com/open-source-life/money-and-open-source-d44a1953749c&quot;&gt;not&lt;/a&gt;, and people who &lt;a href=&quot;http://joinfundclub.com&quot;&gt;are already raising money for tech projects by marginalised people&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;However, this is not a mainstream discussion yet, although &lt;a href=&quot;https://github.com/pybee/paying-the-piper/issues&quot;&gt;smaller&lt;/a&gt; &lt;a href=&quot;https://rubytogether.org&quot;&gt;initiatives&lt;/a&gt; exist, even after &lt;a href=&quot;https://en.wikipedia.org/wiki/Heartbleed&quot;&gt;the Heartbleed disaster&lt;/a&gt;. Even though OpenSSL is comfortably funded now, this was a purely reactionary initiative (that worked well, no qualms about that), but &lt;strong&gt;we have no strategy about how to address this&lt;/strong&gt; and it’s about time that we started having this discussion.&lt;/p&gt;

&lt;p&gt;So much of our work and infrastructure depends on Open Source, and it’s time we took the people doing this work as seriously as as the highly financed startups and corporations that depend on of all this freely available work.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Let’s make open source sustainable!&lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>Why Technology Hype is a Good Thing</title>
   <updated>2015-07-16T00:00:00+02:00</updated>
   <id>http://writing.jan.io/2015/07/16/why-technology-hype-is-a-good-thing.html</id>
   <content type="html">&lt;p&gt;Hype for technologies is usually seen as a bad thing™.&lt;/p&gt;

&lt;p&gt;While I don’t want to deny that there are downsides to this, I also see an upside.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;tl;dr: Don’t consider a hype an annoying fashion, but rather a massively distributed mechanism for more quickly figuring out value.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Hype gets a technology and the ideas behind it exposure with a lot of people. Not all ideas are going to be good, and the more people take a good look at one, the earlier we will find out what is good and what isn’t.&lt;/p&gt;

&lt;p&gt;History is full of this: XML started out as a document structuring format. But soon after it became popular, people started using it for &lt;strong&gt;everything&lt;/strong&gt;, including computer to computer communication (&lt;a href=&quot;https://en.wikipedia.org/wiki/SOAP&quot;&gt;SOAP&lt;/a&gt;, &lt;a href=&quot;https://en.wikipedia.org/wiki/WS-*&quot;&gt;WS-*&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;And that was very very very popular. Until we collectively realised that we’ve taken things a little too far. XML is a fine format for the things it was designed to do, but it is not a good generic data protocol format.&lt;/p&gt;

&lt;p&gt;Some of the good ideas of XML survive though: Validation is still useful, but it is more optional in the JSON world we live today. There are enough cases where validation is not needed, or would be a prohibitive barrier to entry. We know that now. So we made it opt-in.&lt;/p&gt;

&lt;p&gt;Another thing I see hyped these days (for a while now, actually) is Docker. I don’t have too much experience with it, but it appears that people are starting to do &lt;strong&gt;everything&lt;/strong&gt; with Docker. And I’m excited about this. Not because I believe Docker is the end to all means, but because we will collectively find out more quickly what the good and not so good ideas behind Docker are.&lt;/p&gt;

&lt;p&gt;The more popular something gets, the more critics it attracts. And in the view of the discourse of community learning and understanding, that’s a good thing. Criticism that has merit will spread, and we will all learn what the good ideas are.&lt;/p&gt;

&lt;p&gt;In the JavaScript world, React is all the rage. At JSConf EU, we got &lt;strong&gt;a lot&lt;/strong&gt; of proposals for React-ish talks, which is just another way of saying, people are doing &lt;strong&gt;everything&lt;/strong&gt; with React.&lt;/p&gt;

&lt;p&gt;We don’t know yet, what the good ideas behind React are going to be, so we have to have a little patience before things will shake out. But they will.&lt;/p&gt;

&lt;p&gt;To hype!&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Engaging With Hateful People in Your Community Lends Legitimacy to Their Presence</title>
   <updated>2014-11-21T00:00:00+01:00</updated>
   <id>http://writing.jan.io/2014/11/21/hateful-people.html</id>
   <content type="html">&lt;p&gt;&lt;em&gt;A woman friend who stays anonymous privately tweeted this discussion earlier. I believe anyone involved with Open Source communities should read and understand this. This is published with her consent.&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;People, and men in particular, let’s talk about how we deal with people from hate movements showing up in our repos.&lt;/p&gt;

&lt;p&gt;OK so for everyone’s context, screencaps of a Gamergater commenting on a Node repo. We need to talk about this.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/1.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/img/2.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And to be clear, I’m not shaming @mikeal or @izs (you’re awesome). IMO there’s something broken in our response when male supremacists …&lt;/p&gt;

&lt;p&gt;… show up, and men who clearly care about inclusiveness are getting this wrong. So I simply hope my tweets will add useful perspective.&lt;/p&gt;

&lt;p&gt;For you men the screencapped exchange might read as&lt;br /&gt;
(1) horrible male supremacist argues&lt;br /&gt;
(2) rebuttal by @mikeal &amp;amp; @izs&lt;br /&gt;
Nothing wrong with (2)&lt;/p&gt;

&lt;p&gt;So you might be surprised that to me it reads very different:&lt;/p&gt;

&lt;p&gt;(1) male supremacist person shows up - clearly a safety issue&lt;br /&gt;
(2) people in the community are actually engaging with this person :(&lt;/p&gt;

&lt;p&gt;Note the difference: As a man you might have read the arguments. I literally stopped at the usernames.&lt;/p&gt;

&lt;p&gt;(Aside: If the “gr.amergr.ater” username somehow doesn’t spell “misogynistic hate mob” to you, please go read up on this.&lt;/p&gt;

&lt;p&gt;This isn’t random internet drama; other people’s safety depends on you understanding this stuff.)&lt;/p&gt;

&lt;p&gt;So why do you men get to care about the bigoted arguments and even engage &amp;amp; rebut? Because you’re unlikely to be targeted.&lt;/p&gt;

&lt;p&gt;They read as “abhorrent” to you, but not as “threat to your safety”. Good for you!&lt;/p&gt;

&lt;p&gt;But for me, the presence of this &lt;em&gt;person&lt;/em&gt; is a problem.&lt;/p&gt;

&lt;p&gt;When I see a male supremacist show up in an online space, the likelihood that I will participate drops to zero.&lt;/p&gt;

&lt;p&gt;Because as much as I care about participating in you all’s projects, no open source project is worth compromising my safety over.&lt;/p&gt;

&lt;p&gt;You can have a male supremacist in your online space. You can have me. But you can’t have both.&lt;/p&gt;

&lt;p&gt;It’s probably not unreasonable to extrapolate that other women are similarly put off by the presence of male supremacists.&lt;/p&gt;

&lt;p&gt;So when you decide to engage &amp;amp; rebut hateful arguments, this comes at the expense of excluding women and minorities from the online space.&lt;/p&gt;

&lt;p&gt;Okay, part 2: What’s the right way to deal with male supremacists and similar hate groups showing up?&lt;/p&gt;

&lt;p&gt;I don’t have a clear answer. What I care most about is that community members are protected.&lt;/p&gt;

&lt;p&gt;Here’s my suggestion #1: Don’t engage. It’s better to instantly block that person from the repo and delete their comments.&lt;/p&gt;

&lt;p&gt;GitHub’s combination of “everyone can read”, “everyone can comment”, and “weak moderation features” can make it hard to ban &lt;em&gt;effectively&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Hence suggestion #2: Take discussions (sensitive ones especially) off GitHub completely, to more private, better-moderated spaces.&lt;/p&gt;

&lt;p&gt;GitHub’s weaknesses make it not very safe for women and minorities, so if you want those voices heard, avoid the GitHub issue tracker.&lt;/p&gt;

&lt;p&gt;By the way: Similar things apply when male supremacists send you reasonable-looking pull requests.&lt;/p&gt;

&lt;p&gt;I noticed that this gr.amergr.ate person had sent a small PR to a [&lt;em&gt;my-project&lt;/em&gt;] plugin, and the plugin maintainer merged it.&lt;/p&gt;

&lt;p&gt;This made me super uncomfortable, and I hope I don’t have to interact with that maintainer, because I really don’t trust their judgment.&lt;/p&gt;

&lt;p&gt;When you get a PR from an author whose very name spells hate, then even if the diff looks reasonable, don’t merge it.&lt;/p&gt;

&lt;p&gt;Reject it, or ignore it until becomes obsolete. Or even reimplement the fix yourself. Just don’t merge. Let’s not have hate in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;git log&lt;/code&gt;.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>The Innovator in Hindsight</title>
   <updated>2014-04-20T00:00:00+02:00</updated>
   <id>http://writing.jan.io/2014/04/20/clayton-predicts.html</id>
   <content type="html">&lt;p&gt;In where Clayton Christiensen predicts that Linux on the Desktop will never come and that it will fuel the mobile revolution. In 2004.&lt;/p&gt;

&lt;p&gt;Including an introduction to the Innovator’s Dilemma and Solution, and how this quares against Open Source.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://web.archive.org/web/20130729212828id_/http://itc.conversationsnetwork.org/shows/detail135.html&quot;&gt;http://web.archive.org/web/20130729212828id_/http://itc.conversationsnetwork.org/shows/detail135.html&lt;/a&gt;&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>The State of CouchDB 2013</title>
   <updated>2013-12-20T00:00:00+01:00</updated>
   <id>http://writing.jan.io/2013/12/20/the-state-of-couchdb-2013.html</id>
   <content type="html">&lt;p&gt;This is a rough transcript of the CouchDB Conf, Vancouver Keynote.&lt;/p&gt;

&lt;h2 id=&quot;welcome&quot;&gt;Welcome&lt;/h2&gt;

&lt;p&gt;Good morning everyone. I thank you all for coming on this fine day in Vancouver. I’m very happy to be here. My name is Jan Lehnardt and I am the Vice President of Apache CouchDB at the Apache Software Foundation, but that’s just a fancy title that means I have to do a bunch of extra work behind the scenes. I’m also a core contributor to Apache CouchDB and I am the longest active committer to the project at this point.&lt;/p&gt;

&lt;p&gt;I started helping out with CouchDB in 2006 and that feels like a lifetime ago. We’ve come a long way, we’ve shaped the database industry in a big way, we went though a phoenix from the ashes time and came out still inspiring future generations of developers to do great things.&lt;/p&gt;

&lt;p&gt;So it is with great honour that I get to be here on stage before you to take a look at the state of CouchDB.&lt;/p&gt;

&lt;h2 id=&quot;numbers&quot;&gt;Numbers&lt;/h2&gt;

&lt;p&gt;I’d like to start with some numbers:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;In 2013 we &lt;strong&gt;added 15 committers&lt;/strong&gt; to the project, up to a total of 30. Thats 2x the number of people regularly contributing to CouchDB!&lt;/li&gt;
  &lt;li&gt;The year isn’t yet over, but these committers already created 3x the commits of 2012. And they have committed more than in any other year in CouchDB’s history.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;/img/commits.png&quot; alt=&quot;Commit History&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;We have &lt;strong&gt;shipped eight releases&lt;/strong&gt;: 1.0.4 1.1.2, 1.2.1, 1.2.2, 1.3.0, 1.3.1, 1,4.0 and 1.5.0 just this year, that is up from one(!) last year.
    &lt;ul&gt;
      &lt;li&gt;thanks to our new release schedule we are getting more features to more people faster by focusing on small iterative changes forward.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;20% more JIRA tickets and 50% more GitHub issues&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We have made a lot of changes in 2012 to make 2013 a great year for CouchDB and it sure looks like we succeeded and that 2014 is only going to trump that.&lt;/p&gt;

&lt;p&gt;I’d like to thank everyone on the team for their hard work.&lt;/p&gt;

&lt;h2 id=&quot;currently&quot;&gt;Currently&lt;/h2&gt;

&lt;p&gt;We’ve just shipped CouchDB 1.5.0 last week and it comes with a few exciting new things as previews, for you to try out and play with and report any issues with back to us. And that is on top of all the regular bug fixing and other improvements.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/fauxton.png&quot; alt=&quot;Fauxton&quot; /&gt;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;A completely new developed admin UI, nicknamed Fauxton, that is poised to replace the much-loved, but increasingly dated Futon. I’d like to personally thank the Fauxton team: Sue “Deathbear” Lockwood, Russell “Chewbranca” Branca, Garren Smith and many more volunteers for their work as well as the company Cloudant for sponsoring a good chunk of that work. Great job everyone! Fauxton is going to be replacing Futon in one of the next few releases and will give us the foundation for the next stage of CouchDB’s life.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Plugins. While it was always possible to write plugins for CouchDB, you kind of had to be an expert in CouchDB to get started. We believe that writing plugins is a great gateway drug to getting more people to hack on CouchDB proper, so we made it simpler to build plugins and to install plugins into a running instance of CouchDB. It is still very early days, we don’t even have a plugin registry yet, but we are surely excited about the prospects of installing GeoCouch with a single click of a button in Futon or Fauxton. We also included a template plugin that you can easily extend and make your own, along with a guide to get you started.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The plugins effort also supports a larger trend we are starting to follow with the CouchDB core codebase: decide on a well-defined core set of functionality and delegate more esoteric things to a rich plugin system That means we no longer have to decline the inclusion of useful code like we’ve done in the past, because it wasn’t applicable to the majority of CouchDB users. Now we can support fringe features and plugins that are only useful to a few of our users, but who really need them.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;A Node.JS query server. CouchDB relies on JavaScript for a number of core features and we want to continue to do so. In order to keep up with the rapid improvements made to the JavaScript ecosystem we have tentative plans to switch from a Spidermonkey-driven query server to a V8-driven one. In addition, the Node.js project has a really good installation story, something that we had trouble with in the past, and includes a few utilities that make it very easy for us to switch the query server over.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;All this however is not to blindly follow the latest trends, but to encourage the community to take on the query server and introduce much needed improvements. The current view server is a tricky mix of JS, Erlang and C and we are not seeing many people daring to jump into that. In a second step we expect these improvements to trickle down to the other query server implementations like Python or PHP and make things better for everyone. For now this is also a developer preview and we are inviting all Node.js developers to join us and build a a better query server.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/docs.png&quot; alt=&quot;Docs&quot; /&gt;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Docs landed in 1.4.0, but 1.5.0 is seeing a major update to the now built-in documentation system. With major thanks to Alexander Shorin, Dirkjan Ochtmann and Dave Cottlehuber who were instrumental in that effort, CouchDB now has “really good docs” instead of a “really crappy wiki”, that are shipped with every release and are integrated with Futon and Fauxton.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;beyond&quot;&gt;Beyond&lt;/h2&gt;

&lt;p&gt;The immediate next area of focus for the CouchDB project is the merging of two forks: BigCouch and rcouch.&lt;/p&gt;

&lt;p&gt;BigCouch is a &lt;a href=&quot;http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html&quot;&gt;Dynamo&lt;/a&gt; implementation on top of CouchDB that manages a cluster of machines and makes them look as a single one, adding performance improvements and fault tolerance to a CouchDB installation. This is a major step in CouchDB’s evolution as it was designed for such a system from the start, but the core project never included a way to use and manage a cluster. Cloudant have donated their BigCouch codebase to the Apache project already and we are working on an integration.&lt;/p&gt;

&lt;p&gt;rcouch is a what I would call a “future port” of CouchDB by longtime committer and contributor Benoit Chesneau. rcouch looks like CouchDB would, if we started fresh today with a modern architecture. Together with BigCouch’s improvements, this will thoroughly modernise CouchDB’s codebase to the latest state of the art of Erlang projects. rcouch also includes a good number of nifty features that make a great addition to CouchDB’s core feature set and some great plugins.&lt;/p&gt;

&lt;p&gt;Finally, we’ve just started an effort to set up infrastructure and called for volunteers to translate the CouchDB documentation and admin interface into all major languages. Driven by Andy Wenk from Hamburg, we already have a handful of people signed up to help with translations for a number of different languages.&lt;/p&gt;

&lt;p&gt;This is going to keep us busy for a bit and we are looking forward to ship some great releases with these features.&lt;/p&gt;

&lt;h2 id=&quot;tldr&quot;&gt;tl;dr&lt;/h2&gt;

&lt;p&gt;2013 was a &lt;strong&gt;phenomenal&lt;/strong&gt; year for Apache CouchDB. 2014 is poised to be even greater, there are more people than ever pushing CouchDB forward and there is plenty of stuff to do and hopefully, we get to shape some more of the future of computing.&lt;/p&gt;

&lt;p&gt;Thank you!&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Understanding CouchDB Conflicts</title>
   <updated>2013-12-19T00:00:00+01:00</updated>
   <id>http://writing.jan.io/2013/12/19/understanding-couchdb-conflicts.html</id>
   <content type="html">&lt;p&gt;&lt;em&gt;Heya Stranger! You probably came here to better understand CouchDB conflicts, and this post will help you to do so.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Should you need any more help with CouchDB, &lt;a href=&quot;http://www.neighbourhood.ie/couchdb-support/&quot; title=&quot;Professional Support for Apache CouchDB™, From the People who Brought You CouchDB.&quot;&gt;my company, Neighbourhoodie Software is offering world-class CouchDB support&lt;/a&gt;. &lt;a href=&quot;mailto:couchdb@thehoodiefirm.com&quot;&gt;Get in touch, now.&lt;/a&gt; :)&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;As part of a &lt;a href=&quot;http://blog.nodejitsu.com/thank-you-for-helping-scalenpm&quot;&gt;summary&lt;/a&gt; what Nodejitsu is planning to do with the &lt;a href=&quot;http://scalenpm.org&quot;&gt;scalenpm.org&lt;/a&gt; campaign money, they said:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;All of these problems stem from the same symptom: conflicts in CouchDB. If you’re new to CouchDB you can &lt;a href=&quot;http://guide.couchdb.org/draft/conflicts.html&quot;&gt;read up on conflicts here&lt;/a&gt;. Conflicts are caused in the npm registry because (depending on several factors) a given publish can involve multiple writes to the same document. When these writes do not hit the same CouchDB server conflicts are generated. There are other medium-term solutions to scaling writes (such as sticky HTTP sessions), but conflicts will inevitably arise so we must address the symptom as well as the cause.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Of course CouchDB has a concept of conflicts, they are core to what makes CouchDB great: master-less peer to peer replication of your data. But I feel they are misrepresented here, so I’ll try and clarify things a little.&lt;/p&gt;

&lt;p&gt;We will find out that the symptom isn’t CouchDB’s conflicts feature, but how the npm client treats CouchDB document updates in a way that is not recommended (note that I’m not trying to point any fingers here, I just hope people can learn from this :).&lt;/p&gt;

&lt;h2 id=&quot;how-to-store-data-in-couchdb&quot;&gt;How to store data in CouchDB&lt;/h2&gt;

&lt;p&gt;The standard way to store data in CouchDB is to HTTP &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;PUT&lt;/code&gt; a JSON object into a CouchDB database:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;PUT /database/document
{&quot;a&quot;:1}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;When retrieving that document, it it will look like this:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;GET /database/document
{&quot;_id&quot;:&quot;document&quot;,&quot;_rev&quot;:&quot;1-23202479633c2b380f79507a776743d5&quot;,&quot;a&quot;:1}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;CouchDB will automatically add two properties to our JSON object, an &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_id&lt;/code&gt; and a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_rev&lt;/code&gt;. The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_id&lt;/code&gt; represents whatever we named the document in the initial request (we can also let CouchDB assign a random &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_id&lt;/code&gt;) and the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_rev&lt;/code&gt;, or “revision” represents an opaque hash value over the contents of a document.&lt;/p&gt;

&lt;p&gt;To change the value of a document, we need to prove to CouchDB that we know what its latest revision is:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;PUT /database/document
{&quot;_id&quot;:&quot;document&quot;,&quot;_rev&quot;:&quot;1-23202479633c2b380f79507a776743d5&quot;,&quot;a&quot;:1, &quot;b&quot;:2}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The next time we get the document it looks like this:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;GET /database/document
{&quot;_id&quot;:&quot;document&quot;,&quot;_rev&quot;:&quot;2-c5242a69558bf0c24dda59b585d1a52b&quot;,&quot;a&quot;:1, &quot;b&quot;:2}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;You see the revision updated. Now lets try to update the document again, but provide the old &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_rev&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;PUT /database/document
{&quot;_id&quot;:&quot;document&quot;,&quot;_rev&quot;:&quot;1-23202479633c2b380f79507a776743d5&quot;,&quot;a&quot;:1, &quot;b&quot;:2, &quot;c&quot;:3}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;We get:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;{&quot;error&quot;:&quot;conflict&quot;,&quot;reason&quot;:&quot;Document update conflict.&quot;}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;understanding-revisions&quot;&gt;Understanding revisions&lt;/h3&gt;

&lt;p&gt;This way, CouchDB ensures that a client never accidentally overwrites any data it didn’t know about. Think about this like a wiki editing system: one person edits a wiki page and adds a few paragraphs of new information while another person just fixes a typo halfway through the first person writing their contribution. Without any cleverness, the first person will overwrite the second’s person typo fix when they save their version (or revision) of the wiki page. To ensure they don’t, each revision could be tagged with a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_rev&lt;/code&gt; that the client then need to provide when writing back to the server. If they don’t match, the client needs to re-read the document and merge any other changes that might have happened in the meantime (the typo fix) and then try to save the wiki page again. In more technical terms, this is called “optimistic locking”. This is to avoid the scenario of “pessimistic locking” where the second person has to wait for the first person to make their changes before they can edit the wiki page.&lt;/p&gt;

&lt;p&gt;CouchDB works the same way and for good reasons, but it can be counter-intuitive to how people are used to working with databases. Some users think their way out of this without really understanding why CouchDB works this way. When they encounter a document update conflict, they will make a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;GET&lt;/code&gt; or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;HEAD&lt;/code&gt; request to CouchDB to learn about the latest &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_rev&lt;/code&gt; of a document and then use that for a second write request &lt;em&gt;without&lt;/em&gt; first regarding the new data that has appeared on the server. In some cases, this is a viable strategy, especially, if only a single database server is involved and changes to documents are restricted to one or very few users (like in npm).&lt;/p&gt;

&lt;h2 id=&quot;distributed-systems-and-all-that&quot;&gt;Distributed systems and all that&lt;/h2&gt;

&lt;p&gt;Now the fun part is when we add more database servers. One way to set up CouchDB is to run multiple instances behind an HTTP load balancer (because that’s really easy to do) and set up bi-directional replication between the two databases. This helps with reliability and load distribution, as two servers can share the read-load and if specced correctly, a single server can survive the outage of the peer, while the load balancer ensures that users never see a difference.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/two-couches-and-a-load-balancer.png&quot; alt=&quot;Two couches and a load balancer&quot; /&gt;&lt;/p&gt;

&lt;p&gt;A load balancer usually distributes reads and writes randomly between the two CouchDBs. This is where the fun begins. Let us update our &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;document&lt;/code&gt; once more:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;PUT /database/document
{&quot;_id&quot;:&quot;document&quot;,&quot;_rev&quot;:&quot;2-c5242a69558bf0c24dda59b585d1a52b&quot;,&quot;a&quot;:1, &quot;b&quot;:2, &quot;d&quot;:4}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Now this gets written to CouchDB A because the load balancer decides so. CouchDB A now has:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;GET /database/document
{&quot;_id&quot;:&quot;document&quot;,&quot;_rev&quot;:&quot;3-2235fd4815b81b2da1b84159aba4006e&quot;, &quot;a&quot;:1, &quot;b&quot;:2, &quot;d&quot;:4}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;But CouchDB B still has:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;GET /database/document
{&quot;_id&quot;:&quot;document&quot;,&quot;_rev&quot;:&quot;2-c5242a69558bf0c24dda59b585d1a52b&quot;,&quot;a&quot;:1, &quot;b&quot;:2}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Usually replication updates this quickly, but it might take a while due to write load, and if the client sends multiple requests in quick succession, there is a fair chance that updating the document yet another time will hit CouchDB B which will reject the write, because the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_rev&lt;/code&gt; doesn’t match any more:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;PUT /database/document
{&quot;_id&quot;:&quot;document&quot;,&quot;_rev&quot;:&quot;3-2235fd4815b81b2da1b84159aba4006e&quot;, &quot;a&quot;:1, &quot;b&quot;:2, &quot;e&quot;:5}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Returns:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;{&quot;error&quot;:&quot;conflict&quot;,&quot;reason&quot;:&quot;Document update conflict.&quot;}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;If we use the strategy of quickly getting the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_rev&lt;/code&gt; from the doc and trying again, we might &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;GET&lt;/code&gt; from CouchDB B again, to get &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&quot;_rev&quot;: &quot;2-c5242a69558bf0c24dda59b585d1a52b&quot;&lt;/code&gt; and attempt the write again:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;PUT /database/document
{&quot;_id&quot;:&quot;document&quot;,&quot;_rev&quot;:&quot;3-c5242a69558bf0c24dda59b585d1a52b&quot;, &quot;a&quot;:1, &quot;b&quot;:2, &quot;e&quot;:5}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;If this &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;PUT&lt;/code&gt; &lt;em&gt;also&lt;/em&gt; goes to CouchDB B (you see this scenario is getting less and less likely, but it is still &lt;em&gt;possible&lt;/em&gt; and certainly expected in a system like npm’s), this write will succeed and now we two conflicting revisions on CouchDB A and CouchDB B:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;CouchDB A: 3-c5242a69558bf0c24dda59b585d1a52b
CouchDB B: 4-8b6ea819bf3384b2c215fd05fc5a1e5a
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;When CouchDB replication now runs, it will introduce a conflict on both CouchDB’s, as it is expected to. But since this is an undesirable situation, CouchDB generally recommends against using this strategy to deal with document update conflicts.&lt;/p&gt;

&lt;h2 id=&quot;solving-the-riddle&quot;&gt;Solving the riddle&lt;/h2&gt;

&lt;p&gt;There are multiple ways to fix this:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;When making a change, don’t require multiple &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;GET&lt;/code&gt;s and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;POST&lt;/code&gt;s. It is my understanding that the npm developers are &lt;a href=&quot;https://github.com/isaacs/npm/releases/tag/v1.3.19&quot;&gt;working on that&lt;/a&gt; (Run &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;npm install -g npm&lt;/code&gt; to make use of this without waiting for the next node release, &lt;a href=&quot;https://twitter.com/izs/status/413461085241372673&quot;&gt;thanks @izs&lt;/a&gt;).&lt;/li&gt;
  &lt;li&gt;Don’t update the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_rev&lt;/code&gt; locally in the client without also merging any new data from the server. I hope the npm developers are &lt;em&gt;also&lt;/em&gt; taking this into account.&lt;/li&gt;
  &lt;li&gt;Sticky sessions: most HTTP load balancers can be configured to send subsequent requests from the same client to the same backend server. This is generally not desirable because it limits scalability and fault tolerance, but it is a worthwhile stop-gap, if not default setup, if applicable to the app. I can’t comment on whether this is applicable to npm or not.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I hope I could shed a bit of light on a thing that we, the CouchDB developers, have thought about a lot in the design of CouchDB, but have obviously failed to communicate sufficiently in the earlier days of CouchDB.&lt;/p&gt;

&lt;p&gt;Let me close with saying the Team CouchDB is proud to support npm and the node community! &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;3&lt;/code&gt;&lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>The Parable of Mustache.js</title>
   <updated>2013-11-01T00:00:00+01:00</updated>
   <id>http://writing.jan.io/2013/11/01/the-parable-of-mustache-js.html</id>
   <content type="html">&lt;p&gt;In October 2009 &lt;a href=&quot;https://github.com/defunkt/&quot;&gt;Defunkt&lt;/a&gt; released &lt;a href=&quot;http://github.com/defunkt/mustache&quot;&gt;mustache.rb&lt;/a&gt;. It looked useful to me at the time, but I needed it in JavaScript. The code was just under 200 lines and simple enough that I thought I could port it over on a lazy Sunday, or Saturday, I forget.&lt;/p&gt;

&lt;p&gt;So I did, and to this day, I believe my biggest contribution to mustache.js was not all the fancy stuff that happened since, but the initial transliteration of Ruby to JavaScript. Yes, &lt;em&gt;transliteration&lt;/em&gt;, Ruby and JavaScript are close enough that I did a more or less line by line port of the original code. I can’t claim I did any programming myself there.&lt;/p&gt;

&lt;p&gt;If you look at the early versions of both projects, they look remarkably similar &lt;a href=&quot;/img/mustache.rb-vs-js.png&quot;&gt;&lt;img src=&quot;/img/mustache.rb-vs-js-small.png&quot; alt=&quot;mustache.rb vs mustache.js&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mustache.rb&lt;/code&gt; was a huge hit in Ruby land right away and soon after I did my port a number of very smart people came around and rewrote the existing RegEx based “parser” (&lt;em&gt;eugh&lt;/em&gt;) into a proper parser and compiler combination to make sure all proper computer science theory is applied and things run most efficient.&lt;/p&gt;

&lt;p&gt;I looked back at the code then and couldn’t find my way around, things were split over dozens of files and I am sure it all made sense to a very organised brain, but I couldn’t even begin to start to understand what the whole thing did. And I remember distinctly that I was happy that I found &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mustache.rb&lt;/code&gt; in the before state so that I had a chance to port it. I would never have begun to try if I had found the “more optimal” solution.&lt;/p&gt;

&lt;p&gt;The realisation there though made me also a bit sad. I am all for doing the right thing and executing things faster and everything, but it bugged me that the clarity of the code was all gone now.&lt;/p&gt;

&lt;p&gt;Then other smart people came and wanted to do the same for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mustache.js&lt;/code&gt; and I was hesitant. But instead of trying to argue with clarity, because fuck that if we can make it 10x faster, my argument was that these parsers &amp;amp; compilers are way too long for a JavaScript implementation that was targeted at the browser. My tagline was “by the time your compiler is finally done downloading, my RegEx parser has already produced a result”. It was of course a bit of a cop-out, but I got quite far with it.&lt;/p&gt;

&lt;p&gt;Until &lt;a href=&quot;https://github.com/natevw&quot;&gt;Nate&lt;/a&gt; showed up and wrote a parser/compiler in ~350 lines of code (that was roughly the acceptable limit for me then) and I finally lost that argument too. But it took a while until &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mustache.js&lt;/code&gt; finally got its well needed superpowers, with huge help from &lt;a href=&quot;https://github.com/mjijackson&quot;&gt;Michael&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Meanwhile, I met &lt;a href=&quot;https://github.com/wycats/&quot;&gt;Yehuda Katz&lt;/a&gt; at a conference and someone introduced me as “Jan, he does CouchDB and mustache.js” and Yehuda just said “Oh boy, I’m going to upset you soon.” and then avoided me for the rest of the conference (or it was just coincidence, I don’t know :). A week later he released &lt;a href=&quot;https://github.com/wycats/handlebars.js&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;handlebars.js&lt;/code&gt;&lt;/a&gt;, a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mustache.js&lt;/code&gt;-inspired templating engine with some extra features that were really useful. But it wasn’t according to spec, just close enough, that a lot of people started using it. I thought “good for them”, but I secretly (&lt;a href=&quot;http://writing.jan.io/mustache-2.0.html&quot;&gt;or not so secretly&lt;/a&gt;) wanted to steal the best ideas and get people to use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mustache.js&lt;/code&gt; instead. That didn’t really go anywhere because people stopped working on the spec in a sensible manner and we couldn’t agree on more features. And eventually, I spent more time with CouchDB again.&lt;/p&gt;

&lt;p&gt;In the meantime &lt;a href=&quot;http://mustache.github.io&quot;&gt;many more mustache implementations in other languages&lt;/a&gt; appeared and one implicit design goal between was it to allow sharing of templates between them and produce compatible output. There is even &lt;a href=&quot;http://mustache.github.io/mustache.5.html&quot;&gt;a spec&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Around the same time Twitter started using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mustache.js&lt;/code&gt; in the frontend and it was a great honour. But they too preferred a proper parser/compiler implementation so &lt;a href=&quot;https://github.com/fat&quot;&gt;@fat&lt;/a&gt; &amp;amp; team went ahead and wrote &lt;a href=&quot;https://github.com/twitter/hogan.js&quot;&gt;Hogan&lt;/a&gt;, a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mustache.js&lt;/code&gt;-compatible implementation with a faster load and runtime. @fat talked about this at his &lt;a href=&quot;http://www.youtube.com/watch?v=zwoiwoVNaCQ&quot;&gt;2012 JSConf US talk&lt;/a&gt;, he got asked why he didn’t submit a pull request to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mustache.js&lt;/code&gt; instead of making a new project. He said that a Pull Request that consists of “Hey, I threw away all your code and replaced it with mine” isn’t such a good idea. I agree, it wouldn’t have left the best impression.&lt;/p&gt;

&lt;p&gt;He praised though, that they were able to build a compatible implementation that could compete on its own merits while still being compatible with a spec and he said that all library development should be done that way. Too often we conflate a great idea with its implementation and we would be better of allowing different ones and let users pick and choose their poison.&lt;/p&gt;

&lt;p&gt;While watching @fat speak, it dawned on me that if I look at things this way, then the RegEx implementation of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mustache.js&lt;/code&gt; is just another implementation of the same spec and its merits are tight and accessible code. And I could have hugged him for it. In fact I ran up on stage during the talk and &lt;a href=&quot;http://www.youtube.com/watch?v=zwoiwoVNaCQ&quot;&gt;nearly ran him over&lt;/a&gt; (22m:15s). My beloved implementation still had a reason to exist and that made me very happy. Until today, the 0.4 branch of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mustache.js&lt;/code&gt; is still around.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/hugs.png&quot; alt=&quot;Hugs&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lessons Learned&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;Accessible code has merit over optimised code, even if the optimised code should be used most of the time.&lt;/p&gt;

&lt;p&gt;Build libraries with a spec, encourage competing implementations. (We plan to do this for &lt;a href=&quot;http://hood.ie&quot;&gt;Hoodie&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Hugs win.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;The state of mustache today is alright, the implementations are all reasonably mature projects and people just use them. But there are a few that want to move it forward but are hindered by the complacency of the early adopters who have moved on to other things (including me). I hope we can get that resolved eventually.&lt;/p&gt;

&lt;p&gt;On that note, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mustache.js&lt;/code&gt; has a number of interesting &lt;a href=&quot;https://github.com/janl/mustache.js/pulls&quot;&gt;Pull Requests&lt;/a&gt; and &lt;a href=&quot;https://github.com/janl/mustache.js/issues&quot;&gt;issues&lt;/a&gt; open and if anyone is interested in taking over maintainership, please make yourself heard in on the &lt;a href=&quot;https://github.com/janl/mustache.js/&quot;&gt;GitHub project&lt;/a&gt;.&lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>Let’s Start a Revolution</title>
   <updated>2013-08-16T00:00:00+02:00</updated>
   <id>http://writing.jan.io/2013/08/16/lets-start-a-revolution.html</id>
   <content type="html">&lt;p&gt;I will not die for you&lt;br /&gt;
I will  not kill for you&lt;br /&gt;
I will not fight for you&lt;br /&gt;
I will hold your burning flag in my hand&lt;/p&gt;

&lt;p&gt;— &lt;em&gt;Coup d’etat&lt;/em&gt; by Refused&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;History is filled with two types of people: the ones that want to maintain a comfortable status quo and the ones that want to move humanity forward.&lt;/p&gt;

&lt;p&gt;The maintainers of the status quo tend to be the ones on top of the food chain. The ones that want to bring humanity forward are usually the ones who are questioning the laws, the mechanics, the inner workings of whatever is going on at that time.&lt;/p&gt;

&lt;p&gt;Over the centuries the ruling classes set up schemes to structurally keep everybody else out. Over the same centuries though, they had to cede step for step that more and more people could benefit from the privilege of an upper class.&lt;/p&gt;

&lt;p&gt;There is this phrase “on the wrong side of history”. We use it when we look at societal issues that are discussed at a certain point, today, or in the past. Democracy, slavery, racism. A contentious issue will always have people arguing either side, and over time we see who got it right. The others are on the wrong side of history.&lt;/p&gt;

&lt;p&gt;Giving the same opportunities (at least on paper) to women is a novel concept as of as  little as 100 years ago and is still not evenly spread around this  planet, especially in the western world.&lt;/p&gt;

&lt;p&gt;The USA have built a whole country around that idea that you can work your  way up from the lower classes to power, fame and wealth. Under the hood, however, you see the same structural oppression of the lower classes  that you can trace through the middle-ages, Rome, Athens and ancient Egypt.&lt;/p&gt;

&lt;p&gt;For the most part, I think it is obvious what history tends to align with: making things better for a large group of people at the expense of a few privileged ones.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;lets-talk-about-money&quot;&gt;Let’s Talk About Money&lt;/h2&gt;

&lt;p&gt;Money is what enables business, enables society, and thus enables progress.&lt;/p&gt;

&lt;p&gt;People who manage money should never be the ones making final decisions or define culture, work or otherwise. However, today, they dominate education, culture and business. And we all suffer for it.&lt;/p&gt;

&lt;p&gt;The focus on money today is obscene. Just look at some of the language around it: “money works”, bullshit, money does nothing but representing a value, people work.&lt;/p&gt;

&lt;p&gt;People get compared by what they are “worth” as if merely having money has any meaning. Only if you do something good with your money, you are an asset to society, are worth something.&lt;/p&gt;

&lt;p&gt;We allow current generations to be exploited for short-term capital gains, while feeding the next generation the same ideals and thus manifest this whole travesty into our culture for generations to come.&lt;/p&gt;

&lt;p&gt;Over the past few decades though, we have forgotten that, because it enables things, money is a utility, and yet we treat it as means in itself.&lt;/p&gt;

&lt;p&gt;We need to get back to understanding that money is a tool and that people who manage money are enablers for the ones who push for progress.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;this-is-our-time&quot;&gt;This is our Time&lt;/h2&gt;

&lt;p&gt;A few weeks back Dennis Plauk was on German TV. You have likely never heard of him and likely never will again, but his appearance made a distinct impact on me.&lt;/p&gt;

&lt;p&gt;He was on a national TV news show, giving his expert opinion as the editor in chief of a music magazine.&lt;/p&gt;

&lt;p&gt;More importantly though, THAT DUDE WENT TO MY HIGH SCHOOL. He was a year ahead of me, and from the fifteen hundred people that went to that high school, he was one of the very few that made an impression that lasts until today.&lt;/p&gt;

&lt;p&gt;Seeing him on TV solidified a feeling that I had for a while. My generation, I was born in 1982, is gearing up to be the generation that runs this world. We are gradually being passed the baton of history to carry it all forward to make a mark. If we so choose.&lt;/p&gt;

&lt;p&gt;If you’d ask me to characterise my generation in one word I’d choose apathy. I see early 20s today that have a much keener sense of making their mark in world than my generation ever had.&lt;/p&gt;

&lt;p&gt;This is our time. Let’s make our mark.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;of-privilege-and-social-responsibility&quot;&gt;Of Privilege and Social Responsibility&lt;/h2&gt;

&lt;p&gt;My industry is high-tech, software to be precise.&lt;/p&gt;

&lt;p&gt;My job is to take ideas that are of certain value to certain people and tell computers how to provide that value.&lt;/p&gt;

&lt;p&gt;With “job” in the getting-paid-for-it sense, I get to do what alchemists have failed at for millennia: making Gold. Making Gold out of thin air (and coffee).&lt;/p&gt;

&lt;p&gt;On top of performing alchemy on a daily basis, the people in my profession get treated like unicorns. We get to choose what we work on, when to work on it, for how long to work on it, where to work on it. And if we bloody please so, we take a week off and hang out in Dublin and speak at a conference along with and in front of like-minded unicorns.&lt;/p&gt;

&lt;p&gt;In order to do our job, or taking a step back, in order to live, we rely on a modern society built on people who “do their job”, whichever that one is. On any given day, we rely on people who maintain the civic infrastructure, water, power, waste, provide us with ways to purchase food in various forms, people who clean our homes, offices and gardens, people who cut our hair, who drive us around town and many many more that we don’t even see or interact with.&lt;/p&gt;

&lt;p&gt;I don’t suggest that these people can’t or won’t find pride, honour and fulfilment in their work, but they sure have to live with a lot fewer every-day liberties than the lucky bunch that is us technologists.&lt;/p&gt;

&lt;p&gt;We are privileged. Privilege is when you don’t see a major problem with the world around you. When you don’t understand why someone or even a large group of people would be angry, after all, they all grew up here, they could just have done the same things that you did and they’d be fine.&lt;/p&gt;

&lt;p&gt;Privilege is not something I was particular aware of growing up. That’s usual for people who grow up privileged. Sure, there were things I wasn’t particularly satisfied with, but looking back, my parents had steady jobs, I went to an o-kay school, we went to France for our summer vacation, in one of the two cars we had.&lt;/p&gt;

&lt;p&gt;Understanding privilege was, for me, a very grown-up thing to do (yes, I still use “grown-up” in the sense that I don’t think I really am one).&lt;/p&gt;

&lt;p&gt;My first reaction when it dawned on me that I did have a sort of privilege was shame, I was better off than others through no fault of theirs or feat of my own. That was a bitter realisation to make. In fact, it made me not think about privilege too much, which is yet another privileged thing to do (but I wouldn’t learn this until later).&lt;/p&gt;

&lt;p&gt;I finally came to terms with my position when I understood that privilege is not inherently a bad thing (and if you tell me it is, fuck you for shattering my self-view). While it is very easy to exploit privilege, by simply doing nothing, or actively building upon your advantage to further it to the disadvantage of others. But, and here is where things turned around for me, you can use privilege for good.&lt;/p&gt;

&lt;p&gt;Now, as a unicorn alchemist and accepting my privileged position in society, I understood that I do not only have the ability to use my privilege for good, but that I have a social responsibility to do so.&lt;/p&gt;

&lt;p&gt;And given all the liberties we are given through our privilege, we don’t only have a responsibility of turning our powers into good, we have an exceptional opportunity to make this world a better place.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;how-to-revolt&quot;&gt;How to Revolt&lt;/h2&gt;

&lt;p&gt;If we are looking at the ingredients for a revolution, we are half way there. We have the motivation, the opportunity and the timing. Let’s find out how to revolt.&lt;/p&gt;

&lt;p&gt;An entrepreneur’s job is to find out how to create and extract value from current historic, societal and economic circumstances.&lt;/p&gt;

&lt;p&gt;At its core business is a-moral. Money changing hands for goods and services does not care who made what under which conditions.&lt;/p&gt;

&lt;p&gt;Yet, business gets to define so much of our culture. Our life revolves around working five days a week, working 40+ hours, working to maximise shareholder value.&lt;/p&gt;

&lt;p&gt;There is plenty of scientific evidence that this status quo actively harms people, physically and psychologically, and as a consequence, holds back society. People get sick from too much work and stress, costing the healthcare systems more money than they can handle and people are no longer capable or able to do any good.&lt;/p&gt;

&lt;p&gt;Business at large, “capitalism”, is a fantastic tool to achieve great progress at scale, but business for business sake, or profit for profit’s sake can never be a cultural goal, only a side-effect.&lt;/p&gt;

&lt;p&gt;Yet, as it has always been in history, the people in charge, the privileged ones, keep this up for their own benefit.&lt;/p&gt;

&lt;p&gt;We live in a culture that teaches everyone that you need a job to be happy, to be a useful part in society, to work hard to be &lt;em&gt;someone&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;The way this work “un-ethic” is engrained into our culture is deeply vicious. Through media and entertainment the people who are interested in keeping this status quo pay artists, filmmakers, TV producers, actors, musicians etc. vast amounts of money to keep retelling this story, a story a young person born into this world has little chance of escaping.&lt;/p&gt;

&lt;p&gt;We need to prop up a counter-notion: the idea that the working-hard story is just that, a story told by people who benefit from you working hard.&lt;/p&gt;

&lt;p&gt;We need to let life define work, not the other way around.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;revolting-daily-an-experiment&quot;&gt;Revolting Daily: An Experiment&lt;/h2&gt;

&lt;p&gt;I don’t have a tried and trusted system, but I’ve started to experiment. Feel free to follow my ideas, or build upon them or experiment with your own ideas, and tell us all about it. Here is what I am doing:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Optimise for happiness. Nothing that is supposed to bring society forward is worth doing if it makes people miserable.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;De-emphasise “work” as the defining constant in life. “Life” is the defining constant in life. We should be able to turn enough profit to support life and growth on working two days a week. Encourage that the rest of the time is spent volunteering, teaching kids to code, work at a charity, or just enjoy life with friends and family.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Get the money-people out of the decision line. Make them advisors, make your CEO the Chief Happiness Officer, or even better, turn the leadership of the company over to a non-profit that is bound by ethical statutes that will always override short-sighted monetary decisions.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is a good start, let’s get that going and then address the next steps:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Figure out how to make all this available to less unicorn-heavy sectors. Run &lt;em&gt;society&lt;/em&gt; that way, not just high tech.&lt;/li&gt;
  &lt;li&gt;Figure out the balance between being able to create a sustainable, moral, business and being on the right side of history.&lt;/li&gt;
  &lt;li&gt;Spread the word, inspire others to follow your lead. Learn from other’s successes and mistakes. Find giants to stand on.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;lets-go&quot;&gt;Let’s go!&lt;/h2&gt;

&lt;p&gt;There are about five billion years in this solar system in front and behind our lives. This is our one shot. And we can make a difference.&lt;/p&gt;

&lt;p&gt;We have an exceptional opportunity to make this world a better place.&lt;/p&gt;

&lt;p&gt;We are in a perfect position to lead change.&lt;/p&gt;

&lt;p&gt;Now is the perfect time to start leading that change.&lt;/p&gt;

&lt;p&gt;The culture of business today is on the wrong side of history.&lt;/p&gt;

&lt;p&gt;Let us change that.&lt;/p&gt;

&lt;p&gt;Let us start a revolution.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;This essay was created from the notes for my opening talk for the &lt;a href=&quot;http://2013.brioconference.com&quot;&gt;2013 edition of &lt;em&gt;brio&lt;/em&gt;&lt;/a&gt;. My thanks to &lt;a href=&quot;https://twitter.com/ffffux/&quot;&gt;Lena Reinhard&lt;/a&gt; for her invaluable editing help.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>How To Give the Killer Tech Talk — A Pamphlet</title>
   <updated>2013-05-10T00:00:00+02:00</updated>
   <id>http://writing.jan.io/2013/05/10/how-to-give-the-killer-tech-talk-a-pamphlet.html</id>
   <content type="html">&lt;p&gt;Here’s my battle tested recipe for giving amazing technical presentations.&lt;/p&gt;

&lt;h2 id=&quot;prelude&quot;&gt;Prelude&lt;/h2&gt;

&lt;h3 id=&quot;have-a-topic--know-your-topic--know-your-audience&quot;&gt;Have a Topic / Know Your Topic / Know Your Audience&lt;/h3&gt;

&lt;p&gt;This recipe assumes that you have something interesting to talk about. It assumes you know your topic, the better the better, but you don’t have to be an expert. Especially, don’t sweat that there might be someone in the audience that knows more. Don’t be afraid to say “I don’t know” to questions, deferring it to looking up the answer.&lt;/p&gt;

&lt;p&gt;You are on stage, this is your show.&lt;/p&gt;

&lt;h3 id=&quot;performance--content&quot;&gt;Performance &amp;gt; Content&lt;/h3&gt;

&lt;p&gt;Again, you should know your stuff, but more important than stating what you know is &lt;em&gt;how&lt;/em&gt; you state what you know. A presentation in front of an audience is 90% performance and 10% content, or 80/20, doesn’t matter really.&lt;/p&gt;

&lt;p&gt;You don’t have to be a great entertainer, but people look up to confidence, be bold. If you are not usually bold, assume a stage persona that isn’t actually the frightened you. Put on a masquerade, a show for the masses. It is totally okay for you to be frightened, but the audience need to never know.&lt;/p&gt;

&lt;p&gt;And never forget, even the most professional speakers, musicians, anyone on a stage, is frightened and nervous before the gig.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;With that out of the way, here’s my recipe for giving kick-ass technical presentations, based on my experience giving and seeing many good and many more bad technical presentations. My thanks to all the speakers that I could learn from and to anyone who has ever given me constructive feedback.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;the-recipe&quot;&gt;The Recipe&lt;/h2&gt;

&lt;h3 id=&quot;0-hello&quot;&gt;0. Hello&lt;/h3&gt;

&lt;p&gt;Say hi, introduce yourself, give a bit of a background, say thanks for being let on stage. Build empathy. I am one of you, we share the same problems/goals/values etc. We understand each other.&lt;/p&gt;

&lt;p&gt;2 minutes.&lt;/p&gt;

&lt;h3 id=&quot;1-scope&quot;&gt;1. Scope&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;WHOA.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Grab your audience’s interest. Make them listen, ask intriguing questions, or make some outlandish statements that you come back to later for clarification. Build enough suspension to keep your audience’s attention.&lt;/p&gt;

&lt;p&gt;Manage expectations Here’s what’s going to happen, and this is why it’s relevant to you.&lt;/p&gt;

&lt;p&gt;3 minutes.&lt;/p&gt;

&lt;h3 id=&quot;2-show--tell&quot;&gt;2. Show &amp;amp; Tell&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;BOOM.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Blow the audience away. Answer the questions you asked before, back up the outlandish claims you had. Sing, dance, do whatever it takes to get your audience to drop their jaws, two, three times.&lt;/p&gt;

&lt;p&gt;If you show off some software, parade it around, try a live demo, or point out important snippets and results. If a demo is hard, pre-record and talk over a video.&lt;/p&gt;

&lt;p&gt;Start with your strongest point first.&lt;/p&gt;

&lt;p&gt;Make weaker points more relevant by binding them to the previous point or using them as a segue to the next one.&lt;/p&gt;

&lt;p&gt;Have a narrative that carries you through your talking points.&lt;/p&gt;

&lt;p&gt;End on something concise your audience can tweet.&lt;/p&gt;

&lt;p&gt;10 minutes.&lt;/p&gt;

&lt;h3 id=&quot;3-details&quot;&gt;3. Details&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Yadda, Yadda.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Here is where you get to explain the magic. You get to dive into technical details, you get to explain the design philosophy behind your topic. This is where you win your audience’s hearts.&lt;/p&gt;

&lt;p&gt;10 minutes.&lt;/p&gt;

&lt;h3 id=&quot;4-thanks&quot;&gt;4. Thanks&lt;/h3&gt;

&lt;p&gt;Say thank you. Take a breath, you are done.&lt;/p&gt;

&lt;h3 id=&quot;5-qa&quot;&gt;5. Q&amp;amp;A&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Huh?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The Q&amp;amp;A serves multiple purposes:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;it gives you feedback on how well the talk went / how relevant the topic was to your audience. The more and the harder the questions, the better.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;it gives you feedback on what to do better next time. Maybe there is a point you forgot to make, a connection that you didn’t walk the audience through, maybe there is a technical aspect that many are interested in.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;it gives you an opportunity to do a deep-dive into a topic that you only mentioned briefly, or not at all, before.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;5 minutes.&lt;/p&gt;

&lt;h2 id=&quot;bonus-material&quot;&gt;Bonus Material&lt;/h2&gt;

&lt;p&gt;Know the rules, then break them.&lt;/p&gt;

&lt;hr /&gt;

</content>
 </entry>
 
 <entry>
   <title>Words Considered Harmful</title>
   <updated>2013-03-28T00:00:00+01:00</updated>
   <id>http://writing.jan.io/2013/03/28/words-considered-harmful.html</id>
   <content type="html">&lt;blockquote&gt;
  &lt;p&gt;I’ve heard before: What’s the harm? Why not at least try to include ‘Hey there!’ if every little bit helps? Somewhat of a fair point. Using a word does no harm in the same way a daisy does no harm to your front lawn, or a shade of grey does no harm to your shadow.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;Here’s where I’ll join the rest in unquantifiable hoodoo: I believe words are aesthetically damaging. I believe a white space free of words is more pleasing to the eye, more easily consumed, and thus more likely to be retweeted (which is a proven way of growing your audience).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;http://www.niemanlab.org/2013/03/hashtags-considered-harmful/&quot;&gt;Hear, hear&lt;/a&gt;.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Node Dublin — Open Source Communities</title>
   <updated>2013-02-12T00:00:00+01:00</updated>
   <id>http://writing.jan.io/2013/02/12/node-dublin-talk-about-open-source-communities.html</id>
   <content type="html">&lt;p&gt;These are my notes from my Node Dublin talk about &lt;a href=&quot;http://www.youtube.com/watch?v=779EwBQxb4k&quot;&gt;“Open Source Communities”&lt;/a&gt;. I don’t think I did the title justice in the end, but I’ll keep it for consistency’s sake. &lt;a href=&quot;http://www.youtube.com/watch?v=779EwBQxb4k&quot;&gt;The video&lt;/a&gt; shows that I was fairly nervous giving the talk and I wasn’t quite happy with the sound engeneer and my snouting into the mic while breathing. For those of you who can’t stand to watch, here are the notes.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Welcome&lt;/p&gt;

&lt;p&gt;I am Jan Lehnardt: &lt;a href=&quot;https://twitter.com/janl&quot;&gt;@janl&lt;/a&gt;, &lt;a href=&quot;http://couchdb.apache.org&quot;&gt;Apache CouchDB&lt;/a&gt;, &lt;a href=&quot;https://github.com/janl/mustache.js&quot;&gt;mustache.js&lt;/a&gt;, &lt;a href=&quot;http://jsconf.eu&quot;&gt;JSConf EU&lt;/a&gt;.&lt;/p&gt;

&lt;h1 id=&quot;open-source-communities&quot;&gt;Open Source Communities&lt;/h1&gt;

&lt;p&gt;I was gonna look at Node through the lens of other Open Source communities I had been involved in and conclude that by avoiding most of the mistakes it became the most exciting community of all time.&lt;/p&gt;

&lt;p&gt;Lukily &lt;a href=&quot;https://twitter.com/izs&quot;&gt;Isaacs&lt;/a&gt; and &lt;a href=&quot;https://twitter.com/mikeal&quot;&gt;Mikeal&lt;/a&gt; made a way better case for why Node is successful, and why the key success is not yet manifsting itself in dominating anything, but setting us on a trajectory to disrupt all of IT (and &lt;a href=&quot;http://www.ted.com/talks/clay_shirky_how_the_internet_will_one_day_transform_government.html&quot;&gt;if you believe Clay Shirkey&lt;/a&gt;— &lt;em&gt;and you should&lt;/em&gt; — disrupt society &amp;amp; politics).&lt;/p&gt;

&lt;p&gt;To reiterate, Node’s core accomplishments are:&lt;/p&gt;

&lt;p&gt;No language war. JavaScript is good enough.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Small Core.&lt;/li&gt;
  &lt;li&gt;Clear Module Abstraction.&lt;/li&gt;
  &lt;li&gt;Non-Leadership.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://npmjs.org&quot;&gt;NPM&lt;/a&gt; (I add).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And finally, Node’s whole premise is to be good at building networked servers.&lt;/p&gt;

&lt;p&gt;Not be an immersive development environment, like .NET, Java, Cocoa, or frameworks like Rails, Django &amp;amp; the like.&lt;/p&gt;

&lt;p&gt;It turns out that the concept of a neworked server is a really good abstraction for building all sorts of software.&lt;/p&gt;

&lt;p&gt;So by trying hard to avoid being everybody’s darling, Node focussed on one thing and perfected that thing that makes it everybody’s darling.&lt;/p&gt;

&lt;p&gt;(My dayjob is working on Apache CouchDB. It is written in &lt;a href=&quot;http://www.erlang.org&quot;&gt;Erlang&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The whole programming paradigm of Erlang revolves around building miniature networked servers that do one simple job for robustness and fault tolerance, easy of reasoning and finally parallel execution, and to put them together in a way that creates bigger software, not just servers.&lt;/p&gt;

&lt;p&gt;Many other components of desktop and mobile software can be expressed as being a networked server.&lt;/p&gt;

&lt;p&gt;Heck, even the &lt;a href=&quot;http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/doc_kay_oop_en&quot;&gt;original definition of OOP&lt;/a&gt; is independent entities that hold data and have behaviours attached that would send messages to each other to invoke that behaviour.)&lt;/p&gt;

&lt;h2 id=&quot;world-domination&quot;&gt;World Domination&lt;/h2&gt;

&lt;p&gt;With the &lt;a href=&quot;http://www.youtube.com/watch?v=2RXprpqRsfc&quot;&gt;keynotes&lt;/a&gt; &lt;a href=&quot;http://www.youtube.com/watch?v=HI04gW3VcGQ&quot;&gt;yesterday&lt;/a&gt; morning and after looking at &lt;a href=&quot;http://www.youtube.com/user/NodeDublin&quot;&gt;all the fantastic technical talks&lt;/a&gt; we saw over the past two days I hope you get a sense not only for how succesful Node is, but also why, and why that is even more important than the current success.&lt;/p&gt;

&lt;p&gt;Taking a step back.&lt;/p&gt;

&lt;p&gt;We can now build entire systems in pure JavaScript, frontend and backend and this is significant.&lt;/p&gt;

&lt;p&gt;We can also control flying quad-copters and robots and power moblie experiences.&lt;/p&gt;

&lt;p&gt;We are bridging all fields of computer science from the hardware up to fancy 3D rendering. All in JavaScript.&lt;/p&gt;

&lt;p&gt;And all of it is becoming good enough, in the same sense that JavaScript is good enough to be the language of Node, to go out and build everything.&lt;/p&gt;

&lt;p&gt;This is where this talk becomes emotional.&lt;/p&gt;

&lt;p&gt;We, the people in this room, the ones at the other Node conferences, the JavaScript conferences and the frontend conferences and the people out in the field, we are going to be building the next genration of software, infrastructure, products, everything.&lt;/p&gt;

&lt;p&gt;We will be powering the ongoing digitalisation and networkification of the world, of commerce, of governments.&lt;/p&gt;

&lt;p&gt;Not the enterprise Java folks, not the PHP people, not Rails. Us.&lt;/p&gt;

&lt;p&gt;That isn’t to say the others won’t have their place, but we’ll have lion’s share of things to do.&lt;/p&gt;

&lt;p&gt;To invoke Clay Shirky one more time: they are from a time before GitHub.&lt;/p&gt;

&lt;h2 id=&quot;social-responsibility&quot;&gt;Social Responsibility&lt;/h2&gt;

&lt;p&gt;Taking another step back, a couple in fact.&lt;/p&gt;

&lt;p&gt;We, the programmers, the designers of the world, we have an incedible gift.&lt;/p&gt;

&lt;p&gt;A gift that nobody else has, and many have tried to gain for millennia: We can create gold out of thin air (or, maybe out of thick coffee).&lt;/p&gt;

&lt;p&gt;A show of hands, who here in this room considers to be in her or his dream job? We get to dictate the conditions of our employment.&lt;/p&gt;

&lt;p&gt;We dictate salary, we dictate working hours and we dictate what we want to work on. Nobody else has that freedom.&lt;/p&gt;

&lt;p&gt;Yet, we are relying on a society that “does their job”.&lt;/p&gt;

&lt;p&gt;Many of the speakers here have come from far away to share their thoughts with us and to hang out, to have fun.&lt;/p&gt;

&lt;p&gt;We came by plane, rode in cabs, staying in hotels, or friend’s houses.&lt;/p&gt;

&lt;p&gt;We enjoy coffee and lunch here and in the city, use public transport.&lt;/p&gt;

&lt;p&gt;We build upon education, rely on medical service.&lt;/p&gt;

&lt;p&gt;All of it built &amp;amp; run by people who do their job, that do not get to dictate salary, working ours or what to they fancy to work on.&lt;/p&gt;

&lt;p&gt;We live such abstracted lives that we can concentrate on creating immense value from literally and figratively nothing.&lt;/p&gt;

&lt;p&gt;On top of that we get paid ridiculous amounts of money (absolutely and in comparison) to do so.&lt;/p&gt;

&lt;p&gt;It is absolutely fabulous, and I love every minute of it. It is an immense privilege that I get to live this life. A life I choose.&lt;/p&gt;

&lt;p&gt;But reflecting leaves me with a sense of responsibility towards my fellow people.&lt;/p&gt;

&lt;p&gt;Those who don’t get to burn through billions of venture capital money to play table tennis all day.&lt;/p&gt;

&lt;p&gt;Not the ones that actually manage to return an investment and make the obscenely rich people even richer.&lt;/p&gt;

&lt;p&gt;At the expense of innovation, at the expense of personal freedom, prosperity, security.&lt;/p&gt;

&lt;p&gt;Jeff Hammerbacher &lt;a href=&quot;http://www.businessweek.com/magazine/content/11_17/b4225060960537.htm&quot;&gt;said&lt;/a&gt;: “The best minds of my generation are thinking about how to make people click ads, that sucks.”&lt;/p&gt;

&lt;p&gt;I agree and I feel responsible to build a future, technologically and socially that values humanity over profit.&lt;/p&gt;

&lt;p&gt;I hope you feel that responsibility as well.&lt;/p&gt;

&lt;h2 id=&quot;we-are-the-future&quot;&gt;(We Are) The Future&lt;/h2&gt;

&lt;p&gt;Given the premise that we, the people in this room, are on the verge of setting the stage for the world, what can we do to make sure our reign will be rememberd as a good one?&lt;/p&gt;

&lt;p&gt;And given that we accept that through the way things are set up today, that we are in an incredibily privileged position that comes with a social responsibility, what should we do with it?&lt;/p&gt;

&lt;p&gt;I’m not here to try to plaster my own agenda over you. Instead, I’m sharing a few points of view to encourage you to actively think about your own.&lt;/p&gt;

&lt;p&gt;Take Mozilla.&lt;/p&gt;

&lt;p&gt;Where a non-profit organisation owns a for-profit company.&lt;/p&gt;

&lt;p&gt;The non-profit keeps to set the goals for the company, while the company uses capitalism, markets &amp;amp; money as a tool to build stuff that benefits everybody.&lt;/p&gt;

&lt;p&gt;Firefox, &lt;a href=&quot;https://login.persona.org&quot;&gt;Persona&lt;/a&gt; (née BrowserID), &lt;a href=&quot;http://donottrack.us&quot;&gt;Do Not Track&lt;/a&gt;. All build expressly against finanical benefits of one single institution.&lt;/p&gt;

&lt;p&gt;Why don’t we have more organisations like this?&lt;/p&gt;

&lt;p&gt;Nerds imagined and built Mozilla.&lt;/p&gt;

&lt;p&gt;We can do, too.&lt;/p&gt;

&lt;p&gt;Imageine a mobile carrier, that is set up like Mozilla.&lt;/p&gt;

&lt;p&gt;Globally run, with the user in mind, engaging the community for support.&lt;/p&gt;

&lt;p&gt;Imagine sane data-plans, free roaming between GSM technologies and community provided wifi.&lt;/p&gt;

&lt;p&gt;Net access for everyone, cheaply, not bullshit telcos that just screw over everyone, when their job is administrating a public resource.&lt;/p&gt;

&lt;p&gt;Let’s build a mobile carrier like this. You and me, let’s do this.&lt;/p&gt;

&lt;p&gt;Better yet, let’s encourage others to do this as well, let’s build ten, or a hundred.&lt;/p&gt;

&lt;p&gt;Let’s take this idea and apply it to many many more areas of life.&lt;/p&gt;

&lt;p&gt;Or, in Mikeal’s footsteps, defy organisations, just build stuff in losely coupled communities that circumvents and dominates all the current institutions who are set up to exploit, rather than support us.&lt;/p&gt;

&lt;p&gt;Let’s hack and fork business models and community patters as freely as we do code.&lt;/p&gt;

&lt;p&gt;Let’s work on problems that matter.&lt;/p&gt;

&lt;p&gt;Let’s work at a scale that makes an impact.&lt;/p&gt;

&lt;p&gt;We are all JavaScript People.&lt;/p&gt;

&lt;p&gt;The future is ours.&lt;/p&gt;

&lt;p&gt;Thank you.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>The State of CouchDB</title>
   <updated>2013-02-01T00:00:00+01:00</updated>
   <id>http://writing.jan.io/2013/02/01/the-state-of-couchdb.html</id>
   <content type="html">&lt;blockquote&gt;
  &lt;p&gt;&lt;a href=&quot;http://www.neighbourhood.ie/couchdb-support/&quot; title=&quot;Professional Support for Apache CouchDB™, From the People who Brought You CouchDB.&quot;&gt;Get Professional CouchDB Support Now&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;http://conf.couchdb.org/slides/The-State-of-CouchDB-CouchDB-Conf-Berlin-January-2013.pdf&quot;&gt;Slides to go with the headings&lt;/a&gt;.&lt;/p&gt;

&lt;hr /&gt;
&lt;p&gt;Hi, welcome to CouchDB Conf.&lt;/p&gt;

&lt;p&gt;CouchDB means a lot to me and it makes me very happy that you are all here today.&lt;/p&gt;

&lt;h2 id=&quot;who-am-i&quot;&gt;Who am I&lt;/h2&gt;

&lt;p&gt;My name is Jan Lehnardt and I am the elected project management committee chair of the Apache CouchDB project. If you don’t know what this means, don’t worry, it means I sign up to deal with politics and paperwork voluntarily.&lt;/p&gt;

&lt;p&gt;I have been with CouchDB since 2006. My first contribution was the initial UNIX build system to CouchDB. I stuck around ever since.&lt;/p&gt;

&lt;p&gt;My main job back then was PHP/MySQL consulting and Open Source work as my own 20% project. In 2007, I started giving talks about CouchDB at user groups and conferences and quickly became addicted. People called me the CouchDB Chief Evangelist, although I don’t really like the title. From 2008 I started getting contracting jobs specifically for CouchDB and things blew up quickly that it became clear soon, that an organisation of some sort was needed to handle this. I eventually joined forces with CouchDB’s original inventor and J Chris Anderson to form the company Couch.io. We initially weren’t keen on taking venture capital, but when the whole NoSQL thing blew up, it was very hard to say no and on January 1st 2010 we were in business.&lt;/p&gt;

&lt;p&gt;Couch.io turned into CouchOne and was eventually merged with Membase into Couchbase. Unfortunately, at this point, there isn’t much Couch-y about Couchbase aside from some underlying technology, so the name can be confusing.&lt;/p&gt;

&lt;p&gt;I parted ways with Couchbase a week ago in order to concentrate and focus more on Apache CouchDB and related technologies.&lt;/p&gt;

&lt;h2 id=&quot;couchdb-isnt-dead&quot;&gt;CouchDB isn’t Dead&lt;/h2&gt;

&lt;p&gt;In late 2011 two major supporters of CouchDB withdrew their support: Canonical’s UbuntuOne service, on paper a poster-child use-case for CouchDB and Saucelab’s Selenium platform publicly made clear that they were moving to other technology. It wasn’t a big deal if you looked closely, the one project didn’t have enough resources to integrate with CouchDB the right way and the other diverged so far from the original system design, that CouchDB was no longer a good fit. We were and we remain good friends with the respective developers, so we didn’t feel like pointing that out specifically. The result though was that people who didn’t look closely saw that CouchDB had popular failures where it hadn’t. This wasn’t all bad, but set the stage for another incident a few weeks later.&lt;/p&gt;

&lt;p&gt;CouchDB’s original inventor publicly announced that he’d move on from Apache CouchDB to Couchbase fully. That new technology would only go into Couchbase. If you are in the know, this wasn’t a big deal again, he hadn’t contributed to CouchDB in two years, Couchbase was a different thing and he wanted to rally support for that. The casual reader though took away one lesson: “CouchDB is dead”.&lt;/p&gt;

&lt;p&gt;With the added confusion of Couchbase’s name, and continuing their CouchConf conferences, things looks dire.&lt;/p&gt;

&lt;h2 id=&quot;couchdb-2012&quot;&gt;CouchDB 2012&lt;/h2&gt;

&lt;p&gt;With this in the wild, the active CouchDB committers got together and put out an excellent 1.2.0 release that was accompanied by a new, &lt;a href=&quot;http://couchdb.apache.org&quot;&gt;modern website design&lt;/a&gt;. We thought instead of writing counter-statements and start unnecessary he-said-she-said discussions, we’d rather concentrate on shipping good software. 1.2.0 was well received and the whole thing lead the team to come together as a whole in Boston and two weeks later in a smaller group in Dublin in April 2012.&lt;/p&gt;

&lt;p&gt;We came up with a long list of of features that we wanted to get into CouchDB. Some work happened over the summer, but I personally took a bit of a break to avoid burn-out from CouchDB. In fall, things started moving faster again when more community members started pushing things along. New contributors came and we finally came up with a way to go forward.&lt;/p&gt;

&lt;p&gt;We decided to not be insane. The definition of insanity is trying the same thing over and over again and expecting different results. While it wasn’t all bad in CouchDB land we could do better and to do better we had to change a few things.&lt;/p&gt;

&lt;h2 id=&quot;couchdb-reboot&quot;&gt;CouchDB Reboot&lt;/h2&gt;

&lt;p&gt;We determined that CouchDB needs a fresh mission statement. I signed up to come up with a few drafts, but nothing happened yet, so this one is still out there &lt;em&gt;cough&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;We decided to release more often. With the upcoming 1.3.0 release we will switch to a quarterly release cycle. A new minor version will come out approximately every 90 days, even if it is just a few bug fixes that a small number of people direly need.&lt;/p&gt;

&lt;p&gt;CouchDB 1.3.0 will ship with top-notch API documentation right inside of Futon, the built in admin interface.&lt;/p&gt;

&lt;p&gt;We will start to set up teams where anyone can sign up to work on a specific thing: docs, our JavaScript components, the Erlang core, the admin interface (built in HTML+JS). We want to make sure anyone who has the right skills can contribute in their area of expertise and not be scared away by the Erlang.&lt;/p&gt;

&lt;p&gt;We put some emphasis on QA, automated testing, building binaries and packages for releases as well as in-development versions, so people can try new features before they come out more easily and as a result report issues early.&lt;/p&gt;

&lt;p&gt;A few of the core team will put some focus on encouraging contributions rather than coding themselves. We hope to get more people on board with CouchDB development.&lt;/p&gt;

&lt;p&gt;We also started doing roughly quarterly in-person meetings (at least as smaller groups) and weekly status meetings on IRC to give everything a little more focus and transparency.&lt;/p&gt;

&lt;p&gt;The next few slides &lt;a href=&quot;https://gist.github.com/2387973&quot;&gt;show a long list a few features&lt;/a&gt; that we’ll be working on. If you think anything is missing, let us know!&lt;/p&gt;

&lt;p&gt;The more prominent things are: Merging rcouch, BigCouch, the new Futon, the plugin system and v8/node integration.&lt;/p&gt;

&lt;p&gt;rcouch is a cutting edge distribution of CouchDB with many experimental features. A lot of that work is useful for Apache CouchDB and we plan to fold those back into the project.&lt;/p&gt;

&lt;p&gt;BigCouch is a industry-strength clustering solution for CouchDB to allow seamless scaling and storing of lots of data. BigCouch is going to be merged into mainline CouchDB as well.&lt;/p&gt;

&lt;p&gt;The admin interface Futon is getting a complete refresh with modern web development technologies.&lt;/p&gt;

&lt;p&gt;There are many features hidden in some developer’s git repository because, while useful, it wasn’t generally applicable to CouchDB. With the plugin system, we hope that we can fuel a repository of plugins to CouchDB that are easily installed (think browser extensions, right from Futon). For example, you could install GeoCouch with the click of a button.&lt;/p&gt;

&lt;p&gt;Finally, we are currently discussing the move from SpiderMonkey and to V8 or even Node. The jury is still out on which one it is going to be, but we hope that this is going to open up a lot more opportunities for CouchDB in terms of features and new contributors.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;community&quot;&gt;Community&lt;/h2&gt;

&lt;p&gt;CouchDB would be nothing without you, the community. People who know little about CouchDB might like it or not, but people who &lt;em&gt;really&lt;/em&gt; get to know CouchDB are extremely passionate about it.&lt;/p&gt;

&lt;p&gt;CouchDB’s core idea, the promise that data can be anywhere it is needed, to make applications easier, more approachable and effective for people in modern computing environments, that idea is a big one. It’s the one that brings this community together.&lt;/p&gt;

&lt;p&gt;Thanks again for coming, you are all awesome. CouchDB means a lot to me and I get a little teary seeing you all here.&lt;/p&gt;

&lt;p&gt;If you like any of the above todos, or have some of your own, please help out, &lt;a href=&quot;mailto:jan@apache.org?subject=Helping%20Out%20with%20CouchDB&quot;&gt;get in touch&lt;/a&gt; about how.&lt;/p&gt;

&lt;h2 id=&quot;friends-of-couchdb&quot;&gt;Friends of CouchDB&lt;/h2&gt;

&lt;p&gt;The CouchDB ecosystem is full of exciting projects that support CouchDB in one way or another.&lt;/p&gt;

&lt;h3 id=&quot;pouchdb&quot;&gt;PouchDB&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;http://pouchdb.com&quot;&gt;PouchDB&lt;/a&gt; is the newest project on the scene. PouchDB is a pure JavaScript implementation of CouchDB targeted at the browser.&lt;/p&gt;

&lt;p&gt;Let me say that again: CouchDB in JavaScript, for the browser.&lt;/p&gt;

&lt;p&gt;PouchDB is the oldest idea, but it took the longest to realise because browsers weren’t ready for it. Now is the time though that we can build and ship a CouchDB compatible data store and replication engine that lives entirely in your browser. If you want to build web apps that can seamlessly synchronise data between a laptop, a phone and a server and not treat one as a “master” and the other as “slaves”, PouchDB is your solution.&lt;/p&gt;

&lt;h3 id=&quot;touchdb&quot;&gt;TouchDB&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/couchbaselabs/TouchDB-iOS&quot;&gt;TouchDB-iOS&lt;/a&gt; and &lt;a href=&quot;https://github.com/couchbaselabs/TouchDB-iOS&quot;&gt;-Android&lt;/a&gt; are Objective-C and Java implementations of the same idea, but for mobile phone platforms. They natively integrate into your iOS and Android applications and allow synchronisation between themselves, multiple devices, CouchDB’s on the server and even PouchDB in a browser. Again, a milestone in fulfilling the CouchDB vision: data where it is needed, not on some server, far away over a slow and unreliable or even unavailable connection.&lt;/p&gt;

&lt;h3 id=&quot;nodejs&quot;&gt;Node.js&lt;/h3&gt;

&lt;p&gt;This might not be too obvious to people who don’t do &lt;a href=&quot;http://nodejs.org&quot;&gt;Node&lt;/a&gt;, but CouchDB is big, if not essential here, too. As any programming language &amp;amp; platform, Node.js comes with a package manager called &lt;a href=&quot;https://npmjs.org&quot;&gt;NPM&lt;/a&gt;. As far as package managers go (and I’ve used them all except I think ant) NPM is the one that sucks least, or rather, it is pretty good.&lt;/p&gt;

&lt;p&gt;If you are invested in Node.js programming NPM isn’t just a tool you can use, it is &lt;em&gt;essential&lt;/em&gt; to the development and deployment workflow of your applications. It is that good.&lt;/p&gt;

&lt;p&gt;And here is the kicker: NPM’s (de)-central registry is build on CouchDB. NPM is effectively a CouchApp. The Node elders &lt;em&gt;love&lt;/em&gt; CouchDB.&lt;/p&gt;

&lt;p&gt;I suggest, and plan to turn this into an opportunity for CouchDB. Say, for example, we need benchmarking tools for CouchDB. The Node folks are great at that. If we were to go and say, “hey, do you want to help make NPM faster? Help us build benchmarking tools, so we can speed up CouchDB for you.” — And that’s just one idea, the potential collaboration is immense. Add to that that we maybe get native Node support &lt;em&gt;inside&lt;/em&gt; CouchDB, we can do all sorts of crazy shit like writing core add-ons to CouchDB in JavaScript.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Finally, I’d like to mention Hoodie, a project that Gregor, Alex, I and a few friends have been working on on and of over the past year. It is frontend web app framework that uses Node and CouchDB. We are happy to show that to you on the weekend.&lt;/p&gt;

&lt;h2 id=&quot;the-node-firm&quot;&gt;The Node Firm&lt;/h2&gt;

&lt;p&gt;I am going to mention Node.js one more time. Some of you might know &lt;a href=&quot;http://thenodefirm.com&quot;&gt;The Node Firm&lt;/a&gt;, but for those who don’t, think of it as a company made up of the core contributors to Node.js that come together as a collective of professionals to offer services around Node.js that are complementary to the open source project. Things like consulting, technical vetting, training, things that an open source project rarely can do itself.&lt;/p&gt;

&lt;p&gt;The key part for me to like The Node Firm (I joined recently) is that, and I repeat, it is &lt;em&gt;complementary&lt;/em&gt; to the open source project. It doesn’t try to extract any value from the project, but merely satisfies demand for services that the project can provide. Finally, proceeds are going right back into the community, in the form of conference support, swag, stickers, t-shirts, and so on.&lt;/p&gt;

&lt;p&gt;I think this is a brilliant set up for an open source company and I hope many will fork this model.&lt;/p&gt;

&lt;p&gt;With that as a preamble, I am happy to announce that together with Dave Cottlehuber and the preliminary support of a few community members, we are launching &lt;a href=&quot;http://thecouchfirm.com&quot;&gt;The Couch Firm&lt;/a&gt;, modelled after The Node Firm.&lt;/p&gt;

&lt;p&gt;It is early days for us, but expect the same setup, a business complementary to the open source project.&lt;/p&gt;

&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;Above all, Open Source is about transparency and community, and I hope you feel you have an accurate picture of where we’re at right now. We had a hard year, lost our traction, and we still came out on top.&lt;/p&gt;

&lt;p&gt;With this, I’ll leave the stage for a day of exciting speakers with all sorts of crazy cool topics.&lt;/p&gt;

&lt;p&gt;Thank you all for being here!&lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>CouchDB Conf Recap</title>
   <updated>2013-02-01T00:00:00+01:00</updated>
   <id>http://writing.jan.io/2013/02/01/couchdb-conf-berlin-recap.html</id>
   <content type="html">&lt;p&gt;On January 25-27th 2013 we ran &lt;a href=&quot;http://conf.couchdb.org&quot;&gt;CouchDB Conf Berlin&lt;/a&gt;. A one-day conference and two-day CouchHack event dedicated to the Apache CouchDB community and technology.&lt;/p&gt;

&lt;h2 id=&quot;why&quot;&gt;Why&lt;/h2&gt;

&lt;p&gt;CouchDB Conf was born out of the desire to run an &lt;a href=&quot;http://couchdb.apache.org&quot;&gt;Apache CouchDB&lt;/a&gt; Technology conference. Couchbase’s CouchConf used to be that, but has moved away, while sadly keeping the name.&lt;/p&gt;

&lt;p&gt;The CouchDB community is a busy bunch and any excuse to get together is taken up with enthusiasm. CouchDB Conf was sold out with ~70 participants in a wintery Berlin.&lt;/p&gt;

&lt;p&gt;Conferences in general are great for various reasons:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;the core developers get some face time to have a good time, but also to get neck deep into discussions and hacking that require in-person communication. Lots of future plans can be hashed out quickly as well. We made good use of that.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;the user community gets to hang out with the core developers, learn about how they work and most importantly, get to ask all the fun, hard, silly and important questions they never dared ask before. We also made good use of that.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Everybody gets to show of what they are working on and get everybody else excited about it. We made extensive use of that. Exictement was rampant.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Eventify captured &lt;a href=&quot;http://eventifier.co/event/couchdb13&quot;&gt;a few good impressions&lt;/a&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;talks&quot;&gt;Talks&lt;/h2&gt;

&lt;p&gt;The slides for &lt;a href=&quot;http://conf.couchdb.org#programme&quot;&gt;the talks are all linked up on the conference site&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;One common thread through all presentations that CouchDB’s replication feature is most the popular thing CouchDB has to offer. HTTP and JSON are nice and simple, but replication is the one thing all would go out of their way to point out that it is the thing that makes CouchDB most attractive.&lt;/p&gt;

&lt;p&gt;CouchDB’s vision early on was to be able to run on small clients, big servers, with lots of data and very little data, mobile phones and really any device that one can carry around, and crazily enough also in the browser. For the longest time though this was a bit of a pipe dream, as the Erlang CouchDB implementation wasn’t really suited to run on low-power devices and definitely not in a browser.&lt;/p&gt;

&lt;p&gt;This now changed. &lt;a href=&quot;http://bigcouch.cloudant.com&quot;&gt;BigCouch&lt;/a&gt; makes the start, as it handles CouchDB’s BigData and clustering aspirations. It has been around for a while, but is now finally being integrated into Apache CouchDB proper.&lt;/p&gt;

&lt;p&gt;Hot on the heels is &lt;a href=&quot;https://github.com/couchbaselabs/TouchDB-iOS&quot;&gt;TouchDB&lt;/a&gt;, which comes in two flavours: iOS and &lt;a href=&quot;https://github.com/couchbaselabs/TouchDB-Android&quot;&gt;Android&lt;/a&gt;, or Objective-C and Java respectively. Both are native reimplementations of CouchDB for mobile devices. TouchDB-iOS is production ready (a few apps are already live), the Android version is a little behind and both are open for contributions.&lt;/p&gt;

&lt;p&gt;The newest player on the scene is &lt;a href=&quot;http://pouchdb.com&quot;&gt;PouchDB&lt;/a&gt;, a pure JavaScript implementation of CouchDB targeted at modern desktop and mobile browsers. Albeit being the newest member of the CouchDB family, it has the highest activity and was recently selected to act as a sample project in the Stanford Computer Science course. It is on the verge of being production ready.&lt;/p&gt;

&lt;p&gt;All of this finally brings CouchDB’s vision together. Lots of data can live on BigCouch clusters, regular data can live on regular servers, user-data can live on mobile handsets, tablets and even in the browser and data can float freely between all of them. Application developers no longer have to worry about how to get a user’s data in front of them, handle concurrent updates, sync with offline devices and online servers. Even peer-to-peer sync is possible.&lt;/p&gt;

&lt;p&gt;Towards the end of the day, when the whole vision inadvertently came together, the energy levels were &lt;em&gt;very&lt;/em&gt; high. And nothing fuels developers better than seeing users getting excited.&lt;/p&gt;

&lt;p&gt;Shit is getting real, as the kids say.&lt;/p&gt;

&lt;h2 id=&quot;couchhack&quot;&gt;CouchHack&lt;/h2&gt;

&lt;p&gt;The following weekend was dedicated to hands on hacking, some more cool show &amp;amp; tell type talks and a Skype-powered video talk from Bangkok.&lt;/p&gt;

&lt;p&gt;Among the highlights are:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;CouchDB/rcouch running on the RaspberryPi with Zeroconf auto-networking and everything.&lt;/li&gt;
  &lt;li&gt;A preliminary port to BlackBerry 10.&lt;/li&gt;
  &lt;li&gt;Wallaby, a native QT-based app framework that uses CouchDB for data storage &amp;amp; sync.&lt;/li&gt;
  &lt;li&gt;Hoodie, a pet project of ours.&lt;/li&gt;
  &lt;li&gt;CouchDB Operations.&lt;/li&gt;
  &lt;li&gt;Hands on hacking with PouchDB.&lt;/li&gt;
  &lt;li&gt;Hands on hacking with TouchDB.&lt;/li&gt;
  &lt;li&gt;Hands on hacking with PouchDB &lt;em&gt;and&lt;/em&gt; TouchDB.&lt;/li&gt;
  &lt;li&gt;Clearing out 30+ issues in preparation for the 1.3.0 release.&lt;/li&gt;
  &lt;li&gt;Adding GeoCouch functionality to PouchDB.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use the Time Slider feature to &lt;a href=&quot;http://titanpad.com/LH0HSTxNp4&quot;&gt;see the topics for all days&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;thanks&quot;&gt;Thanks&lt;/h2&gt;

&lt;p&gt;As the organiser, I couldn’t be more happy about how CouchDB Conf has turned out. Of course, I couldn’t have it all done by myself, so I’d like to thank the following people and companies:&lt;/p&gt;

&lt;h3 id=&quot;the-speakers&quot;&gt;The Speakers&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://twitter.com/kaalita&quot;&gt;Katrin Apel&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/daleharvey&quot;&gt;Dale Harvey&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/dzuelke&quot;&gt;David Zuelke&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/blueonyx&quot;&gt;Martin Hilbig&lt;/a&gt;, &lt;a href=&quot;dscape&quot;&gt;Nuno Job&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/vmx&quot;&gt;Volker Mische&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/okurow&quot;&gt;Oliver Kurowski&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/_jhs&quot;&gt;Jason Smith&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/rnewson&quot;&gt;Robert Newson&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/wohali&quot;&gt;Joan Touzet&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/SMS_01&quot;&gt;Stephan Strohmeier&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/klimpong&quot;&gt;Till Klampaeckel&lt;/a&gt; and &lt;a href=&quot;https://twitter.com/tilgovi&quot;&gt;Randall Leeds&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;the-helpers&quot;&gt;The Helpers&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://twitter.com/gr2m&quot;&gt;Gregor Martynus&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/dch__&quot;&gt;Dave Cottlehuber&lt;/a&gt; and &lt;a href=&quot;https://twitter.com/JFriedensreich&quot;&gt;Jan Friedensreich&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;the-companies&quot;&gt;The Companies&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://twitter.com/co_up&quot;&gt;Co.Up&lt;/a&gt; for hosting us, &lt;a href=&quot;http://tito.io&quot;&gt;Tito.io&lt;/a&gt; for the flawless ticketing, &lt;a href=&quot;http://github.com&quot;&gt;GitHub&lt;/a&gt; &amp;amp; &lt;a href=&quot;http://cloudant.com&quot;&gt;Cloudant&lt;/a&gt; for the drinks, &lt;a href=&quot;http://nodejitsu.com&quot;&gt;Nodejitsu&lt;/a&gt;, &lt;a href=&quot;http://www.freshx.de&quot;&gt;FreshX&lt;/a&gt;, &lt;a href=&quot;http://www.mozilla.com&quot;&gt;Mozilla&lt;/a&gt;, &lt;a href=&quot;http://easybib.com&quot;&gt;EasyBib&lt;/a&gt; and &lt;a href=&quot;http://iriscouch.com&quot;&gt;IrisCouch&lt;/a&gt; for sending people or donating company time.&lt;/p&gt;

&lt;h2 id=&quot;next&quot;&gt;Next&lt;/h2&gt;

&lt;p&gt;There are preliminary plans to set up a CouchDB Conf in Seattle later this year. We’ll keep you posted.&lt;/p&gt;

&lt;p&gt;Members of the CouchDB Community will be attending the following conferences:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://fosdem.org&quot;&gt;FOSDEM&lt;/a&gt; in Brussels, February 2 &amp;amp; 3.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.apachecon.com&quot;&gt;ApacheCon North America&lt;/a&gt;, Portland Oregon, February 24th–March 2nd.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.erlang-factory.com&quot;&gt;Erlang Factory&lt;/a&gt;, San Francisco, March 18th–20th&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You are welcome to join us and nerd out about CouchDB :)&lt;/p&gt;

&lt;p&gt;Thanks!&lt;br /&gt;
Jan&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Changes and New Beginnings</title>
   <updated>2013-02-01T00:00:00+01:00</updated>
   <id>http://writing.jan.io/2013/02/01/changes-and-new-beginnings.html</id>
   <content type="html">&lt;p&gt;About two weeks ago I parted ways with Couchbase’s day to day business. Not that I was involved much in the end, but it was time to move on. I remain a co-founder and shareholder, but my regular involvement is over.&lt;/p&gt;

&lt;p&gt;This wasn’t an easy decision, and as those go, it took me a good while to make it.&lt;/p&gt;

&lt;p&gt;About a year ago I started noticing a change. Things I’ve always cared about intensified manyfold and my work situation didn’t leave me with much time and energy to pursue them.&lt;/p&gt;

&lt;p&gt;Couchbase made every attempt to accommodate me, let me work on Apache CouchDB for most of the past year, and help with an arrangement where I could spend some of my time at my discretion (with no pay, but enough work to keep me afloat) and I am very grateful for that opportunity.&lt;/p&gt;

&lt;p&gt;I spare you the details (ask me over a drink), but in the end I had to answer the question of whether I am a &lt;a href=&quot;http://couchdb.apache.org&quot;&gt;CouchDB&lt;/a&gt; person or a Couchbase person. I had to answer that for my working relationship with Couchbase and ultimately I had to answer that for myself.&lt;/p&gt;

&lt;p&gt;My heart knew, of course, but leaving a company that you helped founding isn’t the easiest of things to consider. I carried that conflict through most of 2012 and I tried to make things work in a compromise, but ultimately failed, realising that I am, at heart, a CouchDB person.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;2012 &lt;a href=&quot;http://writing.jan.io/2013/02/01/the-state-of-couchdb.html&quot;&gt;wasn’t the best of years for CouchDB&lt;/a&gt;. That helped me realise how much I believe in the idea and the community behind it.&lt;/p&gt;

&lt;p&gt;I learned a lot about myself, turned 30 in December. Around that time, the introspective period of the year turned into action. I was done contemplating what to do with newfound revelations and had a vague plan of the direction things should go towards.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;There are a number of distinct moments that helped me figure out what is important to me.&lt;/p&gt;

&lt;h3 id=&quot;rails-girls&quot;&gt;Rails Girls&lt;/h3&gt;

&lt;p&gt;The &lt;a href=&quot;http://railsgirls.com&quot;&gt;Rails Girls&lt;/a&gt; movement teaches non-programmers web programming for free. Volunteers from the Rails community would spend their weekends teaching, regular week-nights coaching development groups. All stuff I thought was honourable, but I didn’t see how I could fit that into my schedule, along my regular work &lt;em&gt;and&lt;/em&gt; have enough energy to do it all. Yet I saw &lt;a href=&quot;https://twitter.com/langalex&quot;&gt;others&lt;/a&gt; &lt;a href=&quot;https://twitter.com/svenfuchs&quot;&gt;doing&lt;/a&gt; &lt;a href=&quot;https://twitter.com/konstantinhaase&quot;&gt;just&lt;/a&gt; that. This created an urgency for changes, so I could, while not teaching Rails Girls, do things I deem important. More on that later.&lt;/p&gt;

&lt;p&gt;In the spirit of Rails Girls we started a JavaScript workshop &lt;a href=&quot;http://writing.jan.io/2012/07/22/jsfab.html&quot;&gt;JSFAB&lt;/a&gt; (JavaScript for Absolute Beginners) which, along with other similar initiatives eventually culminated in &lt;a href=&quot;http://www.opentechschool.org&quot;&gt;OpenTechSchool&lt;/a&gt;, a roof organisation for volunteer learning and teaching. The idea spreads like fire, still, into other tech communities, and other cities and countries. This is truly a tech education innovation. I am very proud to be a part of this.&lt;/p&gt;

&lt;h3 id=&quot;gleicherlohnde&quot;&gt;&lt;a href=&quot;http://gleicherlohn.de&quot;&gt;Gleicherlohn.de&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;Around the US Equal Pay Day &lt;a href=&quot;https://twitter.com/ginatrapani&quot;&gt;Gina Trapani&lt;/a&gt; put up &lt;a href=&quot;http://narrowthegapp.com&quot;&gt;Narrow the Gapp&lt;/a&gt;. &lt;a href=&quot;https://twitter.com/marthadear&quot;&gt;Anne&lt;/a&gt; suggested there should be something like that for Germany, so I spent a total of four or so hours &lt;a href=&quot;https://github.com/janl/narrow&quot;&gt;to rip off the project’s UI&lt;/a&gt; (&lt;a href=&quot;http://github.com/ginatrapani/narrowthegapp&quot;&gt;open source&lt;/a&gt;) and made it so Anne could put in the hard data into a JSON file on GitHub.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://gleicherlohn.de&quot;&gt;Gleicherlohn.de&lt;/a&gt; was a mini project with a large effect. The lesson for me though was that web technology, while incredibly accessible already, is still not easy enough to handle for regular people, even technically inclined non-programmers struggle. Why, I thought, would Anne not be able to put this up all by herself.&lt;/p&gt;

&lt;p&gt;Then I realised what my original motivation for working on CouchDB and eventually founding Couch.io was: empowering people to use technology to their advantage. I wanted to get back to that.&lt;/p&gt;

&lt;h3 id=&quot;giving-back&quot;&gt;Giving Back&lt;/h3&gt;

&lt;p&gt;While talking to friends last winter I made the realisation that we technology people are a rather privileged bunch. Not that there is anything wrong with that, but for me that means finding ways to give back to the communities that enable me to live such a privileged life. Teaching and making technology more accessible fit right in there, so it wasn’t hard to figure out what to do. Instead of working five or seven days a week, I tried to find a way to work as much as I need to live comfortably, while having enough time and energy to pursue pro-bono work. Again, Couchbase was very accommodating here.&lt;/p&gt;

&lt;h3 id=&quot;diversity&quot;&gt;Diversity&lt;/h3&gt;

&lt;p&gt;One last topic that found its way to me is diversity in tech communities. The numbers don’t look particularly good, so I tried to find ways to get this improved. This lead to helping Tiffany to get &lt;a href=&quot;http://weareallaweso.me&quot;&gt;We Are All Awesome&lt;/a&gt; set up, start &lt;a href=&quot;http://2012.jsconf.eu/2012/06/19/call-for-presentations.html&quot;&gt;our diversity-friendly Call for Papers&lt;/a&gt; for JSConf EU and the result that &lt;a href=&quot;http://2012.jsconf.eu/2012/09/17/beating-the-odds-how-we-got-25-percent-women-speakers.html&quot;&gt;we were able to organically get 25% women speakers&lt;/a&gt;, an absolute novelty for hardcore tech conferences.&lt;/p&gt;

&lt;p&gt;More importantly though is that we inspired many more events to follow in our footsteps, improve on what we did and share the results. I lost count of how many conferences took after us, but is easily 20+. The resulting cultural change is immense. I couldn’t be more proud of that.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;I want to make sure I can continue to do this work and I hope I can inspire more people to do the same in the way that works best for them. In terms of work, I want to be able to work on things that matter and get paid fairly, but also not over-do it. Leave enough time to work outside of work.&lt;/p&gt;

&lt;p&gt;To that end, I am doing three things:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;I am getting involved with &lt;a href=&quot;http://thenodefirm.com&quot;&gt;The Node Firm&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Found &lt;a href=&quot;http://thecouchfirm.com&quot;&gt;The Couch Firm&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Launch Hoodie.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Node Firm is a complementary company to the Node.js open source project. A collaboration of professionals to support the open source projects in areas it can’t provide itself.&lt;/p&gt;

&lt;p&gt;The Couch Firm is exactly that, but for CouchDB. It is early days, I’ll keep you posted.&lt;/p&gt;

&lt;p&gt;Hoodie is a thing to be revealed at a later time, but it is not exactly a secret, if you know where to look.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;2013 looks mighty exciting from where I am sitting.&lt;/p&gt;

&lt;p&gt;I can’t wait to get started!&lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>The Wartime CEO</title>
   <updated>2013-01-20T00:00:00+01:00</updated>
   <id>http://writing.jan.io/2013/01/20/the-wartime-ceo.html</id>
   <content type="html">&lt;p&gt;&lt;em&gt;With apologies to Mario Puzo.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Steve Jobs rarely made future looking statements. &lt;em&gt;“These are the products we have today, we think customers will like them”&lt;/em&gt;, is as far as he usually got.&lt;/p&gt;

&lt;p&gt;Tim Cook, even when under Steve, is known to boast how the current state of Apple, or future products, are going to play out well in the future. Not that Steve didn’t believe that, but he rarely made a point about it publicly.&lt;/p&gt;

&lt;p&gt;Steve kept the world in the dark about Apple’s capabilities. He made us think Apple were still the underdog — the odd-job that focussed on design, when nobody else did, the one with the non-standard retail strategy, really, the one going against most conventional business wisdom — when they clearly and obviously were not an underdog anymore.&lt;/p&gt;

&lt;p&gt;As obviously as Steve and Tim knew that to be a strategic advantage, as obvious it is that, if they are correct that Apple &lt;em&gt;is&lt;/em&gt; in fact the greatest company of the world, these days are going to be over eventually.&lt;/p&gt;

&lt;p&gt;Tim is leading an Apple that everybody knows to be the elephant in the room.&lt;/p&gt;

&lt;p&gt;Steve Jobs was a peacetime CEO.&lt;/p&gt;

&lt;p&gt;Tim Cook is a wartime CEO.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>My Quantified Ass</title>
   <updated>2012-12-16T00:00:00+01:00</updated>
   <id>http://writing.jan.io/2012/12/16/my-quantified-ass.html</id>
   <content type="html">&lt;p&gt;Haruki Murakami in his debut book “Hear the Wind Sing”, chapter 23:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The third girl I slept with used to call my penis my raison d’être.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;*&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;I once tried to write a novella on people’s raisons d’être. It never got off the ground, but for a while there I kept thinking about people’s reasons for doing anything at all, which put me in a strange frame of mind. I was habitually reducing everything to numbers. For eight months, I was a driven man. I’d board a train and first thing count the passengers in the car. I’d add up all the steps in in staircases. If I had a spare second, I’d take my pulse. According to my records at the time, between August 15, 1969, and April 3 of the following year, I attended three hundred fifty-eight classes, had sex fifty-four times, smoked six thousand, nine hundred and twenty-one cigarettes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;All the time, it seems I seriously believed that putting a numerical value on everything would enable me to transmit something to others. And as long as I had something to transmit, my existence would be assured. But, of course, no one showed the slightest interest in the number of cigarettes I smoked or the number of steps I climbed, or the size of my penis. Hence I lost sight of my own raison d’être, leaving me the odd man out.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>In Defence of Taking Photos with iPad</title>
   <updated>2012-09-10T00:00:00+02:00</updated>
   <id>http://writing.jan.io/2012/09/10/in-defence-of-taking-photos-with-iPad.html</id>
   <content type="html">&lt;p&gt;A phone or a camera will show you a minified version of your motive before you can take a picture. An iPad shows your motive on a much larger display, in a larger size.&lt;/p&gt;

&lt;p&gt;It is a digital window into reality. A window that you can ask to capture whatever you see through it at any given time.&lt;/p&gt;

&lt;p&gt;But it is not a minified version of reality, not a preview. The power lies in showing the real thing. An iPad allows you to cut out a piece of reality.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Dear Merlin</title>
   <updated>2012-08-20T00:00:00+02:00</updated>
   <id>http://writing.jan.io/2012/08/20/dear-merlin.html</id>
   <content type="html">&lt;p&gt;I’m a huge fan (you faved a tweet of mine once, it made my week). I have listened to all of Back to Work and it made a difference in my life (yes, I’ve bought the shirt). And YLNT.&lt;/p&gt;

&lt;p&gt;Thank you, honest and heartfelt.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/merlin.jpg&quot; title=&quot;A blurry Merlin Mann at Macworld 2010&quot; id=&quot;merlin&quot; /&gt;&lt;/p&gt;

&lt;p&gt;You &lt;a href=&quot;http://www.kungfugrippe.com/post/29789236931/self-defense&quot;&gt;made public&lt;/a&gt; that you opted out of a popular topic last night. Big whoop, somebody said a stupid thing, a politician no less.&lt;/p&gt;

&lt;p&gt;You get to decide what shows up in your timeline, what gets to consume your attention and what gets to make you angry. Everybody does. You also get to pick what you publish.&lt;/p&gt;

&lt;p&gt;With that pre-amble, I think I am asking you to reconsider publicly stating your opt-out of a discussion that affects half the population, that must affect your wife and before long will affect your daughter. (For the record, I do enjoy the parenting sidebars).&lt;/p&gt;

&lt;p&gt;I’m not asking you to fight a fight you don’t want to fight, I’m just asking not to make it harder for the ones who do. And I apologise for getting so personal.&lt;/p&gt;

&lt;p&gt;I might be missing the subtle joke, I often do, but that post of yours just doesn’t sit right with me and I can’t help myself and write these lines. I don’t assume malice, and I am certain you are aware of the bigger picture, so I won’t bore you with repeats. I’ll just ask:&lt;/p&gt;

&lt;p&gt;Please unpublish, or amend.&lt;/p&gt;

&lt;p&gt;The damage may be done, the frog boiled and the joke killed, yet, I need to ask you to take action. What you do, again, is entirely up to you. I just can’t help but ask.&lt;/p&gt;

&lt;p&gt;Thank you for your attention and keep up the good work.&lt;/p&gt;

&lt;p&gt;Love,&lt;br /&gt;
— Jan&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Brave</title>
   <updated>2012-08-20T00:00:00+02:00</updated>
   <id>http://writing.jan.io/2012/08/20/brave.html</id>
   <content type="html">&lt;blockquote&gt;
  &lt;p&gt;Hi Jan ;) what do you think of &lt;a href=&quot;https://twitter.com/brenda_chapman&quot;&gt;@brenda_chapman&lt;/a&gt; being removed of #Brave ? Is #Pixar sexist? http://t.co/JkNOoSQe&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;— &lt;a href=&quot;https://twitter.com/RicardaSaleh/statuses/237510014070312960&quot;&gt;@RicardaSaleh&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;the-movie&quot;&gt;The Movie&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/img/brave-merrida.jpg&quot; title=&quot;Merrida&quot; class=&quot;right&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I love the movie. The story is great, relatable, emotional and amazingly progressive for a Disney production. This film should be required watching for all school children.&lt;/p&gt;

&lt;p&gt;The artwork, I have so far only seen the movie in 2D, is amazing. The hair, oh my god, the hair. So good.&lt;/p&gt;

&lt;p&gt;It is so good I can’t find proper words for it, just go and watch it.&lt;/p&gt;

&lt;h2 id=&quot;the-directress&quot;&gt;The Directress&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/img/brave-brenda-chapman.jpg&quot; title=&quot;Brenda Chapman&quot; class=&quot;right&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I would have loved if Brenda Chapman’s relationship with Pixar were a posterchild of a woman high up in the hierarchy. But it is not. The article linked in the tweet cites the official “creative differences”, and how it affected her (I do feel sorry) and I am happy she sees her vision brought to the screen after all.&lt;/p&gt;

&lt;p&gt;Neither party discusses the details of the break up, so I can only speculate. But I won’t.&lt;/p&gt;

&lt;h2 id=&quot;is-pixar-sexist&quot;&gt;Is Pixar Sexist?&lt;/h2&gt;

&lt;p&gt;Brenda is quoted:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;‘Sometimes women express an idea and are shot down, only to have a man express essentially the same idea and have it broadly embraced,’ &lt;em&gt;she writes.&lt;/em&gt; ‘Until there is a sufficient number of women executives in high places, this will continue to happen.’&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It’s a fact, I’ve seen it in action. If that’s how she characterises Pixar’s side of the story, that is not shining a good light on them. I do hope that Pixar will have a chance in the future to make up for this.&lt;/p&gt;

&lt;p&gt;More importantly, I do hope Brenda Chapman and many women like her will get the chance to tell their stories, make their movies and get them released on the major labels.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Freifunk Statt Angst</title>
   <updated>2012-07-26T00:00:00+02:00</updated>
   <id>http://writing.jan.io/2012/07/26/freifunk-statt-angst.html</id>
   <content type="html">&lt;p&gt;This story begins in 2007. I had to get a temp flat, for a week or two until the one I wanted to move into proper was available and I got the first thing I could. Sadly, no Wifi.&lt;/p&gt;

&lt;p&gt;I tried to see what the neighbours were up to, but none were willing to share, so I looked around the ether for options. I found a &lt;a href=&quot;http://start.freifunk.net&quot;&gt;Freifunk&lt;/a&gt; node. No password, free internet, at last. Just very slow.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/fsa.jpg&quot; title=&quot;Freifunk statt Angst&quot; class=&quot;noborder&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The reason I couldn’t find a free wifi is simple: German law makes the owner of an access point liable for any legal fuss that’s caused over that connection. Allowing strangers to borrow your internet can turn into nasty legal shenanigans. Most Germans, myself included, secure their wifi with a password. Even cafés often limit access to paying guests.&lt;/p&gt;

&lt;p&gt;I read up on Freifunk and thought I should give back to the community. I signed up to the mailing list and tried to figure things out. I couldn’t, people, technology, all hard to get into along with all the life-changes going on, so I shelved it. But I never forgot that I wanted to give back at some point.&lt;/p&gt;

&lt;p&gt;The democratisation of networks is a rant I save for a later day, but I like the idea of people-owned networks, shared with everybody, no central authorities to fuck things up. Yay.&lt;/p&gt;

&lt;p&gt;Now &lt;a href=&quot;http://freifunkstattangst.de&quot;&gt;Freifunk statt Angst&lt;/a&gt; (a play on &lt;a href=&quot;https://en.wikipedia.org/wiki/Freiheit_statt_Angst&quot;&gt;“Freiheit statt Angst”&lt;/a&gt;, a campaign against evaporation of citizen’s privacy) against the “Störerhaftung” (literally: “disturber liability”) law that makes most wifis in Germany password secured.&lt;/p&gt;

&lt;p&gt;I simplify, the whole situation is more subtle, but suffice to say I think the law is stupid and many people agree. “Freifunk statt Angst”, run by the &lt;a href=&quot;http://berlin.freifunk.net&quot;&gt;Freifunk community in Berlin&lt;/a&gt;, came up with a nice hack (I’m a sucker for nice hacks, if you don’t already know).&lt;/p&gt;

&lt;h2 id=&quot;a-nice-hack&quot;&gt;A Nice Hack&lt;/h2&gt;

&lt;p&gt;Through a random donation, the Berlin Freifunk community got a couple of hundred access points, for free, with the condition to hack the hell out of them. And they did, new firmware, sensible defaults to make the setup a matter of connecting power and an DHCP enabled Ethernet cable (things most everybody has at home, basically).&lt;/p&gt;

&lt;p&gt;The kicker now is that a Swedish internet provider provides access to 100 anonymised VPN endpoints.&lt;/p&gt;

&lt;p&gt;Everything put together is called a “Freifunk Freedom Fighter Box” and it looks like this:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/fffb.jpg&quot; alt=&quot;Freifunk Freedom Fighter Box&quot; /&gt;&lt;/p&gt;

&lt;p&gt;If you have an existing router at home, the setup takes a full 30 seconds and can be done by anyone.&lt;/p&gt;

&lt;h2 id=&quot;free-freifunk-freedom-fighter-box&quot;&gt;Free Freifunk Freedom Fighter Box&lt;/h2&gt;

&lt;p&gt;Best of all, “Freifunk statt Angst” is &lt;a href=&quot;http://freifunkstattangst.de/2012/06/14/aktion-gegen-storerhaftung-anonym-im-wlan-an-offentlichen-platzen-mit-freifunk/&quot;&gt;giving away 100 of these boxes&lt;/a&gt; for free.&lt;/p&gt;

&lt;p&gt;I picked mine up today after emailing with “Jürgen” after &lt;a href=&quot;http://twitter.com/freaklikeme&quot;&gt;Thilo&lt;/a&gt; told me how easy it would be.&lt;/p&gt;

&lt;p&gt;The setup was indeed a breeze and within a few minutes I had random people’s iPhones connecting. Yay!&lt;/p&gt;

&lt;h2 id=&quot;next&quot;&gt;Next&lt;/h2&gt;

&lt;p&gt;I went out to see how far the wifi would reach and it isn’t bad but it could be better. Luckily modding the box with an external antenna is easy and I hope I can get this set up next week.&lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>JavaScript for Absolute Beginners</title>
   <updated>2012-07-22T00:00:00+02:00</updated>
   <id>http://writing.jan.io/2012/07/22/jsfab.html</id>
   <content type="html">&lt;p&gt;We are just wrapping up our first &lt;a href=&quot;http://js.opentechschool.org&quot;&gt;JavaScript for Absolute Beginners&lt;/a&gt; (JSFAB) workshop.&lt;/p&gt;

&lt;p&gt;It was a notable event for a bunch of reasons:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;It was the first JS-related coaching event in the spirit of &lt;a href=&quot;http://railsgirlsberlin.tumblr.com&quot;&gt;RailsGirls Berlin&lt;/a&gt; since their inaugural meetup in in April.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;JSFAB is organised by the &lt;a href=&quot;http://www.opentechschool.org&quot;&gt;OpenTechSchool&lt;/a&gt; movement that founded itself after the success of RailsGirls. They help making many more events a success.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The whole workshop is pulled together and carried out by a number of great volunteers. They plan the whole thing, they write all the training materials and they spend their weekend coaching students. For free.&lt;br /&gt;
&lt;em&gt;You are all awesome!&lt;/em&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;We used &lt;a href=&quot;https://github.com/OpenTechSchool/javascript&quot;&gt;GitHub to collaborate&lt;/a&gt; on the materials and it is no surprise that the GitHub model works really well for this kind of work. Pull Requests help getting the material and translations together and issues track things that come up during the coaching that can be imporved later on.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;All materials are open source and we would like to encourage you to setup a JSFAB event in your city or join us in Berlin. Feel free to clone, fork, remix and reuse any of our materials or websites. The &lt;a href=&quot;https://github.com/OpenTechSchool&quot;&gt;OpenTechSchool GitHub Organisation&lt;/a&gt; is all yours!&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A special shout out to &lt;a href=&quot;https://twitter.com/theophani&quot;&gt;Tiffany Conroy&lt;/a&gt; and &lt;a href=&quot;https://twitter.com/marijnjh&quot;&gt;Marjin Haverbeke&lt;/a&gt; for writing the bulk of the training materials. Check out Marijn’s book &lt;a href=&quot;http://eloquentjavascript.net&quot;&gt;Eloquent JavaScript&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;JSFAB 01 was a huge success and I am extremely proud we could pull this off. We taught somwhere between 35 and 45 students over the course of two days and the feedback is great.&lt;/p&gt;

&lt;p&gt;With the materials and expertise of this first round in place, I hope we can turn this into a regular event.&lt;/p&gt;

&lt;p&gt;Thanks everybody for helping out!&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Apple &amp;amp; Standards</title>
   <updated>2012-07-09T00:00:00+02:00</updated>
   <id>http://writing.jan.io/2012/07/09/apple-and-standards.html</id>
   <content type="html">&lt;p&gt;Guy English &lt;a href=&quot;http://kickingbear.com/blog/archives/323&quot;&gt;is asking for commentary on&lt;/a&gt; Apple removing all their products from the &lt;a href=&quot;http://www.epeat.net/2012/06/news/apple-leaves-epeat/&quot;&gt;EPEAT registry&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I have no special insight into the matter. I just observe Apple and notice patterns. How Apple deals with standards bodies is a well established pattern.&lt;/p&gt;

&lt;h2 id=&quot;precedents&quot;&gt;Precedents&lt;/h2&gt;

&lt;p&gt;Gruber laid it out in one of The Talk Show episodes covering the iBooks Author release. Apple is happy to use, follow and contribute to a standard as long as it aligns with its business interests.&lt;/p&gt;

&lt;p&gt;eBook standards didn’t provide enough features for Apple to ship the iBooks Author product. Apple added proprietary extensions and shipped. They then retroactively help pushing the standard along so they don’t have to fork it forever.&lt;/p&gt;

&lt;p&gt;The key point is: Apple don’t wait for standards.&lt;/p&gt;

&lt;p&gt;Another case: web standards and WebKit-only CSS extensions that then later get amended to the standard. Same story as above, manifold and all publicly documented.&lt;/p&gt;

&lt;h2 id=&quot;recycling&quot;&gt;Recycling&lt;/h2&gt;

&lt;p&gt;I take it as a given that Apple considers eco-friendliness of their products to be a competitive edge. I also take it as a given that they will continue to see it that way.&lt;/p&gt;

&lt;p&gt;Now Apple is moving their products in a direction that isn’t reconcilable with EPEAT standards. I do not know what any of this entails. However, I fully expect that Apple is working on a better-than-the-standard (in their eyes) way to recycle their machines.&lt;/p&gt;

&lt;p&gt;I don’t suggest they have that today (they may or may not know how to get these screens and batteries out of the machines), but I have no doubt that Apple believes they can do it. And that they can use their PR machinery to communicate this as a “fuck the standards, we are better than the standards” message.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;UPDATE, 24.07.2012:&lt;/strong&gt; Apple is back with EPEAT.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>User-centric vs. Enterprise Products or a Small Utopia</title>
   <updated>2012-03-31T00:00:00+02:00</updated>
   <id>http://writing.jan.io/2012/03/31/user-centric-products.html</id>
   <content type="html">&lt;p&gt;This is a re-post from an earlier blog. It was published on October 20th&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;I think it is worth posting it again.&lt;/li&gt;
&lt;/ol&gt;

&lt;hr /&gt;

&lt;p&gt;This post has been sitting nearly as-is in drafts mode since May 2008.
Today is a good day to publish it. It is about how I think software is
changing to the better across the board.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;The other day I got into an argument with Damien about how the perception of products
changes.&lt;/p&gt;

&lt;p&gt;My basic thesis is that with a user-centred product, say, the iPhone, the
Enterprise will eventually have to adapt it, because the people that make up
the Enterprise will all use the product, despite its lack of
enterprise-friendliness (which is no longer as true for the iPhone as it’s
been last year).&lt;/p&gt;

&lt;p&gt;A user-centred product is something that is designed starting from the
user, not the business goals of the company that makes the product or the
underlying database technology.&lt;/p&gt;

&lt;p&gt;The Enterprise in this case is some organisation that creates a framework
for people to work on specific goals. These goals could be very different,
take something like IBM as an example. The corporate frameworks need to be
reasonably flexible to support all sorts of different goals.&lt;/p&gt;

&lt;p&gt;At the same time, the Enterprise tries to maximise cost-effectiveness.
Tying everyone to the same hard- and software, because it is cheaper to buy en
masse, easier to maintain en masse and easier to teach en masse.&lt;/p&gt;

&lt;p&gt;The fundamental problem of the Enterprise is, the users of a specific
product have no, or only very little say in what they are going to be using on
a daily basis. Committees, with no idea about how a certain bad designed
product can affect the individual’s productivity and thus the productivity of
the Enterprise, decide what to buy for everybody. And this decision is based
on entirely incomplete experiences.&lt;/p&gt;

&lt;p&gt;Do you know how to use all the &lt;em&gt;time saving features&lt;/em&gt; of your Cisco
VoIP deskphone?&lt;/p&gt;

&lt;p&gt;Now Damien thinks I am a bit naïve here. The Enterprise will always decide
on factors they can measure such as support and maintenance cost and I am sure
they will try hard to keep it that way, but I strongly believe that this
changes. And it will continue to change to a situation where the deciders
realise they operate on insufficient data and let those who are directly
affected have an opinion and a voice.&lt;/p&gt;

&lt;p&gt;Why do I believe that? Because, only in the recent years, the focus of
product development has changed towards creating stress-free tools,
easy-to-understand machines, electronic gadgets for everyone. People start to
expect things that actually just work and not get in their way. The iPhone is
only one example. The Flip video camera is another. The entire business of
37signals is based on caring for the user and not catering the Enterprise.&lt;/p&gt;

&lt;p&gt;I think that eventually, this kind of thinking arrives at the deciding
committees and they will realise that the Enterprise is best helped with
employees that don’t have to deal with utter crap when they are trying to do
their job.&lt;/p&gt;

&lt;p&gt;I say eventually, it will take some time, maybe decades. And there will
always be the &lt;strike&gt;bad&lt;/strike&gt;big corporations that do not care for the
individual and there will always be bad decisions about what to buy and there
will always be crap that salespeople shovel to enterprise customers.&lt;/p&gt;

&lt;p&gt;But the acceptance for all this will decline and the expectancy for proper,
easy to use products will grow.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Gif me now</title>
   <updated>2012-02-13T00:00:00+01:00</updated>
   <id>http://writing.jan.io/2012/02/13/gif-me-now.html</id>
   <content type="html">&lt;p&gt;Spurred by the meme of looking at an animated gif while playing an unrelated YouTube video in the background, I’ve created &lt;a href=&quot;http://gifmemov.com/&quot; title=&quot;Gif me mov&quot;&gt;Gif me now&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It makes participating and enjoying the meme a matter of pasting two urls. The rest is pure entertainment.&lt;/p&gt;

&lt;p&gt;I enjoyed a small exercise in modern web development. I refrained from using any sort of CSS or JavaScript libraries and I didn’t build any sort of back end to go with the site. It runs on GitHub pages. Lean and mean.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Plan B (Back to the Woods)</title>
   <updated>2012-02-12T00:00:00+01:00</updated>
   <id>http://writing.jan.io/2012/02/12/plan-b-back-to-the-woods.html</id>
   <content type="html">&lt;table&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;a href=&quot;http://twitter.com/marcoarment&quot; title=&quot;Marco Arment on Twitter&quot;&gt;Marco&lt;/a&gt; [recently reiterated](http://5by5.tv/specials/4 “5by5&lt;/td&gt;
      &lt;td&gt;5by5 Specials #4: Kindacritical”) a position that I thought I held for myself, but upon hearing it again, I have to consider.&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;I’m using a Mac and other Apple products because I believe they solve my problems best.&lt;/p&gt;

&lt;p&gt;When I started using Macs for work, Apple was much the underdog and I felt cheeky for having chosen the better tool. But I always knew that  at some point in the future, when Apple would stop making the most useful tools, I’d look for alternatives.&lt;/p&gt;

&lt;p&gt;Aside, Marco and others say they do like to see Android succeed because the competition keeps Apple on their toes. I believe that to be true as well.&lt;/p&gt;

&lt;p&gt;I think I could get by on an Android device and I do think I could do my professional work on a Linux Desktop machine (although, I’d probably look into  FreeBSD again).&lt;/p&gt;

&lt;p&gt;What struck me is that I rarely do anything to support the competing platforms. &lt;em&gt;If I want to make sure I do have a Plan B for my choice of a mobile device and desktop machine, maybe I should start investing now&lt;/em&gt;. Buy an Android device, help write amazing software for Android or Desktop Linux.&lt;/p&gt;

&lt;p&gt;If push came to shove and I’d have to switch away from Apple, I don’t think I’d be happy with the state of things today and as far as we can expect in the near future. So if I truly believe that I should have a way out, I should start improving that way out.&lt;/p&gt;

&lt;p&gt;Now, I just started thinking about this. I don’t see myself dropping Apple any time soon, and I don’t think I’ll get an Android device anytime soon, or start writing software for the Linux Desktop, but I’ll be a bit more diligent about what I can do to make Plan B a viable option.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Trying Duck Duck Go</title>
   <updated>2012-02-11T00:00:00+01:00</updated>
   <id>http://writing.jan.io/2012/02/11/trying-duckduckgo.html</id>
   <content type="html">&lt;p&gt;&lt;a href=&quot;http://duckduckgo.com/&quot; title=&quot;DuckDuckGo&quot;&gt;&lt;img align=&quot;right&quot; src=&quot;/img/duckduckgo-logo.png&quot; alt=&quot;Duck Duck go Logo&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A recent &lt;a href=&quot;http://5by5.tv/talkshow/77&quot; title=&quot;5by5 | The Talk Show #77: Caviar and Champagne&quot;&gt;Talk Show&lt;/a&gt; mentions &lt;a href=&quot;http://duckduckgo.com/&quot; title=&quot;DuckDuckGo&quot;&gt;Duck Duck Go&lt;/a&gt; as a privacy-conscious alternative to Google as a search engine. I thought I’d give it a shot.&lt;/p&gt;

&lt;p&gt;I’m using Safari as my main browser and its list of configurable search engines is hardcoded. I can’t even get to it using some &lt;code&gt;default write&lt;/code&gt; trickery. &lt;a href=&quot;https://twitter.com/gruber&quot;&gt;John Gruber&lt;/a&gt; details a neat hack to get Duck Duck Go as your default serach engine in Safari regardless.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Add the Duck Duck Go IP address &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;46.51.197.88&lt;/code&gt; (or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.89&lt;/code&gt;) to your &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/hosts&lt;/code&gt; file with the hostname &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;search.yahoo.com&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;Change your default engine in Safari to Yahoo.&lt;/li&gt;
  &lt;li&gt;There is no step three.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;so-far&quot;&gt;So far…&lt;/h2&gt;

&lt;p&gt;…the experience is nice. Duck Duck Go is notacibly slower than Google’s serach, but it isn’t bad and the results are good. One neat feature is that if Duck Duck Go detects that it can offer you quick links to, say Wikipedia, those will show up almost instantly and it turns out that is most of what I want.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;UPDATE October 15th, 2012&lt;/strong&gt;: The speed difference has gone down a lot.&lt;/p&gt;

&lt;p&gt;I’m occasionally interested in looking at the image serach results for a web search and with Google that’s just one click away and I do miss that now, but I figure a &lt;code&gt;dotjs&lt;/code&gt; script or Safari extension will get me that feature back quickly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;UPDATE October 15th, 2012&lt;/strong&gt;: There are a number of &lt;a href=&quot;https://duckduckgo.com/bang.html&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;!&lt;/code&gt;-commands&lt;/a&gt; that help here.&lt;/p&gt;

&lt;p&gt;Aside, I’m trying to live with as little as possible customisations, but in recent months, Is tarted adding little tweaks here and there. We’ll see when I go closer to “bare” again.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>The Backpack</title>
   <updated>2011-12-07T00:00:00+01:00</updated>
   <id>http://writing.jan.io/2011/12/07/the-backpack.html</id>
   <content type="html">&lt;p&gt;&lt;a href=&quot;http://www.randsinrepose.com/archives/2011/12/04/a_bag_of_holding.html&quot; title=&quot;Rands In Repose: A Bag of Holding&quot;&gt;Rands wrote about bags&lt;/a&gt;. I’m a bag nerd. Here’s my take.&lt;/p&gt;

&lt;p&gt;I’ve been a bag nerd, in particular a backpack nerd ever since my black Jack Wolfskin Mr. Bike when I was 14. It was one of the best backpacks ever made. Unfortunately, Jack Wolfskin decided it would be a good idea to change it to a more modern layout and style and of course they blew it.&lt;/p&gt;

&lt;p&gt;I’d still use it, if I hadn’t lost mine in the mist of time. I still miss that backpack.&lt;/p&gt;

&lt;p&gt;Luckily, there’s Exped, and in particular the &lt;a href=&quot;http://www.exped.com/exped/web/exped_homepage_int.nsf/0/EAA58DAEC6EC6155C125784800236C47?opendocument&quot; title=&quot;Exped-Mountain Pro 20 - Compact freerider, climber, urban hiker&quot;&gt;Exped Mountain Pro 20&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Imagine Swiss Alpine backpack specialists that have been at it for nearly thirty years, constantly improving their products and craft alike and who have the highest standards for functionality, design, durability and materials. All in one backpack:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.exped.com/exped/web/exped_homepage_int.nsf/0/EAA58DAEC6EC6155C125784800236C47?opendocument&quot; title=&quot;Exped-Mountain Pro 20 - Compact freerider, climber, urban hiker&quot;&gt;&lt;img src=&quot;/img/mp20.jpg&quot; title=&quot;Exped Mountian Pro 20&quot; class=&quot;noborder&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Nerd Factor&lt;/h2&gt;

&lt;p&gt;The prime reason for me to try this one after a string of disappointing affairs with many sub-par backpacks was its looks.&lt;/p&gt;

&lt;p&gt;It does have functional straps covering the front, which I’ll get back to in a bit, but aside from them, the design of the Mountain Pro 20 is minimalist, clear, straight lines and no unnecessary extras. Its form is a nearly exact box shape and avoids the usual pear shape that I don’t like (on backpacks).&lt;/p&gt;

&lt;p&gt;To my eyes, this backpack reads “professional backpack” and I dig that.&lt;/p&gt;

&lt;h2&gt;Scaling&lt;/h2&gt;

&lt;p&gt;The main compartment is a 20 liter rectangular box locked by a two-way rain-proof zipper. The cover lid holds a small zipped pouch that conveniently doubles as a fast-access or a variety collection space that opens flapping to the front. The front has another slide-in pocket that goes all the way down. A velcro cover keeps the front pocket’s contents dry and easy to reach.&lt;/p&gt;

&lt;p&gt;When I bought the Mountain Pro 20, I carried a 13” Mac Book Pro which fits neatly into the slide-in pocket inside the main compartment. The new 11” Air virtually disappears, so does the occasional iPad.&lt;/p&gt;

&lt;p&gt;The bulk of the storage space is good for anything between a go-to-work situation, a camping weekend or a hiking daypack. I once managed to attend 5 days of WWDC in San Francisco on only this backpack as my entire luggage. My US Customs Officer joked it was “not enough” (he also joked “WWDC, what’s that? Some kind of wrestling show?”).&lt;/p&gt;

&lt;p&gt;The fixed front and side straps at first seem to violate Rands’ requirement on no dangling extras. It even comes with a handful removable and adjustable straps to tack all sorts of stuff on the front and below the backpack. Unused, they don’t get in the way, and &lt;em&gt;if &lt;/em&gt; you want to carry something extra (and you will, at some point), you’ll appreciate the setup.&lt;/p&gt;

&lt;p&gt;The back of the Mountain Pro 20 is sturdy, which keeps the whole backpack in form and ripped for better wearing comfort, even when your luggage is rather heavy. If you are going &lt;em&gt;really&lt;/em&gt; heavy, you can slide in a comfortable and nicely adjustable hip belt.&lt;/p&gt;

&lt;p&gt;The outer fabric a special mesh material constructed from what resembles the hexagonal pallets of a beehive. It is very sturdy, poke, rip and waterproof.&lt;/p&gt;

&lt;h2 id=&quot;ninja-moves&quot;&gt;Ninja Moves&lt;/h2&gt;

&lt;p&gt;The Mountain Pro 20 allows me to mimic Rands’ routine at the airport security check. Sliding the backpack over one shoulder, I am one zipper away from the 11” Mac Book Air and optionally iPad. Zip up and I’m through.&lt;/p&gt;

&lt;p&gt;Rain: I carried three passports through monsoony surprise rain in Nanjing, China in the lid pocket without any fear of damage. The zippers and seams are all water tight and glued and covered.&lt;/p&gt;

&lt;p&gt;The compact form factor allows me to store the backpack close to where I am in any situation, even in tight spots on planes, trains or cars.&lt;/p&gt;

&lt;h2 id=&quot;the-extra-smarts&quot;&gt;The Extra Smarts&lt;/h2&gt;

&lt;p&gt;Exped’s craftsperson-like attention to detail shows in a number of ways:&lt;/p&gt;

&lt;p&gt;All zipper handles glow in the dark.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/mp20_roll_up_strap_ends.jpg&quot; title=&quot;Strap End Roll Up&quot; class=&quot;right&quot; /&gt;
All length-adjustable straps have a T-shaped end with velcro opposites on each side. This allows you to adjust the straps and then roll up and fix the rest of the band to avoid any dangling.&lt;/p&gt;

&lt;p&gt;Let’s look at the fixed front and side straps one more time. I also own an &lt;a href=&quot;http://www.exped.com/exped/web/exped_homepage_int.nsf/0/DF92FB15D17BB08DC1257849002DA50C?opendocument&quot; title=&quot;Exped-Backcountry 35 / 45 - Versatile, lightweight and watherproof&quot;&gt;Exped Backcountry 35&lt;/a&gt; for longer trips. It comes with a lot more straps that allow me to hook up the Mountain Pro 20 on the back of the Backcountry 35. I’m not sure this was intended, but it works quite well for situations where your getting through quickly depends on “one personal item only”. I call it the “piggybackpack”.&lt;/p&gt;

&lt;p&gt;This allows me to move through air-travel without having to check-in anything while avoiding wrath of my fellow travelers by carrying enormous carry-on luggage. Mounting and dismounting takes anything between 10 and 30 seconds, depending how tight you set things up.&lt;/p&gt;

&lt;h2 id=&quot;next-revision&quot;&gt;Next Revision&lt;/h2&gt;

&lt;p&gt;The Mountain Pro isn’t perfect, although it comes close. Here’s what would improve my use.&lt;/p&gt;

&lt;p&gt;The biggest gripe is that when I open the top lid pocket as well as the lid itself, it opens to the front turning the lid upside down, causing the contents of its pocket to drip out on occasion. I can avoid this by closing the top zipper first. I don’t know how to solve this nicely.&lt;/p&gt;

&lt;p&gt;The other models of the Mountain Pro as well as the Backcountry models come with a nice extension to all zippers: both sides of the zipper have a small rubber handle attached to them that allow you to pull firmly to straighten the zipper so it can be easily opened and closed when the pockets are packed. The Mountain Pro 20 lacks this and it would be a nice addition.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/bc35_hooks.jpg&quot; title=&quot;Aluminium Hooks&quot; class=&quot;right&quot; /&gt;
Again, on most other models, Exped avoids plastic clips to join two parts of one strap, but they do use them for upper-torso and hip belts. While they are still intact on my models, I know on other backpacks, they are often the first things to break. Knock on wood that these here are better, but in other places Exped uses an aluminium hook and tightly sewed-on straps for this. It looks a lot more durable to me. Again, a feature I’d like to see adopted wholly.&lt;/p&gt;

&lt;p&gt;There are a few extras that are for serious hikers only. A future “City Edition” could remove those for me.&lt;/p&gt;

&lt;h2 id=&quot;unique-snowflake&quot;&gt;Unique Snowflake&lt;/h2&gt;

&lt;p&gt;You will have different requirements, but I recommend going through Exped’s product line and I’m quite certain you’ll find something you like, provided you agree with their visual style.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Elop to English</title>
   <updated>2011-06-16T00:00:00+02:00</updated>
   <id>http://writing.jan.io/2011/06/16/elop-to-english.html</id>
   <content type="html">&lt;blockquote&gt;
  &lt;p&gt;We are very pleased to have Apple join the growing number of Nokia licensees,’ said Stephen Elop, president and chief executive officer of Nokia. This settlement demonstrates Nokia’s industry leading patent portfolio and enables us to focus on further licensing opportunities in the mobile communications market.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We plan to no longer innovate in the industry and degrade to a shameless patent-troll corporation.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Couchbase Open Source Internship Berlin Summer 2011</title>
   <updated>2011-05-09T00:00:00+02:00</updated>
   <id>http://writing.jan.io/2011/05/09/couchbase-open-source-internship-berlin-summer-2011.html</id>
   <content type="html">&lt;p&gt;Couchbase is offering a summer internship in Berlin, Germany.&lt;/p&gt;

&lt;p&gt;We are flexible about timing to make the internship work with your exams and other curricular commitments.&lt;/p&gt;

&lt;p&gt;Work with a distributed team of open source developers on one of the most
exciting database products of today including (but not exclusive to) &lt;a href=&quot;http://couchdb.apache.org/&quot;&gt;Apache CouchDB&lt;/a&gt;, &lt;a href=&quot;http://memcached.org/&quot;&gt;memcached&lt;/a&gt;, &lt;a href=&quot;http://www.membase.org/&quot;&gt;Membase&lt;/a&gt; and &lt;a href=&quot;http://www.couchbase.com/&quot;&gt;Couchbase&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We are looking for students of computer science or related fields who want
to make first hand experiences with the professional and open source
software development world. Interest in dynamic languages is a plus, 
but not required.&lt;/p&gt;

&lt;p&gt;We offer a relaxed work environment, an international team, a workplace in
Berlin, proper compensation, and participation in various Open Source
projects.&lt;/p&gt;

&lt;p&gt;We are committed to diversity and inclusiveness.&lt;/p&gt;

&lt;p&gt;If you are self-driven, a good communicator and not afraid to use English,
please send your letter of application to: &lt;a href=&quot;mailto:&amp;#x6A;&amp;#x61;&amp;#x6E;&amp;#x40;&amp;#x63;&amp;#x6F;&amp;#x75;&amp;#x63;&amp;#x68;&amp;#x62;&amp;#x61;&amp;#x73;&amp;#x65;&amp;#x2E;&amp;#x63;&amp;#x6F;&amp;#x6D;?subject=Internship Application&quot;&gt;jan@couchbase.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Update May 10&lt;sup&gt;th&lt;/sup&gt;:&lt;/em&gt; We are accepting international
applications, but you have to be available for an in-person interview in
Berlin.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Translations of Selected Parts of “The Multiscreen Revolution” to English</title>
   <updated>2011-02-22T00:00:00+01:00</updated>
   <id>http://writing.jan.io/2011/02/22/the-multiscreen-revolution-english-translation.html</id>
   <content type="html">&lt;p&gt;The following is a rough translation of selected parts of Adobe CTO Kevin Lynch’s recent blog post on “&lt;a href=&quot;http://blogs.adobe.com/conversations/2011/02/the-multiscreen-revolution.html&quot;&gt;The Multiscreen Revolution&lt;/a&gt;”.&lt;/p&gt;

&lt;p&gt;Please note that I don’t hold any &lt;strike&gt;substantial&lt;/strike&gt; grudge against Adobe and wish them all the best finding a way to make the web a better place.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;With apologies to &lt;a href=&quot;http://daringfireball.net/&quot;&gt;John Gruber&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;We are in the midst of a revolution across a variety of screens, with new input methods, new formats, and new distribution models. This revolution is being fueled by several fundamental drivers: processing power growth, powerful portable batteries, increasing bandwidth for wireless Internet connectivity, and a wide array of screen sizes and device form factors.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Technology advances.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Average processing power has been on a continuous growth curve for PCs over the past 25 years, with Moore’s Law holding firm as processing doubles every 18 months. This growth is being further accelerated by the adoption of multicore processors.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I remember folklore and don’t shy away from restating the obvious.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;In addition to PCs, we now see an increase in processing power on smartphones, Internet-connected televisions, and tablets. This is driving the mobile computing boom and enabling much richer experiences on these screens, with typical processor speeds over 1GHz. Even so, the processing power across these screens is comparable to what the personal computer experience was about seven years ago. While mobile computing power increases, we will continue to have an ongoing processing power gap between PCs on the one hand, and smartphones, TVs, and tablets on the other.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;TVs have Internet now.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;This creates a challenge for anyone building digital experiences, as they will need to deliver effective experiences across many non-PC devices, not only high performance personal computers.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I’m about to sell you a write-once-run-anywhere solution. But not just yet.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Our approach at Adobe is to take a mobile-first view on the new work that we are doing to design for the more constrained environments, then look to ways to enhance that experience for higher performance environments.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Others are eating our lunch and dinner on mobile. We’ve finally realised this and are running fast to catch up.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Advances in battery technology over the past 10-15 years have enabled the increase in processing power on mobile devices. If we look at this in terms of the amount of energy than can be stored per weight of the battery, the transition from the hefty lead acid batteries in 1945 to lightweight lithium polymer technology today has resulted in dramatic improvement. This is what is enabling us to carry around smartphones or tablets with processing power that delivers such a strong experience today.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I know more folklore, I’m mentioning 1945 so readers think I’m good at being CTO by knowing my history.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;This shift follows the classic “s-curve” of innovation, where a technology slowly improves in the early period of its inception, experiences rapid improvement, and then goes into a mature period of slow to no improvement. We are now in the mature phase of current battery technology. It has basically hit a plateau over the past five years.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;My editor suggested I pep up this post with graphics, thank god I have analysts as friends, they have all sorts of cool things to put in graphs, like s-curves. They are shaped like an “s”, get it?&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;By their &lt;em&gt;very&lt;/em&gt; nature, mobile devices are much more reliant on battery power, and many web experiences are power intensive.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;(Emphasis mine) I watched a Shakespeare play recently.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Since it’s likely that we’re going to be operating with the battery technology that we have right now for at least the next several years, content creators need to consider ways to optimize battery usage.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Technology advances, but not linear. Also, s-curves!&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Since Flash is such an integral part of the web, we at Adobe have focused a lot of our energy on optimizing its mobile performance with battery limitations in mind.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;By integral I mean skip-intros and the few places where open standards are not yet closing the gap.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;In addition to working with our hardware partners to optimize Flash Player for their devices,…&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is not our fault that Flash is so slow on mobile devices!&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;…we’ve also focused on making Flash smarter in how it manages the CPU resources that it uses. For example, Flash will automatically pause the content that is running when the browser is hidden from view or the current browser tab is placed in the background.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;…but we’re willing to look into it on our end, too. Here’s a straw man for our efforts that doesn’t really attack any of the issues that Flash does have on mobile devices.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The display itself is usually the primary power drain on devices, followed by using the radio for communication.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is not our fault that Flash is so battery-draining on mobile devices!&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Some of the simplest things such as turning the brightness down on the screen go a long way toward preserving battery life.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Make sure your tires are properly inflated.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Also, there is a difference in power usage based purely on the number of lit pixels vs black pixels – the more bright pixels on a page, the more power is used.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I don’t know how LED displays work.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Typically, with innovation like advances in battery technology, there will be another s-curve that will slowly ramp up and then give us a major leap ahead of the current state of the art.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;S-curves!&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;There’s a lot of research and investment happening in the realm of battery technology. I expect we will see a major breakthrough over time in this area, which will enable even more radical performance for mobile computing, perhaps even bridging the gap with desktop computing.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We’re going to wait for others to fix any issues that make Flash slow and battery-draining on mobile devices.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The typical connected US household uses either cable or DSL right now, likely running between 10-20 megabits per second. In some countries, of course, it’s faster than this. Wireless data connectivity is starting to increase around the world, and there is a coming breakout where we will see a crossover: wireless bandwidth is going to exceed wireline bandwidth. People actually will have a stronger connection to data on the Internet with a wireless connection, which is being driven by 4G technologies, such as LTE.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I don’t care for anyone in nowheresville.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Wireless operators already are starting to roll this out, starting at speeds of 10-20 Mbps, and the technology has the ability to ramp up to 50-100 Mbps on a per user basis over the next several years. Of course, this speed will vary depending on which type of building the user is in and other factors, but generally we can expect to see wireless bandwidth over time that’s about five times faster than what we’re experiencing today.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I only paid half attention on Computer Networks 101 and didn’t hear the part where it says that &lt;em&gt;latency&lt;/em&gt;, not throughput, is the problem with computer networks. I also don’t know how mobile networks work because I ignore the fact that latency is &lt;em&gt;even more&lt;/em&gt; important there.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Overall it is going to be a plentiful bandwidth environment, and that’s going to be great for anyone building experiences such as streaming HD video, multiuser games, or rich, live collaboration on the web.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We are going to make the web even slower.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;For many years, web designers and application developers looked at the average computer screen size and aimed at that in their work. Over time, this size gradually increased and now we are at a point where this has splintered into many screen sizes. One can no longer design to a single average size.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Remember I was going to sell you a write-once-run-anywhere solution. Get ready for it!&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Some content providers have chosen to tackle this diversity through multiple implementations of their websites. But as more and more form factors are added, this approach becomes impractical. Ideally, to take into account all these screen sizes, content can be created once and made adaptable so that it will adjust to a diversity of screens. One emerging approach that is to use CSS to skin your site across displays. Another is to design multiple presentations of content while reusing common elements such as story flow, images, and video that may be dynamically adapted.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Open web technologies are not up to the task.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;This transformation from desktop to mobile is happening now. Below is a chart from a recent Morgan Stanley report, showing that desktop connections to the Internet are continuing to increase. In the next three or four years mobile computing is going to exceed desktop computing on the Internet.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Mmmmh sweet charts. Pie charts. Mmmmmh pie.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;All of these changes together represent a bigger shift in computing than the personal computer revolution.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I’m thinking CTO-thoughts.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;At Adobe, this is an exciting time of change in how we look at building our tooling, runtimes, and cloud based services to help people best express themselves in the multiscreen world. To learn more about these trends and get some insight into how we see this is transforming web sites, digital publishing, video, enterprise applications, and gaming, you can watch my presentation at Adobe’s annual designer &amp;amp; developer conference, MAX (the keynote begins 15 minutes into the video stream).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Finally, the pitch! — Isn’t it great, the future is all scary, but Adobe’s got your back! Because we have s-curves.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Again, Good Luck!&lt;/p&gt;

</content>
 </entry>
 
</feed>
