2022.03.08.

2022.02.23.

Bookmarked “Winnie Lim » this website as a learning and reflection tool“:

This website is essentially a repository of my memories, lessons I’ve learnt, insights I’ve discovered, a changelog of my previous selves. Most people build a map of things they have learnt, I am building a map of how I have come to be, in case I may get lost again. Maybe someone else interested in a similar lonely path will feel less alone with my documented footprints. Maybe that someone else would be me in the future. Maybe all of this would be interesting when I am dead, assuming I find a way to keep this site alive.

2022.01.31.

Portable thoughts is a website built using a single HTML file.

It simply uses URL #fragments and the :target CSS selector to show and hide “pages”. The result is a self-contained website, digital book, interactive document, or whatever you want to call it.

So, you have a single HTML file that contains everything and is easily navigable without any JavaScript by just showing and hiding sections via CSS. This is smart.

I don’t know what I’m going to use this idea yet, but it will be useful one day.

2022.01.30.

2021.12.22.

A deep dive into an NSO zero-click iMessage exploit: Remote Code Execution

The whole thing is fascinating, but this part just blows my mind. Very smart and really terrifying.

JBIG2 doesn’t have scripting capabilities, but when combined with a vulnerability, it does have the ability to emulate circuits of arbitrary logic gates operating on arbitrary memory. So why not just use that to build your own computer architecture and script that!? That’s exactly what this exploit does. Using over 70,000 segment commands defining logical bit operations, they define a small computer architecture with features such as registers and a full 64-bit adder and comparator which they use to search memory and perform arithmetic operations. It’s not as fast as Javascript, but it’s fundamentally computationally equivalent.

The bootstrapping operations for the sandbox escape exploit are written to run on this logic circuit and the whole thing runs in this weird, emulated environment created out of a single decompression pass through a JBIG2 stream. It’s pretty incredible, and at the same time, pretty terrifying.

2021.12.21.

My GTD contexts

I mostly use the default contexts list. It’s not a coincidence that David Allen still recommends these. Sure, you have to remix them to your liking, but you also have to define clear edges for each of them so you’ll know which one to use at which time.

Here are mine:

  • Nearcut: my day job, which is mainly development. These tasks require a different mindset, so it makes sense to group them.
  • Freelance: yet another computer context. I have a bunch of freelance projects that I do as a side job.
  • Decoding: I write a blog, record podcasts, and such. Next actions that require a deep work mindset, but not related to work, go here.
  • Computer: I can do general things (admin, web browsing etc.) at my MacBook Pro or my iPad Pro. Sometimes I have specific next actions for a specific device, but it’s rare.
  • Crafting: next actions related to keeping a Zettelkasten system maintained (kinda like my Budget context). These actions usually link to notes (and sometimes project plans, mindmaps) that I want to develop further and add it to my slipbox which I keep in Craft.
  • Budget: a helpful one when I’m doing YNAB, or I have to do something on my bank’s web app.
  • Calls: calls (and sometimes messages).
  • Home: to have something to do when I’m not at any of my computers.
  • Errands: well, errands to run.
  • Groceries: a shared groceries list with my wife.
  • Agendas: I keep people and meeting related agendas here.
  • Waiting for: Stuff I’m waiting on from people. I add the date as well to each of these reminders and review them every other day.

I also keep a list of lists that collects all of my next actions list, my Read/Review lists, my video, and audio-related lists as well (Apple TV, Netflix, Prime Video, Podcasts). Why do I have this? Because I want to keep track of which list is for what, so I keep clean edges in my system (and easily create posts like this).

2021.05.05.

Donald Trump’s ‘social media platform’ has launched and it’s just a blog

The new “platform” is styled like a generic version of Twitter but hosted as a running blog of commentary from Trump. People can sign up for post alerts on the platform through their email and phone numbers and are allegedly able to like them, although that function doesn’t appear to work as of publication. Users are also allowed to share Trump’s posts on Facebook and Twitter. The Twitter sharing option doesn’t currently work, but Facebook’s does allow people to share Trump’s posts.

I don’t like Trump, but the good thing is that everybody can have a blog.

2021.04.20.

Snapdrop is a great tool to have on your tool belt when you want to “airdrop” something to non-Apple platforms. It is P2P, so your files won’t be sent to a server.

2021.04.06.

Is Reminders App Linkable?

I just want to share a script which syncs due reminders to the Calendar app and it also links back to the original reminder. So it contains a way to link to specific reminders.

