1,652 karma · joined August 22, 2014
I know this because I started a project using only strings and `os.path`, however when testing it started to become complicate to mock the correct paths so in tests I use `pathlib` (with conversions back to string when I finish path manipulation) and the code still works.
There is pathlib nowadays that allows you to navigate in very complex situations using a quite nice OOP API.
Complexity is all at our common libraries. So most programmers don't even need to understand our abstractions, they just work. Of course, sometimes our abstractions are not enough so you need to get your hands dirty. However I would say it works well 99% of the time.
However sure, having the piece of mind that this will not happen may still make it more worth it do it yourself.
I am up-to-date to iOS 13, however since iOS 13 was basically my worst recent experience with an OS update (tons of things broken and took a while to fix it) you will have to excuse me that I don't remember they asking my privacy settings.
> But there are legitimate business needs for something like this to exist
I didn't say it shouldn't, because I understand. However if Apple is really privacy, they should put this option in wizard with default off, and say something like "if you want personalized ads turn this on". The fact that they turns this on by default and don't show in wizard is my point.
However I don't think the Python ecosystem is immature, for me it is the contrary. This project started with Python since I didn't find a good way to reduce the Clojure startup time, and believe me I tried everything I found (from GraalVM to ClojureScript). And there is gaps everywhere in Clojure ecosystem when you want to create command line tools, while Python has literally everything I needed.
However sure, I didn't explain correctly and I don't remember the last time I setup my iPad (this is the only Apple device I have so this will what I will be using for comparison).
2) It still shouldn't exist, or at least they should ask in Wizard because this option I am sure they did not ask because I had to search on how to disable it (and the way to disable it isn't obvious either).
I concur, defaults matter. I am not saying that Ubuntu is a distro for privacy conscious people, however by default macOS and Ubuntu should have similar levels of tracking (however I do believe that Apple OS phone home much more than Ubuntu, AFAIK the actual tracking/telemetry of Ubuntu is minimal while macOS has the standard for a proprietary OS [1]). That is, much better than Android or Windows, however worse than a distro like Debian, for example.
> In the face of these two assertions; Open Source is important in the fight for Privacy, there's no doubt about that. But even more important than that is Trust.
Sorry, there is no way to trust closed source software. I really think it is strange people claiming that Apple are respecting their privacy and when Apple does things that are controversial to privacy (like the time they're got tracking GPS in iOS devices) they just say "hey, Apple does respect my privacy so it is fine".
For another example, Apple must receive everything you type in Spotlight so they can show search suggestions, exactly the same as the Ubuntu case, however in Apple case it is fine for some reason. Go figure.
I think you're right that you shouldn't trust Canonical, however you shouldn't trust Apple either just because they say in public that they love privacy and because of some of the things they divulge to public, because in the end this is all propaganda: while it is really nice that they have things like encryption by default (BTW, encryption does not increase privacy because if Apple wants they could still read every file in your system), you can't trust Apple that they don't do other nefarious things.
Just to conclude, I think Apple is more trustful than say, Google or Microsoft. However I wouldn't put macOS as a more privacy OS than even Ubuntu (since like I said, the amount of telemetry in Ubuntu should be minimal compared to macOS, and we can never know because it is closed source), and Debian and other Linux distros is really above anything macOS can offer in terms of privacy [2].
[1]: I don't know macOS, however I have an iPadOS and by default it enables by all kinds of analytics, and also generates a unique track ID for ads (you can disable both, however this is the default and at least the option to disable track ID for ads is not shown in the Welcome Wizard, maybe the analytics is shown however I don't remember).
BTW, just looking at the information that Apple makes available in iPadOS about "Analytics Data" it has WAY more information than anything that was said in Ubuntu in this thread (if you want to check just go to Settings->Privacy->Analytics Data). I think macOS should have something similar, but maybe someone else can confirm to me.
[2]: Privacy, not security or other things. Security is something questionable, however I do think most recents version of macOS seems more secure than your traditional Linux distro.
Wait, what. You can completely disable any "phone-home" features of Ubuntu. Actually, you can make sure that this feature is disabled by removing the corresponding package of your system, something that isn't possible in macOS. And you can also audit the code, because all this code is actually open-source [1].
Also, this controversial feature of Amazon search could be disabled quite easily [2], and this motd can also be disabled [3].
So sorry, Ubuntu may have some controversial features, however saying that using macOS is more privacy-respecting than Ubuntu is a lie. They are at least at the same level, however considering that I can't get the source code of macOS and make sure that turning off a knob will stop spying on me, I still think Ubuntu is better than macOS in this point.
[1]: https://launchpad.net/unity-lens-shopping
[2]: https://www.howtogeek.com/126995/how-to-disable-the-amazon-s...
[3]: https://raymii.org/s/tutorials/Disable_dynamic_motd_and_motd...
I recently switched my work notebook to XFS, so looking at this table makes me kinda happy, even if I had bad experiences with XFS in the past (a forced turnoff thanks to a crash in X11 was sufficient to put my system in a unbootable state, trying to recover it with xfs_repair broke it completely; also I suffered with 0-size files randomly appearing after forced reboots quite constantly).
I know for a long time that XFS is probably one of the most well written filesystems for Linux, even if the user case seems to be more focused in servers with uninterrupted power supply than desktops and notebooks.
And my particular experience with it is very positive, even if my project that is using it is still small (it is getting bigger though, and mypy is really helping me to refactor it when I needed).
Most of the "false positives" that mypy reports to me end up being code that is overly cleverly, and rewriting it to make mypy happy also improves the code quality.
[1]: https://developers.facebook.com/videos/f8-2018/type-checked-...
[2]: https://blogs.dropbox.com/tech/2019/09/our-journey-to-type-c...
And environment... It is complicated. It is not that it is that bad, however it sure lacks some polish. The solution is not easy either since even if you solved the problem today (like using poetry), there is still the whole backwards compatibility problem.
There is various hacks to make things easier, however in the end the problem is still more complicated than it should.
I have tons of scripts that does specific things and are heavily coupled on how X11 works. I need to port them to Sway first.
For WMs, it is more uncommon since they're so coupled with X11 specifics that this makes porting harder. However I don't really think it is a problem, if you want to continue using your WM it is fine, it is not that X11 is going away either way.
The end result is, hopefully, less bugs, more security and more performance, however most people wouldn't care anyway (and I think most people doesn't care, for example Fedora uses Wayland by default).
For us using window managers like i3wm the history is different. However in i3wm I am very close to the X11 so there is almost no abstraction, this is why the transition is more painful.
When I was referring to pinning, it is mostly done locally. I do sometimes, for example, pinning a specific package to a specific commit of Nixpkgs, so I can either backport a new version or avoid some change that I don't want to deal at the moment.
This is untrue. Everytime that a package is updated, thanks to NixOS declarative build system, all packages that depend on it are also rebuild/updated. Unless you're pinning your derivations, it works even on custom packages created by you.
The quote from this article is clearly from the later case, even if I am sure that other people reported it more humbly.
I am sure that those multi million dollar enterprises affected by this issue have other softwares so reliable that this was the only time they lost millions on software issue /s.
The other thing is the way that was described by the article: "I am a sysadmin from a multi zillion enterprise, your idiotic experiment broke our setup. Disable this ASAP and never do something similar ever again".
Case in point, I worked in a project using Ruby. When we migrated from Ruby 2.4.0 to 2.4.6 (yeah, a minor upgrade), it broke spectacularly. Trying multiple Ruby versions, the change was actually introduced in Ruby 2.4.1. After some investigation, a change in Net::HTTP library from stdlib had a change that broke a dependency from a dependency. The fix was just a line of code (we just need to change the adapter used for HTTP communication), however it was two days of work for a minor upgrade.
My current job tried to migrate from Java 8 to Java 11. It also broke multiple services. This one is still in progress, months later.
Python 2 to Python 3 is bigger than both of those version changes (however it is equivalent to Ruby 1.8 to 1.9 changes), so yeah, it does take more time. And like some projects that are forever running Ruby 1.8 or Java 8 (or even worse, Java 6), we will have projects forever running Python 2 too.
So I can totally see a text editor written in Python being fast enough, probably faster than an editor written in Electron since the runtime is much smaller (Node is faster than Python, however Electron runtime includes a whole browser with it).
However, not rarely this ends in a trap: "oh, I already have this small shell script here, I will just add another feature". After sometime, you get a gigantic shell script full of lines that nobody understand anymore, since Bash lacks so many things as a programming language that you end up with multiple hacks just to support that feature you wanted.
I went with the trap above more than once, and sometimes I get myself in it again, until I decide that enough is enough and just rewrite the script in something else.
I mean, this seems to make Bash a modern programming language, however if you do need something like this a modern scripting language like Python would be better in those cases.