HackerTrans
TopNewTrendsCommentsPastAskShowJobs

grrandalf

no profile record

Submissions

Ask HN: Anyone using Bazel at startups? or migrated to/away from Bazel?

27 points·by grrandalf·3 года назад·36 comments

comments

grrandalf
·2 года назад·discuss
Insightful summary. Thx.
grrandalf
·2 года назад·discuss
> So what I'm saying is that your actual potential has been exactly what you observed!

+1; How close is my paraphrasing to what you were thinking?

achievement(person) = potential(person) - adversity(person)

People implicitly assume the 'adversity' term is negligible. But in reality, the 'adversity' term can very large, and vary widely from person to person.

[yep the "equation" isn't dimensionally consistent. It's meant to be a "completion prompt" to your internal LLM to translate those tokens to a longer paragraph.]
grrandalf
·2 года назад·discuss
This is good news: it means your plan is actually innovative.
grrandalf
·2 года назад·discuss
> “execution there was the problem”

Thoughts on this devil’s advocate perspective? “Don’t design/propose what your org can’t build.”
grrandalf
·3 года назад·discuss
(iirc) I think I used `-fomit-frame-pointer` with DJGPP on DOS on a 486. It was an [unimpressive :)] software-rendered 3D graphics demo, and I was very happy with the substantial free speedup I got.
grrandalf
·3 года назад·discuss
s/countries/counties/g

thoughts?
grrandalf
·3 года назад·discuss
(not the author) The metadata is a contiguous range of disk blocks. I think the intuition is that such layouts are likely to require simpler filesystem code to manipulate. [versus (iirc) ZFS which may have metadata blocks scattered throughout the disk, probably requiring more intricate code to keep track of].
grrandalf
·3 года назад·discuss
the kids are alright

(GenX'er fwiw)
grrandalf
·3 года назад·discuss
Haha I can totally relate to copypasting a rule and later finding out how it actually worked :)
grrandalf
·3 года назад·discuss
Thanks! Do you have any thoughts to share on reasons for the migration to Bazel?

3-6 mo of one engineer to migrate to something so hardcore as Bazel seems very good actually, especially since it seems they Did It Right. The flows in 200-engineer size org can be quite complicated.
grrandalf
·3 года назад·discuss
Thanks a lot! +100 to your second point about language support being uneven.
grrandalf
·3 года назад·discuss
Thanks. Good points.

