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
Search - "phorkyas"
-
My wife: Oh, hacking is so cool. Can you show me?
Me: Sure. So there I needed to upload the php file, while my netcat was sitting here in the terminal waiting for incoming...
My wife: Boring, BORING.
Me: ....
(At least my 5yr son appreciates the terminal more than she: typing 'sl' or watching star wars in ASCII art.)5 -
Once on my old job I had several ssh sessions and I was running some tests where I frequently restarted the application... Until I entered the restart command in the terminal of the production system and shutdown the whole application. - Still gives me the creeps today, was just lucky the customer was in a break and we could remotely restart it, so probably nobody even noticed.
Now today I run a "rm -rf *" on a folder that is supposed to be local, but after some time I get suspicious because it is taking too long.. Only to discover that the mount point of the remote resource points to my "local copy". Shit.
What is next? The "delete from ...;" without where clause? Fuck, aren't you supposed to get more experienced and cautious?4 -
"Linux is more secure." Put on your tin-foil hats. As you can:
>Root over 50% of linux servers you encounter in the wild with two easy scripts,
Linux_Exploit_Suggester [0], and unix-privesc-check [1].
(sauce: Phineas Phisher - http://pastebin.com/raw/cRYvK4jb)17 -
The Return of Mr. Gitmaster:
So there is this colleague I already ranted about several times. After my previous team lead had confronted him about not doing much work, there was some irritation because he showed not up at work, but it turned out the external training he did was just a week earlier. Then he was ill a week, another week vacation so we didn't see him much. Not that his pre- or absence makes much difference to our repo: When his and my team lead looked at his commits of the past three months they found like the one copy-pasted HTML-form that wouldn't even show.
Fast forward to now, where we have a new team lead and we were going to lunch with Mr. gitmaster. So we got some more hero stories from the great work he was doing in the previous company. How he was graphically monitoring the heap fragmentation that stupid glibc was causing to their search engine, and how much better it became with tcmalloc.
I still don't understand how he bridges that cognitive dissonance from all the superior tech knowledge he displays to not actually writing any code at all. Not that I would not have experienced some states of feeling low, in paralysis unable to write a single line of code... but he seems so full of confidence, always commenting how trivial and easy all these tasks would be, as if it's all so lightyears below his abilities. Maybe he should just become a manager - but not mine. -
Some people are really getting high on this Agile shit. Probably because they learned some new bullshit bingo phrases - and it suits them: lots of vapory talk and expensive meetings and others will have to do the work anyway, while they can circlejerk on how to have shorter iterations to improve the time to market, increase the business value, inspect and adapt to faster deliver a minimal viable product - yeah, do the agile transformation, update to the digital age, you noobs. Throwing around some catchy phrases will let you compete with Google? Maybe need some blockchain or machine learning?
While you are clustering your post its, the coders who keep the ship afloat, sit in their legacy code base that's so bitrot they are mainly doing bugfix releases without a single feature for three fucking years. Consider this.5 -
So apple wants you to open your system logs with Photoshop, truly? So the fuck up and crashes looks more "beautiful"?4
-
Most of the times I really hate typos, coz they seem like carelessness, lack of preciseness. But this delightful method name just made my day:
ReceiveBackendMassage -
Simultaneously opening ssh sessions to test and production system, finally stopping the application in the factory.
It was me. -
Our team - if ever existed - is falling apart. Pressure raising. Release deadline probably failing. No release ready for Big Sur.
Almost seemed we were getting somewhere: More focus on code quality, unit tests, proper design, smaller classes. But somehow we now ended up in "microservice" hell; a gazillion classes, mostly tested in isolation, but together they just fail to do their job. A cheap and dirty proof of concept from March is still more capable than this pile. I really start to doubt all that "Clean code", TDD, Agility rhetorics. What does it help you, if nobody cares for the end result? It's like a month I try to hammer down that message: we have to have testable artifacts, we have to ensure code signing works, our artifact is packaged and installable, we have to give QA something they can test - but time just passes and this piece of shit software is still being killed or does nothing.
Now my knee is broken and can do no sports and are tied to my chair even more. To top it all my coffee machine broke and my internet connection was abysmal this week. Not the usual small disconnects, after which it would recover, but more annoying and enduring: often being throttled to 1.7 MB/s (ranking my connection in the slowest 7% even in Germany). My RDP sessions had compression artifacts all over the screen and a mouse click would only take effect 5 sec later.
But my Esspresso machine was just repaired. Not all hope is lost.7 -
tl;dr Do you think we will any time soon move from editing raw source code? Will IDE or other interfaces allow us to change the code in graphic representation or even through voice?
---
One thing I found funny watching Westworld is how they depicted the "programming" - it is more like swiping on a smartphone, a bit maybe like Tom Cruise's investigations in Minority report. Or giving certain commands and key words by voice.
There was one quote from Uncle Bob's "Clean Code" I could never find again, where he said something along the lines, that back in the seventies or eighties they thought they would soon raise programming languages to such a high level they would use natural language interfaces, and look at us now, still the same "if's".
So I feel uncomfortable without my shell and having tried a graphical programming language once this particular (Labview) seemed clumsy to me at best. But maybe there are a lot of web devs here and it seems with them frameworks you might be able to abstract away a lot of the pesky system programming... so do you feel like moving to some new shiny programming experience or do you think it will stay the same for more decades as the computer is that stupid machine where you have to spill it out instruction by instruction anyways?7 -
Worst of an job in IT? Coming home and having to fix computer still.
I fucking hate it. I fucking hate computers. There might be great stuff like nifty algorithms, grand theoretical theorems about formal languages, Lisps,... BUT that's so far away from the mundane atrocities we have to put up with when it comes to sth like installing a printer.
Newest release of driver won't install a plugin without helpful error. Older release works.. for printing some pages... Then some component (cups-filter) keeps on segfaulting.6 -
So we had a guy who spend decade in automotive, flight simulation and stuff. C mostly. Lasted only a month of his probation period. Didn't seem to know about double pointers. Maybe coding standards in automotive even discourage them...
But made me wonder how to judge skills. - I tend do be on the cautious side, as I hadn't really understood inheritance and many basic things when I started. But luckily my first boss believed in me, saw me gnawing through (Well about my 'initiation' that'd be others stories to tell). Well, guy was hired as a 'senior', so they expected bit more. Dunno, still feel a bit strange about it, even if I ranted about his chattering before, coz he also had his heart in the right spot, but maybe it's for the best anyway...
But guess who's taking his place in our team! Drumroll.. Yes, Mr gitmaster is. -
macOS fuckup continued. Today I used a camelcase name for some new file and a directory. Later I didn't like it and wanted to change to lowercase. Pushed it to bitbucket: now I had both versions! Hold my goji berries, what's going on? Maybe some git config screw up? After a bit of fiddling I remembered an old Linus' rant on Apple's file system when they wanted to adopt case insensitivity. So wait, did they actually do that shit? I thought I was on a unixoid, bastardized BSDish system, that apart from all the oddities that Apple bestowed on it, that there was still some sanity left... But, no there isn't. AFP really defaults to case insensitivity.
I have no words.
So switched to my Debian, where I resolved the duplication in two secs. Now Linux feels even much more comfy and home.29 -
Now I feel a bit bad about the guy I ranted about before, who did all the talk but none of the work. I started to tell my colleagues and even my boss about my impression. And my boss concurred, was actually so fed up with him that he confronted him...
Later on turned out he was the only one able to repair our mangled git history. Dunno how it'll pan out. The guy is also our 'scrum master'. Maybe doesn't always have to be love, peace and harmony. Time to explore our darker sides and yank out some motherfucking code.1 -
Hitting a really deep, deep low in the manic-depressive roller-coaster of the development cycle:
There comes the crunch time. No meeting goes by hearing the odious: "We don't have time for that." - One critical component needs to be finished for Big Sur and instead of addressing the real issues we keep changing design and goal. One main dev already gave up fighting the PO and team lead(!) - and now I'm next. So that dev build this really clean and minimal library as the core part. But now it's just like, yeah, take that nice Porsche engine put it on the old rusty bicycle from the shed,.. but maybe because that's so shitty we need that specially formed exhaust pipe to tune it. Yeah, very 'agile' - Only thinking about it makes me shudder in disbelief and anger. I shouldn't take that shit so serious, be emotional about shit code, I know, but I can't. Let them drive some rounds around the block, if it runs at all,.. because until now we still didn't make it run on the fuckin' street. It's all so insane. Will make some nice fireball, when it goes up in flames.
Well, I have been part of quite some shitty projects. Real suicide commandos set out to fail, and somehow stood them through or made it even "work" though it should never have. But what enrages me here is, that it needn't to be that way. We had plenty of time. Our team was often rowing along in good rhythm. And now I just feel drowned in resignation and sarcasm.rant fuck po resignation crunch time shitty design manic-depressive sarcasm low roller-coaster low fail hard -
You know what's the worst in doing software?
being assigned that dreadful project, that's doomed and cursed just from the start. Nobody dared to try or touch it for 7 years, because it's destined to fail. You will never get the resources to do it properly, all the constrains are just against you. Even as the requirements bars are lowered and lowered you barely make it. You keep testing that shit with QA for like 8 months past schedule. Then before release some core changes need to be done. It passes QA, but you somehow now it's just a ticking time bomb. It will just crumble and fall somewhere out there, if somebody dares to use that shit for real.
And so it goes.
Bug reports coming in.1 -
Fuck, I'll always be a noob. Knowing next to nothing about software development, hacking, exploits - just anything.
Felt a bit proud to had reached the level "hacker" on hack the box. Was fun solving stego, crypto and reversing challenges, diving into assembly the first time. Felt cool stepping through a disassemblied executable with radare, and understanding what a NOP slide is...
However all the illusion crumbled down, when I watched this CCC talk on OpenBSD security, where the speaker was underwhelmed with one of OpenBSD mitigations, where they tried to disallow them: "NOP slides?! Srly? No one is using that anymore. Just look at current exploits."
I felt so stupid, which I probably am. Will never catch up with those guys.
But whatever. In the end we all know nothing. We have no clue, but some are more apt in disguising it behind big speech.
(really like this German song: https://youtube.com/watch/...
Those lines always give me a chuckle:
"Man has no idea.
The house has no idea.
The tree has no idea.
The fawn has no idea.
The squid has no idea.
The tapir knows, but doesn't tell us.")3 -
So someone complained to my bosses boss about some internal page where I collected some of our own funny git commit messages, because they were not "meaningful", and I had to take down said page.
Fuck that narrow-minded seriousness, why be so German? If we have to debug multi-threaded C++ programs, we need that bit of fun and sarcasm to stay sane. But probably that someone is a member of some of these "professional" Agile teams that waste a day a week with fucking retros, sprint planning or other mind-crippling meta stuff, then evaluating frameworks and tools, while we are doing motherfucking programing. -
So it's not just through reading your own code later that you can realize how stupid you are. All the great card house of the belief in your own superiority collapsing instantly.
Currently intense time with my son. Can be hard being around one another 24h non-stop... And then realizing that a lot of the stubbornness and quirks of his that drive me crazy: is actually me! (Be it that it's in my character as well or he was reacting to a stupidness of mine)2 -
Fuck XCode! -
Yesterday I had the stupid idea to rename an icon file. Checked that XCode was building the application still fine. Ran it over the build server: Failed, complaining about the old missing icon file! Checked again and again, but there was no friggin' reference to the old file in the whole repo.
Log in to the machine clear the build folder and try to build the component again. Bang still same error and the references to no longer existing files reappear.
Turns out XCode was caching those references somewhere in the home directory as "DerivedData" and after deleting those, I could build again... but why on earth are you building a cache if you cannot properly invalidate it? Just to waste our time?
(@xcodesucks)3 -
Agile my ass.
What has become of: "Individuals and interactions over processes and tools"?
A fuckton of rules and processes to do it the 'right' way: tickets, estimations, hours of sprint planning. Yeah, we're so professional we no longer have time to write code.
Note: manifest was mainly full of fluffy business buzzword bullshit (effective sustainable excellence), but one thing resonated:
>Simplicity--the art of maximizing the amount of work not done--is essential.
(I cherish every line of code deleted or unwritten, so it needn't be maintained)4 -
Let's face it: I am and will always be a tinkerer. Yes, I know my ways around, I can sneak into legacy code bases easily and throw new stuff in there, I've seen software stacks. But scarcely sound design, really modular. Even from the cleverer, experienced ones. They can master more complexity, so they can handle more spaghetti. Some essay from the 80's had this grand idea to organically 'grow' software. That's how it looks like most of the times: cancerous, parasitic super fungi (armillaria). Yeah, we all know have to fight bit-rot and entropy, but it was all lost before already. We'll never get rid of legacy protocols, legacy code.
And even when we go green field, start a fresh. Yeah, take a great design, make everything new, after some months of throwing features and outer constraints at the thing, it's the same old mud again.
But we can still dream on: some day I will design great APIs, I will have great test coverage, documentation, UML design, autometed tests, fuzzing, memchecking, I'll work professionally, clean coder style.
Pfft forget it. Maybe change for consulting, because we'll continue to dream of the 'clean' code, so you can sell the next 'recipe', development method. It's like diets. As effective. For the one selling.2 -
I don't write monads,
nor intricate templates,
my code shall be stupid
and simple - free of any
arbitrariness and superfluity.
Clear and evident.2 -
Who needs Mr. Robot or all that hacker shows, if reality is just as crazy:
https://krebsonsecurity.com/2017/...6 -
(mostly !dev) Fuck humans! Really: what a scum bag race. All that shit talk about human dignity, the highest values are just sugar coating the low base motives we mostly live by. Like people have such fine antennas for your income, social status, the power or lack thereof you exert over other. They know it before you open your mouth, that they can pick on you, harass you, because you're the one on the receiving end, the one that bows away. The bullies feel that. On an overcrowded chicken yard you'll find more dignity than in human society.
Everybody drooling over that polished photoshop life on facetubeinsta: materialistic, consumeristic, masturbatic wastage. At least we now say it openly: that if we were the winners, we'd also take it all, live that empty luxury, life of fame. But 99,99% of us, we aren't in that position, just working off our arse to only keep afloat. And for the stars, those fake images, we're just rats to click on ads to better train Google.
No wonder that software, as a picture of human communication is such a shitfest of arbitrary, entropic conventions and endemic epidemic of quirks, bugs and evil trap doors. As a whole: an insults to reason, a challenge to sanity. (...Conway's law)
And I'm still a bit pissed at our profession, that, you know, as engineers, scientists, physicists, we still see us in the lineage of that "great" age of enlightenment and reason,.. while it's all just a cover up. Sure science and their ideas are nice as long as you serve a purpose or make some money. Sure democracy and free speech are great achievements, but in the end some elites and monopolies rule the world at their gusto - and will not stop destroying the world unless we're already one feet in the abyss (like 1962, be we ain't had enough of that shit, hadn't we?)9 -
For years I felt like an imposter for not rooting my smartphones, and not owning any raspbis. - Now finally I got an pi 4 and installed my so long desired pi-hole.
Quite disturbing that at least 30-40% of my traffic is known ad shit. Such an infestation.8 -
The worst of Agile and Sc(r)um: All those people knowing the right way(™) to do it. Endless discussion about useless tooling: the proper use of the custom workflow in Jira, on when and how to create sub tickets. The hour-less meta-discussions on what should be discussed where and when (what's subject of the backlog refinement, retro, etc), the roles: the PO's, what he should do, cannot, the PM's. Who is allowed to pull a ticket to the sprint or not. How many reviewers need to acknowledge a pull request. To and fro. Pointless, but fought with heart and blood, full of sound and fury, signifying nothing.
And everywhere I hear: "In my previous company, we did Scrum like.. and it worked perfectly!"
Some of you might remember my rants on Mr. Gitmaster, with whom I thought I'd made my peace. Guess what? He's now a team member and turning into Mr. Agile - a more severe reincarnation! As our company starts flogging that dead horse of Agility, he seems to feel strong tailwind. Our team lead would constantly cut his monologues, but he's now on holiday, so we have no escape from the never ending: "In my previous company..."
If it was so great, why didn't you stay?
We are not allowed to pull a ticket to the sprint unless every team member is notified? I don't fucking care. If our software fails on customer's machines and I can fix it, I will do if there is a ticket, if it's in the sprint or not. Screw Scrum, if it is getting in the way of it. You can waste your hours discussing horseshit, I want to sit at my desk, deep in the test-compile loop and ship some fucking code.3 -
One of biggest epiphanies came through this fundamental critique in SICP of the assignment operator. Through years of imperative programming it seems so innocent, doesn't it? But that you lose referential transparency, run into the alias problem and fundamental difficulty to determine object equality (or of their instances) - that was kind of eye opening considering all the pain I had already experienced with state in concurrency.
(It led me so far to think it's an ontological issue, that even in the discrete computing universe we have not come so much further than Zenon's paradoxa on change.)6 -
Not here nor in my prior workplace I have seen any prank. And actually I like this a lot. Don't we have enough shit to go through to tease each other with antiquated, stupid tricks that weren't even funny in the century of their invention? Maybe I am just a humorless German,.. but wouldn't that be part of any professional attitude?
h3ll seemed to express a similar thing, but probably she deleted her account. So we are in devrant without hell. May the memes rule like in fezbook-h3ll.7 -
Just as an extension of last rant to explain how much fun it is to keep up with Apple's security through obscurity bullshit.
AFAIK this full disk access (FDA) feature was touted to protect a user's data on macOS. Programs that want to access those files need to request the user's permissions to do so. Now to the fun part: Apple is not providing any API. A staff member suggested, that you should only try to access the files your app needs and if you can't as for the user's allowance. One should not use some fixed files and try to access them, because their locations might change, as well as their (UNIX file) access rights (ACL), or if they fall under FDA. Not to speak about the other security features that might hinder you accessing files (you might be sandboxed, or the files might be subject to SIP/rootless).
Honestly, you should be starting to take drugs, if you want to stay sane. I mean UNIX ACL are weird enough: e.g. you can make a directory only readable for root such that a user cannot list the files inside, but you can place files inside that the user can read (if she knows about their existence). On macOS you'll never know. You may have all the rights to access a file,.. but Apple will only give you the finger.
As they always do to us developers.2 -
Fuck it. Two big releases plus all the minor shit raining down on our team with only three active devs. A new team member who's unfortunately more of a burden and nuisance while the whole ship burns so beautifully....
And stupid me? I fucking break my arm, is in a cast now for four weeks. So I can mostly watch, while everything sinks.4 -
Watched some documentary about Russian hackers. Journalist: I need to learn their language. - starts programming/hacking course, sees a shell and a python: runs away. 'That ain't for me.'
At least he tried tho.
Later he finds some Ukrainian hackers. One had a strangely familiar logo on his laptop. Rewind a bit: its hackthebox.
Just had my first blood there. So.. I'm a hacker, too? Good enough for Arte doc's?5 -
Last day at work: goodbye overnight sessions breeding over some arcane legacy code that blew up in prod or manually restoring dozens of backups because the customer continued to work while systems went down due to power failure.
Colleagues last commit message at that place: It just works (Friday 8pm then shipping the code to prod)2 -
If ever there was something like dark ages, then we are living it: which programmer still knows what his statement does through the whole software stack down to the CPU (and could also account for what a modern CPU does with all its cores, caches, pipelines and -1, -2, -3 rings). Piled higher and deeper. I know nothing. So it's like being a cargo cult sorcerer, conjuring copy&pasted spells from SO to invoke Bjarne's, Linus' or whomevers forlorn spirit, so this shit won't break.2
-
This lack of real human contact is getting on my nerves. Most of the text messages, discussions, especially in PR or design roads to follow develop into pissing contests. Always proving how much one is right and the others are wrong. -
I get so pissed off with little details, e.g. useless, wrongly handled boolean return values. Cannot understand how they don't see it my way. Or how they can feel superior by offering platitudes like "One should never use singletons". As if following some stupid rules and patterns from a book made you a better programmer instead of looking closely what each problem really needs. Or how they don't measure properly/scientifically or can't interpret the numbers.
My blood pressure already rising just from writing about it. Maybe I need to get some time off. But at the same time I feel like, they are doing it all wrong or not the way it should be done, so it's hard to let go. To obsessed with all that shit...1 -
So easy to DOS a whole software company.
Someone (accidentally) started a script or similar, generating so many requests on StackOverflow that our IP got banned.
In the company chat people already joking how they cannot work. This is "critical infrastructure" in 2018: faulty IP in our network is taken offline. Let's see if we can access SO again today.1 -
Out of the frying pan, into the fire:
So in my first job, I thought it's just us operating so crazy: meddling with arcane C/C++ code from the 80's, shooting our code to production without testing, fixing hundred of customers data base entries by hand, letting an intern alter some core component (to have more logging) and directly push it to prod...
Silly me.
I mean I suspected, that maybe it's not only this tiny little company acting wild, that also the bigger companies with all their ISO certified processes, agile blabla, professional tooling whatsoever - will also have their skeleton in the closet,.. like some obscure assembler part buried in the heart of your code base nobody dares to touch...
How Pieter Hintjens asked about the state of the industry and all the fads so bluntly put it:
"It's all bullshit."
But we are humans, so we better jump on the bandwagon if we want to keep our jobs... and somehow try to keep that trashy house of cards from crashing down. -
Deploying into linux containers (lxc) as of 2013 before docker even was da hype.
(Experience was a bit problematic tho, as it was in a highly virtualized environment whose backup would really badly kill the whole container every now and then: you could still ssh to the machine but with every access to the file system you'd lose your shell. and only the "echo 1 > /proc/sys/kernel/sysrq" would help to restart the box.) -
Third (or fourth) AI winter coming in despite global warming. Cold war level shit cyber warfare.
C/C++ not dead, Java zombie still in the businesses.
Still no usable IDE (on Linux)5 -
Most of the mockery and derisive talk at lunch was directed towards: middle management. - even if they were present at the table.
I too, have struggles with our PO: he was developer but is totally out of our development, what he kinda accepts and lets us do our stuff... BUT from time to time he wants to meddle with our architecture even though he is not even capable of writing more than a sentence into our ticket description, and his only "vision" is the KISS principle. Totally triggers me.
On the other hand I am also part time working as a scrum master and thus get to know the shit show from the other side: sitting between all parties with their particular, contradicting interests - all that shitty "politics" you don't have have to care about if you just code.2 -
Is this a technological metaphor?
For some Hacker challenge I was reading up on different keyboard layouts, Dvorak and stuff. And the technological lock in is baffling me: The rationale for qwerty was to reduce jamming of the typewriter letter arms. Today that doesn't make sense anymore, yet we stick to it. Wondering how much of today's tech is dragged down by things like that.
This stuff often also makes me weary of the first decisions, like choosing a protocol or data base - its kind and layout, because we might be stuck with it for reasons of backwards compatibility.... Like when Microsoft opted for the backslash as a directory separator..25 -
The "AH"-moment when as a boy discovered that with this instructions in QBasic I could literally let the thing do *anything*.
The "HA"-moment only little afterwards that I'll probably never have a clue what a worthwhile thing to make it do would be. -
Linux is great - to tinker, to pull in all your FOSS, mess around...
But it's so fucked up, if you actually build and maintain a product on it, i.e. try to distribute s.th. in binary for money even. It's just not intended. If you offer your code for free, you can always say: "Ah, just compile it yourself. You might need these 29 dependencies, of which 2 are not even checked by configure, oops, and now it crashes, maybe in that qt library version, you picked there's still a bug?.. you know, it worked on my machine, sorry."
But if you sell it, it better install and run! And even if you target only the main distros of all that fragmented Linuverse - let's say, Debian, Ubuntu, RHEL, CentOS, Fedora, and if you're in Germany OpenSuSE and SLES, you'll start to see the crap of work you're up with. What you could try is to orchestrate a docker fleet with one container per distro, where you take the oldest version you still support compile a newer gcc there (to at least have C++11) and all your third party libs and then hope the resulting binary runs on all the newer versions of that distro, too.
(You could even be so brave as to try to pick a deb and rpm distro to build for all other distros.)
But ABI incompatibility can still bite you. For instance we once had the insane case, that our GUI would no longer start just by switching the Window-Manager to KDE.8 -
Upgraded our internal samba fileshare. Was getting too old. So updating the apt sources list and push the dist-upgrade: what could possibly go wrong?
Everything.
Somehow the locale went astray, updating the manpages gave too many errors and now finally everything's fucked up, because it somehow deleted the sudo binary and root is locked or we don't have password.
We noobs.
But samba was updated and it's still serving our files.7 -
In an in-house beta our product was causing blue screens. We had some the crash reports and a I dug out the technical notes in how to decipher that gibberish. Still no real clue, but there was an address happened where it was supposed to happen. So I dumped our binary into two reversing tools, jumped to that address and looked at the surrounding code.
And sure there it was: A missing check when manipulating a C-string which could lead to out of bound access. Added a check BSOD's gone.1 -
How rotten and half bitten is this most valuable Apple? See that they get quite some bashing for their latest Catalina release. And they deserve every portion of it, I think.
Honestly, when I saw our testers going through the different betas, which hardly installed and on which our software kept behaving differently, nevertheless they pushed their Golden Master and released. Didn't seem a good idea.
Currently I had to update to Catalina to check some small broken feature of ours and now the active window keeps on losing focus every few minutes. Have to grab the mouse and click there again to continue working. Really fucking annoying. Hope I can track it down some time.. or trash my iMac.2 -
"Delete all code!" That should be the mantra!
Was watching some stuff from destroyallsoftware.com. Not entirely convinced. So I should cook up my own shit.
So here is how the argument goes:
There's quite some negativity in the term "legacy" software. Partly it may be the envy to software that runs on actual machines and is not that phantasm, that perfect first lines on a greenfield project until it gets messed up as it has to put up with all the real world messiness. But the negativity it deserves is actually for the code that we cannot get rid of. This ugly class or function that soaked all the complexity and functionality so it defies any positive change. And always when it appears on your screen, it irks you, enrages you, makes you punch the screen, because you can almost feel the distaste physically. - *That* is the definition of "legacy" in its true negativity. No software should be like that. On the contrary. Every line should be replaceable, dispensable, disposable. At the verge to deletable. Because you know: the best code is no code.
This is where my hatred of code could get productive: Delete all the wretched, loathsome stuff and replace it, with something that just sucks less and can be thrown away any time. Don't expect beauty or perfect design. It'll never finish.3 -
Sometimes my hatred for code is so.. overwhelming that I think I need a sabbatical or should even stop altogether.
Let's face it. All code sucks. Just on different levels.
Want to go all bare metal? Love low level bit fiddling. Well, have fun searching for concurrency, memory corruption bugs. Still feel confident? Get ulcers from large C/C++ code base already in production, where something in the shared memory, function pointer magic is not totally right?
So you strive for more clean abstractions, fancy the high level stuff? Well, can you make sense of gcc's template error messages, are you ready for the monad, leaving behind the mundane everyday programmers, who still wonders about the scope of x and xs?
Wherever you go. Isn't it a stinking shit pile of entropy, arbitrary human made conventions? You're just getting more familiar with them, so you don't question them, they become your second skin, you become proficient - congrats you're a member of the 1337.7 -
I really hate all kinds of tattle that sweeps the hallways of corporations, the gossip behind one's back, BUT this colleague of mine starts pissing me off. Recently joined that team where he should support us getting the Agile thing going. And he can go on for hours of how it should go and how flawlessly it worked in his previous company - all that needless meta talk - so much that a team member jokingly even said: yeah, shut up asshole. But he is all talk. When the name of a library was dropped his experience in using it went to upstream patches. His Linux experience lets us speechless. He is so convincing, I'm even doubting my accusations. Yet his only contribution in code wouldn't show and other team member wasted hours upon hours to recompile plugins to show that shit. Man, just leave us alone watching your youtube live-streams so we can get the shit done.
-
There are some who view software as a social construct (like Pieter Hientjes), and I think it's a valuable perspective. So if we know about the intrinsic brokenness of software, can we deduce sth about the brokenness of human interactions? Did social API's evolve to similar clusterfucks of dead entropy we have to shovel in our brains to get along?
I think the answer is an emphatic yes. And you know what's even making it worse? Software. Y'know there are all these whining about the millenials, and I too have had my experiences with stuff of that category. Like back when we searched a new roommate for our flat, we needed three rounds because people who had said yes suddenly reconsidered. Similarly now when we tried to sell our couch: people tried to push the price. Said they were interested, never showed up at the appointed time. It's like they have been spoiled by Amazon: expecting to buy with one click, for the cheapest price and send back if they don't like. And that is not a generation thing. Those old blokes ranting on the young are just as bad. They are just as lost in antisocial media as anybody else. It's a general erosion of not sticking to civility and courtesy, to the yes or no once said, coz everything is now as flexible and fluid as the digital projections of ourselves transmitted round the globe, changing in realtime.
I fucking hate it. - I'm out like this stupid Tom Cruise character in Oblivion.6 -
What a delight to have to work on macOS. Not.
Took me two days to notarize our app bundle. The ultimate issue was a dead symlink inside the bundle which would make the codesign verify (with strict option!) fail, while verification of signing operation itself passed.
Notarization would just give generic error: not properly signes. -
Theorem 2.71 All software is shit.
Corollary 3.14 So stop the braindead OS wars. All OS are shit, too.
Proof. The only software that can stay beautiful and clean is software that is never used. Maybe if you are Dijkstra or live in a Haskellian world, you might come away with it, but for the rest of us our artifacts have to interact with other artifacts or are build upon strange historically grown systems, they have to deal with users who will put it to creative use.. and in the process we also actually might have to alter some state.
Or put another way: code is a social construct. Like science are the beliefs and superstitions grown by a scientific community, software is the montainous dunghill produced by our laborious efforts to make shit even work. Of course this only piles the stack higher and higher until you can already smell it from the moon. -
So to give you a feel for what evil, clusterfuck code it was in: this projects largest part was coded by a maniac, witty physicist confined in the factory for a month, intended as a 'provisional' solution of course it ran for years. The style was like C with a bit of classes.. and a big chunk of shared memory as a global mud of storage, communication and catastrophe. Optimistic or no locking of the memory between process barriers, arrays with self implemented boundary checks that would give you the zeroth element on failure and write an error log of which there were often dozens in the log. But if that sounds terrifying already, it is only baseline uneasyness which was largely surpassed by the shear mass of code, special units, undocumented madness. And I had like three month to write a simulator of the physical factory and sensors to feed that behemoth with the 'right' inputs. Still I don't know how I stood it through, but I resigned little time afterwards.
Well, lastly to the bug: there was some central map in that shared memory that hold like view of the central customer data. And somehow - maybe not that surprisingly giving the surrounding codebase - it sometimes got corrupted. Once in a month or two times a day. Tried to put in logging, more checks - but never really could pinpoint the problem... Till today I still get the haunting feeling of a luring memory corruption beneath my feet, if I get closer to the metal core of pure C.1 -
It's time we treat social media like (trash) TV: it's all fake!
src: https://media.ccc.de/v/...
(can I buy a "++" - I hope not so, but who knows, everything is possible on the interwebs: your refrigerator liking Facebook pages or videos played in one pixel of a web page to generate more views...)3 -
I hate, hate, hate sockets! All the mysterious way they can fail. The subtleties, different API's if you switch between Linux to Mac, etc.
If the communication between (supposedly) deterministic machines is already such a clusterfuck, how do we even get sentences across humans and act as if we understood?8 -
Just wanted to make a clean install on my iMac. What could possibly go wrong?!
Cleaning the hard disk was interrupted by a process running (kextcache). Catalina wouldn't install ("Incomplete systen on target device". Dropping the terminal I could somehow force unmounting and wipe the disk. Had a BSOD in between. Catalina would still not install ("Failed to install pre boot volume"). Later erasing the disk got blocked by the kernel itself. Felt like trouble and it was: Next time I was greeted with a blinking folder containing a questionmark instead of the bitten Apple.
Last resort: Internet recovery. Installing El Capitan was said to take 7 hours so I took a USB time machine backup of latest Catalina. Installed it, but on reboot it get's stuck when progress bar is at 100%. But at least I've a working recovery again. Yeah, progress!5 -
I knew concurrency is *bad*, but *that* bad‽, just shocked: https://blog.bugsnag.com/bug-day-ra...2
-
Fuck me! Fuck VSCode!
Wasted nearly a whole day of entire team by breaking a core functionalty.
Don't know if others also hate it so much when you want to add a bracket and VSCode detecting a closing bracket or whatever nullifies your attempt leaving the number of brackets constant.
Not exactly sure today's defect was caused by this, but I strongly suspect it because it was caused by just a misplaced bracket.5 -
Had nice nightly writing session with some good ol' Soundgarden and Pearl Jam, so when I just moved to the monitor I still had this music in my head:
[Whatsoever I've feared has come to life
Whatsoever I've fought off became my life]
"Just when everyday seemed to greet me with a smile."
Just to see this:1 -
This aesthetics in physics that is hard to explain to someone outside the field. How beautiful for example that you can express the whole classical mechanics in just 1 equation and electro magnetism in 4, that sense of symmetry and clarity they express. Essentially in what Einstein and others believed: that the universe is a orderly place not chaos and that its rules can be understood by our crippled minds.
And I think there is a similar notion in code. As physicists are driven to more general and powerful theories that shall some time explain all interactions of matter that we know of, programmers, I believe, strive for similar ideals: brevity, conciseness, generality, abstraction, powerfulness of your symbolic system - one line of code to end it all. -
Long time nothing from Mr. Gitmaster, somehow made my peace with him as the project moved out of my focus and he actually seemed to be contributing.
But now some pull request exchanges burst into flames as if they were on LKLM before Linus got castrated. Actually it's with the guy who is jamming out most of the front end code trying to make a really shiny UI with lots of animations that turn our macs into heaters.
Well, debate was over JS code styles or lack thereof and how commented out code should be removed (would actually support Mr gitmaster here). They have me a bit lost there, as I expect the freestyle JS code we produce without any agreed Coding Style Guideline to be an even greater clusterfuck than our C++ code base.
Anyway, hope they come to terms again, like at the start of the project when they jokingly attributed one another as assholes. Their opposing characters could actually benefit from each other. -
https://xkcd.com/1808/
If you take only the 2nd half:
They can delete the space, rly? ALTER TABLE spacetime DROP COLUMN x1, x2, x3 or what? -
Continuation (no. 2): So because of my bad conscience I was very polite and friendly to the colleague I pestered about... but my boss was not. Instead he broke loose his second fight with Mr. git master. He's joking about that he now already had a fight with almost anybody (mostly team leads). He's leaving the company anyway, so he needn't care, but I start to love his love for conflicts. Some PM or upper boss already said something along the lines: "If something's wrong, I know you'll escalate." Of course you should not for every triviality, but nothing is worse than those lingering, dormant time bombs of projects that went so awry they're just waiting to explode... or silently be canceled.
Well, so they clashed again, and Mr git / scrum master fought for his concern that my boss, who's also product owner, must not enter the team. I looked at the git logs: Mr git master's only contribution - he's supposed to be a member of the team - since joining (like over a month) were 300 LOC, which was actually copy pasting our old copy right form, peppering it with some html tags to ensure it would not work without recompiling the 3rd party lib with a fucking webengine.
My boss now rather wants to remove "agile" as it's not fitting. Just let the three or four of us yank out the code so we actually have a chance to deliver in three months. He told the upper boss that we can take our tasks ourselves so independently we even need no team lead, but could report directly to him. It's still not clear what's gonna happen, but it's like they could let us loose, free radical elements who just do motherfucking programming. Feels awesome. -
Fuck external stake holders, like politicians, those know-nothings, that pump their ego by finding multiple "issues" with our software like how we display the privacy data agreement and impose their stupid fucking nonsense rules on our software. Even if it is not part in any official law or GDPR
So there is the request that one needs to scroll down the whole data privacy crap nobody reads until you can press "Continue" and we *have* to implement that shit. Although it is completely out of line with Apple's usual installer handling. Nobody will understand it. It cripples the workflow.
But some Mr. Important demanded it, as if he is protecting users with this and makes a great contribution to the data privacy in our country. Yeah! And guy is so high up, unreachable for us through all the layers of other people, leaving us no time and means to dissuade this shitty request. If all your 'ideas' are so great you should not be allowed to do jack shit.1 -
Got called on company phone while being in home office. Somehow through VPN + RDP session it got routed to my laptop, but connection was really bad and we could hardly understand each other, i.e. I had to guess that it even was a recruiter.
Guy however was really nice, but I failed the interview to a job I did not really want. -
Crypto. I've seen some horrible RC4 thrown around and heard of 3DES also being used, but luckily didn't lay my eyes upon it.
Now to my current crypto adventure.
Rule no.1: Never roll your own crypto.
They said.
So let's encrypt a file for upload. OK, there doesn't seem to be a clear standard, but ya'know combine asymmetric cipher to crypt the key with a symmetric. Should be easy. Take RSA and whatnot from some libraries. But let's obfuscate it a bit so nobody can reuse it. - Until today I thought the crypto was alright, but then there was something off. On two layers there were added hashes, timestamps or length fields, which enlarges the data to encrypt. Now it doesn't add up any more: Through padding and hash verification RSA from OpenSSL throws an error, because the data is too long (about 240 bytes possible, but 264 pumped in). Probably the lib used just didn't notify, silently truncating stuff or resorting to other means. Still investigation needed. - but apart from that: why the fuck add own hash verification, with weak non-cryptographic hashes(!) if the chosen RSA variant already has that with SHA-256. Why this sick generation of key material with some md5 artistic stunts - is there no cryptographically safe random source on Windows? Why directly pump some structs (with no padding and magic numbers) into the file? Just so it's a bit more fucked up?
Thanks, that worked.3 -
Taught my wife the first lesson in real world programming:
She had to do some python homework and it was already late night. Task was to apply several filters to a csv. So we did the good ol' STRG+C.
Am I a horrible person or my programming corrupted from within?4 -
Write a novel about code and digitalization - not so much dev'ish.
Rral dev thing: finish reading SICP and really plunge in one of the functional languages2 -
Do you all sometimes have this strange feeling, that.. actually humanity would not lose anything, if we killed all that useless tech we earn our money with?
Yeah, we get all that propaganda how technical prowess is empowering and sure we all know it's a nice feeling if you can apply the right clicks and bit flips to make the machine do as you want so you feel like the apprentice's sorcerer.
BUT even if you believe your user story adds some business value to some abstract package - what do these devices mostly do? Distract, diffuse your focus, envy other eye-porn provider, endless aberration of clips.
Fuck social media!
(Yes, I know I am on one, but this is because I haven't given up hope on this one.)6 -
Finally some real vacation. Heavily needed. Can't stand that type of remote work any more. Our dailies and pull requests have become mere dick-measuring contests. Morally puffed statements about THE RIGHT way to do agile and clean code, and architecture. Endless vacuous, monologues, which they only endure so they can start our own - but shit just does not get done.
And then they don't want to invest only a day or some hours to get some integration tests running on more machines, which could save the one overworked tester we have a lot of work. But whatever. I've lost all motivation and hope. Shall they deal with their own shit. Maybe I just need more sleep or some antidepressants, because I'm really fed up with it.
Makes we wonder why I even fought this battle of the last two weeks, when thanks to Apple's changes in macOS's codesigning our new binary wouldn't run on any "real" machine. But according to them packaging and signing is only a trivial issue, nothing to do with code. Yeah, well, then they should do that shit themselves next time.1 -
Why are some defaults still so broken on Windows? Do they just not care or expect poeple will replace everything with third party stuff as the real defaults anyway?
Now through RDP connection stuff I have to spend more time on that #*?%&$§ OS and I would have expected the standard programs to work better. Here some of the stuff that really irks me:
* Groove Music sucks hard, how it doesn't let me edit playlists, but relies on its broken discovery of tracks. So I can play my old Eels songs from some subfolder in music folder, but only by manually loading each song. It never adds the songs to the list whereas the new NIN album is recognized. - It could have been nice, more of a lightweight Cessna, compared to that scary giant nineties Jumbo of media player?
* every time I use the snipping tool for a screen shot they suggest to use that screen sketch tool. I tried. Inside the RDP it was just unusable, when I tried to select the part of the screen. The selection cross wouldn't show or only too late. Unusable.
* using Internet Explorer as the default application for xml files. Sorry it's just so damn slow. And this smiley always gives me the creeps. (liveoverflow had one episode where he described his panic when he first saw an opening internet explorer: Uh, that strange face there, has it been hacked?) - but then nothing happens for a minute, I calm down, and open the file in some useful editor.7 -
Now I finally got the power of conspiracy theories: They make the world feel more profound, magically and purposeful, because there is more we do not yet understand.
For one day I thought the Basilisk collection was true, and it filled me with wonder and awe: https://suricrasia.online/unfiction...
(I know it's not a conspiracy theory, but I imagine it must be similar if you believe in one of these things and go down the rabbit hole.)4 -
After coming back to my desk I cannot unlock my screen. So again I have to go to my Mac or even Windows to google my shitty Linux problem. Nothing particular turns up. So I switch to another tty and rummage through the process list. Kill some java that took 11GB of RAM and Firefox that always keeps some zombies. Nothing.
Grep the processes: oh let's nuke "light-locker". Bingo.
The only downside of this brutal unlock: I cannot lock the screen again. So in any case another reboot? Wasn't this the standard repair method of that other OS that should not be named?3 -
I should run a daily cron job for my Mac rants. Today it was just this: I connected to some other iMac over network discovery, but from within in the GUI it is impossible for me to get the IP or any information of that machine. All information it displays you see below. Thanks very helpful. (Only lastly I found the information by pinging administrators-iMac.local)3
-
So I thought I had a basic, high level understanding of C++ STL strings, pointers, copy constructors and stuff. In comes a dirname, a -D_GLIBCXX_USE_CXX11_ABI=0 and... Toto, I've a feeling we're not in Kansas anymore.
So what is happening? I copy a string expecting a deep copy, but then I do the dirname or manipulation on the copy and it messes up *both* strings. gcc/C++ I know you're a beast, but what's going on there? Thing is only possible if I cast away const from c_str - which of course is a doubtful operation - but there also seems to be some strange copy on write logic that the data pointers initially point to same memory location and only with first manipulation on the copy they start to point to different addresses.
I had no clue. And still don't have.4 -
Built the most generic file importer.
So a customer had his SAP system giving us some 5 million barcodes in a csv which we needed to parse. But as there could be different file types and I thought the handling would always include the same steps I made them configurable through function pointers. - Did not want to make it as spooky as the rest of the code base where the function pointers were buried deep in some shared memory configs, which might even change at run time, but rather I statically used the member functions of my class. Just to poke fun on the ugly C++ syntax of member function pointers. I still shudder at the thought some poor soul now has to maintain that code.
(For the actual parsing I actually used a one liner in awk which was churning through the records in one minute which was faster than the SAP guys seemed to be accustomed to.) -
Fuck you Linux! I thought user password validation would be a piece of cake, like bash one liner. How wrong could I be!
Yeah, it's already ugly to grep hash and salt from /etc/shadow, but I could accept that. But then give me a friggin' tool to generate the hash. And of course the distro I chose has the wrong makepswd, OpenSSL is too old to have the new SHA-512 built in, as it should be a minimal installation I don't want to use perl or python...
And the stupid crypto function that would do me the job is even included in glibc. So it's only one line of C-code to give me all I want, but there is no package that would provide me this dull binary? Instead I will have to compile it myself and then again remove the compiler to keep image small?5 -
Entropy wins. More useless accumulated historical nonsense in each programming language. Complex software stacks impossible to reach the bottom. However C and C++ still there possibly even some Cobol and Fortran zombies. And we devs still writing our ifs and loops for that kind of legacy stuff.
-
From a little bit heated discussion I want to extract this: One big pain in the ass is the human to computer interface. Maybe it's the natural vs. formal language divide, but there's a mismatch deeper than between object and relational models that no ORM can failingly fix.
The whole point of the discussion was on such a point where some wanted an interface more human friendly and I stubbornly insisted on the way it is simple for the computer system. Like not too much human messiness should invade machine. One argument sounded as if human words were like unicode code points which meaning doesn't depend on its representation.
That's raising red flags to me: Nonono, natural language is too messy, keep it out. This poor machine could have been so clean and well designed and we already stacked up so much entropy we still dare to call OS,..
Dunno, what's your stance? Still hoping that your shell one day will be able to process our poor standard English? Or do you think, like me, all those failed attempts show there's a gap you should not even touch?5 -
Not a webdev so I don't care about how a website looks, but logical failures can really trigger me at times.
E.g. this German federal page you had a bunch of options to fill in your employment status. Though being incomplete it forced you to choose one from the list and then at the end you have to checkmark that you filled in everything correctly reminding you there might be legal consequences otherwise. Thanks.
Amusingly on the same page their enum to string converter seemed broken or they just didn't care. So options to choose from read like: Enum_marital_status_unwed_coupled
Fucked up the screen shot so I can't show, but made me chuckle.2 -
How on earth is there any "sane" software (eco-)system or will it always be so crazy because as pieter hintjens might have said all this soft- and hardware is created by this social animal called human, with all it's faults and aberrations...
So it was just, that I could not print - probably because of this bug: https://bugs.debian.org/cgi-bin/... - couldn't install a newer ghostscript. So I would scp my files inside an Ubuntu-VM from which I could print. Sometimes I could pdf2ps some files or transfer back the ps-file and print on my host machine, but mostly not... U n t i l today when I installed the fucking debug symbols package for ghostscript and I could just fucking print. Heisenbug, ghost error or what?1 -
We are legion, the legion of galley slaves inside the hold of the bit machinery, who insult themselves as code monkeys as if we were hitting our keyboards until we get Shakespeare or something compilable, while it is us, the anonymous mass of developers that shift the bits such that the Gates and gatekeepers on deck can present the working code or content monstrosity, while we in the engine room looking at the source don't understand how anything could be working.2
-
How can people stand this bitten apple? With this mojave update I now feel in the most unfriendly desert for developers.
Not only did your update render all my VM's unusable, but the new AppStore seems a joke. This new icon there if a piece is downloading or installing or whatever. I cannot tell what it should tell me. That an alien took a crap on my display? There's no percentage, nothing indicating what's actually happening. Is this your understanding of user experience through obscurity? - shunning the user from any useful information, hiding everything behind some nice looking vapourware?4 -
Software development is so rotten: So I had to compile curl 32 bit. But just to create the configure script I needed friggin autoconf, libtooling and 2 other packages which homebrew would not install, because there were too many github-API requests. So I created a fucking github account just to create a token, import it in my bash to enable more requests. And it even worked. That is the scandal: That this whole shattered, stinking abomination of a process even produces some software you might actually run... and that we are using it.2
-
Hackerman strikes back. Always thought the new knowledge about stego tools, reversing, enumeration, privesc were just my private amusement. But could now use it, hopefully resolving a severe crash by dropping our binary into radare2 (cutter) and ghidra, identifying some dangerous code.
Also it gives you new angles to look at things. E.g. the vectors your code might expose...3 -
What we will miss, if he really softens:
In fact, if the reason is stated as "it makes debugging easier", then I fart in your general
direction and call your mother a hamster.
In short: just say NO TO DRUGS, and maybe you won't end up like the Hurd people.
Of course, I'd also suggest that whoever was the genius who thought it was a good idea to read things ONE F*CKING BYTE AT A TIME with system calls for each byte should be retroactively aborted. Who the f*ck does idiotic things like that? How did they not die as babies, considering
that they were likely too stupid to find a tit to suck on?
Gnome seems to be developed by interface nazis, where consistently the excuse for not doing something is not "it's too complicated to do", but "it would confuse users".
I think the stupidity of your post just snuffed out everything
I think the OpenBSD crowd is a bunch of masturbating monkeys, in that they make such a big deal about concentrating on security to the
point where they pretty much admit that nothing else matters to them.
That is either genius, or a seriously diseased mind. - I can't quite tell which.
Christ, people. Learn C, instead of just stringing random characters together until it compiles (with warnings).
"and anybody who thinks that the above is
(a) legible
(b) efficient (even with the magical compiler support)
(c) particularly safe
is just incompetent and out to lunch.
The above code is sh*t, and it generates shit code. It looks bad, and
there's no reason for it." -
Facing some down - simultaneously somehow as dev and privately.
The dev part partly triggered by another burning project. Our team deep in shit up to the chin... And this unanswerable question: who is to blame? Everyone is working up their arses, but the result is still some sparkling firework ship wreck, that only held together for the demo to the board. It's not that we are stupid or lazy, yet we push some unmaintainable spaghetti, because this shit just gotta work.
Dunno, somehow this object orientation / pattern ideologies were also kind of depressing to me: partly because they smell like attempt to enlighten the inept by stupid receipts - and of course then deep down there's this nagging question if I'm not one of this inept not knowing the newest fashion template from the catalogue..
Then this Clean Code - Craftsmanship shit is bugging me similarly. Liked Robert C. Martin's book, but now I picked up some "Clean C++" and.. I kinda feel dumbed down if they try to sell the KISS principle to a 36 year-old physicist/engineer. Good for them that all our legacy shit und own fuck ups nourish this whole industry of well-meaning advisers. Argh, just fuck it, you priests, sell your obvious calendar mottos elsewhere, they are are just as useful as telling a griever that "rain follows sunshine". - As if they would not some time use the raw pointer that their coworker gave 'em, to ship shit tomorrow? -
Dear Xcode, \n you are out of your non-existing mind! The clunkiness and awkwardness I experience working with you, I attribute mostly to myself, being unfamiliar with the way of the Mac(TM) and far too lazy to take the time to properly set you up - BUT are you sure you need friggin' 14.25 GB free disk space just to perform a little update?
Yours *** -
Fucking linker options on Ubuntu. Somehow it seems to have --as-needed turned on by default. This leads to stripping libraries we had referenced in our target_link_libraries. Then our application won't start because of the unresolved libraries it cannot find in the Rpath, although they would be there. Thank you clever fox.
Now we have to add another stupid linker flag, just to run again. -
I would have wanted to bring up SICP again, with the great big warning about the evil assignment operator and state and all the troubles that ensue (just think: concurrency).
But in a way, nothing has really come up from this or my attempts to dig deeper into "everything is a file/object" (Unix, smalltalk), neither from formal languages or the Curry-Howard correspondence. - Maybe there's just nothing, no firm bottom ground to discover. Like the physicists going for their world formula, but instead of a grand, beautiful symmetry that explains everything, we face a shattered world of (incompatible) theories, that is ever so more complex and chaotic through our theories applied to it. There may not be a Platonic ideal world of ideas, but rather partial constructs explaining some particular perceptions.
Similarly the one perfect programming language to rule them all, the perfect abstraction, pattern is probably just another prepubertal fantasy to be sunk.
So maybe instead of seeking the perfect epiphany, we should go for something quite different: the nagging, brooding uneasiness that something is wrong there, that there's something to be fixed... that even negative feeling would propel us to search further, not to stay in whatever is touted as the real thing.
Such irritations I found with Pieter Hintjens' writings. For example when he actively engaged in conspiracy theories. And I'm still not sure, if he just went off the cliff or he's even right alluding that these theories are an act of sanity, a self-defence against the hidden evil mights. I just don't know. Anything. -
Printer shit continued: So we got this great Lenovo Ideapad with a Windows, so why not print from there? Installed driver from webpage and really printed nicely.
Then I removed ton of Lenovo's crapware + McAfee (leftovers luckily were cleaned by McAfee's tool), so that this shitty device could be used reasonably - device would deserve rants on its own. AND boom, Windows USB printer driver seems broken beyond repair. Printer not even recognized. Shouldn't it all be plug'n'play?4 -
Starting to wonder why I tend to like our QA people so much: they often seem so much saner. Yes, sometimes they quibble as with the complaints about a page that is hidden from the user anyway, but they would usually not creep to deep into the hole creating most unintuitive workflows and abysmal logic.
Disclaimer: We're more like backend devs, but we had to do a UI which was beautifully slaughtered by the CEO messing with it - guess what's happening with the new one - and because of that... thing I already nearly smashed my Mac because stupid entered credentials for updating software would only be applied if you defocused once out of the password entry box. Fucked up stuff like this, which devs meddle with, give up, just shrug it off and dump it on the (l)user.
Or a more recent example: So PM wanted a stupid "Apply to all" buttons on a list that can be filtered. Guess to which items the actions should be applied if you filtered it and you currently only see a small selection in your window! Yes, of course it still applies to all items in the universe. QA guy who's just trying the buttons comes to me: "Hey, you sure this "apply all"-stuff supposed to work like that?"
Third example to end this long QA-praise: So there is this virtual appliance we build and we should support another stupid hypervisor.. and he found the kernel modules I have to activate additionally so we can just convert the existing image without having to create a new build system.3 -
Another hours wasted on debugging, on what I hate most about programming: strings!
Don't get me started on C-strings, this abomination from hell. Inefficient, error prone. Memory corruption through off by one errors, BSOD by out of bound access, seen it all. No, it's strings in general. Just untyped junk of data, undocumented formats. Everything has to be parsed back and forth. And this is not limited to our stupid stupid code base, as I read about the security issues of using innerHTML or having to fight CMake again.
So back to the issue this rant is about. CMake like other scripting languages as bash have their peculiarities when dealing with the enemy (i.e. strings), e.g. all the escaping. The thing I fought against was getting CMake's fixup_bundle work on macOS. It was a bit pesky to debug. But in the end it turned out that my file path had one "//" instead of an "/" and the path comparison just did a string comparison without path normalization.
Stop giving us enough string to hang ourselves!rant debugging shit scripts of death fuck file paths fuck macos string to hang ourselves fuck strings cmake hell12 -
Had one of my spookiest meetings today. Mr git master still had the dailies in the calendar, but he's the scrum master without a scrum and I was the only one to join. Some bitter remarks alluded to the fight with my boss, but otherwise he was mostly going on about how we should build a docker container to automatically build our build system and how to achieve this perfection in his previous company they needed three month - while our current project is already due in December including testing. I don't know.. still - theoretically he seems to know his stuff, but in the end you have to compile shit and make it fly, or at least not let it drown to heavily.
Anyway, awkward silence setting in, when he's still talking on and my boss enters the meeting room. Some heavy sand in the works.
Should I rejoice like them?
https://youtube.com/watch/... -
Hasn't technology become magic - and we ignorant sorcerer's apprentices who can perform a video call to the other side of the globe perhaps while we understand only some bytes of the thousands software snippets that were piled up by us code monkeys to perform the miracle? ...
This however has always been the state of software (for us developers): that this house of cards needs constant care by our hands to not collapse - in constant fear we may preserve the facades while the number of components that interact, the sheer mass of code only allow for guesswork and hotfixes accumulating the technical debt. Yes, we have all that terms for that. The problems are known since the 80s or 60s, so we might be relabeling it once in a while, but mainly it is just: complexity.. or entropy.2 -
So when installing an rpm there is a file collision check. When you add a file to an rpm package with cmake / cpack it unfortunately adds parent directories your file goes into, which will give you conflicts with other packages. But well you have that beautiful feature to exclude directories from being added:
CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION
Now somehow it failed. Turned out it would not work if my path ended with a backslash. Brush my banana! Like "/etc/sysctl.d" is a different animal than "/etc/systclt.d/". - But at least that's nothing against the strangeness of the "mv" command in those respects. -
Everything you own needs to be stored and be taken care of:
Likewise every line of code you commit and push, needs to be maintained (unless it's dead). -
Been using a *nix since about 2004, but becoming very weary of the OS wars. Man it's all the same shit: if you got to dig through the mud of undocumented Exchange API whose support will then be dropped or if you have to support eight different Samba VFS versions with all their gratuitous name changes.
It's all a fucking mess! But someone's got to roll up one's sleeves and get that shit to work.
And then there will always be the next guy cursing your name, because you got it to work and now he has to add some feature to this abomination. -
One of our testers got the brilliant idea of switching the desktop environment to KDE on some debian. Response of our Qt-application: crash! - "Cannot mix incompatible Qt library"
Yeah. And we only want to support five distros in at least three different versions. -
macOS - just nothing makes sense.
You try to go away from the deprecated stuff, use the new shinier API to stop and start services with launchctl (bootstrap/bootout vs. load/unload). And how does this stellar OS thank you for that? By crashing your service. Thanks for nothing.
From developer perspective this whole OS is just such a nightmarish clusterfuck. If you want to set up code signing with some special entitlements and you try to use the provisioning profiles as advertised, it's like pulling the one-armed bandit. It will plunder your coins and sanity. You try to compile it, it fails or the executable will be killed - you enable and disable the automatic codesigning in Xcode, or delete and download you old code signing cert and suddenly it works. It's just random - and you have to perform random walks on the Xcode project settings to make it run. So Apple turned us into Xcode clicking monkeys... -
Just these little things that can drive you insane: TCP should guarantee that the order of packages is preserved, but somehow through a splitting of the message I get them files mangled. OK, might be our own fault, but then I just do a simple grep on the log file, but it won't display anything if I escape the f** dot.
Google it. No I didn't do it wrong, try different quotes. Nothing. Why then does it display the thing if I delete the dot?
Beginning to question my sanity. Grep just. has. to. work.
And that very moment the blinds of the window automatically go up, so the blazing sun blinds us, which as management told us, is not a bug but a feature, protection from freezing bla bla - and the control of the blinds gives me static shocks but refuses to shut them down again.. *sigh*
Just these little things. - Don't know, but I am convinced at the right time, a little mispunctuation or a glitch in a UI could drive a programmer mad. -
git commit -m "The test core dumps, I go home" && git push
(OpenSSL is like running a marathon: It's just some month away and you already forgot how much fucking pain it was. Nah, can't have been that bad. Shit, it is.) -
Back then as teenager meddling around with QBasic I intuitively realized that you could instruct this machine to do whatever I want - now I could stick the Turing-Church-Hypothesis label to that notion, but I think the experience and feeling of that potential power of programming goes without abstract algebra.
The problem of course: What to do with it? First thing we programmed was a digital telephone book. A chess program? - That's still the thing with apps nowadays I suppose. What should it do? Steer a nuclear power plant or recognize cats on pictures?
(As I didn't know what to do with it back then, I turned to physics and mathematics only to get a job all the university stuff was pointless for but required the skills I taught myself as a 17 year old.) -
webbrowser should know 'ls' command. - would be great for the web to support it.
Or am I the only one, who sleepy, coffeine-deprivated, swapped out of multitasking, not knowing where he is, goes for default command to orientate oneself: *ls* - even in a browser addressbar?8 -
On April the 30th the code awakened in me.
From all the overnighters, the pressure it was already as if my brain was a suitable host. Of course it would not compile the code or be any kind of real VM, but all the business logic, all the pesky details of this mutilated code had literally been branded into the biomass of my brain.
I did not know how I kept on going. Amber, caffeine, valerian did not really help. But I staggered from step to step to keep that project running that should never have been begun. -
While ill started with some hack the box challenges. Really addictive stuff. For one opened binary in IDA and changed one assembly instruction to obtain the flag. Felt like a hacker. - lasted only till next challengr3
-
How can Lenovo produce such a shitfest as this ideapad laptop. I lack the swear words to describe in how many ways it sucks. Looks nice from the outside, light. But even after deinstalling all Lenovo crap ware and McAffee, reinstalling Windows it was still so slow that I wished I still had my Win 3.11 on that 66 MHz (+33MHz Turbo Button)! All this waiting if you start an application or open a browser tab - it let's you hate computers, want to punch that piece of Pferdeäpfelsmoothie.1
-
!rant
Just looking at Cap'n Proto. Too impressed by the code, Kenton Varda... Feeling so dim, just a little light. -
Linking problems are really fun... Like using gdb in the dark on incompatible exec or without debug symbols:
You change the order of the libraries or switch to dynamic linking for one of them and suddenly it works3 -
Bob Dylan:
Next one for John Carmack, please. (at least according to http://kotaku.com/5975610/... ) -
THIS is powering the internet:
"[...] was a protocol number, similar to the third argument to socket today. Specifying this structure was the only way to specify the protocol family. Therefore, in this early system the PF_ values were used as structure tags to specify the protocol family in the sockproto structure, and the AF values were used as structure tags to specify the address family in the socket address structures. The sockproto structure is still in 44BSD (pp. 626-627 of TCPv2) but is only used internally by the kernel. The original definition had the comment "protocol family" for the sp_family member, but this has been changed to "address family" in the 4.4BSD source code. To confuse this difference between the AF_ and PF_ constants even more, the Berkeley kernel data structure that contains the value that is compared to the first argument to socket (the dom family member of the domain structure, p. 187 of TCPv2) has the comment that it contains an AF_ value. But some of the domain structures within the kernel are initialized to the corresponding AF value (p. 192 of TCPv2) while others are initialized to the PF value." Richard Stevens 'Unix network programming' -
1. When we struggled for month with using OpenSSL, fixing our server, then bit of Sqlite3 fuck ups. Was it even right to use those libs, not write shit ourselves, if it is such a hassle to use them, or is it only us being too stupid to read the docs? Project seemed 'finished' for over a year. Really wore us out to get it out there.
2 Our board constantly announcing the success and striving of our pentester department. Makes me feel I am at the wrong place. No dynamics, growth, just too much stupid work to plow through.
3 Starting a bit with CTF's. Realizing I am hardly at the entrance of the rabbit hole. (And also is it even the right thing going down there? My Luddite tendencies also shining through...) Not mastering all this tools. -
Fucking Apples hold my bananas! Collegue and me see our naïve thought refuted that a commercial vendor, most valuable company would create an OS that is not as split and fucked up as Linux distros.
It is hard even where to begin, so deep is the shitfest they are putting developers through with Mojave and Catalina.
Our testers weren't hardly able to install Catalina beta 6-7. Behavior of kernel extension and full disk access varying on a daily basis. Fixing these bugs is like nailing a pudding to the wall.
Makes me wanna quit software. Whom should you trust if even your OS is flaky as hell?8 -
Why avoid? Maybe it's part of the experience. Lets you appreciate a good company even more.
(That said my first employer was a bit.. twisted. Small, workaholic family, hands on. Lots of pressure. Probably drove some into depression or burn out. Learnt a ton though, and maybe made me a bit more thick-skinned) -
Do only developers have to do such tasks like Cinderella sorting out the lentils from the ashes?
Poor co-workers
* who had to program against the undocumented closed, ever changing API from Exchange Server, supporting over a decade old versions
* who had to compile a c++11 compatible clang or gcc on some sick old OS and almost got it working with compiling a fresher gcc with one that got stuck in one of the build stages. -
One nightmarish project that was doomed from the beginning, had me as the sole developer. I could hardly sleep when we began testing on a separate test system, but with (nearly) all the config stored in shared memory and copied from the production system, I dreaded, half awake, that the production server data base connection was still configured in the test system and that it was shooting all it's test data repeatedly to prod.
Finally drove to company in middle of the night at 4 o'clock. Checked everything was OK, tried to sleep 3 hours before the start of the work day.
This system also had the most hideous memory corruption in some shared memory that was used across several processes and should have been thoroughly protected by a mutex, but somehow, sometimes this crucial map, that was used to speed up the access to all the customer data just contained garbage.
Still haunts me to that day. (Like xkcd's unresolved tension of a non-matching parenthesis - an unresolved bug. -
The CLI is my $HOME, the place where I feel most comfortable. Yes, I despise bash syntax and if it's used for actual production code (with #LOC>10³) - like we do. The pipes, grep, awk - it's usually a breeze.
BUT yesterday my illusion of the superiority of my CLI just got shattered badly: There was some zip with a core file I wanted to investigate, but gunzip and zcat just were unable to decompress it, while with a simple double click I could open the freaking folder. -
nice read:
https://lukasa.co.uk/2016/12/...
(would love to know what happens to radar/bug report, but could not retrieve it) -
That I don't know it.
[The ambiguity is on purpose - actually that would hold for any computer language: that it will never have the flexibility, precision, metaphorical power, somnambulistic confidence in dealing with ambiguous constructs or meanings that natural languages have.] -
Annoying monday - nearly no code but useless things like trying to use a Windows keyboard on some old MacOS X
On the other hand: for the first time I wrote a one line for loop in bash that worked - without googling!1 -
Joe Armstrong.
Because he gave us Psychobitch (https://youtube.com/watch/...)
His British humor,... just watch some talks..1 -
Worst documentation: macOS developer API, e.g. the already deprecated kauth API still have documentation like this: https://developer.apple.com/documen...
Really good on the other hand, this: Ordered the stuff, waited 3 months, flashed the NodeMCU and assembled it within 10 minutes:
https://luftdaten.info/feinstaubsen... -
Hell, I always thought I was a team player, but is it a great week being the sole developer (all the other on vacation). So I didn't get interrupted all the time, read overblown PR. Still, even in their absence I spent about three days fixing their build issues and PR's, but I could sit down and read the code, some documentation to get a better understanding why it all sucks and what we should do with our pain in the ass build system.
It's really a blast, deleting some stupid code, removing superfluous dependencies and above all leaving snarky remarks in the commit messages and code comments. Just letting some steam off. Code is where my devrant is. -
TIL that Debian package names are not allowed to have underscores in their names. Toast my tomatoes. As if file name conventions, like discouraging colons, would not be enough, you just added another useless bit of entropy to all the clusterfuck information just because you established a naming scheme yourself where you delimited the versions and date with an underscore from the package name.2
-
Yes you can put a dent into the universe.
This one hippie at the Sea of Galilee, has maybe done it, but left disciples who taught others the Sermon on the Mount with the halberd. The disciples of the other one in the sandals from Silicon Valley now make the world happy with their small white devices, almost cute, but no less annoying. -
Spend like 3 weeks in mem-checking with valgrind and ASAN, because there seemed to be some leaks. So painful and scary. You loose all confidence in your software, the checking tool, your own sanity.
Some spurious result prevailed, could only move it around. Boss could not reproduce the problem on his machine; Ubuntu 18 with GCC 7, mine was Debian 9 with GCC 6, so I tried older Ubuntu with GCC 5. Also no problem.
Fuck it, I'm switching to clang. -
Audience question to Uncle Bob: Which parts of the code do you unit test? What about code coverage?
Uncle Bob: Well (chuckling).. You test the parts of the code that you want to work.