Skip to content
Avatar
m̵̧̤̦͖͖̆̍̽ͫ͘a̡͇̖̖̳͓͚̪͉̐̂̅ͦ̚͟͡r̵̘̖̜̀̓̀͗̽ͮ̐͆̓͢͞t͆ͩ̐ͭͥ̎̊͏̙͍i̥̜͗̓͗̀͑ͮ͋ͤͅņ̺̘̞̙̲ͯ̂ͫ̚
m̵̧̤̦͖͖̆̍̽ͫ͘a̡͇̖̖̳͓͚̪͉̐̂̅ͦ̚͟͡r̵̘̖̜̀̓̀͗̽ͮ̐͆̓͢͞t͆ͩ̐ͭͥ̎̊͏̙͍i̥̜͗̓͗̀͑ͮ͋ͤͅņ̺̘̞̙̲ͯ̂ͫ̚

Highlights

  • Arctic Code Vault Contributor

Organizations

@UKA @itkinside @reMarkable
sandsmark/README.md

Organized list of my projects

Most of the repos that might be interesting. Not everything works or is finished.

  1. Games
  2. Graphical utilities
  3. Command line utilities
  4. Machine Learning™-ish
  5. Desktop environment or whatever, stuff that makes my laptop work
  6. Multimedia-related
  7. Save editors
  8. Mobile stuff
  9. Libraries
  10. Demoscene-ish
  11. Internet
  12. Other
  13. Minor stuff

Games

  • freeaoe, age of empires II reimplementation
  • tg18ai, planned to use it for holding the AI competition at TG18, but Windows doesn't work.
  • ghostly, compo case for the AI competition at TG17 ("inverse" Pacman™®).
  • Turn On Me, compo case for the AI competition at TG16
  • The Kartering, compo case for the AI competition at TG15, written with larsivsi while really sober.
  • dropdabass, compo case for the AI competition at TG14
  • droidbattles, programming game.
  • recrossable, crossword game with handwriting recognition and automatic crossword generation. Originally written for my reMarkable™® tablet.
  • progress-quest, c++/qt version of progress quest.
  • Awesome War Game, our first year object oriented programming project.
  • KTamaga, a Tamagotchi emulator. For KDE 1.