This undocumented x-apple-reminderkit://REMCDReminder/${UUID} URL scheme works on the latest version of iOS and macOS. The ${UUID} part can be found via AppleScript.

The only problem remaining for Hook right now that there no scripting API that I’m aware of to get the currently selected reminder.

Linking from real life objects via QR codes

I’m using paper based material in my GTD system too, linking to that is really hard.

  1. Hook could generate a QR code to any link, so I can print and attach it to paper based folders for example.
  2. Later Hook could scan QR codes by the Mac’s camera and bring up OmniFocus projects, Pages files, whatever we need.

Maybe it sounds dumb and not something I consider high priority, but I wanted to leave the idea here for consideration.

2021.02.25.

Remote work is not local work at a distance

Jason Fried wrote a post about doing remote work, with the expectations of local employment. This post resonated with me very well since I had a couple of weird interviews lately. Just a side note: yes, I quit my current job as a Ruby backend developer at TerraCycle about three weeks ago, and I’ll start working as a frontend developer/product designer at Nearcut on March 10th.

There are still companies that refuse to accept that remote work is a viable alternative. They want you to be in the office because “this is what we did before the pandemic, and everything should be back to normal soon.” No, nothing will be like before, and companies should embrace that, not deny it.

Not everyone’s like that. Even big ones consider remote work a viable alternative but don’t have the hiring process and experience to work like that, so they’re relying on old habits.

The enlightened companies coming out of this pandemic will be the ones that figured out the right way to work remotely. They’ll have stopped trying to make remote look like local. They’ll have discovered that remote work means more autonomy, more trust, more uninterrupted stretches of time, smaller teams, more independent, concurrent work (and less dependent, sequenced work).

I’m interested in what COVID-19 will do to remote work because, seriously considering remote work is one of the positive changes of the pandemic that happened in many workplaces. People were forced to work from home. Many companies figured out how to do this successfully, and they don’t want to throw out this knowledge because “everything will be back to normal.”


Jason also writes about native platforms:

Porting things between platforms is common, especially when the new thing is truly brand new (or trying to gain traction). As the Mac gained steam in the late 80s and early 90s, and Windows 3 came out in 1990, a large numbers of Windows/PC developers began to port their software to the Mac. They didn’t write Mac software, they ported Windows software. And you could tell – it was pretty shit. It was nice to have at a time when the Mac wasn’t widely developed, but, it was clearly ported.

When something’s ported, it’s obvious. Obviously not right.

Stuff that’s ported lacks the native sensibilities of the receiving platform. It doesn’t celebrate the advantages, it only meets the lowest possible bar. Everyone knows it. Sometimes we’re simply glad to have it because it’s either that or nothing, but there’s rarely a ringing endorsement of something that’s so obviously moved from A to B without consideration for what makes B, B.

Maybe Basecamp should create a Catalyst version of HEY for Mac from their iOS app, which is quite nice, instead of having a cross-platform Electron thing on the desktop called a “native Mac app.”

2021.02.23.

HEY for World

HEY for World can be an excellent idea for those who don’t want to be bothered to set up a blog.

When I write a certain kind of email — aka a blog post — why do I have to address it to someone? Why can’t I just address my thoughts to the world? Direct to the web for anyone and everyone? Rather than define the recipients, I just write and let the recipients find me.

Although we had this before and it failed miserably.

2021.02.13.

There is a topic on DEVONthink forums about how people use the app’s rating feature. I shared how and why I rate my food log in DEVONthink.

I have occasional bowel (IBD) problems, so I have to keep temporary food logs when I have flares. Logging what I ate is one thing, but getting health trends out of that log is where I use ratings on my food log entries.

This way, I can export the stuff I collected in DT and create graphs of how well I’m eating via Numbers or using the Shortcut integration in DTTG and Charty to create a widget of daily rating averages.

2021.01.31.

2020.10.30.

2020.09.23.

2020.09.01.

How to Write a Git Commit Message

Ha fejlesztő vagy, akkor az alábbi oldalt tedd el a bookmarkjaid közé és kezdd el alkalmazni az itt tanácsolt dolgokat:

If you haven’t given much thought to what makes a great Git commit message, it may be the case that you haven’t spent much time using git log and related tools. There is a vicious cycle here: because the commit history is unstructured and inconsistent, one doesn’t spend much time using or taking care of it. And because it doesn’t get used or taken care of, it remains unstructured and inconsistent.

Madarat tolláról, fejlesztőt git history-járól.

