Articles


Elements of Sustainable ICT pt. 10 (On Sustainability In ICT Business Context)

Telco is about logistics, you can think about it as in transferring data (goods) from place A to place B. Telco uses the most energy in Mobile Access (first principles dictate this).

2025-03-27


How to convert a MD to a PDF with Pandoc

Pandoc is a quick tool for making documents into other kind of documents. Here's how to convert a Markdown-file to a PDF.

2025-03-15


Elements of Sustainable ICT pt. 9 (On sustainability mindset)

There are design condiderations for designing an ICT-system. Some of the needs are environmental, social, economic, individual and tech related. The scope of the effects are direct, indirect or structural.

2025-03-12


Elements of Sustainable ICT pt. 8 (On AI)

AI is the discipline of developing intelligent agents that encompases machine learning, deep learning, generative AI (ability to create new content based on what's learned). Types of DL models are Discriminate models (can classify cat pictures) and Generative AI models that can generate cat pictures (very compute intensive).

ML and AI models are build in 4 phases: development (Collect data -> clean -> train), training (Live data and validation produces trained models), Inference (Query -> prediction (output of some sort)) and Monitoring.

2025-03-07


How to fix a lecture video's crappy audio

Teachers don't know how to use basic audio devices, like microphones. You need some tools to help you with hearing. So ffmpeg is here to help!

2025-03-07


Elements of Sustainable ICT pt. 7 (On Green Software)

ICT sector accounts for 4-10% of global energy consumption and these numbers are growing. Software work has 3 bigger phases: development, testing & deployment and usage. Usage is the phase where most of the emissions occur, since that's where most of the time and work (as in energy) is done.

2025-02-27


Gospel for zcat & awk

I had a problem where I needed to find out what users have accessed some API-endpoint from Nginx-logs, so I made a handy script for that.

2025-02-27


.gitconfig magic

Since I mostly want to push to an origin that's the same as my current branch, I can do that easily with:

git push -u origin <my_branch>

There's a also a config for that.

2025-02-24


Elements of Sustainable ICT pt. 6 (On Electronics And Repairability)

Overview

Ecological design is getting more and more important. Eco-design should be applied in a holistic manner. Measuring Cradle-to-gate LCA is sub-optimal, since it does not consider the usage of the device. ESPR, ie. Eco-design for Sustainable Products Regulation will provide pressure to companies to measure and improve their resource usage. One point is that electronics need to balance between environmental responsability and tech needs. Analyzing the the product requires a lot of effort and deep knowledge of the processes.

2025-02-17


Elements of Sustainable ICT pt. 5 (Materials in ICT equipment)

Smartphone materials include a lot of different elements, including precious metals and REEs. Rare earth materials are not rare, but hard to extract in quantities (small concentrations in Earth's crust). By using more sofisticated materials we have more sofiticated functionality in our devices and products. The chemical complexity of products has increased.

2025-02-06


Elements of Sustainable ICT pt. 4 (Networks and Services)

There are data centers of various sizes, core networks, last mile networks & user devices. Data centers have high variablity in energy consumption, networks have intermediate differences, "last mile" can have big impact in corporate environments and user devices have high variablity in resource consumption. Energy consumption in switching from consumers to networks and DC's and AI is the new big dog for energy consumption.

2025-01-31


Elements of Sustainable ICT pt3 (Energy)

There are different types of energy and electricity consumption will double in 10 years.

2025-01-22


Elements of Sustainable ICT pt. 2 (Datacenters)

Modern datacenters consume a substantial amount of power & cooling.

2025-01-17


Elements Of Sustainable ICT Learning Diary pt.1 (Intro)

We consume a lot more than what we used to. Processing power has gotten cheaper and more abundand. We also use a lot of network resources. Both of these things lead to a lot more co2 and energy usage. Even renewable energy sources aren't something that we should use without consideration since they do produce lifecycle emissions. People have different first thoughts of what are the elements of SusIct. We should take a holistic view when we're looking into the topic, since ICT-companies like to emphatize the good effect of ICT (eg. the handprint). Video is growing at a staggering rate and the Western world might have already peaked in network usage. AI is another growth driver. The course is mostly about sustainability of energy usage.

2025-01-10


Thoughts about TSLA

Is it too late to get in on the action? I think not.

2024-12-17


Rsync - ignore multiple files

Rsync is handy. It makes publishing a breeze when combined with Makefile.

2024-10-15


Using visudo and Makefile to make things easy

Some things, ie. restarting services on server can be done easily, by editing visudo-file and thus removing sudo-pwd requirements for certain action.

2024-10-06


I made a thing

This one time, at band camp.. No, not really at band camp, but recently I woke up and had a dumb idea of having a website dedicated to Finnish superlatives. So I made one.

superlatiivit.com

2024-09-18


FastHTML tutorial

Lets learn FastHTML. It's been branded as a quick and nice way to get a site running.

2024-09-09


Setting up a Wireguard VPN for your remote server

WireGuard Easy, or wg-easy, is a convenient way to do wireguard setup on your local & remote machine. It makes vpn-setup a breeze.

2024-06-23


Search for a string in Git history

Git is one of the most powerful tools in a developers life, here's how to search for stuff in cli.

2024-04-16


Installing Ligtburn for Ubuntu 20.04 LTS

Lighthburn is a popular laser cutting software slicer, so here's how to install it.

2024-04-12


How to install Freecad on Ubuntu

Freecad is available on the Ubuntu stock repo, so we need just 2 commands to get it running.

2024-03-22


About YAGNI & TDD

You're not going to need it, and you should build the features & functionality you need by.

2024-04-06


Bash is more versatile than you think

cd, or change directory, is a fundamental command in Unix-like systems. Bash params can be used with it quite efficiently.

2024-01-22


Pipes are handy

Piping is a powerful concept that makes simple commands super useful. A pipe takes the output from one command and uses that as an input for the next one.

2023-12-07


Let's change email-server to Gmail

I have used an external email-server for my forms in Django. Let's change that to Gmail, since Gandi has started to want more money for using theirs.

2023-10-28


A quick tip for Git

Git is handy, and the typical workflow is add -> commit -> push. Adding a single file can be done quicker with a combination.

2023-10-25


How to stop booting your wifi-router once and for all

I did a nice and cheap home automation hack, so you don't have to. You should just buy a better router, but if you're a cheapskate you could just buy a timed outlet.

2023-08-07


How to add a subdomain to Certbot

When you register a new subdomain for your domain, ie. example.existing.com, you need to add it to your certbot to avoid unsecure connection warnings for your users.

2023-06-15


Upgrading Django 3.2 to Django 4.2

All good things come to an end. Version 4.2 is the new Django LTS-version (Long Term Support) for a popular Python web framework. This is how you can upgrade your project handily with django-upgrade.

2023-05-17


How to fix WSL sudoers-file

The error "Error getting authority: Error initializing authority: Could not connect: No such file or directory wsl" is a bit tricky one - but easy to fix.

2023-03-20


Automatically adjust all the cell widths in Excel to be OCD-perfect

Have you ever wondered about if there’s a quick and dirty way to set the perfect width for every cell in an Excel sheet? There is one that’s perfect!

2023-03-09


Function name autocompletion

Sheets (the Google version of Excel) is quite intuitive, as it autocompletes the function name you’re typing by just hitting enter. Excel requires a different key and it's a bit tricky to find out.

2023-03-09


Creating a Node/SQLite Backend

My Definition Wordle-project needs porting to a more user friendly UI, so I'll need to connect the data from SQLite to a Node backend. Come along for the journey!

2022-09-11


Creating a Node/PostgreSQL Backend

I needed a backend to further my Angular skills, so I learned how to make one with node.js.

2022-09-10


How to create template forms in Angular

This is a follow-along-a-tutorial article that has some insights about the framework and the methods used.

End result - a working rudimentary Angular form

2022-09-04


A simple Angular tutorial project

This is a documentation of a learning experience with Angular. It follows along the Hero-tutorial of Angular.io.

2022-09-04


Multiple Docker containers

Running multiple containers is really common - and that's why it a really good idea to learn about it. This is an article following an online tutorial.

2022-08-31


Trying out a Docker project in AWS

This article details the steps you need to do in order to have a static web project running in a Docker container in AWS.

2022-08-30


How to install Docker on Debian 11

This article shows you how to install Docker on Debian 11.

2022-08-29


Getting Robocorp's level 2 certification

I'm familiar with doing RPA with UiPath, so I wanted to try out other tools for automation. Robot Framework is really popular and you can use Python with it, so that was a natural selection for me. The scope of this article is just the finished product and tips for my pitfalls.

2022-07-20


How to install RIDE on Debian 11

RIDE is the Integrated Development Environment for Robot Framework. It's a good idea to have nice debugging tools for your projects, so this is a guide on how to install those on Debian 11.

2022-07-13


Implementing reCAPTCHA v2 after Simple Captcha

This article details the steps you need to take in order to modify your existing Captcha to reCAPTCHA.

Simple forms of Captcha are easily defeated by robots, so this is an essential step to beef up your spam protection.

End result: working reCAPTCHA

2022-07-12


Implementing search to a Django project

Search is a vital component of almost all web projects. Luckily Django has made it really easy to implement.

Working Django search

2022-07-10


Installing Robot Framework

Robot Framework is a popular open source tool for doing RPA (Robotic Process Automation) to automate repetive tasks. This article is an installation guide.

2022-07-06


Making CAPTCHA-forms for your page

In this article, I'll show you how you can implement CAPTCHA's for yourself. CAPTCHA's are easy to figure out for humans, but harder for bots, so they're a widespread way of protecting online forms from abuse.

Invalid CAPTCHA

2022-07-06


Creating class based comment-functionality with Django

The idea of this article is to show you how you can create a commenting possibility to a web page. The scope is a working local version with email-notifications.

2022-07-05


Django contact form

A contact form can be good for some customers, as some people like it better than sending email. It essentially does the same thing - it provides the first point of contact.

The scope of this article is a locally working installation and some quick pointers for a production implementation.

2022-06-30


Python basics: Lists (Arrays)

Lists are handy - they make it easy to store and manipulate data in as many dimensions as you need. In Python arrays are a powerful tool with a myriad of uses.

2022-06-08


Python basics: Hello World!

Hello world is a classic example of figuring out a way to make sure that you can produce a result with the tool you're using.

2022-06-08


Getting SSL-certified (Certbot & Apache2)

SSL-certification is essential if you're going to have a site that people will send and receive data from. It's easily evident from the little lock icon on the address bar of your browser if you have it or don't.


End result - you can see the coveted lock closed

2022-06-07


Dumping a PostgreSQL database and automating the process

There are many reasons why you'd need to have your data in a dump, and one of those is to back it up.

2022-06-07


How to change user's password to Django project from cli

It's quite simple, just use the command:

manage.py changepassword *username*

2022-06-07


How to run multiple Django apps in production at the same Apache server

I have a practical problem - I'm building a web site, but I have one app already running in production for the site. So I need to take care that I don't lose the data in my app and make sure that 2 apps work together.

2022-06-07


How to change a production database from SQLite to PostgreSQL

Django ships with SQLite, but PostgreSQL is a more capable DBMS. I wanted to try out the migration to a different system to learn about the process.

2022-06-06


How to create a shopping list app in Django

This is a step by step guide to creating a Shopping list app with users, registration and admin. The writing of this article and the coding took me about 5 hours with a production install included. You should be able to replicate the results in about half of that time.

2022-06-02


How to split a string in Django template + Model

Why would you need this? In my example, I have a simple shopping list and since Sqlite doesn't support arrays, this is an easy was to iterate the items to a neat list.

2022-06-02