42 karma · joined June 18, 2015
The 2nd one, there's a caveat about space/GC here.
The 3rd one depends a lot on the situation.
4th one is too obvious for it to be called a pattern, but I agree with it.
5th one is, meh, not really easy to read. I prefer his "bad" example. It could be less verbose, e.g,
if (!conditionA) result = "Not A"
else if (conditionB) result = "A & B"
else result = A
I think there are two main reasons. First, many people don't have environmental awareness. They weren't taught. That's not to blame them, but it's just a fact. However the new generations are indeed educated on that subject. We were taught to not litter, to pick up the trash, etc. But this is where the second issue lies: when we don't follow the rules, nothing happens. No immediate consequences. Whereas in other developed countries, when people break the rules, they get fined, they get other people looking at them funny. That collective awareness helps enforce the simple rules.
However, the one thing that always caught me off guard from the few oversea trips that I've taken is that _everything is so clean over there_. That's literally the first thing that I always noticed when I get there and when I came back. Makes me feel sad, envious, and shameful.
I'm not saying DPDK is perfect. As an user, here are some of the most annoying things about DPDK:
- 100% CPU, even in down time. There has been works done recently in power management for DPDK but it still is quite limited.
- Debugging is difficult. Valgrind doesn't even work ootb.
- Very limited tool set compared to linux. For example no tcpdump.
- Setting up is cumbersome. Allocating hugepages must be done soon after reboot, NICs must be bound to uio,...
- Ad-hoc Layer 4-7.
That said, some of the packet processing libraries that come with DPDK is awesome. Once you get through the first few hurdles the dev experience is actually quite nice. I think combining DPDK with XDP is very promising.
Maybe some sort of challenges? Authentication? Like DNS cookies or something.