2018/07/31 #

Today’s links:

  • North Korea working on new missiles, US officials say, despite thaw www.bbc.com #

  • Evolving the Firefox Brand - The look and feel of Firefox is about to be updated blog.mozilla.org #

  • A Reminder That The Ocean Is A Big, Scary Place digg.com #

  • Man Takes Us On A Trip Back In Time With His 1949 Hong Kong Travel Vlog digg.com #

  • Doing it completely and totally wrong - Sriracha hot sauce seths.blog #

2018/07/29 #

Today’s links:

  • What comes after AI? I think that's where a lot of us probably want to be en.wikipedia.org #

  • Beacon API - JavaScript Web API for sending small amounts of data from browser to server without waiting for a response www.smashingmagazine.com #

  • Build a state management system with vanilla JavaScript css-tricks.com #

  • Frameworkless frontends are fashionable again - Github replaces JQuery with vanillaJs twitter.com #

2018/07/28 #

Today’s links:

2018/07/27 #

Today’s links:

2018/07/26 #

Today’s links:

  • UIengine - Tool to build pattern libraries and documentation for design systems dennisreimann.de #

  • Yett - A small webpage library to control the execution of (third party) - useful for creating GDPR compliant consent-first-analytics github.com #

  • CSS Grid Posters - An exploration into the world of possibilities with CSS grid codepen.io #

  • China Said to Quickly Withdraw Approval for New Facebook Venture www.nytimes.com #

  • Makerlog is the dead-simple task log that helps you stay productive and ship faster getmakerlog.com #

2018/07/25 #

Today’s links:

  • BitTorrent acquired by blockchain startup Tron founded by chinese entrepreneur Justin Jun variety.com #

  • Chrome's long-promised HTTP 'not secure' website warnings arrive www.cnet.com #

  • Facebook plans innovation hub in China despite tightening censorship www.reuters.com #

2018/07/24 #

Today’s links:

2018/07/22 #

Today’s links:

  • A Global Guide to State-Sponsored Trolling - virtual hate mobs, surveillance and misinformation www.bloomberg.com #

  • Authoritarians used to be scared of social media, now they rule it boingboing.net #

2018/07/20 #

Today’s links:

2018/07/19 #

Today’s links:

2018/07/18 #

