HNHacker News
TopNewBestAskShowJobs

qrobit

94 karma · joined January 11, 2024

submissionscomments
qrobit··on Slack has raised our charges by $195k per year
As a younger person myself, this talk is incredibly entertaining, kind of eye-opening too; the passion for engineering that speaker radiates is immeasurable.
qrobit··on 30 minutes with a stranger
I suppose because modern websites are actually apps, in an app you click on stuff to see more content

If web page does not look like a blog or a newsletter, it is not wrong to assume the app format

qrobit··on Using traversals to batch database queries
For me lenses are like water. I start each haskell project with `optics` dependency, my favorite trick is deriving Generic and using labels to access the fields[1]. Field accessors never get created in the first place, so you have no namespace pollution and all your data definitions can have fields called `id`, `date`, whatever and never collide with each other or imports from other modules. The only problem is unwieldy error messages in case something goes wrong. Another tool is Magnify and Zoom[2] classes, which are useful for limiting context available to child actions in a monad stack. You can have one "global" state, but give only a slice of that global state to the child action with `magnify #subState1 (myAction1 arg1 arg2)` (or zoom respectively for MonadState actions). This approach is extensively used within Brick[3] TUI library, where you have big "global" app state, and a collection of widgets that have their separate states which you slice from the big state.

[1]: <https://www.youtube.com/live/9hrDm7xDpig?t=2200>

[2]: <https://hackage.haskell.org/package/optics-extra-0.4.2.1/doc...>

[3]: <https://hackage.haskell.org/package/brick>

qrobit··on Sign in with Google in Chrome
FWIW, these uBlock Origin rules solve the ploblem:

    ||accounts.google.com/gsi/iframe
    ##iframe[src^="http://accounts.google.com/gsi/iframe"]
    ##iframe[src^="https://accounts.google.com/gsi/iframe"]
    ##iframe[src^="//accounts.google.com/gsi/iframe"]
    ###credential_picker_container
source: https://stackoverflow.com/a/78429389. Last rule is from me since popup was invisible but still blocked the content underneath.
qrobit··on Spaced repetition systems have gotten better
I had a similar problem where I can't remember the answer to the card, but after revealing it, it seemed too easy to make it due in a few days, so I would lie to the program and press Hard/Good. Later I removed scheduling times on top of buttons and decided to trust the algorithm. I believe it helped me to stop caring about schedule times and loosing progress on a certain card. After all, these algorithms were made for ordinary people with ordinary memory behavior.
qrobit··on Path is a utility for working with paths
As a rule of thumb I always make paths absolute when handling files in scripts. But then sometimes I need to copy a directory tree relative to $CWD somewhere else, so I convert them back to relative

Fish, being a great shell, provides this via `path` command[0]

[0]: https://fishshell.com/docs/current/cmds/path.html

qrobit··on Why Fennel?
Fennel is indeed nice and I rewrote my config in it too, but looked back ~2 years later and rewrote it again in Lua. I think Fennel for configuration is not justified and just adds complexity. Also the tools are not there: two existing language servers[1][2] can't compete with Sumneko's Lua language server[3] and they are fennel-exclusive and clueless about Lua code. I still like Fennel for writing more complicated code (my plugins: [4][5]) because of neat features like pattern matching and structural decomposition, both are surprisingly robust.

[1]: https://git.sr.ht/~xerool/fennel-ls/

[2]: https://github.com/rydesun/fennel-language-server

[3]: https://github.com/LuaLS/lua-language-server

[4]: https://gitlab.com/repetitivesin/16cm.nvim/-/tree/main

[5]: https://gitlab.com/repetitivesin/madol.nvim

qrobit··on Parser Combinators Beat Regexes
I looked at the VerbalExpressionJS[1] example and it looks like combining parsers to me. If you need to make regex more verbose, better use parser combinator library when available. RegEx benefits compared to parser combinators other than compactness aren't obvious to me.

[1]: <https://github.com/VerbalExpressions/JSVerbalExpressions/tre...>

qrobit··on Upcoming Windows 11 builds cannot install without internet and Microsoft Account
Is it? I use Android without Google account (with services though). No app forces account on me, there's always option to sign in through other platform or directly via email.
qrobit··on How do you process the news?
Genuine question: do you consider Hacker News news? Because I believe answer is yes (judging by the name). Maybe it would be good idea to once a week open some site that aggregates top HN posts of the week and treat it like weekly newsletter

I guess every blog infrequently emitting posts can count as weekly news too, you don't even need to aggregate anything. RSS definitely helps to keep everything in one place though

qrobit··on Vtm: Text-Based Desktop Environment
I don't completely understand what is meant by "zooming", but kitty[^1] does that: you open ssh connection with `kitten ssh user@host` and pressing <C-Enter> will open another ssh pane in the same tab, you can than IIRC <C-F> to "zoom" and make tab take full window

[1]: <https://sw.kovidgoyal.net/kitty/>

qrobit··on Ask HN: Best Security Practices for Activists?
I would argue it doesn't matter which map app you use if you have google services installed or if you are iPhone user
qrobit··on FreeBSD for hi-fi audio: real-time processing, equalizer, MPD and FFmpeg
Can confirm for LDAC too
qrobit··on Ask HN: Does anyone still use code snippets?
I use snippets almost exclusively in markdown/latex, where typing math is at least twice as fast with snippets.

When doing some quick experiment in C/C++, scaffolding `int main ...` and classes is nice too.

In nicer languages I use snippets only if I forget syntax, than snippet serve as a quick reminder(e.g. for loop in lua)

