sesam.hu

Engineering Manager | Trail Runner | Stockholm, Sweden

flightradar

I opted in to provide data to flightradar24 which has several benefits, the best of which is that I get a Business subscription for free. The stuff runs on a software-defined radio receiver connected to a Raspberry Pi.

Unfortunately — unknown to me as to why — the software can become flaky and disconnect without notifying me. So I made it my mission to have some sort of monitoring.

There’s a command — fr24feed-status — that reports on what’s going on. An example output looks like this:

  sesam in 🌐 bringebaer in ~ via 🐍 v3.9.2
  ❯ fr24feed-status
    FR24 Feeder/Decoder Process: running.
    FR24 Stats Timestamp: 2023-01-20 16:30:21.
    FR24 Link: connected [UDP].
    FR24 Radar: T-ESSB413.
    FR24 Tracked AC: 3.
    Receiver: connected (367616 MSGS/0 SYNC).
    FR24 MLAT: ok [UDP].
    FR24 MLAT AC seen: 1.

Whenever any of the responses contains “Failed” something went awry, that’s when I wanted a notification. Problem #1, I don’t speak bash. Enter ChatGPT, and the question: write a bash script that runs fr24feed-status and if the result contains Failed then email X.

It’s actually not that hard, could have learned myself…

  sesam in 🌐 bringebaer in ~ via 🐍 v3.9.2
  ❯ cat fr24feed-alert.sh
    #!/bin/bash

    # Run fr24feed-status and save the output
    status=$(fr24feed-status)

    # Check if the output contains "Failed"
    if [[ $status == *"Failed"* ]]
    then
    # Send an email to petersz@me.com
    echo "$status" | mailx -s "fr24feed Status Failed" petersz@me.com
    fi

The most complex bit was to make sure that the Raspberry can send actual emails. Mailx is your friend. You need an application password and a configuration file to succeed.

So far it’s been stable so needs testing. 😅

TCS Lidingöloppet

Ez a futás egy nagyon érdekes keveréke volt az utcai és a terepversenyeknek. A rendezés, a résztvevők száma, a szakaszos indítás és a frissítés egészen olyan volt, mint egy városi futóversenyen. Pár nagyon rövidke kivételtől eltekintve viszont végig ösvényeken vezetett az út erdőn-mezőn át, és bár nagy mászások nem voltak, a hullámzással némi szintkülönbség is összejött.

Lidingö egyike a Stockholmot alkotó szigeteknek. Amolyan helyi Nagykovácsi, sok az erdős rész, főleg családi házak vannak, és ide költözöl, ha rengeteg pénzed van: azt hiszem, az ABBA tagjainak is itt van házuk. A versenyt a helyi mezei futó valamint sí- és tájékozódási futó klubok rendezik. A tradicionális táv, amin én is indultam 30 kilométeres, bejárja a sziget nagy részét.

útvonal
a 30 kilométeres futás útvonala

Még pénteken eltekertem a rajtszámért, mert beijesztettek, hogy majd rengetegen akarják felvenni aznap. Persze nem lett volna gond, de sebaj, a kerékpáros infrastruktúra elég szuper a városban, ezen az útvonalon is végig jól kiépített és karbantartott bicikliúton lehetett közlekedni. A versenyközpont a helyi sportpálya volt, de mint kiderült a rajt másfél kilométerrel arrébb egy hatalmas mezőről történt.

a rajt
a rajt

Szeptemberben még tartott a korlátozás, hogy csak bizonyos számú fővel lehet kültéri rendezvényt tartani, így nagyon precízen tízperces bontásban lettek rajtcsoportok kijelölve. Utcai versenyekhez hasonlóan zenés bemelegítés után indultunk el a körre. Mivel az útvonal minden évben ugyanaz, és ez amolyan legendás verseny, egész évben kint vannak az állandó kilométerjelző táblák, sőt, minden szakaszról van egy kis leírás is, hogy miért érdekes. Skandináv rendszer szerint nem a megtett, hanem a hátralévő kilométereket tüntetik fel.

