Similar to South/North Korea.
26,992 karma · joined March 31, 2019
GitHub: https://github.com/goranmoomin
Twitter: https://twitter.com/goranmoomin
Mastodon: https://mastodon.online/@goranmoomin
Email: goranmoomin <at> daum.net
Similar to South/North Korea.
In fact, I think the iOS app for FB Messenger did get a redesign due to problems and it’s rewritten from scratch? I remember being pleasantly surprised after the big update… It became lightweight, integrates well with iOS and supports platform features.
On the other hand, the desktop app or the website is a shitshow :-(
[0]: https://twitter.com/simonbs/status/1352697855845273600
[1]: https://twitter.com/simonbs/status/1362492842141171720?s=21
GraphQL is a genuinely objectively useful technology in places that have a frontend-backend split (including non-web frontends). It doesn’t require building specific APIs for specific pages for speed concerns. It allows backends to add fields non-destructively (RESTful JSON does work at the cost of a bigger network payload).
GraphQL provides the right tools for the right problem, and has created an ecosystem around it. (How should I reliably compute a SQL query cost? How should I control data access policy in SQL? How should I return the SQL result in a easily-parsable format?)
Worked like a charm at least to me :-)
Apple have stated multiple times that they don't have any intention to lock down macOS more or less - I can't really think why anyone would think Apple would lock down macOS. There's... really no reason right?
My gut feeling is that there are a lot of people that don't like Apple, mostly due to their proprietary nature, and they just... argue against Apple. Before the M1 appeared, the argument was that Apple's Macs are expensive for nothing, they have terrible hardware, Touch Bar is bad, software quality has declined, etc... and now it's all about the user's freedom.
Seriously people. This article is about using dev tools on the M1 Mac. Let's not start arguing about how Apple is bad for freedom, etc.
Traditional macOS users valued the Mac user interface deeply, and IMO that was why while iOS 7 got a big refresh, macOS got a much smaller one, only with flatness refinements. Big Sur feels like the iOS 7 for the Mac, and I’m very sad that I’ll have to wait at least 4~5 years to see the new interface improve in a better state.
Some of my key annoyances (except for bugs):
* The new control center now requires more clicks, but due to the padding getting bigger, I can’t put all of the shortcut icons in the menu bar
* The new control center and notification center’s UI is so foreign from other parts of the macOS. It’s just… so custom.
* There are now multiple variants of the title bar thickness, and all of the Apple apps now use all four. It just feels ugly. The title ban of the Photos app and the Calendar app are almost the same — why does one use a .unified one and one uses a .unifiedCompact one? And why does Safari uses a .unified one when it doesn’t really have any information to convey?
* This is from Catalina, but the NSSwitch stuff collides with checkboxes… but well I’m guessing that’s for Catalyst trying to look native
I can go on and on… but my general feeling of Big Sur’s UI is that it would take multiple years to make this better.
For example, I’m pretty sure I would like every app to automatically handle cases where the underlying file gets renamed or removed. (AFAIK apps that use the Cocoa API automatically does these.) However there really isn’t any POSIX API that allows handling these kind of situations — and to do these now you need to do all of these nitty-gritty things that SQLite does.
In fact, I think that the reason why SQLite needs all of these nitty-gritty details that does everything is because of an insufficient abstraction. If the file APIs were better and didn’t require everyone to consider whether you have to call fsync or not, SQLite wouldn’t have needed any of these. But well POSIX have flied and here we are.
Swift's keyword syntax isn't complex at all.
> Keywords? Or parens? Both!
I know you like Smalltalk, but keywords and parens are used together in a lot of languages (e.g. Python) so it's a tested idea.
> And the weird case of having two keywords, one with a colon and one without, because we decided to make the keywords the names of the parameters. Sometimes.
You don't have two keywords, you have an optional variable name. It's intuitive at the first time you see it - you're phrasing makes it seem much more complex than it really is.
I think you're trying to imply that Swift isn't an elegant language with it's syntax fitting in a postcard, but that doesn't mean it's 'tremendous complexity'. This whole comment is a bit too harsh to Swift, calling the legitimate differences between Swift and Smalltalk as 'complexity'.
I do agree in general that Swift can benefit from a reduction of special cases, but my personal feeling is that Swift is getting more consistent every version (at least in the features that already existed). YMMV, of course.
[0]: https://twitter.com/bitshiftmask/status/1286411475658178561
It doesn't interact well with other language features (e.x. if let wasn't supported for a long time), it isn't really extensible (transforms are specified by the language), and yet it adds a bunch of complexity in both the language, implementation and reading code.
It seems clear, at least to me, that this is something that happens if you try to make a feature 'generic' without a lot of time and design consideration, due to Apple's internal politics on SwiftUI. I like SwiftUI, and some features that support it are great (like custom attributes), but I firmly think that they should have taked the time to produce a better design.
[0]: https://github.com/apple/swift-evolution/blob/main/proposals...
Usually you just set a fallback CJK font and just not use my native language while coding - I just got better at English while writing comments in it.
I know you’re saying that in a subjective way, and definitely the percentage of non-Cocoa apps have gone up, but I’m not sure if they’re dead. In fact, I feel that they are thriving once again in 2020 — a lot of indie devs that care about making Mac-assed Mac apps[0] are present and are releasing great apps and replacing ones that were filled with Electron.
Some examples that pop up in my mind: NetNewsWire 5[1] (an RSS feed reader), Shrungs[2] (a Cocoa Slack client), MimeStream[3] (a Gmail email reader), Chime[4] (a Go IDE that’s entirely Cocoa! I seriously considered learning Go because of this app), ProxyMan[5], and I can go on and on...
My feeling is that Electron got a bit of traction in like 2014~6 but people started to realize they really do like Cocoa better.
[0]: https://daringfireball.net/linked/2020/03/20/mac-assed-mac-a...
[1]: https://ranchero.com/netnewswire/
[2]: https://shrugs.app/
[5]: https://proxyman.io/
This blog post is basically about using GUI inputs to get user input. Which means it's an interactive script, and the direct non-GUI equivalent is a TUI. Which means the script is not something that you will be automating for, but more just of a convenient interactive tool.
And by definition TUIs are an inferior version of a GUI, for example it usually won't handle terminal size changes, localization, etc... So it makes plenty of sense to make that a GUI for the sake of having a better input. (And I won't call that 'modernization', but it's a better option than presenting a calendar UI from your bash script or having me input a unix timestamp or something else.)
So then you might say that hey the command line equivalent of that GUI input is flags, not interactive input, but well you can make a CLI that gets it's parameters from flags and gracefully fallback to interactive input if you don't have sufficient information.
(And no, TUIs are not more efficient than GUIs. CLIs might be, because of shell piping and it's automation techniques. But TUIs are inferior, full stop.)
BTW) I would say that writing a whole compiler to add UI update logic is much ommore over engineering than this solution, or just about any JS reactivity system.
For a long, long time, I thought that to provide the values that React brings, the UI framework being a black box is inevitable. Almost all React-esque libraries including but not limited to React, Preact, Mithril felt like a very thick abstraction over the DOM APIs.
But then I saw Crank.js[0], and that felt very intuitive and a thin abstraction, while retaining the good parts of React-esque libraries. I don't really know why it feels like that - I'm guessing it's because it uses native JS features that you already have a good understanding instead of some magic that happens in the React runtime.
I'm very looking forward to it, and I would like to urge everyone to try out Crank.js if you feel that React is now not intuitive enough.
Stop complaining about discoverability, everyone that knows how to browse the web knows how to scroll. It's like worrying whether the user will know how to use a mouse when you're designing a web page. Scrolling is not something like shortcuts or tabs - you need it to move around, which means you get to know it as soon as you start your computer and after the first knowing phase it's visual clutter.
Also, I would like to ask whether users will usually even want to click on the scrollbar to move around. Unless the small number of cases where the page is long and you want to move around quickly (and if you have ever been in that case, you know that even there using the scrollbar is pretty useless because it's too sensitive - you are usually less precise when you use a scrollbar, not more), there's virtually no reason to click it. Computer screen estate is precious because not everyone is using a 27-inch display (13-inch display here), so that's a pretty big reason to hide the scrollbar.
Especially drag-n-drop. I'm not sure if it's already mentioned, but the proxy icon (the icon in the title bar) is super-useful in situations when you need to find (e.g. upload/attach the file in Safari, opening the file with another app) the file somewhere else. Just drag the proxy icon and drop it to the destination, and it usually will do what you want.
Also the Touch Bar. Everybody complains about it while not even trying to take advantage of it...[1] Customize your Touch Bar so that the buttons are in a consistent way, e.g. I always put the new tab button (if it exists) in the far right, where I can reach without looking, and I put the most useful actions (like getting information, trashing files in Finder, tab switching in Safari, text suggestion, etc...) in the middle, and put the less-useful but somewhat frequent actions (like toggling the sidebar, emojis, etc..) in the left. If you consciously try using them for a week or two, you realize you're much productive using the Touch Bar than using obscure shortcuts or moving the mouse.
[0]: BTW, good news for people who were complaining - macOS Big Sur greatly increases the amount of controls reachable with the keyboard, although I dislike the fact that I have to bang more tabs to reach some button.
[1]: There's definitely Apple's fault here too, if you're using a Touch Bar equipped Mac, 'brew cask install haptickey' so that you get haptic feedback on your Touch Bar touches.