pawelgrzybek.com

https://pawelgrzybek.com/

Hi, I’m Paweł, a software developer from Poland, now living in Northampton, UK. I do stuff on the web, write about it, and listen to funky and jazz records after hours.

フィード

記事のアイキャッチ画像
From Logitech MX Master 3S to Apple Magic Trackpad — my honest review (of the AI hype)
pawelgrzybek.com
If you’re here to read my review of the Apple Magic Trackpad, you can skip the AI rant and scroll down to the brief review. Otherwise, enjoy my AI rumblings.Logitech MX Master S3 for Mac is a great mouse. It is a good-looking product, built like a tank, very customisable, and has this fancy electromagnetic scrolling wheel. I liked it a lot until the recent Logi Options+ software update to version 1.70 that introduced the Logi AI Prompt Builder.Some people need AI Smart Cooking technology to get a perfect bowl of rice, but I am OK with a cheap IKEA pot with a lid. Some need 3D teeth tracking with AI to preserve good oral hygiene, but I am happy with my dumb brush. I absolutely don’t need any ChatGPT-driven features built into my mouse. Naively, I thought I would turn off this feature and carry on. So naive I was!Turning off the Logi Options+’s AI capabilities takes work. It requires digging into the Application Support dungeon of files. Additionally, the new version of this software cre
14時間前
記事のアイキャッチ画像
Top picks — 2024 April
pawelgrzybek.com
End of April, folks! It’s time for a regular drop of the most exciting resources I found around the Web in the past month. Some accessibility resources for frontend devs out there, a great list of tips for git ninjas, an introduction to CSS Container Queries, an exciting move in the JS runtimes world, new exciting proposals to ECMAScript, and more. Enjoy!How screen readers read special characters: an updateThis article is handy for checking how screen readers handle particular symbols. It’s also a helpful indicator when we must provide additional information for assistive technology users. A golden rule of thumb also applies here: keep it simple.So You Think You Know Git - FOSDEM 2024Scott Chacon’s talk from FOSDEM 2024 about Git Tips and Tricks has tons of great stuff about things we don’t use every day. Part two of this talk, with some extras, is also available.An Interactive Guide to CSS Container QueriesI love Ahmad’s interactive guides. This one, in particular, is full of good exa
10日前
記事のアイキャッチ画像
Five things I like/dislike #9
pawelgrzybek.com
It’s been a while since I posted a like/dislike kind of post. I accumulated a bunch of things I wanted to share in Apple Reminders. The fact that I accumulated a lot more things that I like than the ones I am not a fan of makes me feel optimistic. Let’s go!LikedKintsugiLindt EXCELLENCE Dark Sea Salt BarThe Fastest Maze-Solving Competition On EarthThe year Twitter died: a special series from The VergeJeff Bezos: Amazon and Blue Origin | Lex Fridman Podcast #405DislikedLe Creuset Casseroles prices. They are quality though!DeelEventbrite Marketing Tools are so buggy! The rest of the app is good.AI prompt builder in Logitech softwareWhen an online service makes unsubscribe harder than subscribing.
16日前
記事のアイキャッチ画像
Promise.try to improve error handling and sync/async interoperability
pawelgrzybek.com
A few months ago, I published “Deferred JavaScript promises using Promise.withResolvers”, which explains a modern way of dealing with one of the cumbersome chores as old as the Promises in JavaScript. Following the trend of adding to the specifications features that simplify our programs, today is about the upcoming Promise.try, which is quickly progressing through the ECMAScript proposals stages.Assuming we have two functions, one that returns a promise and another one that synchronously returns a value, we can mix and match them like so:const retSync = () => "sync return";const retAsync = () => new Promise((r) => r("async return"));(async () => retAsync() .then(console.log) .then(retSync) .then(console.log) .catch(console.error))();// async return// sync returnLet’s flip the order and put a synchronous function first.// 🚨 this is not going to workconst retSync = () => "sync return";const retAsync = () => new Promise((r) => r("async return"));(async () => retSync() .then(console.log)...
1ヶ月前
記事のアイキャッチ画像
Light/dark mode simplified by the CSS light-dark() function
pawelgrzybek.com
Most modern operating systems let us control the preferred color theme. The Appearance tab of macOS System Settings, for example, gives us three options: “light”, “dark” and “system”, which flips between themes according to the Night Shift schedule.Luckily for us web developers, we can adjust the look of our sites based on this configuration. Let’s examine how we have been doing that for the past few years and how we can simplify it by using the light-dark() function that is part of the CSS Color Module Level 5 specification.:root { color-scheme: light dark; --color-fg: #292524; --color-bg: #f5f5f4;}@media (prefers-color-scheme: dark) { :root { --color-bg: #292524; --color-fg: #f5f5f4; }}body { color: var(--color-fg); background-color: var(--color-bg);}That’s how we have been doing it for the past few years, and this method is precisely how it is implemented on this website at the time of publishing this article. Pretty repetitive, right? Let’s refactor that to use the light-dark()func
1ヶ月前
記事のアイキャッチ画像
Top picks — 2024 March
pawelgrzybek.com
Hey folks, it’s the end of March already—shocking! It was a busy month in the web ecosystem, and many significant things happened. Read on to find out a bit more behind-the-curtain secrets about the CSS-Tricks acquisition, details about the new JavaScript Registry, incredible production by Heneybot about the inception of Node.js, and a lot more. Brew a coffee and enjoy your Easter reading list!Where I’m at on the whole CSS-Tricks thingChris dropped the bomb and revealed a detailed back story about the CSS-Tricks acquisition and how he attempted to get it back. Since Digital Ocean took ownership of this website, it is dead to me. The only reason why I still visit CSS-Tricks every now and then is the legendary Flexbox guide.Introducing JSR - the JavaScript RegistryThe Deno team just announced a superset of npm with support for TypeScript. Automatically generated docs based on the type’s definitions, ESM only, cross-runtime, and fast and easy to use are only a few features of JSR. I like
1ヶ月前
記事のアイキャッチ画像
I am joining Avant Arte
pawelgrzybek.com
Things do happen for a reason. Losing a job in November last year, as frustrating as it was at first, gave me an incredible opportunity to spend really quality time with my newborn daughter. In the meantime, I also learned a ton, published a few solid blog posts, and organized a meet-up. My unemployment took a while, but I have very exciting news to share.I am joining Avant Arte. Initially inspired by rap lyrics and hip-hop album covers blog, it organically grew to the biggest community and marketplace for contemporary art lovers. This place felt like home from my initial chat with the company members. Despite being one of the hardest I have ever done, the multi-stage technical part of the interview felt relaxed and was more like an actual problem-solving session with friends. Meeting Mazdak Sanii, the CEO, exchanging back stories and sharing our beliefs made me feel confident that it is where I want to be.There are very few things I hate more than job hunting. It is time-consuming and
1ヶ月前
記事のアイキャッチ画像
Sorting and filtering in Helix
pawelgrzybek.com
I recently posted a quick tip about sorting in Helix that quickly became the second most popular subreddit post ever. This is a good indicator of two things: people found it helpful, and it should be a blog post. So here it is!Helix comes with a built-in :sort command mentioned on the website, but its functionality isn’t well documented. It works on multiple selections and is as powerful as your multi-selection game. Another way of placing stuff in order is by piping a selection to the sort CLI program. Similarly, we can pipe a selection to whatever CLI you want. We can go crazy that way! Let’s have a look at a few examples.Sort multiple lines (:sort command)The simplest form of using :sort command is sorting multiple lines.link to the video instead.% - Select everythingAlt-s - Split lines into individual selections:sort - Sort commandSort complex selection (:sort command)Even though it looks a bit more complicated, the same method can be used on more complex selections as long as they
2ヶ月前
記事のアイキャッチ画像
Node.js added utility for text formatting — you may not need chalk anymore
pawelgrzybek.com
Node.js 21.7.0 comes with a new text formatting utility. It is simple to use but powerful because modifiers can be combined. You may not need chalk anymore. Let’s have a look at how it works.import { styleText } from "node:util";const exampleRed = styleText("red", "I am red!");const exampleBlue = styleText("blue", "I am blue!");const exampleBlueBold = styleText("bold", exampleBlue);console.log(exampleRed);console.log(exampleBlue);console.log(exampleBlueBold);Nice, right? Here is a handy list of all the available modifiers divided into general, foreground and background colours.modifiers: reset, bold, italic, underline, strikethrough, hidden, dim, overlined, blink, inverse, doubleunderline and framedforeground: black, red, green, yellow, blue, magenta, cyan, white, gray, redBright, greenBright, yellowBright, blueBright, magentaBright, cyanBright and whiteBrightbackground: bgBlack, bgRed, bgGreen, bgYellow, bgBlue, bgMagenta, bgCyan, bgWhite, bgGray, bgRedBright, bgGreenBright, bgYellowB
2ヶ月前
記事のアイキャッチ画像
I am organising a meetup - Northamptonshire Dev Club
pawelgrzybek.com
Northampton is a lovely town in central England between London and Birmingham. It has a rich culture, great art, a good music scene, and plenty of tech firms. Since relocating to Northampton 12 years ago, I’ve felt the absence of a space for developers and people into tech to hang out, socialise, and share knowledge. I’ve never done this before and don’t really know what I am doing, but let’s go! I’m organising a meetup in the hope of change 🙈Northamptonshire Dev Club logo. NN1 is a postcode prefix for the Northampton town centre area. Would you like to see that on your t-shirt or hoodie? 😉Northamptonshire Dev ClubThe idea behind Northamptonshire Dev Club is to bring local like-minded geeks together to socialise and learn from each other. It is deliberately technology, language or framework agnostic to attract more people and broaden our horizons. Whether you’re part of an engineering or design team, a product manager, or a tester, you should find something for you.If you need more o...
2ヶ月前