Lidingöloppet tábla
Egész évben ki van jelölve az útvonal

A pálya kifejezetten jól futható, kaviccsal felszórt vagy egyáltalán nem technikás erdei ösvény. Kő, gyökér nem nagyon akadályoz, és a szintkülönbség sem számottevő. Általában lazán hullámzik az útvonal, pár méter fel, pár méter le, így gyűjtött össze 446 méter szintemelkedést a végére a Suunto nekem. A legmagasabb pontját is érintettük a szigetnek, ami kemény 48 méterrel van a tengerszint felett. A hosszabb emelkedők alján vagy a tetején a szponzorok települtek ki sátrakkal, és DJ-k szolgáltattak aláfestő zenét, de szerencsére a táv nagy részén az erdő háborítatlan csendje volt inkább a jellemző.

Sok sikert!
Sok sikert!

Összesen hat frissítőpont volt felállítva az útvonalon, szintén klasszikus utcai versenyekhez hasonlóan poharakba töltött vízzel, izóval, később kólával és banánnal. A poharak újrafelhasznált papírból voltak, és kosarakba lehetett dobálni őket használat után. Ezt mindenki nagyon komolyan is vette, nem volt össze-vissza mindenfelé hajigálva a szemét, mindenki szépen a szemeteseket használta. Egyéb hulladékoknak, például gélek tasakjainak, pedig kilométerenként volt kitéve gyűjtő.

Szurkoltak is, például ahol a pálya elhalad a versenyközpont mellett egy öböl partján, de a kedvencem a pár volt, akik kiültek az erdei házuk teraszára egy hangszóróval, és nyomatták a rock’n’rollt. A szikrázó napsütés és 14 fokos meleg nem csak a futóknak kedvezett.

Kyrkviken
Kyrkviken, az öböl a versenyközpont mellett, itt jöttek szembe a futók, miközben mentem a rajthoz

Az elején mindent megfutottam, de a verseny második felére eléggé elfáradva belesétáltam az emelkedőkbe. Ennek ellenére is 3:12’31” lett az időm, amivel mérsékelten elégedett vagyok; azért jóval gyorsabban is végig lehet ezen a pályán menni. De ez egy csodálatos verseny, kiváló szervezéssel és nagyon kellemes útvonallal, úgyhogy biztosan megyek még javítani.

mászás
mászás

Csak saját képeim vannak, mert bár voltak hivatalos fotósok, és számítottam is rá, hogy fizetősek lesznek a képek, azt nem láttam jönni, hogy látatlanban kell megvenni őket: az email egyből egy paywallra visz, nincsenek vízjeles vagy kis méretű betekintő képek sem, ami alapján el lehetne dönteni, hogy akarom-e én ezt…

érem
Az éremre idén egy fecske került

21Q2-3 futásokban

Persze jól elterveztem, hogy majd negyedévente írok összegzést, és már a második alkalommal sikerült kihagyni. Sőt, nem csak a blogolás, de a futás lendülete is megtört kicsit a nyárral. Szóval ez most egy megkésett Q2, befejezetlen Q3, verseny-, és versenynaptár beszámoló lesz.

Április még az előző negyedévhez hasonlóan jól sikerült, 269 kilométert futottam össze, aminek egy részét Karlstadban tettem meg. A 9°C-os hűvösben összejött egy vállalható 1:45’25” félmaraton is ebben a hónapban. Májusban aztán először (és eddig utoljára) idén meglett az Endurance kihívás 311 kilométerrel. Külön félmaratont nem is kellett futnom, keddenként a hosszú futások során meglett magától. Júniusban kitört a nyár, születésnapra megleptem magam egy gravel biciklivel, és elutaztunk egy mini-nyaralásra megnézni Gotland szigetét. Mindezek együtt azt eredményezték, hogy alig 116 kilométer került a lábamba az utolsó napi félmaratonnal együtt. Mondjuk cserébe tekertem is 108-at, sokat jártunk a Källtorpssjön tóhoz fürdeni meg nézegetni a kacsákat. Összességében a második negyedév 696 futott kilométere elmarad ugyan Q1 712-jétől, de nem sokkal, szóval eddig jó.

