Software build dependencies are a risk in general. A specific risk less often discussed is that libraries and packages might become unavailable.
Articles
Here are some ideas that may help knowledge workers in their approach to assignments or projects.
Here are some ideas that may help knowledge workers in their approach to assignments or projects.
There is going to be someone out there who is a good fit for what you made. They will like it, and even though you might not know they exist, and they forget about you the moment a notification comes in on their phone, something good was accomplished there.
What is HTTP, actually? A short description the Hypertext Transfer Protocol and what happens when we want to access a web page.
Preserving project speed and enjoyment -- We can keep up a high iteration speed by keeping things simple and only introducing tools and processes when we absolutely have to.
It is a good idea to put some keywords in your landing page title. Without keywords in the title I can't find you anymore next week when I need you.
An exception resulting from an annotation cannot be caught in a regular try / catch block because the result of the annotation is computed before our code is executed.
This page is about file checksums for situations where the distributor of the file also provides the checksum. If available, we always want to compare a given checksum with the checksum of the file we downloaded.
Thinking out loud about where to place notes, as opposed to blog posts, and how to get them easy to find.
It is possible to automatically block a git commit if it makes a known mistake. This can be done with a pre-commit hook.
By forking many projects some people end up with too much on their profile page. Their original projects are hard to find. If you want to check out a project you can make a local clone. When you fork a project online, you are offering that project in that state. People might take you up on your offer and start using it as-is. You have a responsibility there.
Words alone are sometimes not sufficient. Diagrams can help us understand a situation in new ways, assisting with our thinking as well as communication. If you don't diagram already, try it out!
Giving a demonstration of a future product or feature can be a great way to check if development is on the right track. Unfortunately stakeholders don't always understand that a demo can be very far from a finished product.
Which are they, what should we do with them instead, and how can we avoid mistakes?
It is healthy to discuss negative parts of situations. When we are part of such a discussion, it is good if we can turn it in to an uplifting or constructive conversation.
Instead of using either CSS media queries for operating system theme preferences or a Javacript-based theme selector we can use both. An automatic CSS-based switching and JS-based switching where the user can choose.
A fullscreen window needs to have an obvious button to get out of fullscreen mode.
Self-managing teams are great. People feel their shared responsibility and come together to solve problems. There should be someone that is authorized to make decisions on specific topics. And the topic 'people' should not be forgotten.
In this article I explain two ways in which we can squash commits.
When we let Twitter generate a 'tweet this button' for our website, Twitter includes a javascript file. We don't need to include this javascript file. The share button can be just a hyperlink. Twitter uses the referrer header to determine which URL the user wants to tweet about.
The javascript …
Applying remote changes to our local branch without an additional merge commit
In this article I want to talk about squashing (flattening) a series of commits in to one commit. Squashing is a good tool to have, but not everything should be squashed away. Intermediate commit history can have value.
Resources with URLs that do not specify the root will not be loaded if the user visits a subpage directly.
When moving our website to a different CMS or framework we might end up with a different URL structure. This is bad for search engine rankings and people's bookmarks. To avoid problems we can use rewrite rules and redirect rules.
When I wanted to make drag and drop functionality I found there were plenty of tutorials out there. I am adding a few more words on the topic because I had to find workarounds for issues that I didn't find mentioned elsewhere.
Data that our code writes to a file may not be accessible immediately after writing. One reason is that some output stream implementations use buffers, and prefer to write out their whole buffer in one go. In these situations, if we want to be sure the data can be read …
Our websites contain directories with files that are not usually read by humans. Examples are directories containing Javascript files or files for XML feeds. Sometimes we want to disallow directory listings for these directory contents.
There are two good ways to include our static HTML documents inside the main HTML documents that make up our website. One is to include them server-side, before the server sends the main HTML document to the web browser. The other is client-side loading where we have Javascript on the …
I occasionally make a mistake in a professional environment. Mistakes will be made, that is just how it is. We do have to keep looking at how we handle them and make sure we are not making a habit of it. Here I share some of my thoughts on the …
Unfortunately there have been several problems with my macOS install, and with the Unix ports I install with brew.
There has been a time when the Finder appeared to not get an updated list of inodes. After moving files with the Finder the files appeared in the original directory as …
Suppose you have received a 10k line file of text in a format that is difficult for you to work with, like XML. You want to get some specific information from that file, and realize that getting that information by hand will take a long while.
In some cases an …
Ah, the often mentioned "work smart, not hard". As well as "not invented here"...
I had set out to re-launch my blog. Somehow, in my enthusiasm, I ended up writing a static website generator almost to completion. The only two remaining topics were the two topics that most looked like …
If you are using a GNU/Linux distribution and are having trouble finding your printer in print dialog screens, the following may be of help to you. Make sure you have CUPS installed, the Common Unix Printing System. Start cups first, on my system this can be done by executing …
This is a small note on programmatically creating scalable vector graphics. For this we use Python with svgwrite which was simply the first tool I found. We will not be comparing different tools.
When creating graphics for posters, programs, or the web there are some advantages in using scalable vector …
We want to set up a secure FTP server (let us call this 'the service', to avoid confusion). This service will receive
backups.
The service (and it's clients) don't need access to any unrelated commands. So we will make an empty PATH
and won't
let the users perform a normal …
Observations after testing Crashplan.
The Crashplan test-setup has not been able to connect for a while. As a result these notes are partially from memory and could not be revisited. The user interface is confusing, buttons are placed far away from the context they operate in. There are buttons that …
Is your ownCloud client saying Failed to connect to ownCloud: Connection refused
?
A possible cause could be that the webserver that is serving your ownCloud does not have SSL enabled. In this note I will describe how I did that for my own Apache 2 install. If you do a …
I recently bought the SuperMicro X7SPA-H-D525-0 motherboard. The Micron memory listed as compatible by SuperMicro was no longer available. I then checked Kingston's compatibility list. It listed two options for this motherboard.
Some blog- and forum posts mentioned using similar Kingston memory for similar SuperMicro motherboards. Taking the Atom D525 …
Over the past two years I've posted some writing on a different domain. That is a shared Wordpress site which hasn't been seeing much love (the other party hasn't made any posts). I've been thinking of also writing some smaller notes, things that I tend to forget and then have …
Recently I saw code that looked like the following:
function handleFileRequest
variable file = getFile('storage/${params.filename}')
send file
This code readily accepts a user-supplied piece of information to retrieve a file. This is very wrong, luckily it was caught in a code review.
It is wrong because it allows …
One of the projects that I have been working on lately is a standard C# codebase, a framework of sorts, for a particular niche category of software. This is for a client that develops and uses a lot of this kind of applications in-house. Many of these have been written …
A short while ago I made a post about a daemon that I have developed. This daemon needs information about connected storage devices and their mounted partitions. There is currently only a Linux version. I tried to develop a Windows version too (in the same code base even) but that …
I am working an a daemon (service) that will automatically back up all mounted partitions on USB storage devices, with or without prior configuration for a particular drive. In it's simplest form, the daemon will back up any USB storage device that you plug in. This includes thumb drives and …
A couple of days ago I wrote a small housekeeping script (in Python), that lists stale torrent data. I use this to help clean up the directory that I let my torrent application store the torrent data to. The script will list those files that are not part of the …
For quite a while, I have had a backup solution that I was not happy with. I have now remedied this. I am using a small server, a HP Proliant Microserver N40L. I tend to use Debian-based GNU/Linux systems at home. While I do eventually want my new solution …
I am working on a small backup utility meant to add value to other, proper backup utilities. At the least, I want this program to run on any vanilla install of a (semi-) recent Linux or Windows desktop version. I would also like to keep a small file-size, and prefer …