View Posts for Software Engineering

  • SPA Search Engine Crawler Friendliness Idea

    |
    Updated at

    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, search engines are actually pretty good about rendering SPA these days, but only to an extent.

    Like let's day it takes too long to render your dynamic content, well how's a crawler supposed to know that? You also may change the title and meta tags to make sure the crawler has the correct information.

    Essentially render...

  • My Experience with State Management For Flutter and Web Applications

    |
    Updated at

    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 can I best do it. There's so many damn choices.

    Flutter gives you setState, StreamBuilder, FutureBuilder and AnimationBuilder. Third party libraries include MobX, Riverpod, Getit and GetX.

    The web gives you events from the get go. Third party include MobX, redux, vuex, flux, and observable store.

    These all have thei...

  • Be Flexible With The Repository and DAO Patterns

    |
    Updated at

    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 and etc.


    A DAO object abstracts the specific database access and includes CRUD methods. A Repository represents a collection of data objects an amalgamation of DAOs essentially.


    Think about it, if you had User Account information, you could store it into a K/V db while indexing the information in a search database ...

  • SvelteKit 1.0 May Be Out, But I'm Frameworkless.

    |
    Updated at

    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 products before their major changes that involved routing changes.

    So I dropped it and went to Lit.dev, which if you ask me is so much better combined with router-slot. There's no enforced bull shit like Sapper or SvelteKit and the performance is snappy AF. Google discovers everything like it were run on the server ...

  • Unreal Engine 5 Beginner Game Tutorial

    |
    Updated at

    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 paced remote learning eh?

    I've always believed that learning programming requires projects not aimlessly learning data structures or Big O run time bla bla. Sure you can learn stuff, but its like learning math at that point. You learned how to add and divide, but nothing of interest to apply them to.

    Game development...

  • Gradle Solution for 'Invalid Signature file digest for Manifest main attribute'

    |
    Updated at

    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 rules to remove those files.

    The rule can be under uberJar or Jar or whatever does packaging in your gradle build.


    uberJar {
    exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA'
    }


    An Android Application

    packagingOptions {
      exclude 'META-INF/LICENSE'
      exclude 'META-INF/LICENSE.txt'
      exclude 'META-INF/MSFTSIG.S...
  • Slow Network Yesterday

    |
    Updated at

    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 various places in the world. traceroute was flapping between paths. Sometimes more sometimes less hops. Today it is more consistent with less hops. Nothing I can do in this scenario since I don't control the network.

  • Next Year's Product Releases

    |
    Updated at

    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.

    Histakes Game

    Hi Stakes Game is the next target product release, which will be interesting as it involves a lot of trigonometry and bits of calculus to figure out how assets will be valued. It's probably a financial mathematician's wet dream just with some fantasy elements to the math. I'm excited about it as it will be my most com...

  • InfluxDB IOx Unbounded Cardinality

    |
    Updated at

    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 making an in-memory TSDB some day mostly because I'd like to use it locally anywhere mobile, backend and frontend.

    The only way I've ever thought of unbounded cardinality is to get rid the mapping and store the text close to the data. Practically though, I only ever thought of solving the cardinality problem was keep...

  • Common Mac M1 Linking Error

    |
    Updated at

    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 against. Read that message over and over and you might realize your mistake. No, it is not the libraries fault and may not even be your fault, but you have to figure out how to fix it.


    The error message is very straightforward. DO NOT BUILD OR LINK X86 APPS OR LIBS USING ARM64 LIBRARIES. YOU CANNOT MIX ARCHITECTURES.

    That...