Visby, Balti-tenger
Visby, Balti-tenger
kacsák, Hellasgården
kacsák, Hellasgården

Július nem lett valami acélos, mindössze 138km futást és 30km biciklizést könyveltem, és a havi rendszeres félmaraton is elmaradt. Augusztusban viszont közel egy évvel a disszidálás után sikerült végre hazajutni egy látogatásra, ami véletlenül pont egybeesett a Vértes Traillel. A lendület kitartott, csodálatos volt, hogy végre lehetett újra versenyezni, és a 3 óra 15 perces befutóidőmmel is teljesen elégedett vagyok; tíz percet javítottam a 2019-es eredményemen. Utána viszont nagyon sporadikusan jártam futni, éppen csak meglett a havi százas kihívás végül (104km).

Vértes Trail
Vértes Trail

Most szeptemberben eddig 67-en áll az óra, viszont iszonyatosan fel fognak pörögni a dolgok, mert itt is újra elindulhatnak a versenyek! Rögtön a hétvégén (holnap) megyek a TCS Lidingöloppet 30-as távjára. A versenyt 1965 óta rendezik meg, és a Guinness rekordok könyve szerint a világ legnagyobb terepfutása. Gondolom, a résztvevők száma alapján, hiszen az összes távon együttvéve 45000 indulóval számolnak.

És amúgy kissé belelkesedtem, neveztem mindenhová. Az október például elég durva lesz. Két hét múlva, 9-én, Stockholm maraton, a rákövetkező héten pedig a Vértes Terep Ultramaraton (50km) otthon. Végül novemberben egy villámlátogatás során futok még egy L távot a Mátrában. Ahhoz képest, hogy nem indult ígéretesen 2021, ez öt esemény lesz az év végéig. 😱

38

38

Stockholms Bästa: Årstaviken

Nem tudom, ti hogy vagytok vele, de én nagyon unom már a virtuális futóversenyeket. A Midnattsloppet és a svéd Runner’s World közös sorozata, a Stockholms Bästa sem izgatott fel nagyon elsőre.

Az eseménysorozat nyolc útvonalból áll a város különböző pontjain, a legrövidebb 6 kilométer sincs, a leghosszabb 17. Februártól júniusig minden táv egy tíznapos időablakon belül teljesíthető. Akik legalább öt alkalmon részt vesznek, bekerülnek az összesített eredménylistába. Lehet versenyezni korcsoportok, cégek, foglalkozások és sportklubok mezőnyében is.

Az április végi 7,5 kilométeres etap hazai pálya: a Tantolunden parkból induva az Årstaviken körül vezet, és a vasúti hídon tér vissza a rajthoz. Számtalanszor futottam már erre.

Akkor kezdett el érdekelni a dolog, amikor megjelentek a kapuk. Ezt a hírlevélben nem olvastam el rendesen anno, de az időmérés úgy működik, hogy az indulók postán kapnak egy rajtszámot, amit több versenyen is használhatnak. A rajtszámon van chip, a pályán pedig időmérő pontok vannak felállítva, mint egy igazi versenyen. Nevezéskor rajtidőpontot is kell választani, ami után maximum tíz perccel kell megkezdeni a futást. Gondolom, van valami limit, hányan indulhatnak egy időpontban, de amióta nyitva az időablak, rendszeresen találkoztam rajtszámot viselő, izzadt futók kisebb-nagyobb csoportjával a pályán.

Így már azért sokkal jobban tetszett, mégsem a szokásos virtuális futás, amit akkor és olyan útvonalon csinálsz meg, ahogy akarod… Úgyhogy előző hétvégén neveztünk is, szerdára pedig itt voltak a rajtszámok. Kicsit borsos a fejenként 225 korona, de az árszínvonalat figyelembe véve nem meglepő. Az érem feláras, ami bónusz pont, legalább nem termelődik fölslegesen a szemét. Pólót is lehet rendelni, de a tavalyi stockholmi Midnattsloppet megmaradt készletét szórják ki, nem egy nagy eresztés.

