𝕽𝖚𝖆𝖎𝖉𝖍𝖗𝖎𝖌𝖍

       🅸 🅰🅼 🆃🅷🅴 🅻🅰🆆. 
 𝕽𝖚𝖆𝖎𝖉𝖍𝖗𝖎𝖌𝖍 𝖋𝖊𝖆𝖙𝖍𝖊𝖗𝖘𝖙𝖔𝖓𝖊𝖍𝖆𝖚𝖌𝖍 
  • 3 Posts
  • 224 Comments
Joined 2 years ago
cake
Cake day: August 26th, 2022

help-circle
  • Dude I mean in this in the most genuine, kind way

    No offense taken.

    a significant aspect of being a successful programmer is using the tools in your environment.

    If I were a professional programmer, I’d be doing this. I was a professional software engineer for 20 years before I took a management role, then managed software teams, and then organizations, for another decade before I chose to do something else. One of the things I decided was that I wasn’t going to work on, or with, technology I didn’t like anymore - as long as I had any choice, and since all my software development is voluntary pet projects, I’m able to do this. It has, in the aggregate, greatly improved my mental well-being to not have to work with crap anymore. I mostly avoided having to touch Windows in decades; I had only a brief brush with JavaScript that left only minor scarring, and with WASM there’s every hope I can even do web-based projects should I get the itch without killing brain cells with JS. Having spent years with C++ and decades programming Java, I’m convinced that I’ve learned enough about what’s horrible in software, and don’t really need to spend more time being taught about new ways developers can screw up the software engineering space. SOAP alone covered most of the bases of bad design and architecture.

    So now, I get to select where I play. I can focus on learning new things that I think are good, rather than being forced to figure out ways to work around the bad.

    My original plea was simply: if you can use defacto standards, please do.

    If you can’t do something without bringing in your Tool of Choice you’re artificially limiting yourself.

    Insofar as the technology limits me in what’s available, absolutely. Mainly, though, I choose to focus on supporting projects and products that support standards. If a project wants to be a Special Flower and use BrainFuck as it’s tooling language, good for them! But I’m going to look for alternatives.

    I would prefer, however, that projects - when they’re using software that could be more standards compliant by using a few more MB, and have the space to do so, simply be compliant and ship something less stripped down.

    In this case you’re myopically focused on not even a specific language, but the language agnostic feature of regex capture groups.

    To be precise, I’m focused on the fact that, in a toolset where usually at least one of many standard tools provides a functionality, none do. I’m not complaining that ash doesn’t support regexp string matching with groups; in complaining that BB was compiled such that none of the standard tools do.

    You should be asking yourself if there’s any other way to accomplish your goal without this (spoiler: there are probably dozens of alternatives)

    Yes. I tried 3 or 4 of the standard, usual ways to break out and parse data. My next attempt was going to resort to field cutting, hoping that that also hadn’t been stripped out.

    Eventually, I hacked a solution together in Lua, which will be useless the next time I encounter a stripped down BB that isn’t in OpenWRT, and I’ll have to waste time trying to work around broken tooling again.


  • Yup!

    On the OpenWRT issue, I ended up hacking a solution up in Lua, which won’t help the next time I encounter an issue with a limited BB in something that isn’t OpenWRT. And, in a month I won’t remember the tiny bit of Lua I learned, because this is the first and probably last time I’ll be forced to use it.

    Nothing against Lua, per se; I’d just prefer to keep working with ubiquitous standards for simple stuff, and use strongly typed compiled languages for anything nontrivial.




  • That’s not how I meant it.

    There’s a cultural value in virginity in girls. It’s pretty common across cultures: for marriage, virgin women are more desirable than non-virgins. It’s biased; the virginity only increases value for girls, and it probably stems from men wanting to be sure than any prodigy are actually theirs. Women can be nearly 100% sure a kid they have is theirs (not quite 100%, as there’s a brief period when a channeling swap could conceivably be made), but the men can never be certain. The best odds you have is to get yourself a virgin. So female virginity has been valued through history (by men), and I think this is where the fetish of having sex with virgins comes from.

    That’s what I’m taking about. I’ve never understood the appeal of “being a girl’s/boy’s first.”



  • Yeah, fuck giving examples, because people ignore the stated problem and focus on the example. You’re exactly right. It’s stackexchange all over again, and I should know better than to provide any specifics, because people can not resist solving the wrong problem.

    There’s an actual term for this behavior, but it escapes me. It’s the opposite of the X/Y problem, where people fixate on some irrelevant detail. I need to learn to ignore “can you give an example” comments, because all that leads to use someone trying to fix a specific instance of a larger, more general problem.




  • I agree, there are places where a totally stripped down BB makes sense; I’m not arguing that. I’m arguing against stripped down BB when it isn’t necessary.

    Also: Lua is 1.536MB on my system. Bash is 1.1MB. I don’t know how big ash is, because I didn’t easily find the sources for it, but even if it were half the size of bash, replacing ash with bash would make the cost of adding bash only 0.6MB - a third of including Lua. If you think you have enough space for Lua, you probably have enough space for bash instead of ash.

    And you be able to do normal scripting with proper regexp support and not forcing your users to learn another language just to hack together a small solution.

    I want to thank you for a calm, reasoned, sympathetic discussion about something that’s currently, actively irritating me and making my responses more… acidic… than they should be.


  • I have a Pixel C that none of the Linux distros support. So I’m running one of the OSS Android distros, but it’s still fucking Android.

    I’d love to find as nice a combo - great build, small size (10" screen), detachable yet integrated keyboard - that runs Linux. Sounds a lot like what you’re looking for.

    I think there are 11” Dell XPSes. I’ve owned a couple of those, and they’re pretty good, and they have great Linux support if that’s your thing.


  • I’m not (familiar with Python).

    Years ago, I wrote and maintained one of the core libraries for Ruby. That experience put me off scripting languages for any serious, persistent work for good. I use them for one-offs, and therefore, I stick to languages that are ubiquitous: bash, awk, sed. Lua isn’t everywhere. Neither is Python, or Ruby, or Perl. But bash, awk, and sed are.

    Except that, in BB, they’re often stripped down so much they’re barely functional.

    Look, somehow this has become about OpenWRT. That was just a latest example; my post was about BusyBox, and Lua isn’t part of BusyBox. I just want developers to consider their deployment environment and maybe generate and include more capable, POSIX BB instead of just choosing the smallest and most useless.



  • Yeah, I need to figure that part out. I’m getting familiar with uci at the moment, but I need to dig into what package management is available. There’s enough space to install bash -plenty if ash wasn’t there - but probably not enough to compile bash on the device.

    Anyway, my original post wasn’t about OpenWRT. I’ll get what I need to do done, one way it another. It’s just that I keep (rarely, but mor than once) encountering these ultra-pared down BusyBoxen in places where it’s not necessary to have ultra-minimalism.

    Several people have responded already as if I’m complaining about OpenWRT; one even suggested I “learn Lua, dummy,” because Lua is available in OpenWRT.

    I’m not complaining about OpenWRT. I’m asking developers to think twice about micro-BB builds in their products. Does it really need to be that small?


  • New to me.

    I don’t care if it’s easy; suggesting Lua as solution is dissembling. I complained about poor tooling that doesn’t follow defacto standards when the device it’s running on could easily handle having a more common, older, standard bash than choosing some castrated shell.

    If it were a forced choice, because of hardware limitations, of having Lua or bash, I could get it. Lua is more capable. But in this case, it’s not a choice of either/or; the device could easily handle both.

    BusyBox is, as I understand, configurable for how “complete” it is. That’s why I say it’s lazy to pick some default minimal compile when it could be more accessible, and less of a pain in the ass for users.





  • No worries on the spelling correction. I don’t know why autocorrect let that through.

    The regexp thing wouldn’t bother me if there were at least one tool that could be used. On any standard POSIX system, there would be at least one way, and on most Linux distros, there’s a half-dozen relatively simple, installed-by-default tools that can do it. Bash, if nothing else.

    But it’s like, in BB every tool excludes this ability. It’s frustrating, and of it isn’t regexp, it’s something else.


  • I preface this with a statement that I’m brand-loyal to gliNet products. Love them to bits. I love that they’re based on OpenWRT, and that you can ssh into them. But their user space tooling stinks.

    They have 500MB RAM. My home router has a current uptime of 24 days, and half the RAM is still free. It’s hard to tell how much persistent storage is on the device, but there’s at least 50MB free. They could have put something a little more capable on it. It’s what I’m currently fighting with - I want to script it so my VPN exit node auto switches at random times to random nodes - and it’s just frustrating with the onboard tooling.

    This isn’t the first time I’ve run into it; it’s not frequent, but it’s happened more than once, and I think it’s just a sloppy, lazy decision someone made.