Fully client-side Deal With It GIF emoji generator. The Most Over-engineered Deal With It Emoji Generator in the world. Project page Source code on GitHub All operations done fully client-side - no backend, no private data leaves your browser. Uses MediaPipe Face Detector task to automatically scale and position glasses on the detected faces. Extensive customization options for glasses: Placement…
Pomodoro timer for all Garmin devices. Over 100k+ installs. Nominated for “Best Wearable Smart App” at Connect IQ Developer Summit 2019. View and install in Connect IQ Store Source code on GitHub A lightweight and clean implementation of the Pomodoro technique . Keeps track of time left in your Pomodoro session, as well as break time and overal number of Pomodoros. Mimics the ticking…
Highly customizable calendar for ReMarkable and other e-ink tablets. ReCalendar allows you to generate your own, personalized calendar right in your browser. Visit project Source code on GitHub Optimized for the ReMarkable 2 tablet (should work with version 1 as well) to use the full space available and minimize screen refreshes. No hacks needed - the generated PDF is a normal file, with links,…
This post is meant to document my process, thoughts and tips on the migration of my ReCalendar personal project from Create React App to Vite . It’s not meant to be an exhaustive guide. I wanted primarily to document the more interesting (and often frustrating) challenges of such a migration. So that others might benefit from them when scouring random pages on the web, searching for an…
Programming since I can remember. I’ve dabbled both in high(ish)-level languages and libraries (Java, GWT, , PHP, JavaScript, TypeScript) and low(ish)-level (mainly C++). Apart from strong programming skills, I have vast knowledge (and experience!) with administration of Linux boxes (Gentoo FTW). When push comes to shove I can even spit out some SQL SELECT s or create an efficient view in CouchDB.…
Check the discussion on Hacker News about this post for a lively discourse and more tips! If you’ve used an *nix system, at some point you’ve stumbled upon Midnight Commander , a file manager based on the venerable Norton Commander. You’re probably familiar with the basic operations ( F5 for copying, F6 for moving, F8 for deleting, etc.) and how to switch panels (ummm, the Tab key). But mc offers…
If you’re writing a GWT application you are most likely following the MVP pattern. With GWT 2.1 the Activities and Places API was introduced and while it’s not strictly an MVP framework, it’s a good base for the architecture of your application. A core component of Activities and Places is the ActivityMapper interface. Its role is simple - you get a Place and based on it an appropriate Activity…
Continuing the theme of testing with gwtmockito, I’d like to show you a neat class that’s bundled with gwtmockito that allows for easy mocking of GWT-RPC asynchronous services. The class I’m talking about is AsyncAnswers . It’s meant to be used with the doAnswer stubber. Supposing we have a LoginServiceAsync class: public interface LoginServiceAsync { void login (String login, String password,…
gwteventbinder and gwtmockito are great projects that are esential if you’re writing applications in Google Web Toolkit/GWT. So it was a surprise to me that they don’t play together well “out of the box”. See, the problem is that gwtmockito injects it’s own (safe, not using any code that requires running a browser) mocks when it encounters GWT.create in your code. That’s very cool, but when using…
If you’re just interested in keeping your kernel module-free and be able to watch funny cat videos on youtube, skip to the solution . I’m an avid user of the Gentoo flavour of Linux, specifically the Hardened profile . As you can imagine, I like to think of myself as a security-aware user. With that in mind, I prefer to keep my kernel module-free (by actually disabling the ability to load kernel…