Mark Smith's Linkblog

Friday 18th September, 2020 #

  • To All The Jobs I Had Before - the author summarises the things she learnt in the jobs she had before becoming a developer, well thought out and nicely written
  • undici - An HTTP/1.1 client, written from scratch for Node.js
  • Apple is making Shazam a bigger part of your iPhone - I had missed the news that Apple had bought Shazam last year, so this is a nice surprise, in upcoming iOS you’ll be able to identify a song you’re currently listening to, even when you are using headphones, so it theoretically should work while you’re listening to podcasts, IMO probably the best feature to be added to the phone in the past 5 years

Thursday 17th September, 2020 #

  • I just created a Patreon page, not quite sure if I did it right, an experiment that probably won’t go anywhere, but if you like the links I post, it would be nice to have some patreons! :)
  • material-shell - A modern desktop interface for Linux - It’s a Gnome extension that implements a tiling UI that sort of resembles tmux but it’s more modern, the official website is quite cool looking, there is also a floating mode if the tiling is getting annoying
  • Interview with Andrew Bosworth (VP of AR and VR) about Facebook's Project Aria, they are test-driving tech for AR glasses - I’m wondering what cool developer tools you could create in an AR world
  • Writing even more CSS with Accessibility in Mind, Part 1 - Progressive Enhancement - This article does a great job of explaining progressive enhancement with neat examples, I wish there were more articles like this because progressive enhancement is brilliant but it’s difficult to imagine how to actually implement features
  • Amazon Music Joins Podcasting Fray

Wednesday 16th September, 2020 #

  • Apple accuses Epic of ‘starting a fire and pouring gasoline on it’ in new Fortnite filing - I can say from personal experience that it’s definitely the gasoline pouring that’s the problem not the fire starting, it’s really something to experience, the fire doesn’t give a shit about gravity and will ignite the gasoline all the way right back up into whatever pouring device you are using, and now you have to dispose of pouring device full of gasoline which is on fire, not very easy to do safely (makes me wonder a bit about the quality of this analogy) - Anyway, very fucking scary, very fucking dangerous, if you’re thinking “yeah but it’s just a small bit of gasoline”, nope doesn’t matter, and it happens lightning fast
  • Would you use a mobile device with no App Store, where you could only use apps you wrote yourself?
  • What is the Value of Browser Diversity? - Well written and thought out piece about the danger to the web of loosing Firefox, with only one rendering engine the web sort of becomes another App Store, I hope they keep the URLs
  • Chinese database details 2.4 million influential people, their kids, addresses, and how to press their buttons - I wonder how they expect the western countries to react, seems like they are betting either the west already has a similar database, or it will build one, or do they expect them to just do nothing, it’s the worst kind of race to the bottom, where we all end up imprisoned by the technology we are building

Tuesday 15th September, 2020 #

  • Raspberry Pi as a local server for self hosting applications
  • How I became a certified Scrum Master in 3 days - A lot of companies I speak with these days are doing some form of SCRUM, this article has lots of relevant links to learn the methodology and get a certification
  • Building YouTube Shorts, a new way to watch & create on YouTube - This looks interesting

Sunday 13th September, 2020 #

  • Why Apple’s anti-tracking move hurts everyone … but Apple - There are some compelling arguments in this article, but as a user I feel like there should be an option to just turn off tracking all together in case the tracking gets too oppressive, and as a developer I would argue the same thing because if it’s always on you might not be able to debug issues completely
  • How TechCrunch took Disrupt virtual - and grew for its tenth anniversary
  • Deep Dive - Next Gen low level Node HTTP APIs - A look at the low level QUIC protocol implementation, mention of possible web-sockets replacement, and also a discussion around a unified http library and how the higher level frameworks could use this next gen API

