Local-FirstSoftware: You Own Your Data, inspite of the Cloud


via https://martin.kleppmann.com/papers/local-first.pdf Cloud apps like Google Docs and Trello are popular because they enable real-time collaboration with colleagues, and they make it easy for us to access our work from all of our devices. However, by centralizing data storage on servers, cloud apps also take away ownership and agency from users. If a service shuts down, the software stops functioning, and data created with that software is lost. In this article, we propose local-first software, a set of principles for software that enables both collaboration and ownership for users. Local-first ideals include the ability to work offline and collaborate across multiple devices, while also improving the security, privacy, long-term preservation, and user control of data.

This abstract outlines a different approach to cloud backup.  Rather than backing your data up after it has been updated how about starting with your data locally and send copies of the data to the cloud as backup.  Interesting!

5 Things I love about Strapi, a Node.js headless CMS GraphQL Headless CMS


Via https://www.jsmonday.dev/articles/44/5-things-i-love-about-strapi-a-node-js-headless-cms One year ago I started to develop the backend for the website you’re currently browsing on.
I’ve tried different approaches, different technologies and even different programming languages.
Then I started to look for a CMS that could help me to integrate a number of the feature with ease… but I couldn’t find a CMS that satisfied me at all.
Then I discovered Strapi, an amazing open-source headless CMS that had everything I was looking for.
I’m not going to review it in depths, I just want to focus on the five things I love about that awesome CMS:

  1. Get started quickly, more so than WordPress
  2. GraphQL from the get-go
  3. Permissions
  4. Relations
  5. Programmable

Ok, I gave it away, but this is pretty amazing.

Why you should use SVG images: how to animate your SVGs and make them lightning fast


Via: https://www.freecodecamp.org/news/a-fresh-perspective-at-why-when-and-how-to-use-svg/ The web development sector is growing at a rapid pace, and SVG (scalable vector graphics) images are becoming more popular. As vector images, SVGs are composed of mathematical equations that define the positioning and color of lines and curves which make up graphic shapes and text in XML format. SVGs are used for icons, logos, graphic designs, and fonts.

Using SVGs is an easy choice once you consider the advantages they offer. For a client, you get superb quality on any device. For us as developers, there are even more reasons to use SVG.

SVG are images that are drawn with lines and curves rather than a bunch of dots.  When you scale an SVG up or down the mathematics of the lines and curves is such that it scales well and looks sharp no matter what size it is.  When you scale dots you reach a point where there aren’t enough of the proper colour dots to fill in the white space.

SVG can also be used with computerized numerical control, laser etcher/cutters and 3d printers.  The difficulty is the tools used to create SVG’s like Inkscape and Vectr are not as full of features like Adobe and Pixlr.  There are some converters to take raster images and convert them into SVG’s but the results are typically terrible.


Sending Email with Attachments using SendGrid and Node.js

via https://www.twilio.com/blog/sending-email-attachments-with-sendgrid You’re sending emails from your Node.js app with the Twilio SendGrid API. Now you want to attach files to your emails. The Twilio SendGrid API makes it very straightforward to include attachments to the emails that you send. In this post, we’ll attach … more

Using Twilio email service to send messages is a clever hack.  It does require a Twilio account and there are some limits.

10 HTML5 Hacks Every Web Developer Should Know


via https://dzone.com/articles/10-html5-hacks-every-web-developer-should-know?utm_medium=feed&utm_source=feedpress.me&utm_campaign=Feed%3A+dzone%2Fwebdev  HTML5 is an attractive language to pick up as a beginner or even a non-coder. Because let’s face it, whenever you interact with a website, you are dealing with HTML. Knowing how to navigate your way around the code can save you a lot of time (and even money) when it comes to doing small…

My favourite tip is Emmet which automatically write HTML code blocks to help those folks like me who can’t remember the syntax.  There are a few other tips here that are worth the read.

Usability task scenarios: The beating heart of a usability test


via https://www.userfocus.co.uk/articles/writing-usability-task-scenarios.html  At the heart of a good usability test sits the task scenarios. I’ve written about the different kinds of task scenario in the past. But how do you come up with task scenarios in the first place?

This article describes the approach I use. First, I’ll identify short, one sentence, test tasks. Second, I’ll expand these into task scenarios. Third, I’ll assess each scenario using a checklist. Finally, I’ll pilot test the scenarios with users.

This is an excellent article on starting with a short general task, then defining why they are doing this task. How usable an application varies between users.  For a complete test, you need to also consider 508 compliance and how this affects usability.  Not all applications have a user who is vision impaired.  Watching someone struggle with a screen may not be a usability issue; it’s a user issue.  How do you tell the difference?

The Mandalorian Is Here and Star Wars Will Never Be the Same

via https://blog.adafruit.com/2019/11/15/the-mandalorian-is-here-and-star-wars-will-never-be-the-same-starwars/  Via gizmodo I’m sitting here on my couch having just watched a live-action Star Wars TV series and I still can’t believe it. This was George Lucas’ dream. A Star Wars TV show that could stand up to the quality of his movies. But, in the past, it simply couldn’t be done. It was too expensive…

The first two episodes of this Star Wars spin-off are just awesome.  I’m giving the secret away but the fight scene at the end of episode 2 just caught me off gaud.  Highly recommended.

Improving the Customer Journey with Flatfile’s Data Importer

via SitePoint  Improving the Customer Journey with Flatfile’s Data Importer — SitePoint This article was created in partnership with Flatfile.io. Thank you for supporting the partners who make SitePoint possible. Close your eyes and imagine what it is like to import data into your application. Now open them. Does it look something like this? When creating a new or improving an existing product, building useful features is,…

Think about an ETL tool that you use through the web.   Sounds kinda odd but flatfile.io  is a very effective and feature-filled tool for ETL.  One of the cons is that it’s $100/month with a 50k row limit.

16 Rules of Effective UX Writing


via: UX PLanet  https://uxplanet.org/16-rules-of-effective-ux-writing-2a20cf85fdbf UX writing is the practice of crafting UI copy that guides users within a product and helps them interact with it. UI copy includes buttons and menu labels, error messages, security notes, terms and conditions, as well as any instructions on product usage.

The primary aim of UX writing is to settle communication between users and a digital product. In this article, I’ll provide some practical tips on effective UX writing.

Some of these rules may seem simple and apparent but, I often forget them.  These are rules not laws so have some flexibility when following them.  My biggest problem is using the passive voice and Grammarly comes to my rescue there.

Reading and Writing YAML to a File in Node.js/JavaScript


o-a-file-in-node-js-javascript/ Introduction In last few years YAML, which stands for YAML Ain’t Markup Language , has become very popular for use in storing data in a serialized manner, typically configuration files. Since YAML essentially is a data format, the YAML specification, … more

YAML sounds like some exotic animal from the Asian continent.  Yet Another Markdown Language is used in Swagger API’s and other configurations files.  Reading in JS has been a PITA but this appears to be a solution.  I plan to use it in the next YAML project I come across.