> Markdown version of [/magazine/394-dev-digest-106-dhh-in-hd](https://www.wearedevelopers.com/magazine/394-dev-digest-106-dhh-in-hd). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Dev Digest 106 - DHH in HD **Published:** March 11, 2024 Alright, first things first: we have an exclusive interview with **David Heinemeier Hansson** of Ruby on Rails and Hey fame for you all, so you can line that one up in another tab! https://www.youtube.com/embed/bvNonifIKRg WeAreDevelopers CPO Thomas Pamminger met with **David Heinemeier Hansson, Co-Founder and CTO at 37signals and creator of Ruby on Rails** to talk about EU regulations, big tech and the state of the web. [**Check out the video (1h 13m)**](https://youtu.be/bvNonifIKRg?utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl) ## News and Articles The 29th of February was not only great because we went to Amsterdam to run a CODE100 session, but also because it happens every four years. This, like anything time and date related, can be a massive headache for software development and people have discussed their [leap year bugs on Hacker News](https://news.ycombinator.com/item?id=39554539&utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl). **Gergely Orosz** has [collected stories of some things that went wrong](https://blog.pragmaticengineer.com/happy-leap-day/?utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl), including a huge Swedish supermarket chain not being able to take payments on the day. ![An angry penguin holding up the number 4](https://wearedevelopers.imgix.net/public/magazine/articles/394/images/65eb1385ad6ee3bd0311cb67__d9de8f91-ee07-4917-a4bc-0374106d05a0.jpeg?w=720&fit=max&dpr=2&auto=format) [Linux on the Desktop passes 4% market share](https://arstechnica.com/gadgets/2024/03/linux-continues-growing-market-share-reaches-4-of-desktops/?utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl) for the first time in decades! It's been a running joke for a while, but it makes you wonder that if other desktop operating systens become more and more advertisement and service focused that people will start embracing the penguin more. Small steps. Google [launched a $5m prize to find actual uses for quantum computing](https://www.newscientist.com/article/2420137-google-launches-5m-prize-to-find-actual-uses-for-quantum-computers/?utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl) and it feels kind of good that even they don't know. Coinciding the release of Dune 2, there's [reports of worms](https://www.wired.com/story/here-come-the-ai-worms/?utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl) that spread through generative, [AI powered mails](https://www.theverge.com/2024/3/1/24087796/ai-worms-can-spread-through-generative-ai-powered-emails?utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl) - sometimes, well, no, never is pure automation without supervision a good idea.. In good news, the [web is getting a Storage Bucket API and lots of new Set methods](https://web.dev/blog/web-platform-02-2024?utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl). Sets now are not only really handy to remove duplicates from Arrays, but you get the following methods: - [`difference`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Set/difference) - [`intersection`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Set/intersection) - [`isDisjointFrom`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Set/isDisjointFrom) - [`isSubsetOf`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Set/isSubsetOf) - [`isSuperSetOf`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Set/isSuperSetOf) - [`symetricDifference`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Set/symmetricDifference) - [`union`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Set/union) [Filing bugs in browsers has effects](https://nolanlawson.com/2024/03/03/bugs-ive-filed-on-browsers/?utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl) as Nolan Lawson puts it: > I think filing bugs on browsers is one of the most useful things a web developer can do. I worked with Nolan on Microsoft Edge and before that on Firefox and I can safely say that you all should not hold back filing bugs and asking for enhancements. Browser teams are smaller than you thing and outside demands and supports helps them get time and budget to make things better. [The is-number package has 59m weekly downloads](https://shubhamjain.co/2024/02/29/why-is-number-package-have-59m-downloads/?utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl) and the reasons are several, but the most important to remember is how NPM counts downloads: > ‍ > npm’s download stats are naïve by design: they are simply a count of the number of HTTP 200 responses we served that were tarball files, i.e. packages. This means the number **includes** : - automated build servers - downloads by mirrors - robots that download every package for analysis This makes me feel a tad better, as it's source code is nothing people should need to download all the time: `module.exports = function(num) { if (typeof num === 'number') { return num - num === 0; } if (typeof num === 'string' && num.trim() !== '') { return Number.isFinite ? Number.isFinite(+num) : isFinite(+num); } return false;};` And speaking of NPM, there is a new kid on the block when it comes to JavaScript package managers called JSR and [**David Bushell**](https://dbushell.com/)gave it a whirl to [report if it is up to the task](https://dbushell.com/2024/02/16/jsr-first-impression/?utm_source=hs_email&utm_medium=email). ## Code and Tools [Daytona](https://daytona.io/?utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl), the coding platform used in CODE100 - [is now open source](https://www.daytona.io/dotfiles/daytona-goes-open-source?utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl)! We use Daytona and here is a video showing the [setup for challengers at CODE100 (2m)](https://youtu.be/_hHqdv0eIqA?utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl) in live competitions: https://www.youtube.com/embed/_hHqdv0eIqA If you use Firefox as your browser, you might know about the [reader view which shows a much simpler version of the page](https://support.mozilla.org/en-US/kb/firefox-reader-view-clutter-free-web-pages#:~:text=1%20If%20a%20page%20is%20available%20in%20Reader,the%20page%20is%20in%20Reader%20View.%20See%20More). Microsoft Edge also has something similar called immersive reader. But Mozilla went one step further and released the code: [Mozilla's readability.js](https://github.com/mozilla/readability?utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl) is the library that powers Firefox's reader view. Do you have the need to have people use a computer but all they have is access to a browser on another computer? [Puter](https://github.com/HeyPuter/puter?tab=readme-ov-file&utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl) is an OS and desktop environment in the browser! [ ![Puter in action - a full OS n the browser.](https://wearedevelopers.imgix.net/public/magazine/articles/394/images/65eb2c492e887dcd3dc1e8f1_puter.jpg?w=720&fit=max&dpr=2&auto=format) ](https://github.com/HeyPuter/puter?tab=readme-ov-file) Browser automation is nothing new. Selenium, Puppeteer, Playwright and many others allow you to write scripts to make browsers do things - even in a headless, invisible fashion. For non-techies writing these scripts can be daunting, and that's where [BrowserCat](https://www.browsercat.com/?utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl) comes in to make automation a lot easier. And in bonkers news, Google's Gemini can [generate automation scripts from a screen capture](https://twitter.com/DynamicWebPaige/status/1760537379369304309?utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl). > 🤯 Mind officially blown: > > I recorded a screen capture of a task (looking for an apartment on Zillow). Gemini was able to generate Selenium code to replicate that task, and described everything I did step-by-step. > > It even caught that my threshold was set to $3K, even though I… [pic.twitter.com/IU7kvnYHlt](https://t.co/IU7kvnYHlt) > > — 👩‍💻 Paige Bailey (@DynamicWebPaige) [February 22, 2024](https://twitter.com/DynamicWebPaige/status/1760537379369304309?ref_src=twsrc%5Etfw) ### CODE100 puzzle: Stars in their Eyes ![](https://wearedevelopers.imgix.net/public/magazine/articles/394/images/65e1f4fb023234ff39883dd7_stars.png?w=720&fit=max&dpr=2&auto=format) ‍ On 29/02 CODE100 came to Amsterdam and this was the final challenge. Challengers got the [README](https://devrel.wearedevelopers.com/code100-puzzles/017-stars/?utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl) and the [dataset](https://devrel.wearedevelopers.com/code100-puzzles/017-stars/stars.json?utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl). and [here's how to solve it](https://puzzles.code100.dev/puzzles/stars-in-their-eyes/?utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl)! The trick is not to get distracted by the green but focus on the black instead. ![](https://wearedevelopers.imgix.net/public/magazine/articles/394/images/65eb2a8087012031c4ec047a_startocircle.gif) ## Videos and talks **VS Code** now [allows you to publish your local app as a public URL (36s)](https://www.youtube.com/watch?v=NMc88bMN2Bw&utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl). https://www.youtube.com/embed/NMc88bMN2Bw And some more talks to check out from [the WeAreDevelopers talk archive](https://www.wearedevelopers.com/en/videos?utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl)are:[](https://www.wearedevelopers.com/en/videos?utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl) - **Paloma Oliveira** & **Timna Aversa** [PyLadies Berlin Interview (19m)](/videos/837-community-interview-pyladies-berlin) - **Cathrin Möller** - [The Illusion of a Performant Web Application (30m)](/videos/817-the-illusion-of-a-performant-web-application) - **Paul Graham** - [Accelerating Python on GPUs (1h)](/videos/859-accelerating-python-on-gpus) ## Work and Jobs In the Work world, there is the question [why job interviews became such a nightmare](https://www.wired.com/story/why-tech-job-interviews-became-such-a-nightmare/?utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl), proof that [improving developer experience drives profitability](https://thenewstack.io/improving-developer-experience-drives-profitability/?utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl) and the story of an engineer leaving a big job because he prefers [excellence over expediency](https://corecursive.com/leaving-linkedin-with-chris-krycho/?utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl). And we found a [job ad with a red flag in every sentence](https://mastodon.nz/@timClicks/111990885464276188?utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl). ![](https://wearedevelopers.imgix.net/public/magazine/articles/394/images/65eb2e0f3c55503c032a117e_70ce9a05c5554203.png?w=720&fit=max&dpr=2&auto=format) _Don't be that company, talk to us!_ ## Procrastination Corner / Wonderful Weird Web - Want to spice up your morning routine? [Doom runs on a toothbrush](https://www.404media.co/watch-this-guy-play-doom-on-a-toothbrush/?utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl). - [Unflip Game](https://unflipgame.com/?utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz--dfBQiSgJxl4Sig6M7Mq2UnTt3_K71vH_nb8eFeOy9kLtFbkqbO4PHkw9dM0_jzL-3z0Bl) - select with your mouse to invert squares And that's it for this week! See you next Monday - or this Friday in your inbox. ## Related Articles - [Dev Digest 109 -Egg-citing things…](https://www.wearedevelopers.com/magazine/408-dev-digest-109-egg-citing-things) - [Dev Digest 113 - Debugging above the cloud](https://www.wearedevelopers.com/magazine/422-dev-digest-113-debugging-above-the-cloud) - [Dev Digest 123 - Easy as A, B, C1](https://www.wearedevelopers.com/magazine/459-dev-digest-123-easy-as-a-b-c1) - [Dev Digest 105 - Security First](https://www.wearedevelopers.com/magazine/393-dev-digest-105-security-first) ## Related Videos - [Dev Digest End of Year Recap](https://www.wearedevelopers.com/videos/1284-dev-digest-end-of-year-recap) - [WeAreDevelopers LIVE - CODE100 at WeAreDevelopers Europe](https://www.wearedevelopers.com/videos/2132-wearedevelopers-live-code100-at-wearedevelopers-europe) - [WeAreDevelopers LIVE – Keeping Up with Styles, Data & More](https://www.wearedevelopers.com/videos/1803-wearedevelopers-live-keeping-up-with-styles-data-more) - [New Browser APIs, End of React Create App, Smuggling Data in Emoji and more with Rowdy Rabouw](https://www.wearedevelopers.com/videos/1299-new-browser-apis-end-of-react-create-app-smuggling-data-in-emoji-and-more-with-rowdy-rabouw) ## Related Jobs - [Senior Software Engineer](https://www.wearedevelopers.com/jobs/ext/15942-senior-software-engineer) at **GitHub** - [Remote Senior Full-Stack Engineer](https://www.wearedevelopers.com/jobs/ext/679408-remote-senior-full-stack-engineer) at **Edge Impulse** - [Remote Senior Full-Stack Engineer](https://www.wearedevelopers.com/jobs/ext/644637-remote-senior-full-stack-engineer) at **Edge Impulse** - [Remote Senior Full-Stack Engineer](https://www.wearedevelopers.com/jobs/ext/646086-remote-senior-full-stack-engineer) at **Edge Impulse** - [Remote Senior Full-Stack Engineer](https://www.wearedevelopers.com/jobs/ext/639235-remote-senior-full-stack-engineer) at **Edge Impulse** - [Remote Senior Full-Stack Engineer](https://www.wearedevelopers.com/jobs/ext/356601-remote-senior-full-stack-engineer) at **Edge Impulse**