-
Monolithic Interfaces are the Worst
One of the projects I have at work is a web application, and it uses the repository pattern. Normally, there’s no issue here, the repository pattern is a pretty fundamentally solid pattern: encapsulate your data-access/update logic and expose only that which is necessary for the application. However, as so often happens, in this case the…
-
Estimating and Projecting Future Data-Use at a Basic Level
Recently I was in a game-development group, and the topic of storing “chat” messages came up. At one point, someone mentioned that “if we store them all to the database it will get huge”. Regardless of whether storing chat messages in the database “forever” is a good thing or not, what I want to discuss…
-
Automating libvirt networking with minimal pain
A few weeks ago I started a project to experiment with kvm / libvirt / qemu virtualization on CentOS 8.2. Getting qemu and libvirt all setup was relatively easy, and went pretty painlessly. After that, setting up network bridges went relatively well also. However, when it got to networking, things got a little less pleasant.…
-
If you’ve discounted PHP as a good choice for web programming, you should seriously reconsider.
In 2001 I got my start in programming. It was a very basic start: my (to-be) stepdad was teaching me about a “chat response bot” he was working on, and showing me things. I don’t recall the language he was using anymore, but later, in 2002, I started learning HTML. In the middle of 2002,…
-
You’re taking Dependencies Wrong
Specifically, you’re logging wrong. Here’s the deal, we all at some point think “Oh, I need to log some information, better write an abstraction!” Because we programmers are too afraid (or arrogant) to take dependencies on someone else’s “stuff”, we always write our own abstractions. They’re usually subtly different, but the 99% similarities are: An…
-
Bringing F# into the SQLCLR
It’s been some-time since my last post, and don’t worry, we’re still going to continue the IMAP server. I’ve been swamped at work, and as a result, haven’t had the time to properly dedicate to writing these posts (especially that series, which is a complex topic). Excuses aside, today we’re going to talk about something…
-
Implementing Server-Side RFC 3501 (IMAP) in F# (Part 1)
So it’s been a while, I’ve had little free time over the last couple months (December through February are my extrememly busy period), but I want to start a new project today, inspired by a complete failure of my existing mail provider to work properly. Start with RTFM (or RFC’s, in this case) Now IMAP,…
-
Getting Started with Programming and getting absolutely nowhere: Part 19
Cleaning up our previous work Developing software has a lot of fun parts: solving problems, designing a system, experimenting with what you have finished so far…it has a lot of interesting and delightful things to be done. Unfortunately (or fortunately, depending on how you look at it), developing software also has a couple less delightful…
-
Getting Started with Programming and getting absolutely nowhere: Part 18
Documentation: it’s really important I’m going to take this lesson to talk about the elephant in the room when it comes to programming: documentation. I’ve said it before, and I’ll say it again: documentation is really important. Whenever we write code we should always think of a way to document it, and we should try…