Analysis without metrics
is only an opinion.
2021 Resolutions
I have been for years a full-remote software engineer, fully involved in my kids education. I really enjoy time at home, and time alone. Yet still 2020 has been a pain of a year. One year is a surprisingly small amount of time, yet so many things can happen through it. I hope this time,Continue reading “2021 Resolutions”
Myriahedral projections
It’s recently been the 12th anniversary of this paper. It is such a fantastic example of data visualization that have always feel the need of making an implementation of it. Finally I gave it a try with more or less successful results. How I reached this point, was a bit of a rollercoaster of failureContinue reading “Myriahedral projections”
New v8 compiled version
Just compiled and added to the repo of v8 versions 8.4.371.7. This version consistently crashed for arm, arm64 and x86 when the Isolate initialization process tried to set the logger up. I have disabled Isolate log capabilities, which is fine on my side, but could not be your case. As usual, I have added libraryContinue reading “New v8 compiled version”
Building a Javascript game Day 9
A lot of time has passed since 8th day of work in the game. That subtle need of providing is probably the culprit… I have added a in-game feature: rainbow bubble. This bubble matches against any other bubble type. Can’t be selected on its own or popped using the ray. It is created by poppingContinue reading “Building a Javascript game Day 9”
Building a Javascript game Day 5,6,7,8
These days have been invested on finishing the game model. It’s been an scattered working routine. Instead of taking this side-project too seriously, I just developed when I really felt I could be productive which has turned to be best idea ever since lots of stuff has been accomplished. Score, bonus notification, one power up,Continue reading “Building a Javascript game Day 5,6,7,8”
Building a Javascript game Day 4
4 days in a row working on this little game. Everything starts to pay off, and at the same time, I am already feeling that recurrent thinking of giving up. After all, I doubt I will be able to finish the game in time (my own imposed schedule), and even worse, I doubt I couldContinue reading “Building a Javascript game Day 4”
Building a Javascript game Day 3
Day 3, has been for general refactor. Adding a game model which drives all in-game interactions/actions and on-demand enabling of post-effects (explosion). I am quite happy with the result, but still a couple days away from being able to play the game. I have squandered almost an hour figuring out a problem where the explosionContinue reading “Building a Javascript game Day 3”
Building a Javascript game Day 2
Sundays are for rest, so this day of work has been an easy one. Some code refactors, like changing the default blending mode, but most importantly I added an important feature I wanted to have in the game. It is expected, that when a group of bubbles pop, depending on their number, some “soul lines”Continue reading “Building a Javascript game Day 2”
Building a Javascript game Day 1
Today has been mostly a setting up day. It is surprising how code written several years ago is still on shape. The game engine allowed me smoothly add a few shaders for the game. Underwater god rays, an explosion that will be triggered when several bubbles are pop at the same time and some raysContinue reading “Building a Javascript game Day 1”
Building a Javascript game from scratch.
For the next 7 to 10 days I will be building a game from scratch. It will be a one-finger time-waster simple-puzzle type of game. Proudly written in Javascript, deployed on android and FB messenger, and running on my own wrapper+renderer tech. Will document each day of work, with a little list of TO-DOs, expectedContinue reading “Building a Javascript game from scratch.”
Generic Javascript to Java bridge
When embedding v8, one of the pain points is how to call Java/Kotlin code from Javascript. It is not just a matter of setting a FunctionCallbackInfo<Value>, but also of dealing with JNI. While there are really impressive exercises for automating JNI code calls, these are only valid suitable when you know your JNI needs upfront,Continue reading “Generic Javascript to Java bridge”
Native threads and JNI
How a native (non Java) thread can call into Java code through JNI.
Enable JavascriptCore debugging
Enable JavascriptCore remote debugging on Safari devtools.
Javascript native wrappers in V8 — Part I
Full tutorial on how to define native/javascript wrappers in v8.
V8 wrapped objects lifecycle
Basic v8 native wrapper lifecycle management. GC hooks.
V8 inspector from an embedder standpoint
Debug v8 in dev tools. Architecture and how to.
Android v8 embedding guide
How to embed V8 in Android. Project setup.
Squeezing v8 startup time 2
Faster v8 startup times. Extracting and storing Bytecode cache.
Compiled v8
several arm and arm64 pre-compiled and ready to use v8 versions.
Compile v8 arm, arm64, ia32
Working script to compile v8 for different architectures.
Annotation processing basics
Simple Annotation processing tutorial.
Software development empirical rules
Brain dump of software engineering ideas.
Automata
Fully functional finite state machine library. Concepts and how-to.
Squeezing v8 startup time
On my day to day job, v8 in present most of the time. One philosophical foundation of our product is startup time, and all time taken from startup to the first frame drawn must be lowered as much as possible. This startup time is composed of many different steps, from GL context initialization, to scriptContinue reading “Squeezing v8 startup time”
Android Java/Json converter
With runtime type reflection I’ve been working a long time with multiplayer web-based/Android/iOS games, and one common operation on the server side or native clients is Json conversion to Java and vice versa. For such repetitive tasks I created a runtime reflection-based system to aid me in the process. Serialization is straightforward. Just recursively visitContinue reading “Android Java/Json converter”
Node.js module globals
Everyone that required a Node.js module realised that the module globals keep local to the module and don’t pollute the global namespace. From a Nodejs standpoint, this is fairly easy. Since in Javascript a function creates an scope, a module source code is then wrapped in a javascript function like: This function uses the same javascript contextContinue reading “Node.js module globals”
Change object default toString value in Javascript
For any javascript object, e.g.: A call obj.toString() will by default yield: [object Object] . Some other objects, like the browser Window object, will yield: [object Window] if printed on dev tools. We can force a value different than [object Object] by executing this: Now, obj will be identified as: Tagging special objects has never been easier than this. Addendum The native side of things would lookContinue reading “Change object default toString value in Javascript”
About me
This is a blog about random brain dumps on programming. Mostly things that have been useful to me over the years. In my career I have been cofounder of a couple failed startups, manager, but above all software engineer. As such, I face daily challenges that can be for sure blueprinted, and this is theContinue reading “About me”