qrobit··on Cal Newport: What Happened When an Offline Person Tried TikTok
I feel much more time and effort was put into arranging words(2290 words per `wc -w`) than collecting data or asking actual addicted users

Also I don't agree with people being more tolerant towards individuals who ditched social media. In my social circle, you either can't convince people not to use facebook to send you messages or convincing them will be short-lived. You will look weird and closer people(i.e. friends) will directly ask what's wrong with you

qrobit··on Markov Keyboard: keyboard layout that changes by Markov frequency (2019)
It would be 24 if all digits are distinct

It actually drops from 10^4=10000 to 4^4=256 combinations

qrobit··on The biggest blocker to LibreOffice adoption? LibreOffice (2023)
There's RStudio with its WYSIWYG "visual"[1] editor for markdown(ahem, rMarkdown or quarto, which are pandoc's markdown + extensions). It is quite feature-rich albeit I am unsure whether it supports wrapping images. I bet you can write a little inline CSS in a fenced div[2][3] for it, but it is likely not an option for casual user. What it does support is rendering all the goodies in plethora of output formats[4]: docx pdf, html for plain documents; revealjs(html), pptx, beamer(pdf) for presentations. You can even generate websites with it As for spreadsheets, RStudio supports both R and python which are incredibly powerful for manipulating and visualizing table-like data

I won't argue that those are easy tools to learn, but if you do, you have much more power than with MS/{word,excel,powerpoint}

[1]: https://rstudio.github.io/visual-markdown-editing/

[2]: https://pandoc.org/MANUAL.html#extension-fenced_divs

[3]: https://stackoverflow.com/questions/76421783/text-and-image-...

[4]: https://quarto.org/docs/guide/

qrobit··on Why Not Comments
If there is something really important worth rereading over and over again, put «NOTE: » before it and let your editor highlight it for readers of your code
qrobit··on She Made $10/ Month Defrauding Apps Like Uber
https://web.archive.org/web/20240710111919/https://www.wired...
qrobit··on My Month Without a Smartphone
Well, reading blogs without any incentive to earn money is quite addictive too. Same for HN
qrobit··on A teacher did all he could to keep kids off phones
How does that solve the problem?

Judging by my previous addiction, I would say youtube desktop and youtube mobile experience is on par, also I believe TikTok is more comfortable on mobile(I never used it though). Same applies for the rest of social media. When you are sitting in a class and splitting your attention between what is being taught and your distraction, that distraction is unlikely to be some serious activity, because serious activities demand full attention

So you have a choice:

- make-yourself-a-desktop which is time-consuming, has dubious reward(what linux can do that Windows/MacOS can't?[1]) and is not comfortable to use everywhere

- phone that gives you all the means to distract yourself, is always in your pocket and requires no effort

If you don't explicitly aim to avoid the latter path I don't see any reason to choose your method

[1]: Having said that, I would never put windows on a personal computer. Answering my own question, there are certainly needs where Linux fits better, but for general desktop not so much

qrobit··on Active learning is more effective, but students don't think so (2019)
> I imagine many of the students there don't really care about physics.

It might be, but AFAICS the study was conducted at Harvard and I believe students at prestige universities have much more will to study. If they chose physics, they are likely interested in it

qrobit··on You might not want to use your fingertip to unlock your phone
I saw video "do that if you are forced to enter your card PIN" where they tell you to enter your PIN backwards, which will allegedly be accepted as a usual PIN, but additionally notify authorities.

Unfortunately none of the banks I was client of did that

qrobit··on Yes, social media is a cause of the epidemic of teenage mental illness
Aren't most of the replies critic or posted by people disagreeing with you though? Especially on HN, where most users would promote discussion with a reply rather than «Agreed» or «lmao»
qrobit··on AI is not your friend
While android base is open source(and I appreciate google for that), no major phone vendor uses exclusively open source components. They always adds own proprietary apps and services also most of the time google's. IMO no better than an iphone.
qrobit··on WinBtrfs – an open-source btrfs driver for Windows
Well, only "pure" in the sense no IO effect happens. I doubt mentioned library neglects state or global variables
qrobit··on Ask HN: How bad is the xz hack?
That is definitely creepy. Having an age of AI in mind I wonder how much more sophisticated will viruses become and what makes me believe my machines are not compromised already? I hope to never get an answer, or even better, get a negative one.

Makes me wonder whether it's time to reduce complexity and diversity in technology? Wouldn't it be beneficial to recreate everything from scratch(except maybe for machines producing hardware)? Leave one or two compression standards that are easy to understand and implement once and for ever. Maybe even aim to make them "finished" since the very beginning? So that they won't require changes after some time. I believe that recreating that and foundational things: compiler(of a language that is reinvented and standardized), OS components, web protocols and so on would be beneficial. There are so many of each and each can be vulnerable now or get vulnerable in the future. Many pitfalls aren't mentioned like why would we believe existing hardware producing new components to be trustworthy or how to make such a revolution without loosing so much progress, who will found it and how can it found commercial interest.

These are, of course, just murky dreams that linked book gave birth to, but there is no reason not to be paranoid.

qrobit··on 25 years of studying the brain: Avoid these 4 habits that destroy our memory
I am a low-RAM single-threaded processor that utilizes a poor multitasking scheduler
qrobit··on Fingerprints can be recreated from the sounds made when you swipe a screen
I am by no means competent but I believe frequencies of swiping and frequencies of you shouting differ substantially which will allow to separate them
qrobit··on Browsers Are Weird
At least both the extension(tst) and the browser (firefox) are open-source. And you can use firefox on any desktop platform including BSDs while arc is limited to MacOS and Windows
← PreviousPage 2 of 3Next →