RSSAmplifier

Blog

John Ratcliff's Code Suppository

A place where I insert my code into the anus of the Internet.

codesuppository.blogspot.comRSS feed ↗25 posts

Latest posts

The Lightning Network In The Old West

The Lightning Network ELIDHDICACS (Explain Like I Don’t Have Degrees in Cryptography and Computer Science) This article will attempt to explain how the Lightning Network operates, by making extensive use of analogy and avoiding intricate details of the underlying cryptography which validates the entire system. The goal here is to give the layperson a general understanding of how the Lightning…

(untitled)

I am really proud of myself today, and of the entire development community as well. About 5 years ago I was given the assignment to port the PC game 'The Witness' by @Jonathan_Blow to the NVIDIA Shield as a work project. The game had several thousand lines of SSE code that I needed to port to the ARM/NEON instruction set. Needless to say, this was not fun at all. I wondered if maybe I could do an…

(untitled)

Just a short post today to cover some recent changes to V-HACD. The YouTube video above demonstrates how to use the DebugView and ConvexDecomposition application to experiment with V-HACD. This tool is Windows only. You can find the DebugView tool with the corresponding ConvexDecomposition application here: https://github.com/jratcliff63367/debugview If you go to the official github repository for…

STL tracker : Sample code which demonstrates how to intercept and track all memory allocations performed by STL containers

My friend Chris Dannemiller showed me the template magic necessary to make it so that you can intercept and track all memory allocations performed by STL containers. To use it, you simply include an alternate header file and instead of using something like: std::vector you use stdt::vector. This code has been tested to work with Visual Studio 2017, GCC, and CLANG. Here is the link to the github…

Hierarchy Builder : A code snippet to derive hierarchies from a randomized collection of bodies and joints

Today I am releasing a code snippet that I had to write for a work project. Since it was generally useful for me, I'm open sourcing it under the theory it might be generally useful for others. Here is the problem it solves. Let's say you need some physics data in an ordered hierarchy of child-parent relationships. However, the input data is unordered. It could even be completely randomized. Often…

SSE2NEON Bug Fixes and new Intrinsics supported

This post is just a quick announcement about a new version of SSE2NEON with the following changes: The official github repo for SSE2NEON can be found here: https://github.com/jratcliff63367/sse2neon The unit tests have been refactored. They no longer assert on an error, instead they return a pass/fail condition The unit-tests now test 10,000 random float and int values against each intrinsic.…

PathCanonicalize and PathFindName functions

So, I just experienced a Google search fail. I inherited some code which made use of the Windows API calls 'PathCanonicalize' and 'PathFindName' functions. Since most of my work these days is multi-platform, I needed a version of these routines I could compile from source. I did a reasonable amount of Google searching and I couldn't find anything. Which was rather annoying. It's not that these…

SSE2NEON.h moved to GitHub

I'm sure everyone has heard by now that Google is dropping support for their code hosting service called 'Google Code'. Since I spent years getting all of my various open source projects on there, it is now going to take me god knows how long to migrate them to GitHub. The one project that I have moved so far is ' SSE2NEON.h '. This is a perfect example of exactly why I release some stuff open…

Aaarrgghhhhh... Google shuts down Google Code!

This completely sucks! Google announced today that they are shutting down Google Code; which is where I host *all* of my open source projects, including the bitcoin blockchain parser! Their excuse for doing this is that too many people are spamming the free service. I have a simple solution, stop making it free!! I would gladly pay a reasonable annual fee to have my projects hosted there. Their…

SSE2NEON.h : A porting guide and header file to convert SSE intrinsics to their ARM NEON equivalent

For a work project, I am porting some PC code which makes extensive use of SSE intrinsics over to Android. Everyone will tell you that the best way to port SSE to NEON is simply to rewrite all of the code. Well, that is easier said than done. Especially when you are porting a lot of SSE code that you did not, personally, write. Especially if that SSE code is a pile of macro expansion on top of…

Everyone Deserves a Good Origin Story

(The Texas Instruments TI-55 programmable calculator which came out in 1977) I have been feeling a bit nostalgic lately as I started thinking about how I got into the game industry. The other day I stumbled across an old scrapbook which contained clippings from when my first game was published. This inspired me to write the following elegiac post. The first time I ever got my hands on a device…

RenderDebug and DebugView : A DLL Plugin and Viewer Application to perform Remote Debug Visualization on Windows

