HNHacker News
TopNewBestAskShowJobs

25thhour

10 karma · joined March 30, 2010

@25thhour
submissionscomments
25thhour··on Just: Just a Command Runner
I'm also using a global justfile (`-g`) [1] to serve as a convenient location to aggregate any convenience functions, as well as call out to any standalone scripts as necessary.

You can also 'convert' all recipes to aliases so you get the best of both worlds, the ability to call with `just -g foo` or `foo`, from anywhere.

The docs example [2] uses a `user` justfile, but the principal is the same for global.

  for recipe in `just --justfile ~/.user.justfile --summary`; do
    alias $recipe="just --justfile ~/.user.justfile --working-directory . $recipe"
  done
Most recently I've started using `fzf` and `bat` to allow interactive selection of recipes with syntax highlighted previews:

  _choose:
    @just -g --summary | \
        tr ' ' '\n' | \
        sort -r | \
        fzf --multi --preview 'just -g --show {} | bat --color=always -l just -pp' | \
        xargs just -g
Now with a global `alias ji="just -g _choose"` I can interactively choose a recipe if I need a reminder of what I've set up.

This was inspired by the native `--choose` flag which does something similar, but by using `--summary` here, all recipes, including those that take arguments *, are listed, as well as any nested modules.

And because you can use any shebang, you can also write little python scripts to run with `uv`, including those with dependencies [5] declared in the shebang:

  # list Cloudflare accounts
  accounts:
    #!/usr/bin/env -S uv run --script --with cloudflare --python 3.13
    from cloudflare import Cloudflare

    client = Cloudflare()
    accounts = client.accounts.list()
    print(accounts)
…here with inline metadata:

  # list Cloudflare accounts
  accounts:
    #!/usr/bin/env -S uv run --script
    # /// script
    # requires-python = ">=3.13"
    # dependencies = [
    #     "cloudflare",
    # ]
    # ///
    from cloudflare import Cloudflare

    client = Cloudflare()
    accounts = client.accounts.list()
    print(accounts)
[1] https://just.systems/man/en/global-and-user-justfiles.html [2] https://just.systems/man/en/global-and-user-justfiles.html#r... [3] https://just.systems/man/en/selecting-recipes-to-run-with-an... [4] https://github.com/charmbracelet/gum?tab=readme-ov-file#inpu... [5] https://docs.astral.sh/uv/guides/scripts/#running-a-script-w...

* interactively selected recipes that take arguments won't work by directly passing to `xargs` here, but in some cases where I do want that flexibility I just add a condition in the recipe to prompt for input, with `gum input` [4]. Flexibility. This is a belt and braces approach and only used where necessary as the `fzf` preview will have made it clear that a recipe takes arguments.

  [positional-arguments]
  foo $bar="":
    #!/usr/bin/env bash

    if [ -z "$bar" ]; then
        bar=$(gum input --placeholder "bar")
    fi

    echo "looking up $bar"
25thhour··on AWS Service Interuptions
Multiple ELB's came alive around that timeframe but our primary ELB has remained unable to re-register instances. Creating a new ELB as a test and trying to register new instances from the effected ASG has also failed.
25thhour··on AWS Service Interuptions
Still down 5 hours later. ELB won't register instances. Ugh
25thhour··on AWS Service Interuptions
ap-southeast-2 EC2 appears to be completely offline for us
25thhour··on Responsive Text
Ugh, this strikes me as a terrible idea.

If it's not important enough to show on mobile it can probably be removed on the desktop too.

25thhour··on Remove any Site From Google (even if you don't control it)
The list of Google email addresses, including security@google.com is TWO clicks away from the google.com homepage.

Footer -> About Google -> Contact Us

25thhour··on Google Tasks API Released
+1 I use NV like a boss every day. Syncing with Dropbox/Simplenote is by far the best note taking workflow I've ever used. Zero barrier to fast fluid input.

Which is probably why I love TaskPaper for GTD. Plain text but with smart data-detection.

25thhour··on Google Page Speed Online
Umm the Chrome extension states it can access: "All data on your computer and the websites you visit".

Say what?

25thhour··on Autofocus System - Get Everything Done
Seems like you could almost use TeuxDeux http://teuxdeux.com/ with this system.

1. To start add everything to the 'Today' column

2. Look through, action what catches your eye, dismiss any items to the 'someday' list

3. Completed items just get crossed off, if it's a recurring task, cross off and re-add to the next days column or for speed just drag it across

4. Incomplete tasks auto rollover at the end of the day

Granted it's not perfect for this system but it might work. 

25thhour··on Vimcasts
Great pacing and clearly communicated. Has helped me no end to get up to speed with Vim in my new job.