Blog

Install openmediavault on Proxmox Janne Kemppainen |

If you want to have a home server with the possibility to run virtual machines but you also need simple local file sharing then the combination of Proxmox and openmediavault could be right for you. In this post (and the accompanying video) we'll go through the installation of openmediavault on top of Proxmox. I will also show you how to configure a Samba share.

SASS Processing with Hugo Pipes Janne Kemppainen |

So far we have been using the CDN version of Bulma. However, this has the unfortunate property that we cannot really customize the colors and other parameters. We can solve this by using Hugo pipes to process the Bulma source code with the built-in SASS processor.

Using Git with Multiple Accounts Janne Kemppainen |

Having to use multiple accounts with Git can be cumbersome from time to time. You need to make sure that your name and email match the account you want to use for each repository and you may need to type different credentials depending on the repo. In this post I'll show how to make your multi-account work with Git a pleasant experience.

I'm Switching to Twitter for My Blog Comments Janne Kemppainen |

This blog is a static website built with Hugo. As with any static website letting users post comments on your site typically requires using a third party service. This is one area where having WordPress would be nice as it gives you a built-in commenting platform. I've been using a third party commenting platform but now I'm going to try something else, use Twitter for comments.

Create Simple Python GUI Applications with Gooey Janne Kemppainen |

This time I'm going to show you how to create simple GUI applications in Python using a package called Gooey. It lets you turn (almost) any command line Python application into a GUI application with one line.

Create Your Own Python Packages

From programming to publishing

Janne Kemppainen |

When programming in Python you're used to installing packages from the Python Package Index (PyPI). But how do the packages end up there? How can I make my Python code installable? Let's find out!

Why Merging Hashes With Xor Can Be Dangerous? Janne Kemppainen |

If you have two distinct hash values that are created by a hashing algorithm that creates a uniformly random distribution then the result of the XOR operation between these values should also follow the same distribution. But why XOR might still not be the best choice for combining the values?

Reviewing Typora, My New Favorite Markdown Editor Janne Kemppainen |

The title might already give away my opinion on Typora so let me start by saying it again. Typora is my favorite Markdown editor, period. With that out of the way let's continue on with the why.

Start a Blog With Hugo Janne Kemppainen |

I run my blog with a static site generator called Hugo and as you're reading this article I'm going to make a wild guess that you'd be interested to start your own blog too. I have created a whole series of blog posts about blogging with Hugo where I go through the required steps to build your own blog from scratch. However, in this tutorial I wanted to condense all the necessary steps to getting your blog up and running as fast as possible with a ready theme.

CORS Simply Explained Janne Kemppainen |

If you're doing web development there is one thing that you have quite likely been bitten by, CORS. It stands for Cross-Origin Resource Sharing and simply put it is a mechanism which is used by browsers to determine whether or not a request to another domain can be made.