- It hangs all the time for a few seconds at a time,
- The search is moronic (how about you look on the server and on my computer at the same time instead of hanging for a while and then displaying that dumbass message offering the option to search on my computer instead when there's a problem with the connection?),
- Switching to the unread message view regularly results in a progress doofer that never disappears until you switch to a different view and switch back
- The message list font size gets corrupted by moving between Windows of different DPIs forcing you to switch to a different folder then switch back again to make everything readable
- It asks you whether you want to save changes just because you've clicked a link in a calendar appointment
- Got thousands of emails? It's slow, slow, SLOW, SLOW(!!!), SLOOOOOOOOOOW!!!!!
- Too many modal dialogs
- It's clunky as hell when juggling calendar appointments, booking rooms, etc.
- When opening a meeting series it asks me whether I want to open the whole series or a single meeting every single time. Can I just have a modifier key for this, please, so that I can open whichever way I choose without being prompted?
- Inconsistent and unpredictable behaviour when it comes to inserting images as attachments versus inline in an email
- Losing messages in conversation view
- Difficult to follow conversations/find all messages if you don't use conversation view(!)
- Inconsistent behaviour around contact auto-completion: sometimes people end up in the auto-complete list, sometimes they don't
I could go on. I won't.
10s of thousands of emails? Not slow.
Hangs for a few seconds? Not in my experience.
Whole series vs a single meeting? Only when editing, which makes sense. Opening to grab the conference ID? I don't get asked that question.
I've had to use Outlook in some way for the last 20 years, and I just live with it, but I'm also saying... what you describe hasn't been normal for me for a long time, at a lot of different companies. Maybe it's something to do with whoever runs your Exchange..?
Well it's 365 so that, unfortunately, is Microsoft.
Every SMS and email client that has 'most recent on top' as the only view drives me f*g nuts.
I want my oldest conversations on top so I can see which ones have been awaiting a response or are done and can be archived/deleted, but apparently that's not how anybody works anymore.
There are a lot of poorly written add-ins out there.
Even after all its feature and popularity I find it extremely hard to use and often end up wasting hours trying to create a simple graphic. As a last resort I always end up booting Windows just to use Photoshop to do the same. I have been trying to move away from Windows to linux and so far I'm super happy with everything. But Photoshop is the only reason I have to keep Windows alive (or atleast use wine)
Fortunately, Krita has gotten extremely good, even for photo work. If anyone has a shot at clawing back some Adobe market share, it's then.
Adobe is pricey but that money is pumped very well into UI. After playing with some of the open source alternatives... yea, $55 a month is now cheap to me since I now know what crappy UI and ass backwards workflows really look like.
I definitely get that if you're already used to Photoshop then GIMP's gonna be an adjustment (and vice versa), and my GIMPing is admittedly not very complicated (mostly just making memes), but it's just weird to hear of people who think that Photoshop's actually easier to use given that I've experienced the exact opposite by pretty much every metric.
[0] https://en.wikipedia.org/wiki/Imprinting_(psychology)#Baby_d...
It took me some time to adjust, but yeah I felt the same.
> I definitely get that if you're already used to Photoshop then GIMP's gonna be an adjustment (and vice versa)
In fact the argument of people finding GIMP unintuitive is that Photoshop is better.
I mainly complain about GIMP's updates breaking changes though.
I think the basic set of tools are pretty easy to use, and the one or two other windows you need open (like the tool-specific settings) are also pretty understandable. When I stumble upon something new I often find pretty good official docs on the topic.
Regardless I do appreciate the hard work the guys have put in. I feel like such an ingrate to make comments like this about free software. I guess it's time to find an online course and learn it properly and if I still don't get it then that's that.
Their "Export and overwrite" menu makes it very convenient to do quick edits where you only care about the raster, and the split avoids the above mentioned stupidity when working on bigger projects.
I find myself spending hours to do the most simple of tasks. Anytime I have to search for a tutorial on GIMP, I cringe. I am waiting for that UI/UX fork to come out for Mac.
What other alternatives are there that work on Mac besides Inkscape and Krita???
Also the outlook/skype/teams/lync universe of communication tools is laughably inconsistent, it's very difficult for me to do very simple tasks in these tools.
Program that wasted me 100 hours: using LaTeX to make the poster for said scientific paper.
LaTeX is great for when you need to focus on your content and don't have much time to spend on the presentation. However, once the presentation is the entire point, LaTeX is not the right tool.
Well, except if you like boring posters.
Video is included as a separate attachment in the email sent around.
More seriously, the absolute worst developer experience I've ever had was a weird proprietary environment called "OpenAT" for a mobile module system. Admittely we were in the beta programme because we needed features, but every new firmware update would fix some features of the operating system and break others. At one point while trying to debug terrible sound we noticed that the volume control wasn't at all linear but a sawtooth: the top few bits were getting lost somewhere. Development required Eclipse, and the reboot-download-reboot cycle took several minutes. No real JTAG, only debug logging over USB. Crashes would, however, lose the log buffer, so you couldn't be quite sure where the program crashed, and all the important bits were real-time so couldn't be single-stepped. Debugging all that was extremely slow.
A hundred hours is only just under three work weeks. It's very easy to get led into a dead end that wastes that much development effort on a feature that turns out to be infeasible or a bad idea, or an intractable bug. I think I've had one of those incidents at every job, not necessarily every year but frequent enough that they're not all memorable.
There are upsides and downsides. The challenges in a game are designed to be overcome, but the satisfaction of solving real problems is even better than solving puzzles in-game.
Sometimes the parallels for me are uncanny. I'm faffing about with OpenSSL right now and it feels like nothing so much as a badly designed game sub-system. Can somebody please fix OpenSSL so I can get back to the core game please? :)
I used to say that Unity3D is Minecraft for programmers.
I usually play it with DfHack to handle all the labour assignments automatically, and then I play it usually up to the point that I'm tapped into a magma shoot and flooding the magma with water to obtain obsidian.
Then I lose interest, and play the same biome on adventure mode where I attempt to find the ruin of the mine I created before and plunder it.
(An unloaded train is clearly a "hole" charge carrier..)
The other 900 hours were great though!
:D
My worst experience was when I was on a cross-country train writing code for a project whose database was mysql. No internet, intentionally. Something happened with one of my inserts (can't remember what exactly) and I had to restart mysqld. Problem was, with the bad insert, mysqld took longer than 30s to start, which forced systemd to restart it because of a default, undocumented setting to restart a service if it's not up after 30s. Again. And again. And again. Nothing in the documentation hinted that this was a feature of systemd anywhere, and I was stuck troubleshooting that nonsense instead of just writing code.
Systemd is just filled with undocumented crap and features that shouldn't exist by default, leading to headache after headache after headache. Such a pain in the ass.
Nothing except three paragraphs in systemd.service(5) (TimeoutStartSec=, TimeoutStopSec=, TimeoutSec=), with references to systemd-system.conf(5) where the defaults are described. I wouldn't call that undocumented. Whether it should exist by default is another question; on balance, I'm glad it does.
Or this: https://unix.stackexchange.com/questions/227017/how-to-chang...
Or this: https://github.com/systemd/systemd/issues/5773
Or: https://github.com/systemd/systemd/issues/3901
Or: https://github.com/systemd/systemd/issues/2047
I don't remember seeing any documentation at the time, but I'm clearly not the only one who's had issues with this exact problem. The last one has recent examples of people not being able to find it, and understandably so. Their documentation is shit, fullstop, and no reasonable service should restart in a loop by default after 90s. That's just asinine.
It's rather unlikely that the first issue, which is an ordering problem during service shutdown, has much in common with timeouts during service startup, which you have described as your original issue.
The Stack Exchange question is a straightforward how-to for adjusting the timeouts.
5773 requests a clarification of the documentation of timeouts and signalling behavior.
3901 is a case of misplacing the timeout directive.
2047 is a sort of philosophical problem of reporting uniformity vs. consistency with manual configuration. The systemd team prefers the former, whereas I would prefer the latter for not violating the principle of least surprise, although I understand the reasons for choosing the first option.
Anyhow, I still don't see good support for your assertion of the complete lack of timeout documentation, just tangentially related distractions. A complex set of problems, and service management does qualify, will have edge cases, insufficiently clear documentation, and outright bugs, which is why software is never finished. Older init systems had all of these, but they didn't give you the tools to attempt to rectify the problems, so it was all more or less swept under the rug. Using a facile "shit, fullstop" characterization therefore tells me more about your views than the actual technical merits or documentation quality of systemd.
Hell, to troubleshoot that issue, I even ran something like a `find / -exec strings -a '{}' ; | grep timeout` and found nothing that ended up being helpful. But I absolutely had some form of documentation, again likely the last link I provided which isn't simply a philosophical issue when it provides misleading information that would have ultimately fixed the issue if it gave more informative output!
You admit yourself that the documentation can be insufficiently clear with bugs, and it's true: systemd happens to have lots of time killing bugs. The whole point of this thread.
You're missing the forest for the trees, friend.
I've learned this lesson many times. The WiFi is not reliable, the offline documentation is spotty (with the exception of emacs), and you'll waste more time than needed trying to do things the wrong way instead of searching online for solutions later.
No new code on the train. Optimise existing or fill in some TODOs. No new code on the train.
• Android programming. Tried it once, wasted many days trying to make sure the app works on all phone models ranging from $10 to $1000. There were some hardware-related parts that are poorly standardized and abused by the manufacturers a lot. And yeah, the $10-$1000 range coverage is a bit too much for such a poorly designed platform.
• Inkscape: if you are a perfectionist who regularly checks the SVG sources generated by Inkscape, then... you may develop insomnia. The bloody thing will stuff the file with garbage by some 90%, and will get all your coordinates un-rouned to some unreasonably distorted numbers. No, it's not the "floating point thing", it's worse. A few times I ened up writing up the SVG file by hand from scratch, while checking it in the browser. Inkscape is outrageously bad.
Android Studio and Gradle can both die in a fire - how anyone manages to actually write a decent app with those two, is completely beyond me.
Compilation of deep learning libraries from source on Windows -- don't do it.
Tikz -- LaTeX drawing "language". The images produced can be stuninngly beatiful, but the manual has 1200+ pages and it takes forever to become productive. If only journals accepted hand-drawn images...
Also audio libraries on linux. ALSA vs whatever. Had a lot of issues with my particular hardware & Arch.
Also way back when, X itself. Back when it was likely to not work on many systems (~2001). I spent so many hours going back and forth to use my friend's computer & internet to Altavista some help.
Their proprietary drivers suck and I much prefer using the default Linux ones... but the performance just isn't the same and I always end up relenting and installing their terrible software
To be clear, this isn’t a failing of the software per se. PowerPoint is powerful and lets you do a lot of stuff, but I took desktop publishing lessons in high school, and I’m a bit obsessive to start with. I just have to have everything lined up and evenly spaced and just so. Which PowerPoint lets you do easily enough, but then you need to add another box to your diagram... and resize and reposition everything more or less manually.
Similar story for Word, which almost lets you do professional(ish) documents once you know where all the typesetting options are hidden. I’ve given up on Word for technical documents and now use Markdown + pandoc to convert to Latex and then pdf.
Besides that, Powerpoint is pretty good if you actually want to do a presentation.
Everytime I can go away with a very simple presentation I do it, but for some reason we are partly judged on powerpoint appearance. I once did an animated background for a presentation as a joke, and was praised by everyone for it instead of my team being blamed for doing useless things on work time.
And I don't really see an alternative. It's more of a cultural issue.
I have a hard time using word, and corporate templates used to be good and complete but aren't anymore. Fortunately we usually have competent secretaries who do the formatting and some editing work.
For less official work I use markdown or latex most of the time.
If your audience doesn't need pixel perfect, don't do it. In my experience, the speed of adapting a PP presentation is more important than it's "beauty" by some abstract definition.
Aesthetics help to be taken seriously. But are you delivering the content or the design?
At work: saltstack - a machine provision framework that's trying hard to sound cute (pillar? grain? what the hell are they?) while making you write jinja templates which generate a yaml file while calling arbitrary python functions in a remote server, which is then sent to another remote server to be transformed into a sequence of commands in arbitrary order. Good luck debugging anything.
Mostly because it makes you think you can do anything, and you can. It's a rope to hang yourself with.
While Excel is a great prototyping tool, it's really not great for production use. I've seen so many financial calculations attempted on Excel that ended up creating a huge ball of spaghetti, references going all over, VBA code mixed in with DLLs, VLOOKUPS all over, sometimes $A$1 sometimes A$1 (copying behaviour), huge Rube Goldberg contraptions.
And people love it, they often don't think about maintainability or ease of understanding for newcomers.
bondspricing_final_2_withswaptions_final_final5.xls. In a folder with 25 similarly named files. Good luck tracing the diffs.
But I guess that's not specifically Excel that causes this, it's people not understanding versioning.
Version control has been "solved" for the better part of 20 years but the tools are awkward and only make sense if you're a software developer.
People unironically suggest you should learn more about tree structures to understand and work with git. That's just about acceptable for developers, but for non-developers that's a complete no-go.
One day there'll be a killer GUI for git or svn (or even just basic whole-file linear version histories) but until then, people are doomed to email files named like Presentation_FINAL_2_EJB_Edit.xlsx sitting under a "FINAL - DO NOT DELETE" folder.
(How it was explained to me once... that person swore they were worked to the bone to keep everything updated but they were SO inefficient and refused to listen to any constructive input because THIS IS HOW I HAVE TO DO IT.)
Webpack - I ain't no frontend dev, coming back to it episodically to discover that FooBarPlugin is now BarBazPlugin, moved from alice: setting to bob:, XxxPlugin just stopped working at all and unsupported (after like 9 months), and ZzzPlugin now nukes the entire dist/ dir as a side effect.
XPS 15 9570 fans, they're controlled by BIOS and start at 45C specifically to annoy people to no end. So under Linux, after much googling, you need to build the dell-bios-fan-control utility which sometimes works, sometimes doesn't, in shamanic ways. E.g. running lspci resets fans and they spin up again. Load kvm modules, spin up again. I've spent probably way more than 100 hours to make the laptop quiet.
Some of its many random crimes againt humanity:
* Delete irrecoverably obliterates a file from history.
* The function that you should use instead of delete is almost impossible to find.
* If you do use that function, it is so buggy it causes corruption in your database, effectively obliterating the whole project.
* Acces rights management is insane. Never seen anything like it. It took 20 minutes of calculating effects from interfering rules to give someone access to a file without removing some other random person's access rights.
* Gui looks like the win31 era, and is so bad people prefer to manually update the database. Which was more trustworthy anyway.
* Multiple tree structures representing data blobs. Only one represents files. It is possible for the later part of a checkout to accidentally overwrite the early part.
* I've witnessed a team spending 6 months merging 2 weeks of development. 100 hours doesnt come close to the time wasted.
* Storage is an oracle db for metadata, and a file system for data. No deltas, changing 1 byte in a 1gb file writes out the whole gb.
* Commits over multiple files are not atomic, but the gui tries to pretend otherwise.
Now the weird thing was, it was so bad, management did not actually believe a product could be this big of a waste. Even when multiple developers gave it as a reason for leaving the company, they were brandished as whiners and no attempt to even validate the truth of the statement was made. Software stockholm syndrome is actually a thing.
But sometimes, it seems to work ...
At some point they redesigned the UI and it's been a horrible experience since. It hasn't wasted 100 hours, but it certainly feels like it: - It takes multiple tries to delete files or select them as read. If you select the options to mark as read, or delete a message. For some reason it 'forgets' that I've done this when I exit the browser, and so I usually have to perform this operation at least twice. - There's some sort of annoying animation that pops up when the inbox loads. Why?
I have been running Ubuntu for about 6 years and have had less day-to-day config or issues than Windows had.
The only issues that stick out are either trying to use apps that haven't been maintained or trying to do something Linux just isn't good at (games).
I use Windows 10 for games, but day-to-day I am on Ubuntu 18.04.
Still, I vastly prefer it due to the greater ability to customise my graphical environment based on my own preferences and ergonomic needs. The biggest advantage for me is being able to choose my own window manager. I use bspwm + sxhkd now, which I haven't quite mastered, but has allowed me to choose how it works, rather than forcing me to adopt its own vision.
I even split my time between a MacBook Pro and my Linux laptop for ~4 years just to try it out. OS X is almost hassle-free, and relatively well-designed, but not as openly customisable.
The biggest time sinks on desktop Linux for me have been the usual suspects:
- graphics
- monitors
- sound
- poor battery life
- wifi (although I have not had issues since I adopted iwd)
- sleep/hibernate (or rather, awakening from them reliably, 100% of the time)
- and, of course, having to deal with outsiders who expect you to have things like Adobe Acrobat, and then you have to find a workaround or go to the library to use a Windows box.
I admit that some of these are self-inflicted, and would likely not be a problem if I just used something like Ubuntu in its default setup.
For example, HiDPI scaling works great on GNOME, but KDE doesn't scale a lot of margins, which makes it look cramped. GNOME's window snapping stopped working for me in a recent update. It's made me contemplate running WSL on Windows many times, but at the end of the day I'm still on Linux because I prefer the overall experience.
(Why I currently only run Linux on servers)
While I do get a rush from being productive it can be exhausting to always be 'on'. Games are one way to turn 'off', bring some variety to life, and experiment without guilt. Just remember that you don't have to finish the game or win every match.
C++ compiler (or even better: linker) errors. They are just not meant to be read by humans, lacking any pointers on what's really the issue.
Fman Build System (fbs) helps quite a bit, I've found, but there are still more often than not some really annoying rough edges (not to mention that Windows' file access performance is abysmal, so startup times for a PyQt5 app are anywhere from multiple seconds to a full minute on Windows v. instantaneous on Linux).
I've been looking into .NET Core w/ Avalonia as a potential replacement, both because it's easier to cross-compile and because hopefully being more designed-for-Windows will make it less of a royal pain in the ass. Not being subject to the GNU GPL is a nice bonus (for internal stuff this ain't much of a problem, but I generally prefer my FOSS projects to be as compatible with as many other FOSS projects as possible; I'd rather proprietary software be able to "steal" my work than prevent non-GPL FOSS projects from being able to incorporate it).
I suspect the Sublime guys went the right way, have a very thin UI layer for each platform and a common backend.
This abomination has the ability to put more than decent computer into a miserable slug. I cannot imagine how much my client would have saved in productivity from all its employees and contractors if that thing was uninstalled.
I've built a lot of useful software but there have been years where I've worked on projects that nobody ever used or will use. Half the time the cause is the dysfunctional organization that I'm working for, that doesn't understand their responsibility or won't listen to good advice.
The other portion of the time it's a side project that I never finished.
When I had to work with it on a semi-regular basis I kept this list of WTFs that I'd add to each time I finished tearing my hair out trying to fix some seemingly simple thing https://github.com/bourbonspecial/AccessFail/blob/master/why...
3: Windows/Symantec Defrag (pre-Vista era) When I had 10-40GB hdds it used to be mesmerising watching the blocks fly around the screen. Eventually I find something else to do and pretend the computer's broken.
2: Macromedia/Adobe Flash. Sometimes animations just didn't want to work. Tweens are notoriously random with complex drawings. Delete and start all over again.
1: Editing HTML after using a WYSIWYG editor. Code clean-up. It takes ages.
Never really thought about the why.
If you want to make sure no one ever reads a document, put it in Confluence. Unless you've bookmarked it, you'll never find it again, let alone anyone else.
worst: confluence, bottom: desktop office suites, still bad: google docs
Microsoft Teams: Same as above, but with multiple login prompts each time.
Jira/Confluence: I swear every click/hover requires a network roundtrip to the server because that's the only way it can be so sluggish. Also, 30s loading times.
Webpack/Babel/Parcel/WhateverJS: Either kill me or kill IE so I can stop using these tools to get even a moderately modern stack.
I imagine if one were to add up all the estimated time wasted using that system and compare it to writing a client agnostic one from scratch it would probably turn out to be a massive saving.
It took me two weeks of troubleshooting, cross-compiling binaries and reverse engineering the source code, until I figured out that I wasn't doing anything wrong - Synology had actually changed their version of sshd to add all sorts of proprietary crap [2].
Another one was the "Mouse battery low" alerts on Gnome under Ubuntu [3]. The root cause was in upowerd, but Gnome developers could have applied more sane defaults (e.g., no need to show the same alert several times per day, and even worse considering they don't go away unless you click to dismiss). Certainly not 100 hours, but much more time than I'd like.
[1] https://serverfault.com/questions/458553/cant-log-in-via-ssh...
[2] https://wrgms.com/reverse-engineering-synology-openssh/
[3] https://wrgms.com/disable-mouse-battery-low-spam-notificatio...
You may need to jump through some hoops to get the GPL code, but their product is (or was? it has been a while since I last played with their source code) reasonably open and full-featured, and works nicely out of the box. They also release frequent updates, have a decent set of options for backup / logging / media sharing out of the box, alerts are effective, and you also have an appstore-like for 3P apps.
Also, they use Linux as the base, and in some models you can even get access to the serial console with some effort, so you're not totally locked in on a proprietary system, should something go really bad [3][4].
I have a RS815+ and an old DS212+, and both are very reliable. Not terribly fast, but wouldn't expect much more from spinning disks anyway.
[1] https://wrgms.com/reverse-engineering-synology-openssh/
[2] https://wrgms.com/synologys-secret-telnet-password/
[3] https://wrgms.com/recovering-a-failed-synology-diskstation-d...
[4] https://wrgms.com/entering-single-user-mode-on-a-synology/
I wasted a lot more than 100 hours coding workarounds for its numerous CSS bugs. Probably millions of hours wasted world-wide. I hate Microsoft for the way they screwed web developers.
So for months on end, it was just 8 hours a day of Googling, scouring blogs and mailing lists for obscure CSS and JS hacks to get something to work in IE, while not breaking it in every other browser.
Luckily the recession ended a few of those jobs for me, and once hiring picked up again, there was enough demand for real work, and IE6 was no longer considered (probably about the time that YouTube refused to cater to IE6 users), and it quickly died off.
In the distant past, Solaris 9 for x86 on a laptop. I was younger (and dumber) then. Took much longer than 100 hrs and aged me beyond death.
jira, microsoft exchange, horribly sceumorphic PDF, anything with DRM
In practice on the other hand, I found the integration a complete nightmare, and everything was very prone to breaking for random reasons, making it either impossible to login or so the data wasn't pulled in properly etc.
And it's been a similar story with quite a few other software bridges/integrations. So much so in fact, that I realised it's almost always more practical to either find a solution that does both A and B at the same time, or to just build something yourself with the features needed rather than spend hours debugging an integration between two separate programs.
Edit: Oh, and Adobe Target. Even for an A/B testing tool this thing is frustrating as hell to use, and has a ton of design decisions that make no sense at all. For instance, you can't track clicks on an element by class/ID if the class/ID doesn't exist on that page at the time you use the editor, meaning you can't track clicks on an element that exists on some of the pages you want to test but not others, or all items in a list/feed. You also can't easily run the same test on multiple different pages with different URLs, so you have to 'add a page' in the editor for each URL pattern and copy the code over to it again.
- Jira this splits up in 3 categories - because of project member think they need a complicated workflow, mostly in conjunction with time tracking - installation - integrating with other applications
I disabled it recently after it got into an incomprehensible endless CPU loop. It's suddenly like having a new computer - it boots faster, I can switch tabs without grinding, just everything is faster.
I can't think how much time it must have cost me - on every interaction in years.
I always say Material is such an aesthetically good looking UI, that developers forfeit their common sense to leverage it.
Then they bought Marketing Cloud, again terrible. Its supposed to be point and click enough that non technical users can use it, but its too complicated for them and absolutely terrible as it took 7 clicks to the edit page any HTML email.
These two things make my current platform and all it's technical debt seem like an absolute dream.
1. Documentation. A chat provider and a serverless framework where the documentation or the typescript definitions weren't kept up to date with the code. Having to check types and their REST API and 'suck it and see' to actually find out how it works. If you want contributors, your OSS project should have working demos. If you want customers, the same.
2. Unnecessary complexity. I think there's going to be a major change in the front end world in the next few years as people realise they can already achieve reactive data binding without the complexity of popular frameworks.
OTOH, I used New Relic with PHP website 6..8 years ago, and it was awesome in everything, except the price.
I guess it all depends on the context.
It just isn't good. I tried it way back and most of the time it turned into a struggle that wasted hours.
I recently went back to it, thinking that it should be good now; it isn't.
My typical environment for a site is supervisor + nginx. Nothing crazy, super simple.
For whatever reason, the heroku instance refused to take in my config (set with `heroku config` and it was showing up in the Heroku console... but my service was like "nope, not there". The keys existed on process.env but were empty).
After about an hour I said "whatever" and stood it up on nginx + supervisor in 15 minutes.
"There is more than one way to do it" is such a boneheaded idea when you have to work with other people on the same codebase.
- Quake 3 Arena
Chef: at one point, we had Chef Consultants come to help us with our monstrosity. They said that we had something more complex and full featured than anything they had ever seen and declined helping. I've lost weeks and weeks to fighting against what we eventually grew.
Sysdig: personally, I lost maybe a few hours. As an org, we lost hundreds on people trying to get it to work similar to Grafana. Sysdig, at the time, did not support math operations. How this got passed on down to engineering is a different story, but when you can't compute derivatives on counters, you can't make decisions based on rates of change, something we require.
Twisted Python: Factories with mixins where a variable you are trying to discover where it came from turns out to be a parent class's parent class's mixin's parent class's mixin's parent class. True story. Dealing with cases where someone raised an exception somewhere in the code years ago, but now the section you are working in, you realize you cannot use Deferrals because Twisted uses exceptions as control flow, and now the exceptions at some other part of the code trigger ErrBack code somewhere else. As for the python part itself, not knowing the actual type for the variable incoming on a function is a pain. String? Int? Slice? Who knows! Add some print statements or read a bunch of code to find out. Honorable mention to time lost on SQL Alchemy. I can write SQL no problem. Every time I have to do something in SQL Alchemy, I start with SQL which is done in 30 seconds, then I spend the next hour going over documentation and experiments to get the query to build via SQL Alchemy.
AnyEvent Perl: 40 functions deep and not having a method signature. Yeah, time to read through hundreds of lines of code with branches that could send any number of parameters down to your function that you are looking at, or put print statements to know _what_ has been stuffed into your parameter list. Large systems benefit so much from strict typing. 40 functions deep and you know _exactly_ what is coming into your function and what it should return.
Go Modules. I've probably not hit the 100 hours yet, but I'd not be surprised to be in the 20 hour range. The module system was rolled out shoddily in my opinion. We went from things Just Work(tm) to multiple environment variables and language servers and editor issues. All I want is "is a vendor dir there? Use it. Else, use GoPath." Can't have that though. With private repos, proxies, vendor directories, environment variables, and varying levels of support from editors, it is just a mess. With Go 1.14, modules are getting better, but I'm still fighting the proxy servers in combination of vendor directory and private repos. I _love_ Go. I hope it goes back to sanity.
Every single time I have to upgrade react-native, I have no problems with the code base,
but with these horrible 'put a js config file here', put 'node_modules' there, set environment variable this way -- kind of tools.
This is approximately equivalent in frustration, trying to build a Linux-kernel with a new network-interface driver in early 90s.
..may be even worth than that.
And they are too niche (Pascal, LaTeX, XQuery), so I did not learn anything of relevance.
And all that programming has high opportunity costs and physical costs (back pain, worsening eyesight, vitamin D deficit).
This list is not exhaustive. You can help by expanding it.
redux sagas
2fa in general
those fucking cookie banners that no one gives a shit about
recaptcha
webpack
- Trying to test isolated components with a mock Redux store
- Figuring our how to set up tests for ‘connected’ components
- The long walks I go on after looking at an actions file that I need to work with
- The long walks Redux has made me go on
Minecraft
Ask yourself this: When was the last time you truly needed MS Office to produce something of value? Not imaginary enterprise “I look busy so I must be getting things done” value... but true value.
Sure, designers create beautiful presentations outside PowerPoint, but I can grab master slides, plomp down the stuff that I wrote in a plain text file and bam - presentation ready in 10 minutes.
Excel - I'm a programmer but even I use Excel for quick data tasks - cleanup, remove duplicates, create histogram and summary, build a pipeline for data where I see intermediate values for every step for every data point. I might be an exception but I sometimes even copy data from an SQL client to Excel to drill into it.
Or Access? Entire departments of non-technical people are running on this stuff.
If Office didn't provide anything of value nobody would use it.
I've never written a thesis (at all, let alone for a PhD), but my impression from people who have is that the academic institution typically already has a LaTeX .sty or template or whatever, so literally all you're doing is writing content (and the minimal amount of markup necessary for document structure).
That said, I can see how this might quickly go sideways as soon as you start using TikZ, or if you do indeed have to create your own style (though in the latter case the defaults seem reasonable, and indeed seem common if the numerous academic papers I've read over the years are any indication). I've written my fair share of technical documentation with LaTeX and it can definitely be a rabbit hole, albeit usually a self-inflicted one.
And that's definitely true about Excel and Access. Virtually every company has at least one Excel spreadsheet or Access database that's effectively mission-critical, lol.
The only tools people don't complain about are the ones that no one uses.
I've lost my 100 hours trying to get Word to consistently place images in technical docs, only to wind up fighting some of the most unpredictable placement calculations I've ever encountered. I want to punch my screen right now just thinking about it.
It's a tool for not too long technical documents, for secretarial work, for basic marketing text, for quick an dirty but decently presented invoices, for writing a resume.
It has never been meant for writing novels, for page setting, for writing hundreds of pages of technical documentation, and yet... it is used for that. Everyday.
Simply because it's available everywhere.
InDesign is infinitely better for typesetting, but you're the learning curve to get something presentable is higher than LaTeX, because you have to know design, and more expensive than Word.
LyX is the only tool that comes close to replacing Word. It's free, significantly better typesetting, easy to use, and available in most platforms.