"breaking things down into the right primitives" is the real key to programming. There are many books and web pages about algorithms, but I wish there were more searchable and browsable resources for how to approach problems through primitives.
The process of breaking a complex problem down into the right primitives requires great understanding of the original problem in the first place.
Whats blocking me during programming usually are edge cases I had no idea about. Its still hard to find good material on compilers if you are not into reading dry ass books. Thats a me problem though, I simply cant force myself to read boring factual only content (one of the reasons as to why I love beejs guides).
> The process of breaking a complex problem down into the right primitives requires great understanding of the original problem in the first place.
Yes, but with experience that just becomes a matter of recognizing problem and design patterns. When you see a parsing problem, you know that the simplest/best design pattern is just to define a Token class representing the units of the language (keywords, operators, etc), write a NextToken() function to parse characters to tokens, then write a recursive descent parser using that.
Any language may have it's own gotchas and edge cases, but knowing that recursive descent is pretty much always going to be a viable design pattern (for any language you are likely to care about), you can tackle those when you come to them.
Yeah. I only work for a small company, but you can be certain we will not update the status page if only a small portion of customers are affected, and if we are fully down, rest assured there will be no available hands to keep the status page updated
>rest assured there will be no available hands to keep the status page updated
That's not how status pages if implemented correctly work. The real reason status pages aren't updated is SLAs. If you agree on a contract to have 99.99% uptime your status page better reflect that or it invalidates many contracts. This is why AWS also lies about it's uptime and status page.
These services rarely experience outages according their own figures but rather 'degraded performance' or some other language that talks around the issue rather than acknowledging it.
It's like when buying a house you need an independent surveyor not the one offered by the developer/seller to check for problems with foundations or rotting timber.
SLA’s usually just give you a small credit for the exact period of the incident, which is arymetric to the impact. We always have to negotiate for termination rights for failing to meet SLA standards but, in reality, we never exercise them.
Reality is that in an incident, everyone is focused on fixing issue, not updating status pages; automated checks fail or have false positives often too. :/
Yep, every SLA I've ever seen only offers credit. The idea that providers are incentivized to fudge uptime % due to SLAs makes no sense to me. Reputation and marketing maybe, but not SLAs.
The compensation is peanuts. $137 off a $10,000 bill for 10 hours of downtime, or 98.68% uptime in a month, is well within the profit margins.
This is weird - at this level contracts are supposed to be rock solid so why wouldn't they require accurate status reporting? That's trivial to implement, and you can even require to have it on a neutral third-party like UptimeRobot and be done with it.
I'm sure there are gray areas in such contracts but something being down or not is pretty black and white.
> something being down or not is pretty black and white
This is so obviously not true that I'm not sure if you're even being serious.
Is the control panel being inaccessible for one region "down"? Is their DNS "down" if the edit API doesn't work, but existing records still get resolved? Is their reverse proxy service "down" if it's still proxying fine, just not caching assets?
I understand there are nuances here, and I may be oversimplifying, but if part of the contract effectively says "You must act as a proxy for npmjs.com" yet the site has been returning 500 Cloudflare errors across all regions several times within a few weeks while still reporting a shining 99.99% uptime, something doesn't quite add up. Still, I'm aware I don't know much about these agreements, and I'm assuming the people involved aren't idiots and have already considered all of this.
> I'm sure there are gray areas in such contracts but something being down or not is pretty black and white.
Is it? Say you've got some big geographically distributed service doing some billions of requests per day with a background error rate of 0.0001%, what's your threshold for saying whether the service is up or down? Your error rate might go to 0.0002% because a particular customer has an issue so that customer would say it's down for them, but for all your other customers it would be working as normal.
> something being down or not is pretty black and white
it really isn't. We often have degraded performance for a portion of customers, or just down for customers of a small part of the service. It has basically never happened that our service is 100% down.
Are the contracts so easy to bypass? Who signs a contract with an SLA knowing the service provider will just lie about the availability? Is the client supposed to sue the provider any time there is an SLA breach?
Anyone who doesn't have any choice financially or gnostically. Same reason why people pay Netflix despite the low quality of most of their shows and the constant termination of tv series after 1 season. Same reason why people put up with Meta not caring about moderating or harmful content. The power dynamics resemble a monopoly
Most of services are not really critical but customers want to have 99.999% on the paper.
Most of the time people will just get by and ignore even full day of downtime as minor inconvenience. Loss of revenue for the day - well you most likely will have to eat that, because going to court and having lawyers fighting over it most likely will cost you as much as just forgetting about it.
If your company goes bankrupt because AWS/Cloudflare/GCP/Azure is down for a day or two - guess what - you won't have money to sue them ¯\_(ツ)_/¯ and most likely will have bunch of more pressing problems on your hand.
The company that is trying to cancel its contract early needs to prove the SLA was violated, which is very easy of the company providing the service also provides a page that says their SLA was violated. Otherwise it's much harder to prove.
I have to say that if an incident becomes so overwhelming that nobody can spare even a moment to communicate with customers, that points to a deeper operational problem. A status page is not something you update only when things are calm. It is part of the response itself. It is how you keep users informed and maintain trust when everything else is going wrong.
If communication disappears entirely during an outage, the whole operation suffers. And if that is truly how a company handles incidents, then it is not a practice I would want to rely on. Good operations teams build processes that protect both the system and the people using it. Communication is one of those processes.
if we are fully down, rest assured there will be no available hands to keep the status page updated
There is no quicker way for customers to lose trust in your service than it to be down and for them to not know that you're aware and trying to fix it as quickly as possible. One of the things Cloudflare gets right is the frequent public updates when there's a problem.
You should give someone the responsibility for keeping everyone up to date during an incident. It's a good idea to give that task to someone quite junior - they're not much help during the crisis, and they learn a lot about both the tech and communication by managing it.
This is just business as usual, status pages are 95% for show now. The data center would have to be under water for the status page to say "some users might be experiencing disruptions".
Management is always going to take too long (in an engineer’s opinion) to manually throw the alerts on. They’re pressing people for quick fixes so they can claim their SLAs are intact.
It's 1AM in San Francisco right now. I don't envy the person having to call Matthew Prince and wake him up for this one. And I feel really bad for the person that forgot a closing brace in whatever config file did this.
Agreed, I feel bad for them. But mostly because cloudflare's workflows are so bad that you're seemingly repeatedly set up for really public failures. Like how does this keep happening without leadership's heads rolling. The culture clearly is not fit for their level of criticality
A quick google turned up an Akamai outage in July that took Linode down and two in 2021. At that scale nobody's going to come up smelling like roses. I mostly dealt with Amazon crap at megacorp, but nobody that had to deal with our Akamai stuff had anything kind to say about them as a vendor.
At first blush it's getting harder to "defend" use of Cloudflare, but I'll wait until we get some idea of what actually broke. For the time being I'll save my outrage for the AI scrapers that drove everyone into Cloudflare's arms.
The last place I heard of someone deploying anything to Akamai was 15 years ago in FedGov.
Akamai was historically only serving enterprise customers. Cloudflare opened up tons of free plans, new services, and basically swallowed much of that market during that time period.
Yes, it’s really ‘weird’ that they refuse to share any details. Completely unlike AWS, for example. As if being open about issues with their own product wouldn’t be in their best interest. /s
Why does that give better results? Is this phenomena measurable? How would "you have a phd in computer science" change its ability to interpret prose? Every interaction with an LLM seems like superstition.
Maybe not yet but I can see Linux's place as the shitbox saviour start slipping a bit in the next few years. Debian dropping x86, distros getting fatter in general.. I can't really see those trends reversing. Meanwhile NetBSD goes against them.
However it goes, the main issue is one no operating system can solve which is modern life relying on the Web and beefier browsers. Unless you want to rebel against that you're probably better off getting a laptop from the past 10 years for < £100 on eBay.
Although I agree with beefier browsers, I also want to say that there are browsers like dillo etc. which can be good enough for simple websites and also not everything needs a web browser to be usable
Imagine this, a system which can watch movies, edit texts, create disks, have curl/wget, send and recieve files using piping server (which is a curl thing) , view pdfs, mpv and what not, a desktop manager, file manager etc.
As someone hacking around with the legendary tiny core linux, I am more and more mind blown each day with just how much can happen in 14-21 MB, you can definitely build a mini self hosting rack with just some remastering as tinycore can actually run podman as well (combine this with alpine containers to create a super duper minimalist self hosting things too)
the possibilities are endless. When I ran tiny core linux on my pc and ran nothing else, It took 21 mb in ram for a whole gui with editors and file managers etc. all running in ram so super fast filesystem with a package manager
I personally wanted to build my own operating system to limit myself to the most minimal system so taht I just study and do nothing else, I thought tiny core was it but then I tried to hack around it and there are sooooo many things in 21 mb, makes me appreciate minimalism
I have to say, the sheer fucking irony of this statement made me do a double-take.
I might be showing my age a bit, but I'm still remembering when web-browsing was considered a "light" activity (without extensions like Web Java), and watching a video was "very computationally expensive".
I guess some shift happened in the early 2010's where video playback was hardware accelerated more frequently; and complicated javascript started taking off as Google unveiled v8.
As much as the tech bro billionare class salivate over the idea of bringing an "everything app" to the market, we already have those. They're called browsers.
This might be one of the reasons why things like chatgpt (OpenAI) etc. are releasing atlas etc.
This is their attempt of everything app, where the whole internet would be behind the UI of their chatbot and it would go through an LLM before being changed by it and then it would pass to us.
Your single comment explains a lot really and this is something that I agree. Everything App is the browser/internet, combining it with things like wasm, you can even run whole iso files in browser wasm itself (Its fresh on my mind because I shared it to somebody on HN right now but try out copy.sh/v86 [1])
How is TLS negotiation and transport on older hardware (with no AES-NI hardware acceleration)?
I remember it used to be expensive as heck to do TLS back in 2014~, so much so that we bought accelerator cards and segmented "secure" servers so that load wouldn't hit the ordinary browsing of our sites...
The argument for NetBSD is that it runs on almost anything that was ever produced. That isn't the case for Linux, even older x86 is no longer supported in the mainline.
Linux (the kernel) may have been ported to more machines and architectures than NetBSD’s kernel, yes. But is all the code present in the same source tree or do you have to go find patch sets or unofficial branches?
More importantly: is there a modern distribution that builds an installable system for that platform?
The special thing about NetBSD is that you get the portability out of a single and modern tree for many more platforms than any single Linux distribution offers.
What do you think, there are milions of people or companies running NetBSD on 486 to protect the planet from e-waste? How many times have you replaced your phone with a newer model in the last 10 years?
I think they were talking about physical computers ending up in landfills.
Edit: nvmd, I see this account was created 20 minutes ago and has only low-effort comments attacking BSD. I've never understood how people can develop such negative feelings about technologies.
I gave it a spin. First it complained about aspell dictionaries, then I tried installing a package in an effort to improve the prompt from simply saying "murex":
murex » murex-package install https://github.com/orefalo/murex-module-starship
\* Getting package from 'https://github.com/orefalo/murex-module-starship'....
Error in `murex-package` (0,1): protocol handler for HTTPS has not yet been written. Please use git in the mean time (you can do this by specifying a git extension in the uri)
.murex_modules » murex-package install https://github.com/orefalo/murex-module-starship.git
\* Getting package from 'https://github.com/orefalo/murex-module-starship.git'....
Cloning into '/home/aroedset/.murex_modules/murex-module-starship'...
Error in `murex-package` (0,1): \* Package 'murex-module-starship': Error loading module `starship` in path `/home/aroedset/.murex_modules/murex-module-starship/starship.mx`:
> \* Missing required executable, builtin or murex function: `starship`
.murex_modules »
And then the time I allocated for myself for trying out a random shell I found on the internet was up.
The first is definitely a known limitation already, so a bug report isn't particularly useful, and the second is not a bug, just a missing dependency. Maybe the error messages could be friendlier, but they're not particularly difficult to parse.
I don't think analogy is comparable either though. With a bread copying machine, the baker of the original piece is not involved in creating the new piece of bread (other than the recipe), so it is more acceptable (though maybe not completely, if you consider that the recipe is also being copied) that the baker is not compensated for the new piece of bread produced by the copying machine.
With digital media, the creator is expecting people to pay to view the content. By making a copy and viewing it for free, imo, you are stealing the content.
If I am telling you a secret word, expecting you to pay to hear it, and you are telling it to someone else, it may be lying, it may be bad manners, but it's not stealing.
> If you cannot explain your beliefs, how do you expect others to just take your unverified and unsubstantiated claims as something worth considering over any random claim from any random loony?
Even without an explanation, you can use statistics to find the fruits of the beliefs, though. Does 100 people believe in not working and rather join a cult that worships the watermelon god? Fine! How did that work out for them in the span of 3 generations?
I think that some beliefs can have value and merit, just based on measures of quality of life and society.
> Even without an explanation, you can use statistics to find the fruits of the beliefs, though.
I hope you are not serious.
> Does 100 people believe in not working and rather join a cult that worships the watermelon god?
Hundreds of loonies making nonsense statements that no one can verify is collective lunacy that adds no value. It only takes a single person to show something exists and works to add substance to a claim. If all those loonies push a belief that none of them can support, they are fools.
This sort of absurdness would mean absolute morons, such as those in Heaven's Gate cult, should be taken seriously in their claims about aliens and comets. Let that sink in.
> It only takes a single person to show something exists and world to add substance to a claim
You cannot be serious. Proofs take thousands of man hours and decades of railing against well entrenched beliefs such as yours (that you would see it and accept it readily if true.)
This is one of those things that cannot be proven to more than one person at a time through anything other than a personal revelation. Everyone everywhere will respond exactly as you now do regardless of “poof” or the severity and consequence of prolonged incredulity. This is one of those situations where you must undeceive yourself. Observe humanity and your own life. All except those who actively deceive themselves will admit science is as close to understanding our minds as horoscopes.
I do not criticize your doubts, I criticize that you think truth and reality are so easily accepted by the mind who “refuses to believe.”
So like Matthew 6:28, "And why take ye thought for raiment? Consider the lilies of the field, how they grow; they toil not, neither do they spin", and something about how they're as glorious as King Solomon despite not having clothes or jobs. The religion in question did OK, despite this bad advice.
Sure, because most Christians don't take Jesus' teachings too seriously. You shouldn't slap a Christian (or anyone) on the cheek for no reason, but if you were to, the odds of him responding by inviting you to slap the other cheek are pretty slim.
What about arresting and sending to the mental hospital multiple times to deal with psychopathic caregivers whose purpose is ultimately to make you homeless?
A good Christian or any good person would viewing that scene would actively fight to make the person sufferings life better instead of feeding into the false "caregivers" or more aptly put abusers who are more interested in robbing people than improving their lives.
reply