My first split mechanical keyboard

I was a hunt and peck typer for a very long time. Almost a year back, I decided to properly learn touch typing for good. Before that, my typing speed was something like ...[Read more]

Drawing Triangles on N64

When developing my Nintendo 64 game Voidblade, an important step was rendering the triangles. The basic building block of any modern 3D pipeline is a triangle, even to this day (according to Brian Karis's latest SIGGRAPH talk, it will probably take "many years" until we...[Read more]

Voidblade - a N64 postmortem

After more than 25 years of the release of the console, there is still a great Nintendo 64 homebrew community called N64brew. Last year they organized the second game jam targeting the system...[Read more]

Change desktop resolution with node.js FFI

I use my desktop workstation as a home-server of sorts. It is great to game in the comfort of your living room, on the TV, with your favorite game pad if you have an...[Read more]

The problem with async generators

Let's imagine that we want to manage cancellation of an async operation using generator functions in javascript. When a secondary event occurs, we can listen for it and force the generator function to return by calling its...[Read more]

Free SSL for shared hosting

Are you still paying for your SSL certificates? There is a free and open certificate authority called Let's Encrypt for some time now and its main usage is through its certbot. This means that it can be...[Read more]

Cheap, DIY NAS

For a long time, I had a dream. A network attached storage (NAS) solution to keep my backups on. I'm a little mad when it comes to backing up. Do not feel all right without at least 3 copies of the same thing on different places. When I was working on a 3d game engine project...[Read more]

Reverse Engineering a FlySky TX

I was once into hobby RC airplane stuff - unfortunately don't have the time to fly these days. Got myself a cheap 6 channel FM transmitter on eBay back in the day, not that 2.4 GHz...[Read more]

Quick and dirty animaton with async/await

Animation is a pain if you do not know how it is implemented. Basically, you are updating a value with respect to time. This is generally done by calculating the time elapsed since the last frame and interpolating this value between...[Read more]

Passing Arbitrary Messages with C++

When I was working on a [isometric game engine/map editor](https://github.com/anacierdem/LIME) a few years back, I thought that it would be a nice idea to use some kind of a messaging mechanism to communicate between different components of the engine. Although that implementation...[Read more]

Poor Man's Mirror Protractor

I am collecting vinyl for the last 10 years although I have a rather limited collection of about a 100. I really enjoy listening music on vinyl when I have the time. Large cover art, handling the physical medium, clarity and separation of different instruments and vocals...[Read more]

Shadow DOM is still somewhat shady

I was recently building a web app using Polymer 2.0 and need to include some SVG assets for wider resolution support. As you may know, Polymer fully supports native shadow DOM with the 2.0 version. When using...[Read more]

Dumping Korg i5m PCM ROMs – part 2 - Learning to Fail

Previously I have started writing on fixing my korg i5m. Removing the ROM chips was not fixing the problem but taking advantage of this opportunity, I have started trying to dump them out. The problem was...[Read more]

Dumping Korg i5m PCM ROMs - part 1

Recently I was working on fixing a korg i5m 1995 workstation -that I've bought as is on eBay years ago- which has a noise problem in the output. A mechanical but not random weird noise. I also have an i5s (a version with the keyboard and speakers) and I like the samples of that device, so ordered...[Read more]

Redirect OSX internet sharing traffic

To be able to eavesdrop to internet sharing traffic, you may use "pf" or packet filtering tool, which is a kind of firewall used by the mac's operating system. But hold on, why would you need to listen to internet traffic on a wi-fi device? I usually develop for wi-fi enabled devices...[Read more]

Make MacOS keys familiar to Windows

I have recently started using a OSX installed macbook pro work for my work. It is a performance beast but the main environment I'm used to up to this point was Windows. I had a hard time getting used to the key layout, especially...[Read more]

Simple Proxy Server Using Node.js to Bypass CORS

Node.js is a javascript runtime based on Chromium's V8 javascript engine. It is really simple to create a basic HTTP server using the node.js API and a web based proxy is just an HTTP server that relays incoming requests back to the original recipient. So we will capture the requests and forward them using an...[Read more]

Standalone Javascript Application With Chromium

JavaScript is becoming more and more popular every day and I was wondering if I could make a standalone javaScript App. I knew that a Chromium portable package has a "kiosk" mode which...[Read more]

Raspberry Pi Film Camera

Found an old (actually late 70s) TV camera and did my own mod. Removed most of its guts. Removed the lens on the picamera and mounted the camera module on the lens of this monster. Writes videos to an external USB card reader. It is fully programmable so I can make...[Read more]

Javascript based floppy image reader

Currently working on a hobby project on reading floppy disk images using javascript. These days javascript can do anything 80's and 90's computer can do. There are a lot of javascript based emulators already done and being developed and I was thinking of a similar project. I wanted to work on some byte-stuff in my own way and...[Read more]

Symbolic Link Automation in Windows

If you're using a small-capacity SSD and have your main OS partition (in this case Windows 7) on it, it is possible that you run out of space in no time. In my case I'm using a relatively old 60 GB SSD (they were really expensive when I get this one) and have very little available...[Read more]

© Ali Naci Erdem 2024