Hi, I'm Rauli Laine, a computer programmer from Turku, Finland. Check out my GitHub profile to find out more about that stuff. I'm currently working as software developer at Treet, where I develop all kinds of Web and mobile application related stuff. In my free time, I tend to work on various personal C, C++ and Forth -projects.
Here are highlights of some open source projects I have been working on.
General purpose stack based, concatenative, strongly typed functional programming inspired by Forth and Factor programming languages. Interpreter is written with C++ and is designed to be easily embeddable to other C++ applications.
I originally wrote Laskin as RPN calculator for personal use, but it quickly turned into programming language. I then used it as basis for Plorth.
Version 2 of Laskin acts as a test bed for features that might be included into Plorth in the future, such as vector arithmetics, syntax improvements and built-in measurement units.
Key-value storage for storing JSON documents with multiple different backends for persistence.
Modal Web browser with Vi-like user interface, inspired by the now discontinued VimFx Firefox addon. Uses WebKit as rendering engine.
Minimal Markdown viewer written in C++ which uses GTK toolkit for GUIs and WebKit HTML engine for rendering. Written for personal use for those situations when you just want to read an document written in Markdown without having to open it in an editor with live preview.
Tiny DOM builder library written in JavaScript with TypeScript type definitions included.
Multiroom Web chat implementation written in TypeScript that uses WebSockets for communicating with the server.
If you really need to, you can contact me via e-mail. My e-mail address is rauli.laine@iki.fi.
-----BEGIN PGP PUBLIC KEY BLOCK----- mQENBFR/U5wBCAC2uudjH8NLWMAWBB89/IZJOk1nElHXNGtZJlVpGHJmaO6wajlp /6n1aIoG/68+DNpzeLwnhR2/esDz1mHXL6/SIetnuESBUTnWz227oXHbsJXMtSOv SYdrWLSwoxitGo/tCOzT0Rsxjuc0tlUcmOYc15hI2av1KFka0/itjqf5nEJbVOMc xSMApw7z+zRC2jpT574I9uVGRfiipz6JJM/b5Dl1ozUhDzmbpqsIrl3bjwHULdc1 fsWmbFUSU/7W0koWps9+kvUWfuy3+dSKcW23vvNH9fuCBoXg8fpkSq8v3bN8VPh6 L1AAUIvFgLZBW4iDvFD8TfCHoKYRXtk6ZIMfABEBAAG0IFJhdWxpIExhaW5lIDxy YXVsaS5sYWluZUBpa2kuZmk+iQE4BBMBAgAiBQJUf1OcAhsDBgsJCAcDAgYVCAIJ CgsEFgIDAQIeAQIXgAAKCRBIX70OXqfQubN6B/4slC+tNu2h8rr+xmTBrFYNxkEa JLm6Q50W2FZl3qNC2ZLnKGz74knfdwXbrQ5xnK6htzpeIR41Duc/5bAf/lgNYI3c T26FUWRObShbPm7s3CeQfm1IJRWDFaqZpoP9htaA0pSCx65wkmB+zYiGOzLmsXI3 tyDvBHFVFrZClCkcyX6K+rFNb/6eSiVQnkfQMyTnP4AH19M9mNF6gHKFE97pJ9w5 CvWgpYCUoTFMvwpmfiaxmjilI2+GGHprtMed1snawpxrvqCP4v3dMTX6dyg5EF8C gzs4Asq5TZzt+3TfV95pkm0eS8X3TlaIgg7jGLAAlNoH67yxC1Hs2Ho9Hz/IuQEN BFR/U5wBCADEHszcFerbpA9wRX5dJxMczrosuF+o50T3V4fyxt/1NQHDXFT0hl8t 9n7huiai5IGHylEq8Y305xR89/oVry7/R+EmDthqUqJkd6kw9EQOT2bQD2FoG6z3 HNZwRLY9bZLbUcxmnBtWE4t1gaq6KLtzQ4NgLVPZq37KF8XW/j/+xbrQJ78fEpFf WzCRqDR847kfvVUdmDMVzXAO2uEkU3WjY9qCJrywqd8eJH9EnFn0A8VdRepf2Ce1 NlMDa4foXlYpKeZl5facdOSRmkhCSTHHlR973LRmU9Ag85d0SIg1lZFAYmC8v28I kwWxEk52Cch6fXGT06RC8LUauoxTeMy/ABEBAAGJAR8EGAECAAkFAlR/U5wCGwwA CgkQSF+9Dl6n0LlW4Af/SzJF45alTfGhYUoPEvvZzrhaNmdMIK6fgWehwhO7AL2H 8I3xnHFfxzugrYe9rpoOvC+pGYadCCfdvTjvMqmhMz9lVrm66beIcbM5/XzFGzRo hIPQnOzIYz9GVg7Ix0HySBUMYcjdKkTrnNcaNg8bjc+fA5WWdbudvZipVoDs31jM X1HDyBaWVAFbbmOVGhbhpYGKkqKiyjwCMne1h2oxQ7BjPdamX/s9K9SMnwieViTS R5wOVRU/KyR6jb+DqpKi9/DDy45vvTaMFEND7JcWLv562LEexx5hXv7SfUfBLwYZ KbvEqKgLhH2vZkblEnC5NrpTi7c57AUsczBkEsNCwA== =hGYD -----END PGP PUBLIC KEY BLOCK-----