Ask HN: What's the worst piece of software you use everyday?
What's a piece of software you find essential that you wish you could replace or rewrite?
[0]: http://svnbook.red-bean.com/en/1.7/svn.intro.whatis.html#svn...
What's a piece of software you find essential that you wish you could replace or rewrite?
[0]: http://svnbook.red-bean.com/en/1.7/svn.intro.whatis.html#svn...
First, the user interface is designed as if the programmers were incentivized to maximize the number of clicks required to get anywhere.
Second, it has the responsiveness of continental drift.
Third, editing and formatting text is an exercise in torture. When I want to delete text that I am writing, half of the time, the delete key won't work (I'm exaggerating, but not joking). Formatting of text is quasi-random. Want red-colored text? That works about 90% of the time for me. The other 10% will give me gray text (This time, not exaggerating). If you are brave, you can edit your text as raw HTML, but, my God, you'd better bring the anti-hypertension pills, because the HTML will blast you with a tsunami of <span> elements. Sometimes the <span> elements (unnecessarily) surround individual characters, sometimes they surround _parts_ of words.
Third, it is nigh impossible to set useful defaults. Why can't the due dates for assignments be defaulted to the end of the day instead of the current hour and minute? Do you honestly think that I would ever want my assignment to be due at 4:33 PM?
Fourth, it tries to do too many things. I already have email. I don't need Blackboard's email functionality getting in the way.
I could go on (for a while), but it's time for those blood pressure meds.
A patent for a black chalkboard?
Successfully enforced against Desire2Learn.
They must have been asleep at the wheel, and granted them this patent. They must have gotten starry eyed with all the wizardry of a web browser back in 2000, that they thought, this was a new and compelling technology.
The description of this patent, is just for a web site application, that will distribute assignments to students. The idea behind it is really not any more different than the GUI programs that were written on Windows 95 like the AOL program. They just splashed some fancy new words like "Uniform Resource Locator" and "World Wide Web".
This is another valid reason why software patents should be abolished. This is pure insanity. This is government and bureaucratic corruption of the highest order.
An organization that gets its workers good tools that improve their productivity rather than wasting their time will get more done with the same resources. It will also have an easier time with hiring and retention. Even if there aren't direct pay bonuses or similar incentives, this will likely make life easier for the leadership.
And that's not even getting in to the basic human decency that you should care about other people.
I suppose I could just have been subject to his charm and I suppose this could be a ridiculous heuristic, but I definitely have a lot more confidence in a company (and its software) when the CEO drives a practical car and is kind to the interns. Hope Blackboard gets better under him just because it’s so deeply engrained in educational institutions.
They redesigned it, in what is apparently an attempt to make the software more usable from a mobile phone. So (on a laptop), less stuff appears on the screen at once. This was billed, as usual, as an "improvement".
Also -- and quite frankly, this is ridiculous -- when I need to merge two sections of my course, I need to ask IT to do it for me. (Example: a big calculus lecture, which is broken up into multiple TA sections that have different course numbers.) It used to be that I could just do it myself, no problem. Then the option silently went away. I was informed that we used a plug-in (??) made by a third-party vendor (????) that enabled individual instructors to merge sections, but the third-party vendor went out of business and so this is no longer possible.
Makes me speculate that the codebase is a giant pile of spaghetti.
I guess I can't blame him too much. That is exactly what Providence Equity brought him in to do.
But if I were CEO of a big company one day, I'd definitely want to interact with the rank-and-file the same way Bill interacted with me.
My institution, unfortunately, uses Blackboard. Clicking on "Course Tools", I get the following, presented as one long list:
Accessibility Report, Achievements, Announcements, Attendance, Basic LTI Tools, Blackboard Collaborate Ultra, Blogs, Cengage Learning Mindlinks (TM), Contacts, Content Market Tools, Course Calendar, Course Health Check, Course Messages, Course Portfolios, ...
And that's just the first three letters of the alphabet.
Full disclosure: I built it-- I'm very receptive to feedback and feature suggestions though and am looking for pilot schools if anyone is interested in shaping the platform/knows someone who might be.
Courses as they exist now are unaware of semesters or terms, and are only tied to the students enrolled. So if the students enrolled in a particular class don't change (or change very little) between two semesters, you could continue use the same course for a 2nd semester if you wanted, or you could import your students into a new class and name the new class "Class Semester 2" for example.
I'm happy to work on features to fit your use case if you're interested in offering suggestions or are looking for a better solution than your current one; my email is brad [at] gradefinity [dot] com and I'm generally pretty available to talk about features/suggestions/demo stuff, etc.
It seems both the students and the teachers love it. And I can see why. He demoed it to me and for example for Math exams it supported equivalent form solutions. That’s definitely not the trivial kind of stuff. And the list went on, both the capabilities were off the chart and the user experience was top polished. It’s already used on universities and in some private companies. Definitely check it out if you need a solution from the space.
We have a webpage describing the power of EduBase Quiz at https://www.edubasequiz.com/en/ but you can even get started with the EduBase experience for free today on https://www.edubase.net/
My favorite part of Quiz is how easy it is to set up special answer types, such as matrices, equation editors, etc. And the editor is a dream compared to Blackboard.
The Blackboard -> Edubase Classroom switch resulted in 80% fewer student support requests (like trouble turning in assignments, questions about grade details, etc.). And with competitive pricing to Blackboard, it was a no-brainer.
That's just poetry. Well written and I can only fully agree on Blackboard. Any usability of this software comes from the consumer remembering how to get to places likes it's a GTA cheat code. Just a random sequence that you can only find if you know.
https://wjla.com/news/local/technical-issues-latest-on-virtu... https://www.washingtonpost.com/local/education/fairfax-schoo... https://www.tysonsreporter.com/2020/04/21/fcps-dropping-blac...
Rightly so. The Director of IT should have known better than to push a flawed product hard on parents/teachers, for months. I'm wondering what Blackboard's sales practices are like that they can get school's IT people on their side!
(Plus, we were in YC batch S17 with the predecessor to Eduflow – Peergrade)
AWS. It’s UI is honestly baffling, it feels and looks like someone made it in a rush with jQuery and Bootstrap years ago. It’s login and identity and resource management is confusing, and apparently you need a chrome extension which adds a bunch of complicated options I don’t really understand just to be able to change roles. It is literally years behind Azure.
Git. It’s purposely archaic commands and syntax leads to too many accidents far too often. I recently started using Gitkraken which allows you to pull changes WITHOUT needing to commit locally first because it uses stashes. It basically does the same option. Why can’t git be smart like that?
Linux. It’s great, but it’s so easy to run into configuration problems or poor documentation.
Docker. Again it’s great but for whatever reason it just works poorly on ARM and the whole ecosystem is geared to x86 and it just goes and pulls the x86 images and then fails to run them. Come on.
Clubhouse is the first Jira replacement we’ve tried that the devs actually like using. Doesn’t have the laundry list of features Jira has, but meets our needs (team of 20).
I strongly agree with the rest of your characterization of the AWS console, but that one isn't true: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_us... -- we use IAM Roles extensively at $DAYJOB and have not yet experienced anything that would require a Chrome extension to work around like you describe
Their login screen, however, continues to drive everyone crazy since the URL you visit depends greatly on which account, and at what level, you wish to authenticate to the console. With any setup containing a non-trivial number of AWS accounts, it's just "oh, what account am I logged into" waiting to happen
Not to mention, we actually have to provide the Domain password in the AWS UI, which seems to go against any kind of security I know...
https://docs.aws.amazon.com/IAM/latest/UserGuide/console_acc...
To avoid this I use Firefox container tabs, creating a container for each role. Which will get around the UI's 7 role limit too.
Once you wrap your mind around what commits, heads and remotes are and learn to rebase you get an incredibly simple and fine-grained control. I never use stash because it's trivial to create a WIP commit and rebase later into the chunks I want to ship to permanent history.
Git is like a chef's knife: extremely powerful tool that's dangerous in untrained hands.
$ git help commit | wc -l
506
$ hg help commit | wc -l
59
$ hg help commit -v | wc -l
96
Also, git currently has 169 subcommands by default, vs. mercurial's 50 (more available as extensions though).Don't you think the merge histories of all the repos throughout the globe would be greatly improved if people didn't need to learn the hard way that if your colleague does `push` you need to `fetch`?
Funnily enough I think Atlassian/Bitbucket comes close to a good intro doc to git on their site complete with a visual guide. I still found it inaccessible to people totally new to the basic concepts though.
Named branches don't really exist in git: there's only a moving target name that refers to a leaf node. This means there's no "history" associated to a branch except for the parent commits. But in merge commits with several parents all parents are considered equal, and the system does not contain info about which commit belonged to the "main branch" and which was imported in. This information can be valuable in some cases. This leads to a lot of rebasing just to keep the commit log clean, but this actually rewrites history and destroys information.
Also, there's no support for keeping two parallel views of the same repository (for example, an internal view with lots of subcommits, and a cleaner public view with more detailed messages, and perhaps fewer privacy-compromising names/timestamps).
Finally, handling merge conflicts is still a PITA, especially on LaTeX documents.
So many times I want to VC a directory but don’t care about commit messages, branching, or other jazz more suited to collaborative work.
With init-lite, all the power of Git is still there - and you can use any commit or command you want, but it’s default would be to simply VC for every file save. In other words, a file save IS a message-less commit.
Unfortunately, it required (IIRC) three full time people to administer the server. As for the client (my workstation), it required a proprietary kernel module which would panic about once a week. I'm told our license cost $1m/year (2001 dollars).
But if you set that option and run the Assistant, it'll auto-commit files when they change, and can even auto-sync them with other computers, cloud storage, Android devices, etc.
I thought that merge commits stored an ordered list of parents, and the first parent is generally the main branch, and second parent is a side branch.
Completely agree. I think rebasing is misguided. The objective is to keep history clean and linear. The proper way to solve that problem is with smart log analysis for different customers, not fictionally rewriting the log itself.
> Git is like a chef's knife: extremely powerful tool that's dangerous in untrained hands.
Although, this is all part of the problem with Git. The problem is that it exposes this fine-grained control and knife's edge to the user by default. There isn't some simpler model that people can work with.
I cut my teeth on source-code control with Perforce. Of course, Perforce has many complex features, including stuff like workspaces, which as far as I can tell, Git doesn't have something like that. Anyway, despite its complex feature set, Perforce can be explained in a few minutes. You have some code in the repository. If you want to work on it, you check it out and it gets added to a changelist. If you want exclusive change rights, you can lock it to prevent others. If you want others to see what you're working on, you can shelve your changes without submitting so that they can inspect. When you're done, you submit your changelist. All of this can be done via excellent visual tooling or the command line. I highlighted things with italics because these are the right words for the actions in how Perforce calls them. It's intuitive.
For Git, it isn't that simple. You must first explain a wide swath of concepts. I've explained Git to people, even using the GitHub Desktop app. It is very confusing and intimidating to people, and rightfully so. It confuses me, and I did some pretty advanced things with Perforce (and thus source-code control) before. And there's no default visual tooling. Git also has many names for things that are confusing. Also, Git was invented for a very specific purpose: Linux kernel development. The vast majority of development does not need the same complexity that such a niche development process needs.
When I recently wanted to do something in Git, I just could not figure it out. Probably simple for a Git expert, which is something I am not, but after searching many forum posts, I gave up because every answer was different and caveated in different ways and wasn't working for me. I installed GitKraken and solved my problem in seconds via a single right-click. Maybe I'm an idiot and I don't understand Git that well; both are likely true. But I am able to understand other complex things, so something is amiss. I think the primary issue is that Git requires me to study it just to use it in basic ways. I have an allergy to overly complex things, and so it's just a constant struggle for me. I tend to use visual tools for merging, diffing, managing commits, etc. so that I stay away from the Git CLI, which exposes the complexity in a non-usable way.
Lastly, Git is very narrow minded when it comes to things it controls. It assumes everything should be text.
I need to make more decisions because of its limitations (single repo or one repo per module? Or maybe use submodules somehow? With P4, we had a single repo with all of the code of the entire organization).
Should I rebase or merge? Or squash commits? Should I cherry pick onto a new branch?
If I want to checkout a new branch while I have work in progress, do I commit it and later amend or revert, or do I stash it? Or do I rely on autostash?
Do I push directly to main, or do I rely on pull requests? Should those merge or squash commits?
I understand that all of these options and concepts make sense for distributed orgs, like the Linux kernel dev community and many other opensource projects. But I don't understand why so many traditional organizations are adopting Git. Its model is way too complex for the way normal orgs work (1 centralized server as the source of truth for the whole project), and it has serious limitations for anything which isn't pure code and isn't carefully curated.
From my perspective, these are policy decisions that need to be made by some "management-ish" level. Git provides the mechanism to do all of them. It's up to you/your organization to decide how to work.
In the open source project that I run (20 years, 75+ developers over time, 400-500k LOC) we all have a clear understanding of (e.g.) whether to merge or rebase. On the odd occasions that there's a lack of clarity, it's normally a great sign that it doesn't matter.
The fact the you would be asking those questions suggests to me that the necessary policy-level decisions have not been made (or have not been made clear).
For most unitary organizations, some of the options that git gives you make no sense at all. That doesn't mean git should change, it means that it's not a great tool for unitary organizations.
Note that some of the choices (e.g. stash vs commit) are choices that each dev has to make individually, and some are pure incidental complexity.
`ls` wouldn't be better if I had to pass a flag to see the output as today, and another flag to print one character per line, and another flag to print each character in a different color etc. (even though that would give me 'more freedom').
Part of the problem is that Git, to make it manageable, requires all of these types of concerns and decisions to be addressed, and secondly, it has somehow become the only standard that people have even heard of. There isn't even a decision about which system to use anymore.
Having used both, I still prefer Perforce over Git. And if it were up to me, I would take a step back and investigate other offerings like Plastic SCM. But trying to make these decisions is nearly impossible now that Git is treated as a given.
Also, file locks are awesome if you're working with binary files (a thing that P4, unlike Git, can actually do), or even when doing a big refactoring that you know will cause conflicts with any other change. Otherwise, at least on our server, we very rarely used them (ignoring the temporary lock just as you're submitting code).
I'm not sure what you mean about rebasing. The basic P4 workflow is equivalent to `git pull --rebase`. In fact, it's pretty hard NOT to rebase in P4.
Also, why is your own branch useful actually? Nevermind your own repo? You can always just keep multiple copies of the code if you really want to.
Also, with P4 you don't have to cleanup your whole working set just to switch branch - it's just a `cd` away!
Of course, different strokes for different folks and all that.
I frequently use Git as an interview question, but only when the candidate lists Git among the skill set. Specifically, I ask how does Git figure out when you've renamed a file. If you don't grok it, don't list it.
How does git figure it out?
That second part is actually important from the user's perspective, not as details on the internals: every single new hire we've gotten who is still learning version control expects svn to detect automatically, and has to be told about "svn mv".
Why ask such a gotcha question?
When you rebase one branch, it doesn't move other branches and tags pointing along the history.
You can't rewrite a repository and change your username in past commits, without completely rewriting all of history, creating two parallel histories, and merge conflicts.
Git's mental model makes "moving a branch onto a different commit" (git branch -f) a natural operation. But no graphical tool I've used allows you to do that on a branch you're not checked out on.
This is trivial in SmartGit, I do it all the time.
Simply drag the branch marker to the commit you want it on. It doesn't matter if it's the checked-out branch or not.
I've tried a few Git GUIs, but SmartGit continues to be my favorite. Pretty much every one of the recipes on https://ohshitgit.com/ is just a simple drag and drop or menu command in SmartGit.
One of my favorite things is the way it handles the reflog. Just click the Recyclable Commits checkbox and every reflog commit becomes visible in the normal log view. You can see the commit's file contents without having to check it out, you can diff two reflog or normal commits, etc.
It's beyond ugly, it's needlessly incoherent. I use it because I have to and hate it. I've heard people say "the data model is a work of beauty". And I suppose that's true, but why have such a fucked up and confusing set of commands? Doesn't a "brilliant data model" deserve an equally brilliant command line?
The thing that saves git is that it works, and by some miracle, it is popular. People just memorize what they need to do for their workflows and that's mostly fine. Sometimes there's a screw-up and you blow time googling around or looking up fixes.
People won't publicly admit it but a lot of work gets trashed because finagling git intricacies is more painful than throwing away some work and starting over.
Probably because Linus Torvalds wrote it, and also because GitHub was actually quite a significant improvement over SourceForge. I know some people "love to hate" GitHub, but they made some really good "developer-first" UX improvements that many copied for good reasons. And lastly, Linus Torvalds wrote it.
I still maintain that Mercurial is far better for most uses. Every time I mention this I get a flurry of technical replies about stuff most people don't even know about (HN is strongly biased like that, which is not a bad thing, just something to be aware of), but most people just want to commit, push, pull, and some related stuff like that. Git makes a lot of simple common stuff arcane to make the complex stuff easier, whereas mercurial makes the simple common stuff easy and keeps the complex stuff arcane. This strikes me as a much better design philosophy.
Git and Mercurial are a tool designed to facilitate writing code (which is also a tool designed to solve problems). If you need to spend significant time to "get your head around it" then IMHO something, somewhere, has gone wrong.
I still use git because it's just the pragmatical thing to do at this point in time, and to be fair there have been active efforts by the git team to make the common/simple stuff easier in recent times, but yeah, I'm not a fan.
I'd say it was because GitHub created a solid community that worked. And yes, Sourceforge was a huge piece of garbage with it's awful clickbait, misleading "download" buttons, and scammy crapware foisting.
That Torvalds wrote git doesn't automatically make me want to use it, I think most people feel the same.
Stash, pull, stash pop. Done.
(I don't use rebase because I like my history to tell the truth rather than be fictional. Maybe stash is less necessary with rebase; IDK.)
git branch my_stash git commit -am WIP # instead of stash save git pull git cherry-pick -n WIP git branch -D my_stash
You have to remember a second command with its own peculiar syntax and semantics, but don't gain any functionality.
Stash is a superfluous misfeature.
Your alternative, on the other hand, uses an obscure flag to cherry-pick. What scenario would you use that flag for, except this particular one? How is remembering that flag any simpler?
Also, I don’t think your sequence of commands is correct. First, ”git branch” doesn’t switch to the newly created branch, so ”WIP” would be committed on your original branch. Second, the argument to cherry-pick should be a reference to the commit rather than the commit message. I believe a correct version would be:
git switch -c my_stash
git commit -am WIP
git switch -
git pull
git cherry-pick -n my_stash
git branch -D my_stashI'm don't know now, why I suggested the convoluted temporary branch strategy. Probably because I assumed the GP didn't want the WIP commit, but I guess you could just get rid of it with `git reset HEAD^`. Personally I think WIP commits are way better than having uncommitted changes lying around, and what better time to create one than when you're at the terminal pulling and rebasing anyway? Anyhow.
Now when the rebase fails I can just abort it and be in a very easy to understand state: I have a tracking branch that has diverged from the remote, as `git status` would put it. I find this much better than "my tracking branch says 'up-to-date' but only because my actual changes are in a temporary branch somewhere, or heaven forbid, a stash."
> obscure flag to cherry-pick
Sorry, I'm having a little trouble with this one. What flags aren't obscure then? It's one of the elite 0.01% or so of git command-line options deemed worthy of a short option, so I think it stands to reason that it's rather frequently used.
Personally I used it a lot when I first started using git, before I got the hang of amending and squashing. Almost exactly the same way as I used to use stash, before I realized it was adding negative value. :)
Have you never been in the situation where you pop your stash, have a conflict, fix and commit it and then forget to drop the stash? (pop only drops it automatically if there were no conflicts.)
What if you want to save resolving the conflict for later? Do you just leave it in your stash to have to dig for later (amongst all the redundant leftovers from the preceding paragraph)? Or do you remember to run `git stash branch` at this point, and hopefully don't get interrupted before you can do so? Better, IMO, to just use branches in the first place, instead of this weird out-of-band thing where things are kind of like commits, but not really, and live in a separate place I have to remember to check.
Sorry about the length.
Now staging (aka index) is special behind the scenes, making the model more complex for Al users.
git config pull.rebase true
git config rebase.autoStash true
I think these should have been the defaults but they weren't implemented until later and it's hard to change defaults. git config --global pull.rebase merges git checkout -b new-branch
I fairly often make a branch as a sort of named undo point, and only check it out if need to undo to that point. Tags could work for that purpose too, but the branch approach seems safer in my usual work situation.Funny thing, nowadays it's going to be deprecated in favor of:
git switch -c newbranchWhy so? We don't go into great depth, but every hiring committee I've been on I make sure that we ask something about source control.
You can learn a lot about a developer's process by finding out if and how they use source control. (Red flag, for me, is if an apparent senior dev doesn't use a VCS.)
Red flag = warning sign, not anything related to Git flags.
OJFord is basically correct, though. It's 2020, so if you're interviewing for a developer/programming position, you should at least know something about the various VCS options.
If it helps, during our last set of interviews the question was "What is your strategy when using source control?"
Before that was the two part question of "Describe your preferred development environment, both physical and technical. What is one thing in your development process that you can’t live without?" (I always tell the candidate that my answer to this is some sort of VCS.)
(These were both for the second, in-person, interview. There's not necessarily a wrong answer. It's not like we're asking them to name as many differences between Git and TFS as they can. :) )
I actually popped on the git development irc channel a few months ago to make this suggestion. The two people I talked to (at least one of whom seemed to be a core developer, although I did not verify this) did not see how, if you're going to conflate the actions of creating a branch and checking it out, it makes more sense to do this as a flag on the primary action, branch creation.
They were nice enough to have an in-depth conversion with a complete newcomer, though, so it was not a negative experience overall. Maybe someone else could convince them :)
That said, I do vaguely recall this seeming weird at first.
---Succinct argument---
What happens if you remove the flag? Put differently, how much does the flag change the semantics?
`git branch newbranch` will gracefully fall back to creating a new branch at HEAD.
`git checkout newbranch` will fail (error: pathspec 'newbranch' did not match any file(s) known to git), because the regular version of the command involves operating on something that already exists.
---Less succinct further argument---
checkout's `-B` variant. Here's how the man page explains it:
> If -B is given, <new_branch> is created if it doesn’t exist; otherwise, it is reset. This is the transactional equivalent of > > $ git branch -f <branch> [<start point>] > $ git checkout <branch>
If it were a flag on branch, you wouldn't need a separate flag, just `git branch -fs newbranch` (-s for --switch).
Actually, looking through the man page for `checkout` now, I see 4 other options I didn't know about (-t|--track, --no-track, --guess, --no-guess), apparently for the sole purpose of being used with -b.
---
I don't think I thought of this argument when I originally chatted in #git-devel, maybe I'll give it another try.
Thank you for the edit; this is where our mental models diverge. Yours is the technically correct version, but when I'm working, I introduce a small abstraction on top. I've never written this particular part out explicitly, so please bear with me and feel free to suggest better names or phrasing.
I'll call it, "the checked-out branch" (or other <tree-ish>, but let's leave out detached HEAD for simplicity). It's like your model, but also includes the state of the repo at that commit. This is a really subtle difference, but the key is that checkout is one atomic operation.
I think the easiest way to explain is by analogy[0] to editing a regular text file. You've got the file on disk, and the version in your editor's buffer (working tree), and every time you save, you're making a commit (with `--amend`, on most filesystems). When you decide to edit a different file, and open it, technically there's two independent operations -- switch which file handle you're writing to, and replace the contents of the buffer with the contents of the new file -- but I seldom think of it this way (and I can't think of an editor that separates them).
This is also why I don't like overloading with `git checkout <commit> -- <files>...`, which does not update the HEAD. It shatters the "open file" analogy; it's like changing the contents of your buffer without changing which file you're writing to. In my mind, that's a totally separate function (typically accomplished by opening the other file separately and then copying its contents into the buffer, an inefficient operation that I'm grateful git provides a better alternative to).
Aside, I also prefer to think of each branch (not commit!) as having its own persistent working tree and staging area; I'd prefer not to have to push and pop a stash each time I check out a new branch if I already had some work in progress. `git worktree` comes close, but lacks the ability to navigate between worktrees but stay in the same directory relative to the root, like `checkout` does. Also you have to initialize other worktrees with a different root, which pollutes the file system or forces you to use an extra level of nesting.
It's been on my list of projects for a while to write a git porcelain that works the way I'd like, but it's pretty low priority (despite my complaints, git works pretty well for me), so I doubt I'll get to it for a few years.
[0] Come to think of it, maybe "analogy" is not the best word. It's more like, I prefer to view git as an extension of my filesystem, so I want a consistent mental model across the whole thing.
It seems like the conflict is that there actually are some separate things going on "under the hood", and you're not satisfied with the way that git has combined them? To be explicit, some distinct steps we're discussing are:
1) Update the working tree to match the tree-ish
2) Create a new branch
3) Update HEAD to point at the branch (or other tree-ish)
As is currently implemented, "git checkout somebranch" does 1 and 3, "git checkout somebranch -- <files>" does just 1, "git branch somebranch" does just 2, and "git checkout -b newbranch" does 2 and 3. AFAIK, there's not a "git branch" argument that causes it to update HEAD, but the standard version of "git checkout" does exactly that. From the perspective of a new git user, maybe "git branch" is the obvious command to look at for making and using a new branch, but I think "git checkout" is the obvious command for using a branch.
So, perhaps "checkout" could have a better name; maybe "use" or "work" instead?
I must admit that I don't understand what you mean by "state of the repo at that commit" - is that related to the idea of each branch having a persistent working tree and staging area? When I run in to a situation where the second would be relevant, I tend to do "git commit -am WIP" then on return to that branch, "git reset HEAD~1". It very rarely happens that I'm in the middle of composing a commit (staging things) but need to switch to a different branch in the same project, so it doesn't really matter that the staging area and working directory all got munged together.
First, I would like to re-order those steps (and I am curious whether you intended the order to be meaningful). Then, I'll try to explain how they, while technically correct (again) to the best of my knowledge, don't match my mental model (particularly "update working tree", which is not part of "checkout" in smichel17-land). Yes — this is related to the "persistent working tree" (or maybe "working tree as a concept that doesn't exist in my mental model" would be better phrasing — but I'm getting ahead of myself).
---
Note that without flags, you'd have to "git branch" first, then "git checkout". Also, it's easier for me to think about if each command only performs consecutive steps, in order. Fortunately, we can achieve that:
1) Create a new branch
2) Update HEAD to point at the branch (or other tree-ish)
3) Update the working tree to match the tree-ish
"git branch somebranch" does just 1, "git checkout -b newbranch" does 1 and 2, "git checkout somebranch" does 2 and 3, "git checkout somebranch -- <files>" does just 3. I think this helps clarify my issues with both -b and --. They both change which step "checkout" starts on (and "-b" changes the ending, too!).
By analogy: if these commands are like functions, adding a step afterward is like a flag that modifies the output, while adding a step before is a flag that modifies the expected input. Sure, you could organize your code around the outputs it produces, and sometimes we do that (eg, serialization/parsing you have things like JSON.stringify, String.fromInt, different constructors for classes, etc). But typically it makes more sense to group based on what you want to do with a given object/class/data-type — it's nice to be able to answer, "I have an X, what are all the things I can do with it?"
Maybe that's stretching the analogy a little. But it ties in with my original comment mentioning the "primary action", which I guess I could rephrase as "first action in the chain".
---
What's the primary action of "checkout"? Well, "updating" the HEAD. So here's where we get back to abstractions / mental models — I would say, moving the HEAD. But first, let's take a short detour.
What's a commit? Technically, it's a diff and some metadata (author, parent commit(s), ...) with a deterministic name. But in terms of actual use, it's a snapshot of the repository at a certain point in time. (Or, if you'll permit a little snark, a version, as in "version control".) Zoom out to the whole repository, and you can visualize it as a tree of commits, ordered along the axis of time. Visualization:
git log --graph --format="%C(yellow)%h%Cgreen%d"
That includes branches, so what about them? Technically, they're tags. But in my mental model, they're boxes which contain mutable state that I might want to commit. They're the buffer in my text editor, where I make changes before saving to disk. As a crude visualization of making a commit, I choose a subset of those changes and put them in the bottom of the box (stage them), then chop the box in half. The bottom becomes the new commit, and the branch remains on top, still holding any unstaged changes.Finally, back to the HEAD (our detour is over). Technically, it's just another tag. But to me, it's a camera, through which I look at a given box (or snapshot). It's the location where I am. It's $PWD.
To bring it all together:
- Branches sit on top of a commit and stay there.
- When I check out a different branch, they remain on top of the same commit, still holding the unsaved changes in their box. This is what I meant by "persistent working tree".
- Checking out a branch, conceptually, is just moving my view (HEAD) to a different branch. It doesn't involve changing files. It's the equivalent of "cd".
So this is why it barely makes sense for me to talk about "the" working tree. I have a bunch of boxes/folders/"working trees", called branches. That I have to copy them to "the working tree" in order to edit them is an implementation detail. Step 3 above (your 1, "update the working tree") doesn't exist in my mental model. You just move the HEAD. One atomic operation.
"-b" and "--" both break my mental model because they add side effects to an operation that's otherwise just "look around." "-b" isn't quite as bad, because I could imagine a flag on "cd" that makes it run "mkdir -p" first ("Go here, even if it doesn't exist yet."), but it still makes more sense as a flag on "branch" ("Create a new box, and look at it").
> So, perhaps "checkout" could have a better name; maybe "use" or "work" instead?
I think the new "switch" fits pretty well. And, "git branch [-s|--switch]" aren't taken yet :)
Aside, "git reset" is about moving which commit a branch sits on top of, and its various hardness flags are about what to do with the contents of both the box and the commits it was sitting on top of. There used to not be a command for "copy some stuff into my box from a different box or commit", so I had to use checkout, but now there's "git restore".
> What's the primary action of "checkout"? Well, "updating" the HEAD.
This might be where we diverge - I'd say that the primary action of "git checkout" is to update the working tree, secondary action is to update HEAD.
> What's a commit? Technically, it's a diff and some metadata (author, parent commit(s), ...) with a deterministic name. But in terms of actual use, it's a snapshot of the repository at a certain point in time.
This isn't actually the case; git commits contain a "tree", which is not a diff. The tree is a table of file paths, attributes, and hashes that each identify a "blob" - the (compressed) contents of a file. The commit represents a state of the committed files (and links); to me "snapshot of the repository" would include things like the state of the branches in the repo, HEAD, and commits that are present but outside the history of the commit in question.
---
Thanks for the explanation, I think I understand what you mean and like the idea. Maybe this is what you alluded to a few posts up, but it seems like a new subcommand could roll up the working directory and staging area in to a temporary commit or two, do the normal "git checkout otherbranch", then unroll any temporary commit(s) that were present in otherbranch.
At a previous employer, I used mercurial including a feature (perhaps provided by an extension, I can't find it at the moment) that allowed a commit to be marked as local-only, so it wouldn't be pushed. Something like this could probably be done with git hooks to prevent the temporary working/staging commits being shared unintentionally.
Could you say more about this? I use
git checkout -b new-branch
all the time, but that checks it out. What does "using an un-checked-out branch as an undo point" mean? Don't you have to check it out to commit changes to it? I suppose I could read the docs but the git docs are awful.Recently, in explaining this to a colleague who's relatively new to git, I think the "aha" moment came in realising that if you rewrite the history leading to commit X, you're really making new commit Y in addition to the old commit X - you're not changing X in to Y. Leaving a branch pointing at X is enough that git will keep it around after the history rewriting, in case you decide to do something with it later.
git checkout -t remote-branchI was thinking the same for many years. But lately started to use VSCode for some projects. To see how staging is integrated there was almost an enlightening experience to be honest. All it takes to make staging an extremely useful feature, compared to all the other IDEs, is a slight change in how diffs are presented: In VSCode line-change markers indicate only a diff between working tree and cache (and not working tree and HEAD, like "everywhere" else). After staging a file in VSCode all inline diff markers disappear and the file looks like it would be unmodified. Than, new changes on top of the staged stuff will result in line change markers and inline diffs (showing only the unstaged changes). This way one can track "changes on top of changes" without having to commit the intermediate steps. This makes building up even big commits quite convenient as one can do it in small steps, having a (directly visible) diff of manageable size at any time in this process.
But it requires a lot of additional ceremony—alone naming the intermediate steps… ◔_◔
I only had problems with errors from `e` on Windows - I'm guessing due to wrong line endings.
For once, it's a git command that seems to be clear about what it does, but it just doesn't check out.
Also, of late I have turned to "a lover of git GUI apps" form a full "git in cli is the best evangelist". But that has happened for most other tools as well. I guess I am kind of done with cli.
It loses all history of foo.bar. I guess if you pull up a version before the mv, you can still see it, but as far as git is concerned, foo.bar in the new location has no relationship to foo.bar in the old location.
Many people have complained about this over the years, but it's still that way. Because (they say) Linus likes it that way.
git log --followPretty sure they said they're launching in July so should be live soon.
They are cute, but they have lots of buttons or they have some decoration that makes them hard to wash, making them impractical to use. While no parent would buy these, every parent has them, because someone else made the decision to buy them.
https://twitter.com/random_walker/status/1182635589604171776
Unnecessary dig at Bootstrap and jQuery.
There are plenty of websites with great UI built using bootstrap. I don't understand how using jQuery has anything to do with the UI though. It's just a wrapper around JavaScript.
Also agree on AWS. Their UI is so terrible and confusing that it makes writing CloudFormation yaml files feel alright in comparison. Been using GCP lately and the UI is somewhat better though still confusing and weird at times.
That being said, despite that I personally don't love Jira I do think there are some cases where you need particularly complex workflows (e.g. compliance use cases) where Jira's complexity is fully justified.
And we know our tool is not for everyone. If your team is happy using Jira, power to you. But I think it really is important that the team is happy with it, not just the bosses.
What kind of organization doesn't have real OKR's or performance metrics? Do you draw a pretty picture with sunshine and rainbows and report that to investors?
I report actually meaningful numbers to my investors in terms of value delivered to users, not number of tickets churned through.
I tend to track my personal workload in a text file at a more granular level. When my team's project was approaching a deadline and a crunch and I needed to stay synchronized with the developers working closely with me, I transcribed this list to Trello. I showed it to the PM as a curiosity and the next day all of the cards had been printed out and affixed to the wall with masking tape. That's the type of environment a lot of us are working in.
Imagine having a guy in Dev that can fix your workflow so that "Start working" is not hidden in the dropdown menu.
Fundamentally JIRA is an over-grown bug tracker. A bug tracker should be designed, built, administered and used by programmers and only programmers. Project managers should not even have access to it, in my view, let alone try to use it to create reports or control the team.
Typical problem I face in my JIRA shop: there'll be no way to move a task straight from "to do" to "done". You have to move it to "in progress" then "in review" then "in qa" then "done", even if in fact, the ticket just tracked the need to do a quick code cleanup that happened to get done as part of some other task. There's no justification for this type of thing beyond over-empowered project managers.
I saw how that culture evolved over time as the company got bigger. It didn't start out that way. JIRA was once a bug tracker for us. It became a some sort of flowchart madhouse with horrifically convoluted processes around it. Partly yes, because the company felt a need to hire project managers, and partly because the tool existed and therefore there was something for them to fiddle with all day. If they didn't have the tools to create over-engineered processes, it would be less likely to occur.
At some level, yes, JIRA just enables problems, it doesn't directly create them. On another level, its whole structure encourages that way of thinking.
Yet you claim because YOU've seen it work, everyone else must be wrong?? ironic ?
- Crazy amounts of hotkeys. You can do everything in Kitemaker without using the mouse. It feels pretty awesome to move issues around the board, assign them, etc. all with hotkeys. Also like many modern products we have a command center (ctrl+K or cmd+K) where you can do everything.
- Our issue screen is quite a lot more powerful than Trello's card view. We've talked to many teams who use Trello and they rarely have much content in their cards. In our issue screen, you get a rich document part (feels quite like Notion, with a lot of things you can drop into the issue like images, Figma designs, etc.) and an activity part (with threaded comments, a history of what's happened with the issues, updates on relevant information from integrations, etc.)
- Better GitHub integration. Our issues actually have issue numbers, so you can do things like "Fix ABC-123" in your GitHub commits and our automation feature will move the issue around the board accordingly (you can set up different rules for if such a message appears in a PR, a commit in master...er main, etc.). We show any activity in GitHub related to the issue right in the issue's activity feed as well.
- Better slack integration. Mentioning issues in Slack automatically attaches the conversation to the issue and also provides useful info about the issue in Slack
- List view. You can see issues in a list instead of a board if that's your thing. Nice for use cases like backlog grooming.
And we're moving fast and adding more useful stuff all the time without becoming too complex or unpleasant to use.
So yes, we have a pretty board and pretty boards tend to look like Trello. But there's a lot more to it than that.
GP, to simplify the main hero consider making it a png. I know as a user seeing a slightly pixelated gif screams out “unpolished” engineering and design.
Also, what about sprints? As of now, kitemaker is solely usable for Kanban, right?
Also your posts are hard to read if you systematically writes it's when you mean its.
This is not being smart, this is trying to be too clever for one's own good. Git does what it does because it wants you to know what might happen and to decide explicitly.
If I do a 'git pull' without remembering that I was doing something and that just goes through and stash my changes automatically then I have lost the exact state I was working in and I need to work to recover it. Now, on the other hand if git stops and tell me that I have changes pending then I can think and decide. It only takes a few seconds.
Trying to automate too much can be a false economy.
If anything I wish they would just change it even less than they do.
It does have its buggy areas though, which could be a lot better.
But they do. Their users are project managers. The genius of Atlassian is how they’ve managed to convince so many programmers that it’s for them. It never was!
Confluence looks better than everything else I’ve tried/used as a doc platform: Notion, Nuclino, Coda, Sharepoint, OneNote, Azure DevOps wiki, Microsoft Teams wiki...
Sorry - not the platform, but capability.
instead, it just makes my current line h1.
When I log in, it shows me a shit ton of articles that I have no interest in. It's like a Facebook feed, or something, where every document everyone in my (1,000+ people) org has written in the last 24 hours is sorted reverse-chronologically. Since I only need to interface with about 10 people normally, this is worse than useless. It actually make finding stuff harder.
But never mind that, how do I find just what I've written? Somewhere there's a list of "recently worked on" things, and that's sometimes useful, but I usually need to edit something I haven't touched in months. I end up having to search all of our Confluence instead of just being able to search only my own articles. It often brings up completely unrelated things and I have to do more work to figure out which are relevant.
When editing, their editor steals OS keys that are used for every app, like Cmd-F for find. Instead of bringing up Safari's find panel, which is 100% always what I want, it brings up their own home-grown find that doesn't actually search the entire page. It only searches the text I'm editing and often does a poor job of it. Other command-keys are also highjacked meaning I can't do normal things like create a new window when editing text. It's bonkers bad.
The calendar section becomes unusable once you have more than about 3 people adding stuff to it. The list goes on and on. I'm actually shocked that anyone here is defending it.
My rage builds even just trying to use the search bar on JIRA. Keys don't get captured and get registered as page hot keys, or some keys are registered and others aren't. Crazy, just give me a dumb static search bar if you're not going to make life better. /Rant
Then they moved everything to a cloud hosted solution, but the assumption of requests being effectively zero latency was still built-in, so now firing hundreds of requests with high latency makes everything feel super sluggish.
I'm working on my own issue tracker [0] that stores everything locally, which means no network latency. Eventually I'd like to build a sync backend for it so you can share it with a team, but for now everything runs locally.
My company had paid for the locally hosted version of JIRA for security policy reasons.
The cloud is the original code base and the on premise is a FORK! Can you believe it? It's not even the same code and the on premise solution is so far behind.
Speed isn't the best, but it was either that, use Redmine with a massive config or wrap the shop up.
But then again, I also love git. Maybe we have different ideas how software should and shouldn't be.
/edit: For clarity: Microsoft Office and SAP are how I think enterprise software should not be. And Atlassian is kind of the opposite.
Notion is great for marketing teams though.
It took me a bit for it to click also, but now that it has I can’t imagine using any other tool for our marketing team.
I'll add as well (Atlassian) SourceTree (git UI). I don't want to be a git jockey and I can do 90% of what I need in the SourceTree UI -- it's saved me tons of time, and I especially like the chunk-stage/unstage/reset functionality (you can stage/unstage/undo fragments of files in the UI) -- this feature alone is gold. SourceTree performance has improved greatly. I only wish there were a Linux version, but fortunately I do most development on macOS.
EDIT: SourceTree
I love notion, but as a company-scale doc platform I don’t think it’s there yet.
To be fair, this has nothing to do with SourceTree. You can do this with any git tool, since it’s a feature of git.
It had 3 pain points for me that are resolved recently. First, they got rid of the desktop clients so users can’t move stuff to their desktop without understanding this is removing files for others. Second, team drives resolve the mess that was shared folders. Third, it can now edit office documents directly, avoiding the confusion of google doc copies appearing.
I use confluence a lot and I never trust that files on it are up to date. It doesn’t quite have enough features to make “native” documents, so it ends up with a lot of content stored as attachments, which inevitably get updated and passed around by email. It’s not convenient for storing files so all of the miscellaneous small files never make it there. If you use a lot of addins, it becomes usable to make documents but since it’s atrocious at outputting files, eventually a final version of something needs to be edited in word and now it’s even worse, you have what looks like an up to date document but the latest version is a word file, which is either hidden as an attachment or not even uploaded. I can see it working well in a team of only software engineers, however.
But like everything Jira, they can never seem to find the energy to redo everything all at once, so they do it one screen or one section at a time instead... reminds me of how Office apps never improve all at the same time, just a bit at a time... in one app... if you’re running the Cloud version...
I’m going to have to disagree with you here, AWS has some quirks, but the UI is being actively worked on and improved but Azure is an outright dumpster fire.
Who thought scrolling sideways was a great idea? Why does the x close _everything_ and take you back to the dashboard and not just close the current pane?
Why is everything about permissions and auth so hard to find?
UI is a total joke. It's like a machine built it literally just listing everything instead of by a human mind.
And Cosmos DB? 'Request Units'? W. T. F.
Provisioning disks comes with the caveat that on AKS, Kubernetes sees things one way, but Azure bills you in some bizarre, Azure specific unit of disk space and speed and then there’s whatever the hell goes on with the pricing / units on the SQL Server instances...
Well, at least if it did that /consistently/ it would be an improved. It sometimes just closes the current pane as expected.
More generally speaking, to me Azure feels very jarring. There are panes that are logically pretty much the same but have wildly different behaviours (I'm thinking of AzureAD 'subpanes', some of which take over and there's no way of going back to the main AzureAD pane even by scrolling).
There's also the issue of the interface not being updated after changes and of having to switch panes for the change to be effective or even to reload (reboot?) the whole page (I'm thinking of setting up auto-provisioning in AzureAD apps).
Git and Linux are great though. Git is well understood and, if you don't do bad things in the first place, easy to use. It's explicit. Linux itself works great and is straightforward.
Docker is hit or miss for me.
Enterprise Atlassian is so slow, I have to often click a link, and go do something else and come back. Sometimes I even forget why I even clicked on a Jira link, having lost the thought trail.
But really what holds it back still is sluggishness. I'd take a few extra clicks in exchange for instantaneous responses to each click.
Try TFS (especially TFSVC) for a few hours. At least Atlassian fails at attempts to write software for developers/engineers. TFS is written for managers: to hell with your productivity.
But then I read git, Docker, and Linux. Now I'm concerned about your approach to any of these tools.
For example Linux. There is _a lot_ of documentation out there. Man pages and arch Linux wiki just to name two that have a massive knowledge base.
Git. I mean holy smokes, I'm going to assume you've never used any other VCS because everything else before it was hell on earth (in my opinion, people have things to say about this). I would focus on learning some git commands and I think you'll really like it. Going straight into a GUI you might be confused when you have to fix a problem via CLI when GUI messes it up.
Docker - yeah, I see your point. It's not as apparent when you're trying to pull different architecture images. Kind of a shame. Maybe Rust WASM/WASI will replace it one day (kind of joking here).
The underlying architecture of git is awesome, but even if I know exactly what I want to do based on my understanding on the architecture, it's not obvious which command and which switches to use to achieve this. And I use the command-line all day, and I am good at remembering switches.
But still, for git I've written myself a list on what combinations to what, and when I need to do something more exotic, I look it up in that list. A more consistent CLI would allow me to do what I want without lookup.
As for Linux my point still stands. I don’t use Arch Linux because I don’t want to waste time compiling everything all the time. The documentation is still poor.
Linux? Are you serious? You mean some app that you're using on top of Linux. Can't believe you dismiss one of the best open source project with a few baseless lines.
It's still in its early days, so not many resources are supported, but I work over it every weekend. It has multi region support (so you can have a fast overview without changing page), fast role switching, it's completely client side (so you don't have to share your credentials with a third-party) and of course it's opensource: https://github.com/rpadovani/daintree
As for Git, try to go back to SVN ....
Haha I used to have the same thought before I joined. But I've since understood that AWS is a set of APIs which is the default interface and everything is able to be called programmatically - the UI only tracks the API. It's not the default mode of use nor is it meant to be.
I maintain a number of Docker images that have multiarch support (as seen in the Tags view on DockerHub:
https://hub.docker.com/r/jmb12686/socat/ https://hub.docker.com/r/jmb12686/unifi https://hub.docker.com/r/jmb12686/elasticsearch/ https://hub.docker.com/r/jmb12686/kibana/ https://hub.docker.com/r/jmb12686/filebeat/ https://hub.docker.com/r/jmb12686/cadvisor/
I am forced to use it (work) and it is missing really basic features that messenger software had in the 1990s like Push-To-Talk, real multi-window (even with the recent "pop-out" functionality), and its UI is all the worst modern trends. You cannot extend it or fix these issues (e.g. plugins, custom CSS styles, etc).
Plus it is buggy, I keep not getting calls/messages/etc, and every time my computer sleeps/wakes it sits in offline until you open the main window from the system tray. Those are year+ old bugs.
While it is often updated[0], the Team's priorities leave a lot to be desired. Adding new gimmicks and tie-ins while ignoring the dilapidated state of the core software itself for two+ years now.
[0] https://support.microsoft.com/en-us/office/what-s-new-in-mic...
As you said too, the whole thing is buggy. Sometimes screen sharing doesn't work unless you reopen the app, for example.
The wiki feature is crap (at least the web version, I haven't tried the desktop version of the wiki) - formatting is a mess, markdown support is practically non-existent, it's buggy as hell, and so unbelievably slow.
If they had a feature freeze and concentrated on overhauling the UI and fixing the bugs, it could actually be a great product... but as it is, it's loathsome.
That said, apart from the shitty embedding support and their channel management, I REALLY like Stream and using it for a video lesson platform. The captioning is quite good even for my fast talking, Aussie accent and jargon.
That said, beyond novelty I'm not sure how useful a CC feature is.
Terrible audio focus on a single speaker, it really forces you to speak like on these old CB radios where you had to say "over" every time you were done talking.
The single window UI follows the mobile-first trend but is awfully inefficient on my three monitor setup, even more so with screen sharing.
Plus, our admins lock the whole MS Office 365 down so that there are no APIs or third-party plugins allowed. Data in it is just trapped.
Such a waste of human potential.
To be fair, that's a feature from team's perspective. If your admins are worried about sensitive data leaking out at all, and refuse to have a whitelist of approved 3rd party integrations, then that's on them. Imo it's a good thing to allow admins to do.
It's horrible.
I use the Linux one and it actually works surprisingly well. Video calls, screen sharing, etc.
However, for some reason, if when you start Teams the mic is unplugged, it will never detect it if plugged in afterwards. I often use it on a desktop pc without a built-in mic, and I only plug my headphones in case of a call. 100% of the time I have to restart Teams.
Oh, and as others have said elsewhere, it's painfully slow. There's a constant sort of lag about it. For example the highlights changing in the chats list when moving the mouse on top of them...
A UX that encourages replying out of thread because it's too darn confusing.
Unable to quote messages on desktop, but you can on mobile.
Unable to be signed into more than one Team. Have they never heard of consultants? At one point last year I had 4 separate Teams I needed to be signed into. Microsoft's solution have different Chrome profiles (Yep, Chrome, not Edge) for each one. My laptop only has 16GB of ram, so that didn't last long...
Super unclear UX around document viewing. I open a file in Teams and if I have write access I am instantly saving all changes. So many times I've shared a document for feedback and then had to recover the original version from Sharepoint because people changed a lot of things without Track changes on.
Based on Sharepoint. 'nuff said.
Wait, what? Do threads move when they get replies or something?
If you are trying to get students to do work, maybe use something like planner, sharepoint or any of the other myriad of tools actually designed for collaborative working rather than chat.
If you do it like teams does then you don’t need an activity view and a dedicated threads channel.
My favourite file access "feature" of Teams (I verified it was in fact working as intended, at least until the pandemic and the warts started getting more obvious) was that class teams had read/write access by default for all files in a team. This meant every student in a class team could modify what you uploaded by default. Of course fixing this required opening up the team in Sharepoint and fiddling with permissions, totally something every teacher is expected to figure out right?
Not really a software feature, but their update rollout style is awful as well. Announce features 4-8 weeks in advance of rolling out patches. Inconsistent rollouts, so my home desktop might have the latest feature patch, but my work laptop won't (I was around 4 weeks out of sync at one point). Manual checking for updates won't apply the latest patches. Meanwhile their consultants in education are crowing about all the new features or bug fixes.
I actually like some of the feature set, and it's very useful in an educational setting now they've brought some of the new features online (3 months later than would have been useful for the pandemic lockdown in my part of the world, but oh well), but enough frustrating elements that I'm constantly supporting workmates in its use.
1. There is whitespace between messages
2. My replies are a different color and right justified
Most of the other common corporate chat apps just look like a wall of text to me.I would turn these banners off, but as far as I can tell, there is no way to get badges to show up on the icon (only other cue to remind me people want to talk to me) without these banners.
I really wish there was a 3rd party client that was all native that I could use. Teams is definitely the worst part of my software stack.
But yeah, notification management is basically a pain in Teams. Not sure if it's still the case, but even on Windows 10 it would use its own notification window instead of the system one...
Oh and the most insulting part is how they treat its users like children. You can use giphy to embed a gif but if you search for any “bad” words it says no results. Search for fuck, and it hides them. Everyone using it is an adult, why apply this conservative boomer “nO sWeARIng alLOweD”?
To top it off if you instead copy paste a giphy url it doesn’t embed that properly either!
It's the primary platform for entire schools, now. Whoopee. So you're going to get lots of new child protection features (that fail at their intended purpose) added.
Infuriating.
Generally I don't have much time to mutter about Teams because some Atlassian monstrosity is busting my balls.
Everything from WhatsApp to SMS to Slack has a unified list of chats. Teams does not.
Teams is wrong.
Search is broken in it and if you scroll back a few days on a conversation it just stops loading messages...
It's just awful.
The plugin will try to hide this behind a "Join Teams Meeting" hyperlink, but on more than one occasion I've had the link converted to plaintext, leaving the recipient with no idea what they're supposed to do. So every time before sending a teams meeting from Outlook I have to extract the mess of a URL and manually paste into the location field.
Microsoft is pretty cool with training though. During the training they said this wasn’t an issue because the url gets converted to the file name on display. And we’d only ever want to paste urls into outlook or teams, nowhere else.
Apps are not allowed in my corporate deployment.
I’d settle for “save to PDF”.
Leaves a LOT to be desired.
1. The UI took the fun out of well, whatever, Slack was/is. For some of the common interest channels at work, I see less people going to them.
2. I'm in a group where we frequently need to share images (mostly plots) among the members. Sometimes they just disappear. Yes. You upload an image during a conversation, come back to it a few min later, its not there, and the person at the either end of the chat hasn't seen it either. Guess what OS I'm on: Windows 10 Pro.
Because of this I've resorted to using the web version of teams occasionally, which doesn't seem to suffer from this issue.
3. This one is actually baffling: when I try to upload an image in 2 different conversations (one after another), the second one complains the file already exists. This is during upload.
4. Inconsistent UI: did you know you could reply to individual messages from the Android app for Teams? Doesn't work on web or the windows desktop client. So when I am catching up on a conversation, I occasionally switch to the mobile app to reply to specific messages.
So that's my workflow: the Teams website opened on my laptop browser for most of the messaging, Teams running on mobile, in case I need to reply to specific messages, and Teams running as an application on my laptop for video/screen sharing calls.
5. You cannot specify a Download folder. Yes that's a thing in 2020. [1]
But, yeah, "costs". I miss Slack.
[1] https://microsoftteams.uservoice.com/forums/555103-public/su...
That's because, bafflingly, it uses a local directory-cache for files. Think of it as the "Downloads" folder for a browser. Any time you upload, Teams will try to save it to your local cache first; if it finds the old file, it will whine like that.
Any time you want to upload a file, you should really not do in Chats but in Channels, which have a separate area for each Channel (backed by Sharepoint). Except in some companies (like where I'm now) people for some reason use Chats almost exclusively instead of Channels, so the whole thing becomes awkward: go to the channel, upload, get the link, paste the link in chat.
I guess it could be worse, it could be AOL.
people for some reason use Chats almost exclusively instead of Channels
The fact that there even needs to be such a distinction is itself a problem. They're both conversations, except with some slight differences? That's just asking for confusion.
If anything, this points to poor use-case study and/or execution. There is a case for channels and for individual chats: details of how files upload happen should be dealt with under the hood.
Frankly, it feels odd even talking about this issue; we are discussing file uploads, worth a few kBs, in a messenger. This really, really, shouldn't be a problem :-)
Considering that browsers have also adopted this "modern stupidity" for a while, I'm not so surprised, but the lack of a "Save As" option definitely perplexed me the first few times I've tried to download something --- clicking Download and expecting at least a choice, but seeing "download complete" makes me think where did it go!?!?
The response to that feedback item is baffling, but it's definitely not an uncommon thing for a big bureaucracy like MS. The actual code change probably takes minutes, but the mound of process associated with it causes these sorts of anti-decisions to occur.
It's so infuriating.
Mind boggling that continues to make it past UAT.
I have an issue where if there's any sound in my room in a meeting, it reduces the volume of someone else talking to me even if my mic is muted. My workaround is to only keep one earbud in and constantly listen for cars driving past outside so I can crank up the volume in advance. So Teams is literally painful to my ears.
The killer feature really is that it is a dream to deploy for admins who already had AD. I pushed it by group policy and sent an email telling people to log in with their existing Office credentials. I can't remember what I did with macs, I think I may have just told users to grab it from the appstore.
Think of all the admins faced with having to move their whole company to home working with no notice for Covid-19, you can see why Teams is an app that has found it's moment. Teams has been the saviour of many companies during the crisis. I'm sorry but minor UI niggles (which I personally don't find problematic) just pale into insignificance.
>The killer feature really is that it is a dream to deploy for admins who already had AD.
Tries to be a central repo for all of your business docs.
Chews RAM like it’s its prime directive.
Can’t actually find the centralized doc unless you magically remember the channel or team where it was originally shared.
UX is actively hostile and so inefficient.
It's probably possible to mod it, given that it's Electron, and definitely easier than doing same to a native application, but the relative lack of configurability is certainly irritating.
The amount of RAM and CPU it uses is also ridiculous even in comparison to Slack, which was already pretty bloated.
(I wonder if any thirdparty clients have been created --- at least two exist for Slack, but I haven't looked for Teams.)
I've also been forced to use it, and have considered doing some RE and writing a Win32 native one to show MS what it should've done --- if anything I expect they should have plenty of Win32 programmers who know how to do it --- but like many others, have too many things to fix and not enough time for them...
This is on Windows computer too, like, how do you guys not know how to detect an Internet connection on your own operating system?
At the risk of sounding like an old curmudgeon, these Microsoft Teams meetings never seem to have a dial-in number (my laptop microphone is horrible). If I try to use my computer's microphone to speak, it asks for camera permission at the same time. I don't want everyone to see me in briefs, just listen to my voice. So it's apparently either share my video and audio, or just be silent. I've been choosing to be silent.
I've spent the majority of my only two Teams meetings trying to figure out these issues. I never had a problem with other apps like GotoMeeting, Zoom, or Discord, or even Skype (also owned by Microsoft)
Maybe in the past, or on some clients only. On the Windows client you can currently operate camera and mic independently and choose how to respond to each calls (with video or audio only).
For instance, on the Windows desktop app, the word "I've" gets marked as incorrectly spelled. When you click on it to see the spelling suggestions, it suggests "I've". Clicking on the suggestion does nothing and it continues to flag it. This has been an issue in the app for over a year and I refuse to believe that the developers are unaware of it. It's a very common word to be typing.
Another problem is sending files or images. You have to wait for it to finish uploading before it will let you send the message. Not only is it pretty slow (I would estimate 1MB/s, whereas Discord uploads at my full 12MB/s), but sometimes it won't let you send for a couple seconds even after it finishes uploading.
A couple months ago Teams added read receipts, which is really nice, but they don't always work. My work has them globally enabled and everyone is on the latest client, yet each person only sees them for certain other people. I don't see them for anyone, but my coworker sees them for about 50% of our staff.
Notifications are also buggy. Teams will just randomly decide to not give you notifications for messages or calls. I've missed multiple messages in Teams for days because it never alerted me. I had to actually open the specific chat with that person before I saw the message. I've gotten into the habit of checking Teams every 15 minutes because of this. Teams for Android also seems to send notifications a good 30 seconds before the desktop app does, so I usually keep my phone on my desk solely for Teams notifications.
I would also like to point out that Microsoft built a general-purpose notification system into Windows, yet Teams uses a completely custom notification system. This completely baffles me as they aren't even following their own company's best practices.
The spelling situation gets better than this. You're actually forced to use the Teams one. For example, on MacOS, text fields get "free" spelling and grammar by the OS, which honour whatever settings you've configured. Of course, Teams doesn't use MacOS text fields, so they're on their own.
I live in France and so use French in Teams, but I absolutely hate having programs in several languages so all my programs are in US English. If I set Teams to use English for the interface, guess what language it uses for spelling? I'm still looking for a way to tell it in which language to check spelling, but we'll have probably switched to the next shiny thing until this happens...
It'll have a little text prompt at the top with a Sign In link.
But if I join a meeting, and I'm signed out, I just get a generic error message. It's like they didn't even code to check that I'm signed in when trying to join a meeting and advise me. Sometimes I have to restart the app after signing in to make the meeting link work again. Just feels janky.
I also had to mute it because on my budget work-provided laptop the Windows 10 notifications for every one line message take up a few inches of my screen which is pretty annoying when I'm working.
Audio is frequently bad too when people speak alternatingly. The new speaker has 2-3 seconds of muffled audio until they're clear again. Especially annoying when speakers rapidly change and all you get is semi muffled audio all the way.
Also the inability to respond to a specific message on desktop has baffled me. It seems like a basic functionality in chat software these days but teams only decided to give it to mobile? Just... Why?
And many emoticons have been renamed or simply removed. Why reinvent the wheel ?
They also adopted the seeming good policy to ask users to vote for future bug fix/feature requirement, which of course leads to more feature release than bug fixing. But then this is the norm of software development nowadays so I really don't think anyone can change it.
I use it and love it every day in both dev and prod, but I also really kind of hate it.
I'll keep my complaints short.
There should not be a system-wide daemon. (Or any daemon).
It should not require root at all (no setuid either).
From outside the container, the container and its processes should be a single process (with threads). (Like glueing a bunch of processes together.)
The containers should be nest-able to arbitrary depth without performance loss (at least to say, hundreds of nestings deep.)
Docker-compose should not exist, instead it should be replaced by nesting of containers.
Basically, I think it needs to follow the UNIX philosophy better by providing simple abstractions that can be combined easily. The containers would visually look a bit more like an old virtual machine (single process) than our current containers.
These changes probably require a bunch of kernel hacking, but I think it would be worth it long-term for a cleaner architecture.
It appears there are some movements into this direction thanks to podman, but it's really not there yet, especially with nesting.
Also, it wouldn't really be a product at all but just a built-in tool on Linux systems.
Strongly disagree about Docker Compose though - I actually really like the ability to compose a stack of different containers together with some simple yaml.
It could even be compatible with docker-compose and it's yaml.
It meant that a bunch of my beta users suddenly had broken PhotoStructure configurations because their docker-compose implementation had received a minor update. Why require a version to your configuration file and not increment it on breaking changes?
I ended up tearing out the script that helped people create their own docker-compose.yml file, and replaced the installation instructions with an annotated call to `docker run`.
And don't get me started on how janky it is to update existing containers to new images without docker-compose: there seems to only be one third-party tool to assist with this automatically (lighthouse), but is essentially abandoned. I'd love to be wrong about this, please point me to other solutions if they exist!
UNIX, and especially Linux, is a monolithic design. Even such an OS is able to separate user processes form each other all system parts run by concept in the form of a "big ball of mud", with "god-like" capabilities available to them by default. Sure, some internal "barriers" have been added, and per process capability dropping has been retrofitted, but this is backwards form the architectural point of view. Cutting things in peaces after the fact is almost always way more complicated and awkward compared to designing things in a modular way form the get go.
This is related as virtualizing a modular OS is almost a no-brainer (conceptually). You just need to start additional instances of the required system servers / modules / whatever-you-call-that-parts. Compared to that virtualizing a monolith is like trying to construct a kind of Ouroboros: It needs to run itself (with an altered, usually constrained view on the 'outside' world) from inside of itself; and it can't just globally drop the "god-like capabilities" its execution context provides—like it would be possible with an external process. It needs to "hide or manipulate things in front of its own eyes" even "it" has the "all seeing eye". Or to put it even more metaphorical: "A God tries to use his divine powers to constrain his omnipotence so he can lie to himself about the things he sees, without himself ever being able to look through this jugglery". Formulated like that the architectural issue is obvious, I guess.
[1] https://www.youtube.com/watch?v=PivpCKEiQOQ , and I just learned it seems he was also a Kubernetes fan. :-)
No idea if this is possible.
Someone will eventually make a fortune on that idea… ;-)
I don't miss Docker.
Perhaps the problem is Darwin.
It depends quite a lot on the kind of I/O and how it's implemented, so design choices matter.
If there's a full Linux kernel inside the VM, then you may as well do I/O inside the VM as well, using something like virtio and a ringbuffer of async block device commands to the host, or at least batching them. That will be quicker than relaying every POSIX file operation synchronously to the host, because the number of VM exits is much lower in the former case.
Microsoft is a much more developer focused company IMHO. Still kinda astonishing how many developers choose MacOS.
0: https://github.com/docker/roadmap/issues/12#issuecomment-652...
I particularly love the quote, The kernel developers view of the docker community is that in the rare case they can actually formulate the question correctly they usually don't understand the answer.
There is only so much that you can say to clarify things to someone who is thinking about everything wrong and doesn't realize it. :-(
Is there a microvm that can run chromium with puppeteer?
I've been thinking that server side chromium might actually turn into a pretty badass application server platform ... security, async, remote debug, webasm for cross platform secure binaries ...
Some efficient infrastructure for deploying is needed -- but should be far easier to create a fast server runtime for puppeteer+chromium than it is to create a generic container execution environment ... -- so the microvm approach seems like the right one for what i want ...
I guess I am one of those so I got to ask, is the proposed solution of unikernels something we had before but lost in favor of containers, or is it something completely new anyways?
It does look like it might be the latter so why blame developers for using containers due to lack of choice? If unikernels are better and just as easy to use then I am sure people will convert.
He blames a lot on marketing and marketing lies but his company (https://nanovms.com/) seems to make it just as hard to figure out what's going on with the apparently only option being a schedule a demo button.
Come on, I remember Docker being that fancy new thing that people at university taught themselves and to each other around ~2014/2015. That hype was well deserved and if you want to compete with that you can't just decide to brush it off as wrong and misguided.
At the risk of pointing out that I also might be one of those that the quote above is referring to, I gotta ask:
Is there a technical reason why I shouldn't be able to eventually just replace Docker with a micro or unikernel? Same or similar style of image definition, completely different runtime technology?
Isn't it up to the kernel and platform developers to build the tools to make that happen comfortably for all of us naive container users?
Many legacy pre-docker apps were able to run inside docker without any dev work.
Very few apps would run on unikernel without dev work (porting). It's a different kernel after all.
This article completely conflates containers, orchestrators and schedulers in every aspect of discussion. Something will schedule and orchestrate these microVMs. Something with orchestrate secret manifestation inside those VMs. Something with operate on the host to supervise the VMs (which necessarily will have access to the guests).
So far, every microVM platform with any adoption uses Kubernetes to orchestrate. I don't know, maybe someone is running Kata on Nomad or something, but I've not heard of it. And so far, most (all?) microVM implementation utilizes namespaces and cgroups either inside/outside the VM or both. This includes Chromium's use of OCI in Crostini (their Linux-VM-on-ChromeOS).
Whatever comes along and replaces Kubernetes will push the envelope and will reduce the default blast-radius, will undoubtedly entirely rethink how authorization and namespacing work. The core would be much more minimal. And thousands of lines of generated Go would be replaced with <use your imagination>. And progress will have happened.
I get it. Hating k8s is cool. I hate it too, for a whole myriad of reasons. But it's actually frustrating how bombastic and off the mark that article manages to be. And it's too bad, if it had just stuck with "Kubernetes isn't the future, and actually understood the problems with it, it could've been a decent rant. As-is, I think it does a pretty poor job of justifying the title. (And so far, microVM workloads look to be worse for "image" security than Docker, as the tooling (outside of Nix|Guix) is somehow even worse.)
When I'm staring at the worst of it (unsticking myself or worse, trying to explain why it's like this to a coworker who is stuck), I keep thinking that there's a standard for making these containers, won't someone get around to rewriting the user-facing bits with the modern requirements designed in from the start?
But it's good enough, so we are probably stuck with it until someone comes up with a better idea to base application compartmentalization upon. Like an OS that actually does what I was promised 25 years ago and am still waiting for.
But one pattern I see all the time is:
RUN foo && bar && bletch && ...
They should have a way of achieving the same thing (just one layer) without multiple commands and added to the same lineI'm pretty sure this is doable today. It's a monstrous hack, and I've got no idea what the performance overheads would look like, but as a way of hiding a mess behind a clean facade, I'm not aware of any reason it shouldn't work.
They're trying to use built-in Linux LXC container features.
The only thing that really needs setuid are network namespaces to setup the bridges. Userspace workarounds are clunky and slow. If you can do without network isolation then this would be possible.
> The containers should be nest-able to arbitrary depth without performance loss (at least to say, hundreds of nestings deep.)
Multiple levels of nesting are ppossible if you disable seccomp. I don't know if it scales to hundreds though. Overlayfs has hard limits and btrfs snapeshots don't scale infinitely either.
> Also, it wouldn't really be a product at all but just a built-in tool on Linux systems.
Well, there's systemd-nspawn and machinectl
> Well, there's systemd-nspawn and machinectl
There's also podman, which is a drop-in replacement for docker, and buildah, which does daemonless container builds. I switched to them from Docker recently and will never look back.
Linux is partially to blame as well, since the container/isolation APIs can be hard to use correctly, and many people have latched on to docker as something that sort of works.
It also seems to me that the failed security and isolation designs, and painful management and administration designs, of every mainstream operating system have been primary factors in pushing us toward VMs and containers in the first place.
I think the biggest reason people like Docker is that Docker makes it so easy to distribute containers.
And all this "Google phone wants to have an access to calendar" after each call. I do not know why it needs an access to calendar, I'm not going to give it one, so just stop pecking me. But it will never stop, it seems.
And a lots of useless stuff I cannot delete. I stopped it from popping up with stupid messages, but I cannot delete them. It seems that I will be forced to replace Android with PostmarketOS.
One of the worst things about iOS is the time picker. The numbers spin like a slot machine. I think Android nailed it in this specific app widget.
That's the worst way to pick a time that I've seen and used. It requires a lot of swiping, combined with looking for the precise moment to stop the scrolling and not overshoot.
Thankfully in some Android variants it's replaced with much better alternatives. Google Pixel's stock apps in Android 9 and 10 use a round watch face for time points—where you pick first the hour, then the minute with one tap each. However, this still requires rather precise finger work (and has animation in the middle). The best interface IMO is what Pixel and Philips' phones use in the timer: you just type the minute and the second (or the hour and the minute) in four digits, with a huge number pad on the screen. Philips did better here because its pad occupied most of the screen so the tap targets are larger. The benefit of this interface is that you easily develop muscle memory for it, practically no aiming is required.
‘Simple Mobile Tools’ make pretty good apps which are open-source and are present in F-Droid (https://www.simplemobiletools.com). Alas their ‘Simple Clock’ uses scroll spinners in the timer, but perhaps you could ask them to reconsider. I can help with screens from the better interfaces.
Voice commands really shine for cooking.
It's the kind of thing that seems trivial, but once you've used it, is so blindingly obvious that it's the Right Way To Do Things that you'll wonder why every microwave doesn't do it.
I'll never buy a microwave without it again.
Her old tablet cannot upgrade to newer android version, which prevented zoom from updating, and caused zoom to refuse to work.
I bought her a new tablet. A friend set it up and was able to do a call. Everything was working. That was last week.
Today, I spent 40 minutes on the phone with her because after boot the tablet was showing a black screen.
No possibility for interaction.
Eventually, after many reboots, she noticed some kind of google security warning which instructed her to swipe up. I had to train her to swipe up over the phone.
We had the call, eventually, and I still have no idea what her tablet is asking of her.
Common problems, for me:
- Camera stops working, it seems some apps take over it and it won't work again until I close all apps
- Can't hang up on phone calls because the proximity detection that locks the screen bugs out and won't unlock until after the other person hangs up
- Occasionally gets stuck in a loop where it unlocks then locks again instantly, and I have to power cycle
- General UI lag on apps that should be simple like the clock
- Sometimes it just seems to get stuck on a black screen but eventually it wakes up after a number of minutes
As for the timer/clock there are two features I'd like, maybe there's a way to get them. 1) Have a small counter running under a timer after it expires, so I can tell at a glance how long it's been since then (useful when setting a follow-up timer for cooking after fussing with stuff) 2) Let me set an alarm for a time on a day without having to select it as a repeat, which means it'll run again the next week if I forget to unset it.
> And a lot of useless stuff I cannot delete
Well yes, the os is made by a monopolistic ad company that tries to get your every last bit of sweet, sweet data through its services, but there's an extra step in the distribution chain where the hardware vendor can throw as much garbage into the system rom as they want. I deem android phones without lean cfw pretty much unusable.
My previous phone (ASUS ZenPhone 2) had nice UI like you described. I don't remember really, maybe it was not the stock app, but the clock from Simple Mobile Tools. My new phone (Xiaomi Redme 8) has this stupid slots machine instead of UI and the clock app from Simple Mobile Tools works unreliable.
Microsoft Teams - drains my battery 1% every two minutes
Slack - the original “let’s forget everything we’ve learned about communications and try to discover it again”. From the threads feature nobody wants to the inability to silence bots or plugins, Slack never fails to disappoint. They pitch it as a knowledge archiving tool but unless you know exactly where, when, and who said something good luck finding it.
G-Suite has been awesome for almost five years now, though it can be problematic when you need to communicate with people outside your org that don’t use g-suite for work. Hangouts drains my battery fairly aggressively also but not as much as Teams, so I’ve switched to Zoom for video - plus it works seamlessly reguardless of which email program people use.
Really? That's the pitch? That's hillarious. That's absolutely not what I would have said it was good at.
It was always kind of funny that the thing Notes was the worst at--being a mail client--was also its primary function at a lot of organizations.
I was taken aback when I first found out the Notes client app is a customized Eclipse build.
As for Eclipse, it's more like IBM found a way to wedge Notes (written in C) into an Eclipse wrapper, likely fueled by the early-aughts mania to make everything a portal/portlet.
Some other apps have used Eclipse as a host, DBeaver for example. Although I believe DBeaver is principally written in Java.
In several years of big data engineering work, I've believe I've seen only one application that couldn't be refactored into a simple multi-instance framework-free program. People use the big data frameworks as glorified distributed-job management tools, and the resulting systems are more fragile, more complex, more vulnerable to weird version compatibility errors, and less efficient.
Eventually it was realized that getting a larger box and just spend sometime to think about cleaning the data is enough. But that didn't sound as good.
I have t used it personally, but the documentation is definitely there around distributing work and getting results back from nodes/etc and the community is very helpful.
Do you have any tools you like for job management without all the distributed-systems baggage?
I've heard folks advocate for Make for this kind of thing, perhaps that or some other orchestration tool that deals with job dependency graphs would be the unix way? (Having a nice way to visualize failed step would of course be a plus; a common use-case is "re-run the intermediate pipeline, and everything downstream".)
However, so far I didn’t switch from rundeck & make.
I had a project in college where we tried to add a feature to Hadoop. Half the battle was spent trying to pass their test cases and figuring out why we couldn't build the program due to dependency issues.
Even though we were trying to build w/Hadoop's docker image, each team member had issues unique to them. The documentation definitely didn't help.
FWIW, I feel your pain on a daily basis, but I do like Hadoop as a low cost massively distributed db.
Data Engineering team used it at my old work (in concert with Notebooks) and it resulted in some of the worst code I’ve ever seen, and most inappropriate use of resources:
9 node DataBricks cluster to push 200gb of JSON into an ElasticSearch cluster. This process consisted of:
* close to 5 notebooks. * things getting serialised to S3 at every possible opportunity. * a hand-rolled JSON serialisation method that would string-concat all the parts together: “but it only took me 2 minutes to write, what’s the problem?”
* hand rolled logging functions
* zero appropriate dependency management; packages were installed globally, never updated, etc
Nothing inherently about that workflow actually needed spark, which was the most egregious part. The whole thing could have been done in a python app with some job lib/multiprocessing thrown in and run as single container/etc.
I think it's likely that some subsection of Spark users are the type to over engineer a project, but I'm also confident they'd over engineer a much simpler framework as well.
Signal has consistently been a pain to use for my moderately sized (<15) friend group chat and for 1-on-1 threads too.
Messages sometimes don't arrive or arrive out of ordered and appear in the wrong order, scrolling up has random jumping behavior, opening the chat in iOS causes my audio to stop playing, there is explicitly no way to back up any of the chat, copying multiple messages is broken on desktop, search is super slow and search result previews have been corrupted for as long as I can remember, sharing links through the iOS share menu causes the app to behave super weird or just crash (my mom can't share links with me through Signal), you can't mute conversations on desktop (IIRC there have been two PRs implementing this feature in the last 2 years; both not pulled), mutual verification is so frustrating that I literally got yelled at when trying to explain it to my parents, I sometimes can't take pictures from within the app, when I can take pictures the viewfinder is half the resolution of the actual camera and everything looks blurry, the most recent app update causes a several second lag whenever I open the group chat, and I am throughly convinced that every issue I've mentioned is so low priority for the people running the show that they won't get fixed for a very long time. At least we have stickers now.
Seriously though I believe in what Signal is doing and will probably continue to use and suggest the app. But it will hurt every time I do it.
Signal desktop has been broken for almost a year for me "Error handling incoming message" is shown instead of each message. Theres no easy way to transfer messages between devices out-of-band when migrating to a new device (e.g. via encrypted binary backup blob). Messages constantly fail to arrive when they're sent, I often get them days after the person sent them. etc. I could go on...
I feel like I've seen Signal problems appear and get fixed, like for a couple months the desktop client just wouldn't get half or so of the messages I received, and then one day it seemed fine again. But the long deluges of "Error handling incoming message" have been present, as far as I can tell, for the entire time that I have used Signal Desktop, perhaps 3 years. I guess I consider it a feature now. :/
Gated behind enabling two factor authentication for some reason. Which I'm never enabling because (A) it's impossible to turn back off and (B) you need a second Apple device for the second factor.
Looking at the documentation though, I think I should retract my statement about Signal featuring iCloud backups... according to the docs 1) you can only transfer your data from one device to another and 2) the transferable data doesn’t include message history ️
These types of programs are uniquely terrible for reasons described in other posts - the people doing the development, and setting the priorities for development, have no connection to the people who need to use it day to day. Different offices, rare personnel crossover, systems specifically designed to discourage direct communication. They're usually big and complex enough that a ground-up redesign is either impossible, or will inevitably gather enough poor management decisions to be about as bad as before by the time it becomes remotely practical to use.
I recall one place where a critical application required to record data and deliver it to clients in a realtime application was based on an X-Windows application running in Windows XP using the one X-Windows manager that sort of worked there. Yes, really. I know it's a super weird combo, but it's what we had. I ended up moving into a related software department, and got some behind the scenes info. Turned out that there was just one guy left who was still actively coding for it, already past retirement age, but kept on anyways out of desperation, because nobody else was willing to touch that codebase. There was a project to build a more modern replacement application, with all of the usual corporate bloat and ever-slipping deadlines. It wasn't great, but at least it ran natively on Windows 7 and had a better UI. I think they moved over to it entirely after a while, but I left that place before that move was finished.
I've actually decided to move my entire infrastructure from Digital ocean to AWS because of this captcha before login nonsense (thankfully DO reverted it just in time)
And on top of all that, the frustration that I know I’m not a robot the entire time.
Infuriating
I've noticed that in the more extreme edge cases, it lets me through anyway. Maybe other people aren't paying enough attention to notice that there's actually a difficult-to-see street sign in that particular square.
Sometimes I feel bad that one day, a Waymo car is going to miss a stop sign because of me. But then, I also resent being used as a free mechanical turk, and they should know better than to rely on random people from the internet to build safety-critical systems.
"Folks, we need an absolutely massive data set to train our text recognition algorithms. We need people on the internet volunteering this data."
"Impossible! What could we possibly offer them?"
But then, when software developers realize how much Jira gets in their way, the good ones do their best to avoid using it. Which results in Jira being a great tool for middle-managers to query a very stale database.
Jira can do many things. Or so I’m told. I just don’t think it helps me as a dev.
I use jira at work and I like it.
But our use case is maybe more limited/liberal. For us it is:
1) list tasks to do and how tasks are linked
2) archive discussion about issues and integrates with butbucket (so in commit it will link to ticket to read about why something was done; similarly from issue discussion I can see the relevant commits; this also goes well with history either by looking to linked issues or blaming in git and getting issues that resulted in the commits)
3) enables pointing other devs to something (I did some partial task, need help, I assign or cc someone else, they contribute to the issue as appropriate and then hand it back). Helps ensure all relevant discussion is centralized and persisted.
What we don’t do is use it as an explicit performance/formal sprint tool... there is no middle manager questioning me about something I wrote/didn’t write in jira. is this where people start to hate it?
When people complain about bug trackers, they probably need a new outlook on work. They need to aggressively prioritize tasks. They need to be in a mental state where they're happy working on the highest priority thing, not the most interesting thing. You can't get there by buying a new tool for $9.99 per user per month. You probably need a vacation.
At my last job, we switched from Jira to Github Issues to Asana. Each tool had the same problems -- bugs were filed faster than they were fixed. I am personally okay with that -- I know that most of these things will never be done, but it's nice to park the idea somewhere. But to others, it's crushing, and although people will complain that they don't like Jira's UI, what they really hate is that realization that they will never "finish".
NB: Not associated with Gitlab the company in any way.
Jira recently overhauled their UI to make it more similar to Clubhouse, but it still isn't as good. Jira is still slow and buggy. Clubhouse also has seamless integration with Github which makes it feel like I am using GitHub issues when tagging PRs, etc. There is also a BitBucket integration, but haven't used it. To me Clubhouse does something that no other similar tool does: make PMs and engineers happy.
Whenever someone suggests we use another tool, it's immediately rejected unless it can be integrated with the atlassian suite. So if we want to run some kind of vote for understanding how our technical debt affects different parts of the project we can't use a specialist (free) Condorcet app, such as this https://civs.cs.cornell.edu/, we have to use jira's voting system.
On your point about inserting code blocks you should be able to type `/code` and hit enter. If you’re not using the newer version or a page with the new editor, I think you type `{` instead of `/` but it’s been a while since I’ve used that one.
{code:java}
... some java code
{code}
to mark off a code block, and to use Java syntax highlighting (for example).That's when you are editing in "raw" mode, which, incidentally, I haven't been able to discover how to do in the New Issue View (which I finally discovered how to turn off, that is to say, switch back to Old Issue View, globally -- it's under account settings, yay! The "New Issue View" is a lab setting you can turn OFF.)
You can also change an issue from the new view to the old view by selecting "switch to old view" from the More menu (three dots).
I have to say, it's painful using Atlassian tools after having worked with GitLab for 5 years... I miss being able to use standard markdown in Issues, and editing the Wiki using Git/vi instead of in a text box in a Web browser, with strange markup.
And then my current company picked up SalesForce.... It's like relieving the horror.
JIRA is terrible to manage and it's permissions system is rubbish but it does issue management okay.
But a few weeks ago I switched to Syncthing[0], and it's the best software transition I've ever made. Opposite of everything Dropbox is now: fast, simple, and I don't even notice it running in the background. Seamless setup, and FREE. (So good, you're gonna want to donate anyway.)
Otherwise, its great.
I'm using a Moto g5 plus phone with android 8.
Also moved to Syncthing. And equally happy.
I'd love to find something for an environment where there are many people (many uncomfortable with technology) sharing a folder full of code, documents, and media for a project -- something that acts as a robust safety net. OneDrive is ok but has failed us multiple times (failed to upload, failed to sync, filed to notify).
Can Syncthing handle anything resembling an enterprise (ok, enterprise-light) setup? The last time I tried it on Android (~2 years old), it was painful, and that was just for my own personal backup, not a shared environment.
Thanks
- syncthing does one thing well. However you need to be your own server admin. Which is great if you are or your company will do it for you, but I don't want to do it for my personal stuff.
- syncany is exactly what I want, but it didn't get out of alpha, the team apparently didn't make money and have stopped maintaining it, and it still has some scary bugs, although probably my needs are somple enough that they woulnd't be triggered.
- cryptomator looks good itself, but you need something else to do the cloud storage part, which ideally supports webdav. Unfortunately the davfs2 crashes my linux box and the other alternatives don't seem to be much better.
- nextcloud and owncloud again want you to be your own server admin
- the guys benind tahoe-lahfs have a reputation for solid crypto and reliability, but it is complex to run. privatestorage.io were going to do a managed version, but it doesn't seem to have materialised yet.
- There are solutions like internxt and ipfs where everyone stores everyone else's files. I'm not sure I trust that not to go down without warning.
- proton are supposed to be coming out with a protondrive, which hopefully will have an open source client, although locked into them.
- There are proprietary ones like tresorit and spideroak, which have closed clients. I may have to grit my teeth and use one of them.
- A bunch of others I didn't evaluate yet.
What I want is for someone else to do the server admin part (availability and backups), but without my trusting them with my keys, which I only use with open-source client code. I don't mind paying a reasonable amount, but apparently this is hard.
I just switched to it from Dropbox.
I tried adding ignores for parts we didn't care about so much and fiddling with various settings, but it was still quite problematic.
Although I would prefer an open source solution, I'm looking at trying Resilio Sync next.
It has an automated component that routinely syncs directories, eg. to a remote target if you map via sshfs
The company I work for uses this for internal communication. Workplace is basically the same Facebook and Messenger, but tweaked for a private group of people.
The problem is that, because this is basically the same Facebook, it is designed to keep you "engaged". It uses all kinds of patterns to keep you addicted to your timeline and search for attention. Rather keeping you informed with the important topics, it distracts you with a lot of irrelevant stuff. The algorithm will always show you something that keeps you scrolling. Huge time waste.
The motto of this software is "Bring your company together". And it works exactly as Facebook's motto, "Bring the world closer together", in the sense that it does exactly the opposite. The software has all sorts of mechanisms to generate controversy. Because controversy is what ultimately drives more engagement. Reactions, memes, notifications. It makes you fight with your colleagues about silly things, and it makes it really easy to derail any sort of constructive conversation.
Imagine having to try a technical conversation in this platform and then people are allowed to "react" with an angry face or a silly animated GIF. No argumentation required. And those reactions will bring more reactions. And in those rare cases when some meaningful discussion actually happens, then the thread is quickly buried by the constant stream of new things.
If your company is considering this, avoid it like the plague.
And I don't even see the need to delve into all that "philosophy of communication" and "culture" you are talking about, the chat itself is just the most inferior one of all I've seen since early 2000's, and I have to use it for daily communication, it's maddening. It lacks the most basic functionality you could expect from a messenger in 2020.
Meanwhile it finds my portable Postman install no problem, even before I'd ever run it. I don't get it.
While, not on Windows alone, and I doubt this will change, I also think that close and maximize buttons on the corner of windows are too close that I had accidentally closed web browser windows many times. Of course we can just use shortcut keys, but I don't think that fixes root of the problem, and I am also now immunized on how window border buttons look that it might look aesthetically unpleasing if we depart from how it is now.
Many other software also suffer from this design quirks where buttons with very opposing outcomes are somewhat too close to each other, that you need to slow down and be careful.
The file Explorer is sometimes super slow (especially when dealing with media files, which it insists on analyzing first before displaying their folder), hangs on some FLAC files and frequently crashes.
It somehow can't handle pretty standard media files (again some standard FLAC that work everywhere else, variants of H264 or H265, etc.)
The networking works when it wants to - I still struggle to swap files between two Windows 10 systems on my home networks (one always can't see the other machine, and when I move files it's slow as molasses despite having blazing fast Wifi).
Work: Win10 fails to manage windows - doesn't remember where they go, can't reopen a set on startup. Don't allow pinning above other windows anymore. Opening a Word doc maximises the other 4 Office windows I have open and makes me spend time shuffling Windows around. So frustrating. There are 3rd party fixes for these things but work doesn't allow that, be nice if they just weren't broken. Win10 as a window manager seems very limited.
Home: For me the sound settings are weird there's no simple way to choose two outputs (headphones and speakers). I have to use a third-party app to make the volume range over 0-100 rather than 0-1 (1 is too loud, 0 is off). Adjusting mic settings is stupidly complicated, why isn't there a slider in with the output slider in the system tray (as I'm used to in KDE, and I swear they used to have in MS Windows?). Some apps it won't let you start as admin from the Start menu, but that works fine from Explorer, urgh.
Their search capability is just bad. To find something requires a lot of tries and tricks. I don't want to waste cognition because they re-invented the flat tire.
Their inbrowser text editors are also just bad. On the level of WordPress three years ago. Markdown? no. Cut and paste from other apps? OK, if you remember to "Paste as Plain Text.
Fantastic metaphor. It just got fast-tracked into my personal lexicon.
eg. You can't have a page called Engineering > Electrical > Test Procedure and another page called Engineering > Mechanical > Test Procedure, because the two "Test Procedure" pages are considered as occupying the same namespace.
:@
Its biggest problem was that the parse and display code were entangled (same problem I had with AngularJS), and it made writing addons an exercise in re-implementing features of the parser over and over again. But I heard they fixed that quite a while ago.
I have no idea how a company with a search background produced software where it is impossible to find something.
Don't forget that Finder has customisable tags which sync perfectly across iCloud. They are a top-level browsing option on the iOS Files app. Probably you were thinking of something more tag-first but it does exist. :)
Personally I really like the file/folder model because I can sync the whole caboodle to my hard drive, copy it to a USB backup, possibly transfer it to another operating system, knowing that I've captured the whole story.
Are `invoice_2020_10_1.pdf` and `invoice_2020_11_1.pdf` children of their parent in the hierarchy, `invoice_2020_1`?
I handle this by making a google sheet for a project with links to the main files, many of which inevitably are cross-referenced to other projects or standards. It works well enough, and has a killer feature: if you move or rename a file, which I do all the time if documentation is refactored, the link doesn’t break!
It's really annoying how you can't easily make copies of directories anymore. They just create "Shortcuts" instead which act like symlinks. People though they were copies though and damn did we have a lot of accidentally deleted files these past few weeks. Also, their file recovery UX sucks.
Thank you!
It encompasses Drive, Mail, Calendar, etc.
I rely almost exclusively on search within Drive and it works pretty flawlessly. What's the use case for you that's failing?
Usually I'm searching by filename or for keywords that should be in text. I believe it's an issue with how documents are ordered in folders; Some documents (in personal folders?) never come up in search, etc.
https://wa.me/{target-number}
https://faq.whatsapp.com/general/chats/how-to-use-click-to-c...I have a simple form on my website to make that a bit easier: https://www.arp242.net/wa.html.
I don't know what's the status now, but Spotify India had too small a library when it was first launched. Otherwise I would have made the switch
and on the web/desktop version you only get like 4 recommendations, but the mobile gives you a whole fistful.
seems like abandonware mostly. too bad its replacement (youtube music) is complete garbage. the web version can't even cast.
somehow at google we went from "mobile first" to "mobile only" and i guess only old guys like me care? it's just terrible. the new google podcast web interface also does not support casting. i'm not sure how one wing of product managers at google can't talk to the other to make sure their products just support basic standard google media infrastructure?
i tried spotify and it was also terrible. so not sure what to do.
It was terrible, and I felt like I couldn't find certain tracks very easily. I wasn't sure if this was accidental, or not. Do you know why tracks are deleted from your library?
The most complex simple system I used. Simple in theory (Project Management) but complex in implementation.
And since we are complaining about search feature I must mention Confluence. Like I've said you can query Jira with JQL but in Confluence you're out of luck.
Don’t get me started on editing workflows...
Replace your IT team before you replace Jira.
My Jira experience is that I couldn’t live without it.
I am sorely tempted to build a frontend so that I can avoid wasting so much time on it. Just a better frontend not yet another project management tool that will not be bought by management.
I don't understand the slowness at all, even if their backend and architecture is Fubar to fix at this point without massive work, they could have handled it in UX with non blocking loading states, backgrounding actions which were slow etc?
(Edit: also, every program for managing Bluetooth devices ever made.)
One of these days I want to look into setting up Phabricator.
Not only was it really easy to set up, but I think we all enjoy our tools a lot more now too. I still contend that phabricator rules the code review world: nothing else is as good. The projects feature feels just as good as Asana but without the slowness.
We do still use GitHub just as a dumb master (phabricator imports from it), but I’ll likely invert that soon enough to use GitHub as a mirror.
This is my daily nightmare. We’re building a competitor to Jira [0] so naturally we want to allow people to import their issues from Jira into our tool. Integrating to Jira cloud is a reasonably good experience. But Jira server? Total chaos. We needed to dig up an ancient OAuth1 implemention just to get users authenticated and it didn’t get any better from there.
Can you give more detail? I've been on larger, successful teams without JIRA, and every time JIRA was introduced it was a net-negative for real productivity.
No wonder Atlassian bought it.
The best part is it doesn't _do_ anything itself. It's just a workflow system for dispatching operations to different systems and teams. It will create an invoice in an existing finance tool. It will issue a ticket to create a physical badge, etc.
Anyway I think that's a massive opportunity, if that's what you're looking for.
Nvidia GeForce Experience: I don't actually use it daily, because it doesn't work. I have not been able to start it for the last 6 months without getting a startup error. I contacted Nvidia support, reinstalled, downgraded, updated, problem is still there. The tray icon always shows when there's a new update, but I have to manually download it.
Google Chrome: Whenever I ALT+TAB back to Chrome it freezes for 1 second. It could be one of the extensions I use, but never found the cause. Google's own note-taking app, Google Keep, was crashing the browser on Google Chrome: https://support.google.com/docs/thread/9482426?hl=en
My god what a bad experience... to update my graphics driver I am first forced to log-in which would be bad enough but then also solve two captchas and then for some reason these frequent driver updates are multiple gigabytes in size. I have no idea what the hell they are doing.
And what's the deal with the captcha during login? I sort of get why some websites require it to login, but for software installed on Windows? Do they seriously have that many bots running on Windows trying to install drivers? Is that even a thing?
Thus just makes me hate anything to do with Nvidia.
And it's lighting fast. Trully stunning. 10-20ms to render on a circa 2008 thinkpad.
And it's pretty good straight C, and very hackable, and only around 70,000 LOC. First thing I did was join it with guile and write a bit of glue code and I'm now adding features to it faster than you could git clone firefox, let alone begin to read its code.
Also while we are dumping on Nvidia here, why does the 2080 Ti with 5 outputs only support 4 active at one time, while the 1070 Ti could use all 5 ports at once? I paid considerably more for a faster card, yet I'm more limited. Support basically told me "it's too much bandwidth". I guess I can't complain too much, at least tech support has some actual humans replying to emails (albeit the first 3 emails are copy/pasted).
In the end I caved and bought an Apple TV 4k. I'm just sick and tired of how laggy android tv is, it's lagging on TVs that ship with it, it's laggy on little android boxes, it crashes often, if it's not crashing the apps are.
Apple TV 4k is super fast and never skips a beat, never crashes, just wish it wouldn't flick to the Apple TV app when I want to go back to app screen.
- Git + it's a leaky abstraction. + why do we need to know about the stash? + why is it that changing to a different branch doesn't give any visual clue, even worst it keeps the files I'm working on that are not part of the repository yet.
for an academic treatment of the defects in Git read: What's Wrong with Git? A Conceptual Design Analysis S. Perez De Rosso and D. Jackson. In Proceedings of the 2013 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software (Onward! 2013)
- for git stash: there is a config setting https://cscheng.info/2017/01/26/git-tip-autostash-with-git-p... Arguably should be a default, but then when it fails, new git users would end up even more confused about what happened...
Technically speaking most of the code that seriously annoys me runs inside my browser, but IMO it was never realistic to hope that the myriad creators of individual web pages or web sites would collectively create a good experience for me: my only hope was for the makers of browsers to make choices different from the choices they actually made.
Clarification: the web browser makes a pretty good framework for creating user interfaces, IMO, but it is a bad way for an end user with preferences sufficiently similar to mine to access writing on the internet. Sadly it is the only way to access most of the writings on the internet.
Written documents can be extremely simple: just a sequence of characters in some well-known encoding, but most of the actual documents of interest to me on the internet are essentially programs that require execution in what is essentially a "virtual machine" as complex as any general-purpose operating system.
Edge is very similar to Chrome in performance and features while seemingly being slightly better on memory. It also doesn't have the Google's creepiness, as Microsoft appears to be the modern day underdog.
It also supports chromecast, a feature I missed the most in Firefox.
Overall it's a surprisingly competent browser.
Perfect storm of abysmal design/UX used to represent a bloated and confusing underlying information architecture. It's possible that I'm using an poorly configured version/instance of the product, but good lord, I'll do anything I can to avoid using it at work.
It’s slow.
It’s rarely clear which button you need to advance a workflow.
Some buttons take irreversible actions, others lead to further information, and these two types of buttons look identical.
The point about a confusing underlying information architecture is spot-on.
Pages can have multiple tabbed sections which is disorienting.
The approval interface makes it very unclear what you are approving without looking it up elsewhere yourself.
You have to right click on a column header to find the export to Excel option?
Asterisk apparently means ‘contains’ when searching, unlike search syntax in any other product.
No apparent way to search all fields in a list - you have to choose which field specifically to search in.
URLs are long and ugly.
Users are displayed as FirstName LastName, which is friendly and all but there is no way to disambiguate when two users share the same name but have a different User ID - and clashes like these happen all the time in my company of >100k employees.
I’ve no idea how much of this is fundamental to the product and how much is the fault of our configuration. There may be useful features of which I am unaware, but the UI does not invite discovery of these if they are there.
Your points are super valid, and your last sentence resonates with me heavily. It’s the essence of what my team is focused on improving. Our out-of-box should be as close to ‘great’ as possible. This goes for the most technical implementors, admins, devs... all the way down to non-technical single-app users. A great platform will know how to do this gracefully without forcing the latter through the same experience.
Going to bring these, as well as the other points in the thread, up in my staff meeting next week. It’s relevant to the work we’re currently doing.
I find basic tasks challenging in your app. A support agent escalates to developers (i.e. me). "Hey, can you look at INC123456". The ticket is not yet assigned to me. How do I find and open this ticket? The support agent can send me a direct link, but there's no apparent relation between any of the query params and the ticket number, and also no obvious UI element in which I can put a ticket number and navigate there. When I navigate to the ticket, comments are mixed in with audit entries. The frame based navigation also means I get questions from junior devs on tickets and they copy links into slack messages that just send me to the homepage.
But yeah ServiceNow is insane. Not sure how much of this is product itself or gajillion of customizations.
Definitely going to bring this into my discussion with other design leaders next week.
Jira, because it's too slow and bloated from features you never use anyway.
IntelliJ, because it freezes on every 6-7 autosuggestions, on projects of 50-80K LOCs.
I've increasing the JVM heap as much as I reasonably could but giving 2GB of Heap to an IDE on a 16GB system seems wasteful.
They really ought to fire all the PMs who justify their existence by moving menus around.
And I literally hate that for each plugin it looks like it downloads the world. Why aren't plugins just part of the distribution?
Then comes the fallacy: by default, it uses the .m2 folder in your home one. Just because of this, pretty distracted people literally forgets to rebuild all the code, causing breaking or making useless bug reports/complaints on something not available/not compiling/not available at runtime.
Sure, you can do a lot with it, especially in small projects, but the price is just a flawed workflow on big ones. Their release process is the worst UX ever designed
Hmmm ... one of the things that kind of made me really stick with Gradle is the wrapper tool that make sit dead easy to bootstrap a build without including gradle in the project. Of course, the first thing the bootstrap does is download gradle, so maybe that's what you mean ... but it's been a small price to pay for me.
There are much worse things about gradle ...
What?
Type in the box, click enter?
This should be popular
It seems so aimed at the consumer market, with everything set up to help with integrating with Apple services.
But what about the enterprise features? It is very common for companies to be running Active Directory networks, why do macs work so hard not to fit in? Why not have some kind of AD support for mapping print queues, network drives that kind of thing? Maybe respecting password policies? Authentication via Azure AD would be really helpful too. But the real killer is forwards/ backwards compatibility. Enterprises have long software life cycles which are respected by Windows. You can run VB6 applications from 1999 on Windows 10.
I get so many service desk issues for macs that are resolved by a reboot, and why don't they reboot?.. because they worry that the updates will take 20 minutes.
I hate MacOS. It causes me so much more aggravation than my main Windows user base. I'm currently having to work on printer deployments and MDM's (solved problems on Windows) just so marketing people can look cool in meetings.
I just gave one of them a Windows laptop to try and they noted how nice the PC Office apps are, and how fast their computer was (processor being 2 gen ahead of the current macbook pro)
We have one coder who still uses mac (he supports some old desktop apps that incidentally are all broken by Catalina), and since he mainly targets Linux nowadays he is currently looking at moving to Windows and WSL.
Great home computers, great for individuals, terrible for enterprise use.
That's what they are sold for. You also don't put consumer HDDs into your servers and then complain that they die an early death.
Active Directory is licensed and patented.
You're literally complaining that someone isn't signing up to vendor lock in.
The code replying to you is proprietary, yes, but you are just talking to it over a network not recompiling it!
Since you can choose not to use AD authentication you are not locked in at all. I'm afraid your comment has rather lost me.
I'm afraid this is just cheap nonsense.
Perhaps you could tell us about Apple's competing directory service and server offerings? Profile Manager is it? What server can I run that on?
Copying and pasting are universally hotkey+c and hotkey+v as an example. Creating a directory is context->new in all cases.
Some changes were weird for a small period of a few days, like when moving from Classic Finder to Mac OS X Finder where the priority of hotkeys for new windows vs. new directories changed. Or when in Windows the address bar got a lower priority than filesystem abstraction of user directories (at which point the purpose got mixed). Same with Gnome2 to Gnome3.
I'm curious to see if it's "hard" as-is, or "hard" when you come from one single environment with a lot of experience that is hard to adapt to something that is not visually identical.
I feel like I try every few years and am unable to do it.
Edit: yep, it's in the 'common' list: https://support.apple.com/en-us/HT201236
They are also visible by simply clicking a menu or context-menu which shows the shortcuts on the right side at the end. Alternatively the built-in Help is actually usable as well as searching for menu items (click help and the text field will also interactively point to menu items with a big floating arrow when hovering over the search result with your cursor - that functionality works in all native HIG-conform apps, and it is dynamic so it also works when you have stuff like a "history" menu in the menu bar in a browser).
Copy paste also works with right click. To move (a la cut), hold option key.
Also hold option key to see "move" menu option under Edit - Paste (Move)
After a couple decades, I'm still holding out for ctrl+x. Someday, someday...
In Explorer, just learn Ctrl-Shift-N.
And alt-up to go to the directory above (cmd-up for Mac). Honestly, using the keyboard for both applications removes a lot of the pain.
Talking to other Mac users, this seems to be common knowledge - I guess only Windows users moving to OSX should be wary.
It's common knowledge because very single Mac OS X user has lost data due to this bug that Apple has refused to fix for years.
GitHub: we mainly use phabricator now at my day job (which I love love love), but I don’t really derive any joy from using this product anymore. I think great tools are also fun to use, perhaps controversially. I can’t quite put my finger on it, but I find GitHub sort of a drag for some reason.
NodeJS: I absolutely hate dealing with node_modules. My node-based docker images are huge, and that’s after a lot of hand-held optimizations.
Additionally, we definitely avoid a lot of defects from using TypeScript, but its compile time is awful for large projects. I also don’t particularly like the edges: often I’ll hit odd typing inconsistencies from undocumented limitations of TS.
After years of working in the JS ecosystem I sort of hate the complexity in general.
Can't you just log off after 5?
What do you love about phabricator? It looks interesting, even if it is written in php. (just joking...)
Or 'little' annoyances like it being impossible to mute notifications on one device (say, your phone) and not another (say, your web browser).
* Zoom - worst video conference product __EVER__. Can't say a single good word about it.
* AWS admin console - same as jira, at least it's not slow.
* VPNs in general annoy me beyond reason too. At this point I use a raspberry pi to connect to the vpn and I use it as an SSH access server (and tunnel respectively).
I hate the fact that it requires you to install the client for it to work.
The client randomly spikes in cpu usage while running in the background. Multiple times I've also had this issue where I'll try to right click the zoom icon in the system tray and quit zoom, causing it to hang and reach 100% cpu usage on one core.
I also don't like that on clicking on a zoom video call link sometimes the browser to client redirect works but sometimes it doesn't and you need to then go back and click the link again.
For me, Google meet works much better.
Take a look at step 2 here: https://it.umn.edu/services-technologies/how-tos/zoom-join-t...
I can see why salespeople prefer video calls but for technical topics it just doesn't make sense.
My suggestion on Linux at least is to use the web client. Just get the url, do a 's#/j/#/wc/join/#' to it and open it in browser of your choice. You'll need to copy the password manually, sometimes it might require captcha etc, but at least it's somewhat usable.
People love to shit on Skype but even the web version of Skype behaves better than zoom for me. Google meet, Skype, meet.jit.si - I take any of those over zoom.
I was forced to use Skype in the early 2000s. Believe, it was much worse.
There are tons of problems with Zoom, no disagreement there. But the heaping pile of crap called Skype for business formerly known as Microsoft Lync is a lot worse. It doesn't even run on Linux...
On Mac, I mostly used cross-platform (or multi-platform) apps, and they are about as good as on the other platforms * the amount of focus on a given platform (e.g. Outlook is behind the Windows version, Spotify is the same, some other apps like Eclipse seem to run better).
Compared to Windows it's an absolute dream. I left Windows because it was a mess and applications constantly crashed and also the OS crashed and the multitasking is thoroughly crap. I have a Windows machine and every now and then I think "maybe it's all better now", and I give it a try and instantly the same crashy problems and really bad multitasking.
Heck, for my first old 4Gb RAM Mac I installed this piece of software from app store that would consume all the memory on the system over a short time to force Mac to actually manage memory and prevent other apps from stuttering and OOMing when the memory was supposedly low (it really wasn't, as this app's overload-free-memory routine showed). It even had a paid version that would do the memory-overload automatically when memory was low. That is the most Mac thing I've ever seen :)
That being said, does sound like something else was going on with your Macs.
I scoped a few of the more generic problems with just trying to be productive up on Medium [1] to share with coworkers who swore by the OS (and were way more knowledgeable about it than me), but they never proposed any solutions to make things better. Just a lot of "you're using it wrong" and the occasional "buy this app to fix that".
[1] https://medium.com/@drusepth/multitasking-on-a-mac-sucks-and...
The GPU is the new Floating Point Coprocessor. (I think they are likely to be integrated on CPUs even for high performance use-cases, eventually. Although this is only happening very slowly...) It should be be programmed with vendor-neutral CPU instructions and if need be, trapped by the kernel and emulated or delegated appropriately. But all of this should be totally transparent to the user application.
And when you need to profile something, get ready to set up custom drivers, custom kernel flags, and recompile 30 GB of libraries and source code for that custom cupti.so.
Similarly, whomever said Signal has a good point… it never manages to download MMSs for me (which isn't its fault, signal is bad in my house), but it alerts me anyways so I get a stupid "this couldn't be downloaded message" that I have to be distracted by instead of only notifying me when I move into a place where I have good enough signal to download it. It also then says "tap here to retry" but does nothing when I do so (not even an indication that it's working or that I tapped it). Aside from the annoying notifications about messages I can't even read, it tries to make you spread it to your friends and you have to manually close the stupid "Tell this person about signal" thing for every single person you open a chat with. I had to just go back to another SMS app and lose the ability to use their protocol.
The worst though for me is probably pulseaudio (still, after all these years, even though it's gotten a ton better). People knowledgeable about it love to tell me that it's obviously a configuration problem on my part, but every time I start my computer something else is wrong. Every time I plug in my midi controller and start up a synth I have no idea if it will work or not, but it also fails in a different way almost every time. If I turn on a bluetooth device, the device itself mostly connects fine, but then how the audio is routed just seems random. That one works most of the time, but not always, and if I turn the device off my audio settings sometimes go back to whatever they were before, but sometimes I randomly find I no longer have a microphone, etc. everything about it just feels bad.
In many respects I think the fact there's a commercial version of it is a sign that it's lacking in the UX area.
I actually have fond memories of office circa 1995 when it was a single platform app. Now it’s some cross-platform monstrosity with horrible performance.
So many features have been piled on top of each other that I suspect it’s impossible to debug now. Image inserted in a shape in a table and commented on? Good luck figuring out why that pauses scrolling for 5 seconds when it’s encountered. Or explaining to someone non-technical why they shouldn’t do it.
Xcode is one of the most obvious evidences of Apple's despise and contempt for programmers (others being crappy documentation, frequently deprecated APIs, appstore with authoritarian rules, etc).
xcode is a total pain, but i would have to say eclipse takes the cake imo...
Too much of a cost to test for and to set up CIs for the distros I'm targeting. There is little to no paying users there because of the fragmentation. But again, "paid support" will have lots of choices, versions, combinations and edge cases to cover. So I listed it as "unsupported: use at your own risk."
Windows and macOS have a much sainer desktop for GUI apps to test against.
I don't know why people insist that billions of people on this planet have to be satisfied with 3 interfaces but it doesn't work that way.
I think Snap[0], Flatpak[1], and AppImage[2] tries to solve this problem.
Threading is completely broken, filtering is broken, compose screen is unusable.
At previous companies I've had to use gmail but was able to use a sane email client via IMAP so it was almost ok (although still somewhat broken as gmail doesn't handle IMAP correctly). At current work they disable all access except via the unusable gmail web interface. So definitely gmail is the worst I have to put up with everyday.
jira would be a distant second, but no comparison.
My problem is that it's remained frozen in time for years. Yeah, they tweak the visual design every few years. But so many other email clients have far surpassed it, and they've done nothing. Other than create Google Inbox. Which was amazing. And then Google shut it down. ️
Edit: clarify
I've only been using it for a few weeks but I like the aspect of the feed and the hand holding it does when categorizing emails.
It is paid, but it's by the same team that did Basecamp. It's very polished IMO.
Can't agree with that; I was there, got the tshirt.
Literally! I still have a tshirt from the gmail launch in 2004: "Google gave me a gig" (meaning 1 GB of storage).
It was mediocre then, terrible now. Hasn't really changed much other than UI tweaks.
Anytime I try to switch to another client I find myself missing those features and end up going back.
I happen to know some web development, so here's a few observations from top of my head:
- Slow speed. Simple page changes takes at least 1 seconds, others such as viewing lab results or clinical letter takes around 3-5 seconds, but often needing repeated clicks to actually work.
- No form autosave & inconsistent saving behaviour. I have had to re-write discharge summaries several times because of save failure. This taught me to write on notepad/Word first and then transfer onto the portal.
- Many buttons are deeply nested in a navbar. Sometimes the nested buttons fail to show up at all on very small or large monitors. We have to resize the window size to find the dropdown button.
- Front-end CSS framework is based on YUI (discontinued since 2014). It supports IE quite well, but breaks on current Edge, Firefox and Chrome.
- The app tries to stop clinicians from opening more than one instance of it, but this often results in us unable to open any instance of the web app at all. Fixed with incognito mode.
- From the occasional server crashes, I can tell from the debug callbacks the backend is written in Java. The point here is that the debug trails are shown rather than a 500 error, which is unsettling for a sensitive data platform.
- Fragmented ecosystem, every part of the portal is an iframe from a different provider. Lots of inconsistencies and crashes. Even the sidebar is an iframe.
- Printing is a nightmare. Whatever sent to the printer often doesn't show up, but that's a story for another day.
I'm sure there are bigger ones I've missed. Unfortunately, the system we have is not the worst in comparison (in one rural hospital I worked at shut the web server for 3 days for a database upgrade). This makes using Outlook, Teams and other stuff a breeze in comparison - they are actually snappy and stable.
Do we have anyone in the community that can enlighten me on the root case?
The technical root causes are pretty boring really. The root cause is the way that software purchasing happens in sectors like healthcare, education, government.
Your portal software undoubtedly cost an eye-watering amount of money, almost all of which went to middlemen while the actual software was built by an outsourcing company probably in a market with very cheap low-skill programming labour, who have probably developed a specialty in taking advantage of unclear requirements to get paid even while delivering a turd.
The middlemen have great LinkedIn profiles and many contacts in the healthcare industry, and the software works (the only people complaining about it are the people who actually have to use it, but thankfully none of the people responsible for buying this software actually have to use it!) so the work keeps rolling in.
I've seen what my doctor uses and know from relatives and friends what a pain it was to implement. And this is one of, if not the leader in clinical software. It was an "epic" disaster but now it seems ok-ish. Very user unfriendly still, but I'm sure it gives the hospital administrators the ability to spy, err I mean generate reports.
Should at least mean it's always there.
No issues with the actual product per se, which is quite nice. But the experience while using Slack goes bad exponentially as the team scales if certain usage guidelines are not put in place.
After that, it would be to set the expectation that Slack is not actually real-time. We defined a 2 hour response expectation on my team. We don't want people stopping work to check Slack every few minutes, we want to do our jobs.
It's important to set the expectation that chat isn't meant to be synchronous.
* Don't use Slack after 10am.
Allow me to disable any kind of indication that someone is talking, not just to me (red dot) but anywhere (blue dot). Not everything needs my attention and having the tray icon change its state is distracting.
You can mute the channels, sure but why not make that as an option in the notifications settings?
Specifically: AEM, AAM, Omniture, among others. My favorite is AAM’s “only Adobe could come up with such a stupid data integration” file format: https://docs.adobe.com/content/help/en/audience-manager/user...
The omniture S3 feed comes as a 1004 column TSV. And for fields that capture user inputs, they don’t escape backslashes. But the escape backslashes everywhere else. I filed a ticket on this over a year ago but still no fix.
One of the things we’ve seen is similar to some of the sentiments expressed about Blackboard: the decision makers often aren’t the users, so feature lists and meta issues tend to win out. Adobe seems to target that market pretty well with their whole experience suite.
The most oppressive piece of software ever written makes suckers out of all of us. No amount of campaigning to Intel cuts any ice. Nobody is big enough or powerful enough to get rid of it.
I noticed another comment thread about Microsoft Teams, but for me, Teams is a godsend compared to Skype for Business.
Does anyone have skype working on ios? No, it does launch and even works, but messages are delayed, calls are delayed.
VS is largely a wonderful piece of software but sometimes just stops working in inexplicable ways. Sometimes I have to build 5 times without changing anything to get it to succeed. Sometimes my build fails but the only error in the error list is about projects that couldn't be loaded (because they failed to compile for some mystery reason). Sometimes it just randomly freezes doing basic tasks. My recent favorite is this endless string of banner errors at the top of the screen saying that there's an error with my projects that I can't dismiss or hide. VS is great, but also sometimes the worst.
If I recall correctly, one of the company's public incident reports explicitly mentioned Google Hangouts Chat as a reason that the incident was not fixed much more quickly. I could not find this incident report when searching just now though.
Edit: This product is apparently now called "Google Chat"
* Atlassian JIRA (never really got the hang of it. Overcomplicated.)
* Workday (the web app is sloooooow.)
* MRemoteNG (The best SSH client on Windows. Also the worst. Alt + Tab navigation annoys me to hell!)
* iTunes on Windows (Why is it like the way it is even in 2020!?)
Isnt apple trying to kill iTunes in general?
I've never seen an app that uses 40-80% CPU on a modern laptop non-stop to do not much more than ICQ/AIM/mIRC used to do in 1999 on a thing that's probably less powerful that my alarm clock.
It's interesting seeing negative comments about things like AWS, Git, JIRA, etc, and compare to what my career was like BEFORE those were mainstays.
It's cool that so many people aren't satisfied with the status quo, and will continue to push the to make things better.
To throw in my answer, G-Suite (as an IT Administrator).
Helm: go templates aren't a robust, or even remotely sensible, way to define the configuration changes someone will need on a day to day basis for deploying applications to multiple environments. Some metaconfig language as used in kubecfg and tanka is the way to go but every single time I work with a team on kube they say something like "Helm is fine. Everyone uses helm." It's at times like this that I remember there was a period in human history where bloodletting was an established medical practice and that's the point the software engineering industry is currently at.
Istio: someone had a great idea, implemented it poorly, and just kept hacking at it. Obvious features are missing (setting QPS & bandwidth limits per service-to-service). Configuration is disgusting. Documentation is somehow worse than k8s' docs but, unlike k8s, the code is a mess. There's absolutely no reason why it has to be implemented as a side car, it's just a hack that baloons the resource usage of the entire system and reduces effectiveness of things like edge redis caching. There's so many obvious ways to implement similar functionality to istio except do so in a transparent way. Maesh is one example but it'd also be far simpler to implement it as a combination CNI and DNS system.
Atlassian: nothing further needs to be said. The problem space is so simple and somehow it was implemented so poorly but juuuuuuuuuust enough management features look pretty and it fools people into buying the software.
If I ever get the opportunity to retire I would love to take a crack at fixing all of these.
There's a dramatic difference between: https://cuelang.org/ and https://jsonnet.org/
I have a feeling that cuelang is still in the R&D phase. Once it's finished that I'll probably move everything I write to it. It'll probably focus more on UX and tooling and simplicity after it moves out of the R&D phase.
I've gone this approach for my cluster at home. We're starting to explore this at work.
They might make improvements in helm 4, but who knows.
In the end I went with Mailmate and I’m extremely happy with it.
https://en.wikipedia.org/wiki/Mutt_(email_client)
Depends on your definition of 'desktop', of course ;)
But god, these bugs. Somwhere down the line it became strangely slow. It's constantly displaying false values on how many emails it is about to fetch. And I accidentally deleted emails on more than one occasion without having a clue on how that happened.
Mail not being able to properly find an exact string match correctly means I had to give up and just use GMail in Chrome and on iOS. Once GMail on iOS added IMAP and SMTP, I never needed to go back.
The most heavily loaded Mail.app I seem to have is one with two MS Exchange accounts, iCloud, a couple of IMAP accounts and a single POP account. I generally archive everything older than ~10 months out of my inbox leaving a combined 43k messages in that virtual inbox 'group'. Maybe people with larger message stores trigger some programming fault?
It's strange because I like a lot of what Mail.app does—it's simple, no bells and whistles—but the search experience, etc. just ruins it entirely.
OSX file explorer
Both are unavoidable and horrible.
Where did I save that file? What was it named? Where did that piece of software save its file without asking me? Do I have to click 10 levels deep to find a file?
Yes, it is a human problem, too, but maybe make things a bit easier for humans? I know johnny.decimal exists but good luck getting people to use it.
Pretty much any email client And email as a primary mode of business communication. Who said what in which message, then changed their mind as an aside in an unrelated email thread and where’s my source of truth about anything? People use their email like a chat sorted by most recent.
My mom uses zoom on android tablet and every time I call her I spend 25 min on the phone trying to guide you through to initiating or receiving a meeting
I paid $300 for capture one but can’t use it because I can’t figure out where it puts my images and why.
As far as I can tell this is a demo EMS from Intersystems, they provide Cache [1] to companies developing real EMS with modern user interfaces. They don't sell this product in the USA (so not to upset their customers), but have dumped it on the rest of the English speaking world.
I suspect here is some sort of NDA with those unfortunate Hospitals taking this pile of stinking £%^£" as I have never found a user group or trustworthy review.
I get to use it at ground level (talk about poor UI), at management level (no coherent db integrity, very poor reporting) and have seen a complete inability to reconfigure the system to cope with COVID.
When ever we see demos for new clinical system I always ask "Would those coding this system accept this level of quality/usability in their daily software tools?". The marketing guys look at me like I'm from another planet.
I know "you get what you pay for", but for something hundreds of thousands of Hospital staff will be using for patient care (we don't bill in the UK), there should be a floor below which no company should offer half-baked dangerous products. Trakcare is in the sub-basement.
Cache is the most archaic and least usable programming environment I've ever experienced. Unit tests are not a thing. MUMPS, which underlies the whole system, is stringly typed. The entire stack is junk, so it's no surprise that Trackcare is either.
- No way to set status (essential in current remote work situation)
- No way to reorder the rooms
- No nested comments.
- Cannot mark conversation unread or have some way to remember to come back to the conversation later.
- If you lose your notification you are lost. Cannot figure out which room you were tagged in.
- Cannot message to self. This is not a big problem but a good to have.
I'm surprised that it hasn't come up, yet. But it's CLI interface as well as it's data model are truly archaic. It's near impossible to properly invoke from other programs or scripts and most users don't even understand half of it's "web of trust" concepts.
This is especially bad since small mistakes can easily break your security model.
I don't want to rewrite GnuPG, I want a fresh start without all the cruft.
Has a UI that was cool when the Internet was first switched on. They made Jenkins Blue, to be fair, but for all that it eats an ungodly amount of memory (at least when I was using it, dunno if that's changed).
Needing to configure Jenkins to work with other services means I won't be productive for a while; this yak has a hell lot of fur. I have to write extremely detailed notes for myself on what and where to click just so I can do something again (i.e., if something breaks and I need to reconfigure/migrate/etc.).
There was this scene in HBO's Silicon Valley S1, in that episode where they hired this leet hacker kid who turned out to be no more than a skiddie. The kid broke their work and Richard Hendricks had to fix everything and the scene where everything got fixed featured Richard watching his Jenkins build go green. I find it very amusing that to achieve verisimilitude, they had to eschew years of Hollywood "hacker" portrayal, and have Richard stare at the iconically ugly UI of Jenkins. Real life can be cooler than Jenkins but other tools just won't feel legitimate, no?
I bet the software would improve pretty quick.
I'm not knowledgeable enough, but are there alternatives to workday and are they actually worse?
I asked a couple friends who work there what they use, and sure enough, the answer was Workday.
While there are definitely better alternatives at smaller scale (i.e. Zenefits), at that scale, the only ones I know of are Oracle, SAP, and TriNet, which all sound even worse.
Was able to fill addresses and contact information in the UK and Western Europe and it accepted the local formats and documents. I wouldn't be surprised if most competing tools are plain broken, for example requiring an address with a state which is nonsense outside of the US.
We've been moved onto Workday and I hate it and I suspect I'm going to hate it even more as I've just picked up a people management role so I will be spending more of my life dealing with it.
Reminds me of K2 process automation which while it has a lot of value[1] forces the UI down particular routes which can be very sub-optimal for the end user.
[1] Whenever I used it I felt like I could have written the small bit I was interested in less time using lots of alternative technologies, but the amount of time to add all the other bits and pieces like reporting and retrying of process steps would kill you longer term.
if you were ever so unfortunate to have perfectly marked up content and previewed in the visual mode, only to save it and loose a ton of formatting (seems in visual mode the actual data source isnt the same as markup) upon save...
The worst version control software known to man.
It is a bloated IBM tool from the 90s, takes 10 minutes copy a repo that would take git 5 seconds. It has a lock modify unlock paradigm, so if your coworker forgets about a file they were working on and they get promoted, you can forget about working on your project ever again.
The paradigms are backwards. The project doesn’t branch, the files do. You make your commits before you do any work.
It’s slowly being phased out at my company, but it can’t seem to die fast enough. A lot of people have built their careers on this tool so it’s hard to kill.
Shared folders are a nightmare for version control, share point is inconvenient and slow. One Drive works OK and finally allows collaboration. Azure is good for some other use case (probably, never used it). So for a typical company, MS should guide companies to transition to use OneDrive and keep things in one system? No, single sign on, IT gets sold on how easy it is to manage all tools, everyone gets every tool. And for good measure everyone gets teams, surprise you’re using share point even if you don’t know it and now all your confusing v2_final files are spread out in 5 places.
Most users might fall back to manually tweaking with Office, but a clean doc based on styles isn’t even possible with Google.
My personal hate object is the Windows10 client for OneDrive/Sharepoint. I have had it on multiple occasions remove locally created files from my laptop so that I could not access a file created a couple hours earlier on the same computer. Had to sync it back from the cloud, how is this a feature?
It's appalling how such a powerful company can keep so many things so bad for so long.
"Based on my location" they gave me a French dubbed version of it. No alternative sound track, heck not even subtitles.
I live in Switzerland, we have 4 official languages. I speak one of them: German. Not a word French. The proposed solution: go to apple and ask for your money back. Very poor experience.
Do not even get me going on the "want to use Premium for a month"? I've declined that offer at least 48 times. Did not want it then, do not want it today. Really a pity since there is a lot of cool (not sponsored or monitized) content.
Personally I'm very content with my Google Play Music subscription that also includes YouTube Premium. The music service is no different than Spotify (for me, at least) and I also get ad-free YouTube on all platforms.
It's funny because I have a client right now asking for some advice on how to design a localizable website that can guess default language and I'm realizing that no one has really solved this very well.
The first and most important step is to offer a very very big option up front and center for reverting to English.
This is an extremely annoying thing when traveling.
Either way, it must like rule 1 of UI design; even if you think you know better than your user does, let them override that choice when you get it wrong.
Or rather the solution I would like is rarely used, I have only found it on some Amazon sites, where you can freely choose the country-level localization (via the domain) and the language-level localization (via a menu) independently.
It was an happy day when I was able to browse the German Amazon in English.
Really? How about “guessing” that the client’s language preferences are those expressed in the Accept-Language request header?
Getting my money back from google is impossible, according to google. Since they could not offer a solution to the language issue, they told me 4 times to complain at apple and try to get my money back from them.
Again: that was not my issue at al. The time it took to dialog with google support was 10 times as expensive as the rent for the movie anyway. I wanted my expectations to be met, was told that it's impossible, so I adjusted my exceptions when being offered to buy / rent from YT to zero.
What about English? Your post seems to be perfectly idiomatic (for this kind of forum) English.
Edit: This is very embarrassing. I had thought English was one of the four official languages.
It feels like YouTube actively doesn't want creators to grow a community on their platform.
Until they stop siding against the creators they will never escape from it.
bash on *nix - less horrible then cmd.exe but still trurlly horrible anyway.
I want to kill myself any time I enter any of those. PowerShell cross platform made all my cells rejoice.
You can get similar stuff only in powershell - this is what I use:
https://github.com/majkinetor/powershell_profile.d/blob/mast...
It isn't that artistic but functinality is the same without any dependency.
Did not know Powershell was now cross platform. Never learned it, but everyone I know who knows both Powershell and the usual UNIX shells prefers Powershell.
Not sure how the harmless and cute "Gizmo" web Netscape Navigator becomes the Gremlin monsters of today's web applications.
Perhaps the innocent desire of the developers to make their applications usable in different platforms but because of the laziness or budget constraints make them feed the cute Gremlins after midnight.
Hopefully the likes of cross platform native applications, e.g. Flutter will flourish in the near future and vanish the Gremlin monsters forever.
It's terrible because it does everything to make it hard to write scripts. Three syntaxes for using variables, and only one will not cause breakage. Stringly typed. Killer spaces when looping. Arcane syntax for conditionals, where despite 10 years of coding I can't write a simple if/else without looking at references.
And it's widespread enough that it won't die.
I also hate it. It’s not the worst piece of software I use everyday, but every time I need to do something more complex than completely routine I find myself fiddling much more than I should have to.
The menu options are a mix of redundant 'possibilities' from where you find things, 'icons' that don't seem to be obvious in what they represent, the GAL is broken (w/ Office 360 cloud), the Outlook connectivity becomes disabled when I disconnect from VPN and I have to click on "Send/Receive" under I think "Tools" once to re-enable it, the list goes on.
Over 15 years ago a senior dev I worked with walked up to our (Sys Admin) communal bookshelf, and noticed a book called Outlook Annoyances. He remarked, "Hm. That looks like it's way too short of a book", something I've found hilarious to think about ever since.
In Target's case, this means stuff like 'install a browser extension when our software doesn't work, so it can load the code that browser security settings will often block', and 'log in via an Incognito window if the editor doesn't work properly, since some setting is now incompatible with your current API version and the interface to disable said setting breaks along with the entire editor'.
For example the help and forum posts are just agonizing. They are verbose to the extreme, Often including paragraphs on what the author was thinking the first time they encounter the problem, and manage to sound patronizing and naive at the same time.
The official docs and forums being naive and patronizing makes it annoying to find the right syntax, as it’s not my primary language. But Every simple thing requiring a 13 page white paper full of irrelevant digressions makes sas agonizing to use.
It always feels like I'm working against the OS now that the OS philosophy has shifted to being all things to all people.
If it's Windows or macOS, it wants to advertise to me, or prevent me from launching certain apps or features.
If it's Linux, it's trying to shift me into some ill-thought out use pattern. This is fixable, but at a significant time cost customizing things. Actually, I'm being unfair to Linux, environments like XFCE pretty much stay out of your way. But I don't like where the mainstream DEs are going.
- Nautilus. Serious usability/UX problems.
- Audio in linux. Ubuntu often selects the wrong audio devices (microphone, headphones, speakers)
- Linux sleep/hibernation. System hangs are common.
- GRUB. The interface is dated, why is it so ugly?
A feature I found in Nautilus the other day is (ctrl + L) allows you to edit the current directory path..... Had no idea this was possible, but hugely beneficial.
My current bank just wrapped a mobile website in Android app. Logging-in with a fingerprint, though supported, takes 3 or 4 attempts.
The app is also very slow and fails miserably on slow mobile connection (very common in Germany).
Finally the app doesn't do the 2FA feature, it's offered by another, even worse app from the same bank. They're too cheap to offer SMS option.
The 2FA app can only be registered using snail mail confirmation.
I'm responding to the prompt in the OP, not the title.
> What's a piece of software you find essential that you wish you could replace or rewrite?
Emacs is the most essential piece of software in my workflow. It's probably not the worst, but it's the one where I see the most room for improvement. I lean heavily on org-mode for tracking what I'm working on, it's like my command center. I keep two emacs frames open at all times, one dedicated to org-mode.
Supported by an assortment of magical packages like helm, projectile and magit, I write code and anything else more efficiently than any other editor I've used. I was a vim user for ~5 years, and now use evil mode for modal editing in emacs.
So yeah, my opinion is that emacs is the best editor out there. But honestly it takes too much time to configure and maintain. I spend that time, because I don't feel like taking the productivity hit that I would by switching to another editor, but I wish I didn't have to.
I have a vision for a SaaS app that hosts my emacs config and provides me a nice graphical, discoverable interface for managing my configuration. It would have simple, intuitive flows for setting up the essential packages. Like maybe I could scroll through a list of the most popular packages (helm, projectile, hydra, magit, etc), and click to install.
The current state of the art in managing emacs config is googling the name of the package you are trying to configure, and trying to find someone's blog or github from which to copy/paste code from. There has to be a better way.
My guess is there are really good abstractions that can be built on top of elisp that let people configure emacs to be a powerful tool that fits their workflow like a glove, and doesn't require them to learn elisp or package internals.
> My guess is there are really good abstractions that can be built on top of elisp that let people configure emacs to be a powerful tool that fits their workflow like a glove
Yes, when think about this I get a bit hung up on the UI. Maybe those abstractions are going to have to ship a new one.
It improves discoverability of hotkeys and packages for me.
I switched to Doom Emacs about two weeks ago because it's built to be more performant and the configuration is meant to be a thinner layer.
Even with spacemacs layers, one has to go hunting on the googles and spend a bunch of time tweaking things if the layer doesn't set things up perfectly out of the box. And it rarely does.
Overall, I think spacemacs and doom emacs are amazing. Huge steps up from the base install. I just think there is a long way to go still.
- Bloated
- Slow
- Encourages you to lock your personal configuration into the Spacemacs ecosystem, rather than writing it in generic Elisp so you can easily extract it (why I still use it).
- Introduces ridiculous abstractions that aren't necessary, just so they can put "spacemacs" in front of the variable name.
- Hasn't released to the master branch in 2 or 3 years (!)
- Consequenty breaks regularly when you use the rolling release (which you pretty much have to do)
- Has an unresponsive owner who doesn't want to hand the project off to someone else (or hasn't found someone)
- Sets up weird default behaviour that's very difficult to disable
- Has awful defaults for most languages anyway. Their Python layer is terrible, the features are extremely limited and it often doesn't work.
Doom is a much better starter pack.
AWS. I don't know where to begin. Nothing make sense. Nothing works.
Docker. This thing is basically backward at every step. We should have never packaged different things on linux as a single "container". It does not work that way and that has created more pain than solve anything.
K8s: same Go: same
Venv. Goddamnit this never worked well and same as git, noone gets it.
Oracle Cloud seems honestly to go in the right direction. And it pains me to say it.
Hnoeycomb is a great tool built in a way that make sense.
Gitless is a good progress over git.
There are lot of examples. This is a thread about the worst things though.
Git has an absolutely atrocious interface, at every level.
The power it gives you once you've mastered it is probably worth it, but I'm not sure of that, and I think a much better UI that still retains a lot of the power (and adds more horsepower, even) is very possible.
Just that it was bad. It can be quite bad in itself and totally better than every other solution.
"Quite bad and totally better than every other solution" sounds about right to me.
With the caveat that it's apparently a worse option than Perforce and Mercurial for huge monorepos a la Facebook and Google.
I consider my worst pieces of software to be the ones where I cannot, for the life of me, understand even a tiny amount of why things were designed that way, or why things fail, or why I continue to subject myself to such torture. For the technologies above, I run into many issues with them, but I frequently feel that is on me, not on the software. They have also solved many real problems as well as exacerbate some others.
The home screen stream is this weird mix of people you follow, suggested streams, things your followed people liked and ads.
Each swipe down involves "OK I'm looking at something here it's a surprise...what is it..an ad? someone I follow? Some other gibberish?".
I can totally understand why people just delete the app. It's worse than FB imo - which is setting the bar really high already
I travel once a quarter on average for work. I probably spend about 6 hours on vouchers afterward, between account resets, etc. My employers rules are pretty brutal, but the system is impossible.
- It hangs at least every other day -- the pinwheel of death.
- It sorts files in some sort of weird non-alphanumeric order.
- There's no way to cut and paste a set of files. You have to copy them TWICE, once to an intermediate destination, then again to your endpoint.
- Right mousing on a file takes WAY too long to pop up a list of appropriate apps. This lookup should take a second at most. Adding a new app or removing an old one should update of the hash for affected files IMMEDIATELY when added and never again. This idiot check should NEVER occur on user time every time you right mouse.
- Finder should be rejiggered to publish a simple API so anyone can readily access all its constituent services. That way it'd be trivial for any power user to easily clone, reorganize, revise, and extend any/all of this obsolete malfunction-riddled 35 year old app, bringing the integration and performance of those services into the current century.
Finder has long overstayed its welcome.
OTOH, my Windows 10 computer displays almost exactly the behaviour you describe - when plugging headphones in, some applications will inexplicably continue using the speakers. Volume levels change without any obvious reason between different connections of the same device. Sometimes I have to select the speaker output and then the headphone output and it will magically start working. All of that would be fine, except for the real problem: there is basically no way for me to properly debug and solve this problem, whereas solving your problem on Linux would be relatively trivial for anyone with a bit of experience, even if it is in fact a bug in Pulse.
I've never been able to debug any of this. I think "a bit of experience" is putting it lightly. I have no idea how to fix any of this and none of the documentation helps. Imo, between "being configurable but being impossible to configure" and "not configurable except for the most important bits, but at least you get a GUI that makes sense and does what you want and expect", I prefer the latter. I don't want to become a PA developer before I'm able to make it do what I want.
Also, if you dive into the Windows 10 sound settings, you can set the default device and the volume for every application and it'll never deviate from that unless you explicitly change it again. This is how it should be, and I don't understand why PA isn't capable of this as far as I can see.
And if a program deviates from that setting for any reason, the only other reason why it could deviate is because the program itself has changed it, and you just need to check that program's settings. There's two places to check. On Linux? No idea. Infinite possibilities.
Yes, I've dug deep in the Windows 10 sound settings many times. I promise you, it regularly deviates from it, in ways that don't seem at all deterministic. Your solid belief in Windows 10's sound system not containing any bugs doesn't jibe with my experience of it :)
As mentioned in my previous comment, I suspect there's something other than PulseAudio causing your issues, like some external tool (possibly bundled as part of a desktop environment) trying to manage the sources/sinks/volume. Because of that hunch I'd probably suggest your distribution's bug tracker as the appropriate place to report the issue, as it's likely an issue of integration.
I just started using MS Win last year and sound is such a pain to configure in comparison, for me.
01) Atlassian entirely.
nearly broekn, far from elegant and far too many times broken.
02) Slack. using it since communication is a must.
Yet, noisy, using search too many times (left menu poor performace)
03) npm. oh lord. miss the old plain vanilla Javascript days.No, ADP does it this (incredibly stupid) way.
When you plug in a headset, after a 4 second pause, it pops up a dialog asking what type of device you connected. After the dialog you have another 4 seconds pause while it mounts the device. An 8 second wait while an incoming call is waiting is an eternity.
And god forbid you accidentally unplug your audio device in a call, it goes to the internal mic, and after restoring the device, MaxXAudio wont pop up the dialog until you leave the call.
It is so bad, my next laptop will not be another XPS, even though nearly everything else is great about it.
Thats why i started building my own open source system.
The SAP UI and UX are utterly ghastly - tiny buttons everywhere, hundreds of options, menus and pathways at every screen, and slow on top. It's just horrible to use. Even stuff like printing is ridiculously complex, way more than in a standard Windows app.
It gets a bit more bearable once you're familiar with whatever your area is - for example, you can type in a cryptic code to jump straight to the screen you want, and you eventually learn to somehow ignore the dozens of UI elements you don't need and focus on those you do.
On the dev side, you need to use ABAP, which is absolutely horrible - consultants can make a lot of money tho.
I should add as well, I've never used SAP HANA, so that might be more bearable.
I'm still using it because the alternatives come with their own drawbacks (usually high price but still having enough quirks).
If anyone reading this is considering trying or moving to HubSpot, I urge you to take our experience as a warning and seriously reconsider.
We moved to their sales CRM 2 years ago and have been filled with remorse ever since.
It’s hands down the most poorly thought out software package I’ve ever had the misfortune of using.
Aside from our sales performance taking a nosedive, it’s painful to use in a multitude of ways, and everywhere you turn is frustration, inefficiencies and dead ends.
Such was the frequency of our frustration with nearly all aspects of HubSpot, the phrase “fucking HubSpot” even became a meme in our office.
Run. Don’t look back.
Core of the product hasn't seen any noticeable features in a while.
1PasswordX was launched without the feature set of the desktop version. Dumb stuff that hasn't been fixed in forever like not being able to delete a single item from the trash, password formulae are rigid - words with no digits or symbols or random mess of all characters, no TouchID/FaceID, Apple Watch unlock support, can't selectively sync a single vault to say my work laptop.
There should be some open standard data-attribute on password fields so the app can read in the required formula to create the perfect password without me fiddling the settings.
Yes, please! This is a fantastic idea.
Word processors and spreadsheets shouldn't be rocket science, but the updater seems to have been designed by Satan's "I wrote some Python in school once" nephew [1], and many versions [2] seem to have rather obvious UI bugs.
Word still doesn't do some very basic things it should, and it probably never will now.
[1] Updated recently. Still bad, but not quite as bad. The really hilarious part is that I also have updaters for various music packages from Arturia, NI, and so on, and all of them are far more streamlined and professional.
[2] The number does seem to be decreasing. But it's still higher than it should be.
And if it fails for reasons such as storage getting full, it gets corrupted and then it's half an hour until it restores an old backup, losing the day's messages. And it also stores a week of backups, so that's 7x of the size which on many phones is untenable.
And this can't be turned off! I hate it with a passion but literally everyone I know is on it. There's even no way to hide a conversation from view without blocking it forever.
Awful.
[0] I once had a page-long note file on literally how to search for a document by title in $HUGECO's search application. Because it took me 3 hours to figure it out the first time. Not exaggerating. It would probably be easier to operate a DNA editing machine than this thing.
I use that often, my only complaint is that it you close the main window, for some mystical reason it decides to also close all the other tabs opened that way
When I paste a link, I don't want it to attach what's at the link because that takes up like half the window.
Lately the client has tried to auto-format things. Bulleted lists. Code. When I type ''' to start a code block, sometimes Slack automatically terminates the code block for me and sends my message before I'm done and sometimes not. I think you continue bulleted lists with the return key but code blocks with ctrl-return, I can't remember, it seems inconsistent though.
Somehow the Slack client doesn't register for links to my company's slack domain so links to channels end up opening in my default browser then bouncing back to the client.
God I hate Slack so fucking much.
I want my IRC client back.
Jira's not great either but I've never used a bug tracker that didn't suck in one way or another and it doesn't suck any better or worse than others. At least I can open issues in more than one browser window/tab.
It's productivity software that I need to touch every half-hour or so. Productivity software has to be snappy. Toggl is the opposite of snappy now.
On top of that, the app forcibly updates itself and has no option to disable that—while I'm using Homebrew for all other updates. The Android app is also half-baked compared to the Mac one, which is no surprise by this point.
Toggl's workflow fit me almost like a glove: no automagic guesswork, just manual entry and tracking of me being AFK. No alternative app has that same model, from what I've seen, and/or the interfaces are meh.
Somewhat ironically, Toggl's client apps are open-source and I've cloned the desktop one right after seeing the redesign. But fiddling with them would likely require coming up with my own storage method. I might as well redo the app in Lua with Qt or whatnot, as Lua is hella fast—but the state of GUI libs for non-native languages fills me with endless dread.
- I have to be a good user of it. I can get away with knowing a couple flags for these tools
- Git is inherently stateful. I can iterate on my grep-ing/sed-ing/curl-ing and try random stuff, but git operation can be destructive or leave me in a state I don't understand and do not konw how to get out of
I'd also like to point out that the concept of not having the history local (as in CVS, SVN and some of the still-used commercial SCMs), but only on the special sanctified server, feels seriously weird and extremely limiting to me.
¹ The by far weirdest one is --set-upstream specifically (intentionally?) not working if local and remote branch names don't match, so "git push repository branchLocal:branchRemote -u" doesn't make "git push" work if you are on branchLocal. It feels like that's half the point to have that option in the first place. But nah.
If we're talking about inconsistencies in git, the only one that comes to mind is how diff's `...` behaves like log's `..` and diff's `..` behaves like log's `...`. I.e. if you want to see the changes of `git log a..b` as a single diff, you'd use `git diff a...b`. If you want to see the changes of `git log a...b` as a single diff, you'd use `git diff a..b`.
Note I think git could definitely be easier to use, and the reuse of eg checkout to switch branches and revert a dirty file to either staging or the most recent commit is a bit strange. But calling it uniquely bad is silly, imo obviously.
For working software engineers, I both think -- and recommend to juniors -- they must invest the effort to learn an editor, git, and at least one language + toolkit deeply.
As an example: when I buy a back-up hard drive from a typical brick store like Costco, the "back up hard drive" is abstracted away: I don't need to study the USB timing diagrams, or worry about the details of how the magnetic domains are imprinted on the spinning disks, or really any of the chemical details of the surface coating.
This abstracting away of details is AWESOME. I can buy a $150 disk drive after spending less than a minute considering the purchase.
Git, on the other hand...
Let me give a real-life example of where real-life git and real-life published work flows don't work: you can go into GitHub.com, and make a project. And you can write code in Visual Studio, and save it up to your new git project.
Unless, of course, when GitHub.com recommended that you add a license. The instant you add a license, the project isn't "empty", and once the project isn't "empty", you can't trivially push your new Visual Studio project up.
The fix for this is to delete your GitHub.com repo.
I bet you'll reply and say, "that's just real-world problem! I only want to hear about theoretical problems!" -- which, IMHO, is one of the problems my profession faces. Real-world problems are ignored in favor of theoretical ones.
Maybe don't imagineer what I would say based on poor evidence.
Because (1) github doing that is kind of dumb (though (1a) how often do we make new projects?), and (2) we're discussing git as used for source control, particularly the commands. That's distinct from using github as a remote.
Novice developers that just haven't taken the time to learn more than three basic git commands. Their lack of knowledge is the problem 99.9% of the time, but they don't know enough to know they are the limitation, and they blame the tool instead
Old developers that come with a mental model of another VCS and either cannot or will not change their mental model and continue to be frustrated that they weren't consulted when git was designed
A third category may exist, but I have not met these people IRL
https://stackoverflow.com/questions/927358/how-do-i-undo-the...
Most notoriously, 'checkout' and 'reset' have a number of very different behaviours depending on the shape of the parameters you give them (which is why they've very recently added 'switch' and restore').
And some things that ought to be primitive operations don't seem to have any simple command at all. For example, if I have branch 'wip' checked out, and I'd like to advance branch 'dev' to point to the same thing as 'wip' without changing the currently checked-out files (even temporarily, because I don't want their timestamps to update).
And the preferred commands for managing the per-branch and per-remote push and fetch and merge settings have changed so often that I gave up years ago and just edit .git/config directly.
https://steve-parker.org/articles/others/stephenson/holehawg...
But look at pictures from the maker. It's not a cube, and the handle is in fact ergonomic. Indeed, I would hope that a drill used by expert for hours every day would be 100% designed to make their jobs easier, and that includes not given them crippling injuries. And it's 100% purchasable from Home Depot. And, looking on Amazon, it's half the price of a truly expensive drill.
But there's another level at which the story is bad. The story feels like a story about gatekeeping: either you're one of the special people, or you're a useless homeowner. Either you have big problems, or you shouldn't be here. Either you've dedicated your life to drilling holes, or you're not welcome.
So, I read the story, and it sounds like both an exciting story of a newbie learning that some profession has unexpected depth. At the same time, it's also a story of a person who wants to be part of the special exclusive club.
It's only very occasionally that I have to drop down to a command line to fix some kind of merging snafu - if that happens, I'm guaranteed to have to Google it, but at least I'm also guaranteed to easily find a solution on StackOverflow.
If you want a coherent mental model of git, just do https://learngitbranching.js.org/ and never look back.
For me it's the other way round, git clicked way faster than other systems.
For example, say you’ve just made a commit, and then realized that wasn’t what you wanted to do so now you want to undo it. This can be described under git’s data model as “set the current branch to HEAD^ and discard the orphaned commit, leaving the working tree alone.” For some reason this is a “reset” operation (the same command you’d use to unstage a file, an otherwise unrelated operation) and you have to decide if you want to do a “hard,” “soft,” or “mixed” reset. If you get it wrong you’ll have to go grovelling in the reflog to get your files back.
To be fair, this situation is improving; the recent introduction of the switch and restore subcommands has helped to disentangle the especially overloaded checkout and reset subcommands, for example. But it’s still harder than it should be to convert a mental image of what you want done into the appropriate (series of) git commands, and vice versa.
1. There are great cheatsheets online that you can just print out and keep on your desk.
2. Write a user friendly cli wrapper on top of git (i think there might already some projects out there)
Unfortunately whenever somebody asks what could a better option there are generally no answers except keep at it and you'll get used to it.
While I myself think I am pretty familiar with git cli, I don't really use the cli anymore, since intellij covers all the features in a much more intuitive way. e.g staged edits, rebase.
- Those who have never used Clearcase, Perforce, or any other enterprise monstrosity.
- Those who have and suffer from Stockholm syndrome.
Git offers the flexibility to let each person work the way they prefer, even (to a large extent) on large shared projects.
With some wrappers and hooks, you could quite easily cripple git so as to emulate most any simple VCS. The aforementioned enterprise products barely work at all, so replicating their non-functionality might require more effort.
Clearcase I agree was a POS.
I don't really find that to be the case in normal use at all.
The git commands do not abstract over the internals, they pretty much just provide a direct interface to them.
Just curious:
Were you inspired to ask this question by the recent CoRecursive Podcast interview with Jim Blandy (https://corecursive.com/054-software-that-doesnt-suck/) in which he talks about how the motivation to design a CVS replacement come from the question "What's the worst software that you use every day?"
HUNDREDS of different systems on the market. Some with maybe a handful of doctor's offices using a particular system.
Worst UIs you could ever imagine. Limited interoperability.
In even well-established systems with large numbers of installs you'll see multiple bugs in production code that don't get fixed.
Switching costs are essentially infinity so doctors get locked into a system no matter how bad it is.
My workplace uses SmartCAM, an ancient CAM package for manufacturing. It's probably not that bad, but I couldn't wrap my head around it compared to other CAM software. It turns solid geometry into low-poly mesh, and nothing is intuitive like Autodesk HSM.
Client portal could display information using the above rules, and more rules
Thousands of site settings were in an admin area which was grouped by major module, or just placed on which page the developer picked at the time (some pages dedicated to a couple of settings, other general ones full of unrelated random settings)
This applications is absolutely usability nightmare, created in 90s, and it hadn't undergone any change since then. It's database design is also absolutely horrible.. yet it is faster, and more comfortable to just use plain SQL to work with it than bother with UI.
Then there is that piece of shit known as firebird. It has all downsides of file based databases, while also having all downsides of service based databases.
It also has its own way of doing things, and it doesn't even have services/systemctl service by default. Prior to version 2.5 you couldn't drop connections, and guess what - that PoS application set it to a week.
File itself wont update if there is any live connection.
That piece of shit app uses legacy client dll for firebird, so you can either connect to firebird 3, or to firebird 1/2. but not both.
And then there is firebird documentation, which is horrible, and fragmented.
I could rewrite that piece of shit, and design a better database but we won't ever compete with that company for political reasons.
2. Freecad (difficult, weird UI)
3. WordPress+WooCommerce (they charge you for as basic as simple shipment tracking plugin)
- Loading up the client list takes forever ~15 seconds
- Loading up the asset list for a given client takes even longer.
- Remote access is hidden behind a 2 layer context menu
- All URLs are dynamic so you cannot bookmark your favorite assets / jump boxes. I use a selenium script to automate the page navigation because it can take ~5 minutes to get to an asset by name due to a combination of needing too many page loads and not being able to just start from the search page.
- Terminal experience is way worse than putty. Output formatting is always jacked up and a command takes ~5 seconds to return output.
- RDP all goes through a relay and your connections will just die occasionally.
- 90% of my work interacts with it in some way.
BUT it makes pretty reports for management so we are stuck with it. I demo'd some alternatives like apache guacamole or remote desktop services but the consensus was that we didn't want to take on the risk + we are already paying for a product that "works".
It can give you nice plot results, but to get there you need to struggle with the UI. The UI for adding data series is a pain as while there is a editable text indicator indicating cell ranges for the data, typing on that indicator activates cell selection on the background that also modifies the text as you type.
It is a nightmare if you have many Y-data sharing the same X-axis. The methods for bringing out dialogs also rely on being able to click parts of the chart, which is largely hit or miss, especially if you have dense superposed data.
Scroll position changes when I select data (using several methods) so new charts are often created at the bottom of the long spreadsheet and I have to manually bring it to a more sensible higher position.
Well, I might be wrong for using Excel in the first place. But I use it for the same reason I use MS Paint instead of Gimp. Sometimes you just need something quick and familiar. And for plotting, the alternatives seem to require some learning.
I'm recently lookeing at SciDavis and hope this solves my nightmares.
No new user, and rarely an experienced one, starts a new thread. Every reply just builds on the original.
All this even when the new thread button is _right in front of you_. But the design is so terrible I don’t blame people for missing it.
(On a separate note, I see no Apple products in main threads. I see a few google ones, Microsoft, Amazon (AWS) and Facebook (workplace))
Don’t get me wrong, I still love it and it makes my life easier but it just breaks all the time, especially when I update it.
I had to rollback to my latest daily snapshot and didn’t update until they fixed it, which took around a week.
I would hate to rewrite it but I wish someone would. It has the worst and buggiest UI of anything I've ever used. Everything looks incredibly dated, and while the backend (the useful bit) does what it's supposed to (though very slowly unless you're paying for the big boy license) it's just a horrific place to be.
Coming home from work and working on my own stuff with the tools I like rather than have to use is like a breath of fresh air.
Vivado is also notoriously a bit of a bloated and buggy pig. For hardware simulation, Active HDL is probably the least worst thing that I've used that has all the features. But for just doing simple simulations without all the bells and whistles, GHDL is by far and away the best experience, and it's the free one.
Lastpass + Authy - main frustration is helping wife use them - her usage is less frequent so she needs help each time. Also they don't sync reliably so adding new accounts can be painful.
Anything that starts automatically on boot by default, slow to launch, or has a separate "installer/updater" that is constantly annoying me (looking at you Adobe everything)
Alexa - only listens to me; doesn't cutoff quickly enough when someone tries to issue a new/improved command or dismiss a response
So many posts on here about X not working on Y system where Y is not a money maker for X. Yes, you are an afterthought.
Crashes all the time on both the front and back end. Bloated mess of user displays that you have to drag and drop elements on by hand. Oh and let's not forget that I'm usually interacting over a slow RDP connection.
Aha! I was about to submit the comment and it came to me that my laptop's nvidia proprietary device + linux kernel combo is (let's be kind) under optimal (still better than the open source driver.) The main point: 40 Hz refresh rate with Ubuntu 18.04 and 20.04. It was 60 Hz with 16.04 and earlier.
At the end of every startup it used to present a dialog 'Mail has encountered a fatal error and will now close'. If you clicked 'OK' the programme would terminate.
Fortunately the dialog wasn't modal, so you could carefully tuck it into an unused corner of the screen and continue as normal. Eventually I did some googling and deleted ~/.local/share/local-mail/templates which got rid of it (but I lost the templates)
That said, I still find the UI much less fiddly than gmail, which is why I use both.
In fact I'm writing this comment while I wait for Kmail to re-load it's mailbox, so I can reply to an email.
I have to admit that I don't use it every day--I have PDF-XChange Editor on my home computer (and a couple other PDF viewers), but when I do have to use it, I hate it. The UI has gone through lots of changes in the past few years, and each time it's worse. Most everything is icon-based--tsort of like Microsoft's Ribbon, except these icons are randomly displayed above, or to one side of, the doc you're working with, leaving little room for that doc to be displayed. You can get a menu, but its primary use seems to be to bring up rows or columns of icons. And the icons are both large and ugly (and often indecipherable).
What is that website "browse happy" or some such? All due respect, I simply cannot agree. I am not happy with those recommendations. Web should be friendly to all user agents.
Then, there's also the UI that is just... awful. Touch-oriented white-on-white macro bullshit for people with poor vision. It's a smaller gripe and easier to fix, but still.
Windows 10 really feels like something that Microsoft decided to stuff down everyone's throat just because they were in position to do so. It clearly shows that MS treats users as a cattle, basically. You can moo all you want, but that won't change a thing. If you don't think it's true, look at LTSB (or what it's called now) - that Windows 10 edition for people who are really paying. Can't piss them off, so - no ads, no Windows Store, no Cortana or any other crap just gushing out mainstream Windows releases. So it is perfectly possible for MS to release reasonable OS editions _and_ they readily recognize their bundled junk for what it is, it just they don't give a fuck of what unwashed grey masses want.
So, yeah, Windows 10 is the worst piece of software. Not because it's lacking in the tech department, but because of a fundamentally rotten and disrespectful attitude towards their users on Microsoft's part.
Microsoft -- it doesn't sell those versions to individuals (or even small companies without Volume Licenses).
Especially perhaps if you were lured in to the free upgrade route from Windows 7, which means your hardware is decent but not the latest and greatest. Fortunately, I made image backups when I upgraded.
Normally we'd think of updates as the correct thing to do to maintain your PC. So I find it insulting that it is the updates that are breaking the system.
I am gradually migrating to Notion instead of Evernote but I am stuck with the other two.
Unfortunately the company has decided to use it and my colleages have as well.
Dragon is so important to my workflow, while so shitty a program, that I would pay three or four times its cost for a competing product that actually worked well.
Email threads are not there; "Find related" works, but it does not help organize emails, while long emails with embedded history of other 20-30 messages and no capability to identify, expand/colapse messages are a nightmare.
And the calendar is useful, but a black box. My calendar has about 0.5 GB and I have no idea what is taking up all that space and how to reduce it.
The thing we hated most about it apart from the slowness (computers were slower back then too, but anyway) was that it auto-saved after every action and had no undo. If there was an option to turn this off, we couldn't find it.
It was all too easy to select a bunch of items and accidentally drag them to the wrong place, and so we ended up just making a backup copy of the project file from time to time, and before attempting any type of operation that might mess up.
One of examples: if you click 2 (or more) links in its web interface and open the links in new tabs, the content of these tabs will be a mix of content from the links you just clicked. It’s not very obvious and it’s very easy to change something in the tab A, thinking that you’re changing the call center configuration for application A, but in fact you’re changing a random piece from site B or C.
Cisco doesn’t care much about it.
It slowly (haha) steels time from me every day and I was never so frustrated using a computer.
The network connection quality on Slack calls seems to be very lacking compared to other call apps.
Typing in Asana is painful as well.
How often will be be on a system which does have tmux but doesn't allow you to download your own tmux.conf from GitHub (or wherever)?
Dynamics 365: millions of unwanted features that bloats the system. Very complex where it shouldn't be, poor search features... Could go on and on. On par with Salesforce in my opinion.
Marketo: entreprise software that was probably good 10 years ago. Nothing has changed since then. UX/UI is shameful. Landing page builder is just a joke. Not being able to write custom objects from a form defeats the purpose of using an advanced tool like this.
Also... Concur?
Many other Apple-built apps and products (especially those that cannot have any 3rd-party alternatives) are horrible to use.
Even with the new UI it still seems strange that the site is so slow vs others I have to use.
One of my design mental exercises is to try to figure out if you could tweak the svn architecture into a DVCS, preserving the superior subtree support. I think it could have been, it's just that theory and execution diverged.
[1] https://github.com/youurayy/console/releases/tag/1.19.0-pers...
I truly can't think of a single positive aspect of this absolute garbage piece of software. It's so mindnumbingly bad that most of us just avoid email whenever possible, even if it means going to physically seek out a person who may not even be available.
(1) The actual Outlook client is an option if you're willing to forego root on your computer. To me that's far worse.
Docker: crash o plenty Service now (bloated forms system on .net or slower) Teams - UI, no sizing of window, spyware (look it up) One Drive/ SharePoint (ugh - group of us said we would take pay cut to not use) Finder - anything but. (How is a file in past 30 days and not recent that I made 5 seconds ago?) Photoshop? Nobody mentioned here. Adobe anything... OSX Mail - particularly Big Sure flavor Itunes Connect SAP Concur
Running it in a kubernetes cluster is basically like holding a marathon in a minefield. You know someone's gonna die, you just don't know when.
Also why bad software exists: https://twitter.com/jaukia/status/1114044716616753152/photo/...
The manufacturers of those appliances and devices really do NOT know how to develop usable, secure software.
See https://twitter.com/internetofshit?lang=en for egregious examples.
Skype - an absolute trainwreck of instability and messages not syncing between devices. Always needs to update - and never improves. I only use it because it is still the de-factor standard for a lot of poeple.
But the winner must be agresso, or whatever it's called now. Just awful in every sense.
It's a "product lifecycle management" that is basically version control plus issues list tracker. It has horrendous 80-90s-era interface and require clicking for every possible steps. Formatting always involves MS Word style rich-text button with sans-serif font.
Worst: it has to stay Online just to do version control.
Xcode: don't use it every day but damn it is unnecessarily weird and unintuitive. It's clearly something designed for the people who know it and nobody else.
Mac Mail, but unfortunately the alternatives suck too and I hate web mail.
Back in the day Skype used to have a beautiful, native Mac client.
It's always a hard struggle, effort and suffering to make a call to a phone number, even if this phone number is in the contacts of the phone, or has been called before.
Adding to that, when Microsoft acquired Skype, they were offering to merge the Skype and Live accounts, which I agreed to, which rendered my Skype account unusable (with credit on it and lot of contacts registered).
The. Worst.
We really should have live reloadable Cocoa apps and the desktop experience would be 1000 x better , with 10x battery life and better responsiveness
I can navigate it, sure. But I'd also use an elevator caked in dried urine, to get to the top of a 14 story building, like most people would. So go figure.
ADP is even worse, but I don't use it daily.
I have no idea if this is still possible with modern WS.
The site is trying to do absolutely everything and the performance shows.
I already have Outlook and Teams open. There's no need for SharePoint to be running extra code to notify me of an e-mail or Teams message.
It’s Chromium-based, so, of course, it’s slow. Specifically, search is excruciatingly slow, removing an album from your library redraws the whole page, and—most frustratingly— as soon as you lose internet connection, your perfectly nice and readable page get replaced with “Artist pages are not available offline”. It’s a list of tracks and albums which is updated (at most, on average) several times a year, why require connection to continue showing it?
Not Mac-specific, but extremely weird: sometimes Release Radar playlist has tracks by wrong artists with the same name. I don’t think a recommendation model would use names instead of IDs, so it probably means that track was first ascribed to a wrong artist, and that’s... even worse?
I use Spotify all the time on my 2016 normal-powered Macbook Pro and I don't experience any of your performance problems. Everything's lightning fast including search, and I've got 10,000's of tracks saved in 100's of playlists.
It was ugly, confusing and slow as hell.
Knowing it is not Jira is what makes Pivot tolerable. Knowing both are coded in server-side Java, though, is oddly satisfying.
Besides that: Jira. (A distant second to Checkpoint though)
There is literally nothing good about that issue management program except that it is free. It is impossible to understand what you are looking at. It is just awful.
Every (space) day? Definitely the spelling/grammar check and autocorrect software on my phone. ;-)
Bloaded, Slow, Buggy, Unreliable. Unfortunately some customers are too stupid and/or lazy to use a Jabber/OTR client.
It’s a mediocre spreadsheet, half assed database, and infuriating WYSIWYG ... but all-in-one!!1
And it’s search sucks.
All of them lack some kind of functionality: mail calendar apps are buggy (win and mac), GPU suspend problems (linux for me), can't replace hardware parts(macos), weird finder problems, weird "explorer.exe" problems, weird nautilus problems.
Why can't OS'es just work? Why is UX getting worse? Frustrating to say the least.
It's such a mess, but nothing else comes close.
* Why does the maximize button fullscreen by default?
* Why can’t I simply drag windows to the side to split half and half? No, I don’t want to switch to fullscreen mode to do this.
* What is the point of the minimize button and why do things minimize to a special area on the right side of the dock?
It’s not at all intuitive and takes weeks getting used to.
I used Salesforce earlier and it was smooth.
I step away for 3 hours and that process that is consuming 4GB RAM is none other than Teams.
it’s wretched and ruins every zoom call.
If you like the web, then maybe this does not compute for you.
Just the simple act of going back a page makes that page reload; why?
slowest interface ever. songs are impossible to find when playing from a playlist. focus never switched to the music player. no native cast plenty other problems
God they're fucking terrible. The actual EMR's are often fine. Then some hospital administrator gets involved and completely destroys usability.
Google Doc search is totally useless
Literally kills people every day
I have a computer in my pocket but I am not allowed to do even the most basic stuff I would like to do with it. Like using a shell to work on my files, use git for version control and to sync to other machines, use vim to edit text ... the list goes on forever. Heck, I cannot even easily backup all of my data. Like the contacts for example. No way to read the files in which they are stored.
Also, rooting your phone gives you access to all files, but I understand it's not everyone's cup of tea.
With rooting it is similar. You usually give full control over your machine to "someone from the internet" who provides you with the root mechanism.
Termux is open source. I fully agree with you on the one that provides the rooting mechanism, as I believe that's normally closed source.
Good luck on reading and vetting all that code.
And then installing Android Studio (It is a beast!) to compile the code into an APK.
And don't forget to repeat the two steps every time there is an update.
As others have mentioned, Termux is Free and Open-Source. You mentioned trust, but considering Termux is already open source, I'm not sure how the author could gain your trust.
> use git for version control and to sync to other machines
You got me with git, but Syncthing might solve the same problem for #2 - there's a FLOSS client available on F-Droid as well :)
> use vim to edit text
I'd assume Termux has a vim package, meaning you can stay open source for the entire stack. If it doesn't, then my mistake.
> I cannot even easily backup all my data. Like the contacts
Ignoring using a carddav server for to have them backed up all the time, you can easily back them all up in vcard format via Simple Contacts - an open source app availble on F-Droid.
Hell, for the most part you can completely disable whatever you want, root or no. ADB can disable everything you don't want to run, including all the way down to Google Play Services. I can verify that, as I've done it myself on my BlackBerry KeyOne.
It (mostly) can all be done, it just takes a little bit of looking. Like anything else with modern computing, the fun stuff is hidden away, and all we're presented with is the glossiest interface the OEM can shove in front of us.
If there's anything that actually cannot be done via FLOSS software, I'd honestly love to hear it, because I'm drawing a blank at the moment.
JIRA.
2 jira
Sometimes Finder simply won't show certain files, and you need to do a mv from terminal to another folder, where you can see them in finder.
thanks !
cmd + shift + g, to go to any directory.
browsing the menu bar for keyboard shortcuts is useful.
- If this is where you most commonly want to get to, Finder => Preferences… => General => New Finder windows show <home directory>. All new Finder windows will open there automatically from now on.
- If you leave the above setting on its default, new Finder windows open ~/Documents. Hit ⌘↑. Or if you have the path bar switched on (View => Show Path Bar), double-click your home directory in the path bar.
- Drag it into the sidebar or go to Finder => Preferences… => Sidebar and tick your home directory.
- Drag it into the dock.
I am quite comfortable dropping to a terminal to run `ag` but this shouldn’t be necessary. Such wasted potential in a GUI file manager and seemingly no chance it’ll ever be improved.
I wish I knew how to get design feedback to the GIMP team in a way that would be appreciated & that people might take action on. I also wish they’d rename it something like “Image Lab” so it would be easier to promote at work.
I would certainly do this if I was adobe.
What's worse, there is no viable alternative to it, though some tries have been made.
The default Android phone comes with loads of bloated and useless apps that spy on you. Unlocking bootloader, installing a custom ROM, installing all your favorite apps is a long and painful process (some vendors take weeks to approve your unlock request).
All of these, in the name of a platform which is'open-source'.
You have to make an effort to get ROMs without GAPPS and even then, Google is making changes to the OS prevent things like MicroG from succeeding.
It’s close though.
I have a very bad UX. It's small annoying issues, like minimizing a window. If you don't explicitly minimize the window and open another program, the other window is hidden. Where is it? How can I open it? Yes by minimizing every window until I have found mine. For applications, this is not that bad, since you have the dock and just click on the icon to reopen your window, but what happens if you have several windows open of that app? It's a nightmare.
I could write a whole list of toxic UX in macOS.
> If you don't explicitly minimize the window and open another program, the other window is hidden. Where is it? How can I open it? Yes by minimizing every window until I have found mine.
I don't understand exactly what you mean.
> what happens if you have several windows open of that app?
One of these:
• Right-click/Control-click on the Dock icon
• Check the Windows menu of the app. Minimized windows will have a Diamond
• Press F3 to open Mission Control.
• Press Control+F3 to see all windows of the currently focused app.
• Press Alt+F3 to open Mission Control settings and configure them to your liking, along with setting Hot Corners for showing application windows etc.
• If you "Group windows by application" and have a mouse with a scroll wheel, you can use scroll the wheel when hovering over an app's window, to "spread" that windows stack.
• Press Option+Command+H to hide (not minimize) all windows except the active app.
When you minimize a window, it disappears, period.
It becomes an icon on the right side of the Dock unless you set the "Minimize windows into application icon" option.
There's a very explicit animation of where it goes, that macOS is/was famous for (the "genie" effect).
And all windows of an app can be accessed by right-clicking on its Dock icon, or its windows menu, or Control+F3.
macOS works much better if you manage windows with hiding, rather than minimizing. Once you get the hang of it, with cmd-h (hide), cmd-tab (switch applications), and cmd-‘ (iterate windows of an application) I (almost) never leave the keyboard and can get right to the window I need quickly.
I almost never use it myself, but I get called upon to deal with it for some of my relatives. The fact that you can't just mount the file system on a non-crippled computer and transfer files to and from the device just drives me mad. Getting someone's music into the right place if they don't have access to a machine with iTunes is miserable. When the "files" app appeared a few years ago, I thought "finally, they'll let you manipulate files directly", but no - it's just another silo too restricted to be of any use.
What do you mean, non-crippled computer?
I think one of the reasons iOS doesn't expose the device as a Plain Old Disk is so that it can continue to enforce content restrictions etc., i.e. such as those set by parents.
- - Gmail intentionally doesn't filter spam or phishing emails.
- - Google Voice used to be useful but today is being blocked by more and more services.
- - Google Contacts is pervasive and uselessly so.
- - Google Calendar also supports tons of spam and phishing.
- - I stopped using Chrome because it stopped being a user agent.
- Atlassian products. Slow bloated pieces of privacy violating garbage.
- - JIRA is more and more confusing every day. Frequently changing UI incurs cognitive costs. Its workflows are confusing af.
- - Confluence is functionally inferior to Media Wiki. That's not even the worst part; the worst part is that it doesn't use markup like the rest of the world.
- Microsoft products.
- - Skype. Once upon a day Skype was nice and usable. Today Skype is functionally, measurable, objectively less useful and less stable than it was just half a decade ago.
- - Github. It was great until a few weeks ago. That new UI is still worse.
my spam folder is fully of spam and phishing emails. no idea why that doesn't work for you. i see essentially zero spam in my inbox (and i have several extremely public email addresses)
Google Slides makes me want to cry every time I have to use it. Google Docs isn't much better. They're poor web versions of office software from the 90s.
Google drive is a disaster of product. Uploading and finding files are both incredibly painful.
Google sheets is fine for simple stuff, and I get why people use it, but there's far better alternatives. For anything moderately complex it's a dog.
I can't stand the gmail interface, but I can at least see why some people prefer it. It's the one part of the suite that isn't far inferior to its competitors.
all features are MVP and the main selling point is being collaborative.
When judging it as a whole, I find it worse than judging individual components. For example, sheets on its own is a decent tool; sheets as part of the suite is dragged dow by the rest.
comments in spreadsheets stink but everything else is pretty great. ok one more flaw. you can’t unassigned a task from yourself. you can only reassign to someone else or mark it done (which clears the comment thread).