View Posts for Software Engineering

  • Software Project Management

    |
    Updated at

    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 out there. For this post I'll focus on NodeJS, since it is odd.


    If we look at NPM land, they brand themselves as a package manager, but it also runs tasks. When you create a new package, you use `npm init` which will ask you some questions about it. You could have multiple packages in one folder... maybe because you...

  • Social AntiPattern: The Need to Feel Right

    |
    Updated at

    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 binary data in MySQL while the rest is indexed. There are some really bad ways to go about saying you don't understand something and/or have zero experience with, but making really terrible assertions is definitely not the right way to go.


    The comment I was going to make follows:


    The top companies in the field made ama...

  • How I am running Services in a Container like style with SystemD

    |
    Updated at

    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, that builds applications using docker/podman, extracts distribution files from the container and deploys by talking to SystemD. I respect SystemD and grown more appreciation of it 😀.

    Goal

    The goal of the application was to be able to use commands like `deployer build <project> <build name>` to produce an archive that ...

  • On the idea of "Just Restart the Application"

    |
    Updated at

    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 everything is back to normal ... I can say I don't miss at all. Thank god for better tools and development practices.

    Now when this practice is used for networked applications in a datacenter where someone is on call for that application, well I can say if you worked for me.. you would be teetering on a line that ...

  • Thought Provoking #1: What is Systems Programming, Really?

    |
    Updated at

    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 before. You have to wonder what is the limit for high level vs low level and I think this post approaches it well. The author noted that several contributors to lower level languages when asked this question: "what is a systems programming language in 2014?" that they generally agreed that the language must offer you a...

  • Authz Libraries Are Not Fast especially for a Microservices world.

    |
    Updated at

    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 really bad just looking at their GitHub pages and others are pretty good. All of them make an assumption that authz rules are stored somewhere (code, memory, db), which is great. Some are flexible about where policies are stored offering plugins. A lot tend to be rigid on the idea of Role based authz (RBAC) and not en...

  • Shoutout to Mozilla for Nunjucks

    |
    Updated at

    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 Python.

    I was looking for a templating library, written in Javascript, that supported conditional statements and inline importing files. Handlebars and co. do not, from what I saw, support inline imports as you have to register "partials" in code which is not ideal. Look, when writing code generation software the tem...

  • Switching Software Libraries every once in a while

    |
    Updated at

    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 set of libraries. The productivity benefits where everyone can learn from what you did and you can start a new project with those set of libraries again faster than before. Managers and stakeholders are happy that you got results. You feel good knowing that you delivered something and customers are using it. When yo...

  • Few Words about Service Mesh

    |
    Updated at

    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, service-to-service authentication? Right, I can do that with clients with far less overhead and time spent and still manage the clients like a proxy. Bye bye.

    Service Mesh.... a terrible idea.

  • Encrypted Configuration

    |
    Updated at

    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 behind proper network access security and credentials encrypted. Configuration refers to values provided to software initially and while it runs by a file descriptor (file, socket) or shared memory. Environment variables are provide only at boot and cannot be changed at runtime, so I'm a fan only for constant values.

    ...