> Markdown version of [/magazine/482-dev-digest-136-no-js-on-of-mine](https://www.wearedevelopers.com/magazine/482-dev-digest-136-no-js-on-of-mine). 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 136 - No JS(on) of mine **By:** [Chris Heilmann](https://www.wearedevelopers.com/@chris-heilmann) **Published:** October 7, 2024 ## News and Articles **Douglas Crockford** is our featured video, so let's talk about [evolving JavaScript](https://softwareengineeringdaily.com/2024/08/21/evolving-javascript-with-douglas-crockford/?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) and all things JSON. [Judicious JSON](https://socket.dev/blog/judicious-json?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) explains all the weird things in it, you can learn why [it can be incredibly slow](https://medium.com/data-science-community-srm/json-is-incredibly-slow-heres-what-s-faster-ca35d5aaf9e8?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4), people wonder [what even is a JSON number,](https://blog.trl.sn/blog/what-is-a-json-number/?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) why [JSON.parse corrupts large numbers](https://jsoneditoronline.org/indepth/parse/why-does-json-parse-corrupt-large-numbers/?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) and others even call [parsing JSON a minefield](https://seriot.ch/projects/parsing_json.html?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4). The[80/20 Guide to JSON.stringify](https://thecodebarbarian.com/the-80-20-guide-to-json-stringify-in-javascript.html?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) has some gems like the _toJSON_ method. There are some interesting new JavaScript proposals, like [Decimal](https://github.com/tc39/proposal-decimal/?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) and the [Safe Assignment Operator](https://github.com/arthurfiorette/proposal-safe-assignment-operator?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4). And, did you know you can [Compile and run C in JavaScript](https://bun.sh/blog/compile-and-run-c-in-js?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4)? There's a new(ish) tutorial [how to create an npm package](https://www.totaltypescript.com/how-to-create-an-npm-package?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) but also insight how much of a mess NPM has become in the [the great npm garbage patch](https://blog.phylum.io/the-great-npm-garbage-patch/?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4). And, lastly, is it time for [Oracle to free JavaScript](https://javascript.tm/?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4)? ## Quick Trick ![JSON stringify examples](https://wearedevelopers.imgix.net/public/magazine/articles/482/images/66ffad2afcec76820b4aab50_stringify.jpeg?w=720&fit=max&dpr=2&auto=format) You probably used JSON.stringify() dozens of times, but did you know you can control the string it generates and even filter the output? [Learn more here](https://devrel.wearedevelopers.com/quicktricks/JSON-stringify/?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4). ## Code and Tools Talking about JavaScript, Generators are a thing that I have a hard time getting my head around. [Generators explained on a senior-level](https://www.reactsquad.io/blog/understanding-generators-in-javascript?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) helped a lot and I learned that you can [use Generators to visualize algorithms](https://www.covicale.com/blog/using-javascript-generators-to-visualize-algorithms?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4). I also learned a lot about [destructuring in JavaScript](https://piccalil.li/blog/a-guide-to-destructuring-in-javascript/?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4), [Bitwise Operators](https://8hob.io/posts/bitwise-operations-when-use-them/?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) and how to create [cleaner promises with safe-await](https://alexjpate.com/posts/cleaner-promises-with-safe-await?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4). There is also a really [strange syntax to get an Array element’s type](https://www.totaltypescript.com/get-the-type-of-an-array-element?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) that was new to me. You can [use Sets to generate unique random numbers](https://www.smashingmagazine.com/2024/08/generating-unique-random-numbers-javascript-using-sets/?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) and [encoding and decoding URLs in JavaScript](https://frontendmasters.com/blog/encoding-and-decoding-urls-in-javascript/?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) is trickier than you may think. Beaconing is a thing I also didn't know much about and [fetchLater()](https://nicj.net/beaconing-in-practice-fetchlater/?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) is how it works. There is an interesting [benchmark comparing JavaScript minifiers](https://github.com/privatenumber/minification-benchmarks?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4). If you just want to back to playing with JavaScript, [how to Build a Tic-Tac-Toe Game](https://webdesign.tutsplus.com/tic-tac-toe-game-with-vanilla-javascript--cms-108863t?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) is fun. **Lots of JSON tools for you:** - [JSON Resume](https://jsonresume.org/?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) - create your resume to be parsed and re-used - [JSON generator](https://www.jsongenerator.io/?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) - [JSONata](https://jsonata.org/?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) - JSON query and transformation language - [JSON Canvas](https://jsoncanvas.org/?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) - An open file format for infinite canvas data - [JsonTree.js](https://github.com/williamtroup/JsonTree.js?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4)- customisable tree views to visualise JSON data. - [jd](https://github.com/josephburnett/jd?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) - a CLI tool and Go library for diffing and patching JSON - [gron](https://github.com/tomnomnom/gron?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) - Make JSON greppable - [URL to JSON](https://urltojson.com/?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) - converts web pages to JSON data - [JSON lines data format](https://jsonlines.org/?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) - like CSV, but in JSON - [Paste JSON as Code](https://marketplace.visualstudio.com/items?itemName=quicktype.quicktype&utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) a VSCode extension that does just that - [json-viewer](https://viewer.textea.io/?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) - another tool to display JSON - [lossless-json](https://github.com/josdejong/lossless-json?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) - parse JSON without risk of losing numeric information ## Cool code demos ![random visualisation](https://wearedevelopers.imgix.net/public/magazine/articles/482/images/66ffad2a12bb5e58275867cb_random.gif) _random() distribution visualizer_ [ ![flocking birds animation](https://wearedevelopers.imgix.net/public/magazine/articles/482/images/66ffad2ae543f599d4e62fcd_flock.png?w=720&fit=max&dpr=2&auto=format) ](http://Flocking%20Birds) _Flocking Birds_ ## Talks and Videos ![Douglas Crockford JSON and beyond](https://wearedevelopers.imgix.net/public/magazine/articles/482/images/66ffad2a1ee348f4ff44b736_Douglas-Crockford.png?w=720&fit=max&dpr=2&auto=format) This is the true story of where JSON came from, how it became what it is, and what comes next. [Check out what Douglas has to say](/videos/968-json-and-beyond). Also, [learn more on the magazine](/magazine/481-douglas-crockford-json-and-beyond). **Other videos and talk write-ups of note:** - [Behind The Scenes: The Making of VS Code](https://www.youtube.com/watch?v=BDU63r4bS9Q&utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) - **Christian Woerz** - [The Eventloop in JavaScript - How does it work? (30m)](/videos/1211-the-eventloop-in-javascript-how-does-it-work) - **Eileen Fürstenau** - [Next.js Unleashed: Optimizing Web Vitals (27m)](/videos/973-next-js-unleashed-optimizing-web-vitals-for-superior-user-experience) - **Wendelin Peleska** - [Bun: the all in one JS toolkit (18m)](https://www.wearedevelopers.com/en/videos/1147/bun-the-all-in-one-js-toolkit?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) - **Eckhardt, Stemmildt** - [Why HTMX is crushing React, Vue & Svete (30m)](/videos/978-why-htmx-is-crushing-react-vue-svelte) ## Events ![CODES 24 Dev Conference by Neo4j November 7, 2024 Register Now 24 Hours of Graph-Powered Innovation & GenAl Insights](https://wearedevelopers.imgix.net/public/magazine/articles/482/images/66ffad2aee3ca1fcee881962_NODES-WAD(1).png?w=720&fit=max&dpr=2&auto=format) Join **NODES 2024** , the largest gathering of the graph community, on 7 November 2024! Learn from experts across four tracks—Applications, AI, Data Science and Graphs. Plus, don't miss the exciting Road to NODES hands-on workshops in the coming weeks, covering everything from app development to graph visualization and GraphRAG. [Register now](https://neo4j.registration.goldcast.io/events/03805ea9-fe3a-4cac-8c15-aa622666531a?utm_campaign=std&utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4)! ## Work and Jobs Is ["JavaScript framework developer"](https://www.stefanjudis.com/blog/on-being-a-javascript-framework-developer/?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) a new, valid term? Was it OK to [fire a Lazy and Mediocre' HR Team](https://www.ibtimes.co.uk/lazy-mediocre-hr-team-fired-after-managers-own-cv-gets-auto-rejected-seconds-exposing-system-1727202?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) after a badly configured system auto-rejected their manager's CV? Can developer AI help you to [keep your A-Team together](https://blog.almaer.com/keeping-your-a-team-together-with-developer-ai/?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4)? And it seems harder to get into the market as [1 in 6 companies hesitate to hire recent college graduates.](https://www.intelligent.com/1-in-6-companies-are-hesitant-to-hire-recent-college-graduates/?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) ## Procrastination Corner / Wonderful Weird Web - j[s13kGames 2024](https://js13kgames.com/2024/games?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) - all the submissions of games in 13k of JavaScript - [Drunk tic tac toe](https://zkarimi.com/drunk-tac-toe/?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) - you know how to write it (see above), try to play it drunk - [50 years ago, CP/M started the microcomputer revolution](https://www.theregister.com/2024/08/02/cpm_50th_anniversary/?utm_source=hs_email&utm_medium=email&utm_content=327496790&_hsenc=p2ANqtz--6emDHMEpUSyB96PAgj_N94jPDAY6FOnL3c0lO31JyV6rkiIJoOwBll2uWeJ9z_YwS3hjG0Ersi6W0MXVwRYP3ULhCaRyrHoHhylkP9l_D0pTd9I4) ## Related Articles - [Dev Digest 131 - AI'm not sure about OSS](https://www.wearedevelopers.com/magazine/472-dev-digest-131-ai-m-not-sure-about-oss) - [Dev Digest 124 - None like it hot](https://www.wearedevelopers.com/magazine/460-dev-digest-124-none-like-it-hot) - [Dev Digest 109 -Egg-citing things…](https://www.wearedevelopers.com/magazine/408-dev-digest-109-egg-citing-things) - [Dev Digest 126 - * yells at cloud](https://www.wearedevelopers.com/magazine/463-dev-digest-126-yells-at-cloud) ## Related Videos - [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) - [WeAreDevelopers LIVE – Keeping Up with Styles, Data & More](https://www.wearedevelopers.com/videos/1803-wearedevelopers-live-keeping-up-with-styles-data-more) - [WeAreDevelopers LIVE - CSS is DOOMed](https://www.wearedevelopers.com/videos/1838-wearedevelopers-live-css-is-doomed) - [Dev Digest End of Year Recap](https://www.wearedevelopers.com/videos/1284-dev-digest-end-of-year-recap) ## 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/682327-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/643147-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**