Friday 11th September, 2020 #

  • Minitel - The Online World France Built Before the Web - I remember the Minitel numbers on TV and Radio, they were everywhere, very much like how Twitter hash tags are today, interesting comparison to the Apple app store ecosystem - Nice bit of computing history, well written article
  • I'm writing this on my phone - Dave Rupert experiments with writing blog posts on a mobile device and writes about his perceptions as he writes
  • React 17 - Why it's so important ? - Quite a good summary of the changes arriving in the latest version of the framework
  • Blue/Green Node.js Deploys with NGINX - Great write up, I have built very similar setups myself - It does get quite complicated, but you get the ability to deploy anywhere - Maybe some better open source tools will be developed to make the process easier

Wednesday 9th September, 2020 #

  • Working with JavaScript Media Queries - I’ve used media queries in CSS a lot but I didn’t know you could use media queries from javascript - Cool!
  • Apple counter-sues Epic - The high profile case continues, I hope all the users are ok, I guess mostly it’s probably fine because it’s just games, but these days some people rely on these platforms to make a living
  • Chris Coyier does a roundup of recent progress in web components, disappointing to hear that with the way people seem to be using them, we are just as locked as using a framework

Saturday 5th September, 2020 #

  • Designing a JavaScript Plugin System - I really liked this article because though we use libraries every day that have plugin systems, there isn’t that much material on how to go about actually building a plugin system for your app - the tutorial builds the “world’s smallest plugin system”, it’s a calculator where you can register new functionality by writing a plugin, by the end of it you have a good idea of how to structure plugin systems and the trade-offs inherent in designing such functionality
  • Mastering Hard Parts of JavaScript - A participant in the frontend masters course is writing up notes on GitHub as he completes the course - Worth a read because imo this course looks like best in class

Thursday 3rd September, 2020 #

  • React is becoming a black box - The discussion around this article is quite informative, it’s mostly about React classes vs hooks, but also more generally about the React community dealing with changing mental models as the framework evolves
  • JavaScript Runtime and Its Components For Web Developers - ECMAScript, DOM, and the BOM
  • What podcasts do you listen to?

Wednesday 2nd September, 2020 #

  • The problem with C - Interesting article that covers the relationship between C and C++ and the two developer communities - I think there could be a similar dynamic developing between Javascript and Typescript, that’s why I previously asked what the TC39 committee thought of Typescript, well the point to note is that as far as C++ developers are concerned they want C to not evolve as a language, they want to keep it simple, they don’t want C to have new features, and then they also blame C for all the problems in C++, “many C++ developers wait for the day when C finally burns in the hot flames of hell”, that’s not a good dynamic
  • GitHub introduces the GitHub Container Registry

Tuesday 1st September, 2020 #

  • Facebook - “we are left with a choice of either removing news entirely or accepting a system that lets publishers charge us for as much content as they want at a price with no clear limits”
  • Twitter releases feature to create Tweets about a Tweet and calls them “Quote Tweets“ - Cool feature name
  • Facebook Threatens to Cut Off Australians From Sharing News - The australian government is trying to pass legislation forcing Google and Facebook to pay media companies
  • The Architecture of Open Source Applications -Interesting sounding book, but also some interesting ideas for developer podcasts in this HN thread

Monday 31st August, 2020 #

  • bytenode - A minimalist bytecode compiler for Node.js
  • How to read a log scale - Does a good job of explaining log scales using some interesting examples
  • webrtc-for-the-curious - WebRTC for the Curious: Go beyond the APIs - The github repo for the book, you can build your own version using the Hugo Static site generator
  • WebRTC for the curious - A book about the protocols and APIs of WebRTC

Sunday 30th August, 2020 #

  • John Gruber comments on the ongoing Apple - Epic situation
  • Building a website doesn’t need to be complicated, the approach outlined here has a static site feel to it though it does have a basic web server to serve the pages - Markdown files, plain CSS and HTML
  • Algorithms and data structures are pretty important, this article covers the various tree data structures, how they are implemented and how to traverse them - I haven’t had a chance to fully read the article but it looks good based on the Intro, diagrams, animations and linked pre-requisit material

