View Posts

  • For the Next Few Months...

    |
    Updated at

    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, but that hasn't panned out as I would like. Mostly just focused on work and creating my own infrastructure software and libraries.

    What Have I Done Already?

    Let's talk about that non-exhaustively. I write mainly in Rust, Java and JavaScript. Any other language is because of third party software, which is very much...

  • Why I Do Not Store UUID as CHAR or VARCHAR

    |
    Updated at

    Misunderstandings

    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 MySQL, poor B-Tree and poor computers that are abused by incompetence.

    Did you know that UUIDs have 6 versions? Did you know that UUIDs are 128bit random numbers? Did you also know that UUID stored as ASCII doubles the character length and storage space? Do you know why? Did you know that MySQL has to encode and deco...

  • Terrible Ideas #1: Database Model as a Service

    |
    Updated at

    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 from an application? Let's have a go at it shall we?

    Imagine starting with a monolithic application that accesses a few databases and their tables. Life is great and everytime you update version x to version x+1, you update that application to support both version until fully migrated. Lets say you start hiring peop...

  • Svelte/Sapper is F*cking Amazing

    |
    Updated at

    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 fixed my "mobile usability problems" with simple html!). Same reason why I dumped Aurelia, but I had Server Side Rendering working for React. Mind you, I was an Aurelia fan boi 😂. Well, I needed a new framework to use that had SSR working out of the box, but not with React or Angular style heavy bundle.

    I considered...

  • Building a ZeroMQ based Service Discovery application

    |
    Updated at

    Introduction

    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 of another service.

    It is not a new thing that came with microservices. Zookeeper is a famous application for implementing service discovery on regardless of requirements. I give it good praise for the things you can do with it. If you don't have a lot of time to spend I recommend it.

    Use Case

    Building on top of ...

  • Been Working on a High Performance Async Low Latency RPC Library

    |
    Updated at

    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, I built an in memory db for it in Rust as well. Very interesting stuff for me espcially Rust. More on that some other time.

    What is an RPC?

    RPCs are used to communicate across applications. Like if I wanted to get a user's email then I would submit a GetUserEmailRPC Request and get back a response at some point (...

  • Building Java 9 and 10 Modules with Gradle

    |
    Updated at

    Introduction

    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 to import and export classes and resources. There are articles out that that explain the changes. Mark Reinhold made a post about JMS. What are the benefits? Segmentation, smaller build sizes. Let's talk bout Gradle.

    Gradle is a step above Maven as a build system. With incremental parallel builds, it is super quick...

  • Software Engineering Interviews are Arbitrary

    |
    Updated at

    You have likely have read about issues with software engineering interviews before and are reading yet another one! Well, I'm going to talk more about my experience in going through the motions.

    For now, here is a 1 hour talk by a guy named Moishe about interviewing.

    In the video he mentions that there was an experiment done with a hiring committee where their future self would reject the past selves. Probably a good thing as things do not stay the same, but at what point should one say that this candida...

  • Storing Creation and Updated Times Metadata in MySQL

    |
    Updated at

    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 think of is what fields and what data type do I need? created_on BIGINT and updated_at BIGINT. 

    Well, why not use TIMESTAMP instead?

    1. The year 2038 problem! Only 20 years t o go. A MySQL task is create d to track expanding the field. I'm sure it will get solved via database update, but until then... yeah. 
    2. I store mi...
  • Learning about Blockchain and Smart Contracts

    |
    Updated at

    Recently I've picked up blockchain and more Ethereum's smart contracts as I've had interest in the decentralized trust area. [Digression: I'm mining bitcore, so I have some vested interest in learning about what I am throwing myself into.] I've recently been talking with some friends about their idea for education and blockchain and found some interest in it, not enough to join it, but enough to stay interested that maybe some day I'll join them on it. 

    Let's talk about some of the parts: Blockchain, Crypto...