Intro

Name: Morten Lomholt Møller (alias: "Molle")

Age:

Location: Ikast, Denmark

Job: Trifork

Title: Software Pilot

Email: morten@m8.dk

About

Hello! My name is Morten and I'm a Software Developer.

Take a look at my portfolio below, where you can find a lot of my public work. I can't promise to keep this list updated, as I simply decide to disband some of them. I do have a copy of each project, should someone want to know more about them. Send me a mail if you want to know more.

All the sites below are hosted on a Debian server through nginx. Most sites run through CloudFlare.

Education

  • Primary school started for me in 2000. I went to Rolf Krake Skolen in Holstebro, Denmark, where I attended 1st till 9th grade.
  • I went to Den danske Design- og Håndværksefterskole boarding school, previously known as Den Danske Husflidsefterskole or DHe in Skjern, Denmark to attend 10th grade.
  • My three year high school was spent at Holstebro Tekniske Gymnasium (HTX) in Holstebro, Denmark. My education was kommunikation/IT (communication and IT).
  • I got my Computer Science degree in 2017 from Business Academy Aarhus in Viby, Denmark. I finished my paper with an A+.
  • I studied one year of web development at Business Academy Aarhus.

Portfolio

Smarthjemmet.dk is my little side project, where I write about my own experience with smart home gadgets, hardware, and software. The content is in Danish. The project is an ongoing project with new posts coming once in a while. I am currently experimenting with my own PCB designs and custom firmware for some Zigbee chips.

I am in the process of migrating from Wordpress to Strapi and Angular.

The application uses:

  • Wordpress

Links: https://smarthjemmet.dk/

TwitchClipper is a .NET 5.0 application made to download clips from Twitch.tv. You can compile it yourself or download a release, and it's 100% cross platform compatible with platforms that can run .NET 5.0. It has a lot of great features, such as self updating and custom user input expressions to customize where files should be saved.

I really challenged myself with this project, and I released it on GitHub with a lot of documentation and examples. I also created GitHub Actions, which automatically builds the project when a new tag has been pushed, and then creates a release for Windows, Linux, and MacOS.

The application uses:

  • .NET 5.0 (Console Application)
  • Dependency Injection
  • Twitch API implementation
  • User input from console
  • Threads
  • youtube-dl yt-dlp binary

Links: https://github.com/mortenmoulder/TwitchClipper and Wiki

bryllup2022.dk was my wifes and I's wedding information website. We figured it would be easier to create a simple physical invitation with a link to a website, and then have all the practical information on the website. The guests really enjoyed having the possibility to visit the website and view the content on their phone, instead of having to rely on a tiny piece of paper, which is quite common.

The website had stuff such as the timeline, our wish list with links and photos, newsletter signup, Google Maps integration, and links to photo library (service called Wedbox).

We gave each guest a globally shared password phrase (the date of the wedding), because you had to sign in to view the pages. If you entered the corerect password, PHP would give you a valid session, and then include the Angular page. I had to do this, because if the password prompt happened in Angular, the entire page could be deobfuscated through the source code, which wouldn't be secure.

The application uses:

  • Angular frontend
  • NodeJS API for newsletter signup
  • MailChimp package for NodeJS
  • PHP session handling (because of password prompt)

The website has been discontinued.

Wrench was an application for Android, to help car enthusiasts look up a Danish car's specifications from its numberplate.

I have always wanted to make an application for phones, but I never had the time to look at both iOS and Android individually. I came across a framework called Ionic and decided to look into it. Because they use Angular as a frontend, I was instantly hooked, because I have a lot of experience with that.

The application uses:

  • Ionic 2 framework
  • Angular 4 with TypeScript frontend
  • NodeJS API backend
  • Database API currently from https://www.motorapi.dk/

The website and app has been discontinued.

Links: https://wrench.dk/ and Google Play Store

This project is by far the most successful one. The page got about 250,000 visits in a few months, and considering I created this in a few hours, I say that's really good.

The website lets you enter a website which will get John Cenafied. It will replace all (most) images with John Cena and shake to his theme song.

For some reason, this got flagged as a phishing site by many anti-virus programs and some DNS providers (to my knowledge). I do not know why that is, and here is why: The site shakes, loud music plays in the background, AND all the inputs where you type a password are disabled. If you think this is a phisher, you are a (fill out with your favorite cuss word).

The site uses:

  • PHP backend

The website has been discontinued.

Link: https://john-cenafy.com/

After Donald Trump got elected as President of the United States, a lot of funny images and memes started floating around. He signed an executive order and posted a high resolution image of it, and then the funny images started coming. I decided, I would try and make another big website and see if I could make the site go viral.

The idea of the website is, you enter some text into an input element, which will be displayed on this executive order he signed. You can then share it on social media or save it as an image.

The site uses:

  • Skeleton CSS
  • JavaScript canvas
  • Imgur and Facebook API for publishing

The website has been discontinued.

Link: https://order-of-trump.com/

This was a fun project to make. When an user clicks on the screen, it will increment the counter by 1 and change the background color. Not only does it do this, but it also emits that to everyone else who is using the site. It will always sync the background color and the number of clicks with everyone else using the site.

Try loading up the site on multiple devices and start tapping!

The site uses:

  • NodeJS backend
  • socket.io
  • MariaDB database

Link: http://colorize.site/

I made reGen because I like regular expressions and because I wanted to make a simple and easy tool for everyone to use. reGen allows the user the input a regular expression and generate random output from that. The tool allows you to save and forward the regular expression to someone else.

The site uses:

  • randexp.js

Domain sold because of the low popularity of the project.

This project was extremely fun to make. I basically recreated an original Gameboy as HTML elements with a lot of CSS to style them. It took a long time to make it look good.

*-arrow - Use arrows to move around
Z - A on Gameboy
X - B on Gameboy

Link: https://snorlax.org/gameboy/

I've always liked the idea of browser based games. I have a bit of experience with canvas, but I made this using moving HTML elements. The character is styled to look like me.

I used to use this page as a contact page (instead of this page), but realised I made it terrible for mobile users, so I scratched it. Good idea, bad execution.

Link: https://mortenmøller.dk/mario/

I was approached by a friend, Michael, who wanted me to create a webshop for him. We decided to go with Shopify, because it was easy for someone else to take over, after I handed over the project. The design is custom made by a designer, who also created the physical media and products for Skin2Skin.

The site uses:

  • Shopify
  • SASS

The website and shop is no longer active.

Link: https://skin2skin.eu/

This is my portfolio website, to show some of my work, my educations, and my competencies. I found a design on another website, and I really liked it because it "pops" and stands out.

The site uses:

Competencies

Web development

  • HTML
  • CSS (and SASS)
  • JavaScript (and TypeScript)
  • .NET and .NET Core
  • jQuery
  • NodeJS
  • AngularJS and Angular 2.0 and later
  • PHP
  • Java
  • Python
  • Umbraco
  • SQL (MariaDB, SQL Server, and MySQL)
  • MongoDB
  • Browser userscripting and extensions

Miscellaneous

  • Cryptography and security
  • Arduino
  • ESP8266 and ESP32
  • Raspberry Pi
  • Apache
  • nginx
  • Debian, CentOS, and Ubuntu
  • Home automation
  • 3D printing (Ender 3 Pro at home)