Saturday 29th August, 2020 #

  • Manage your agile development backlog using markdown files
  • Streaming Data Using Node.js - The general discussion about Node.js streams in this article is quite informative
  • Why use Node.js? Scalability, performance and other benefits of Node.js based on famous apps - Does a fantastic job of highlighting all the reasons to choose Node.js for projects, also a very impressive list of companies running Node.js
  • Debug Visualizer - A VS Code extension for visualizing data structures while debugging

Friday 28th August, 2020 #

  • Why is node.js fast? Libuv & epoll & fcntl - Gabriel Zimmerman continues his video series on node internals, awkward in places but the high level approach is good imo, showing the c++ code next to a flow diagram is very illustrative, I hope he does more of these, I think he’ll find a great way to pass his knowledge on to others
  • This guy is building a VSCode plugin for managing daily tasks, something similar to my agile blog repo I posted yesterday - Managing coding tasks via markdown files is trending :)

Thursday 27th August, 2020 #

  • Show HN - Eleventy blog template to manage agile web development
  • Mongoose 5.10 -Improved Transactions - The previous transactions implementation did not fully implement all the MongoDB driver functionality, this release adds support for the session object withTransaction feature
  • script-httpd - Turn a command line script into a web service - “invokes your script and writes the request body to your process' stdin. Stdout is then passed back to the client as the HTTP response body” - Neato
  • Fortnite splits into two different games tomorrow because of Epic and Apple’s fight

Wednesday 26th August, 2020 #

  • radEventListener - a Tale of Client-side Framework Performance
  • Facebook accelerates News tab launch abroad - countries include the U.K., Germany, France, India and Brazil - notably absent from the list is Australia
  • How to write in plain English - Over the years I’ve picked up a similar style, It’s certainly something I try to do, worth taking the time to read
  • Apple and Epic square off in preliminary hearing on Zoom
  • Mastering Git Stash Workflow - Great article about what is undoubtably one of the most useful git workflows, it’s a technique I use all the time

Tuesday 25th August, 2020 #

  • New Repo: mjgs/eleventy-agile-blog - A minimal blog template using Eleventy, this one implements a simple agile development workflow so you can get stuff done
  • React's default way of appending itself to a DOM tree considered harmful - Makes a case for why separation of concerns is still a best practice worth remembering in front end development
  • More from unreal zoom court - the judge is muting participants in order to force them to answer yes/no questions [for some reason Twitter is currently displaying this link differently based on referer, so copy and paste it to see the tweet what I am actually trying to link to]
  • More tweets from zoom court - “The judge is expressing deep doubts about Apple’s walled garden ecosystem - If you have an iphone you can't buy [apps] from anyone else“
  • The Apple vs Epic case is in session and I guess it’s on zoom and people are live tweeting it, anyway one of the attorneys was the judge for the Silk Road case, also they are not allowed to screenshot the zoom call so people are posting sketches of the zoom call - is this the real world?
  • Web workers vs Service workers vs Worklets
  • HTML Web Workers in Depth

Sunday 23rd August, 2020 #

  • Deftones - Rivière - An example PeerTube hosted video, I don’t consider myself a Deftones fan, though I do like the soundgardeny guitars that kick in mid way through this quite raunchy video, I guess part of me misses the 90s
  • Moving from YouTube to PeerTube - I wasn’t aware of PeerTube, it’s a way to self host your videos, uses a variant of BitTorrent that runs directly in the browser, the article makes the case that it’s a good way to have functional backups of your YouTube hosted videos
  • Apple apologizes to WordPress, won’t force the free app to add purchases after all

Saturday 22nd August, 2020 #

  • An Update on MDN Web Docs - Mozilla outline how the recent job cuts will affect the MDN docs
  • Linux From Scratch (LFS) is a project that provides you with step-by-step instructions for building your own customized Linux system entirely from source - I really like the philosophy behind this project, it would be great to build a minimal Linux distro specifically for NodeJS development
  • Apple fires back in court, says Epic Games CEO asked for special treatment
  • WordPress founder claims Apple cut off updates to his completely free app because it wants 30 percent

