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

Organizations

@UKA @itkinside

Block or report sandsmark

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
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. Game related
  3. Graphical utilities
  4. Command line utilities
  5. Machine Learning™-ish
  6. Desktop environment or whatever, stuff that makes my laptop work
  7. Multimedia-related
  8. Ancient stuff
  9. Graphics related
  10. Libraries
  11. Demoscene-ish
  12. Internet
  13. Chrome extensions
  14. KDE 1 and KDE 2
  15. Other
  16. Minor stuff

Games

  • freeaoe, age of empires II reimplementation
  • Schiffbruch, game I played when I was young. Cleaned up to build and run on Linux, translated most code from german.
  • 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.
  • Amnesia: A Machine For Pigs, a survival horror game. Porting it to modern versions of stuff like angelscript.
  • falltergeist, opensource crossplatform Fallout 2™ game engine writen in C++ and SDL. Cleaning up.
  • kwest, interpreter for text adventures, half-way ported to Qt5
  • Goblin Camp Stone Soup, Dwarf Fortress clone, revisited. Cleaning it up.
  • Age of The Ring, some school project I found. Played around with it and fixed it up a bit.

Game related

  • Advanced Genie Editor, editor for the data files in age of empires etc. Uses genieutils, like freeaoe.
  • 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.
  • 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).
  • ghostlybot, simple test bot for testing the AI competition case at TG17. IIRC it uses Q-learning in some form.
  • borderlands3-save-editor, got stuck on some game-breaking bugs. I have finished the game now, so probbly won't update it any further.
  • masseffectandromeda-save-editor, very, very early WIP, doesn't work at all.
  • rengine, header(s)-only C++ scenegraph rendering graphical library thing. Used for tg18ai, so I had to add some stuff and fix some stuff.
  • OALWrapper, for Amnesia. Cleaning it up to fix build on Linux.

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.
  • 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).
  • 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.
  • notifu, someone on IRC wanted a tool that loaded and displayed an URL in a popup for notifications.
  • turbo-button, simple tray application toggling between battery saving and performance CPU stuff.
  • qt-rfb-client, RFB/VNC client using Qt, ported to run on my reMarkable™.
  • pebble, breadboard layout web app. Test it at https://sandsmark.github.io/pebble/

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".
  • Vector-cmdline-tools, tools to work with the Anki Vector robot. Porting to Qt Bluetooth to make it work on Linux (and maybe Windows).
  • Steamless, SteamStub remover, command line version.

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.
  • 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
  • caffe, fork of Caffe for some vapoursynth I think. Forked to fix compatibility with latest cudnn.
  • vision, pytorch vision module. Just fixing the libjpeg and libpng usage.
  • MLDemos, visualization tool for random ML algorithms.
  • narxsim, cleaned up some person's master thesis about NARX

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.
  • xdg-autostart-launcher, automatically launches all applications in the XDG autostart folders.
  • patoggler, simple thing to toggle mute in pulseaudio.

Multimedia-related

  • linux-vr-player-or-something, very simple VR video player using libmpv and openhmd. Because apparently everyone thought this was impossible to do or something?
  • 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.
  • 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.
  • qpitch, instrument tuner.
  • guitar-effects, various realtime, low-latency guitar effects. Loopback thing using pulseaudio.
  • Butterflow, ported to opencv 4 and python 3.
  • vlc-chromecast-subtitles, VLC with the patches for proper subtitle support for Chromecast™®.
  • inputstream.adaptive, started refactoring so wvdecrypter could work without Kodi, ended up just trying to fix compatibility with newest version of Widevine.

Ancient stuff

  • 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.
  • 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.

Graphics

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.
  • 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.
  • zstr, header-only C++ library wrapping zlib with iostreams, used for genieutils/freeaoe.
  • tacopie, C++ TCP Library. Upstream is dead.
  • qtcreator-breakpad, breakpad integration extracted from qtcreator.
  • taglib, taglib with matroska/ebml support.

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++.

Chrome extensions

  • millenials-to-snake-people, Chromium extension that does what it says, with toggle button (because I don't want it on all sites).
  • Imagus, Chromium extension to show images on hover, github mirror with unminified code to compare with code in the official Chrome Store. Just because I don't trust stuff in the store.
  • chrome-extension-tick, two simple chrome extensions that just tick or untick every checkbox.
  • autochecker, google chrome extension to help automatically check the right boxes when filling out forms.
  • 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).
  • bypass-paywalls-chrome, Bypass Paywalls web browser extension for Chrome and Firefox, with a fix for some crashing. But upstream doesn't seem to allow me to open a PR.
  • url-rewriter, rewrites URLs on the fly.
  • chrome-no-cohort, Disables the new google fingerprinting things.
  • archive.is-chrome-extension, open links via archive.is when you right click them.
  • browser-painter, draw on web pages.

KDE 1 and KDE 2

Also see https://invent.kde.org/historical for the basic stuff.

  • qt1, copy of Qt1 for usage with KDE1 (with some minor issued fixed, like scrollwheel support in some apps).
  • qt2, copy of Qt 2 ported to modern system, with some fixes.
  • KDE 2 kdelibs, KDE 2 version of kdelibs, fixed up to mostly build on a modern system.
  • 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.
  • kvoicecontrol, tool that gives you voice control over your unix commands. For KDE 1.
  • kde1-amor, backport of Amusing Misuse of Resources for KDE 1 or something.
  • kde1-kpackage, KDE 1 version of KPackage with libalpm/pacman/archlinux backend/support.
  • kde1-kteatime, the original (pre-KDE 2 port) version of kteatime.
  • 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.
  • kde2-kio-sftp-kde3, backport of kio-sftp from KDE 3, wrapping the ssh executable. Doesn't work well, use the one below.
  • kde2-kio-sftp-kde4, backport of kio-sftp from KDE 4, using libssh.
  • kde2-kmorph, KDE 2 application to morph between two images. Ported and improved performance a bit, don't really know how it is supposed to be used.
  • KWoodhammer, All-in-one shell for all kinds of data encryption. KDE 1 version.

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.
  • 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.
  • 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).
  • glog-squash, LD_PRELOAD hack to disable endless amount of spam to the console when launching glib applications.

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.
  • 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.
  • signsrch, just a mirror, but with history.
  • clickteam-unpack, fixed compatibility with some installer (forgot which).
  • irstlm, had to fix this to get Kaldi to work Properly™.
  • opensift, upstream is dead. Now with modern opencv support.
  • konsolelauncher, testing quick and dirty hack to speed up launching of konsole.
  • opensift, Open-Source SIFT Library. Fixing opencv compatibility and stuff.
  • kdeconnect-minimal, kdeconnect without so many big required dependencies.
  • okular-backend-mupdf, PDF backend for Okular using MuPDF. Cleaning it up.
  • Ghidra, adding some hardening flags to Ghidra build.
  • ini-editor, I think this was to create a more generic config interface for the Xine backend for phonon.

lol

Pinned Loading

  1. freeaoe freeaoe Public

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

    C++ 205 20

  2. kaldi kaldi Public

    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. borderlands3-save-editor borderlands3-save-editor Public

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

    C++ 39 12

  4. selectdefaultapplication selectdefaultapplication Public

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

    C++ 100 9

  5. pavucontrol-qt pavucontrol-qt Public

    Forked from lxqt/pavucontrol-qt

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

    C++ 1

  6. QSsh QSsh Public

    Qt-based library for SSH and SFTP.

    C++ 85 27