View Posts for Software Engineering
-
How I am running Services in a Container like style with SystemD
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"
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?
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.
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
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
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
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
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.
...
-
Next Project: Task Management
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 have been my focus and that will come to a head soon. I have down a good version 1 layout of Take to Task (yes that's the name), which is only for myself.
I put up a landing page here: http://www.take2task.com (Edit 11/22/2019 I have a much better name for this) that displays the logo and logotype under the monike...
-
Terrible Ideas #3: Mangling Technical Patterns
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 it will come in handy! I'm a true software developer if I can apply these patterns. Yeah yeah, etc etc. What I didn't know was that people would co opt these terms to mean or do something else entirely. Abuse is what this is.
Factory Pattern
The easiest and most memorable pattern in Software Engineering forever.
Unb...