[{"data":1,"prerenderedAt":82},["ShallowReactive",2],{"posts:en":3},[4,17,31,40,51,62,70],{"path":5,"title":6,"description":7,"date":8,"image":9,"tags":10,"author":14,"draft":15,"series":16},"\u002Fposts\u002Fcode_n_shit\u002Ffare_enough","I made a taxi meter for my iPhone. For fun.","Fare Enough turns an iPhone into a taxi meter: real city tariffs, a glowing old-school meter when you turn the phone on its side, and receipts that print on a pocket thermal printer. Here is what building it taught me about Skip, background location and Bluetooth printers.","2026-09-25","\u002Fimages\u002Ffare_enough\u002Fcover.jpg",[11,12,13],"code","swift","ios","slnt_opp",false,null,{"path":18,"title":19,"description":20,"date":21,"image":22,"tags":23,"author":14,"draft":15,"series":24,"part":27},"\u002Fposts\u002Fcode_n_shit\u002Fcuando_vector","Fifty-eight megabytes","Eighteen months of drawing our map as pictures, and why Cuando is moving to vector: one 58.67 MB file instead of 15 GB per theme, a Flutter renderer that crashed, and three map engines behind one view in the new apps.","2026-08-15","\u002Fimages\u002Fcuando_vector\u002Fcover.jpg",[11,24,25,26],"cuando","maps","cloudflare",{"slug":24,"title":28,"path":29,"n":30},"Building Cuando","\u002Fseries\u002Fcuando",3,{"path":32,"title":33,"description":34,"date":35,"image":36,"tags":37,"author":14,"draft":15,"series":24,"part":38},"\u002Fposts\u002Fcode_n_shit\u002Fcuando_tiles","Paying per tile","Every map decision in Cuando so far followed from how the map was billed. Six months of Mapbox, one week of vector tiles, a heatmap that decides how far you may zoom in, and, as of this week, a map we draw ourselves.","2025-02-22","\u002Fimages\u002Fcuando_tiles\u002Fcover.jpg",[11,24,25,26],{"slug":24,"title":28,"path":29,"n":39},2,{"path":41,"title":42,"description":43,"date":44,"image":45,"tags":46,"author":14,"draft":15,"series":24,"part":49},"\u002Fposts\u002Fcode_n_shit\u002Fcuando_bus_app","We made a bus app for Torrevieja. It asks one question","Cuando is a bus app for Torrevieja, now on Google Play and the App Store. There was no data to start from, so we drew the network by hand: 163 stops, 16 lines, a stopwatch app and a lot of YAML. Here is how it works, and why a graph database lasted eight weeks.","2025-01-24","\u002Fimages\u002Fcuando_bus_app\u002Fcover.jpg",[11,24,47,48],"flutter","pocketbase",{"slug":24,"title":28,"path":29,"n":50},1,{"path":52,"title":53,"description":54,"date":55,"image":56,"tags":57,"author":14,"draft":15,"series":16},"\u002Fposts\u002Fcode_n_shit\u002Flinguo_firebase","Duolingo-clone within 2 evenings via Firebase","Once upon a time i had an idea: make a database and authentication gateway - service, which would be accessible as API only, to make it possible to create dynamic web-apps without backend. This idea has been bought by Google, not from me ofcourse, cause i haven't done anything :). But let's talk about this another time, today let's try to get little but into Firebase and find out how to use it and should you use it.","2020-09-04","\u002Fimages\u002Fdeutsch_vue_firebase.png",[58,59,60,11,61],"blog","frameworks","services","vue",{"path":63,"title":64,"description":65,"date":66,"image":67,"tags":68,"author":16,"draft":15,"series":16},"\u002Fposts\u002Fblog\u002Fraw_html","HUGO 0.60 Update bug","Just realized that my blog had no raw HTML last month.","2020-01-22","\u002Fimages\u002Frawhtml.png",[58,59,69],"hugo",{"path":71,"title":72,"description":73,"date":74,"image":75,"tags":76,"author":81,"draft":15,"series":16},"\u002Fposts\u002Fuseful\u002Fukmail_n_dhl","UKMail and DHL","Hi Friend, maybe you found this, because fraud took a place and you can not cancel your shipment before it will reach the scammer. Or maybe you just trying to reach a human at UKMail. So, your luck, i've accidentally found a number: ​02477711904","2019-06-28","\u002Fimages\u002Fukmail_n_dhl.jpg",[77,78,79,80],"ukmail","dhl","fraud","contact","idiot",1790723722055]