When you add up the component costs for RPi with NVMe, suitable case, cooling and power supply, it is not much cheaper than a mini PC which generally outperforms the RPi.
I use several RPis of various models. But there are times when even an old Intel/AMD laptop is a more suitable solution.
I’m not sure what electricity costs where you live, but my calculations tell me I’d have to run an intel n4000 for 5+ years before I break even compared to buying a CanaKit rpi 5.
Eh? I'm using an old MacBook as a home server; I kind of naively assumed that there was a whole load of protection circuitry and firmware controls in there that would turn it off before it expands or the magic smoke comes out.
In my experience the bad managers are constantly trying to impress their bosses and curry the next promotion. They treat their reports like serfs who are obliged to burnish their image.
The best managers (very few) I've come across are like a mother bear. Protective of their team, running interference and pushing back on out of scope work, etc.
I've only ever had one manager whose calendar was viewable by his team. If he needed a meeting with you, he would ping by email with the subject and any supporting materials and asking you to block out the meeting time in his calendar. Talk about respecting your productive times.
> trying to impress their bosses and curry the next promotion
There are companies where the entire upper echelon is like that. Full of career people that is only looking up to get a promotion and ignoring their responsibilities toward their teams.
One of the symptoms of this disease is that there is a total disconnect between leadership and the average employee. As everybody is looking up there is no connection or communication down.
And it is very difficult to fix. People at the top have that mindset. So, their expectation is that people below them will be tending all their desires and laughing their jokes. They do not understand promotions as a reward for performance but as a reward for personal loyalty.
The bigger the corporation, the easier this occurs. Small companies die when this happens, big monopolistic corporations get so much money that they can afford to sustain such an inefficient way of working. For big enough corporations it looks like "nobility" in a feudal system. Backstabbing, office politics, and sectarization dominates the environment.
I've been meaning to write a blog post about the "level of purpose" in a job:
At level 3, the best level: The company is curing children's cancer or something else that you are personally motivated to do and satisfied by. The work is something you would do without pay (though you might not have as much time to do it if you weren't paid). Your highest purpose is to cure children's cancer.
At level 2: The company is doing work you are not personally interested in, but you work with good people doing good work. The company and people support each other and build a profitable product. Your highest purpose is to make the company profitable.
At level 1: The company starts doing stupid shit and acting in self-destructive ways. The company is run by managers who care more about growing their own headcounts than the overall profitability of the company. Your highest purpose is to make your manager happy.
At level 0: Your manager is also doing bad things. At this level the only purpose the job fulfills is giving you money, and there's no reason to not go full psychopath and do whatever it takes to maximize the amount of money you get. Your highest purpose is to make money without doing anything too illegal and avoid trouble.
What level is your job at?
Level 3 is rare and always will be, that's okay.
Level 2 is good, and I sometimes hear people on HN offering level 2 as the correct attitude to have towards work. But we need to recognize that workers are often asked to do stupid or semi-dishonest things that are not profitable for the company.
Level 1 and 0 are stages of hell, and it's sad how common they are.
I think there are actually two separate axes here, one for the meaningfulness of the job, and one for the behavior of management. There are lots of companies where the work is personally fulfilling (level 3) but the bosses are in it for themselves (level 1 or 0). From what I've heard, SpaceX would fall in this category for me, as would many non-profits.
That's an interesting model, but I see it different: one axis is a prerequisite for the other axis--they aren't separate.
The company as a whole might serve a noble purpose, but your purpose as an employee will have no connection to that if you're just redesigning the coversheet for TPS reports.
> In my experience the bad managers are constantly trying to impress their bosses and curry the next promotion.
Heh, I'm a worse manager. I keep trying to impress the people I manage. Working on the mama bear part though.
That's frustrating that you've only had one manager whose calendar was viewable by their team. That's the norm all up the chain of the current place I work. I think it was like that previously too.
I like that your manager had _you_ make the meetings for them after sending all the materials to prep for it. I get the feeling that several times that resulted in solving the problems asynchronously instead of actually having the meeting.
It is technically systemically called an unstable equilibrium. Admitting even one person in a company that places carreer above all else, forces either a full austing by the rest of the company, incurring a coordination cost, or at an individual level facing untennable competition as you operate at a severe disadvantage in self promotion.
This is why, besides maybe a small time window at some startups, management will always on average consist of ruthless looking after number one personality types.
While in a small business their goals migght still by nescessity align with those if the actual company, in a more corporate setting the relation between actual company performance and personal activity is so detached that even those taking into account alignment to a certain degree are handicapped relative to those going 100% self promotion.
The systemic stable equilibrium is therefor a shark tank of rutheless egoists trying to exploit anything and everyone they can to climb over each other and pull each other down.
Anecdotal, but every Engineering Manager I've had for the past 10 years has had a calendar I could see. One EM had anonymous event names on their calendar, but I think it might have been the default setting in AD.
The client thinks they need x, asks for y, when you deliver z they tell you it is all wrong, what they really wanted was a,b,c but couldn't admit to not knowing how to ask for it. You hack z to deliver d and then you find out the manager has left for a new job and the new manager wants e,f,g,h,i,j,k.
Some of the largest real problems are: climate change, energy instability, micro-plastics pollution, poverty, malnutrition, lack of clean potable water, tornadoes destroying communities, floods destroying towns and agriculture, etc, etc.
Still waiting to see effective solutions being implemented.
I've lost count of the number of clients/projects where I had to implement double-entry ledgers. The surprising thing is that no two were the same. Almost in every case there were some specifics that were novel. And trying to determine the current balance of an account when all you have is thousands of prior transactions is tedious at best. In the old days, there was a process called closing off which was effectively a checkpoint in time. The most convoluted example I suffered through was a ledger handling multiple currencies with a mixture of spot and forward contract exchange rates.
Obviously there are novel parts, because the transactions that alter balances are different in every application, and each has its complex "business" logic: undoing a reversed sale is completely different from undoing a mass of accumulated incorrect VAT amounts.
My idea is that a reusable ledger, as a service or library, would be too distant from actual needs to provide much value.
Consider the example database state in the article:
Transfer ID Description ┃ user receivables available
1 order created ┃ -$10 $10
2 payment received ┃ -$10 $10
3 partial refund ┃ $5 -$5
A real application cannot go very far with this kind of "description": every type of transaction needs specific data, whose complexity dwarfs the double-entry ledger mechanism.
For example "order created" transactions need a reference to an order with details of what has been ordered, "payments" need a reference to a collections of debts that they are meant to pay and details of how they have been paid, "refunds" are actually many types and need a reference to what they are refunding.
Real accounts are also much more complex than a history of changes and a computed balance: for example, some of them need to be included in accounting calculations and reports in various roles, with largely arbitrary relationships and accounting criteria, while some are linked to real-world persons.
Comparing the two ledger implementations that the article references is instructive: Pgledger has simple ID columns for accounts and transfers, and it is up to the application to use them as foreign keys from the interesting tables, while TigerBeetle also offers some generic "user data" and "code" columns with arbitrary data and suggests having a separate "control plane" database.
My idea for for this to add metadata to the transfers, likely with a jsonb column. But I agree that the ledger won't encompass everything. You would still have other database tables and then you'd store domain identifiers in the ledger and/or ledger identifiers in your other tables.
Maybe I'm not understanding it, but don't you keep a record of the current balance all the time? And only need to go through the transactions in order to verify the ledger invariants, which I guess would only happen fairly rarely?
Makes sense. It seems like one would need a wrapper like "getBalance(accountName, dateTime)" which would abstract iterating over the ledger to find the balance at a certain time.
But I could see this being a performance hotspot - looping over rows and tallying a running sum across many accounts seems like a waste of cycles.
What's the alternative to the "what was the balance at date/time" in non-ledger based systems?
shouldn't the balance be calculated and and compared with the actual balance after every transaction? i have an account where money went missing. the only way to find out when that happened was to have a record of the actual balance after every transaction.
As I understand it: when astronomers are looking at things a very long distance (measured in lightyears) away, they are looking at how things were that number of millions/billion(s) years ago.
Based on my possible misunderstanding, shouldn't any such claims be made on the basis of how things were and with no indication as to how things may have changed since?
The universe... what a concept. You know, the universe is a little bit like the human hand. For example, you have Growmann's Center right here and then you have undiscovered worlds and and Sector 8 and up here is Tittleman's crest so you can kinda picture it's a little bit like a leaf or, well, it's not a bowl. The universe is beautiful. Put all the stars, the hundreds of stars that there are in the universe into a bag and put the inverse into a bag and all of a sudden they become, well, when i was a child there was thought to be 9 planets but there are now ninety planets you know the ultimate fate of the universe is so dark and mysterious that it generates butterflies in my stomach and that goes to tickles in my spine and that creates goose pimples and then that penetrates my mind and then the whole big bang explos - BWOOO BWOO BWOO BWOOO BWOOOOOOOOOOOOOO
Perhaps you are underestimating the level of expertise required to write an operating system for modern hardware.
The core challenge with Linux is that it is a massive code base. It supports multiple CPU families and within each of them dozens of architectural variations and then there are the thousands of device drivers.
It might be more realistic to go back to fundamentals, build a secure kernel, e.g. based on seL4 and then build only for modern hardware. Let Linux handle the accreted bulk of being over 30 years old.
reply