Skip Navigation
Recommended way to run my scripts from a venv?
  • Thanks, yes, I use nox and github actions for automated environments and testing in my own projects, and tox instead of nox when it's someone else's project. But for ad hoc, local and interactive multiple environments, I don't.

  • Python's UV tool is even better
  • If it didn’t bring something more to the table, besides speed, no one would care

    I'm literally saying its speed in certain operations makes an appreciable difference in my workflows, especially when operating on tens of venvs at a time. I don't know why you want to fight me on my own experience.

    I'm not telling anyone who doesn't want to use uv to do so. Someone asked about motivation, and I shared mine.

  • Recommended way to run my scripts from a venv?
  • The convention

    That's one convention. I don't like it, I prefer to keep my venvs elsewhere. One reason is that it makes it simpler to maintain multiple venvs for a single project, using a different Python version for each, if I ever want to. It shouldn't matter to anyone else, as it's my environment, not some aspect of the shared repo. If I ever needed it there for some reason, I could always ln -s $VIRTUAL_ENV .venv.

    Learn pyenv

    I have used pyenv. It's fine. These days I use mise instead, which I prefer. But neither of them dictate how I create and store venvs.

    Shell scripts within Python packages is depreciated

    I don't understand if what you're referencing relates to my comment.

  • Python's UV tool is even better
  • I have a pip-tools wrapper thing that now optionally uses uv instead. Aside from doing the pip-tools things faster, the main advantage I've found, and what really motivated me to support and recommend uv with it, is that uv creates new venvs MUCH faster than python's venv module, which is really annoyingly slow for that operation.

  • Recommended way to run my scripts from a venv?
  • I use my own Zsh project (zpy) to manage venvs stored like ~/.local/share/venvs/HASH-OF-PROJECT-PATH/venv, so use zpy's vpy function to launch a script with its associated Python executable ad-hoc, or add a full path shebang to the script with zpy's vpyshebang function.

    vpy and vpyshebang in the docs

    If anyone else is a Zsh fan and has any questions, I'm more than happy to answer or demo.

  • As you learn Forth, it learns from you (1981)

    I'm posting this mostly for the new hacker news discussion: https://news.ycombinator.com/item?id=40736174

    0
    F: Functional False

    > F is a pure functional concatenative language originally designed as an extension of False. F contains the list-operations of K3 and the dip combinator of Joy. Floating-point and symbolic datatypes are supported. One-time assignment is enforced in syntax. A theory of function-valence and -charge is outlined. F also contains a general continuation primitive $, and the pattern sublanguage of XY. G is a variant of F in which the K3 adverbs are implemented as primitives.

    Discussion on lobsters: https://lobste.rs/s/m9xv5y/f_functional_false

    0
    ZLE tutorial #2 - File Descriptors, Networking, and More | Video
  • From the author, on reddit:

    Made a little mistake in there: you can create FDs with higher numbers using eg. exec {fd}<>pipe and they'll generate numbers above 10, plus the variables'll be better for scripting.

  • ZLE tutorial #2 - File Descriptors, Networking, and More | Video

    This is not my own content!

    1
    Zsh Line Editor (ZLE) Tutorial | Video

    This is not my own content!

    0
    GitHub - xavierog/moulti: Moulti is a CLI-driven Terminal User Interface (TUI) displaying arbitrary outputs inside visual, collapsible blocks called steps.
  • CLI flow: run command, print output below

    TUI flow: navigate and interact with a layout that updates in place

  • Forsp: A Forth+Lisp Hybrid Lambda Calculus Language
    • Discussion on lobsters: https://lobste.rs/s/l8o4j8/forsp_forth_lisp_hybrid_lambda_calculus
    • Repo: https://github.com/xorvoid/forsp/
    0
    How happy are you with your current distro?
  • If you haven't checked them out you might be interested in aconfmgr or pacdef.

  • Show off your solutions to Exercism's 48in24, but in your favorite stacky lang!
  • Space Age
    USING: assocs calendar math math.extras ;
    
    CONSTANT: year-factors H{
      { "Mercury"   0.2408467  }
      { "Venus"     0.61519726 }
      { "Earth"     1.0        }
      { "Mars"      1.8808158  }
      { "Jupiter"  11.862615   }
      { "Saturn"   29.447498   }
      { "Uranus"   84.016846   }
      { "Neptune" 164.79132    }
    }
    
    : space-age ( seconds planet -- earth-years )
      year-factors at
      years duration>seconds
      /
      2 round-to-decimal ;
    
  • VLC Player
  • mpv+uosc is my jam these days.

  • 0.1 + 0.2 | Roc
  • Even more:

    If a function takes a number—whether it's an integer, a floating-point base-2 number, or a Dec—you can always write 5 as the number you're passing in. (If it's an integer, you'll get a compiler error if you try to write 5.5, but 5.5 will be accepted for either floats or decimal numbers.)

    Because of this, it's actually very rare in practice that you'll write 0.1 + 0.2 in a .roc file and have it use the default numeric type of Dec. Almost always, the type in question will end up being determined by type inference—based on how you ended up using the result of that operation.

    For example, if you have a function that says it takes a Dec, and you pass in (0.1 + 0.2), the compiler will do Dec addition and that function will end up receiving 0.3 as its argument. However, if you have a function that says it takes F64 (a 64-bit base-2 floating-point number), and you write (0.1 + 0.2) as its argument, the compiler will infer that those two numbers should be added as floats, and you'll end up passing in the not-quite-0.3 number we've been talking about all along.

  • 0.1 + 0.2 | Roc
  • More quoted from the post:

    Roc's Dec implementation (largely the work of Brendan Hansknecht—thanks, Brendan!) is essentially represented in memory as a 128-bit integer, except one that gets rendered with a decimal point in a hardcoded position. This means addition and subtraction use the same instructions as normal integer addition and subtraction. Those run so fast, they can actually outperform addition and subtraction of 64-bit base-2 floats!

    Multiplication and division are a different story. Those require splitting up the 128 bits into two different 64-bit integers, doing operations on them, and then reconstructing the 128-bit representation. (You can look at the implementation to see exactly how it works.) The end result is that multiplication is usually several times slower than 64-bit float multiplication, and performance is even worse than that for division.

    Some operations, such as sine, cosine, tangent, and square root, have not yet been implemented for Dec. (If implementing any of those operations for a fixed-point base-10 representation sounds like a fun project, please get in touch! People on Roc chat always happy to help new contributors get involved.)

  • 0.1 + 0.2 | Roc

    Discussion on lobsters: https://lobste.rs/s/oxjvv0/0_1_0_2

    > It's not that Roc only supports base-10 arithmetic. It also supports the typical base-2 floating-point numbers, because in many situations the performance benefits are absolutely worth the cost of precision loss. What sets Roc apart is its choice of default; when you write decimal literals like 0.1 or 0.2 in Roc, by default they're represented by a 128-bit fixed-point base-10 number that never loses precision, making it reasonable to use for calculations involving money.

    > In Roc, floats are opt-in rather than opt-out.

    3
    [SOLVED] How do I add autocompletion for my `stfu` command?
  • No, that's not used by Zsh.

  • [SOLVED] How do I add autocompletion for my `stfu` command?
  • Glad you have it working. This may also work:

    _stfu () {
      shift words
      (( CURRENT-=1 ))
      _normal -P
    }
    compdef _stfu stfu
    
  • Go's concurrency in a dynamic language Rye
    ryelang.org Go's concurrency in a dynamic language Rye

    The Rye programming language is a dynamic scripting language based on REBOL’s ideas, taking inspiration from the Factor language and Unix shell. Rye is written in Go and inherits Go’s concurrency capabilities, including goroutines and channels. Recently, Rye gained support for Go’s select and waitgr...

    lobsters discussion: https://lobste.rs/s/mnuhwc/go_s_concurrency_dynamic_language_rye

    0
    Manjaro 24.0 Wynsdey released
  • FWIW I've read an Arch dev complain that folks using any 3rd party installer are not in fact "running Arch" and should not claim to be doing so.

  • Telegram Reportedly "Ready to Fight Piracy" According to Govt. Official * TorrentFreak
  • Huh? Is this relevant, or some kind of bot spam?

  • Removed
    Release v0.52.5 · navidrome/navidrome · GitHub
  • For anyone else wondering:

    Navidrome is an open source web-based music collection server and streamer. It gives you freedom to listen to your music collection from any browser or mobile device. It's like your personal Spotify!

  • Telegram Reportedly "Ready to Fight Piracy" According to Govt. Official * TorrentFreak
  • So far, this isn't much of anything.

    Telegram already closes public channels reported for copyright violations.

    Some excerpts from this post:

    Compared to other platforms, we do not see the seriousness of Telegram to cooperate.

    . . .

    In May 2023, progress appeared to be going in the wrong direction. Telegram was reportedly refusing to cooperate with the Ministry of Communications and Digital on the basis it did not wish to participate in any form of politically-related censorship.

    . . .

    With no obviously public comment from Telegram on the matter, it’s hard to say how the social platform views its end of what appears to be an informal agreement.

    Telegram will be acutely aware, however, that whatever it gives, others will demand too. That may ultimately limit Telegram’s response, whatever it may be, whenever it arrives – if it even arrives at all.

  • Forth Bitcoin miner for PC and Game Boy
  • Wow, the first submission here with a negative score. I'm guessing it's because it mentions bitcoin.

    Well, I'll say that bitcoin is not the point here, but rather that the author is enthusiastically embracing forth, with its "directness," simplicity, and portability. You can find more in the lobsters comments.

    The author plans to port their small Zig subtitle-displaying project to forth, and hopes to use forth for all their systems programming needs in the future.

  • Andy Andy @programming.dev
    Posts 85
    Comments 315
    Moderates