Today’s links:

  • Noam Chomsky calmly explains why Trump and allies are a threat to organized human life boingboing.net #

  • Event-Driven Architecture (Part of @herbertograca's Software Architecture Chronicles Series) herbertograca.com #

  • Newton’s cradle is a device that demonstrates conservation of momentum and energy using a series of swinging spheres en.wikipedia.org #

  • And now, 35 minutes of commercials directed by David Lynch boingboing.net #

2018/07/17 #

Today’s links:

  • Will Marshall - The mission to create a searchable database of Earth's surface www.ted.com #

2018/07/14 #

Today’s links:

  • I lived with a best-selling Indian phone for 10 days - Nothing went smoothly www.buzzfeed.com #

  • Microsoft calls for federal regulation of facial recognition www.wired.com #

  • The Jezus Factory - formed in 2006 and is an independent UK record label that specializes in Belgian and particularly Antwerp music www.jezusfactory.com #

  • Andrew Bennett of Jesus Factory Records - On starting an indie label - "Don’t, unless you have serious mental health issues" www.beardedmagazine.com #

2018/07/13 #

Today’s links:

2018/07/12 #

Today’s links:

2018/07/11 #

Today’s links:

2018/07/08 #

Today’s links:

  • awesome-lite-websites - A list awesome lite websites without all the bloat github.com #

  • A Stanford researcher says we shouldn’t start working full time until age 40 work.qz.com #

  • South Korea has limited a working week to 52 hours, in order to stop overwork www.weforum.org #

  • Interesting perspective on SPAs and simplicity from the Ruby community - Turbolinks, SJR Responses and modern Rails medium.com #

  • Meet the woman who decides what Google's emoji look like www.cnbc.com #

2018/07/07 #

The dead simple todos system

Over the years I've tried a variety of sofware solutions to todo lists but I always find that eventually I end up just opening a empty file and typing a text list. It's just so straight forward. Almost as if writing a list in a notebook, which of course is the ultimate todo list solution.

Anyhow I've been adding quite a lot of aliases to my dotfiles recently and I wondered if I could add just a few that would make the bare essentials of a todo list system. These are the aliases that I came up with:

{% highlight bash %} alias 'slugd=date +%Y-%m-%d' alias 'todos=cd $TODOS_DIR' alias 'tdf=echo $TODOS_DIR/$(ls $TODOS_DIR | tail -n 1)' alias 'tdt=echo $TODOS_DIR/$(slugd).txt' alias 'tde=e $(tdf)' alias 'tdd=echo "### $(date "+%A %d %B, %Y") ###"' alias 'tda=cat $(tdf); echo' alias 'tdc=cat $(tdf) | grep "[x]"' alias 'tdi=cat $(tdf) | grep "[ ]"' alias 'tdn=TODOS=$(tdi); ! test -f $(tdt) && tdd > $TODOS_DIR/$(slugd).txt && echo >> $(tdf) && echo "$TODOS" >> $(tdf) && tda' {% endhighlight %}

It's all very standard shell scripting, the aliases get loaded from .bash_aliases or similar. The only complicated one is tdn which only creates the new todos file if one doesn't already exist for the current day to avoid accidentally overwritting an existing list.

  • slugd - create slug using date
  • todos - fast navigation to $TODO_DIR
  • tdf - (file) prints latest existing todo file path
  • tdt - (today) prints file path using todays date
  • tde - (edit) opens latest todo file in editor
  • tdd - (date) prints todays date nicely formated
  • tda - (all) prints all todos from latest todo file
  • tdc - (complete) prints all completed todos from latest todo file
  • tdi - (incomplete) prints all incomplete todos from latest todo file
  • tdn - (new) new todo file extracting all incomplete from previous

In practive the only aliases you actually use are tdn, tda and tde. That's it just 3 aliases to remember and it's pretty close to using a notebook. The only configuration necessary is to set TODOS_DIR environment variable somewhere that gets loaded by the shell automically like your shell's .bashrc file.

Here is what a todo list file looks like:

{% highlight bash %} ~ $ tda

Saturday 07 July, 2018

[ ] Install new theme on blog [ ] Deploy live keys to payments pages [ ] Troubleshoot failed mail deliveries [ ] Add links to freelancer github repo on payment pages [x] Troubleshoot github remotes issue on markjgsmith.com [x] Troubleshoot freelancer left pane image centering issue [ ] Re-organise dotfiles and dotfiles local [x] Add todo aliases to dotfiles [ ] New blog post: The dead simple todos system

~ $ {% endhighlight %}

The real test of course is tomorrow morning when I create a new todo list. #

Today’s links:

  • Below The Surface - archaeological project excavating the Amstel riverbed - vast array of objects, broken, whole, all jumbled together www.swiss-miss.com #

  • New Repo: mjgs/freelancer - website for freelancers with homepage and payments pages to securely receive payments for services github.com #

2018/07/06 #

Today’s links:

2018/07/05 #

Ruby jargon to Nodejs jargon translation

I've been making quite a lot of modifications to the blog recently. The blog is generated by Jekyll a tool written in the ruby programming language. I have been seeing a lot of warning messages about ruby versions during builds, so it's time to try to figure out what's going on.

Everytime I've ventured into this area it's been full of confusing articles and definitions that don't seem to quite match up. I found an article comparing the rvm and rbenv ruby version managers, which along with my browsing various ruby sites and blogs and quite a lot of head scratching resulted in the followng translation which might be of use to other nodejs developers:

  • ruby === node
  • rubbies === versions of node
  • RubyGems.org === npmjs.com
  • gems === node modules (packages hosted on npmjs.com)
  • gemsets === node_modules folders (there can be many)
  • Gemfile === package.json
  • gem === npm
  • bundler === yarn
  • rvm === nvm
  • rbenv === simpler rvm

Something to be aware of is that rvm apparently also overides the system cd command to automatically set ruby on directory change which might not be desirable.

I don't claim that the list of correct, it's just what I've come up with so far. Email me with any corrections. #

Commands I ran to install rbenv and upgrade ruby versions

I was able to upgrade ruby versions. These are the commands I had to run. I will spare you the error messages and detours.

{% highlight bash %} ~ $ ruby -v ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin14]