Follow up: I was wondering if bazel's hardcore declarativeness + opinionatedness-about-reproducibility might help increase confidence in some situations, e.g. an organization making binary distributions of their software to external partners.
grrandalf
·3 года назад·discuss
(i'm the submitter) +1000 to this. "Every import you write you have to write in two files or three if you have to export it."

Others are good points too. Thanks!
grrandalf
·3 года назад·discuss
Brought back some memories. Turbo Pascal 5.5 is the greatest IDE ever made.

Editor, compiler, debugger (separate full-screen output buffer alt-f5 iirc), graphics.

And oh complete stdlib docs that worked offline and in-app so you didn’t get out of “flow”. With copy-pastable examples in the help.

In a few MB.
grrandalf
·3 года назад·discuss
(not OP, but another Brother fan) I've bought two Brother multifunction monochrome lasers, both are still running fine.

I have the Brother MFC-L5800DW and it's predecessor (~$450). Both are amazing.

I stepped up to this price range because models at this price point have a USB slot in front so you can directly scan to a thumb drive, or print from a thumb drive.

Both have an extremely powerful scanning function e.g., scan to an SMTP server, local FTP server etc etc.

These are the Dewalt of printers e.g., full native Postscript, native LPR daemon the device etc.

Works excellently with iOS's CUPS too.
grrandalf
·3 года назад·discuss
Same.

Where I landed is that it's simply not worth the risk given the relatively small amounts involved. IIRC I bought an off-brand toner once -- the smell when printing was definitely stronger. Replaced with a genuine toner quickly.
grrandalf
·3 года назад·discuss
yes it can be difficult to find people to work on others’ ideas for free.
grrandalf
·3 года назад·discuss
Thanks for posting. Interesting tool -- I'll take a look at this.

"Saving streams" is killer. I've been "meaning to build something to solve that" for a looong time. :) :) But you did. Thanks!!

https://www.marceltheshell.org/saving-and-recalling-streams

-----

One feature request to think about if it doesn't exist: defining multiline functions right at the prompt, which you later export to a .py file. So I think a decent inline editor with support for arrow keys might be useful. https://www.marceltheshell.org/functions-1

This is not a showstopper obviously. The current 'import' functionality should be enough for me for now.

Why inline vs. shelling out a dedicated editor: because replacing the screen will take me out of flow because I frequently refer to previous commands' output on the terminal when constructing/editing the next command.
grrandalf
·3 года назад·discuss
Great points. Agreed.

In certain situations though, the readability/maintainability gains from using this library might outweigh the added complexity of a layer of indirection.

Situations like this: whether to build a utility solution completely [1] in shell, or invert things and use mix of Python and shell. E.g., wrapping 'git' to create a note-taking CLI, or shelling out to $WEIRD_INTERNAL_TOOL and scraping its logs and stdout/stderr.

I think infrastructure like this repo can result in more readable and maintainable code than an all-shell OR all-Python solution in such situations.

You'll be less tempted to start doing things completely in shell and then get locked into that lock minimum.

However, you MUST be prepared to understand the source code of all dependencies you take [except the language's standard library, or similarly mature external libs]. e.g., I pick bottlepy.org vs Flask for personal projects.

With a small/medium library like this, I might import it to get a headstart and will be ok with it ultimately ending up as an incompatible, heavily-modified fork of the upstream project. Which IMO doesn't reflect poorly on the user or the library author.

[1] "completely" means some non-trivial processing that makes you use hash tables, arrays, lightweight tokenizing using read, arithmetic evaluation, sed+awk to massage command outputs so Bash's lightweight data structures can handle them, os.path manipulations.
grrandalf
·3 года назад·discuss
I agree with everything the author said. I could have written that. But having said that, I’d add this.

I’m astounded at the customization that’s still possible. Gnome-tweaks still works on Ubuntu 23.04. I moved the activities bar to the bottom and merged it with the dock (some extension). I changed the fonts to Helvetic’s everywhere in the system ui — just gnome tweaks.

Only annoyance was that I had to create a symlink to make the Firefox snap see the fonts I had installed.

It’s pretty cool that hidpi even works. I now think things like dbus are intrinsic to the problem of IPC for GUIs.

——

I can see why snap exists. Its worth it to make it hard for a random ‘curl | sudo bash’ from breaking important programs.

But yes it’s ridiculous that I can’t update Firefox snap while it’s still open. And that it won’t auto update if I just close Firefox after getting the pop up about needing an update and wait a few seconds. I’m optimistic that will happen.

Even in 22.04 I could entirely disable the dock using the same tools to disable third-party extensions.

——

I’m a huge systemd hater. But I recently noticed it has something to run an arbitrary one-off program as a unit with all of the isolation/logging facilities that provides. It’s a pretty great from a tech perspective.

So I’ve softened my criticism somewhat. :)

——

It’s amazing how compatible the various distributions still are.

I’ve concluded these problems are not easy. The complexity in modern Linux is probably fine within a constant factor (analogy with time complexity — I’ll edit to clarify).

If we didn’t have multiple daemons etc we would have a single giant “unified” system like systemd for gui also — like windows.

—-

Finally, I think if we really want a simple gui stack we need to:

1. Get rid of graphical login and go back to VT login + startx.

2. User switching by alt-ctrl-f2 + startx.

3. Screen lock performed by actually logging out using the gui equivalent of tmux. (Jwz’s post linked here was educational.)

——

Thanks for reading so far. And THANK YOU Ubuntu and Red Hat for keeping the flame still burning.

PS: one final pet peeve. Why the heck does Ubuntu think it’s ok to half-ass booting other OS’s? Was super impressed that Oracle Linux (RHEL clone) actually listed all my OS’s and booted all of them after install. My hat is off to you.