End of Year Hyperlink Dump

    I had a bunch of links sitting around that I meant to share last year, but never got to. I’m just dumping them here now because I wish to kick off 2024 with a clean slate and no link debt. 😊 Let’s go!

    First, here’s two hundred and six things a punkist should know (via Veronique) and a synth with a ferrofluid visualizer called Symbiote X. Okay, then there’s (we)bsite – a living collection of internet dreams from people like you and me.

    Tom made me aware of this passage from Zadie Smith’s Feel Free that more or less describes me and my brain:

    I have the kind of brain that erases everything that passes, almost immediately, like that dustpan-and-brush dog in Disney’s Alice in Wonderland sweeping up the path as he progresses along it. I never know what I was doing on what date, or how old I was when this or that happened–and I like it that way. I feel when I am very old and my brain “goes” it won’t feel so very different from the life I live now, in this miasma of non-memory, which, though it infuriates my nearest and earest, must suit me somehow, as I can’t seem, even by acts of will, to change it.

    About getting old and eventually leaving this world… Derek is thinking about our personal websites and how to preserve them after our deaths. Rebecca and I are the same age, so I guess I also have around 16,000 days or so left on earth. On a more cheery subject, I absolutely love Katherine’s site! The typography, the index, and the i carry your website with me (i carry it in my website) section. Jake does a similar thing with JAKE.MUSEUM where he chronicles his journey through the world of web design and development. There are cute details like frames for the frames and the fact that some websites are “on loan”.

    Hey, by the way, you should listen to the 6502 song 🎵 and look at some very lickable fungi and slime molds. 🍄

    And if you’re a DMG fan, check out Gijs’ modified Game Boy projects, like Reboot. Actually, you should take your time and explore more of gieskes.nl and all of his projects. If you hate the Game Boy but love PC-98, you should check out the anime 16bit Sensation: Another Layer. I’m a couple of episodes in and enjoying it so far. It’s about a 19-year-old illustrator going back in time to make bishōjo games. Fittingly, the series has a very 90s looking website.

    Back in August, Zach started this thread that later became an educational, sensational, inspirational, foundational web development reading list mini site.

    Dan reminded us that we should use RSS for joy, Rachel answered the question “Why have a personal website?” with “Because it’s fun!” and I couldn’t agree more. Emma shared 50 of the weirdest, most wonderful corners of the web, and speaking about the weird wide web, here’s some URL poetry for you.

    Also, you should blog, and your website can be like your home.

    That’s it. That was all the tabs I had open in my “to blog” tab group. Clean slate. 2024, I welcome you. Happy new year! 🎆

    P.S. I haven’t really told anyone yet, but there’s a page I’m calling Hyperlink Hodgepodge where URLs I stumble upon end up. There’s no context other than the URL and its title – no commentary or quotes. They are there because I loved them or hated them or found them interesting enough to hit the little star button in my feed reader. Check it out for even more links.

    The Truth About My September Photoblogging Challenge

    This September, Micro.blog ran a photoblogging challenge: snap a photo every day based on a prompt. I participated for the first 14 days before… life happened. 🤷‍♂️ But I had a lot of fun with the challenge for those two weeks. And really enjoyed seeing what everyone else was coming up with throughout the month.

    Congratulations and well done to everyone who participated!

    I promised to reveal all the machine-generated images after the challenge. Yes, some of my entries were not snapped by me, but instead dreamed up by a text-to-image model. First, here’s a complete list of my 14 entries:

    Five of these were generated by software: buildup, orange, well, retrospect, and panic. I also broke the cycle for day 10 and published a photo taken by my dad. The rest of the entries were snapped by yours truly.

    Going into the challenge, I was prepared to lie, not only with the generated images but also with my writing. To trick and deceive you all. 😇 But it never came to that. So, the stroll I took and the beer I drank… all of that actually happened.

    Phew. It feels good getting that out there; no more lying on my blog. For now.

    Thanks to everyone who followed along and guessed how the images were made. I fooled you a few times, but over all, I’m very impressed with your ability to identify synthographs.

    Snapped by me or dreamed up by a text-to-image model?

    I’ll post a picture every day for the September 2023 Photoblogging Challenge. To keep it interesting, I will sometimes use my computer to manifest a “photo.”

    And you – yes, you – are welcome to guess whether it’s snapped by me 🧔‍♀️ or dreamed up by a text-to-image model 🤖.

    It might be fun! I, for sure, will learn a lot, and maybe we will all be better at spotting fakes at the end of the challenge.

    Here are some constraints I’ve set up for myself, besides the rules stipulated by Micro.blog.

    • Real photos must be snapped by me.
    • It’s okay to use photos from my archive.
    • I will write the prompts when generating images.
    • Text-to-image models must have a permissive license and run on my machine. No cloud allowed.
    • Cropping, color adjustments, and light retouching are fair game for all pics – real or fake.
    • I’m allowed to lie and deceive on the blog for the duration of the challenge.
    • But I will reveal all the lies and generated images when the challenge is over. Full transparency.

    So, for the rest of September, don’t believe everything I share here. And start guessing! Here’s the pic for day one.

    How ChatGPT made my migration from Jekyll to Hugo a breeze

    The other day, after running my blog on Jekyll for 13 years, I switched to Hugo. Moving from one static site generator to another involves a lot of things to take care of. Among them was this directory with hundreds of microblog posts written in Markdown. The posts published dates encoded as Unix timestamps in the filenames: 1665322487.md etc.

    Micro.blog hosts my new Hugo blog, and their import tools do not support Unix timestamps in file names. Instead, publish dates should be put in the YAML front matter, as follows:

    1
    2
    3
    4
    
    ---
    date: 2022-10-09 13:34
    ---
    Had a great day in the forest with friends. Grilling sausages, roasting marshmallows, and taking a short hike. Hair smells like a campfire now. 🥰
    

    So, I basically had two options. I could manually fix this by snatching the timestamp from the filename, converting it to the right date-time format, and pasting that into the file’s YAML front matter. Rinse and repeat. Hundreds of times.

    Or I could just write a script that automated the process for me. As a programmer, this is what I usually do. Even when it won’t actually save me any time in the end. 😅

    But, instead, I tried a third option and asked ChatGPT to do it for me. I’ve played a lot with the chatbot and had it generate code for me in the past. But just toy examples, not, you know, anything useful in the real world. This task, though, seemed like a perfect fit. Easy to define and limited in scope. So, without further ado, here’s me and ChatGPT programming away. Complete with lazy typing and spelling mistakes (mostly mine).

    My pair programming session with ChatGPT (GPT-4)

    Sven: Write a Ruby script that loops thorough all files in the directory provided and adds the filename to yaml frontmatter without extension.

    For example the file named 1676537577.md should end up like this in the frontmatter:

    -–
    date: 1676537577
    -–

    ChatGPT: Here is a Ruby script that loops through all files in a specified directory and adds the filename without the extension as the date field in the YAML frontmatter.

    ruby

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    require 'yaml'
    require 'fileutils'
    
    def process_file(file)
      frontmatter = { 'date' => File.basename(file, '.*') }
      content = File.read(file)
      content.sub!(/---\s*\n.*?---\s*\n/m, '') # Remove existing frontmatter if present
      File.open(file, 'w') do |f|
        f.write(YAML.dump(frontmatter) + "---\n" + content)
      end
    end
    
    dir = ARGV[0] || '.'
    
    raise "Directory #{dir} not found" unless Dir.exist?(dir)
    
    Dir.glob(File.join(dir, '*.md')) do |file|
      process_file(file)
      puts "Processed: #{file}"
    end
    
    puts 'All files have been processed.'
    

    Save this script as add_date_to_frontmatter.rb and run it with the desired directory path as an argument:

    bash

    1
    
    ruby add_date_to_frontmatter.rb /path/to/directory
    

    If no argument is provided, the script will default to the current working directory. This script assumes that your files have the .md extension.

    Sven: Great! Now make is so that the file name (without extension) is processed as a unix timestamp and converted to a iso-8601 formatted date and time instead.

    ChatGPT: To modify the script to process the filename as a UNIX timestamp and convert it to an ISO-8601 formatted date and time, you can use Ruby’s built-in Time class.

    Here’s the updated script:

    ruby

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    
    require 'yaml'
    require 'fileutils'
    
    def process_file(file)
      filename_without_ext = File.basename(file, '.*')
      timestamp = filename_without_ext.to_i
      iso_date = Time.at(timestamp).utc.iso8601
    
      frontmatter = { 'date' => iso_date }
      content = File.read(file)
      content.sub!(/---\s*\n.*?---\s*\n/m, '') # Remove existing frontmatter if present
      File.open(file, 'w') do |f|
        f.write(YAML.dump(frontmatter) + "---\n" + content)
      end
    end
    
    dir = ARGV[0] || '.'
    
    raise "Directory #{dir} not found" unless Dir.exist?(dir)
    
    Dir.glob(File.join(dir, '*.md')) do |file|
      process_file(file)
      puts "Processed: #{file}"
    end
    
    puts 'All files have been processed.'
    

    Save this script as add_iso_date_to_frontmatter.rb and run it with the desired directory path as an argument:

    bash

    1
    
    ruby add_iso_date_to_frontmatter.rb /path/to/directory
    

    If no argument is provided, the script will default to the current working directory. This script assumes that your files have the .md extension.

    Sven: Okay, I changed my mind, instead of ISO-8601 make it on the format yyyy-mm-dd hh:mm. For example 2020-03-28 22:10.

    ChatGPT: Sure, you can modify the script to format the date and time as “yyyy-mm-dd hh:mm” by using Ruby’s strftime method. Here’s the updated script:

    ruby

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    
    require 'yaml'
    require 'fileutils'
    
    def process_file(file)
      filename_without_ext = File.basename(file, '.*')
      timestamp = filename_without_ext.to_i
      formatted_date = Time.at(timestamp).utc.strftime('%Y-%m-%d %H:%M')
    
      frontmatter = { 'date' => formatted_date }
      content = File.read(file)
      content.sub!(/---\s*\n.*?---\s*\n/m, '') # Remove existing frontmatter if present
      File.open(file, 'w') do |f|
        f.write(YAML.dump(frontmatter) + "---\n" + content)
      end
    end
    
    dir = ARGV[0] || '.'
    
    raise "Directory #{dir} not found" unless Dir.exist?(dir)
    
    Dir.glob(File.join(dir, '*.md')) do |file|
      process_file(file)
      puts "Processed: #{file}"
    end
    
    puts 'All files have been processed.'
    

    Save this script as add_formatted_date_to_frontmatter.rb and run it with the desired directory path as an argument:

    bash

    1
    
    ruby add_formatted_date_to_frontmatter.rb /path/to/directory
    

    If no argument is provided, the script will default to the current working directory. This scrit assumes that your files have the .md extension.

    Closing thoughts

    The final output from ChatGPT just worked and successfully completed the task at hand. That’s pretty cool! Is the implementation perfect? No, but it gets the job done. For a one-off script, I can’t complain.

    The resulting program is short, and I could’ve come up with a solution and typed it out myself. But it’s fascinating to program in plain English. And I doubt I would have come up with the solution as fast as ChatGPT. I didn’t time our session, but estimate it took ChatGPT about a minute to generate each answer. So, from my first prompt to a job well done, it took no more than five minutes.

    By the way, the first draft of the program ran fine as well. In the second draft, ChatGPT didn’t require 'time' at the top, but after human intervention, that version also ran correctly.

    So, March 22, 2023 was the first time I paired programmed with a large language model to successfully solve a real world problem. And I’m certain we’ll team up again in the future to solve even bigger and more complicated problems.

    Online Yard Sale

    Please, buy my stuff. 😅 Currently, I have 12 things to be listed on eBay (or Tradera). But if you’re quick, you can grab them before they are listed. I will give you a good deal.

    Everything currently resides with me here in Sweden 🇸🇪, but I ship worldwide.

    A bunch of gadgets on a wooden table. Looks like a yard sale, but you know, online.

    Soon to be listed, be quick! 🚀

    I haven’t come around to photographing these yet. Reach out if you’re interested, and I will snap some pictures for you.

    Most of these are complete and in the original box. I take great care of my gadgets, so they are all in good shape.

    Price? Give me an offer once you’ve seen the item’s condition.

    💌 Contact me

    Last updated: January 21, 2024

    • Meta Quest 2
    • reMarkable Type Folio (keyboard)
    • Another reMarkable Type Folio (keyboard)
    • Vive Focus (VR headset, development edition)
    • Longines watch
    • Arduboy (handheld, open source, Arduino, game console)
    • Line-us (Internet Connected Drawing Robot)
    • Estimote proximity beacons (dev-kit, Bluetooth LE beacons)
    • Game Boy Pocket Printer
    • Canon Super 8 Camera
    • Pair of red chairs
    • Earpods

    Currently Listed Elsewhere 🏷️

    Already sold 🙌

    • PlayStation 4 Pro
    • Bang & Olufsen’s Beoplay H6
    • Nintendo Classic Mini: NES
    • PS5 DualSense Wireless Controller
    • iPod Shuffle fourth generation and EarPods
    • Kindle Oasis third generation and leather cover
    • Apple Magic Keyboard (first generation, Swedish layout)
    • PocketBook Color (e-reader with E Ink color screen)
    • AirPods first generation
    • AirPods second generation
    • iPad 3 Wi-Fi + Cellular (no box)
    • Nokia 2.2 (Android smartphone)
    • Logitech Harmony Touch (universal remote)
    • ONYX BOOX MAX 2 (e-reader and E Ink monitor)
    • Philips Hue Bridge and Four Lights
    • Philips Hue Bridge and Three Lights
    • Philips Hue Dimmer Switch
    • 3 x Studio Ghibli Blu-ray movies
    • Serial Experiments Lain Bly-ray movie
    • Commodore 64 (retro computer)
    • MacBook Air (Retina, 13-inch, 2018, Swedish keyboard layout)
    • Apple Watch Series 5, 44 mm, GPS + Cellular
    • Zoom H1 Handy Recorder
    • RØDE Podcaster
    • iPad mini 2
    • AirPods (2nd generation)
    • Kindle Paperwhite (10th generation, 8 GB)
    • DÖRR CRK-32 (foldable Reflector Kit 7-in-1)
    • Mic stand König & Meyer (1 of 2)
    • Mic stand König & Meyer (2 of 2)
    • RØDE PSM1 Shock Mount
    • Bang & Olufsen Beoplay H7
    • TwelveSouth BookArc (laptop stand)
    • Foot rest
    • Oculus Go 32 GB VR Headset
    • Analogue Super Nt
    • Super Game Boy 2
    • Super Nintendo controller
    • Fjällräven Kånken backpack
    • 2 × RØDE Lavalier GO
    • Thunderbolt to USB-C cable
    • Nintendo Switch
    • Mgaxyff NFC RFID Reader / Writer
    • Apple TV
    • Dock for Nintendo Switch

    Micro Camp 2022

    I’m stoked to be presenting at Micro Camp tomorrow, March 12. On a topic near and dear to my heart: web accessibility. This space will be updated in the future with:

    See you here in a couple of days! 👋

    Explore Web Accessibility

    My presentation is about alternative texts for, or descriptions of, images. The New York Times recently ran an article well worth reading if you want to go deeper down that specific rabbit hole. The Hidden Image Descriptions Making the Internet Accessible.

    And if you want something more hands-on, I recommend Alt-texts: The Ultimate Guide.

    I also mention screen readers: software that reads the content on a screen aloud. Used mainly by people with low or no vision, but, of course, these tools can be utilized by everyone. For example, I use a screen reader to read long articles and blog posts when my eyes are tired. They are also decent as proofreaders.

    If you own a smartphone, you probably have a screen reader. On Android, it’s called Talkback, and iOS has VoiceOver. I encourage you to play around with the feature. It may become your new favorite tool!

    Finally, if you want to learn more about web accessibility beyond alternative text, Writing for Web Accessibility is a good start.

    Video editing software with an open project named Micro Camp 2022. The scrubber is set to around 4 seconds, and the video preview shows a happy guy sitting at a table raising his hand in a salutation. The title is set in a playful font and reads Accessible Microblogging: A Crash Course.

    World Wide Web Directory

    A humanly curated list of websites. Often homemade, quirky, and personal. Always made with 100 % love towards the free and open web.

    🚧 Under Construction

    Blogrolls, Directories & Webrings

    Smol Web Search Engines

    Budroll

    “Kind of like a blogroll but with a higher barrier to entry.” Websites by humans I hang out with afk.

    Me, Elsewhere in Cyberspace

    Week 1,851

    Thursday, we packed our bags and hit the road down south. We steered towards Brösarp and Talldungen. When summer comes to an end, we go there for a night or two. It has stuck as a tradition. We went for a swim in the Baltic Sea, talked a lot, ate, and drank well.

    A weathered shed photographed against a clear blue sky. It has a brick chimney and a reed roof. In the window hangs a net, probably used for fishing.

    We also played around with our cameras, snapping pictures of old fishing sheds, and tried catching waves on video. I’m pretty sure we’ll be back again next year.

    Sanna ran a book circle on Discord, and I joined to discuss the short story Everything’s Fine by Matthew Pridham. It’s interesting to learn about fellow readers’ thoughts and opinions. This time around, everyone had interpreted the story roughly the same way. And most of us enjoyed it.

    On the subject of being on the same page: I nodded along while reading Documents ≠ Programs.

    Week 1,850

    The top half of a grandfather clock against an eerie black backdrop. The case's color is bone and the white clock-face features black numbers. Westerstrand Sweden can be seen at the bottom of the clock-face, and the hands show seven minutes until five o'clock.

    I’ve gravitated towards the Micro.blog community for years now. A welcoming bunch of people, just blogging away and having a good time. Somewhat like Twitter, but nice! Actually, it’s not at all like Twitter. There’s no follower count, no likes, and the public timeline is curated by actual human beings. 😲 Can you believe that? It’s super cozy!

    Anyway, this week I decided to go from lurker to participant and started micro posting there under the moniker @sod. Wanna hear how that clock up there sounds? Well, you have to visit my post about grandpa’s clock to find out.

    A comic book cover with the title Incredible Doom. A biking paperboy hurls a newspaper toward a house. The illustration is mixed up with graphic ASCII symbols resulting in a digital look.

    Sanna and I had a date Thursday night, entirely dedicated to work on Läslöss, our blog about books and how much we adore them. We had a good time, and I ended up writing a short post about the Incredible Doom comic. So if Swedish makes any sense to you, you should follow that link.

    It feels good being fully vaccinated (for now), and we’re slowly getting used to hanging out with friends and family and going on social events again. I visited an ex-colleague and friend in her house, shared a great lunch with dad, and the week ended on a high note, as we went to a concert for the first time since… I don’t know; forever?

    It was nice! It was a little chilly outside, but that was outweighed by the pure joy of experiencing live music again. Thanks, Nina (The Cardigans) and Martin (The Soundtrack of Our Lives), for a great evening at Huskvarna Folkets Park.

    Also, I’m probably a cyber-realist. Good to know. 😅

    Week 1,849

    Let’s see if I can get back into writing by posting on a regular schedule. Once a week. Cherry-picked tidbits from my life the last seven days. I’ve been alive for 1,849 weeks already, so, without further ado, here’s what happened in the thirty-third week of 2021.

    I got my second jab! 💉 It went smooth, 5 minutes of waiting for my turn and 30 minutes of relaxing after. The arm felt a bit sore for a couple of days, but no other side effects.

    For some reason, The Green Knight didn’t go up here in Jönköping. So, we went out of town to catch it. Totally worth it; the movie was phenomenal! Now, I look forward to Robin’s live reading of the book in January.

    Sanna and I decided to spend our extended weekend at Sommarbo. And what a great decision that was. The water remained warm-ish, the sun shined, and we had a great time. We both agreed the air felt a bit different, though. Autumn is coming! 🍂

    We also sent the second issue of our cozy newsletter about reading. If you cherish books and can decipher Swedish, you should subscribe.

    Svenska månadsnamn på GitHub Pages

    Jag gillar datum med månadsnamnet utskrivet: 30 juni 2014. Men jag har fått brottas med Liquid-mallar för att få dem att lira med Jekyll och GitHub Pages.

    Denna Liquid-snutt gör nästan det jag vill men med resultatet “30 June 2014” i stället för “30 juni 2014”:

    1
    
    {{ page.date | date: "%-d %B %Y" }}
    

    Så jag har kavlat upp ärmarna och kommit fram till följande lösning:

    1
    2
    3
    4
    5
    6
    7
    8
    
    {% comment %} Skapa en array med svenska månadsnamn. {% endcomment %}
    {% assign month_names = "januari,februari,mars,april,maj,juni,juli,augusti,september,oktober,november,december" | split: "," %}
    
    {% comment %} Konvertera från månadsnummer till array-index. {% endcomment %}
    {% assign i = page.date | date: "%-m" | minus: 1 %}
    
    {% comment %} Skriv ut sidans datum på formen 30 juni 2014. {% endcomment %}
    {{ page.date | date: "%-d month %Y" | replace: 'month', month_names[i] }}
    

    Du hittar även en mindre pratig variant på GitHub.

    Nej tack till reklam, en gång för alla

    Är du trött på att brevlådan är proppfull med oönskad reklam? Att telefonförsäljare ringer och stör i tid och otid eller att du har svårt att se innehållet på en webbsida på grund av alla banners? Det finns bot, jag lovar!

    Ett liv utan reklam blir enklare. Mindre saker pockar på uppmärksamheten, du behöver inte bli irriterat på telefonförsäljare och tänk bara hur mycket papper som slipper gå direkt till återvinning.

    Så här säger du nej tack till reklam, en gång för alla:

    Brevlådan

    Kanske har du en ”Nej tack till reklam”-skylt på brevlådan eller dörren? Den förhindrar bara oadresserad reklam. Gratistidningar och utskick med din adress på delas ut ändå.

    Se till att du tackar nej även till gratistidningar på din skylt. Det finns flera tjänster som låter dig designa en egen, det har jag gjort.

    Hur får du då bukt med den adresserade direktreklamen? Det är busenkelt tack vare den smarta tjänsten reklamfritt.se. Gå bara dit och registrera dig.

    Hem- och mobiltelefon

    Om du har en fast telefon hemma kan du spärra ditt telefonnummer mot säljsamtal hos NIX.

    Du kan tyvärr inte spärra mobiltelefonnummer men i regel är det bara tillåtet att kontakta dig om du aktivt gett ditt samtycke.

    Webben och e-post

    Internet kan vara som en riktig djungel där man behöver en machete för att ta sig fram bland banners och spam. Men även här finns det hopp.

    När det gäller e-post:

    • Var försiktig med att lämna ut din e-postadress och leta alltid efter en ”Nej tack till nyhetsbrev”-kryssruta.
    • Avregistrera dig från nyhetsbrev som du inte längre läser. Många gånger finns en länk i början eller slutet på brevet.
    • Se till att du har en e-postleverantör med ett bra skräppost-filter. Googles Gmail gör ett riktigt bra jobb.

    Banners och annan reklam på webbsidor kan du undvika med webbläsartillägget Adblock Plus. Efter en enkel installation kommer plötsligt innehållet i fokus på annonstäta webbsidor.

    Ett bilfritt liv

    Vissa dagar är det besvärligt att inte ha en bil. Till exempel när vi köpt något stort och tungt som ska fraktas hem eller när jag och Sanna vill ta en tur upp till sommarstugan. Då är det lätt att tänka: vore det inte enklare att skaffa bil?

    Men en bil:

    • kostar pengar (inköp, bensin, försäkring, skatt, service, värdeminskning)
    • måste stå någonstans (parkeringsavgift)
    • behöver tas om hand (service, tvätta, besiktiga, byta vinter- och sommardäck)

    När jag tänker på allt detta, och vad det kostar i tid och pengar, känner jag att vi nog klarar oss fint utan bil ändå.

    Det går bra att promenera, cykla och åka kollektivt men visst finns det situationer då bil är ett måste. Det löser vi oftast genom att låna av någon i familjen. Någon gång har vi även hyrt bil under en tid på sommaren eller ett veckoslut. Det kan man unna sig ganska många gånger innan det kommer i närheten av [kostnaden för en egen bil] 1.

    Än så länge lever vi ett bilfritt liv och njuter av att röra på oss mer, ha en sak mindre att tänka på och mer pengar över till roliga saker.

    A car-free life

    Sometimes it’s troublesome not to own a car. Like when we buy something enormous and heavy and need to bring it home. Or when Sanna and I want to take a trip to the summer house. Wouldn’t it be easier just to get a car?

    But a car:

    • costs money (purchase, fuel, insurance, tax, maintenance, depreciation)
    • needs to be parked somewhere (parking fee)
    • needs love and care (maintenance, washing, car inspection, switch to and from snow tires)

    When I think about all this and the investment in time and money, I feel we are just fine without a car.

    Most of the times there’s no trouble taking a walk, the bike or public transport. But in some situations, you’ll need a car. We rent a car for a few weeks during summer and a bunch of weekends throughout a year. That’s something we can afford to do quite a few times a year before it even comes close to the cost of owning a car.

    So far we live a car-free life and enjoy moving around by foot, having one less thing to think about and spend money and time on.

    Kasta om din dag

    Känner du att tiden inte riktigt räcker till, att du aldrig hinner med det du vill? Testa att kasta om din dag!

    På veckorna kan mina dagar bli ganska inrutade med lite plats över för ”egen tid”. En typisk dag kan se ut så här:

    • Gå upp
    • Äta frukost och göra andra morgonrutiner
    • Jobba
    • Träna
    • Handla, laga och äta mat
    • Tid över för egna projekt, att lära mig nya saker, umgås med vänner och så vidare
    • Sova

    Det som är viktigast för mig är inklämt mellan middagen och min nattsömn. Är det inte lite bakvänt att egna projekt och vänner ska behöva vänta till slutet av dagen, när jag ofta är trött? Jag tycker det! Därför har jag börjat kasta om mina dagar ibland. Här är tre saker jag provat på:

    Frukost med vänner
    Ibland träffas vi ett gäng tidigt på morgonen och äter en hotellfrukost innan jobbet. Ett bra sätt att starta dagen på. Kombinationen mat och vänner är sällan fel.

    Handla på lunchen
    Vid några tillfällen har jag gått och kompletteringshandlat under lunchen. Det är skönt då jag får en kort promenad och slipper handla med resten av Jönköping under rusningstid.

    Egen tid på morgonen
    Min favorit! Jag har börjat göra något för mig själv på morgonen, innan jag går till jobbet. Det kan handla om att skriva några rader kod eller jobba med något roligt projekt. Större delen av detta inlägg skrevs en tisdagsmorgon tillsammans med ägg och bacon.

    Din dag är såklart olik min, så du kanske behöver kasta om den annorlunda. Men ge det en chans och se om du kan få mer tid över!

    Hoisting och funktioner i JavaScript

    Här kommer en några kluriga rader JavaScript, kan du tala om vad som skrivs ut i konsollen när de körs?

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    
    helloDeclaration();
    helloExpression();
    
    function helloDeclaration() {
      console.log('Hello Declaration!');
    }
    
    var helloExpression = function () {
      console.log('Hello Expression!');
    };
    

    Du fuskade väl inte? Här kommer svaret:

    1
    2
    
    Hello Declaration!
    TypeError: undefined is not a function
    

    Känns det inte helt självklart? Då tycker jag du ska läsa vidare!

    Vad är hoisting?

    I JavaScript finns något som kallas för hoisting som innebär att funktions- och variabeldeklarationer flyttas (hissas) till toppen av sitt scope innan koden körs. Okej, det var en krånglig mening. Kanske blir det lättare om vi kikar på hur JavaScript-parsern tolkar koden ovan:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    
    // Variabel- och funktions-deklarationer flyttar till toppen.
    var helloExpression;
    
    function helloDeclaration() {
      console.log('Hello Declaration!');
    }
    
    // Funktionsanropen och...
    helloDeclaration();
    helloExpression();
    
    // ...variabeltilldelningen är kvar på samma plats som tidigare.
    helloExpression = function () {
      console.log('Hello Expression!');
    };
    

    Parsern flyttar alltså deklarationerna till toppen, men lägg märke till att variabeltilldelningen blir kvar. Nu är det plötsligt klart varför det första funktionsanropet går bra medan det andra kastar ett undantagsfel: helloExpression(); körs innan variabeln är satt.

    Om du vill lära dig mer kan jag rekommendera artikeln JavaScript Scoping and Hoisting av Ben Cherry.

    30-dagarsregeln

    För mig är en del av en enklare tillvaro att äga mindre prylar och spendera mindre pengar. Det går tvärt emot min natur. När Tim Cooks står och presenterar nästa iPad eller iMac vill jag genast ha den. Omedelbums, med det samma.

    För en dryg månad sedan fick jag en välbekant känsla i magen. Mitt ha-begär väcktes när jag för första gången läste om AR.Drone – en fjärrstyrd farkost som man sköter från telefonen. Den flyger och kan filma, i HD! Hur har jag hittills överlevt utan denna pryl i min ägo?

    Men i stället för att trilla dit och lägga en beställning direkt gjorde jag en markering i kalendern en månad framåt. Jag lovade mig själv en AR.Drone om jag fortfarande kände ett begär efter 30 dagar. Idag är köpsuget borta!

    Så nästa gång pengarna bränner i fickan: tillämpa 30-dagarsregeln. Kanske känns det inte lika angeläget efter lite betänketid?

    Lars och inkorgen

    Illustration: Sanna Lund

    Det här är Lars. Lars älskar brev. Han tycker om att öppna brev, läsa brev och skicka brev.

    Lars har en inkorg där alla brev hamnar. Var femte minut tittar han i inkorgen. Kanske har han fått något nytt?

    Bland all reklam och prenumerationer hittar han då och då något av vikt.

    När han läst allt ordentligt samlar han ihop alla brev och lägger dem i inkorgen igen. Lars inkorg är sprängfull.

    Är du som Lars?

    Vissa dagar är jag det och det är dumt. Att ständigt kolla mejlen för att ”det kan ha kommit något viktigt” är både stressande och tidskrävande. Det kan också vara svårt att skilja ut vad som är viktigt.

    Det värsta är när jag öppnar e-postprogrammet, läser mejlen och sedan låter dem ligga kvar obehandlade i inkorgen. Det är ett ganska konstigt beteende. Jag går aldrig ut med ”riktiga” brev till brevlådan igen när jag läst dem.

    För att få kontroll över min inkorg har jag satt upp några enkla regler:

    • Stäng av notifikationer (ljud och meddelanden).
    • Öppna inkorgen max tre gånger om dagen.
    • Avregistrera nyhetsbrev.
    • Släng skräp.
    • Behövs en åtgärd? Om den tar mindre än fem minuter: åtgärda, svara och arkivera sedan mejltet.
    • Tar det längre tid än fem minuter? Lägg till på att göra-listan och arkivera sedan mejlet.
    • Behövs ingen åtgärd? Arkivera.
    • Sträva efter en tom inkorg.

    Med dessa regler blir jag mindre som Lars. Jag får kontroll över inkorgen och mer tid över till annat. Hur hanterar du din e-post?

    Lars and the inbox

    Illustration by: Sanna Lund

    This is Lars. He loves letters. He likes to open them, read them and send them.

    Lars has an inbox where all the letters end up. Every five minutes or so, he takes a look in the inbox. Maybe there’s something new?

    There’s a lot of spam and subscriptions, but once in a while, there’s something of importance.

    When Lars have finished reading all the letter, he puts them back in the inbox again. Lars’s inbox is filled to the brim and about to explode.

    Are you like Lars?

    Somedays, I am, and that’s no good. Checking your email inbox again and again, just in case, is stressful and takes time. It’s also hard to know what’s of real importance and not.

    The worst is when I read all the mail in the inbox and then leave it there. I never shove letters back into my letterbox once I’ve read them in the real world.

    I’ve put up some simple rules for myself to handle my electronic inbox:

    • Disable notifications (sound and vibration).
    • Try to open the inbox no more than three times a day.
    • Unsubscribe from newsletters.
    • Throw unwanted mail in the trash.
    • Do you need to act on the email? Do it right away, answer, and archive if it takes less than five minutes.
    • Will it take you longer than five minutes? Add the task to your to-do list and then archive the mail.
    • Is no action needed? Then just archive.
    • Strive for inbox zero.

    Following these rules helps me be less like Lars. I get more time to do fun stuff when I’m the boss over my inbox. How do you handle your email?

    Koppla ner och av

    Jag stänger av min mobiltelefon ibland. Det kanske låter konstigt men jag behöver göra det för att kunna koppla av fullständigt. När telefonen är på kan det när som helst ringa eller dimpa ner ett meddelande. Dessutom är mobilen kortaste vägen ut till Internet och allt vad det innebär med Twitter och annat brus. Det blir en sorts stress.

    Ibland vill jag alltså gå offline och vara onåbar. Det blir mycket lättare att ta en promenad, umgås eller bara slappa när jag vet att jag inte kan bli avbruten.

    Jag sätter alltid telefonen i flygplansläge när det är läggdags. Då blir jag inte väckt av SMS eller samtal men kan lita på att väckarklockan ringer.

    Testa själv att koppla ner och av ibland.

    Tidstjuvar och nyttoappar

    Foto: Sanna Lund

    De smarta telefonerna gör att vi ständigt är uppkopplade och alltid har något att pilla med. Vad gjorde vi egentligen för tio år sedan när vi stod och väntade på bussen och inte kunde twittra eller skjuta fåglar på grisar?

    Men telefonen är inte bara en tidstjuv. Det finns bra nyttoappar som jag sparar tid med. Här är tre av mina favoriter:

    Länsförsäkringar bank

    Nu har alla banker hoppat på apptåget. Länsförsäkringars app har räddat mig flera gånger när jag har varit på språng och behövt föra över pengar.

    Dessutom slipper man nu för tiden skriva OCR- nummer för hand. Fota bara räkningen så fixar appen resten, en riktig tidssparare!

    Kalender

    Jag använder mig av Google Kalender tillsammans med telefonens inbyggda kalender-app. På så vis kommer jag alltid åt min kalender så länge jag har tillgång till Internet.

    Kalendern påminner mig om födelsedagar, tvättider, möten och mycket mer. Den är mitt utökade minne.

    Jag får påminnelser i form av att telefonen piper, SMS eller e-post. Och min favoritfunkion: det går att dela kalendrar. Jag och Sanna har en gemensam där vi lägger tvättider och annat som berör oss båda. Dessutom ser vi varandras kalendrar.

    Remember The Milk

    Remember The Milk är i sin enklaste form en att göra-lista men kan så mycket mer. Det går att ha flera listor och dela dem med andra. Jag och Sanna har en gemensam inköpslista och den underlättar vardagen enormt.

    Så fort jag kommer på något kan jag skriva upp det i appen och Sanna ser det direkt på sin telefon. På så vis vet vi att det blir köpt, oavsett vem som går till affären. Om jag bestämmer mig för att handla efter jobbet behöver jag inte gå hem och inventera skafferiet, allt finns redan i telefonen. Det är verkligen kanon!

    Vilka är dina nyttoappar?

    Våga strypa informationsflödet

    En inte så liten ström med information pockar på min uppmärksamhet varje dag. Jag har flera nyhetskanaler som jag ser som inkorgar som måste tömmas. Det är ett under att jag får något gjort! Här kommer några exempel på inkorgar:

    • E-post
    • Tugg.nu
    • Hackernews
    • Google Reader
    • Podcasts
    • Instapaper
    • Twitter
    • SMS
    • Missade telefonsamtal
    • Facebook
    • Analog post (fysiska brev)
    • Notifikationer i telefonen
    • Fysisk inkorg hemma
    • Internetbanken

    Det finns säkert fler.

    Google Reader letar hela tiden efter nytt innehåll på mina favorit-webbplatser och -bloggar. Det är den största källan till nyheter för min del, med 50-100 nya artiklar om dagen att läsa. För att inte drunkna i informationsflödet ser jag till att ”tömma Reader” varje dag.

    Fram till för ett par veckor sedan.

    Jag är lite av en informationsknarkare och insåg att jag spenderade för mycket tid i Reader. Tid som jag skulle kunna vara kreativ på istället. Så jag tog ett svårt beslut och tog bort alla mina prenumerationer. Nu:

    • känner jag ingen stress att ”tömma Reader”
    • får jag mer tid över att skapa i stället för att konsumera

    Jag får fortfarande reda på nyheter av vänner och bekanta och ser intressanta artiklar att läsa på Twitter. Jag sparar timmar varje vecka på att inte använda Reader!

    Håller du också på att drunkna i informationsflödet? Identifiera dina inkorgar och kolla om du kan göra som jag: eliminera en. Känns det för drastiskt? Minska på flödet eller avgränsa konsumtionen till en viss dag – Facebookfredag eller Twittertisdag.

    Mindre prylar

    Jag är prylgalen! Det kan vara mobiltelefoner, radiostyrda bollar eller en våg som twittrar min vikt. Är det en pryl är chansen stor att jag vill ha den.

    Jag är väl medveten om min last och har med tiden kommit fram till att jag inte blir lyckligare av köpa fler saker. Ändå är det svårt att motstå frestelsen när det släpps en ny pryl som väcker vill-ha-begäret.

    Jag försöker så gott jag kan och har upptäckt flera fördelar med att äga mindre saker:

    • Jag får mer pengar över till sådant jag tycker är viktigare och roligare.
    • Det är lättare att hålla rent hemma.
    • Med färre prylar kan jag i stället satsa på kvalité.

    Hur gör jag då för att minimera antalet prylar? Till att börja med försöker jag minimera mina inköp. Ett smart tips är att vänta ett tag, till exempel en månad, från det att man får en köp-impuls tills att man faktiskt gör köpet. Ofta har ha-begäret släppt när det gått 30 dagar.

    Jag försöker också rensa bland befintliga prylar. Här är några tips:

    • Släng om det är trasigt eller oanvändbart.
    • Sälj på Blocket eller Tradera.
    • Skänk till välgörenhet.
    • Ge till någon du tycker om.
    • Hitta nytt liv: till exempel kan en gammal sliten t-shirt gå bra att träna i.

    För ett par veckor sedan slipade jag och Sanna upp våra knivar och några av dem har fått nytt liv i sommarstugan. Även mina gamla träningsskor är nu permanent bosatta i Sommarbo. I stället för att sälja iPaden på Blocket gav jag den till svärmor, som blev överlycklig.

    Nästa gång du har långtråkigt, passa på att rensa upp i garderober och förråd!

    Enklare på jobbet - tre boktips

    Har du någon gång kännt att det är mycket att göra på jobbet? Det känner jag ibland. För många bollar i luften, möte efter möte och en aldrig sinande ström med problem att lösa. Jag älskar mitt jobb men där, precis som hemma, finns ett behov av en enklare tillvaro. Jag strävar alltid efter att bli mer effektiv och fokusera på rätt saker.

    Här är är tre snabba boktips som gjort skillnad:

    • Rework: Hur du kan få fler saker gjorda med mindre arbete, pappersarbete och möten. Jag gillar hur boken är uppbygd av korta berättelser.
    • Getting Things Done: Typisk amerikansk bok med mycket upprepningar men som helt förändrat hur jag jobbar med mina att göra-listor.
    • Focus: Innan jag läste den här boken var jag helt säker på att jag kunde ”multi-taska” – det kan jag inte! Den digitala varianten är gratis.

    Nästa bok som ligger i att läsa-högen (om man nu kan räkna iPad som en hög) är Read This Before Our Next Meeting. Men hur många böcker jag än läser är det jag själv som måste se till att förändras och det är inte helt lätt.

    Jag ser till att fira varje litet framsteg!

    Dagens viktigaste uppgift

    Jag har märkt att mina dagar blir bättre om det första jag gör är något som är viktigt för mig. Jag väljer ut en eller ett par saker på min att göra-lista som jag vill få klart idag – och gör dem. Innan jag gör något annat!

    Det kan vara stort eller smått, roligt eller mindre roligt, arbetsrelaterat eller privat. Huvudsaken är att jag känner att jag utfört något när jag är klar.

    • gör en förstudie åt en kund som resulterar i en offert
    • gå ut och samla tankarna med en promenad
    • diska upp jättedisken från gårdagens fest

    Ibland misslyckas jag och fastnar på Twitter eller i inkorgen på morgonen. Men att läsa och svara på e-post eller kvitter är oftast inte nödvändigt, det är en osyssla. Att börja dagen med e-post kan förstöra produktiviteten en hel förmiddag. Startar jag i stället med något viktigt, och får det gjort, ger det en kick och sannolikheten är stor att jag fortsätter göra andra bra och viktiga saker.

    Jag råder dig att testa detta i morgon: välj ut något som är viktigt för dig och gör den uppgiften det första du gör på morgonen. Leo Babauta, på zenhabits, kallar det för Most Important Task.

Older Posts →