dimman | 1 year ago | on: Making my first embedded Linux system
dimman's comments
dimman | 2 years ago | on: Overburden Conveyor Bridge F60
dimman | 3 years ago | on: Curl 8.0.0
dimman | 3 years ago | on: In 2019 RX470 were $70, RX580 $100
It's obviously been running fine under high loads, so why would it just decide to stop working fine?
I think the major issue is that many cards have been running outside of specs for a long time. High loads tends to increase the risk of that, so the problem lies in figuring out the case for the card you're interested in.
dimman | 3 years ago | on: My favorite iPhone feature was removed, long live its subpar replacement
The replacement method works, but it is indeed subpar. It annoys me that my 3 generation newer phone is a downgrade in this regard, but I can live with it.
dimman | 3 years ago | on: What they don't teach you about sockets
1) UDP uses packages/messages which may or may not reach its destination. If it reaches its destination the data is intact. Normally connectionless.
2) TCP is a stream protocol. There is no package/message boundary unless you create it yourself (my tip is to do a simple binary TLV (type length value) protocol using say a fixed 4 byte header). Requires a connection to be setup first.
3) Network byte order - really important to read about.
4) Nagles algorithm (TCP_NODELAY) and SO_KEEPALIVE - those are a couple of things to read about.
5) Start with the simple select() approach to handle the socket activity.
You can then go ahead and get more advanced by doing nonblocking I/O or do blocking I/O with each client in its own thread, figuring out pros and cons for your use case. You can add SSL/TLS on top of your TCP connection etc.
EDIT: The SO_KEEPALIVE part is perhaps least important thing to start reading about. I'm a bit biased due to NAT traversal problems as I wrote a secure remote access solution for a major company several years back, utilising STUN/TURN servers, public key authentication (basically certificate pinning), TLS etc.
dimman | 3 years ago | on: What they don't teach you about sockets
I can highly recommend Beej’s guide to network programming: https://beej.us/guide/bgnet/
That together with Linux/BSD man pages should be everything needed, some great documentation there.
dimman | 3 years ago | on: Deprecation of OpenGL and OpenCL (2018)
dimman | 3 years ago | on: USB Cheat Sheet
dimman | 4 years ago | on: DirectX 12 applications no longer working on 4th gen Intel processor graphics
dimman | 4 years ago | on: Flying Only with the Heat of the Sun
dimman | 4 years ago | on: Amazon had sales income of €44bn in Europe in 2020 but paid no corporation tax
dimman | 5 years ago | on: LinkedIn’s Alternate Universe
dimman | 5 years ago | on: IBM looking for 12 years’ experience in Kubernetes administration
dimman | 6 years ago | on: EU lawmakers snub Apple's pleas, vote to push for charging cable standard
I’ve got a Lightning cable with worn out gold plated contact points, the springs in the phone are perfectly fine.
My point being that without some reliable statistics pointing to springs being way more susceptible to wear than gold plated contact points, it doesn’t make any difference.
(FWIW: I currently work with factory equipment for PCB production testing and bad contact due to oxidation and wear is a much bigger issue than springs going bad, but that’s just my experience.)
dimman | 6 years ago | on: EU lawmakers snub Apple's pleas, vote to push for charging cable standard
dimman | 6 years ago | on: Help me ask why you didn't just
dimman | 6 years ago | on: Software Updates
Now I’m not saying that ”high level engineers” are less engineers than others, but it’s not surprising that we’re moving in the direction we’re moving. It’s by design.
(Now this doesn’t explain everything, far from it, but IMO it’s why we see an image writer weighting in on 300MB compared to a C/C++ version at <1MB)
dimman | 6 years ago | on: My Hardest Bug to Debug (2018)
dimman | 7 years ago | on: Why don't we have Wayland on Raspberry Pi yet? (2018)
As for the SPI flash size: they are almost always given in Mbit, so 16Mbit is 2MB hence the confusion if I were to guess. You would be looking for a 128Mbit one to get 16MB.
Nice work and keep on tinkering!