Details
-
Skillsc++, ranting
-
Github
Joined devRant on 7/10/2018
Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API

From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
-
You can use LDAP to provide login directory services, including Unix uid numbers. By default, uniqueness of these numbers is not enforced.
Hilarity, of course, ensues. -
Apparently I have 99+ notifications — God knows why — but only God will know because the notification page shows nothing, be it on the web page or the mobile app.8
-
Last few PRs:
* Carve a work of beauty out of the purest C++.
* CI: antediluvian version of g++ says NO.
* Fuck it hackity hackity hackity.2 -
Best: The Ada 83 Language Reference Manual.
Ada was picked as the teaching language for a while when I was an undergraduate. All the supplied information about the language was at best vague, at worst wildly misleading. But then I came across the LRM in the library, and it had all the answers. All Of Them.
Close runner up: The Annotated C++ Reference Manual.
Back before C++ became too large for any one mortal mind, this reference both contained the 'ground truth' standard _and explanations of what lead to the choices made in that standard_. Just an excellent reference.
Worst: CMake documentation.
The man page was unnavigable, until they tossed it and you had to use the webpage or the idiosyncratically organized help output from the program.
CMake is stupidly complicated already, with bizarre parsing, thousands of odd special case behaviours, and weird interactions between various features and tools. Good documentation might have made that manageable, but no: answering any question requires a measure of clairvoyance, which will inform you that the thing that you need is in fact described off hand halfway down the 4 pages of rambling text in a completely different part of the docs. And then they changed it 2 versions ago.2 -
So: libxml2, which is under-documented, supports nothing more sophisticated than xpath 1.0, and essentially gives you the finger if you want to use it safely from within a library, or Xerxes, which is 23 TB and uses UTF frigging 16 as a basic representation unit.
I will not write my own C++ XML parser. I will not write my own C++ XML parser. I will not write my own C++ XML parser. I will not write my own C++ XML parser. I will not write my own C++ XML parser.3 -
I basically never knew it wasn't for me. My dad brought home a keystroke-entry programmable calculator as a gift after a business trip when I was, I dunno, 8?
And then I never stopped. -
TIL that CMake `export()` will write data to a 'user package repository' that sits somewhere in a home directory or registry (!). And _now_ they've made this do nothing by default, because *surprise* this is an incredibly stupid idea.
But it depends on the declared version in the CMakeLists.txt. So some random CMake package can do it anyhow. And it's controlled by a CMake variable regardless, so packages can dick about with hidden CMake global fucking state anyway.
CMake: when wiping the build directory just isn't enough.1 -
Colleague asked a question about CMake, for which the correct answer is ExternalProject_Add.
There will be tears before bedtime.4 -
Lots of great things about working from home – no, really – but something about my home desk/keyboard/chair set up is really fucking up my shoulder, and this is not fun.3
-
Remote work for everybody! It's actually great: get to cook my own lunch, saves an hour in commuting.
I just need to move forward my plans for a beefier personal workstation and generally more functional work-at-home environment.2 -
You know, I like Christmas. I like the carols (in moderation), I like the gift-giving, I like the festive spirit and the festive spirits, I even like the decorated trees.
But I do not like Christmas medleys. Oh, no no nonny no. Playing them in an orchestra is even worse. A plea to all in the music industry: please, please boycott the creation or recording of more Christmas medleys. I and future generations will praise your sacrifice.1 -
Ugh, so tired, will get lots of sleep tonight. Big day tomorrow!
Tomorrow, after 4 hours sleep: damn it. -
'Epiphany' might be overstating it, and it's something I realised a long time ago, but it's been invaluable in the years since.
When designing an interface or an abstraction or a data structure, everything is going to be easier in the long run if you can map it to a mathematically simple idea. Documentation, validation, bug fixing, interaction with other components — everything.
Contrapositively, if a piece of code is a horrible bug magnet, or hard to describe, or full of special cases — these things tend to go together — then chances are it doesn't model a logically simple concept.
Even mathematicalizing something like recursion as the limit of something like 'let g = f in f g' — making explicit something that is implicitly complicated — can provide both a cleaner API and more control over the process of execution.4 -
Linux perf events would be an order of magnitude more useful IF THERE WERE ANY REAL DOCUMENTATION.
Not to denigrate the heroic effort behind the creation of the perf_even_open man page, where is the event documentation? What do they MEAN?
What, even, is the difference between PERF_COUNT_SW_CPU_CLOCK and PERF_COUNT_SW_TASK_CLOCK? No one seems to be able to give a definitive answer.
And while I'm at it, why is PAPI stuck in an AUR on Arch?!3 -
So I get that python's scope/mutability/binding semantics are … idiosyncratic.
But 'a += b' may or may not rebind the name 'a' DEPENDING ON ITS DYNAMIC TYPE.
Yeah, that makes total sense. Much intuit. So design.9 -
Okay. We believe in atmospheric physics when we're running weather forecast models. But somehow half the population thinks the science of anthropogenic climate change is in dispute.17
-
I would like to have a cat about the house. But I live alone, travel intermittently, don't have a cat-friendly environment etc. etc.
I am resigned to dying petless.9 -
So we have a work excursion tomorrow, but we're not all based in the same city. It's 2.30 am, and I'm going to have to be up in three and a half hours to make the train.
It's not that I resent these Mandatory Fun events. I just wish they didn't require sleep deprivation.2 -
You weak fucks who -1 a comment because you don't agree with it: fucking reply, or argue, but don't be such spineless cowards that you abuse the *extremely* light guidelines on this platform in place of defending your clearly shallow fucking position.9
-
CMake. There is apparently no way at all of including some FindXXX.cmake modules on the search path via an environment variable. Jesus fucking Christ you fucking shitful excuses for engineers. And go shove your fucking semicolon laden randomly quoted path strings.4
-
Jesus, Python. Hash randomization?! I now have non-deterministic fucking behaviour _that I cannot disable within the python script_.
Oh, we have a crafted-input DoS scenario. What will we do? Make an interface to allow programs to supply their own hash function perhaps? No! That wouldn't break reproducibility!
Floating point addition is not commutative? Summing over float values in a set may give randomly different answers? Who cares? It's not like anyone is using python in science or anything.83 -
Yay for technical debt.
For each bug I attempt to fix, I am finding > 1.0 more bugs that are related to it that also need fixing, leading to exponential bug discovery. -
So, summer in a 'minergie' building. Pseudo-air conditioning means it is a bit cooler inside, if you win the office lottery, but the humidity is not controlled at all.
Next week, the dew point will not drop below 17 degrees, and I may die.2 -
Generally, I like to do it in the dark, or in the shower.
Doing it at work can be awkward, what with everyone watching.4 -
Shared home directory, different architectures, and fucking python pip.
Python allows a site-wide architecture-dependent directory, but PEP 370 presumes all the world's a vax. Or whatever machine you happen to be using at the time.
Did people look at autoconf's --exec-prefix and think, who would ever use that? So sick of software reanimating bad design decisions that were put to rest thirty years ago.2