Subversion was created because the authors were frustrated with problems in CVS[0].
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.
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.
https://www.edubase.net/
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 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.
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!
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.
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.
(Plus, we were in YC batch S17 with the predecessor to Eduflow – Peergrade)
Deleted Comment
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.
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.
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.
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.
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.
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.
> 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.
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.)
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.
Speed isn't the best, but it was either that, use Redmine with a massive config or wrap the shop up.
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
[1] https://github.com/tilfin/aws-extend-switch-roles
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.
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.
0: https://kitemaker.co
Also, what about sprints? As of now, kitemaker is solely usable for Kanban, right?
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.
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...
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.
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
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.
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.
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).
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.
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?
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).
UI is a total joke. It's like a machine built it literally just listing everything instead of by a human mind.
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
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.
But really what holds it back still is sluggishness. I'd take a few extra clicks in exchange for instantaneous responses to each click.
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.
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/unifihttps://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/
Notion is great for marketing teams though.
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...
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.
instead, it just makes my current line h1.
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.
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.
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
Also your posts are hard to read if you systematically writes it's when you mean its.
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!
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.
As for Git, try to go back to SVN ....
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.
Deleted Comment
Pretty sure they said they're launching in July so should be live soon.
Dead Comment
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...
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.
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.
Wait, what? Do threads move when they get replies or something?
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.
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.
Deleted Comment
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.
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.
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.
Infuriating.
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.
Deleted Comment
It's so infuriating.
Mind boggling that continues to make it past UAT.
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.
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...
This is on Windows computer too, like, how do you guys not know how to detect an Internet connection on your own operating system?
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.
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...
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).
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.
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.
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 ?
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.
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.
https://td.unh.edu/TDClient/KB/ArticleDet?ID=2197
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.
It's horrible.
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.
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. :-(
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?
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.)
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 ...
0: https://github.com/docker/roadmap/issues/12#issuecomment-652...
1: https://github.com/docker/roadmap/issues/7
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!
[1] https://github.com/youurayy/hyperctl
I don't miss Docker.
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. :-)
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.
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.
I'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.
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:
They should have a way of achieving the same thing (just one layer) without multiple commands and added to the same lineAnd 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.
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.
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.
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.
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.
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.
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 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.
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.
FWIW, I feel your pain on a daily basis, but I do like Hadoop as a low cost massively distributed db.
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 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.
[1] https://getsession.org/ [2] https://telegram.org/