These are my favorite technical posts. Clear explanations of pervasive technology, with demonstrations.
In theory, yes, you don’t need the network boundary to write better code but that’s just part of the problem. Keep in mind that very few organizations are able to keep the employees for a long time so a microservice architecture would help new developers (especially non-senior developers) get up to speed quickly simply because it’s a smaller codebase and it’s easier to figure out that individual part of the domain. From my experience, that makes it a lot easier to understand the domain.
You can have well-isolated codebases for distinct components without having to introduce a network boundary.
True.
I personally believe that few will benefit from “true” microservices and the whole idea is more of a guideline than something you need to follow religiously.
Fixing cultural problems with technology is awkward for everyone. Fix root causes, and use as little tech gets the job done as you can.
If you kept track of which services were on which hosts, could you use same-host calls when possible and prevent the network boundary? And if you kept track of service dependencies, could you schedule services to run on optimal hosts (like CPU affinity) and solve that problem with your service scheduler?
Yes, you could (although there would still be a kernel context switch + serialization/deserialization).
Now you have 2 extra things (a service discovery tool with same-host prioritisation and a dependency-aware scheduler) that you have to configure correctly, test, monitor and get woken up by.
All these problems are soluble given sufficient engineering time; the question is whether burning a fortune to get there is a good use of money.
Take a look at projects like Zookeper or Consul. I’m not sure if they do same-host prioritisation but they are one the the most popular tools for service discovery and organization that I’m aware of.
Yeah, but same difference? You don’t need to track same host calls and avoid the network boundary to write better code either.
This article does have some nice metrics on contrast, especially the design guideline hypocrisy, but it seems like a color (and branding) issue not a typography issue.
A factor that looms larger in computer science than in architecture or other disciplines is correctness. A building may be regarded as elegant even if marginal parts of it are uncomfortable, but no program that does not work is regarded as elegant.
I don’t think comfort is the analog for correctness in architecture. Many great works of architecture are made to be uncomfortable – with the thesis being how. You could even argue that the lack of formal correctness in architecture is part of what makes it so interesting. But if one thing makes programming unique, it’s the way both aesthetic and formal correctness can be pursued.
I browse Lobste.rs at 120% scale and Hacker News at 170%, but I know some people like the type small so that more of it fits onto one screen. The important part is that a site responds well to zoom or other text size adjustments, or at least works well under Reader View, so everyone can read the content in the way they’re most comfortable.
Completely agreed. Making it flexible is more important than guessing what a particular set of users will find optimal.
I do break the pixel-specified CSS here, so everything is relative to firefox’s 16px default and when I change that, it should change everywhere.
body, textarea, input, button { font-size: 100%; }
li .link a { font-size: 110%; }
li .byline { font-size: 90%; }
While I’m mentioning ✨lobste.rs modding✨, I also shuffle things around and space them evenly when previews are enabled:
// If story previews are enabled, set regular spacing and place byline below
// title.
if (document.querySelector('div.story_content')) {
var sheet = document.createElement('style')
sheet.innerHTML = "\
ol.list li.story { height: 7.5em; } \
li.story div.byline { color: #777; } \
li.story div.byline a { color: #777; } \
li.story div.story_content { color: #999; font-size: 95%; }"
document.body.appendChild(sheet)
var bylines = document.querySelectorAll('div.story_content + div.byline')
for (var e of bylines) {
e.parentNode.insertBefore(e, e.previousElementSibling)
}
}
That all comes out like this
Better have small text that’s easy for users to scale than large headlines that don’t wrap well and take ages to scroll through. In lots of ways, I think Lobste.rs and Hacker News do this best: text in simple divs, with straightforward constant sizing and no crazy wrapping techniques.
This looks great, I would love to run it at my school as a per-class / department forum.
Glad to hear that! Please feel free to make an issue on our GitHub project if you have any questions / issues.
I’d love to contribute, but I don’t know much Ruby. Do you have any outlined milestones so I can keep my eye on the project though?
We do, we use GitHub milestones https://github.com/thredded/thredded/milestones