Helyismerettel nem rendelkezőknek készült a weboldalra részletes útvonalleírás, és le lehet tölteni a GPX tracket is. Ettől függetlenül szuper jelölést raktak ki, minden elágazásnál van tábla és szalag, valamint kilométerjelölők. Három ponton van részidő mérés, amik úgy vannak elhelyezve, hogy nemigen lehet levágni a távból.

Rajt a Tantolunden parkban
Rajt a Tantolunden parkban

Az időjárással hatalmas mázlink volt. Az elején volt pár felhő, de nemsokára kisütött a nap, és úgy is maradt. Szignifikáns szél nem fújt, a 9°C pedig pont elég volt, hogy ne fázzunk.

Årstaskogen
Årstaskogen, a kiserdő a túlparton

A pályán viszonylag kevesen voltak. Egy fiatal lányt kísért egy csávó biciklin, aki előzéskor szurkolt is, amit nekem idő dekódolni svédül, de sikerült azért megköszönni, meg velünk együtt indult egy srác is, szintén kerékpáros felvezetővel.

Cél szintén a parkban
Cél szintén a parkban

Közvetlenül utána nem néztem, de fent vannak az eredmények, részidővel, mindennel, egy nagyon pofás táblázatban.

Nyilván most már érdekel a többi futás is, ezek legalább a legtöbbet kihozzák a korlátozott lehetőségekből. A következő a jövő héten indul, és az lesz a leghosszabb!

Unifi

For a very long time my wifi was served faithfully by an Airport Extreme 6th generation, the last of its kind, with 802.11ac support. It didn’t have too many options to tinker with but it proved to be very reliable and strong enough to cover my ~60 square metre apartment in Budapest, even with suboptimal placement.

Here in Stockholm, however, I started having problems. The apartment we ended up chosing is L-shaped. One leg is a corridor from which a row of rooms open: two offices and the bedroom with the bathroom on the opposite wall. The other leg is the combined living room and kitchen.

There is a box on the wall of the corridor where the net comes in. The box also includes four LAN ports which carry a wired connection to all of the rooms. I have seen this elsewhere in Sweden so I assume it is something they tend to install after renovating older buildings and newer ones come with cabling already built-in.

fuse and router box
Wall-mounted fuse box and router housing

Ideally one would place the modem from the ISP in the box and optionally link some fixed clients up using the cabling. Only the box is metal, which I’m sure does wonders for the radio signal, and with the awkward placement and bandwidth congestion the signal becomes pretty dodgy by the time it reaches the living room. Also, Com Hem gave me a router which doesn’t fit.

comhem package
Router and set-top-box from Com Hem (now Tele2)

The good part is that the endpoint is simple ethernet, you can bring your own router. However, not even the Apple one was capable of covering the whole apartment without some significant packet loss. After some experiments I ended up with using the ISP’s router in the hall and connecting the Airport Extreme via LAN in the living room. Both had their wifi on with the same SSID, which is the most basic optimization I could think of. Fixed clients such as the TV ended up on the stronger network while moving ones like the phones were more hit-and-miss.

I know enough about networking that I know I don’t know enough. Therefore, after some reading, I came to the conclusion that for me Ubiquiti’s all-in-one solution, the Unifi Dream Machine, would be the best choice as an upgrade. I ordered it along with a Unifi NanoHD AP from Dustin and they arrived the following day.

Unifi Dream Machine and NanoHD
Unifi Dream Machine and NanoHD

For the setup I downloaded the accompanying iOS app. It found the UDM via Bluetooth, had me create a Ubiquity account, tested the WAN (all 600 of the Megabits were there), then moved over to the newly created wifi. All this in about ten minutes.

Out of the box the router lives on 192.168.1.1 but my Pi-hole acting as a DHCP server was set up for the 192.168.0.x range. I was impressed that resolving this was as simple as rewriting the UDM’s IP and switching off its DHCP in the LAN settings. The changes worked without restarting even.