Friday 21st August, 2020 #

  • Migrating from Node and Express to the Jamstack (Parts 1-3) - Quite rambley piece but interesting because it highlights the many difficulties in migrating from a server-side Express app to a JAMstack/serverless architecture, all the issues highlighted are problems I have also encountered, I feel like the JAMstack still can’t gracefully handle the functionality needed for many web applications

Thursday 20th August, 2020 #

  • What if the Statue of Liberty went on tour? It’s a silly idea, but I think it could be quite fun
  • A Community-Driven Site with Eleventy: Preparing for Contributions - Nice article that covers setup, configuration and workflows necessary to build a contribution based statically generated website
  • Chapter 3 -The Website - The latest instalment from the web history series, looks at the very early web - In 1993 there were only 100 websites, in 1994 there were 10000, I started browsing websites in 1996, I miss those early disorganised websites

Wednesday 19th August, 2020 #

  • An example of code that imo makes good use of javascript classes is the eleventy code base, the cli script imports one class that builds the rest of the app structure by importing a bunch of other classes, good for readability and testing
  • Decorators for ES6 classes - The description from the proposal “Decorators make class declarations programmable” does sound interesting, however reading the description and examples I am not convinced that the added language complexity is worth it, classes are already decorators and these new decorators are meant to be applied to classes, feels a bit like an “implement everything” feature - How many of the examples could be implemented using existing language features?
  • Shortish video presentation covering the NodeJS internals (V8, Heap/Stack, Libuv) - I watched this on a mobile device so it was a bit difficult to read all the details in the slides, however it goes into quite a lot of depth from the NodeJS code right down to the C++ while loop code that implements the event loop
  • The Market For Discontinued Photographic Film
  • SkyCircles Twitter bot for NYC @SkyCirclesNYC, each post has a detailed description of the plane, map screenshot and any available photography of the vehicle
  • What’s Flying Above Us? - Interesting project that tracks planes overhead that are not going places, but instead are being used in a variety of data gathering operations, code is open source, there is even a Siri shortcut

Tuesday 18th August, 2020 #

  • An Introduction to Moleculer JS - The local dev experience looks pretty great, and it’s easily deployable to any cloud provider via docker, supports api gateway and message broker type components, so you get load balancing and fault tolerance, also event based architecture
  • moleculer - Progressive microservices framework for Node.js - I wasn’t aware of this framework, the feature set looks interesting
  • How To Start Using Microservices - It’s a rather complex landscape, this piece does a good job of summarising the environment and suggests many useful concepts, design philosophies as well as services and tools
  • Apple, Epic, and the App Store - App makers want a direct relationship with their customers and for Apple to stop favouring it’s own services

Monday 17th August, 2020 #

  • Promise.allSettled() VS Promise.all() in JavaScript
  • Linear, Binary, and Interpolation Search Algorithms Explained
  • India to run optic fibre to 450,000 villages in 1,000 days and give 1.3bn a digital Health ID
  • Looks at how much influence Google has on the open web in the current moment
  • Linux Commands frequently used by Linux Sysadmins - Most of these are beginner level but it’s a very good summary and part 2 has a nice list of system monitoring tools
  • How Apple's and Google's defenses to Fortnite maker Epic Games' antitrust lawsuits over their app store policies will likely differ - Explores the landscape of the case with a minimum of legalese

Saturday 15th August, 2020 #

  • Some larger companies including Microsoft, Salesforce and Indeed have set up FOSS funds and have started awarding recipient, ESlint the very popular linting tool has received $10,000 - iIt would be great if this trend continues as there are many important projects that need support
  • React v17.0 Release Candidate - Focuses on improving upgrades, it’s now possible to run different versions of React in the same component tree, also some changes to make integrations with other frameworks easier
  • US DoD reveals official task force to investigate UFOs after releasing videos

