I'm a use any tool that helps you kind of person, so I like GPT-4o and Claude for coding tasks, but open models are getting much better. Problem is models like GPT and Claude require an internet co...
I find myself annoyed when building something that more things are needed than what the instructions say.
The build steps: https://github.com/facebook/mysql-5.6/wiki/Build-Steps
You follow these step...
I created a Time Series Database for private use and am also looking to figure out ways to decrease on/off memory space and simplify things.
Typically a time series database will store values into a...
It's a big step forward. I've talked about Data Collection, Monitoring and Visualization before, so this has always been on my mind. Just glad to get something down now.
My Idea has been a TSDB/LogD...
I assert that rmp and bincode are much faster than bitcode despite the "rust serialization benchmark". Bitcode is highly compressible as well, it claims and that I will not test.
There is this
https:...
๐๐ญ๐
Yes, and it would be bad if it weren't for C5Store's secrets handling. Secrets are encrypted before commit ๐ฎโ๐จ
You might be thinking what is ULID? or Why not use UUID? This is why I don't use UUIDย for identity.
ULID is essentially a sortable version of UUID4 with timestamp. It having a sortable property work...
Project Starflash is an, in development, social network for romantic and platonic connections. The twist is that connections are done between people of the opposite gender.
I wholeheartedly believ...
Mmmmhmmmm, so I've been thinking about how many popular dating apps are currently owned by Match Group. Sure there is Bumble, but what's the difference? People's mindset about the apps I guess like...
Not much to update on this game here.
I got to the point where I deleted the Defold project and successfully ran the Flutter Flame project on desktop and the phone. It works way better than Defold a...
Listing out the bad parts of it that annoy the living sh*t out of me.
GUI, What GUI? It's not really worth calling a GUI, there's no events. I personally don't understand the idea that adding simple...
I recently upgraded this blog to use a Rust based web framework called Leptos, so that took away time and brainpower from this project.
Project Phantasy is fundamentally a clash game. You spawn avat...
Like my previous post, Defold just has its own way of doing things that are very annoying. This talk of simplicity is pure garbage to me. Collision groups are fundamental to a physics system. Why w...
Defold's sound system is weird. They do things differently with many things, which is actually annoying. Sound is one of those things where you'd expect a singleton or component to play wav, ogg, m...
Version 3 is in Lit, version 2 was Svelte, but those choices were because I liked NodeJS and wanted to see how close I could stay to vanilla Javascript, but I'm abandoning NodeJS, in general, due t...
When I first saw Druid I was like oh cool, a way to do GUIs in Defold since Defold's GUI stuff looks unappealing. Turns out, It's not a UI Component library as it claims but an extension of what's ...
Released on Google Play, but not Apple yet even though it got reviewed and approved. App Store has a weird bug where it did not want to move itself from "in review" to "ready for distribution" even...
Without Bevy Game Engine especially. Yeah, I'm using rust to build a game. ๐๐๐
Most people would not write Rust especially for a multiplayer game server! I'm taking on the challenge to do it twice, ...
I spent today just trying to use nunjucks for serving some templated html. Turns out nunjucks among other templating libraries are fucking broken because of this rtarded split between cjs and mjs.
E...
Log of issues I've run into with Godot on iOS or Android.
It's not easy to optimize and the information out there isn't too great. There's just not much resources on optimizing Godot for mobile devices out there in general. Your mileage may vary.
Viewport ...
If you've tried to export a Godot game for Android target, you most likely ran into errors when you checked Gradle box like "Unable to locate a Java Runtime" or whatever. Annoying since there is no...
Source Code: https://github.com/normano/jfxr
I forked JFXR and added electron support so one can open it as a native application.
JFXR is supposedly a spiritual successor to BFXR which one could use ...
In applications, specifically web apps when a user performs an action such as pushing an item into a shopping cart or sending a message on a forum, there is an immediate need to persist the data in...
I already knew Objective-C which I liked. I can't say the same for Swift though. I also decided to hunker down and build a smolll app with it for iPhone and Apple Watch.
Swift looks like it was insp...
I've wondered how one would store data for games in a save/load system in Godot with little to no encryption. I think the best way is to create interdependency in the data structures, so if one par...
I've been learning Godot because it great to learn new things and because for once making 2d games for all platforms (mobile, web, desktop, tv, console) is reachable. Godot is a great game engine w...
The idea is pretty much have the server render a lightweight web page with all the meta information needed.
When one thinks SPA, you think well how's the search engine supposed to view it. Well, sea...
I've worked with web and mobile app ui development for quite some time and the biggest snag will always be state management. Everytime I think about some state that needs to be shared, I wonder how...
I've used these patterns for years now in software I make depending on complexity of the software. They are used to abstract access to external data services including MySQL, RocksDB, ElasticSearch...
This blog used to be powered by Sapper, but the project got cut for some reason by Svelte Team. Replacement SvelteKit, which to be honest is a stupid fucking name, was used for a while for my new p...
Imagine creating a game within say 3-6 hours with the above video. Clearly, you will not be able to do it within 2 hours since you'll have to rewind from time to time to keep up. The joy of self pa...
You're here because you can't run your jar.
Typically caused by a dependency that includes cryptographic information that will mark your jar as signed. To fix it you need to include some exclusion r...
My web properties were slow I guess some network link was flapping somewhere causing packet drops. It was slow for me and sometimes Google crawler, but not for uptime tools that connected from vari...
I have released or in the process of releasing 4 products this year. 2 on the civic side, 1 personal and 1 mobile utility. 3 products was the original target, so 4 is above target.
Hi S...
I was wondering how they could claim unbounded cardinality because what I've seen in TSDBs is a mapping from a unique time series to an id usually 64 bit integers. I've always been interested in ma...
You've probably seen this error message "building for macOS-x86_64 but attempting to link with file built for macOS-arm64" and are stumped and complain about whatever library you are linking agains...
Well, as part of version 3 of the blog I wanted to close down my blog's API HTTP in favor of an endpoint on this domain. It was driven by my desire to reduce public web surface of the blog, which m...
When I say RPC request and response, that means the request and response were serialized/deserialized with messagepack. It's just message passing in the end.
ZeroMQ is fast I mean really really fa...
I was curious about use of ZeroMQ since I use it extensively with my own RPC, PubSub system.
Hermes is a network messaging stack created at Spotify, on top of existing open source ...
"Enhance your Functional Web Apps with Web Components"
https://2022.cascadiajs.com/speakers/brian-leroux
Enhance is one of those frameworks I wish existed in 2010 because I would have used it. Too ba...
Migrated my SvelteKit projects to lit-html because it is so much better to use lit-html. I've always been a fanatic about staying close to vanilla as possible for high performance and low maintenan...
I think SSR is only important because of cargo culting. This site right now uses Sapper to render the the entry page after that, it's all Javascript. I never cared about Sapper's SSR ability. Only ...
I've been looking for a way to pass properties and/or attributes to a slot element through to the target element that replaces the slot, but that isn't supported behavior in the W3c spec. I spent a...
Already started migrating the front end part of one application to Web Components. Absolutely making heavy reuse of existing code to hasten the effort. The way the web components renders and how hi...
https://github.com/normano/web-starter
BOOOM BABY! NO FUCKING FRAMEWORK!
From my last post where I had a direction on where to go I found the libraries that were sufficient to get me going on the Van...
Leaving Svelte behind immediately, I've started looking for vanilla approaches to replace Sapper and SvelteKit for my apps.
When it comes to web apps, some want to be loaded on page by page, some fr...
No longer using Sapper for this site or SvelteKit for any new projects. Instead I am using lit.dev and fastify, which have higher performance. Good bye Svelte Sapper whatever! Here's a starter repo...
You ever wonder how other libraries exposed their library's internal paths with shorthands: @namespace/pkg/subpath? I did when this I had to expose ESM CJS modules so I could use SvelteKit and use ...
I've been an in memory database fan for a long time. They are easy to work with. Hell, SQLlite is used in browsers and mobile apps because relational DBMS are powerful. RocksDB is a powerful key/va...
The MessagePack Protocol supports 64bit Integers, but for whatever reason msgpack for js still decided not to fully support 64 bit ints. Javascript supports 64 bit integers through arbitrary bit pr...
Paxos is regarded as a complicated consensus algorithm much like how Kubernetes is seen as a complicated system. That doesn't mean you should notย be curious and take some learnings and insight fro...
Flutter/Dart, whatever you want to associate null-safety with. Why is this lint error a thing? The official solution is to migrate the imported library. Lol, I don't believe it is my problem that t...
This is an elegant solution that I quite appreciate because it uses zero data bytes:
some_flag CHAR(0) DEFAULT NULL
To set it to true, set
some_flag = ''
and to set it to false, setsome_flag = NUL...
Started making a "real time" API for my productivity software. I wanted to figure out what is a good way to notify a user's browser that something happened or new popped up so that it would update ...
Beginning of back to normalcy I think. Back to writing more about Software Engineering and less about the dark road of fascist-like politics and conspiracies.
Technically the idea of decorators for ...
You may be familiar with this shitty error probably using Gradle 6.7:
Caused by: java.lang.ClassCastException: class java.lang.String cannot be cast to class java.util.List (java.lang.String and jav...
You just can't beat this feature.
use ::phf::{Map, phf_map};
static MAP: Map<char, &'static str> = phf_map! {
'a' => "apple",
'b' => "bear",
'c' => "cat",
};
Makes it so easy to create a...
Anyone heard of any other language where there are "module" specs? You know specs for how your library will be bundled up in order to expose your library for consumption.
AMD, CJS, UMD, ESM, SystemJ...
It has been a while since the last time I looked into CRDTs or Conflict-free Replicated Data types. The name is pretty descriptive in that you want data types that replicate in a conflict free mann...
I'll keep it short. First tech related post in a while too.
I never used peer dependencies because I did not understand the point. It never installed the library I wanted! So it made no sense to me.
Every year I try to see what I can do for my blog. This year, I decided not to change the layout. I think the layout is simple enough.
Instead, I updated the font to use Inter and updated infrastruc...
https://news.ycombinator.com/item?id=23308644
"Rob Pike, one of the 3 original Go architects, has stated in the past he doesnโt like syntax highlighting"
https://groups.google.com/forum/#!msg/golang-...
MySQL's Binary Log is nice to have, but not easiest to use. Change data capture (CDC) is the primary reason why I have to do it. When a user performs and action that causes an INSERT/UPDATE/DELETE,...
When I begun with the goal of looking for a better way to compress a string in real time in memory while gaining fast query capabilities, I had a Rust Generalized Suffix Tree built naively on top o...
Update: Found several bugs in my Typescript and Rust implementation that looks to invalidate the results here. Either I stumbled into a way to construct a minimized graph that can find what I want ...
Part 2: https://www.normansoven.com/post/obessed-with-making-a-generalized-suffix-indextree-memory-efficient-part-2
I am so obessed that I threw away the Suffix Index and pursued its successor, the ...
I created a Generalized Suffix Index based on a Radix Trie (libART, Adaptive Radix...
or the fewest places possible. Cache invalidation is hard, so why make your problems harder by multiplying it?
I've been thinking about a comment made here about "cacheless architecture": https://ww...
Couple of months ago I wanted to talk about the Configuration Triad: Configuration Provisioning, Distribution and Provider.
If have not seen my Open Source Config Provider, C5Store, well you can fin...
Link: https://github.com/ingydotnet/git-subrepo
I was thinking about how to distribute configuration (including secrets) in my applications recently so naturally the idea of using git as a way to fa...
Disclaimer: This is more proof of concept than anything else.
I was setting up Sonatype's Nexus yesterday and was very annoyed at the setup ceremony associated with it. I got it working with SystemD...
I wonder who thought the way that `npm link` should work figured that no one would ever try to use local modules on their computer. I'm really incensed by the idea that modules that are the same ve...
Yes, another application configuration library, but I assure you this is way better than any one of them out there. This is the Provider section of the Config Triad (Provision, Management, Provider...
Figured I start keeping track of talks and papers that Facebook developers produce that I found interesting. I'll keep the list updated.
2008, Zuckerberg on Memcache at Facebook (https://www.yo...
I remember getting a simpler form of a priority ordered job processing system for a take home interview question. I declined to do it. Just wasn't interested in creating usable compilable code for ...
I could say I've seen this some times when applications would contact a ticketing system to create a ticket and then see where a ticket is before performing an action. Typically, a human would inte...
Let's say you have a list of items that you want to sort, but you want it such that a user can change items in the list.
Naively you would give every item a score in an integer range. Typically star...
https://medium.com/@iwaninzurich/why-software-engineers-dont-get-jobs-three-horror-stories-77fd1ae3b875 - This post was written by a recruiter who knows his shit. This is the kind of recruiter to h...
I've been building an application in Svelte/Sapper that I will release in the near future. Given my previous postings of Svelte/Sapper and use of Svelte for the blog and other applications, I think...
I've been working on tthe UI part of the application I've been creating for myself for now that will eventually be released for public consumption. I've used many applications on desktop and they a...
I find this primary thing very important. It is compatibility with existing Javascript libraries without having to rewrite them into a svelte-* library. This is the biggest reason why I do not find...
Just a few comments since I've been looking into these things as part of my Software Project Management tools research.
Todos: TODOs are very useful. Not just for future thought, but for thought pro...
No not the project todo sorta thing. The engineering kind where a person creates a project and brings in all sorts of tooling to help them manage their project. Really important to know the tools o...
I was gonna reply to some hackernews comment before it was deleted. The context is someone asseting storing any binary data in an RDBMS is an anti pattern after I said I store unindexed data as bin...
If you are like me, you just want to run your application in SystemD with no Docker or Kubernetes involved. I made a build/deployment application for my own applications, private closed source, tha...
The Microsoft Windows days where programs would memory leak and perform illegal operations causing your OS to freak out and slow down and at some point you'd give up and restart the compute and now...
A thought provoking read is What is Systems Programming, Really? (http://willcrichton.net/notes/systems-programming/).
I've dabbled on the idea of low level vs high level programming languages befor...
What makes me want to write this post? Ah, I've been working on my own product and scouring around for a good answer to authorization. Particularly, authorization libraries in NodeJs. Some are real...
Mozilla maintains Nunjucks (https://mozilla.github.io/nunjucks/), a templating library written in Javascript. Apparently drew its inspiration from Jinja, which is a really good templating lib in Py...
A topic that people tend to discuss about. Stability. Who doesn't want stability? The knowledge you gain by sticking to one thing. It makes you feel safe that you can rely on this thing... say a se...
Terrible Idea. Fuck Complexity.
Proxy for every service? I would fire you for this. Oh, you made managing the proxies manageable? Oh, you can load balance properly? Canary routing? Metrics? OMG, se...
A.K.A. Secrets. Secrets are not terribly interesting topic outside of servers and databases being compromised by exposed details where we raise pitchforks at those for not keeping their servers beh...
I've been working for myself for almost two weeks now just trying to lay down some bases and modify some of the logos I got back from freelancers to make it look pleasant. Design and infrastructure...
Oh boy, I remember when I started getting familiar with Software Engineering patterns and y'know these patterns have names assigned to them and try to desperatelyย to memorize them because some day...
TL;DR Only small MonoRepos on git a.k.a. Multi Repo. Use a MetaRepo if you want one big repo with "partial" checkouts.
I used to work at a company that did single repo (not monorepo) on TFS (This Fu...
Yeah, so I left my job today so I could finally focus on some of the ideas I've had full time. I've always thought that I would have come up with a consumer business on the side while I was working...
UUIDs.... Such a widely badly stored and used form of identification. Would you believe that people store UUIDs are in MySQL as not only primary key, but CHAR and VARCHAR?! Poor My...
Had a go thinking about abstracting database access into a service and the question I have is why? Why bother abstracting this access? What benefit does one get when abstracting the database away f...
Alright alright, so I dumped React as my frontend framework for this website and that's primarily because Googlebot was being all weird in rendering my pages for search results (this was after I fi...
Service Discovery, the phonebook of applications, is a foundation for services oriented architecture. It answers the question of how does one service dynamically discover the endpoints...
Lately I've taken an interest in facilitating Remote Procedure Calls (RPC). Spawned from service management (mgmt) application I've been building in Rust. Along with that service management system,...
Java 9 introduced the Java Platform Module System a.k.a. JMS, JPMS and Project Jigsaw. With JMS, classloading and visibility are much different than before with modules being the way t...
A common use case: Let's assume you have an accounts table and you want to know when an account was created or last edited. or you want a log table that stores created time.
First thing I would thi...
Alright, so I deployed a new version of the blog to support canonical URLs, new text editor for the backend, and fixed how lists get shown in a post.
It has been a while for me to get excited about a language. PHP was the first language I learned, but I wasn't excited about it. It wasn't until I discovered PHP 5 and OOP that I felt an epiphany! ...
Found this gem on another website:
SELECT CONCAT('ALTER TABLE ', tbl.TABLE_SCHEMA, '.', tbl.TABLE_NAME, ' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;') FROM information_schema.TABLE...
Few resources on the topic
-ย http://www.dpci.com/blog/making-case-digital-asset-management
public class LRUCache {
p...