Graphical utilities

  • sphero-and-mousr-qt-controller, utility to control the robots my cat play with (mousr and sphero).
  • qt-scp-reader, an offline reader for the SCP wiki. Works with the data in the SCP mirrors below.
  • qbyteview, simple tool to visualize a binary (displays entropy with a fancy method I don't remember the name of).
  • epubreader, simple epub reader using qt.
  • Advanced Genie Editor, editor for the data files in age of empires etc. (uses genieutils, like freeaoe).
  • sandsmark-screenshot, very simple screenshot utility, replacement for import png:- | xclip -selection clipboard -t image/png because xclip broke and it was easier to write this than trying to understand the xclip code.
  • homefilesharing, simple (encrypted, authenticated) sharing of files (because who the fuck wants to set up samba just to copy files with a GUI) and remote mouse control (because wtf why is Synergy so complicated).
  • diffimg, graphical UI to inspect differences between two images.
  • paqerduty, tray application that notifies you when you're on call and an event happens.
  • martin-todo, five minute hack because there's no nice simple todo applications that aren't horribly overcomplicated or sucky.
  • martin-toldyouso, so I can keep track of every time I told people so.
  • slaq, slack sucks.
  • BORG, automated bot launcher used for the AI competition at The Gathering (keeps tracks of scores and stuff, because I didn't want to do that manually on stage).
  • notifu, someone on IRC wanted a tool that loaded and displayed an URL in a popup for notifications.
  • ini-editor, I think this was to create a more generic config interface for the Xine backend for phonon.
  • kde1-kuickshow, KDE 1 version of Kuickshow. And ported away from imlib, because that API is horrible.
  • kde1-kshow, KDE 1 version of kshow. Because you always need more image viewers.

Command line utilities

  • bincalc, simple command line calculator for easily working with bits, convert hex values to float, etc.. Useful when reverse engineering.
  • dmsdos, linux utilities to handle dos/win95 doublespace/drivespace/stacker.
  • yzis, vi implementation.
  • compouploader, automatically downloads results and entries from Unicorn (the competition org system), so they can be uploaded to scene.org.
  • dcd-extractor, a very simple tool to extract the Device Configuration Data from a uboot binary with an IMX header
  • github-mirror, a simple script to automatically mirror all your github repos
  • quasselpwdumper, dumps your quassel password from your config file. forgot my password at some point so I wrote this.
  • quassel-sqlite-merge, script to merge in an old quassel sqlite database into a postgresql database.
  • unfuckify, makes c++ code using auto readable, i. e. unfucks it. I think this is what the kids call "opinionated".

Machine Learning™-ish

  • jantu, artifical consciousness framework + Starcraft Broodwar™® = master thesis.
  • master thesis, latex source for my master thesis.
  • replicode, constructivist AI language and runtime
  • repliqode, GUI interface for replicode stuff.
  • replicodekateplugin, simple plugin for Kate to launch the replicode executive directly from it. also syntax highlighting for the replicode language.
  • ghostlybot, simple test bot for testing the AI competition case at TG17. IIRC it uses Q-learning in some form.
  • Kaldi, a fork to train a norwegian speech recognition model.
  • link-grammar-norwegian, started on support for norwegian in link-grammar. too embarrassed of the actual link-grammar stuff to commit it.
  • ann, for some reason I started on implementing a library for neural nets at a hotel to fall asleep. counting sheeps didn't work.
  • decision-tree-learning, Implementation of decision-tree learning algorithms in C++ for the course TDT4171 Artificial Intelligence Methods.
  • forward-backward-inference, implementation of the forward-backward algorithm for the course TDT4171 Artificial Intelligence Methods.
  • poker-ai, a poker ai written for the course IT3105

Desktop environment or whatever, stuff that makes my laptop work

  • status, a thing for i3-bar. All the alternatives sucked.
  • sandsmark-notificationd, all other notification daemons suck.
  • dbus-screensaver-inhibit-dummy, dumb hack to keep steam from keeping my machine unlocked and awake forever.
  • sandsmark-integration, custom QPA for myself, based on frameworks-integration (now gone).
  • pastenotifier, pops up a tiny window when the clipboard changes. So you know what you paste before you paste the wrong thing in the wrong window.
  • polkit-dumb-agent, a polkit agent in 145 lines of code, because polkit is dumb and none of the other agents worked.
  • qiwd, GUI interface to iwd (because wpa_supplicant is old news).
  • Select Default Application, because I don't want notepad to be my default text editor, or Firefox to be my default image viewer.
  • discotiles, simple screensaver effect using QML.
  • reddit-notifier, a KDE plasmoid that shows reddit notifications from the RSS feed of notifications from your reddit account
  • kfilemon, a simple LD_PRELOADable library to hijack moves to avoid having to use inotify.
  • kcmlaptop, laptop support (mostly power management) for KDE1.
  • kdewizard, kdewizard for KDE1 (I missed Kandalf when running KDE1).
  • kde2-kdebase, KDE 2 version of kdebase, fixed up to mostly build on a modern system.

Multimedia-related

  • pavucontrol-qt, major cleanup from upstream and a ton of bugfixes, cleanups and refactoring. Upstream didn't want my changes.
  • VapourSynth Editor, editor for vapoursynth scripts. Forked it because upstream seemed dead, and I wanted some features that probably wouldn't get merged in the first place (like full-fletched vim-mode).
  • sigp, simple audio visualizer thing for Samfundets Interne Grand Prix 2010.
  • spokify, unofficial spotify™® client. added support for scrobbling (to last.fm), visualizer, the magic starred playlist, and some other stuff I don't remember.
  • amarok-soundcloud, soundcloud support for amarok. I think it worked at some point.
  • vapoursynth-movit, Vapoursynth plugin exposing Movit. Written blindly (aka. plain vim without plugins, and without testing that it builds). Probably doesn't work.
  • qoniometer, audio visualizer. Because frequency analysis visualization is boring.
  • vlc-kio, vlc plugin to use the KDE file io protocol thing framework. don't think I ever finished it.
  • simpleplayer, simple audio player for testing phonon from when I maintained phonon.
  • lastfmscraper, screen-scraping tool for dumping when you played stuff from last.fm
  • akode, start of a backend for Phonon using ffmpeg etc. directly.
  • vapor, desktop client for rawk the cloud web music server thing.
  • impd, custom MPD server implementation.

Save editors

Mobile stuff

  • bluefish, (old) snapchat client for the jolla. snapchat has drastically altered their API, so hasn't worked for a while (since I stopped using my jolla).

Libraries

  • qhiveplot, an implementation of hive plots in qt, ended up using it in repliqode
  • libqsnap, old implementation of the old snapchat API, used for the jolla snapchat™® client Bluefish. Written while drunk on a plane.
  • winuname, BSD-licensed implementation of uname I wrote to replace something for something sometime. don't really remember much.
  • genieutils, used for freeaoe. Upstream thought I had changed too much, and after that I have done some heavy refactoring and cleanup. Upstream is semi-inactive.
  • qt-rappor-client, modernized and cleaned up the reference C++ implementation of RAPPOR.
  • pcrio, PE file resource editor for genieutils/freeaoe.
  • QSsh, Qt-based library implementing the ssh and sftp protocols.
  • libqdlibface, library for doing face recognition. not really tested, but gave up trying to clean up libkface so started on this.
  • qt1, fixed build properly (upstream has a hacky "fix").
  • zstr, header-only C++ library wrapping zlib with iostreams, used for genieutils/freeaoe.
  • rengine, header(s)-only C++ scenegraph rendering graphical library thing. Used for tg18ai, so I had to add some stuff and fix some stuff.
  • qt1, copy of Qt1 for usage with KDE1 (with some minor issued fixed, like scrollwheel support in some apps).
  • KDE 2 kdelibs, KDE 2 version of kdelibs, fixed up to mostly build on a modern system.
  • extra-imageformats-qt, collection of random extra image format plugins for Qt (bpg, fuif and pgf).

Demoscene-ish

  • cubescubed, compofiller for the 4k competition at TG12.
  • oyarsa, writing a kernel woo. the solskogen branch contains an entry at solskogen.
  • invitro, 4k on Linux at solskogen at 2015 (2015 bytes).
  • smallhtml, collection of some of the smallhtml compocases I made for TG.
  • fuckdos, start on a demo of sorts with a trick I found out later wasn't as original as I thought.
  • textonacube, entry in the fast demo compo at TG10 (we actually won money for this).
  • legendary, a demo engine that never really got anywhere. but got used for a couple of projects and made some money.

Internet

  • wdotcrawl, wikidot crawler. Rewrote it to mirror the SCP wiki.
  • imagetracker, simple tracking pixel for emails written in like 2005.
  • nugatti, start of a gnutella implementation written in 2011-2012-ish. never really finished anything besides the most basic parts of the protocol. started because I wanted to figure out how the bootstrapping worked.
  • kubotu, the IRC bot in the #kubuntu IRC channel on freenode for a while.
  • rawk, cloud web music server thing. something like subsonic to have a web-based music player with your own music collection.
  • sophia, mg and I started working on a new-school BBS system using ssh while drunk.
  • quassel-proxy, a proxy between the quassel protocol and json from when I wanted a web-based quassel client.
  • quazzer, start of a fuzzer for the quassel protocol.
  • lolcats, displayed a random lolcat from my collection. don't judge me.
  • cloudsync, replacement for dropbox/ubuntu one/owncloud. don't think it ever worked properly.
  • quassel-web, started on a web interface for quassel. wanted to have quassel in the steam overlay, and for some reason this seemed like the easiest solution. never finished.
  • hjemmeside, one of my old homepages from when I started to learn django.
  • cbot, IRC bot for NTNU gangstaz.
  • DESMAN, distributed peer-to-peer decentralized blockchain service monitoring written for the student society in trondheim in 2008, never actually used. codename "lollercoaster".
  • notes, web-based note-taking app written in c++.
  • millenials-to-snake-people, Chromium extension that does what it says, with toggle button (because I don't want it on all sites).

Other

  • SCP wiki dump, full mirror of the scp wiki with the entire history. ~20 million words, fun for training Machine Learning Things™
  • dotfiles, since everyone like to post these kind of things. And it makes it easy to keep the config in sync across machines.
  • anti-anti-devtools, started out as a chromium extension to defeat the tricks people use to detect devtools. Ended up defeating fingerprinting (and crashing some fingerprint-library-backends).
  • sequrerender-child and sequrerender-host, testing out-of-process rendering with shared memory and seccomp and stuff.
  • libfisk, LD_PRELOAD hack to hide the fact that someone has been fisked. fisking is a long tradition at the Student Society in Trondheim where you do stuff like putting echo sleep 1 >> ~/.bashrc into people's .bashrc when they forget to lock their session.

Unusable old stuff

Probably not useful

  • spacetrader, start of a port of the space trader game for palmos. never got far.

Minor stuff

Things I have spent less than five minutes on.

Mostly things I didn't write with a couple of commits (e. g. because I wanted to test something and it didn't build or was missing something trivial.)

  • qmarkdowntextedit, proper standalone version. preserved my fork because upstream later reverted my changes that made it a useful standalone application.
  • sddm, started working on wayland support for sddm in 2013. never finished.
  • kgtk, ugly LD_PRELOAD hack to make GTK applications use Qt/KDE dialogs. Works sometimes.
  • MLDemos, visualization tool for random ML algorithms.
  • krename, rename utility. ported to qt5.
  • esp-idf, fork to get the latest version with the necessary patches for ODROID-GO.
  • synkron, ported to Qt5.
  • klatexformula, ported to qt5.
  • kfontview-standalone, displays contents of font files.
  • kuiserver-standalone, standalone fork of kuiserver, so I don't need to pull in the entire plasma workspace just because I use a lot of KDE stuff.
  • kcm-lookandfeel-standalone, to avoid having to install the whole Plasma desktop.
  • kjackal, rootkit scanner. ported to newer kernels.
  • kde-cli-tools-standalone, to avoid having to install the whole Plasma desktop just for kcmshell.
  • qt-polkitagent, couldn't get any polkit crap to work. So had to fix the build of this to test it, but surprise, it didn't work.
  • kwest, interpreter for text adventures, half-way ported to Qt5
  • Age of The Ring, some school project I found. Played around with it and fixed it up a bit.
  • signsrch, just a mirror, but with history.
  • clickteam-unpack, fixed compatibility with some installer (forgot which).
  • narxsim, cleaned up some person's master thesis about NARX
  • inputstream.adaptive, started refactoring so wvdecrypter could work without Kodi, ended up just trying to fix compatibility with newest version of Widevine.
  • vlc-chromecast-subtitles, VLC with the patches for proper subtitle support for Chromecast™®.
  • irstlm, had to fix this to get Kaldi to work Properly™.
  • opensift, upstream is dead. Now with modern opencv support.

lol

Pinned

  1. A free game engine capable of running Age of Empires 2 and Star Wars: Galactic Battlegrounds

    C++ 100 5

  2. Forked from kaldi-asr/kaldi

    fork to add example for training a norwegian model using the data from https://www.nb.no/sprakbanken/ressurskatalog/oai-nb-no-sbr-13/

    Shell

  3. got tired trying to beat the katagawa ball^W^Wempowered scholar, and no accessible in-game console, so here we are

    C++ 15 2

  4. an ugly hack to be able to select default applications in linux in a better way

    C++ 4 1

  5. Forked from lxqt/pavucontrol-qt

    fork of pavucontrol-qt without any dependencies except libpulse and qt

    C++ 1

  6. Qt-based library for SSH and SFTP.

    C++ 8 1

2,551 contributions in the last year

Dec Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Mon Wed Fri

Contribution activity

November 2020

Created 11 repositories

Created a pull request in Zren/chrome-extension-imagus that received 2 comments

Opened 3 other pull requests in 3 repositories
zzag/heifthumbnailer
1 merged
randym32/Vector-cmdline-tools
1 open
Zren/chrome-extension-imagus
1 merged
Reviewed 1 pull request in 1 repository
reMarkable/update_engine 1 pull request

Created an issue in mackron/miniaudio that received 4 comments

Receiving SIGSTOP in pulseaudio backend when trying to debug

Not entirely sure if I'm doing something wrong, but was testing upgrading to the latest version (i. e. master HEAD) of miniaudio, and debugging now…

4 comments
1 contribution in private repositories Nov 18

Seeing something unexpected? Take a look at the GitHub profile guide.

You can’t perform that action at this time.