The experience in the living room was already much better with the UDM and then came the NanoHD. Adding it was as easy as plugging in and adopting it in the router software. The AP supports (only works with) PoE, which the router doesn’t, but it comes with an adapter in the box. It went right into the wall-mounted housing in the hall.

After a day of use I’m very satisfied. Setup was seamless, the network is stable and fast, the clients happily roam around, and there is a plethora of pretty stats to look at on the dashboard. By now the software learned the make and model of every client, too.

As an added bonus the UDM is substituting as an excellent blue nightlight in the hallway.

21Q1 futásokban

Egy évre visszatekinteni elég hosszú, úgyhogy most kísérletet teszek arra, hogy rövidebb periódust nézzek meg a futás szempontjából.

Decemberre jutottunk el oda, hogy volt végleges lakás valamennyi berendezéssel, kialakult egyfajta rutin a munkában, így tudtam összpontosítani kicsit az edzések visszaépítésére. Ahogy a tavalyi összegzőben írtam, decemberben 185 kilométert gyűjtöttem.

A cél továbbra is a futásmennyiség szintre hozása volt, mind időben mind távolságban. Az év elején még lehetségesnek tűnt, hogy Csanya meg tudja rendezni a májusi UTH-t, ezt szerettem volna újra szintidőn belül teljesíteni. Az edzéstervem két alapja a rendszeresség és a kilométergyűjtés lett: igyekeztem heti legalább hat napon elmenni futni, és amennyire lehet teljesíteni a Strava havi 300 kilométeres “Endurance” kihívását.

Szerencsére itt nem volt sosem kijárási tilalom, vagy egyéb korlátozás, nyugodtan kimehettem szaladni az éjszakába, ami gyakran elő is fordult. Persze télen elég nehéz is nappal futni, amikor már délután háromkor lemegy a nap, kész, ennyi volt.

Állítólag kivételesen havas volt az idei stockholmi tél, és a helyi hótakarítási szokás szerint inkább kavicsot szórtak az utakra, mintsem letolták a havat. Főleg a kiserdőben és a partmenti sétálóutakon, amerre én futni jártam. Igazából a terepviszonyokból kiindulva akár terepfutásként is trackelhettem volna az edzéseket. Volt a havasesős latyaktól a letaposott kemény havon át a puha porhóig minden. A sebesség így nem annyira számított, viszont valószínűleg kiemelkedően jó edzésértéke lett a futásoknak. A finom porhó például egészen olyan tud lenni, mintha az ember a homokos tengerparton futna. Egyik hétfőn pedig hatalmas pelyhekben hullott a hó, amiből estére szakadó eső lett: a három centis fagyos hólében két lépés után ázott be bokáig a cipőm; de legalább büszke lehettem magamra, hogy nem kutyáztam el az aznapi adagot.

Januárban így 261 kilométert szedtem össze, és bőven meglett a hegymászós Strava kihívás is a 2558 méter szintemelkedéssel. Ez utóbbi amúgy nem egyszerű feladat, a legmagasabb hely errefelé a sídomb. Ez a szint apránként gyűlt össze az útközbeni kis hullámokkal, hidakkal, felüljárókkal. A hónap elején kipipáltam a havi félmaratont is 1:56’ idővel.

Suunto januári összefoglaló

Február ehhez képest satnya lett: 170 kilométerrel zártam úgy, hogy a harmadik héten mindössze 6 kilométer került a lábaimba. Az első hetekben nagyon hideg volt, éjszakánként gyakran ment -10°C alá a hőmérséklet. Kezdett fogyni az energiám. A hegymenetből is csak 1270 méterig jutottam.

séta a jégen
Február közepén még simán rá lehetett menni a jégre