TLDR How to quickly Run Bitcoin BlockChain Historical Data Visualization TLDR; If you don't want to read this whole article and just want to download and run the visualization tool with the bitcoin blockchain historic data, here is what you should do. If you are a programmer and comfortable using SVN, then just sync to the SVN depot here: renderdebug Google Code Project A pre-built binary as a…

How to create a hardened API for middleware

Being a middleware developer is challenging enough to begin with, especially since it is such a tough business model, but support can make your life a living hell. The advantages for the customer are clear, developing software is expensive and risky and licensing middleware reduces risk by adopting a proven piece of technology. For the licensee, their software engineers will have to spend less…

Narrative Clip : First Impressions

I just received my Narrative clip a few days ago and I wanted to make a brief post about my first impressions. I was an early supporter of this Kickstarter campaign. In fact, it is the only Kickstarter I have every been involved in funding. I made my pledge back around October of 2012 and my original estimated shipping date was for March of 2013. I actually received my Narrative clip on February…

How to Parse the Bitcoin BlockChain

(Note as of January 8, 2014. A lot of people have been requesting a pre-built binary for the parser that has a command line interface. I just created one (for Windows 64bit machines only) and uploaded it. Here is the article documenting the tool with the download link . You *can* build it directly from source code yourself if you want to sync to the project .) This article is going to describe in…

An open source code snippet to build a view and projection matrix. Implements: D3DXMatrixPerspectiveFovLH, D3DXMatrixOrthoLH, and D3DXMatrixLookAtLH

Artwork by Lauren Ratcliff Here is a link to the code snippet: ViewProj.h I have a pet-peeve that Microsoft doesn't provide source code to D3DX. It's very annoying to call various utility functions and not be able to step through the source code; especially for basic math and utility functions. One very common thing all 3d applications need is the ability to build a view and projection matrix. Go…

Ubuntu

I'm not really much of a Linux guy, but I do enjoy doing open-source development with small code snippets. Today I installed Ubuntu Desktop as a virtual machine on my main development box. Going forward, I'm going to get in the habit of always uploading valid Linux builds for all of my open source projects and code snippets. That was really all I had to say, hopefully I'll update some projects…

User defined Bit Filtering Class

Today I am providing a small code snippet which I have found to be convenient. Here is the header file: FilterBits.h Here is the implementation: FilterBits.cpp And if your compiler does not provide 'stdint.h' here is a link to a version of that include file: stdint.h It is an extremely common use case in software development where you might want to define a collection of groups by name and give…

Box Approximation : A potentially useless piece of source code

Yesterday I wrote a piece of experimental code that I don't know if it has any practical useful value. However, I did spend a little bit of time writing it and since there is a chance that it may solve some use case that I am not aware of I'm posting it here anyway. I am at least sure that the code is useful as a learning tool. Here is what I was trying to do. I wanted to see if I could…

Some clarifications on my previous post about young people trying to 'get into' the game industry..

My previous post titled "So your teenager tells you they want to 'make video games for a living'.." has gotten a huge response. I wanted to take a moment to briefly address some of the criticism it has received. So far, almost all of my friends who actually work in the game industry have given me strong positive feedback, but, there have been a lot of people upset about it too. My original post…

So your teenager tells you they want to 'make video games' for a living...

If you are the kind of person who doesn't like to read a long article; then just watch this video. It says basically everything I am trying to say here but with one critical exception. This video tries to make a distinction between a 'good' game school and a bad one. My argument is if you have the talent to make it into the game industry, then you should not go to *any* game school. Attend a real…

Open Source Binary EZ-Mesh File Reader

The Binary EZ-Mesh file reader project, tools, and documentation can be found at the following Google Code project . Quite some time ago I created a graphics file format that I call 'EZ-Mesh'. My design goal was to create an extremely 'easy' way to represent 3D graphics data without requiring a massive amount of source code or bloated API. Originally the file representation for this data was…

My NVIDIA Developer Zone article

I just had an article I wrote about optimization I did getting GPU PhysX particles integrated into Planetside 2 go live. You can read it at this link.

Backdoor : A simple code snippet to create a command console to a running application

Today I am presenting a ' code snippet ' that I have found extremely useful. Here's the example use case. You are working on some application, it's a game, or whatever, and you need a command console but the application you are working on doesn't have one, or you aren't operating in a section of the code where you can easily just add new commands to the console interface. What you want to be able…

Life Logging

The Memoto Lifelogging Camera I've been generally interested in the concept of ' Lifelogging ' for quite some time. My main reason for this interest is because of what an absolutely terrible memory that I have. I cannot remember so much of my life it's really quite amazing. I have some general vague memories of things, and since I have started blogging/facebooking over past years, it has helped a…