Running Rust on Android


For one of my current clients, we decided to use Rust as our main programming language. There were several reasons behind this decision; apart from the technical merits, there's also the undisputable fact that Rust is still a relatively new language, fancy and hip – and when you're a startup, using any technology that came out in the previous decade is just setting yourself up to fail. I mean, it's logical – how can you innovate without using innovative tech? The fastest way to success is aboard the hype train.

As one of the product's selling point was supposed to be "you own your data", it couldn't be a purely browser-accessible service, but rather something we'd distribute to the users to run on their own devices. We already had some headless instances running internally, and with a trivial amount of work, were able to make redistributable packages for Windows and Linux. But we knew that being desktop-only would be a serious blocker against adoption – if we wanted this to take off, we'd need mobile versions of the app. This meant we had to figure out how to get our stuff running on Android and, later, on iOS. Seeing how I already had some experience with cross-compiling and build automation, I volunteered to delve into the topic.

Read more about twenty-nine minutes

Cross-compiling C programs for MS Windows using MinGW


As you may know, I tend to tinker on video games in my spare time. It's been a long time since I actually released anything worthwhile... but speaking of releases, there's always the question of multi-platform support. When making a browser game, the browser is your platform and you don't really worry about the OS underneath. When using a popular engine, you may test if the various releases work mostly as they should, but you're still mostly relying on the original developers' ability to make it run on all the platforms.

But things are vastly different when your game runs without an engine, or using an engine of your own making. You have to take care yourself of making sure the program runs fine on whichever platforms you want to support. But even before running, there's the matter of building – you have to actually compile the program for the target platform. One way to do this is, of course, having a machine running said platform (possibly in multi-boot), which comes with its own set of annoyances. The other solution is to cross-compile – and that's what I'm gonna shortly describe here.

Read more about eight minutes

Gaining Code Execution through a broken CMS


Some four years ago, back at my first workplace, one of our colleagues hailed the rest of us:

Hey guys, a friend of mine released a commercial CMS, he's already got a few clients and he asked if we'd like to poke around and see if we can break anything.

Being a prominent enthusiast of slacking off at work, I happily stopped whatever I was doing at the moment and asked him to provide me the URL to said CMS so I could take a look.

Read more about seven minutes

Scraping Slack Webhooks from GitHub


Some time ago, Slack became a really popular tool for instant messaging within companies and communities. Many people consider it an awesome platform; many people consider it nothing more but a glorified IRC replacement. Technical merits and flaws aside, Slack and the many similar platforms are probably here to stay for some time.

Read more about seven minutes

Slides: Copyleft and copyfree – a short overview of popular licences


During Hacktoberfest Poznań Meetup (October 2017) I gave a talk about copyright and how it affects FLOSS, along with a short overview of popular licences.

Read more about one minute

Slides: Not only code – other ways you can support Free Software


During Hacktoberfest Poznań Meetup (October 2018), I gave a talk about how people can support Free Software, apart from just programming.

Read more about one minute