A hónap végére azonban hirtelen kitavaszodott kicsit, így indultam el február utolsó napján a havi félmaratonra, ami 1:43’48” lett. Idejét sem tudom, mikor sikerült ilyen jó időt futnom. Ennyit jelent a rendszeresség visszavezetése, meg hogy végigkorcsolyáztam a telet, gondolom. Versenyszituációban sajnos nem lett volna ennyi a bruttó idő, ugyanis volt benne egy ötperces intermezzo a park közvécéjében. Elkövettem azt az amatőr hibát, hogy a futás előtt vettem be a vitaminjaim, és vagy ezek, vagy a kritikátlanul sok elfogyasztott kávé miatt igencsak loholni kellett egy óra után, hogy könnyíthessek magamon. Mindenesetre a közjáték ellenére ugyanolyan szaporán (sic!) tudtam folytatni.

Suunto februári összefoglaló

Márciusra visszatért a lendület: 281 kilométer, 2200m szint, januárhoz hasonlóan három nap kivételével minden nap futónap. A félmaratont a kiserdőben körözve teljesítettem 1:50’ alatt, de 200m emelkedéssel (hullámok, meg a híd). Bár a hőmérséklet este alig ment fagypont fölé, napközben tízfokos melegek is voltak, és elolvadt az összes hó. Ilyen körülmények között rendszeresen tudtam 5 percen belüli kilométerekkel úgy haladni, hogy E1/E2 zónában maradt a pulzusom, amire jó ideje nem volt példa.

Suunto márciusi összefoglaló

Márciusban megérkezett az új cipőm is, azóta ebben nyomom. Annyira bejött a Wildhorse 6 szuperkényelmes React talpa, hogy rámentem egy akciós Nike React Infinity Run Flyknitre. A tűzpirosról kicsivel maradtam le, így esett a választás végül erre a monokróm változatra. Egyelőre teljesen beváltotta a hozzá fűzött elvárásokat. Iszonyú kényelmes hosszú távon is, meglepően jól tartja a bokát, bár hivatalosan neutrális, nem stabil cipő. Egyszer jól összevéreztem, mert rendszeresebben kellene körmöt vágni ugye, és akkor nem sebzi fel az egyik lábujjam a másikat, de az is kimosható volt belőle.

Nike React Infinity Run Flyknit
Ilyen vakító fehér volt újkorában

Ekkor már nagyon kevés esélyt láttam rá, hogy hazamehessek májusban, ezért nem annyira rázott meg, hogy a hónap végén törölték is az idei UTH-t. Persze elég szomorú azért, hagyományosan ilyenkor már javában beindult a versenyszezon, minden hétvégére juthatott valami futnivaló akár.

Karlstad

A húsvéti hosszú hétvégén már el akartunk menni valahová, hiszen a megérkezés óta nem tettük ki a lábunkat Stockholm közigazgatási határain kívülre. A hazalátogatásra továbbra sem volt lehetőség, úgyhogy meglehetősen véletlenszerűen Karlstadra esett a választás mint országon belüli célpontra.

Karlstad Värmland megye fővárosa, Svédország legnagyobb tavának, a Vänernnek a partján fekszik, és a jelképe egy vigyori nap, mivel állítólag az egyik legnapsütöttebb települése az országnak. A város egyik nevezetessége egy helyi pincérlány szobra, aki a legenda szerint mindig mosolygós természete miatt a karlstadi nap (Sola i Karlstad) becenevet kapta.

Közvetlenül a hotel mellett a boltba menet csapott meg a markáns kávéillat. Mint kiderült, a Löfbergs kávénak, amit anno az ideiglenes lakásban vettünk főzni, itt van a főhadiszállása és az egyik pörkölőüzeme. Az első este még működött is, és mivel az egész épület üvegfalú, lehetett nézni, ahogy közlekednek a csomag kavék a futószalagon. Sajnos az ünnepekre leállt a gyártás, így nem tudtuk tüzetesebben megnézni.

Inre hamn, Karlstad
Löfbergs pörkölő éjszaka

A várost Svédország leghosszabb folyója, a Klarälven szeli át. A rengeteg hídja közül a legmenőbb a XVIII. századi Östra bron, vagyis a régi kőhíd (gamla stenbron). Esténként szivárványszínű kivilágítást kap.

