GraalVM's secret LLVM backend

20 September 2020

You might have come across GraalVM's LLVM interpreter lli but did you know that it can also output LLVM bitcode too? Welp, maybe it isn't a secret anymore but GraalVM has an experimental backend that can build native images using LLVM instead of Graal. Let's have a quick demo.

Continue reading →

Calling uname from Java using GraalVM

21 August 2020

For years I'd been searching how to build native Linux apps using Java and somehow GraalVM has concluded it all. GraalVM's native-image tooling is arguably the most elegant way of connecting Java to the native world. We'll be exploring a clean way to interoperate with C libraries by writing a uname alternative in pure Java. No JNI mess, no sun.misc.Unsafe imports, just GraalVM. 🛠️

Continue reading →

Zimbra Mailbot: Update 1

13 August 2020

My college exclusively uses Zimbra 8 as its mail server and the most annoying part is that there's no easy way to fetch new emails automatically (unlike Gmail app). The unavailability of any official Android app only makes it worse. So it's been a while since I started working on this chatbot that can forward emails from any Zimbra account to Telegram. On a side note, it's also helping me sharpen my Clojure skills for web dev.

Continue reading →

Self-contained, native-looking apps with SWT and ModiTect

19 July 2020

The Standard Widget Toolkit, commonly known as SWT, is one of the few Java GUI libraries that are still actively maintained. Popularized by the use in Eclipse IDEs, it has a remarkable ability to present apps that look and feel native across all major desktops. Let me show you how to set up a Gradle project to build cross-platform, self-contained apps that mimic the native theme. 🤖

Continue reading →

Making Standalone Java apps

28 June 2020

Back in high school days, I learned how Java programs could work flawlessly across different machines without the need for any additional compilation - Write once, run anywhere. One of our laptops had a 64-bit Ubuntu installed while the other one had a 32-bit Windows 7. I tested out on a few more platforms and realized one particular hurdle that constantly popped up: It was necessary to have Java installed beforehand, which most OSs didn't ship by default. So here's a post about how you could make your apps truly standalone.

Continue reading →

OpenGL demo using GraalVM

21 June 2020

Let me show how you can use GraalVM to create an OpenGL app in Java. This is made possible by the native-image tool that helps GraalVM produce truly native binaries capable of interacting with native libraries directly, without any JNI overhead. ⚡️

Continue reading →

The Season of Lockdowns

7 June 2020

We all expect a bunch of new stories, resolutions, and ideas popping up at the start of each year. But 2020 wasn't supposed to be just another year, it's a new decade. So it's natural to expect that the usual new year excitement would be amped up all round the world. Alas, things turned out in an exactly opposite way, isn't it?

Continue reading →

GSoC 2019: Week 12 updates

22 August 2019

Finally, we're at the end! This last week of GSoC includes implementation of parts of the revised Package Manager model, namely the PackageDatabase and some methods for interacting with our Jenkins repository.

Continue reading →