What is Hackers' Pub?

Hackers' Pub is a place for software engineers to share their knowledge and experience with each other. It's also an ActivityPub-enabled social network, so you can follow your favorite hackers in the fediverse and get their latest posts in your feed.

1
0
1
0
1
0

I've been working on a tricky problem in Optique (my CLI parser library): how do you make one option's value affect another option's validation and shell completion?

Think git -C <path> branch --delete <TAB>—the branch completions should come from the repo at <path>, not the current directory.

I think I've found a solution that fits naturally with Optique's architecture: declare dependencies between value parsers, then topologically sort them at parse time.

const cwdString = dependency(string());

const parser = object({
  cwd: optional(option("-C", cwdString)),
  branches: multiple(argument(
    cwdString.derive({
      metavar: "BRANCH",
      factory: dir => gitBranch({ dir }),
      defaultValue: () => process.cwd(),
    })
  )),
});

Details in the issue:

https://github.com/dahlia/optique/issues/74#issuecomment-3738381049

0
1
1
1

농이 아니라 이제 다 오르고 있습니다. 부품은 물론, 완제품까지요. 어쩌면 인터넷에서 괴팍한 장난감 취급을 받던 AMD BC-250이 어느날 갑자기 조립이 다 끝난 상태로 완제품이 등장해 60만원에 팔릴지도 모릅니다. 그때 저는 많이 놀라지 않을겁니다.

RE: https://bsky.app/profile/did:plc:hxcknqlgkt63fh24hatgcgzc/post/3mc7xtl63s22v

0
1

I've been working on a tricky problem in Optique (my CLI parser library): how do you make one option's value affect another option's validation and shell completion?

Think git -C <path> branch --delete <TAB>—the branch completions should come from the repo at <path>, not the current directory.

I think I've found a solution that fits naturally with Optique's architecture: declare dependencies between value parsers, then topologically sort them at parse time.

const cwdString = dependency(string());

const parser = object({
  cwd: optional(option("-C", cwdString)),
  branches: multiple(argument(
    cwdString.derive({
      metavar: "BRANCH",
      factory: dir => gitBranch({ dir }),
      defaultValue: () => process.cwd(),
    })
  )),
});

Details in the issue:

https://github.com/dahlia/optique/issues/74#issuecomment-3738381049

0
0
1
0
1
0
0
0
0
1
0
0

youtu.be/WSo7OhiSJbM?... 그리고 애도 리테이크 되었더라구요. 그 옛날에 프나펑 ~~핑거 모드 붐을 일으켰던 시발점이 되게 오래간다 생각하고, 그때나 지금이나 아직도 뭐하는 애들인진 모르겠지만 걍 노래 자체가 신나서 들음

ONE LAST BITE - Twiddlefinger ...

0
0

『健常者は何にも頼らずに自立していて、障害者はいろいろなものに頼らないと生きていけない人だと勘違いされている。けれども真実は逆で、健常者はさまざまなものに依存できていて、障害者は限られたものにしか依存できていない。依存先を増やして、一つひとつへの依存度を浅くすると、何にも依存してないかのように錯覚できます。“健常者である”というのはまさにそういうことなのです。世の中のほとんどのものが健常者向けにデザインされていて、その便利さに依存していることを忘れているわけです。』

自立は、依存先を増やすこと 希望は、絶望を分かち合うこと
tokyo-jinken.or.jp/site/tokyoj

0
0
0

Klearsky v0.10.3 Update ⭐ 細かい追加実装と改善 ・アバター画像をラベルに応じてぼかす処理を実装(通知以外適用) ・プロフィールページのコンテンツフィルタをシンプルなUIに変更 ・ラベル押下時にラベル設定ポップアップの該当ラベルを開いた上でスクロールするように  (機能しないかもしれないので後日修正するかも) ・自身がラベラーである場合の様々なUXを向上 ・2回目以降のログイン時間を若干短縮 -- more --

0
0

"Have you considered going commercial yet!?!?!?" Yes and it is a bad idea. Here is why it is actually really hard to give money and support most FOSS projects. In a blogpost rant.

This is probably my second to last blog in that improptu serie about Hobbyists Maintainers, slowly reaching its conclusion of a model of Hobbyists Maintainers situation and how we can actually help them.

Because believe it or not, I know how to say something else than "no" or "it will not work".

softwaremaxims.com/blog/hobbyi

0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
2

今日は海が時化で船がかなり揺れた。
3階の特別室は唯一面を外して休憩できるところだけど、一番上が当然一番揺れるので、休憩してると船酔いする。
一番酔いにくいのが甲板の上だけど、当然海の上で風が吹きすさんで寒い(寒いおかげで酔わない)。
なので、「甲板の上で寒い⇔特別室の中で気持ち悪い」を繰り返す、カスのサウナの整いみたいな駿河湾フェリーでした。

1