Pipe Sink

Pipe Sink

I had an idea/desire for a “simple” template class that’d work as my OpenGL thread. A contemporary design for multi-threaded 3D games10 seems to be pooling work and processing it in whatever threads are available. IME OpenGL/GLFW are not re-entrant; Apple2 and GLFW3 explicitly states that it won’t work - so it seems safe to assume that I shouldn’t call functions from different threads. So to make a super-fast 3D game (or whatever) I need to do less work on the thread which is running OpenGL while allowing other threads to send it whatever work they please.

Pi3 NameCheap

This is a followup to a previous post because that one stopped working, now - this works. There’s not a lot of OC here, just clarity. NameCheap DynDNS on a Pi3 I use NameCheap (because they’re anti-SOPA) for DNS. The client program, ddclient, can connect to NameCheap. I’m using raspbian, so, first; run sudo apt-get install ddclient on your Pi find the dynamic DNS settings on NameCheap’s website Dashboard >>> Domain List >>> Manage >>> Advanced DNS they do like to change these things around halfway down the page, there should be a DYNAMIC DNS thingie enable it (if you haven’t already) note the blurb-what-looks-like-a-SHA edit your /etc/ddclient.
Replace SaMBa with WinSSHFS!

Replace SaMBa with WinSSHFS!

I connected my Windows desktop to our office file server using SSHFS rather than SaMBa. I am happy about that. For some reason one of our SaMBa systems got twitchy sometime last month. This is a problem since I’ve inherited a script that; I don’t yet understand runs on Windows (10?) exclusively reads data from \\foo\bar\project\user\project3\data\something paths Since I know that SSHFS already works, I’m setting that up as a substitue.

Pi3 DynDNS

This has been replaced Pi3 DynDNS I want to give my home’s Raspberry Pi3 a DNS name so that I can access it more easily. DNS and Dynamic IP Addresses The Domain Naming System is how those readable textual names like example.com become the actual IP Addresses like that web pages, email, and everything else needs to work. Various groups allow people to register a domain (or subdomain) and specify the IP address of a computer that the domain should reffer to.

GitHub Pages Publish

GitHub pages allow a GitHub repository to function as a web-server thing. … whatevs … create a repository on GitHub I created game-SpaceShips at git@github.com:g-pechorin/game-SpaceShips.git run these from the root; rm -dfr .git git init git checkout -b gh-pages git add . git commit -m "some stuffff or what" git remote add origin git@github.com:g-pechorin/game-SpaceShips.git git push -f origin gh-pages enjoy!

Single Header Bullet

https://github.com/g-pechorin/bullet2stripped What? I reduced Bullet 2.83 to a single C++ header file. Why? Largely to see if I could … hey - SQLite saw a 5% - 10% speed boost when they did this right? … oh - and to ease adoption I guess … maybe … How? I used a slightly complicated Scala script that I’m not interested in examining again … for now … Basically; I took the 2.

Peter's Awesome Lua with the Core functionality we care about

TL:DR ; results DukTape is a C engine for executing ECMAScript 5.1ish. (… or JavaScript or whatever we’re calling it this week) Notably, it’s distributed as a trio of source files to ease integration. Lua is a C script engine (for the Lua languages) and is not distributed in such a nice way. So I spent a few hours preparing a (Python) script to repack Lua 5.3.3 into a single header.


Lindenmayer Systems allow one to specify a series of replacement rules for transforming strings. If the text is used as a series of drawing commands, including saving and restoring the cursor’s position, the technique can generate fairly interesting foliage. A scene graph offers the ability to save/restore by chaining segments together. I used Unity3D’s ScriptableObject to create “Languages” with replacement rules. I also created “Dictionaries” mapping symbols to segments made from GameObject prefabs.

Vive Cane

I’m still alive just … busy, not bloggy … maybe someday I’ll be more bloggy. Here’s something that kept me busy … Teleporting everywhere feels wrong, so my suggestion is to use the Vive wand like a cane. Two minutes feels a bit long, but here’s a video showing it off. More or less; when you grip the/a wand - your avatar is planting a cane in the world from which you can push yourself.

Adding NotePad++ Macros to Atom.io

I haven’t posted anything in awhile … so here’s how to get Atom.io to get macros that work kind-of-like NotePad++ Install atom-keyboard-macros into Atom. > The default keybindings did nothing for me … sorry open your keybindings.cson Hit CTRL+, > click on Keybindings > click on the blue text that says your keymap file paste this wodge into the bottom of your keybindings.cson PRESERVE THE INDENTATION!