What are Classless CSS Frameworks? Classless CSS or Semantic HTML website frameworks are becoming quite useful for quickly building websites. They’re simpler to work with than the traditional alternatives like Bootstrap and Tailwind. So-much-so that complicated website templates based on utility type CSS frameworks may become a thing of the past. These sorts of frameworks are focused at website developers or engineers rather than website designers. Semantic design engineering, rather than designing as a craft itself. Dedicated Web Designers may have a more specific sense of what they want, and what works well for their use-case, where as devs tend to appreciate modern design based on good standards without fussing too much other the specifics. i.e. Instead of using a complicated utility driven CSS/HTML frameworks. You can use a CSS framework that works with raw HTML tags, at the expense of a little design flexibility. [!INFO] Website Template Sidenote Although you might now be able to achieve similarly beautiful results with modern Classless CSS frameworks… Here’s a couple of my favorite traditional utility based templates catalogues HTML5 Up, Pixelarity and maybe even Creative Tim. A “Classless” CSS or semantic HTML framework is simpler than traditional utility based frameworks like Bootstrap or Tailwind which leverage descriptive classes on HTML elements. These traditional frameworks are helpful for creating sites easier than coding without any at all. They standardise common design styles, and provide a utilitarian shorthand for them, but they also complicate the DOM’s HTML markup with many utility type classes like...2024-09-09
This started life as a completely unrelated excise in abstractly defining common tech-related professions like you would for communicating tech-infra, but it ended up being this silly mess of unhealthy tech-company stereotypes.
Please email in your additions, corrections and protests at the bottom of the post.
You’re meeting up with friends for your usual pizza party on Wednesday evenings, but only unhealthy tech stereotypes and other related professions show up.
2024-06-07
Taking Your Stuff Back In Part 1 of this miniseries on personal data privacy and security, I highlighted some data security threats the average person may now face online from those you should trust rather than just from “hackers” or obvious bad actors. In this second part, I’ll focus on some actionable points you can consider and start making progress towards should you want to. Taking back control of your data doesn’t need to be some massive and complicated undertaking. You can always take a slow and progressive change towards controlling your own data: 1. Plug The Leaks One of the first things we can do to combat your current lack of data control (and to guide the future of commercial data privacy), is to simply only use and pay for those services with practices that you agree with. To do this, it helps to seek out and educate yourself about your privacy security and practices online. TODO edu links incoming! e.g. If you don’t like how Facebook, Reddit, TikTok or Google handle privacy practices or security of your data? Don’t pay them or just don’t use their services where possible. And, keep in mind that if you’re not paying for the service directly, and you’re not contributing to it somehow like an open-source passion project… Your involvement and data is sold to someone else as the payment. By simply choosing alternatives to those services, such as giant social media companies or file storage systems, you can hit them where...2024-02-24
The term “decentralised” is thrown around a lot nowadays, and it’s almost lost its meaning for the general public. However, getting back to basics with lasting and reliable technology is so important for your privacy, security, and data longevity. Especially when long-term and seemingly ever-stable commercial services crumble or corrupt with such regularity as they do now in the last few years. Think of all the data breaches in recent years, the extremely low fines for consistent lawbreaking companies, and long-standing services being purchased and/or taken offline at the whims of uninterested venture capitalists. We naively used to rely on these free online services as the backbone of the consumed internet. But now, anti-consumer practices and excessive commercial gain (gain beyond that which is required for services to operate profitably) are leading their users and the internet back in to the dark ages. Data Dark Ages I once read online, although I can’t remember where (a sentence that never ends well… -citation is always needed!-) that we’re living through a new sort of “dark age” as far as the historians are concerned. And, although the first part of this post may lead you to believe, I don’t actually mean “dark ages” in terms of horror and despair, but rather dankness of actual information loss on a grandiose scale. e.g. When is the last time you came across niche but important content from a long time ago? (a long-time ago, being only 6+ years) If you’re old enough, think back to...2024-02-23
Home Assistant has some useful features built in, even if they’re not particularly well presented.
For example, you can actually trigger any automation from a basic HTTP GET request via a Webhook.
All from the GUI, without messing with endless YAML.
2024-02-01
Long term readers may remember that I was a fan of the social network previously know as Twitter. Once upon a time, it was a seemingly rock-solid and an everlasting social platform. It was often a good experience, and an unmatched communication channel for when customers were ignored by uncontactable corporate types. It was also great for gathering, storing and displaying feedback from a large pool of people but that has unfortunately changed in recent years partially due to the misguided whims of one particular arguably-overpowered billionaire. The feedback focused functionality has now gone, and it’s far from the open and reliable platform it used to be. And so, the blog needs a new comment system again! Going forward, I won’t so easily overlook the obvious red flag of a non-profitable and proprietary centralised service giants. 🚩 Although there are some up-and-coming social platforms alternatives like Mastodon. I don’t think they’re ready just yet, and I’d rather not have a dedicated database with backend either. There are few good third-party blog post comment systems out there for static sites, and even some DIY options too, but after browsing the solutions used by some of my favourite blogs, I’ve decided to stick with a good old fashioned solution. Email. The Email Reply Button A few notes on mitigating some of the more obvious issues with email only comments or replies to blog posts: 1. Open Email Conversations If comments from readers only came in via private emails, the valuable public discussion...2023-12-24
Let’s travel back in time to the internet’s teenage years, to when it was common to follow a personal blog, or join an open forum focused around a particular topic or community, without using any sort of mass-social media platform.
You’d simply keep up to date with your small corner of the internet using an RSS feed or email digest.
Nowadays, the default online behaviour is to consume an endless feed of low quality content, fed to you for free by a company who’s desperate to make money indirectly from your behaviour. All while, basing their success on some inhuman metric rather than your assessment or happiness with the service.
2023-11-27
There are a bunch of ways to deal with the plethora of logs when self-hosting or running a homelab.
And, some are more sensible than others.
As with everything Linux setup, there are simple ways, complicated ways, overly complicated ways, the enterprise ways and the complicated enterprise ways.
If you’ve got a low power requirement or low headache requirement, you may prefer the simplest, most native approach when dealing with non-critical systems like a homelab and self-hosted services.
i.e. I’d rather not host an application for logging when there are some great native alternatives.
Here’s some groundwork information and a few great tools that will get you get started with logging. I’m going to cover:
logging basics on Linux
lnav
2023-11-27
You might already be using the cron scheduler to run a daily bash script, perhaps you’re backing up files using rclone or rsync?
What happens if that script runs for more than 24 hours (or whatever time interval you’re using)? Bad things, as multiple instances of backup scripts can interfere with each other and corrupt data.
This bash one-liner stops a script running again if it’s already running elsewhere.
2023-06-01
If you’ve not come across Syncthing before, it’s an open source file synchronisation replacement for commercial big-tech services like Dropbox and Google Drive.
You configure it, run it and control your data. There’s no central server that stores your data, no company with other interests. It uses a clever P2P (peer-to-peer) file synchronisation technology called BEP (Block Exchange Protocol) to sync your files back-and-forth between devices directly without a storage server in the cloud.
It’ll sync all your files and photos from your phone like Dropbox Camera Uploads or Google Photos automatic backup, replacing all but the public sharing features of Dropbox or Google Drive.
2023-02-07
Containerised local development is often the way forward for small software development teams. It allows everyone to replicate the same working environment without spending ages configuring their individual systems.
This goes especially for the nowadays more uncommon languages such as Ruby - and if you’re not ready to make the leap to Hugo - running the ruby based Jekyll in Docker is a great solution for local Jekyll web-development.
Setup Jekyll in Docker and Docker Compose
First, make sure you have docker running in the background, whether via the docker engine or Docker Desktop etc.
Then, create a docker-compose.yml file in the root of your Jekyll project with the below YAML content.
Run this docker compose file to launch a container with the official Jekyll docker image, and your Jekyll sites files.
Once the container has fully loaded, you can access it via http://0.0.0.0:4000 and since we’re only running this locally the lack of SSL/HTTPS should be fine in most cases.
services:
jekyll:
image: jekyll/jekyll
volumes:
- .:/srv/jekyll
- ./vendor/bundle/:/usr/local/bundle
ports:
- "4000:4000"
command: jekyll serve --force_polling --drafts
2022-12-30
tar is one of those commands that used all the time in the terminal on bash, but it’s not easy to remember the flags or parameters for compression and extraction of .tar.gz files.
Here’s my dumb and easy to remember method for remembering the tar command options. (I don’t remember where I first came across this).
2022-08-08
There’s a lot of great ways to deploy code into production nowadays.
Some cloud providers even handle deployment themselves, you setup a repository in Bitbucket or Github, connect the Cloud provider and they’ll build and deploy the code based on your specifications. There’s also a bunch of third-party providers that can do this for you, acting as the “deployment middle man”.
This is great for teams or complex systems with complex build requirements, but what if you have a simple or legacy app that doesn’t support these methods and you don’t want to continue relying on manually uploading code via SFTP (or FTPS… shudder)?
Well it’s not an ideal solution but you can use Rsync on Github Actions for this. Github also has a generous free plan so it usually doesn’t cost a penny - depending on how often you deploy.
2021-10-02
Those of us with dyslexia know that writing great emails (or any other written communication for that matter!) can be tricky at the best of times. Being able to check your writing with a text-to-speech app is a great help, and you may already be aware of the say programme for TTS on macOS. It can be setup with a keyboard shortcut to speak aloud any selected text. You can even get real human-sounding voices, rather than programmatic-robotic voices from back-in-the-day, they use real inflections and pick up on grammar too. This sort of tool is called “Advanced TTS” or Advanced Text-to-Speech, and it’s great for checking the flow of your emails. However, a great TTS is harder to get on a Linux desktop. There are a few easy-to-install TTS applications on the various Linux repositories, but they’re old-school at best (think 1990s Sci-Fi robot tones). These sorts of TTS apps are not the most helpful for checking human inflections and grammar in a chunk of text. There are some great Firefox web-browser add-ons for using advanced AI-based TTS for selected text on webpages. However, these add-ons won’t help outside the web-browser, and you may be sacrificing your privacy to the operators of the add-on as they sit between you and the advanced TTS providers like Google Cloud. Thankfully, all the big-players in the cloud now offer their own TTS or Text-to-speech APIs. This means that we can use them pretty easily on Linux, with just hacky script, some dependencies,...2021-05-10
So you're looking for a super simple, light-weight, slightly hacky, solution for encouraging social engagement, promoting excellent customer feedback and managing comments on articles and posts?
All with little effort and no extra services.
A few lines of CSS, and the right call-to-action button will do.
Here it is - the no-plugin, no-service, no-faff Twitter comment system for blogs and other media engagement.
2020-02-26
I’ve been <p>Learning the hard way that; Pain, Demotivation and Low-productivity can creep-up when you’re knee-deep in a startup or long project. You already take the time to ensure your tech and business model is setup and working well for you - so why not your teams physical health too?</p>
Once you fix your workstation - you'd be surprised at the subtle low-levels of physical pain relief, as well as the acute pain relief too. You become more motivated, more productive and much more engaged in the same-old-tasks - seemingly like magic.
Nurture yourself and those around you, before you fall apart and seize up like an old machine trying to reach the dividends.
A London based company I've had the pleasure of working with teaches such Magic to mere-mortals like ourselves, via eLearning...
2020-01-16
You can now connect Starling Bank to Zapier with full functionality (a great IFTTT alternative) and connect Starling to IFTTT with basic functionality.
This makes it super-easy to integrate your bank with thousands of other online services, even if you're not a programmer.
Even if it is a little unofficial.
2020-01-14
'tmux-hints' is a small shell script I wrote to display a live cheat-sheet - or key-mapping notes - in a terminal running tmux.
As you switch from one program to another, your notes update automatically with that programs notes instead. Great for new key-combos and noobs alike.
After gaining some popularity, mainly from Reddit, I had some great feedback ready to put into action.
Version 0.3, improves on existing concepts and implementation mainly thanks to /u/vogelke and others commenting their experiences.
2019-12-23
TLDR; Thanks for everything & I'm now available for hire.
A quick update - thanks for the recent support on my article "Digital Will" a backup-plan for business, the support for my recent side-projects like the personal finance/net worth tracker & the feedback from readers too! ?
Starting in mid-December 2019 - you'll spot the "dusty-red button" on the side of this blog when I'm available for freelance or contract consultancy work.
I focus on technical business management for software and non-software businesses. Passionate about finance, sales, strategy and automation - I'm also a battle-proven fullstack developer i.e. LAMP, serverless, front & backend.
2019-12-16
TLDR; Use a Password Manager like 1Password, it makes your day-to-day life easier, more secure and can protect yourself & those around you in an emergency too.
If you're an individual, or even a key-player in a SME business, you've probably already come across the nightmare situation where something vital becomes that-bit-trickier when the person holding the digital-keys is missing.
What would you do when your colleague is sick and you need access to their account?
All the careful planning will only get you so far, sometimes services disconnect and you need access to an account right-now.
The situation only gets worse when you die, how will your loved ones access your accounts quickly when they need too? Here's the simple solution.
2019-12-10
TLDR; Track & analyse button clicks (events) on website pages with Google Analytics by pasting these few lines of jQuery/JavaScript code onto your site under the Google Analytics code.
It'll find most common button types and send clicks to Google Analytics for analysis.
The jQuery/JavaScript code for tracking GA button click events is here hosted on GitHub Gists:
View the Code Gist on GitHub
2019-10-25
A great replacement to Sublime Text 3's SFTP plugin with a similar setup and workflow, but with the power of Vim.
Whether you're a hardened vim veteran or new to vim for web development using SFTP is now the secure FTP standard over SSH - it's become a common feature built into most graphical IDEs.
2019-09-16
Although I'm sure most of my readers are already aware, I've been working with some excellent companies to provide simple micro-service-style tools for modern small-businesses and freelancers and today marks the day that our first digital business tool is released - although it's still very early days, you can sign-up and start using it now.
Atilium.io - Small business tools.
We are all connected, to everything, at all times, without thinking about it via the internet - shouldn't our work be too?
"Atilium" (pronounced at-illy-um) will bring our in-house tools to the public, helping small teams and individuals connect with their customer audiences easier and efficiently in a digital-first world where traditional services struggle to keep up and modern services are out-of-reach for the everyday person.
Atilium Phone - Professional phone numbers for small teams and freelancers.
2019-08-19
The evil art of appending CSS code.
Unfortunately CSS has a tendency to be endlessly appended, especially in large codebases and lazy or underfunded devs - this usually spells bad news for future development and a full refactoring is soon in order!
However, appended CSS has it's time and place and this is one of them...
A WordPress.org "Twenty Fifteen" theme modification to look just like "Hyde," a fantastic theme for Jekyll (another website/blog software somewhat like WordPress).
2019-08-13
Being comfortable using terminal means nothing when getting used to new shortcuts, key-combos and custom mappings can be a memory-game.
I've ended up with a bunch of note files containing hints for all the things I should have remembered by now. There's a better way...
2019-07-17
One of the easiest things you can do to improve any situation is getting a good lay-of-the-land.
From business to personal life collecting info, mapping out the data and simply being informed can do wonders for progressing towards your goals - and the same goes for personal finance.
2019-03-31
Wiring in - getting down to some standard bug-squishing or building that mental-map is almost always easier with the right motivation in any profession.
2019-03-19