Friday 14th August, 2020 #

  • Epic Goes to War With Apple Over the App Store - Something that occurred to me while reading this piece is that In days gone by it was royal families that had to deal with such dilemmas, I have no idea whether the current situation is better or worse, but it’s interesting nonetheless
  • Typing is coming to Ruby - You can define your types in separate files so the typing doesn’t clutter up the Ruby code, which is nice
  • Amazon launches Braket quantum computing service in general availability
  • Shifting from Express.js to Azure Functions - I quite like the Azure functions implementation, at least for relatively simple endpoints, it looks very straight forward to setup
  • The NodeJS core team are redesigning the main nodejs.org website to Gatsby/React/Typescript
  • Interesting writeup of the push to move Node.js EventTarget to a browser standards compliant implementation

Thursday 13th August, 2020 #

  • Thank You MDN! - There has been a lot of layoffs at Mozilla the past few weeks, so someone built a website to remind everyone how wonderful the MDN docs are
  • Web history, Chapter 2: Browsers - I’m about 1/2 way through this, really great read so far

Wednesday 12th August, 2020 #

  • 4 Lessons Web App Designers Can Learn From Google - They do make exceedingly great web applications
  • Twitter is for real rolling out its reply-limiting feature to all users
  • The EU is launching a market for personal data - This could be quite interesting, it would be great if every citizen could have a small bit of cloud storage guarantied for their whole life and beyond
  • Illustrated JS - Promises - Some more cake based javascript cartoons

Tuesday 11th August, 2020 #

  • Started reading about CSS Modules, gave up at "CSS Modules compile to a low-level interchange format" - Really, is that what we do these days when current tech does not do what we want, just create a superset, surely we just end up with binary (the superest?) eventually
  • I've been running through the Next.js tutorials, I like how the framework is put together, so far all the abstractions feels quite natural - The one area that feels weird though is debugging, the debugger stops at all the breakpoints, which is great, but I'm not sure I even know what it actually means to be paused in the middle of some serverside running JSX, the level of mysteriousness of what seems to me at this point to be a layer of magic, the potential instability feels uncomfortable

Saturday 8th August, 2020 #

  • It’s been a while since I watched some movie trailers, these a pretty good
  • Breaking Down Serverless Anti-Patterns - Honestly I lost interest mid way through this article, so perhaps that’s an indication of the quality, however it’s an important topic
  • Browser developer tools timeline
  • Illustrated JS - JavaScript asynchronous behaviour - I liked this article, it’s about baking chocolate cakes, and also javascript
  • TypeScript, Minus TypeScript - Turns out your can use Typescript with vanilla javascript by creating the type definitions in JSDoc comments, that’s pretty cool
  • Introducing DevNews - A New Podcast From DEV!
  • To Head Off Regulators, Google Makes Certain Words Taboo - Sort of unsurprising in a lot of ways, of course they are going to be careful when it comes to future legal problems, but also some of the training material communication rules of thumb are actually quite good for users

Friday 7th August, 2020 #

  • How NodeJS revolutionised software development - High level overview of the qualities that make it one of the fastest growing runtimes out there
  • Twitter to label state controlled media accounts
  • Automattic (makers of Wordpress) launches a team communication and collaboration product called P2
  • Some people are saying that with the introduction of it’s Reels feature, Instagram is becoming too complicated to use
  • airtable.js - Airtable javascript client - Airtable is very popular with small to medium sized companies, with this library you can easily build custom cli tools and backend Integrations
  • c8 - output coverage reports using Node.js' built in coverage
  • Let's Debug a Node.js Application - Describes some very useful advanced debugging techniques, tools and libraries

Thursday 6th August, 2020 #

  • Interesting discussion around which large companies (PayPal, Netflix etc) use NodeJS for their backend services
  • Top-Level Await is now enabled by default - Appears to only be applicable to ES modules
  • HarperDB - Building a Database Written in Node.js from the Ground Up - I wouldn’t have thought NodeJS was a good choice for implementing a database but there are surprisingly many benefits
  • A searchable index of public APIs

