I Love Coding on Linux
opensource.com
opensource.com
- the point of "automation" applies to all Unix-like systems. You probably could do the same with Powershell and pdftk for Windows.
- Code connections: I don't even know what this is about.
- Existing code: same same, but I guess there's indeed more open source / free software for Linux/Unix systems than Windows.
- Direct access to peripherals: You might have access to /dev/video0 but that doesn't relieve you from the intricacies in working with that device. Take a look at https://www.kernel.org/doc/html/v4.9/media/uapi/v4l/capture.... to see if that's such a nice API. Also take a look at this to see if the API on macOS is so much worse: https://developer.apple.com/documentation/avfoundation/camer...
- Abstraction layers: the "conveniences" in Qt and Java obviously are not very Linux-specific. "Whole stacks" like Pipewire are work in progress while the multiverse of Jack, Pulseaudio and Alsa makes every programmer wonder what's the proper framework to use.
EDIT: I think Linux is a great platform for programming internet services in a modern Unix (containers, userspace networking, epoll, sendfile, AIO, async_tx, ...) way but that's not in the article.
I also recently got a bluetooth adapter and found out I simply cannot turn on bluetooth. When I was younger, I had more patience to hack around with things until they work exactly as I like, but I'm surprised that I'm still encountering issues like these in 2021 on a desktop-focused OS.
I wish other OSes followed the unix philosophy more. I wish I could separate the windowing manager from the desktop in OS X, and have more extensive customization options over everything. It'd be nice if Windows had as nice of a filesystem organization story as any linux distro.
My experience is definitely contrary to my conception of, and the reputation of these distros.
Also, Ubuntu (with GNOME), Kubuntu, and Xubuntu (but not Lubuntu...) recently switched to some new crypto greeter (the thing you put your password into to unlock your encrypted drive at boot) which glitches out very badly. On every other boot, it flickers between its graphical facade and the underlying CLI prompt, and single keypresses are interpreted as multiple ones. Lubuntu, however, uses the same crypto greeter as Manjaro seems to, which still works.
Also, a funny thing: my keyboard (a Code V3)'s Num/Caps Lock LED keys don't illuminate at all in any of the *buntus, though they do in Debian, Manjaro, and Arch (on both newer and older kernels than Ubuntu 20.04 currently uses).
It's pretty disappointing.
On the other hand, after around 2 years of using Manjaro without problems, kernel 5.10 got me recently. :D It has big problems. Same problems in Arch. But, unlike in Arch, a kernel rollback in Manjaro is an in-OS GUI and/or a GRUB selection away. Manjaro's been the sweet spot for me, and it looks like it'll continue to be.
On the other hand², some software I recently had to build explicitly refuses to run on any unsupported *nix systems, and it doesn't support Arch or Arch-flavored distros. :c (Hence my recent adventures in Ubuntu.)
So there's definite downsides to straying off of the Ubuntu-flavored Linux reservation, but Ubuntu's always been surprisingly buggy for me compared to Arch and Manjaro.
Last year I was running a 4.x kernel but I began having an issue with some piece of software (I forget) that, when I researched it found everybody recommending a switch to a 5.x kernel which fixed it immediately for me.
Switching kernels indeed is extremely easy!
Just watch out for 5.10. Happily, 5.11 seems okay, but it's still experimental.
Sticking to the LTS is a great idea, though part of me wants to go "Well then why not just run Ubuntu?! ;w;", despite having some answers. (Funnily, Ubuntu 20.04 LTS actually updates from 5.4 to 5.8. Apparently, the Ubuntu LTS doesn't stick to the LTS kernel now! Unless it never really did.)
EDIT: it turns out that the falling back to the underlying CLI is the greeter's response to arrow key input (e.g., the up arrow key is "^[[A", which is multiple characters[0]). XD And, with Num Lock turned off, the numpad keys work as arrow keys.
Yes, this has been bugging me too. At work, I recently upgraded to a Dell Precision running Ubuntu 20.04 and this has been happening quite frequently (a bit less since a firmware upgrade). Strangely this was never an issue on my previous Dell Latitude running the same.
I've got two thinkpads that I've never had any real problems with. One is a 2-in-1 and the tablet mode is amazing with xournalpp (I've never owned an iPad so I can't compare).
Bluetooth is always a little testy though. Lately, it's been getting a lot better, but if bt is a make-or-break feature, you might wanna try wsl or a VM.
Also, remember to 'sudo apt upgrade'. It fixes a lot of random problems.
...are you serious? There's a lot of words to describe the Linux filesystem organization and 'nice' is definitely not one of them. Windows file hierarchy has some problems to be sure, but at least it doesn't scatter every application's files all over the hierarchy and require a specialized tool and database to track which ones belong to which applications.
You might have been better to point out the existence of GoboLinux, but that is but one not very popular distro among many.
Help me with what exactly? Am I in need of saving for my denial of The One True UNIX Way?
> If you won't use GoboLinux or ask packagers to make AppImages for the apps you want then I don't know what to say, those are solutions to your problem.
There are lots of reasons I don't use GoboLinux, not the least of which is that I don't think compiling applications from source is a reasonable application distribution method in 2021. As for asking application developers to make AppImages: why do you assume that I don't?
Regardless, the point is that the "Linux filesystem organization story" referred to by the parent is neither GoboLinux nor a bunch of AppImages and you are being disingenuous to pretend otherwise. It's a tired old Linux Desktop evangelism tactic roughly equivalent to "well, Linux is just a kernel...", which is to say that the argument is that what Linux Desktop (and by extension its filesystem organization) is is so ill defined that it can be whatever you want it to be -- provided you write most of it yourself, from the kernel up, like Android.
However there is a clear "way things are done" for the vast, vast majority of Linux distros and that is obviously what's being talked about here.
To put this another way: We can sit here making the same complaints about Ubuntu and RHEL that have been made for decades, but what's the point? Let's do something about it. And if that doing something means we turn the whole system into AppImages, then... what else would you really want? It sounds like your problem would then be solved.
Why are you doing that? I clearly neither asked for, nor want your suggestions! That's why you come off as an evangelist.
Edit: If you weren't asking for help with this that's fine, however some other interested reader may want to hear the suggestions. Feel free to ignore me.
https://news.ycombinator.com/newsguidelines.html
Please respond to the strongest plausible interpretation of what someone says, not a weaker one that's easier to criticize. Assume good faith.
I have no idea how you got the idea that cycloptic was being disingenuous, evangelising or trying to save you "for my denial of The One True UNIX Way".
> I clearly neither asked for, nor want your suggestions! (from below)
On HN most people like to chip in what they think might be suggestions. Either say thanks, but no thanks, or just say nothing instead of being rather rude.
I have no other way to explain the sequence of events that occurred. I expressed doubt that anyone could think the Linux file hierarchy organization was "nice", they responded that it isn't "required" and that AppImage exists. What are they trying to convince me of? What "help" did my post suggest that I needed?
I'm sorry, I'm trying to be reasonable here, but no one has yet explained to me how else I could possibly have interpreted that post.
Based on "application's files all over the hierarchy" it seems you talk about configuration files (data files can be spread all over, in any operating system; binaries in Linux reside in a few directories (/opt and /usr)).
If you refer to gconf/dconf, AFAIK they require a specialized tool but they're not scattered (you interact through the tool, after all, so they're centralized).
Possibly you refer to the Freedesktop configuration files. Those are definitely scattered, and some concepts are very obscure (the defaults system is indeed terrible, as it's scattered, and it has different concepts of default). However, they don't require specialized tools - in my experience, they're always text files.
[0] https://packages.ubuntu.com/groovy/amd64/keepassxc/filelist
Configuration files are a whole 'nother garbage fire mess, but that's true in Windows too so whatever.
if you talk about configuration files, well behaved packages will differentiate removal and purge; the latter will remove configurations and data.
> [0] https://packages.ubuntu.com/groovy/amd64/keepassxc/filelist
what's wrong specifically with that? based on the list of files, the package is well-behaved, as it's placing the files in the expected locations (I personally didn't know about /usr/share/metainfo, but seems correct). also, it's not clear why the quotes in "shared" libraries; .so is a shared library extension, and it's proper design to make it available.
apt takes care of those files, so there's no problem. how it handles the data files should be described in the scripts, but this is up to the package maintainer.
Windows, for comparison, is hell, since applications install files pretty much where they want, and that's why Windows, in the long term, gets more polluted than Linux (worst offender - leftover DLL, which impact the system).
OS X could be the good reference for your isolation standards, but keep in mind that that level of isolation prevents reuse, and indeed, the open source package management reference is Brew, which has its own rules.
> Windows, for comparison, is hell, since applications install files pretty much where they want, and that's why Windows, in the long term, gets more polluted than Linux (worst offender - leftover DLL, which impact the system).
Applications rarely install files (other than configuration files) outside of their own 'Program Files' directory. What you are saying was true until about XP, IIRC, but generally isn't today.
In my opinion RiscOS, NeXT, the original MacOS and current MacOS have the right idea with their single-object applications. It prevents reuse, yes, but the majority of "shared" libraries are used by exactly one application anyway, and the continued interest in container technology are evidence of all the problems caused by trying to share everything anyway.
and .local/bin and $HOME/bin and $that_path_where_python_and_ruby_put_stuff and let's not forget that one executable which is in /usr/lib/name_of_the_app for some reason...
If you take Windows, you're going to have %USERPROFILE%.pyenv for example, when it comes to Python (pyenv).
It's unlikely, but not impossible, that a binary ends under /usr/lib, since it wouldn't be in $PATH. If it's there, it's likely invoked via a script somewhere, and this is not good practice, and again, not inherently Linux.
$HOME/.local/bin is not good practice, for the same reason (not being in the standard $PATH).
$HOME/bin seems actually a good place for placing user-specific binaries, since there must be one place for them, and I think it's a proper place.
Generally, Windows has better GUI-based tools. The big one being debuggers, I really miss debugging in Visual Studio (C++). But more generally, Windows tends to have a better selection of IDEs, database editors, version control GUIs, etc...
I love command lines and text editors, maybe that's the reason why I prefer Linux, but sometimes, GUIs are useful.
I don't know how the experience on OSX is. It never struck me as a particularly developer friendly platform but I may be wrong. It has a proper Unix shell, so it shouldn't be that bad.
I dislike windows with a passion (having had to code on it for ~5 years was torture), but I'm with you: debugging with Visual Studio was the best I've ever had (and I've coded on OSX, Windows, Linux, and other stranger things).
No mainstream debugger today is good with visualization of data structures (still you see 0xf... everywhere) and much less if have more than 10 entries.
With Fox I was able to debug the whole database visually!
Fox is not like a half-crippled* rdbms of late. The "database" is the whole program! (forms, menus, the database itself, etc)
* in the sense that RDBMS are relegated to data storage, when in the case of fox was open to make full apps
When I'm stuck on windows I use https://docs.microsoft.com/en-us/sysinternals/downloads/ctrl...
Of course adding setxkbmap -option ctrl:nocaps to ~/.xinitrc seems way easier to me. But I'm probably in the minority.
It's also on GitHub: https://github.com/randyrants/sharpkeys
Was screensharing with a react native hotshot yesterday, and felt my perceived age doubled to 102 as I suddenly was yelling in all caps, with no quick exit.
Then one day the computer would no longer boot. I had to manually tinker to revert to older version and it booted again, but now 50% time microphone didn't work.
Then one day I installed mysql, and had to do some crazy brute force experimentation to be able to run a local copy of our db.
I accept it's possible the hardware vendor messed up the setup, and someone with greater skills than me could have worked around these issues more productively whilst benefitting from greater flexibility and customisation in other areas.
I will stick to MacBooks from now onwards. I don't have the time to deal with all this hassle.
Never going back.
I just don’t get these issues with macOS. But sadly the specification of machine I’m running Linux on costs 1/3rd of what I’d pay for a similar Mac Pro, so for now I’ll have to live with it.
I'm a lazy ass, I don't like fiddling with my tools to keep them working and Manjaro (and I'm assuming other Arch based distros) is the way to go IMO. Also XFCE beats Gnome hands down in stability and efficiency. Every Ubuntu desktop I've tried to maintain has eaten itself somehow. I've been using Linux for almost 20 years too!
I also run multiple Mac and Windows systems and they are both way more work to keep running with my preferred configuration than Manjaro, especially around the time of major updates. I'll never go back to them for my main workstation and instead just use them for Windows/Mac specific stuff when necessary - and video games.
There is only one problem I've never found a solution for on my Linux desktops: How to retain HDMI audio output as the default output after the display wakes up. I can probably script something to fix this after wake up, but I'm too lazy to look into it and luckily I don't do a lot of work with multimedia. All my entertainment stations are running Windows except for one.
Better yet, it could be phrased as “I like using the command shell and it's many utilities.”, for even non-Unixlike environments have such shells and utilities, from what I head.
I just switched back to macOS, downgrading to an old dual core 2015 mbp which runs overall better than my T480 with 32GB of RAM.
Don’t get me wrong, I wanted to love it, and I believe in the project, but I’ll check back when there’s a DE that can actually scale its GUI properly and when Bluetooth and Spotify don't make my T480 quadcore processor lag.
I believe that there are people who have their Linux boxes configured just right with carefully crafted dotfiles and custom tiling DEs and whatnot, but it's usually people who do coding or writing or some other single thing.
You don't hear often about people who would use their 12-month-uptime-no-crashes-whatsoever machines for coding for a living, a bit of gaming on the side, some hobby-level photography stuff, maybe a bit of music production, and all of that without a single issue.
But I must admit there's quite a hill to climb before you're sufficiently steeped in this environment to feel like it's a welcoming home.
And it's not perfect, but nothing is. Just the other day I wanted to burn someone at the stake after wasting an hour rediscovering Debian broke /etc/vim/vimrc.local overrides of defaults.vim for users lacking a ~/.vimrc, while simultaneously making defaults.vim enable the absolute worst mouse settings anyone using vim for decades could ever be forced to use in an xterm.
But that's also an indication of how exceptional it has become for my GNU/Linux boxes to not behave precisely as I want and expect at all times. One little thing like that and it feels like the world has been turned upside down.
When you develop on and for a Libre OS like this long enough, it becomes part yours. I live in my own window manager, hacking mostly on my own projects, in an operating system running system code I've contributed to both professionally and personally. Whether that's a good or a bad thing, I'm really not sure. But it certainly facilitates a unique and strong relationship with the machine.
I do so because of the Linux ecosystem, not the operating system. For instance, the package managers are way better than anything that macOS and Windows currently offer, and Docker is nice for local development.
I really don’t care about the operating system itself. I just need a nice UNIX-like experience, and Linux seems to offer the best one.
I miss gnome but not much else, and definitely not tweaking everything from the console by using obscure commands found on google
I love the macos "just works" mantra and while i'm still getting adjusted to it and there are definitely some quirks I don't like, I think I'm being more productive on mac for just not needing to mess with random things breaking when ubuntu gets updated
- gamedev
- gaming
- audio
- video editing
anything multimedia, linux (for me) only good for terminal based tasks, everything else lags behind competition, even macOS is better suited nowadays