Gamla Stenbron
Gamla stenbron

Sétatávra a belvárostól található a Mariebergsskogen, egy elég nagy városi park. Az erdős terület közepén egy félig skanzen félig állatkert üzemel (Djurparken Lillskogen). A leírások alapján a tradícionális (középkori) svéd háziállatokat mutatják be; voltak kecskék, nyulak, pónik, és a kedvenceim, a malacok. Ez utóbbiak félig vadon éltek a falvak körül, és amikor kellett, levadásztak egyet-egyet. Egyből az Argricola fekete disznói jutottak eszembe róluk.

Mariebergsskogen bejárat, werk
Mariebergsskogen bejárat, werk
félvad malac
Félvad malacok az állatkertben

A park déli csücskénél a mocsaras rész vízimadarak költőhelye. Magaslesről is lehet őket nézni, illetve van egy kávézó/kiállítóterem a vízparton (Naturum Värmland), ami sajnos szintén zárva volt ezúttal.

út a mocsáron át
Út a mocsáron át

Délután megpróbáltunk elsétálni az Alsters herrgård felé, de útközben egy hídépítés miatt jó nagyot kellett volna kerülni, úgyhogy inkább visszafordultunk, mielőtt ránk sötétedik. Nyitva ez sem volt amúgy, így csak kívülről láthattuk volna Gustaf Fröding író, költő szülőhelyét.

Karlstad még arról híres, hogy 1905 szeptemberében itt találkozott a svéd és a norvég delegáció, hogy megtárgyalják a svéd-norvég perszonálúnió felbontását. A háborút sikerült elkerülni, Norvégia békés úton lett független ország.

békeemlékmű
Norvégia és Svédország békés szétbomlásának 50. évfordulójára állított szobor a főtéren

Mivel a városban ezzel javarészt kimerítettnek ítéltük a látnivalókat, túrát kerestünk. Szintén dél felé találtunk egy útvonalat Hammarön, amről később kiderült, hogy már egy másik község (kommun) része. Távolsági busszal lehetett megközelíteni, amitől erősen hasonlított a projekt egy kéktúra szakaszra. A közel tíz kilométeres körútról később kiderült, hogy egy helyi szabadidőközpont, a Kilenegården, tartja fenn.

Hammarö túraútvonal
A zöld rombusz túraútvonal Hammarön
ebédszünet
Ebédszünet

Ezek a szabadidőközpontok elterjedtek lehetnek, mert a másnapi séta útvonala is ilyenhez köthető, ez volt a Skutbergets motionscentral. Erre a városi busz járt, úgyhogy az összes szóba jöhető tömegközlekedési formát kipróbáltuk. Nyáron nagyon menő lehet a hely, mert egy hatalmas kemping fekszik a tóparton sátorhelyekkel, lakókocsikkal és bérelhető házakkal: tiszta Balaton. Az erdő meg kísértetiesen úgy nézett ki, mintha telepített lenne, annyira szabályosan álltak a fák. Az állatvilágot egy nyúl képviselte, aki szembejött az egyik kanyarban, láthatóan meglepődött, majd sarkon fordult.

A  Vänern tó
A Vänern tó
Skutberget sűrű sötét erdeje
Skutberget sűrű sötét erdeje

Slussen

Ezt a képet a 2015-ös stockholmi kirándulás alkalmával készítettem, amikor már elkezdődött a slusseni csomópont teljes újjáépítése.

Picture taken of Slussen, Stockholm in 2015
Már nem ilyen

A projektet bemutató infóvideó tanúsága szerint már 2014-ben az volt a cél, hogy az autóforgalom kiszolgálása helyett a tömegközlekedők, a kerékpárosok és a gyalogosok igényeit helyezzék előtérbe.

