263 karma · joined September 20, 2021
If you target about 32bit and 16bit, you either think about and using long (on 16 bit is more costly) or you just count seconds.. Or ticks.. or whatever you need.
If you take a look how much energy is put into producing 1kcal of food, you will see that its negative. We put around x6 more that we get (diesel, syntetic fertlizers, water pumping, etc). This is because we have cheap energy, like fossil fuels.. Unfortunatelly, it have hidden costs smartasses didnt anticipate.
CYGWIN_NT-5.2 1.3.22(0.78/3/2)
Now I wonder how cost effective it is :)
So, papers or are you hallucinating?
The really valuable prefixes are those with are stable and have good reputation on them.. Everything else is junk these days..
The big riddle of Universe is, how all that matter loves to organize itself, from basic particles to Atoms, basic molecues, structured molecues, things and finally live.. Probably unsolvable, but that doesnt mean we shouldnt research and ask questions...
I love Ruby, I write a lot of tools in it. When I need extras, I extend Ruby using C. Its easy to do and very clean. I even write simple GUI stuff in Ruby, because why not?
And I dont really care if Ruby is loved or not. Its Open Source. I made backup of all stuff I care about. Its easy to just rebuild if necessary :)
% mkdir '//?/c:/test123 '
% ls
ls: test123 : No such file or directory
Still, ls work if test123 is shadowed. % ls -d test123*
test123/ test123 /
But at least, you see it :)It just workz [;
Yes, you should never ever use it in Library.. But small utility functions should be okish :)
This is example from my Ruby graph library. GetMouseEvent can be called alot, but I need at most 2 results. Its Ruby, so I can either dynamicaly allocate objects and let GC pickup them later, or just use static stuff here, no GC overhead. it can be called 100s of times per second, so its worth it.
static GrMouseEvent evs[8];
static int z=0;
GrMouseEvent *ev=&evs[z];But in program, its not bad. If I ever need multiple calls to it in same thread:
static char buf[8][32];
static int z;
char *p=buf[z];
z=(z+1)&7;
Works pretty well ;)If you need to cleanup stuff on early return paths, use goto.. Its nothing wrong with it, jump to end when you do all the cleanup and return. Temporary buffers? if they arent big, dont be afraid to use static char buf[64]; No need to waste time for malloc() and free. They are big? preallocate early and reallocate or work on chunk sizes. Simple and effective.
It workz! ;)
Its time to start do own walled gardens, build overlay VPN networks for humans. Put services there, if someone misbehave? BAN his IP. Came back? BAN again. Came back? wtf? BAN VPN provider.. Just clean the mess.. different networks can peer and exchange. Look, Internet is just network of networks, its not that hard.
I use tinc-vpn so I have automesh out of the box.
I run myself Overlay VPN network and im just using RIPv3 + BGPv4.