A clean start for the web

Egy írás arról, hogy miért egy lassú szemét ma a weblapok nagy része.

When I read blog posts from ‘traditional web developers’ who are mad that HTML & CSS aren’t enough anymore and that everything is complicated – I think this is largely that the application stack for building websites has replaced the document stack in a lot of places. Where we would use Jekyll or server-side rendering, we now use React or Vue.js. There are advantages to that, but for a lot of minimally-interactive websites, it’s throwing away decades worth of knowledge in exchange for certain performance perks that might not even matter.

Azon kellene némelyik JavaScript junkie-nak elgondolkodnia, hogy nem a technológiát választjuk előbb, hanem a célhoz választunk technológiát. A React és a Vue.js nagyszerű cuccok, de az esetek 90%-ban teljesen feleslegesek. Egy fejlesztőnek nem egy technológiába kellene belesűríteni mindent, hanem kiterjedt eszközkészlettel rendelkezve kiválasztani az adott megoldáshoz a megfelelőt, függetlenül attól, hogy trendi vagy nem.

2020.08.20.

TextSniper

Szuper gyors OCR/screenshot app:

TextSniper is a super useful app to quickly capture unselectable text. Use it to capture and recognize text from presentations, trainings, screencasts,images, pictures, webpages, video tutorials, photos, PDFs etc. Literally from anywhere on your mac’s screen. TextSniper makes it super easy with a single keyboard shortcut convert text from screenshot into editable text. Incredibly fast and useful app.

Én a Prizmót használom erre, de az egy drágább cucc. Akinek gyors és olcsóbb megoldás kell, annak a TextSniper hasznos lesz.

2020.08.06.

Broot

Ritkán van ilyen (talán a tmux és vim esetében éreztem ezt eddig), de a Broot nevű Terminal alapú tree replacement nálam changes everything. Ha egyszerűen kellene összefoglalni, akkor a fájlböngészés vimje. Elképesztően gyorsan tud vele az ember egy nagy mapparendszert átfésülni és manipulálni, úgyhogy meg fogom próbálni beépíteni a mindennapjaimba.

2020.08.03.

2020.07.30.

Az idei Mac Catalyst

A MacStories összeszedte azokat információkat amiket a Mac Catalyst 2.0-ról tudunk:

WWDC 2020 was different. Apple introduced what was effectively Mac Catalyst 2.0 with its Optimized for Mac initiative, a separate Mac Catalyst path that follows Mac conventions more closely but requires more work. The company also built Messages and Maps, two of its flagship apps, using Mac Catalyst, demonstrating a deeper commitment to the technology than ever before. The result is a brighter future for Mac Catalyst that clearly has a role to play alongside SwiftUI and Apple’s other frameworks.

A lényeg nagyjából az, hogy idén kapott egy új opciót minden iPad alkalmazás arra, hogy tényleges natív macOS UI-t használjon a 77%-os skálázás nélkül. Így a Maps és a Messages, mint két nagy rendszeralkalmazás, tökéletes példája lesz az új Catalyst API-k tudásának.

Sajnos a Mapsből eltűnt közben a letéphető popover funkció, a Messagesből pedig az AppleScript támogatás, ami az előző AppKit alapú, iChatből lefaragott kliens még tartalmazott. Nem tudom mennyire van ilyen funkciókra manapság igény, viszont visszanézve azt a rendszerintegrációt, amit annakidején az iChat tudott, sajnos a Messages közelében sincs jelenleg ennek – igaz az app is kevesebbet tud.

Nem szeretném, ha az új többplatformos, natív alkalmazásokból eltűnnének azok a Mac-only apróságok, amik 2006 végén az Apple platformokra csábítottak.

2020.07.07.

A Sandwich Video úgy néz ki tudott adaptálódni a COVID-19 helyzethez úgy, hogy korábban a remote munkát említve nevettek volna. Kíváncsi vagyok hosszútávon hasonló helyzetben lévő cégek hogyan fognak nyerni vagy veszíteni ezzel a járvánnyal.

Shrugs.app

Miután az új csapatban Slacket használunk kommunikációra, így megint felmerült a hivatalos Electronos kliens, amit nem vagyok hajlandó használni – akkor inkább megnyitom Safariban. Szerencsére most jött velem szembe a Shrugs app, ami egy egész pofás natív Slack kliens Macre.

Ezt a screenshotot pedig csak itt hagyom a poszt végén.

Screen Shot 2020 07 07 at 10 08 23

2020.06.26.