markjgsmith

2020/10/31 #

cat << EOF > RecRain With Thunder 1 (Recorded Sounds #11)

2020-10-31 18:28:59 +07:00 by Mark Smith

Mostly rain with a bit of thunder

Episode details:

Another awesome episode of the podcast. #

cat << EOF > Rain With Thunder 2 (Recorded Sounds #12)

2020-10-31 18:33:55 +07:00 by Mark Smith

Mostly rain with a bit of thunder

Episode details:

Another awesome episode of the podcast. #

Today’s links:

  • Where do content creators have their discussions online?dev.to #

  • Interview with Michał Gołębiowski-Owczarek who is a maintainer of the JQuery project - It’s interesting to read about what he likes about maintaining such a project, sure it’s not the so called modern javascript but JQuery is still running in something like 70% of the most popular websitesgithub.com #

  • esbuild - An extremely fast JavaScript bundler - Appears to be gaining some traction, the docs look well written and well structuredesbuild.github.io #

  • Running Node.js on iOS and iPadOS via iSH2ality.com #

2020/10/30 #

cat << EOF > GitHub Actions for custom content workflows

I’ve spent the past few weeks making some updates to the build system of the latest incarnation of my long running linkblog, now a statically generated website. In doing so I had my first chance to try out GitHub Actions and what I discovered is an extremely versatile tool that makes it possible to create a very wide variety of software developer workflows, centering predominantly around coding activities.

I believe another area where Github Actions might be very effective is in modern collaborative workflows for content creators. And this is happening now because of the recent resurgence of building static websites in a way refered to as the Jamstack.

In this post I’m going to describe the pieces of the puzzle, and the types of workflows that are possible, but without a lot of the complicated jargon.

Github is most well known for hosting repositories, places where developers can collaborate on code. It’s really a web interface for the open source git command line tool, which can be used completely separately, but their interface has become very popular over the past few years, and they are a big reason why there has been a renaissance in open source software.

Github Actions is their workflow automation tool, and it has a focus on automating tasks in and around repositories. It makes it possible to trigger custom actions when various repository events happen, such as adding new content, or when users have reviewed content, or when discussions mention a certain keyword, and lots more. It’s really very versatile.

The Jamstack movement is a way to build websites that has become popular recently. It focusses on pre-rendering all the pages of a website so that they are static files, rather than have a server running an application that dynamically renders the pages when they are requested. There is a lot of variations and nuance to what it encompasses but that’s the general idea. A lot of the technology isn’t actually new but it’s the first time this way of thinking about and building sites has had a name, and it’s resulted in some very interesting forward motion in how websites are built.

There are a lot of benefits to Jamstack sites including:

  • Security because there’s no server to hack
  • Speed because all the pages are pre-rendered
  • Being a naturally a good fit for automation

And it's this last point that opens up new possibilites for collaborating.

I’ve been running my linkblog for close to 10 years, there is a lot of content, but it’s possible to render out all the site pages in just a few seconds. I’ve built my own static site generator (SSG) tool in NodeJS because I’ve been able to optimise for that use case specifically, but there are many open source SSG tools out there.

One of the major benefits of creating a content workflow that uses git, is that you gain all the safety that makes it a great code collaboration tool. By using similar, all be it simpler, workflows to developers you can be quite confident that you won’t loose any work. It’s all just text files, and everything is versioned. As well as safety you get a considerable amount of future proofing because in the end it’s all just text files, so much less danger of software update breakages, and since it’s based on standard git tools you can move to another hosting provider relatively easily. Most of the providers have their own workflow tools but there is some interoperability, Bitbucket for instance can run Github workflows, and making platform specific tweaks isn’t that difficult in a lot of cases.

As an example, for my linkblog I have some HTML forms built using serverless cloud functions, that I use to easily add new content to a Github repo throughout the day. I have a scheduled workflow that runs at the end of every day and merges in the new content in a safe way using what is called a ‘Pull Request’, often referred to as a PR. This makes it easy to revert the merge if that’s ever necessary. There is then another workflow that detects newly merged content and triggers a site re-build, and then a deploy to the website hosting provider, and the site is live with the new content.

It’s also possible to use some of the other tools that Github provides as part of the workflow, for example the Issues and Pull-Request pages, to create places where you can discuss new additions with collaborators, as well as setup notifications, and to only publish content that has been approved by a certain number of reviewers.

It’s not strictly text based content either, as part of my updates I added a podcast to my website. The files are hosted outside of Github, but the GitHub action renders all the podcast pages and creates the RSS feed.

If you want to listen to some very experimental audio, the show is in iTunes!

Also if this type of content workflow is interesting to you, feel free to get in touch with me to let me know. I might post more details, tips and tricks about the workflows I am using.

I’m also available for hire on projects you have. Check out my Github profile. #

Today’s links:

  • Neat tutorial on how to build a url shortener using Express, MongoDB and vanilla javascript, and lots of async/awaitdev.to #

2020/10/29 #

cat << EOF > Man Playing Trumpet 1 (Recorded Sounds #7)

2020-10-29 23:31:48 +07:00 by Mark Smith

Man playing trumpet in the park

Episode details:

Another awesome episode of the podcast. #

cat << EOF > Man Playing Trumpet 2 (Recorded Sounds #8)

2020-10-29 23:35:22 +07:00 by Mark Smith

Man playing trumpet in the park

Episode details:

Another awesome episode of the podcast. #

cat << EOF > Man Playing Trumpet 3 (Recorded Sounds #9)

2020-10-29 23:48:58 +07:00 by Mark Smith

Man playing trumpet in the park

Episode details:

Another awesome episode of the podcast. #

cat << EOF > Man Playing Trumpet 4 (Recorded Sounds #10)

2020-10-29 23:53:11 +07:00 by Mark Smith

Man playing trumpet in the park

Episode details:

Another awesome episode of the podcast. #

Today’s links:

  • The latest in my experimental podcast is a collection of recordings of a man playing his trumpet in the parkmarkjgsmith.com #

  • Surprise! The Section 230 Hearing Wasn’t About Section 230 - By the sounds of it Twitter’s Jack Dorsey got an earful from some of the senatorswww.wired.com #

  • From the that looks interesting department, the LG Wing is a dual screen smart phone where one screen swivels / rotates into position, looks like it could be quite nifty for gaming, and the example of playing a game while watching a YouTube video has me wondering if some online code editors could make good use of this configurationwww.theverge.com #

  • Comparing Static Site Generator Build Times - Really interesting article especially if you are at all into websites that are built using jamstack architectures and techniques, would be great if they also published the actual build times as well as the relative resultscss-tricks.com #

  • I wish I had an rss reader that was scriptable, what I’d like todo is automatically subscribe to the feed of any blog that I post to my linkblog, then at a later date have some way to re-evaluate whether to stay subscribed or not, maybe there could be some stats that would make that decision easier, just thinking out louden.m.wikipedia.org #

  • If not SPAs, What? - Some general all round commentary on the current state of web developmentmacwright.com #

  • actions/cache - Cache dependencies and build outputs in GitHub Actions - Looks like this action could be very useful for optimising GitHub actions, making it possible to cache assets between workflow runsgithub.com #

  • Wikimedia is moving to Gitlab - They are responsible for among other things developing Wikipedia, so it’s relatively big news when they make a big technology decision, they also recently decided to start using Vue as their front end frameworkm.mediawiki.org #

2020/10/28 #

cat << EOF > Raining A Lot (Recorded Sounds #6)

2020-10-28 16:08:13 +07:00 by Mark Smith

It’s been raining a lot lately, this is what it sounds like

Episode details:

Another awesome episode of the podcast. #

Today’s links:

  • Zuckerberg And Facebook Throw The Open Internet Under The Bus - There is a lot of talk about reforming a bit of law called “Section 230”, it’s what has made it possible for smaller startup companies to build their products and services without fear of being squashed by existing companies, it’s become synonymous with the “Open Internet”, but some people feel it’s leading to disinformation spreading too easily - It doesn’t paint Zuckerberg in a very good light, but it also is quite thin on what the proposed reforms might bewww.techdirt.com #

  • Amazon is turning Audible into a true podcast app - Always good to see the podcasting landscape moving forward, meanwhile I was able to upload another recording to the internet archive, which should drop in the feed by tomorrow, tried to upload another, and uploads are blocked again :(www.theverge.com #

  • SpaceX prices Starlink satellite internet service at $99 per month, according to e-mailwww.cnbc.com #

  • Reddit worries it’s going to be crushed in the fight against Big Tech - Interview with Reddit’s general council Benjamin Lee, the thing that strikes me is how he’s saying what chance do they have against the tech giants if section 230 is repealed, well if he’s saying that about Reddit, the so called “front page of the internet”, what chance do the rest of us have?www.protocol.com #

  • RIAA’s YouTube-DL Takedown Ticks Off Developers and GitHub’s CEOtorrentfreak.com #

  • There is some pretty radically futuristic bits in the ToS for Starlink’s new internet service, the governing law section contains the following words: earth, moon, mars, free planet, transit, starship, colonisation spacecraft, earth-based government, Martian activities, and of course Martian settlement - wow the bar for ToS's just got raised rather significantlymobile.twitter.com #

2020/10/27 #

cat << EOF > Man Riding Bike (Recorded Sounds #5)

2020-10-27 17:12:47 +07:00 by Mark Smith

Man rides exercise bike in the fitness area of a public park

Episode details:

Another awesome episode of the podcast. #

Today’s links:

  • 3 days of trying to upload a 300KB file to the internet archive, finally found an internet connection where the upload succeeded, tried to upload another equally small file, uploads are all failing again, so the pretty great recordings I got of a rain storm and of a man playing the trumpet will have to wait, until when I just don’t knowarchive.org #

  • Music industry forces widely used journalist tool offline - This is about the youtube-dl cli tool which is widely used for many important non copyright infringing use casesfreedom.press #

  • Freelance Web Developer, Consultant, Automation Engineer - I’ve just added a profile to my GitHub main page, check it out! I am available for hire to work on interesting projects :)github.com #

2020/10/24 #

Today’s links:

  • YouTube-dl has received a DMCA takedown from RIAA - I’ve used youtube-dl a lot over the years, as far as I know pretty much always for non copyright infringing use cases, so it’s really sad to see this great cli tool get taken downnews.ycombinator.com #

  • DevOps best practices Q&A - Automated deployments at GitHubgithub.blog #

  • Differences Between MacOS and Linux Scripting - There are quite a lot of differences between the two platform when it comes to scripting, this article does a good job of highlighting some of the differences you are likely to encounterdev.to #

  • RSS feeds for your Github releases, tags and activity - Cool that there are repo RSS feeds, it would be awesome though if there was a feed for issues & PRs, which there doesn’t appear to bewww.ronaldsvilcins.com #

  • Introducing the npm public roadmap and a new feedback process - This seems like a good move, I previously opened some bug reports on the npm project and it felt more difficult than it needed to be, had to open a separate account on their website and never got much feedback, so it’s good to see all these public roadmap git reposgithub.blog #

  • I was hoping to add a few more audio recordings to the podcast feed today, now that I’m in iTunes, but I can’t upload any files to the internet archive (where I am hosting the files), I’ve tried 3 or 4 different internet connections today, and none of my uploads complete :(archive.org #

2020/10/23 #

Today’s links:

  • Writing new websites the old fashion way - A short exploration into getting rid of the compile step while keeping a modern javascript setup by using ES modulesdev.to #

  • What’s New In Node.js 15? - N-API Version 7, npm 7, AbortController, QUIC, Updated handling of rejectionswww.reddit.com #

  • Node.js v15.0.0 is here! - The official notes for the release, also mentions an upgrade to v8 8.6 which brings Promise.any(), AggregateError, String.prototype.replaceAll(), and Logical assignment operators &&=, ||=, and ??=nodejs.medium.com #

2020/10/22 #

cat << EOF > Motorbike Sales Guy 1 (Recorded Sounds #4)

2020-10-22 16:39:34 +07:00 by Mark Smith

Field recording of the chant of a motorbike sales guy that drives around with a sort of mobile thrift store on the back of his motorbike

Episode details:

Another awesome episode of the podcast. #

Today’s links:

  • Airbnb announces multi-year partnership with Jony Ive and LoveFrom, his new independent design firm - “LoveFrom has amassed a creative team including designers, architects, musicians, writers, engineers and artists”9to5mac.com #

  • Twenty Thousand Hertz Podcast #107 | Dies Irae - Great episode, includes chants!www.20k.org #

  • Keeping track of live code with Netlify - Remi Sharp shares a neat workflow that uses some of the Netlify environment variables to embed a GitHub link in the webpage of his site that compares the code from the current build with that if the previous build so you can see what changed, and thus quickly find code that broke somethingremysharp.com #

2020/10/21 #

cat << EOF > Noisey Cafe (Recorded Sounds #2)

2020-10-21 20:26:51 +07:00 by Mark Smith

Field recording in a cafe in south east asia

Episode details:

Another awesome episode of the podcast. #

cat << EOF > Noisey Cafe 2 (Recorded Sounds #3)

2020-10-21 20:33:16 +07:00 by Mark Smith

Field recording in a noisey cafe in south east asia

Episode details:

Another awesome episode of the podcast. #

Today’s links:

  • Mark Smith's Podcasts - Early days with this new site, it’s only up in the last hour, some things still to fix, but it’s up :)markjgsmith.com #

2020/10/20 #

Today’s links:

  • Everything Labeler - A GitHub action that makes it easy to A sign labels to issues and pull requests based on text that appears in the title and /or descriptiongithub.com #

2020/10/19 #

cat << EOF > Silly Chant Too Early (Recorded Sounds #1)

2020-10-19 15:05:47 +07:00 by Mark Smith

Recorded in the morning somewhere in South East Asia.

Episode details:

Another awesome episode of the podcast. #

Today’s links:

  • Atlassian to end sale and support of on-premise server products by 2024 They make a lot of very popular developer products including Bitbucket, Jira and Bamboowww.zdnet.com #

  • Audio’s Opportunity and Who Will Capture It - Very thorough roundup of the landscape with wanderings into music history, video, broadcast, podcasting, gaming and virtual - Very long though, I drifted off towards the endwww.matthewball.vc #

2020/10/18 #

Today’s links:

  • Getting started with a history, skill guide and how-to of web standardswpc.guide #

  • Do you prefer subdomains or subdirectories?dev.to #

  • Which Programming Languages Use the Least Electricity? - Of the interpreted languages, javascript is right up there in terms of energy efficiency, lots of interesting data points and comparisons between language categories and programming paradigmsthenewstack.io #

2020/10/17 #

Today’s links:

  • The Node.js web server frameworks team are putting together some examples that show how the next generation http libraries could workgithub.com #

  • GitHub public roadmap - Worth keeping an eye on this as they are developing interesting new features - I am particularly interested in Actions featuresgithub.com #

  • Organization and enterprise workflows -One of the items on the GitHub roadmap that looks interesting, the ability to run an Actions workflow against any repo in an organisationgithub.com #

  • Workflow visualization - Another interesting looking Actions feature in developmentgithub.com #

  • Google’s new ‘hum to search’ feature can figure out the song that’s stuck in your headwww.theverge.com #

  • Why Get Involved in Web Standards?dev.to #

  • whatwg//html HTML Standard - The repo where the html standard is managedgithub.com #

  • tc39/ecma262 - Repo that hosts the Javascript specification, this where proposals for new language features are discussedgithub.com #

  • Ever wondered why the TC39 is called that? It stands for technical committee of ECMA, here is a list of all the other technical committees and steering groupswww.ecma-international.org #

2020/10/16 #

Today’s links:

  • Npm CLI v7.0.0 released - This release has what looks to be a really useful feature called workspaces, which make it much easier to work on several packages inside a project at the same timegithub.blog #

  • RFC for the new npm 7.0.0 workspaces feature - Skip to the examples where you will get a good idea of how these workspaces function by seeing the symlinks that get created in the project file systemgithub.com #

  • I'm Slow And That's Okay - Great post about a certain aspect of development that is crucial but often overlookeddev.to #

2020/10/15 #

Today’s links:

  • Some life advice from developer and podcaster Dave Rupert - “Leverage something you’re already doing“daverupert.com #

  • What type of computer do Linux Developers use?dev.to #

2020/10/14 #

Today’s links:

  • Contract to run .eu domain-name registry is up for grabs - Rumours of corruption, and do people really want .eu domains anyway? Brussels wants the domain to represent multi-lingualismwww.theregister.com #

  • What do you use shell scripts for?dev.to #

  • Creating GitHub actions - After creating several GitHub workflows composed of community actions, eventually you will want to reuse those workflows, and the way to do that is to turn the workflows you created into your own actions, which you can then use as the building blocks of subsequent workflows you builddocs.github.com #

  • Run an action from another action? - Being able to create your own actions is great but based on this post, it’s not currently possible to use already created actions from within your own actions, so for now at least, actions you create can only contain your own code, which is actually quite a big limitationgithub.community #

2020/10/12 #

Today’s links:

  • A curation of CC licensed music from various artists and genres for you to use, however you like with correct attribution, in your creative projectscchound.com #

  • John Gruber writes a piece about Microsoft’s recently published position on the whole platforms are too powerful conversation - A good reminder that there are always many ways to parse the things that tech companies say about their motives and actionsdaringfireball.net #

  • Some pretty good analysis of the recent popularity of Stories type features on all major social media platformsmedium.com #

2020/10/11 #

Today’s links:

  • Civilization on the Moon - and what it means for life on Earthwww.ted.com #

  • Do you think GitHub Actions has an overwhelm problem?dev.to #

  • House Democrats say Facebook, Amazon, Alphabet, Apple enjoy ‘monopoly power’ and recommend big changes - This report is making quite a lot of tech people pay attention, it’s interesting stuff and it’s probably time some of these practices are scrutinised, I’ve been wondering lately because the future is rather unpredictable with the rapid advance of AI for everyone, I’m wondering if there aren’t some counter intuitive scenarios where having a few big players would in fact be better, what does the future look like when every small business is as powerful as these big 4 tech giants? The description of Google as “an ecosystem of interlocking monopolies” is kind of worrying, what does that look like in the future?www.cnbc.com #

  • find-pull-request-action - A GitHub Action for finding pull requestsgithub.com #

  • merge-pull-request-action - A simple GitHub Action for merging pull requestsgithub.com #

  • create-pull-request - Does what it says on the tin, create a pull request, easy and simplegithub.com #

2020/10/10 #

Today’s links:

  • I’ve been doing a lot of work using GitHub Actions the past few days - It’s really quite a cool automation framework geared specifically around developer workflows, so anything that involves source code repos, but what’s really surprising is the variety of things you can implement, and it doesn’t have to be just for code, but it can also support all kinds of interesting content workflows - The volume of published workflows is a little overwhelming though, what follows is some of the links I found usefuldocs.github.com #

  • Building Gatsby with GitHub Actions and deploying to Netlify - A good example of how to deploy your app to Netlifysung.codes #

  • How to Manually Trigger a GitHub Actions Workflow - The manual triggers seems to have been introduced quite recently, and makes it possible to launch your workflow from the web UI after filling out a form with the workflow inputslevelup.gitconnected.com #

  • Deploying to Heroku from GitHub Actionsdev.to #

  • Triggering GitHub Actions across different repositories - After reading this post you start to see a lot more of the power of these workflows, you get all sorts of webhooks with payloads in each repo, and the payload is available to use inside the triggered workflow, which runs in a container, and you can easily build up whichever runtime environment you need, be it NodeJS, Bash, Perl, Java, Python, Ruby etc...blog.marcnuri.com #

  • awesome-actions - A curated list of awesome actions to use on GitHub - Be careful here as it’s where the overwhelm sets in, I wouldn’t go too deep into these until you have built several simple workflows, still though it’s nice to see some of the possibilitiesgithub.com #

  • merge-me-action Automatically merges Pull Requests - It’s possible to implement some pretty neat workflows that use pull requests and repo branches as sort of queues for inbound content, to be reviewed and approved by real people, then published into statically rendered sites, this action auto-merges PRsgithub.com #

  • automerge-action - Another auto-merge action that looks interestinggithub.com #

  • If you are looking to build some custom content based workflows, feel free to get in touch with me anytime, as well as web development, I have years of experience building workflows for big media companiesmarkjgsmith.com #

2020/10/04 #

Today’s links:

  • igel - machine learning tool that allows to train, test and use models without writing codegithub.com #

2020/10/03 #

Today’s links:

  • Eleventy and Vue, a match made to power Netlify.com - This looks pretty cool, Eleventy has been adapted so you can write Vue single file Components that get rendered to HTML by Eleventywww.netlify.com #

2020/10/02 #

Today’s links:

  • TypeScript is slow - What can we do about it? - Turn out that type inference in typescript is very very performance intensivedev.to #

  • Exploring Node.js Async Hooks - New since version 8 of Node async-hooks provide a way to create lifecycle style logic, with functions that execute before and after a main functionblog.appsignal.com #

For enquiries about my consulting, development, training and writing services, aswell as sponsorship opportunities contact me directly via email. More details about me here.