Ask HN: Do you feel bad when devices aren't utilized to the extreme?
e.g., I feel bad when people buy M1 (or M2) MacBook Pros just to check emails, browse the internet, and do presentations (very common among managers).
Or when an old iPhone or Android is sitting in a cabinet getting dust, while it can be used as a webcam, small home server, automation device, clock (I use an old iPad), etc.
I think so much compute power is being wasted and I'm not sure how to feel about that.
131 comments
[ 3.0 ms ] story [ 175 ms ] threadSo many underpowered devices are produced that sit in drawers, collect dust, and end up in the landfill. For instance Intel makes "atom" devices that if they don't die early because of design flaws, they die early because they aren't really useful. There was a time when Intel was interested in having you buy a new computer because it was the best computer you ever had, now they are interested in putting every vendor of parts out of business (except seemingly Synaptics) so they can get more of the BOM, even if this means the new computer you buy will be the worst computer you ever bought.
If there was some minimum standard of quality for devices, people wouldn't need to buy so many.
Atoms are used in all kind of applications where low(ish) power x86 is required. They even support ECC RAM making them great fit for NAS and embedded servers deployed in the field.
They may not shine as a general purpose CPU but they are definitely not ewaste.
https://www.theregister.com/2017/02/06/cisco_intel_decline_t...
Any other vendor that had a failing product line would have retired the brand a long time ago and come out with a new name (look at how no small car brand from an American manufacturer ever survives more than a few years.) Instead Intel comes out with all kinds of forgettable "... creek" and "... lake" brands for their quality parts. The process difficulties they are having in particular stretch out the lifecycle of parts like the construction of a nuclear power plant, but the time the "s..t creek" chip is newly available you have been hearing about it for three years and it doesn't sound new it sounds more like "IBM System/360".
Besides the netbooks, plenty of sysadmins in my circles started their journey by renting small Atom dedicated servers for a few bucks a month from the likes of OVH.
Setting aside the reliability concerns (see other comments) for a bit...
I think a number of years ago Scaleway (or someone else) offered VPSes with Intel Atom CPUs and had some ARM offerings as well. This discussion appears to be the best I can find at the moment: https://lowendtalk.com/discussion/77819/new-scalaway-c2-inte...
For my needs, really cheap VPS servers are essentially ideal since most of my workloads are RAM bottlenecked and can easily deal with a single core CPU. This would also be perfect for hobby projects. Why live on free tiers that have lots of limitations when you can just get new nodes per project (or group of projects) for 1-3 Euros a month?
Actually, my current homelab servers (that I also use as CI nodes) run AMD GE200 CPUs with a TDP of 35W. If I could find something that's AM4 compatible, readily available and cheap, you can be pretty sure I'd go for it!
Oh, and my notebook runs I think one of the Celerons, that have a <10 W TDP and that's still good enough for browsing the web, chatting, writing blog posts and so on, even some light development work. And the whole notebook cost around 200 Euros when I got it.
Just look at how popular Raspberry Pi is as a platform for homelabs, now imagine doing the same with the x86 platform and not some overpriced novelty hardware that comes in small runs, but something to rival the mass production of Pi.
I want to live in that world.
If we weren't so heavily impacted by Wirth's law (https://en.wikipedia.org/wiki/Wirth%27s_law) both in regards to our OSes (just try running anything heavier than XFCE4 on any of those pieces of hardware) and platforms (e.g. comparing the footprint of Go vs something like Ruby or Java; though each have their uses; though there's also the facet of lots of browser-based software nowadays, e.g. Visual Studio Code vs a native text editor like CudaText), far fewer people would consider hardware like that "underpowered" or e-waste.
Software is to blame for this problem as well. While we have gained a lot of features, modern software often uses system resources in a way that's not helpful to the user (either by active things like telemetry or lazy things like iterating over every object in a database unnecessarily). I get the feeling that software providers take my compute power for granted, and if I don't have enough, it's just time for me to buy a new computer again.
No. My devices are rarely utilizing over 40% CPU and tend to last for a very long time. I know it isn't much but this helps keep some gear out of the landfill. I can always find a use for older hardware. This Linux PC I am writing this post on is coming up on 12 years old and is more than adequate for my purposes. I expect it to last at least another 10 years, though I may have to replace the spinning rust with an SSD at some point.
I recently bought my first smart phone despite not really needing one. I have mixed thoughts on how long this will last since I do not control the firmware yet. These devices are designed to be difficult to service. I will probably turn it into a glorified MP3 player since it has a large battery and just get the Caterpillar flip phone. I think the smart phone would be a great home audio entertainment system. I can not find a logical reason to push it to the extreme.
it is very very likely wasting a ton of watts doing what a secondhand stick PC such as https://www.amazon.ca/dp/B08G1CCWN5 can do in less than 10 watts, so no, it is very much not adequate from a global point of view
That's why I spin down the drive and all cron jobs run to a ram disk. The actual power-pig on my computer is the video card. I could and probably should find a used video card that is less powerful as I barely use a tiny fraction of this GPU's capabilities.
Either way I am happy with where I landed in this setup. When this rig gives out I may switch to a mini-pc or use one of my spare protectli firewalls as my daily driver.
On the other hand I'm not super frugal to the point where I'm on a eight year old phone to never waste a cpu cycle or something.
e.g. I own a few high powered workstations for fluid dynamics computations. If energy was free, I would be just running 'what-if' solves all the time just for the hell of it. But because energy isn't free, they stay in sleep unless I need them for what is deemed 'necessary' for research.
I usually just run game servers with the extra RAM/cpu threads for my friends. If my elasticsearch cluster is particularly unused some days and I have extra bandwidth I might turn on wireguard and let the 450GB disk of torrents I have on disk seed. Anything that makes the btop graph look active and lively makes me feel nice.
You're talking about paying for energy, some people are concerned about consuming energy.
Your colo does that mind this use?
I was going to dispute OP's comment. Thinking of my old Athlon server that used around $20 of electricity per month, cost about $600 new IIRC (mobo+CPU+RAM), and ran for more than a decade ($2400). But there has been a concerted effort to lower device power consumption, and my current 5700G server (two generations later) uses only around $5/mo of electricity.
> We stress that this estimate carries some uncertainty but gives us a reasonable idea of the impact of ICT. Across studies, roughly 23% of ICT's [information and communication technologies] total footprint is from embodied emissions, yet the share of embodied emissions for user devices specifically is ca. 50%. This is because, unlike networks and data centers, user devices are only used for parts of the day and use less electricity, but are exchanged often, especially in the case of smartphones.
"embodied emissions" being emissions generated from manufacturing.
older blog discussing data from older devices and electronics:
https://www.lowtechmagazine.com/2009/06/embodied-energy-of-d...
1. Life Cycle Assessment of Fairphone 4, showing an estimated 75% of energy use occurring during production and 16% during the lifetime of use: https://www.fairphone.com/wp-content/uploads/2022/07/Fairpho...
2. Eco profile of a 13.5" Surface Laptop 5, showing 85% of energy use occurring during production and 12% during the lifetime of use: https://www.microsoft.com/en-us/download/confirmation.aspx?i...
Still, I agree with you: design for efficiency and then mend and use efficiently.
I also encourage everyone to be aggressive in putting things on the used market, or even giving it away for free (commonly in those local facebook "buy nothing" groups). For a lot of mass-produced things you can view the used market as a storage space. Sell/give it away one year, and if you need it the next year you'll probably be able to find someone else doing the same. On the flip side, avoid buying new stuff. Try to only buy used electronics, especially.
It's okay to not use full capacity all the time because demand is varied and intermittent.
My friends even tease me because in my hobby microcontroller-based electronics projects, I'll put the wimpiest microcontroller that will do the job instead of just slapping an R-Pi or Arduino board in them. I defend myself on the basis on minimizing power requirements, but really, I just can't bear to see capabilities go to waste.
Your managers might be perfectly right to use a MBP because they get the best display for checking emails and browsing the Internet all day in a thin, solid and secure laptop.
Not all computer needs are measured in a CPU benchmark!
it doesnt make me feel bad when my boiler isnt burning diesel as fast as it can
or that my car is literally not even running right now
or that i am not cramming for certifications and new languages
or that my siblings are not working out or at college
or that my laptop is waiting for instructions from me instead of me waiting for it
As an example, it takes 22 sec to run a test suite on the M1, in our CI the same test suite takes 9 sec.
These might be due to software that has not been written yet.
To be honest, the computer seems like a high end office computer, so I think that use case seems spot on.
The OP made a claim of basically (paraphrasing here): "this thing blows, it results in a 50% performance drop for test suites".
I believe him for his case. Our case was showing the oppositebehavior. Thus it seems to depend. Simple logic.
In fact, yes, that is exactly how reviews should work, if there wasn't so many fake reviews that it's not helping. People have a tendency to review and especially comment on a review, if they have an issue with something. Even a product with 3 stars could actually be a 4.5 star overall.
The comments are more important than the number. Like with most 'metrics'. They can make you look but you really have to take a qualitative look after that. Take lots of Amazon reviews that are 1 star and if you read the review comment it says something along the lines of "Product came damaged in the box and Amazon support wouldn't replace it". Or 5 star reviews with text like "Arrived super fast, haven't had a chance to try it yet". The reviews are meant to be for the product not Amazon's service or shipping speed.
Likewise if someone buys say a fish knife and then comments with a 1 star review of "Useless, can't make proper feather sticks or split wood at the camp site." And then I may give a 5 star w/ comment "Awesome fish knife, cut up and filleted the fish I caught beautifully. Been using it for a year now and shows no signs of wear."
I have no clue what you're talking about calling it a fake review and such. Your cookie was a bit moldy ;)
I said "As an example ..." which you are paraphrasing into "... for test suites".
You are paraphrasing my existentialistic argument into a universal argument. Please never do this.
It seems like something that is prone to happen in text and 'on the interwebs' in particular, where we don't have intonation and don't know each other. FWIW, I wasn't being mad or anything. I just read your post in a different way than you meant it and as I explain above I think it's absolutely possible to read it that way. Everything else is just following from that and the thread you're replying in here has almost nothing to do with you any more and is just trap_goes_hot going on some tangent and me replying to the trolling more than your topic.
I spontaneously laughed at the moldy cookie thing and I almost had to upvote him/her for that lol!
In my comment I wrote "As an example ..." and I absolutely did not say this is a universal truth. It appears like you are able to comprehend basic English, and should be able to read my commentary.
You wrote the following in another comment
> but feeding this troll is sort of fun
Who do you think you are to write stuff like that? Why do you feel like it is OK to make these types of personal attacks on a forum like this?
I read it the other way as just an example of test suite, compiler, web server etc. specifically because you then went on to say that it's just a glorified office computer, where it basically doesn't matter that this happens, because it's gonna be good enough to run a browser to look at Facebook ;)
This has nothing to do with "who". And also nothing with you. That's between him/her and me. It has to do with the fact that trap_goes_hot completely ignored anything you or I wrote and proceeded to accuse me of criticizing you. Again "criticizing" can be taken in multiple ways: I think he meant that I was finding fault with in a harsh way. That's not what I was doing. I was analyzing and evaluating and responding to that. I analyzed your sentences and tell you that I read it such that you were saying the test suite thing "as if this was universal truth". That is how I read it and the rest of my reply is to be taken under that premise.He then went on to reply with yet another trolling reply. I simultaneously didn't want to validate it with a reply but I really had to. I bet we could have gone on from one thing to another for another 20 replies and gotten nowhere.
I realise that this might not be due to the architecture or the M1 per se but due to the fact that we are emulating an x86 docker image. Regardless the test suite runs significantly slower, than if my computer would have been x86, which is the experience I am commenting on – a point that I also fleshed out even.
However, I love browsing the web, watching movies, writing email, etc. on the computer, at which it excels.
----
I read the troll judgement as being passed towards me, if that was not the case, I apologise.
Yes, internet communication can be difficult.
A database is a prime example of where any minor slowdown due to emulation can be disastrous. A database does lots of things in an optimal way to make it fast. For that it has to make assumptions (or know) how certain things behave, what properties they have. Emulation can screw with that. This is also why running your production database in a VM against virtualized storage (not even thinking docker/k8s etc. here - tho that's also bad in the same way - just plain old running that postgres in production in a VM provided by your vmware esx cluster) is not a good idea. It's just going to be abysmally slow and slow down at exactly the wrong moments even if it "usually" runs "just fine". If your tests rely on that postgres database in any significant way, I am not the least surprised that your test suite slows down like that.
My advice would be to replace it with a native image or better yet, write less tests that rely on that postgres database and write the integration tests that aren't reliant on actual postgres behavior against an in-memory database like hsqldb and only have a very thin layer of tests running against an actual postgres, if you still need them at all.
Fun exercise: take an ARM version of postgresql and run it under emulation on an x86 computer and see how your test suite behaves ;)
The other advice would be terrible for our team. It would increase the behaviour surface significantly. Now we have huge discrepancies between what runs in production on what runs in test.
Alternatively: We could also just eat the 13 seconds slowdown, as we doe now or don't use Apple M1s. Both are much better approaches and much more cost efficient.
Why would it be Apple's responsibility to make x86 optimized code run at native ARM speeds? That makes no sense to me. It's Apple's responsibility to make your upgrade path to ARM hardware as painless as they can. Thus the emulation layer so that for most cases you can just migrate your Intel Mac to the M1 and keep going as before. But you'll want to slowly replace every binary you can w/ the native ARM version if you want to get the performance gains of the M1.
I think it's like saying "it's a distraction to change my software take advantage of multi core CPUs. It's Intel's job to keep making single core performance faster and faster". Intel was making things faster by going from upping the clock speeds to multi core and hype threaded CPUs. If you choose to call it a distraction you'll be missing out on the performance gains other people can take advantage of because their software can take advantage of having more than one CPU available. An easy example is older computer games that basically don't run any faster today than 15 years ago because they can only use one CPU and the clock speeds are almost the same. Other games are able to run enemy AI, pathfinding, the UI rendering thread etc. on different threads and thus take advantage of the multi-core CPUs.
I would like to understand this better. You say it's not possible. Whenever I hear that something is not possible, I instinctively want to dig deeper. Maybe it really isn't. Or maybe there's an assumption somewhere that turns out not to be universally true or that w/ a slight modification and perhaps a divide and conquer strategy it actually is possible. So I'll start w/ the first of the "5 whys": Why is it not possible? ;) What are those huge discrepancies? What exactly are you afraid of will run differently between what runs in test and in production? Keep in mind that I don't know anything about your test suite and what specifically you're testing. Maybe in your exact scenario you're right and it would potentially be bad. In many many situations I've found it's mainly just fear of the uncertainty and in fact there's no issue. Like I said, I don't know your specific circumstances but these things can add up. 13 seconds here, 9 seconds there etc. and suddenly your test suite doesn't take 2 minutes to run but 10. That's a significant slowdown of a developer. Even 2 minutes wait time is an eternity if you're trying to move ahead w/ something and now you have to sit there and wait. Worst case your developer decides that 2 minutes is a long enough period of time to "quickly go check HN" and 45 minutes later he emerges from the browser window to see that the test suite failed 10 seconds after he switched to reading HN ;)You sound like a really good candidate. If you can develop and manage this type of optimisation in a startup with a teams of 3 that manages blockchain protocols, a web app, a mobile app, a multi modal service backend, and several integrations while also delivering on product faetures, then you are definitely the person we need!
For me, the computer performs really well on web / office workloads. I came from a Thinkpad X1 extreme from 2018 with PopOs installed. That computer gave me a significantly better performance running our dev infrastructure (~10 containers), developing out product and running tests.
I think the MacBook is a beautiful computer. I just would not recommend it for large scale software development.
A good 80% of my Mac gripes could be solved by running Linux full-time. Unfortunately the other 20% are ARM-related issues, so I'm sorta stuck between a rock and a hard place.
Consuming too much power is already a big ecological issue, and here in Europe it's becoming a financial problem too. I still want my computer to perform as good as possible, be it running a game or compiling some code or transcoding videos or whatever. In that moment. But the rest of the time, it should consume as little power as possible. I've been looking into ways to upgrade, and most of the reviews focus 95% of their time/space on peak performance (basically torture tests) and peak power consumption (but more from a "what PSU/cooler do you need" perspective). Office-type work, which is 95% of what I actually use it for, is always an afterthought.
Back to your original question, I do understand where you're coming from. I'd love to use an old android phone as a webcam, it's just a shame that most don't work without a battery, and having a device like that permanently in a charging state will eventually lead to it ballooning.
I have a M2 MacBook Air with the most amount of RAM and storage that Apple would sell me. I'm sure its CPU sits at about 5% utilization almost the entire day. This was intentional on my part. I bought a laptop with enough "extra" capacity that it will be able to handle increased inefficiencies, bloat, and new features from ever-expanding software for the next several years.
So by buying one "over-speced" laptop now, I avoid buying two or three of them in the future. This is how I like to buy devices, especially since some items, like the screen or keyboard or the like, are mostly fungible.
It still works great, battery life isn't great but I've had no issues in the 9 years I've had it.
Now, there is something satisfying optimizing everything (Factorio), especially in a group setting.
Also, the M1/M2 are more about efficiency than they are about raw performance.