Commands to install rbenv and latest ruby

brew doctor brew update brew install rbenv echo export PATH=$HOME/.rbenv/shims:$PATH >> $HOME/.bashrc brew upgrade ruby-build rbenv install --list rbenv install 2.5.1 echo 2.5.1 > ~/.rbenv/version rbenv rehash rbenv versions gem env gem install bundler

~ $ ruby -v ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin15]

Re-install the gems in the blog installation directory

bundle install bundle show jekyll bundle exec jekyll serve {% endhighlight %}

These are essentially the commands I ran, roughly in that order but it got a bit confusing somewhere in the middle.

I decided not to run rbenv init, the only mandatory thing it does is add the shims folder to the PATH. So I just did that myself. #

Today’s links:

2018/07/04 #

Description of my freelance NodeJS and automation software services

Update - This is the blog post that constituted the original services description, it is no longer being updated and has been replaced by the services page.

The consultancy service is very straight forward, it covers any aspect of building cloud web applications and is delivered via Skype call. It is customizable to the clients needs but generally covers architecture, building and deployment as well as things like efficient setup of developer environments.

The infrastructure service deliverable is a running cloud based system ready for web application deployment. There are lot of tweaks necessary over and above the vanilla Ubuntu install that your cloud provider offers, such as machine access, cloud provider environment setup, firewall rules, logs, 3rd party applications installation and configuration, user accounts, aliases, SSL certificates, cron jobs to name a few. This services covers all these and does it at 3 complexity levels depending on the size of your installation.

The maintenance service is aimed at maintenance and support of a web application infrastructure. It should be used for upgrades, improvements and customizations to an existing infrastructure.

The development service covers the development of NodeJS based web applications and could cover any type of application. It also covers the development of software based automation and workflows. I recommend doing some consultancy services sessions first to determine the application specifics before starting a development services engagement.

The custom training service covers the creation and delivery of custom training on web development and automation/workflow design and implementation. These can be made according to customer needs, could involve a systems discovery and consulting phase, and delivered either onsite or remotely via video conferencing tools. Other training topics might be possible.

The writing service is aimed at internet publications that wish to create content for their websites. It could cover any aspects of web development, and might be in the form of a tutorial or perhaps an essay expressing an opinion on a particular aspect of modern technology. The details could be fleshed out via a short consultancy service.

The pricing page has the full list of the packages for each service. If you would like to purchase some software services or products visit the payments page. #

Today’s links:

  • Google delay on ads standard for EU privacy law creates compliance mess www.reuters.com #

  • Wikipedia Italy Blocks All Articles in Protest of EU's Ruinous Copyright Proposals gizmodo.com #

  • Google app developers raining on your Gmail parade - what are the chances! www.theverge.com #

2018/07/03 #

Today’s links:

  • Belgium completed a remarkable revival as they came from the World Cup abyss and beat Japan to reach the quarter-finals www.bbc.com #

  • TaTaTu has raised funding to develop its blockchain-based social entertainment platform and finance the production of movies blocktribune.com #

  • ‘Everyone is breaking the law right now’ - GDPR compliance efforts are falling short digiday.com #

  • Blue light, prevalent in modern UIs, is aesthetically pleasing, but poses health risks; designers should switch to deep red/orange as the military did long ago www.fastcodesign.com #

2018/07/02 #

Today’s links:

  • Homes 'Earn' Minimum Wage or More in Almost Half the Nation's Largest Cities www.zillow.com #

  • Musk says Tesla pushed out 7,000 cars last week, meeting goal of 5,000 Model 3s www.cnbc.com #

  • 500px will no longer allow photographers to license their photos under Creative Commons www.theverge.com #

  • Midnight is a Jekyll theme for GitHub Pages github.com #

  • Minimal is a Jekyll theme for GitHub Pages github.com #

  • So Simple is a simple Jekyll theme for your words and pictures github.com #

  • Unsplash - Beautiful, free photos - Gifted by the world’s most generous community of photographers unsplash.com #

2018/07/01 #

Today’s links:

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