Tuesday, July 31, 2018

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

Thousands download 3D-printed gun designs 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 #

Saturday, July 28, 2018

Keep a changelog - Don’t let your friends dump git logs into changelogs keepachangelog.com #

Automate Versioning Using Bitbucket Pipelines (NodeJS) medium.com #

From the slightly opinionated side of things - Why You Shouldn't Use A Web Framework dev.to #

Behemoth, bully, thief - how the English language is taking over the planet theguardian.com #

Beacon API - JavaScript Web API for sending small amounts of data from browser to server without waiting for a response 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 #

Friday, July 27, 2018

Simple Steps to Optimize Your App Performance with MongoDB, Redis, and Node.js hackernoon.com #

London to Sydney under three hours - 2,000 supersonic jets to link hundreds of cities traveller.com.au #

This Woman Has Been Anonymously Funding Female Artists for 22 Years mymodernmet.com #

Thursday, July 26, 2018

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 nytimes.com #

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

Co-founder of nudist anti-Putin group found dead in her Paris apartment boingboing.net #

Wednesday, July 25, 2018

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

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

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

Tuesday, July 24, 2018

U.S. Breaks Up Fake I.R.S. Phone Scam Operation nytimes.com #

The Ambien Diaries - drugs, voices and SWIM popula.com #

Russian hackers reach utility control room - Mr. Homer - "Their goal is to disguise themselves as the people who touch these systems on a daily basis" politics.slashdot.org #

A Nanoscale Look at a Complete Fly Brain - Fly brain neurons fully mapped in 3d cemag.us #

SpectreRSB - Spectre/Meltdown type attack that bypasses all the mitigations put in place for the original Spectre/Meltdown it.slashdot.org #

Monday, July 23, 2018

A brief history of fake news bbc.com #

The liar’s dividend, and other challenges of deep-fake news theguardian.com #

cdenv - A simple virtual environment manager for Bash and Zsh github.com #

Friday, July 20, 2018

The Best Remote Business Might Be On Your Doorstep - Remote local businesses tropicalmba.com #

Work less, get more - New Zealand firm's four-day week an 'unmitigated success' theguardian.com #

Chance the Rapper buys local news site Chicagoist to amplify 'diverse voices' nbcnews.com #

Reid Hoffman of Airbnb on scaling a business tim.blog #

Thursday, July 19, 2018

Why France’s Victory Matters
Liberalism triumphed over a history of ethno-nationalism medium.com #

Reddit reinvents the chat room with community chat wired.com #

When Phil Mitchell met Trump - Coldwar Steve and his Brexit Britain mashups theguardian.com #

Wednesday, July 18, 2018

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 #

Saturday, July 14, 2018

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

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

Dr. Billy Wayne Ruddick to Vice President Palin - "I demand an Apology" truthbrary.org #

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

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

Friday, July 13, 2018

The Third Wave - How many Chinese entrepreneurs are landing on Indian shores factordaily.com #

Nodejs Security - ESlint Postmortem for Malicious Packages Published on July 12th news.ycombinator.com #

Guido van Rossum - "I'm basically giving myself a permanent vacation from being BDFL, and you all will be on your own" mail.python.org #

Thursday, July 12, 2018

Does "Weird Facebook" Have A Future In Zuckerberg's Dream World? buzzfeed.com #

Resilient, Declarative, Contextual - An exploration of what makes CSS different to other programming languages keithjgrant.com #

Intro to Feature Policy - It's like CSP but instead of controlling security, it controls features developers.google.com #

How the Blog Broke the Web - Reminiscing about the web before the tyranny that is reverse chronology stackingthebricks.com #

Wednesday, July 11, 2018

Discovered yesterday that iTerm2 has a password manager feature iterm2.com #

Microsoft introduces the Surface Go, starting at $399 MSRP, it’s the smallest and most affordable Surface yet blogs.windows.com #

Show HN: Open Source Identity & Access Proxy which authenticates and authorizes incoming HTTP requests news.ycombinator.com #

The div that looks different in every browser twitter.com #

Sunday, July 8, 2018

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 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 cnbc.com #

Saturday, July 7, 2018

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.

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

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

James Clark's honours Bourdain in Vietnam (I can relate to how he felt) nomadicnotes.com #

Friday, July 6, 2018

Continue a markdown numbered list after adding content between items stackoverflow.com #

How to Undertake the Artist’s Journey tim.blog #

EU Parliament Votes To Step Back From The Abyss On Copyright For Now techdirt.com #

Reddit - one of the world's most popular websites - is trying to cash in through advertising cnbc.com #

Early-stage News - Articles and interviews highlighting early-stage startups and side-projects earlystagenews.com #

URL builders - Generate custom campaign parameters for your advertising URLs support.google.com #

What Belgium’s World Cup team says about the spread of English across Europe qz.com #

Thursday, July 5, 2018

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.

Uganda leader says social media used for 'lying', defends tax for access reuters.com #

How NASA chooses tech for the International Space Station, and why AI could help get us to Mars zdnet.com #

rbenv vs. rvm - Finally a sort of good explanation of all this ruby jargon metova.com #

Create a Multi Blog Site with Jekyll garron.me #

Wednesday, July 4, 2018

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.

Google delay on ads standard for EU privacy law creates compliance mess 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! theverge.com #

soul typecast / no reservations - jon spencer blues explosion live @ circolo artisti (2012) m.youtube.com #

Tuesday, July 3, 2018

Belgium completed a remarkable revival as they came from the World Cup abyss and beat Japan to reach the quarter-finals 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 fastcodesign.com #

Monday, July 2, 2018

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

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

500px will no longer allow photographers to license their photos under Creative Commons 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 #

W3.CSS is a modern CSS framework with built-in responsiveness w3schools.com #

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

Showing the last 31 active days.

For more content, use the navigation tree in the sidebar to explore the full archives.