AboutEmbedded SW dev, from bare metal up to PC based systems
SkillsC, C++, Java, Python, Perl, Lua, Subjective-C And whatever is needed or comes in handy. Doin' what I can with what I git
Joined devRant on 4/26/2017
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
The world is talking about AI, self-driving cars, big data, IOT and there are roboter driving around on Mars.
And here I stand, trying to figure out why a small change in a silly batch-script works on Windows7 and raises an error on Windows XP.
Stop making "aesthetic" changes in modules you're not working in. Your naive "add proper..." commit just brought down the whole system.
Thank you for half a day wasted and a pissed of client.11
Just got an online account for an insurance:
Allowed characters for password are a-z, A-Z, 0-9.
I tried special characters, maybe they just forgot to mention them. Doesn't work, "Password not valid".8
IT dept releases update for Cisco Jabber for work environment and describes it as a minor update.
Me installs new version...
- completely new UI
- loses saved login credentials
- loses connected devices
- loses all settings
- loses history
My definition of "minor" is "slightly" different4
I'm a bit late I know (only 10 years or so), but I never use windows explorer and especially not the home directory with its ridiculous location... but why the heck is it not possible to access the home directory from windows explorer? There are bullshit categories like videos and music, but no direct link to the home directory. The small arrow at the "root" of the adress bar seems to be the only way to access users home. WTF?14
My colleague just made a very subtle rant in real life:
"I wish we could become more software developer and be less software producer"3
A dev life in Queen songs:
„A Kind of Magic“ - Build successful
„A Winter’s Tale“ - Key Account Manager visits customer
„Action This Day“ - Release day
„All Dead, All Dead“ - System down
„Another One Bites the Dust“ - kill -9 4711
„Breakthru“ - 10 hour debuging session
„Chinese Torture“ - Microsft Office
„Coming Soon“ - Client asks for delivery date
„Dead on Time“ - shutdown -t 10
„Doing All Right“ - How's the progress on the new feature?
„Don’t Lose Your Head“ - git push -f
„Don’t Stop Me Now“ - In the zone
„Escape from the Swamp“ - Hand in resignation letter
„Forever“ - while(1)
„Friends Will Be Friends“ - friend class Vector;
„Get Down, Make Love“ - No rule to make target "Love"
„Hammer to Fall“ - Release day
„Hang on in There“ - 2 weeks until release
„I Can’t Live With You“- Microsoft
„I Go Crazy“ - Microsoft
„I Want It All“ - Google
„I Want to Break Free“ - free( (void*) 0xDEADBEEF );
„I’m Going Slightly Mad“ - Impossible feature requested
„If You Can’t Beat Them“ - Impossible feature promised by sales
„In Only Seven Days“ - Impossible feature ordered
„Is This the World We Created...?“ - Philosphic moments
„It’s a Beautiful Day“ - Weekend
„It’s a Hard Life“ - Weekday
„It’s Late“ - Deadline was last week
„Jesus“ - WTF?
„Keep Passing the Open Windows“ - Interprocess communication
„Keep Yourself Alive“ - Daily struggle
„Leaving Home Ain’t Easy“ - Time to get up and go to work
„Let Me Entertain You“ - Sales meets customer
„Liar“ - Sales
„Long Away“ - Project start
„Loser in the End“ - Dev
„Lost Opportunity“ - Job ad
„Love of My Life“ - emacs/vim
„Machines“ - Computer
„Made in Heaven“ - git
„Misfire“ - Unhandled exception at Memory location 0xDEADBEEF
„My Life Has Been Saved“ - Google drive/Facebook
„New York, New York“ - Meeting at customer
„No-One But You“ - Bus factor = 1
„Now I’m Here“ - Morning rush hour
„One Vision“ - Management goals
„Pain Is So Close to Pleasure“ - NullPointerExcption
„Party“ - Delivery completed
„Play the Game“ - Customer meeting inhous -
„Put Out the Fire“ - Support hotline
„Radio Ga Ga“ - GSM/GPRS/UMTS/LTE/5G
„Ride the Wild Wind“ - Arch Linux
„Rock It“ - Linux
„Save Me“ - CTRL-S/CTRL-Z
„See What a Fool I’ve Been“ - git blame
„Sheer Heart Attack“ - rm -rf /
„Staying Power“- UPS
„Stealin’“ - Stack Overflow
„The Miracle“ - It works
„The Night Comes Down“ - It doesn't work
„The Show Must Go On“ - Project cancelled
„There Must Be More to Life Than This“ - Philosophic moments
„These Are the Days of Our Lives“ - Daily routine
„Under Pressure“ - 1 day until release
„Was It All Worth It“ - Controlling
„We Are the Champions“ - Release finished
„We Will Rock You“ - Sales at customer
„Who Needs You“ - HR
„You Don’t Fool Me“ - Debugging session
„You Take My Breath Away“ - rm -rf /
„You’re My Best Friend“ - emacs/vim4
Few weeks ago: Please write the system design docs for feature X of the new project Y. We need it in two weeks.
Few days later: Stop working on the docs, the customer hasn't yet bought that feature.
Few days later: We found that we included that feature in the main contract already. We need the docs in two days.
Today (docs delivered a month ago): There was a misinterpretation of the requirements and the contract, the customer hasn't bought the feature with the main contract, it has to be sold additionally. You didn't do anything 'til now, did you?
It would be really nice, if sales could finally decide what the customer bought and then tell me about the requirements that are already covered in the docs anyway. But I fear it could end in asking the customer 🤪🔫2
How is it called when I rant about something my colleagues experienced and I just supported his debug session? Third party rant? Anyway, here's the thing.
Other team built some project specific code right in the heart of their software, which in itself would be worth a rant. But as you might guess, it's getting rantier.
For a new project the same code is used, but needed some tweaks. Now guess what happened:
1) Someone took the code, refactored it, made project specific stuff configurable, everything works fine now
2) Someone changed the code completely for the new project, everything seems to work fine for 5 months, then the old project needed a new release 💣
The world is full of write-only devs. People who never look at the code they create or change.
That's the only explanantion I can find for the fact that everytime I look into some code I have never touched or haven't seen for a while, I instantly spot at least one error that is so elementary, that there is absolutely no chance to miss it.2
You know what's rocket science? Serial ports.
Every freakin' datasheet states RX/TX but not from which side of the connector. Some look at it from the inside (RX for own receive), some from the outside (RX for receive of the counterpart). But never ever try to explain what is what, that would be too easy.
On literally any first attempt of connecting devices in my life it was wrong. And then you switch 'em and it's still wrong. Then you switch again, and it may work. Or you have to switch a few times more, you never know.
Those freaking bastard interfaces from hell.4
Sitting in a meeting. PM asks if we can go with the schedule management has agreed with the customer.
So, now what do you expect us to say? We can say no, but if it's already settled up the hierarchy levels, it will not have any effect.5
I somehow like it when some of our sales or project guys have to ask the customer what we sold 'em.
I will never understand why they humiliate themselves that much instead of getting their shit straight at least for the next proposal.
Thanks Adobe for the such clear icons, I really appreciate your use of descriptive symbols (one is for "view full page", the other is for "activate single page view").8
We are all working our asses off, but the backlog grows and grows.
Now management came up with a really creative, groundbreaking and clever idea: We should work more, so we can get shit done.
I think there may be some jobs vacant in the near future.2
Experience, intuition and 50-200% risk premium.
For me it is important to not put too much effort in it, as the developer estimation is usually mangled through sales and management anyway and doesn't have much to do with the final price.
And as nobody really bases internal budget and schedule on it as well, it's kind of pointless in most cases.
Today I decided that from now on for all strings that need to be initialized and don't need a special value, I will assign a TIE-fighter "|-o-|".
That will be my legacy.5
Two weeks sick and several meetings where canceled, bugs haven't been touched the slightest bit and requests from customers have been deferred until I'm back.
That's what I call a low bus factor.
2nd part to https://devrant.com/rants/1986137/...
The story goes on...
After I found more bugs that seem to be related to the communication break, and took a closer look, I sent detailed logs of my research and today we had a conference call.
"We have 2,5 million user, our system is widely-used and there is no plan to change it" they said.
And "We cannot reproduce the issue, but even if there is one, you will have to work around the problem, because we cannot make changes on our side" was one answer
As well as "If we would make changes, we will have to re-certify everything"
So I said we told 'em about the issue to let them improve their system. And I can work around it, I already figured out a solution for my side, but if there is a bug, they'd better fix it for future releases.
And with my additional research I have a bad vibe of some kind of memory leak involved on their "certified" implementation, and that could trigger various other problems.
But it is as always, if I try to be nice, I just get kicked in the ass. I should really be more of an asshole.
"Our side is certified, yours is not" ... they yelled from their ivory tower.
Then why does your side send unreasonable responses after a few dozen identical requests and doesn't respond at all shortly after?
Maybe because the certification tests only cover 10-15 requests consecutively?
Certify my ass...
You cannot completely delete a windows service, as long as the services panel is open. The service stays undead and prevents any reinstallation until the services panel is closed.
Separation of GUI and business logic does not apply here, because it's kernel logic, right?
But at least you're consistents, there is a similar issue with not installing USB drivers if the new hardware dialog is open.4
Project management 101:
1) For a new project, pretend it is similar to a project in currently in development
2) Proudly state that everything can be copied from the older project, so the schedule of the new can be tightened
3) Calculate the new schedule based on the "just copy and paste" effort.
4) Now the new project will be finished before the older project
5) Enjoy the applause from upper management for the successful project that hasn't even begun yet.
No, this does not belong in the joke category.
That's gonna be fun...1
Customer complains about an issue after a software update. The head of department himself tested the update and got an error message.
Me looking at the logs. Ok, that's an issue, but based on hardware failure, customer should fix his hardware, no relation to the new software.
But surprisingly close to the software update, which piques my curiosity.
Me looking at older logs ... same issue. EVERY FUCKING DAY. For months. The corresponding error message only appears if a user is logged on, so quite a few people have seen it. Obviously nobody cared. Maybe we just ditch error messages, it'll save lots of work.
Fuck you NXP and your market-penetrating proprietary bullshit solutions where there's plenty of standards around.
That's all. Have a nice weekend.
Just wasted nearly a day because I got work assigned that has alreay been done half a year ago and nobody knew it.
It's really hard to find a feature to remove, that's already been removed and the truth is only to be found deep within the version control.
Come on, how hard can it be?
On every fucking TLV data structure I get to handle, the hobo who defined the structure obviously stopped reading the TLV specification after the second sentence.
Fucked up tags, misuse of length encoding, and as a result no real TLV parser can handle that crap. Workarounds and manual parsing all over the place for *every* *single* interface.
Get your shit together, and if you don't want to handle the complex parts, then at least make the simple types right.