Gigászi munka, hiszen a mai napig Slussen a fő összekötő kapocs Stockholm északi és déli része között, és az építkezés közben biztosítani kell a folyamatos közlekedést. Két timelapse videón látható az elmúlt hét év a Katarinavägen (errefelé van az albérlet) és a Slussbron (Gamla Stan, az óváros) irányába. Az egy elég menő pillanat, amikor az új autós híd, a Guldbron, egyszer csak megjelenik, mert egy darabban hozták uszályon.

Lent az utcaszinten pedig vannak a vicces plakátok.

Mindfulness poster in Slussen, Stockholm
A legjobb hely gyakorolni a meditációt
Middle of chaos poster in Slussen, Stockholm
Üdv a pokolban

Direkt csináltak kis ablakokat a palánkokon, hogy lehessen nézni az építkezést, gondolva a gyerekekre is. Halad a dolog, mert az a híd, amire a gyalogosforgalmat terelték amikor kiköltöztünk tavaly ősszel, már eltűnt. Ütemezve adnak át részeket, de biztosan csúszik a projekt, például az egyik táblán már 2025-ös dátum szerepel.

Jekyll

For a while now I’ve been toying with the idea of moving the blog from its current location and leave WordPress behind in the process. The primary reason was costs: my current hosting plan amounts to $120 a year and that’s 💰 I can spend elsewhere. Another reason was speed and complexity: for my use case of personal blogging WP started to feel extremely bloated and unnecessarily slow. GitHub Pages looked like an excellent alternative. (If I remember correctly I’ve been shown Jekyll long ago back when I was in Japan but I did not understand the benefits at the time.)

Making the switch did not seem particularly complex. I followed the Installation guide and the Step by Step Tutorial. Ruby I’ve already had installed but I opted for setting up the latest 3.0.0 version with rbenv anyway. However, this broke local testing, apparently because of this bug, easily fixed by bundle add webrick.

Getting the existing 2039 posts into the new system proved to be less straightforward. I tried the Jekyll Exporter plugin, but as I expected it ran out of memory. The likely issue is that the plugin would try to include the entirety of the wp-content/uploads folder as well…

To circumvent this I made a copy of the WordPress database, fired up a local mySQL server and fed the database into it as if I had a locally running WP. Then I used the jekyll-import gem to create a dump of the posts converted into Jekyll-compatible html files. Defaults had to be changed because I didn’t use categories but I wanted to retain non-ASCII characters: "clean_entities" = false. For an unknown reason "socket" had to be explicitly set to nil for the script to be able to connect. Afterwards it ran perfectly.

❯ ruby -r rubygems -e 'require "jekyll-import";
    JekyllImport::Importers::WordPress.run({
      "dbname"         => "xxxxxxx",
      "user"           => "root",
      "password"       => "",
      "host"           => "localhost",
      "port"           => "3306",
      "socket"         => nil,
      "table_prefix"   => "wp_",
      "site_prefix"    => "",
      "clean_entities" => false,
      "comments"       => true,
      "categories"     => false,
      "tags"           => true,
      "more_excerpt"   => true,
      "more_anchor"    => true,
      "extension"      => "html",
      "status"         => ["publish"]
    })'

Then came porting the styling over and adding the jekyll-paginate plugin. I needed to employ a hack here because of the differing logic. My WordPress setting was to display the newest posts first which meant that the next ten posts on page2 would be on the previous url not on next like in Jekyll pagination. Behold the reverse logic:

<nav>
<!-- Pagination links -->
    <div class="pagination">
        {% if paginator.next_page %}
        <a href="{{ paginator.next_page_path }}" class="previous">Older</a>
        {% else %}
        <span class="previous">Older</span>
        {% endif %}
        <span class="page_number ">
        {{ paginator.page }} / {{ paginator.total_pages }}
        </span>
        {% if paginator.previous_page %}
        <a href="{{ paginator.previous_page_path }}" class="next">Newer</a>
        {% else %}
        <span class="next">Newer</span>
        {% endif %}
    </div>
</nav>

For now this qualifies as an MVP. There are several things not working yet such as commenting, image galleries, tags, video embeds, and so on, which I plan to resolve gradually.