HNHacker News
TopNewBestAskShowJobs

xiaomai

807 karma · joined March 23, 2009

submissionscomments
xiaomai··on Switching from macOS to Pop_OS
I hate the mac my work makes me use, but this makes it a bit less painful. Thank you.
xiaomai··on Uutils: an attempt at writing cross-platform CLI utilities in Rust
"non-viral"? Sounds like late 90s Balmer talking.

(I understand being worried about the license of libs you're going to deploy, but the license of cli utils isn't something you need to worry about "infecting" your proprietary code.)

xiaomai··on Bitcoin Price Tumbles After Wall Street Selloff
The blockchain has nothing to do with dollars. The "value" that disappeared has always been illusory.
xiaomai··on Web3 is not Decentralisation – it’s a Ploy to put Crypto Bros in Charge
Ah, I thought this was no longer the case. Thanks for the info.
xiaomai··on Web3 is not Decentralisation – it’s a Ploy to put Crypto Bros in Charge
I guess what I'm trying to say here is that decentralization and cryptography obviously predate all this blockchain nonsense and we shouldn't let the crypto hucksters try to "own" those terms.
xiaomai··on Web3 is not Decentralisation – it’s a Ploy to put Crypto Bros in Charge
I could be wrong, but I don't think storj is "crypto"/web3. It's decentralized and encrypted, but it's not like files are being stored on a blockchain. (I think they did to an ICO way back in the day, but I don't think that has any bearing on current Storj).
xiaomai··on Firefox is the alternative to a Chrome hegemony
it's not discoverable, but ff does have tab search. You prefix a search in your URL bar with '% ' (so like, if you enter '% esbuild', the "suggestions" in the dropdown will all be your tabs that match 'esbuild'
xiaomai··on XMPP, a comeback story
dino.im is very promising, It's a little buggy right now and missing features, but I love the approach.
xiaomai··on XMPP, a comeback story
I miss the "golden age" of chat where I could talk to anyone (google/fb/msn messenger/aol?) with my own jabber server. Pidgin was a great client at the time.

I've been looking for a modern self-hosted chat solution. I want it to be XMPP so badly (running XMPP with something like prosody is so convenient). The clients are really letting me down though. Desktop clients are old-fashioned and awful (I could get behind that, but I don't think my kids could). The mobile situation is even worse.