Wednesday 5th August, 2020 #

  • New Repo: Implements a Books API for a Library, intended to be run on AWS Lambda/DynamoDB using serverless - From a recent demo project I completed, get in touch with me if you are looking to build serverless APIs
  • A deep dive into queues in Node.js - Great article that covers the runtime’s core queues, it’s also worth noting that NodeJS has some great libraries for implementing application level queues, I recently implemented a very robust and fault tolerant backend queuing system for handling inbound Stripe webhooks
  • A bit of self promotion - if you are looking for a developer, or know someone else that is, consider reaching out to me with freelance / contract projects - Now is a great time to start a project :)
  • AWS Serverless LAMP stack - There are a lot of PHP websites out there, so this new serverless offering in this space is noteworthy
  • Future MacBook Pro trackpads may be larger, adjustable, and backlit - Based on the diagrams in the patent it looks like a giant trackpad that spans the entire width of the device, and if I’m understanding the description correctly, the active region of the trackpad could change size based on the app being used, and perhaps even have different regions somehow drawn / backlit onto the trackpad - Sounds like it could be quite cool
  • Apple Maps’ Look Around feature gets first international expansion - It’s Apple’s version of Google Street View
  • In spite of an increase in Internet speed, webpage speeds have not improved over time
  • Disney is launching a new Star-branded streaming service internationally

Tuesday 4th August, 2020 #

  • SpaceX looks for government approval to serve broadband to 5 million customers mostly in underserved areas of the US
  • Introduction to web APIs - I hadn’t seen this MDN article before, it’s a pretty good overview of web APIs
  • Microsoft Teams adds support for 20K participants in meetings
  • Microsoft’s operations will be zero waste by 2030

Monday 3rd August, 2020 #

  • Is TypeScript the future of web development?
  • Creative Coders are the Celebrities of the Future - Sees a future where celebrity coders running algoraves is the next big thing - I don’t know about this exact vision but there is something to the idea that watching a programmer mid-flow is interesting, seeing the ideas stream out into the editor and the software slowly take shape
  • Web apps aren't tech. They're "tech" - Rather average article but it has a very good Douglas Adams quote in it
  • On some of the unexpected benefits of using a PowerPC (really old) mac

Friday 31st July, 2020 #

  • AI-Generated Text Is the Scariest Deepfake of All - The comparison made to the introduction to Photoshop is interesting, though I’m having a tough time imagining a future where AI generated articles is sort of ok and accepted
  • Jeff Bezos gets approval for project Kuiper, a satellite broadband constellation to rival Elon Musk’s Starlink

Thursday 30th July, 2020 #

  • It felt like a good time to drop in on Richard Stallman’s political notes, this one is is about a Treaty Against Space Weapons, important stuff - Side note I really like his notes but I wish there was an RSS feed that grouped all the posts into daily posts, the current firehose is too much, might be an interesting feature for an RSS reader to implement
  • A new funding model for open source software - Getting open source projects to a place where they are sustainable is important, though I wonder how such a direct approach like the one proposed here would distort the project environment as people flick to popular projects, I fear it would run the risk of making already strained environments more toxic
  • My monolith doesn't fit in your serverless - On the difficult choice developers have between serverless and monoliths
  • The Big Tech Hearing Proved Congress Isn't Messing Around

Monday 27th July, 2020 #

  • A review of the various funding models used in open source projects
  • Sony’s wearable air conditioner - It looks kind of neat but I can't help but wonder if this sort of thing is all that good for the planet, surely it can't be very good for the environment if everyone wears a personalised air conditioner
  • Are we in an AI overhang? - I don't know that much about AI aside from some neural network classes I took at college, and I'm not super into AI as I much prefer web development, on the other hand the numbers mentioned in this article are kind of mind boggling
  • A Mental Model to think in Typescript - Typescript articles often don’t put across the benefits succinctly, but this article manages just that with some real world examples combined with an easy to read style
  • Dynamoose - Modeling tool for Amazon's DynamoDB inspired by Mongoose