Skip Navigation

User banner
Posts
17
Comments
214
Joined
2 yr. ago

  • For it to always work, you should put it in /bin. Every other solution may fail in some corner case.

    Don't do this though.

    The correct way to install a command is to package it for your distro, and put it in a place that's suitable for its usage.

  • I've made something that's both fun and challenging: https://cyb.farm

    It's a tech adventure featuring many challenges about computer science stuff (crypto, stegano, protocols, development, ...). It starts on the 31st of October, and will probably can keep you busy for a few weeks ^^

  •  
        
    $ man up
    man: No entry for up in the manual.
    
      

    Another idea ?

  • Is auto-promotion forbidden ? Also, this game is very unix-y, which is IMO on topic

  • Why so ? It ticks all the boxes from the Rules section ;)

  •  
        
    % pm -i | wc -l
    55
    
      

    That's how many software I packaged myself. They are installed to /usr/local using an alternative package manager because I couldn't be bothered with making an appropriate .deb.

    And as to explain how this alternate workflow is less complex, here's how I go about installing a program:

     
        
    % git clone git://git.z3bra.org/human ~/code/human
    Cloning into '/home/z3bra/code/human'...
    remote: Enumerating objects: 53, done.
    remote: Counting objects: 100% (53/53), done.
    remote: Compressing objects: 100% (53/53), done.
    remote: Total 53 (delta 28), reused 0 (delta 0), pack-reused 0
    Receiving objects: 100% (53/53), 9.35 KiB | 195.00 KiB/s, done.
    Resolving deltas: 100% (28/28), done.
    % cd $_
    % pack
    CC human.c
    LD human
    install -D -m 0755 human /tmp/tmp.rfnbLyIQOz/usr/local/bin/human
    install -D -m 0644 human.1 /tmp/tmp.rfnbLyIQOz/usr/local/man/man1/human.1
    
            > /tmp/human@0.3.tbz
    
    installed human (0.3)
    % pm -i human
    usr/
    usr/local/
    usr/local/bin/
    usr/local/bin/human
    usr/local/man/
    usr/local/man/man1/
    usr/local/man/man1/human.1
    
    
      
  • Talking for myself and not OP: What's complex about apt and yum is the package format per se. The cli is very straightforward and "just works", but whenever you want something that's not packaged and need to package it yourself, you gotta fasten your seatbelt and prepare for the complex task of creating an RPM or a DEB package.

    I know there are tools to help with that, but I've created packages for many distros (Debian, CentOS, Alpine, Arch, Void and Crux), and rpm/deb are just way more complex to create than the alternatives.

  • But I have more vertical space too ;)

  • I'm on the boring side...

     
        
    PS1="% "
    
      

    I like it though, it gives me more room for commands !

  • Crux is also "source first", as you must compile every package from source. However, Gentoo focuses on "use flags" to build the packages, which let's you fine tune every single feature. Crux ports don't have that, so you technically end up with the same software for everyone, except that they're optimized for your architecture.

    Its main advantage is the simplicity of the system as a whole, as well as the build system, which leads to Pkgfile that are very straightforward to write.

  • I've been a crux user for over 10 years now. I switched to it from Archlinux because it uses a port tree system for packages (think of it as the AUR but for everything) and because the package "recipes" are very simple and easy to write.

    At the time I was packaging a lot of stuff on Arch and the PKGBUILD format felt too bulky, complex and constraining for my needs. I switch to crux and found one of the simplest distro out there, and sticked to it. It's also the Linux distro that feels the most like OpenBSD, which is neat as well.

    Also the mascot.

  • I use glazier, a WM I wrote myself. But given your description, it won't fit you at all ^^ It's very bare bones, and requires that you script everything not mouse driven using wmutils.

  • C, definitely.

    As a hobbyist programmer, I can write code just the way I want, in my own style and without any legacy code. In that context I find writing C relaxing, as I like to understand how things work internally and avoid abstractions levels as much as I can. ASM requires too much discipline though 😅

  • Or just everything Fullscreen and alt+tab through the windows. No need for workspaces if you only put one window per workspace.

  • I'm a huge fan of cwm, but I must say you're not advocating for it in this shot ^^

  • It's a tmux wrapper IIRC.

  • For the past year, I've been working on an online scavenger hunt. It features many tech related challenges on various topics (web, protocols, crypto, stegano, ...).

    This is the project as a whole, but I had to work on many sub-project to bring it to life, out of which:

    • a Pokemon game (assembly)
    • an online scoreboard (go)
    • an encryption tool (go)
    • a crypto hashing tool (go)
    • a cli interface (C)
    • many deployment shell scripts
    • ... much more

    What I love about this project is that it touches many different topics. I had to setup reverse proxies, complex firewall rules, VPNs, abuse the TCP/IP stack, ... I could also work on very useless but fun topics, like creating a tool that answers to ICMPv6 traceroute packets to insert fake hops between the requester and the destination. I'm now close to releasing it, and I wonder what I'll do when this is over...

  • SOCKS is just a generic proxy protocol. It lets you tunnel TCP traffic between two hosts transparently. SSH can be use to setup this kind of tunnel using -D.

  • My account has not seen a single commit in years now, and yet I can let it go... I still "need" it for support on an old project of mine that I share with other people, and to submit changes for projects I care about which are only on GitHub.

    I also keep my account for name squatting purposes, and so people can find the link to my actual repo.

    I don't think I'll go all the way to delete my account, but my projects are definitely not reliant on it anymore.

  • I started using Linux because I was curious. I installed the "Ubuntu distribution" (a Linux "flavor" with preinstalled software to make your life easier), and started goofing around: first navigating the web using the web browser, which isn't a much difference experience than windows, then did my programming courses in there for university, installed a few games, and broke the system many, many times because I had no idea how to install stuff ! (Protip: it uses a "store-like" approach, like on Android, rather than running .exe installers ;))

    The best way to learn it, is to try it ! I'd suggest Ubuntu, because it worked for me 15 years ago, and it's the simplest approach you have to discover it, as the system will be ready to do the most basic tasks (browse the web, edit document, watch videos, etc...). You won't have to struggle with searching and installing software, and can just discover it.

    Now about your question, it's not about how Linux is "better" than windows. It isn't, and doesn't try to be. The most important trait is that it's "different", and you gotta find what it means for you.

    I won't lie, using Linux as a daily driver is harder than using windows (much less than it was 15 years ago!), because of hardware/software compatibility, user support, etc... But it is also so much refreshing! You get to change every tiny bit of your system, you can swap components easily, eg replace the default web browser, change the windowing system for another "desktop environment", and take back control of your privacy while doing computer stuff.

    So here's my best advice to you: Try it out! Break stuff, restart from scratch, and keep learning that way. This was the most fun I had regarding computers for my whole life, and now I simply cannot switch back :)