The new-fangled chat solutions (Matrix, Zulip, etc.) are interesting, but the operational requirements are insane (in the case of Matrix, I'm also very nervous about reliability).

I can't say I'm super hopeful, but I'm rooting for you, XMPP.

xiaomai··on Ubuntu 21.10
The fontconfig patches are a big reason I stay with Ubuntu. Fonts look _so_ much better on Ubuntu than Arch/etc.
xiaomai··on Ubuntu 21.10
I want to like AppImage, but it is just unreasonable that there is no built-in way to trivially install a .desktop file for a given AppImage I've downloaded.
xiaomai··on Disclosing E2EE vulnerability in multiple Matrix clients
What are people using for a self-hosted "slack" type messenger these days? I have looked at Matrix (which I am interested in but I think needs time to settle right now), Zulip (I really like their threading model but it has been confusing for other people I have tried it with), Rocket chat (only recently aware of this one). What else is there? Anyone have good/bad experiences with any of these?
xiaomai··on Are we GUI Yet? The state of building user interfaces in Rust
GTK+ on Rust is a thing that is seeing a lot of active work (see https://gtk-rs.org/). I think some of the core gnome stuff has even moved over to rust at this point (like libsrvg).
xiaomai··on 1Password for Linux
I love seeing all the proper integration with gnome/kernel/etc. Props to the 1password team.
xiaomai··on Apollo Client – Demystifying Cache Normalization
I have observed this same thing and found it unintuitive, but I think it makes sense? technically your `profile` field could be returning anything (even though you're passing an `id` param in, you potentially could be doing something like returning a sibling profile for the given id). iirc, there is a thing called "cache redirects" that let you teach apollo the right thing to do here.
xiaomai··on Gnome 40
the main text entry ("Name", the one that starts out focused) lets you type/paste paths.
xiaomai··on I Still Use RSS
I still use rss too (switched to using a self-hosted tt-rss after trying out a ton of Google Reader alternatives). I love RSS and mourn the fact that it's not more popular. The main problem with RSS becoming so niche is that lots of blogs/etc. no longer support RSS (I guess I need to look into one of those mailing list -> RSS things).
xiaomai··on Brave Introduces Brave Today, the Privacy-Preserving News Reader
They do still have the ad-blocking stuff built in (although is that much better than Privacy Badger?).

One big plus for me is it syncs with my phone (where I do vastly prefer Brave to Chrome).

xiaomai··on What Is the Signal Encryption Protocol?
one thing i have done recently that definitely didn't work is syncing history from phone->desktop. i haven't gone phone->phone in at least a couple years though--good to hear that that's working better.
xiaomai··on What Is the Signal Encryption Protocol?
I think not having it disappear by default is reasonable. My biggest complaint about signal is how hard it is to preserve history (backing up / transferring to new devices). I think the normal expectation is that your data is not going to automatically disappear unless you ask it to.
xiaomai··on If Not SPAs, What?
I think Phoenix Live View is maybe the most compelling story around this (https://github.com/phoenixframework/phoenix_live_view). I'm moving a side-project from React/SPA to Phoenix live view and it's kind of amazing to get the dev ergonomics of a server-rendered page with the UX benefits of a SPA.

This course is a pretty great intro: https://pragmaticstudio.com/phoenix-liveview

xiaomai··on How to Dual-Boot Ubuntu 20.04 and Windows 10 with Encryption
This is a great article. I have a different strategy that I think is "better" in a few ways but definitely still complicated.

(I'm assuming this is starting on a machine that already has windows on it because that's how my computers generally come (although maybe not the future since Lenovo is selling Thinkpads with Linux now):

Step 1. Install Ubuntu (let it set up the dual-boot stuff for you). The main advantage of this approach is I don't have the issue where grub can't boot windows as described in the article. (NOTE: ubuntu's installer won't do encryption in this setup for some reason: Ubuntu please fix this and save me the following steps!):

Step 2: reboot into the installer. Now things are going to get crazy.

Step 3: shrink the ubuntu partition as small as it will go (resize2fs -M ...). Then create a new partition of the same size at the end of the drive and copy the data over to the new partition.

Step 4. delete the original ubuntu partition. replace it with a /boot partition and a luks partition.

Step 5. Copy the boot stuff into /boot, copy the rest of the data onto your new encrypted / partition (i usually do lvm here also). chroot into the /, do the mounting stuff TFA suggests, install lvm/dmcrypt/etc. Reconfigure your initramfs and run update-grub.

Step 6. Delete the copy of the original ubuntu partition made in step 3 and resize the encrypted partition as needed.

OK I agree that's a pretty ridiculous sequence and I wish Ubuntu would do it for me, but it's pretty cool that it can be done at all (takes about an hour).

xiaomai··on 1Password for Linux beta
bitwarden looks cool. what parts are open-source and what parts are closed? (are all the premium features closed-source or are they just charging for that in the hosted-by-them version?)
xiaomai··on 1Password for Linux beta
This is pretty cool. I am a long-time super-satisfied user of pass (https://www.passwordstore.org/) for all my personal needs, but my work uses shared vaults in 1password and this will make dealing with that a lot more smooth it looks like.
xiaomai··on Snap! 6 is here, and it's all about scale
Good point, I was definitely too flippant about the amount of work involved. Glad to hear it's on the list though!
xiaomai··on Snap! 6 is here, and it's all about scale
I taught a high-school Intro to CS course last year with the TEALs program (https://tealsk12.org). I was very unenthusiastic when I heard that the first semester was taught using Snap, but I was wrong. Snap is a pretty awesome way to introduce someone to programming (much more powerful and reliable than other block-based programming environments I've tinkered with like the Kano kit).

The one really terrible thing about the current iteration of Snap (that I think would be trivial to solve?) is that you have to remember to save your work. I don't think that's a normal thing for people to think about on the web in this day and age, and I have seen many students (and my own children) lose large amounts of work due to this. It's extremely discouraging.

Other than that though, the snap language/environment is quite nice.

xiaomai··on Arch Conf 2020 Streaming [video]
I used Arch for several years while Ubuntu was doing annoying stuff like shipping a broken/out of date gnome-shell because of Unity.

It is soooooooooo nice to be back on Ubuntu. I appreciate the people that like and develop Arch linux (and especially anyone that contributes to the wiki is a true hero), but it's not a good distro for your daily driver:

1. "immature" packaging. It's crazy to me how much manual intervention is needed during routine package upgrades. This can be major break-your-system stuff (they have a mailing list for those types of changes so make sure to subscribe), or just stuff that could be done for you but isn't (like updating your db during postgres upgrades).

2. Tiny official repos. You're going to have to rely on the user-submitted repos for most of your packaging needs. It's cool how easy it is to make a package and submit it to the AUR, but I don't love the idea of installing random user-submitted stuff for the bulk of my software needs.

3. No debug symbols. Maybe this doesn't affect most people but it is very annoying that there is no (convenient) way to get debug symbols for a package /lib. If a program crashes on you and you want to fix it, the official solution is to rebuild a package (and all its dependencies as necessary) on your own system to get debug symbols. In contrast, ubuntu/fedora/etc. will install a debug symbols package for you (automatically, I think) when a program crashes.

In terms of learning Linux fundamentals: arch could teach you some things (LFS would be even better--but I wouldn't sue either for my daily driver when better options exist.

xiaomai··on Arch Conf 2020 Streaming [video]
Arch's official package manager is `pacman`. The official arch repos are tiny though, so you frequently need to interact with the AUR (which are just user submitted packages (they need to be built by the installer unlike the official repos)). I think the AUR clients are all unofficial, so I guess it makes sense that people would become disinterested in them, but I agree for such a core part of the arch experience it sucks.
xiaomai··on A REST View of GraphQL
The n+1 problem is real but I do think dataloader is a very ergonomic solution. In a simple REST API using your ORM's preload functionality is even more ergonomic, but in more complex cases I've seen a lot of gnarly stuff like bulk-loading a bunch of data and then threading it down through many layers of function calls which definitely feels worse than the batched calls you make to avoid N+1's in gql.
xiaomai··on A REST View of GraphQL
Mutations don't have the really clear advantages that queries do (compared to their REST counterparts), but the one thing that I think does make them worthwhile is that you get the cache updates/re-renders based on the mutation result (instead of needing to re-fetch data or whatever to get your UI to update).
← PreviousPage 2 of 7Next →