• Adding Search to GitHub Pages Hosted Sites

    Adding search to a blog hosted on GitHub Pages can present some unique challenges. Because GitHub Pages doesn’t support server-side code, traditional server-side search engines are off the table. This means we need to explore alternative approaches, primarily client-side solutions or leveraging third-party search services. In this post, we’ll delve into how to implement a basic yet effective client-side search engine using the powerful combination of Jekyll and JavaScript. The implementation will involve pre-processing the blog content during the Jekyll build process to create a search index, enabling fast and efficient searching directly within the user’s browser.

    Read more
  • Kublet: A review of a failed Kickstarter promise

    Remember Kublet? The tiny, powerful data tracker promising to bring essential information to your fingertips? It launched on Kickstarter in June 2023 with a compelling vision, raising over $150,000 from 800 backers eager to support its development. They envisioned a sleek device displaying everything from stock tickers to weather updates. Sadly, the reality fell far short of the vision, culminating in a project that, for many backers, feels effectively ghosted, leaving those investors with little more than disappointment. And Kublet’s story echoes a similar recent situation with another platform, Tidbyt, highlighting a potentially troubling trend in the niche hardware space.

    Read more
  • Snowflake Key-Pair Authentication migration

    Snowflake is implementing an important security enhancement by phasing out the use of usernames and passwords for authentication in November 2025. This change necessitates a transition to a more secure authentication method known as Key-Pair Authentication. This change was announced on the Snowflake Blog and is part of Snowflake’s ongoing commitment to enhancing security and protecting sensitive data.

    Read more
  • Exploring AI coding tools

    In recent years, AI coding tools for software engineers have rapidly improved. Tools like GitHub Copilot, which has been around for over three years, are becoming an integral part of many developers’ workflows. However, the question remains: Do these tools really provide value? While I’ve seen the rise of these technologies, it wasn’t until last year that I had the opportunity to use them in my day-to-day work. After experimenting with Google’s Gemini coding assistant at work, I decided to explore and compare a few different AI tools in my own time.

    Read more
  • Create a site map using CasperJS and Graphviz

    I recently challenged myself to start learning CasperJS, a scripting tool that is using the PhantomJS WebKit headless browser to navigate the web. For one of my first projects, I decided to build a site map generation script. Since I was already familiar with the Graphviz tools I decided to use the Graphviz sfdp command-line tool to generate visual site maps. This post is a short introduction to the tool, and how to use it.

    Read more
  • Brew after updating to El Capitan

    If you’re an early adopter, like me, you probably also spent a few hours today installing the latest version of Apple’s newest OS X version, El Capitan (OS X 10.11). If you use your Mac for any kind of development, chances are you also have the Mac’s missing package manager, Brew, installed. As with any time Apple releases an update, there is some tinkering to be done to get everything running again. In this post, I’ll go through some of the problems I ran into with Brew after updating to El Capitan and how to solve them.

    Read more
  • How to build a Web scraper with DOM parsing in 10 minutes

    API:s are a developer’s best friends when accessing remote data, but great API:s does not grow on trees. So what do you do when the data you need isn’t accessible through a well-designed API, or no API at all for that matter? As long as the data is accessible through your Web browser, you can always just scrape it yourself! In this post, I’ll go through how to build a simple Web scraper in 10 min using Guzzle and PHP’s DOM parser. I’ll also give a brief introduction to XPaths.

    Read more
  • Dockerizing a PHP project - A short introduction

    After using Vagrant and VirtualBox at Engage for several months I finally stumbled over a project at work where I got the opportunity to learn and use Docker. Inspired by my newly acquired knowledge I wanted to experiment more with Docker so I decided to “Dockerize” my latest side project.

    Read more
  • Automatically solve Kuku-Kube with JavaScript

    Yesterday during my lunch break one of my co-workers introduced me, and the other developers at Engage, to the color puzzle game Kuku-Kube. The goal of the game is to as quickly as possible identify and click on a uniquely colored square in a grid of squares. The game has been featured on a number of big sites during the last day, including Reddit and Business Insider. This post is about how I build an automatic solver in JavaScript over a lunch break.

    Read more
  • Continuous integration with Travis CI

    Testing is an important aspect of software development, no matter if you use unit testing or if you run the software and manually test the features. In larger more complex systems, the latter method is usually very time-consuming and prone to miss a lot of bugs. That is why we have tools like unit tests and integration tests. To make our lives easier as developers, but also to make us more self-confident when pushing code changes.

    Read more