HNHacker News
TopNewBestAskShowJobs

bbminner

335 karma · joined November 18, 2015

submissionscomments
bbminner··on SVC16: Simplest Virtual Computer
Can someone explain to me the appeal of these virtual console projects? Is it like lock picking or demoscene in a sense that you need to figure how to achieve impressive things under tight constraints?
bbminner··on Unless my phone can be a PC, I don't want to keep paying for extra performance
When I was a teen, Symbian smartphones with a physical slide keyboards were all the rage, but too expensive for my budget. I was day dreaming of how cool that'd be to be able to ssh someplace from a phone via grps. I did it years later once (from an early android phone). Now I have an android phone that can do that easily (albeit without a physical keyboard), and yet I never do that day to day. Phones make poor computer and computer make poor phones - it appears easier to send data across then to bother trying to merge them into one.

The real question I have is why software keeps getting progressively slower requiring faster phones. I don't buy the "devs are lazy / management pushes for frequent releases, so devs use poor expensive platforms like electron" or "all manufactures conspire to make phones that age too fast" - both devs and companies have always been like that, I don't see any recent fundamental shift in that. And it is not like current dev experience is somehow fundamentally different and easier then 10y ago - we use similar kinds of abstraction to do similar things (maybe ~20% more productive and simple?). I am genuinely confused.

bbminner··on The unplanned impact of mathematics (2011)
The article is interesting, but I feel somewhat conflicted re "explaining motivations behind scientific discoveries". The author of the article is trying hard to find simple and elegant examples of applications (eg the optimal orange stacking in a grocery store), but imho makes a disservice, as mathematics ends up looking like a walk in the park taken by complete lunatics that were carried away thinking about stacked oranges. When I was a kid, there were some science fair-esq events / electives for high school kids including sections on mathematics. By stripping off all the mind-twisting weirdness and complexity of the real math to make problems "more approachable" to students, they also stripped them of all the mystery and a sense of discovery that I self-discovered and fell in love with much later during my undergrad.

Tdlr if we want to get people excited about math, we should not strive to erase all the complexity and ambiguity, making it fully digestible, because otherwise all that's left are a bunch of lunatics arguing over stacking oranges (prove me wrong).

bbminner··on Diátaxis – A systematic approach to technical documentation authoring
True, even when you are writing a scientific publication with a hard page limits (~8 pages), it is advisable to reiterate the core messages multiple times as you add more context and details:

= abstract 1) in this paper we show that X holds by evaluating Y against Z = intro 2) the problem of A is important because B, however the X aspect was overlooked; we show that evaluating Y highlights real world challenges, in contrast to Z, that... 3) to sum up, we found that Y is better at Z because X = related work Z approached the problem as..., which improved..., but as we show further, this is not sufficient to achieve...

.. and so on - you circle around the main message over and over again in each section.

bbminner··on 8 months of OCaml after 8 years of Haskell in production (2023)
I agree. I have limited experience with FPs, and I can get a hang of what is happening in OCaml examples relatively easily, but Haskell examples feel more like something akin to Forth - if I really needed, I could parse it with my brain, but cryptic one liners like that feel more like "puzzles" than an actual useful program.
bbminner··on Zed: SSH Remoting Is Here
I have been using code server over ssh for this purpose for years.
bbminner··on Show HN: I built a task manager that separates "do" and "due" dates
For years I have been fiddling with the idea of a personal task management system that synchronized status, due dates, prioritization, planning, projects, etc across platforms, and came to a conclusion that nothing beats a flat text file (with own notation for all the above) synchronized well across devices via something reliable yet lightweight like google keep, that I "scan, update, reorder" at least once a day.

One huge insight was a notation to keep track of blocked tasks (usually by other people) and what/whom to "poll" periodically to check the status.

bbminner··on Feldera Incremental Compute Engine
I wonder what guarantees can be made wrt resource consumption. I suppose that'd reasonable to assume that in most (all?) cases an update is cheaper then recompute in terms of cpu cycles, but what about ram? Intuitively it seems like there must be cases that would force you to store unbounded amount of data indefinitely in ram.
bbminner··on CuPy: NumPy and SciPy for GPU
Ah, well, that's interesting! Does anyone know how cupy manages tensor mutability?
bbminner··on How the OCaml type checker works (2022)
A complete novice question: I think I remember reading that Rust is moving from one of the standard type checking algorithms (this one?) to general purpose Z3 SMT for speed. Does type checking happen to have the same complexity as SMT? Or Z3 is just so insanely well optimized with heuristics and all that it happens to give better overall performance then problem specific checking algorithms with better theoretical performance (eg this one)?
bbminner··on PyScript: An open source platform for Python in the browser
Woah, what browser/page combination can fit into ~50Mb these days? I am simply used to the fact that most pages take at least 200Mb RAM in task manager.
bbminner··on The Complex Relationship Between ADHD, Autism, and Personality Disorders
For those less familiar with npd/bpd - at the core of both (and codependency to a certain extent) lies inability to self-regulate emotions (especially difficult emotions like shame), that makes people with these PDs use those around them as "human pacifiers" that must regulate them in some way. In case of NPD by establishing superiority of the narcissist, in case of BPD via a fantasy of the other being a "perfect rescuer/knight in shining armour" who will save them from their own internal shame-based turmoil (and via seeing oneself as this knight/martyr saving a lost soul in case of codependency) . When a real human (obviously, eventually) fails to live up to the fantasy, they become "the issue" and are used to push the blame for unregulated feelings and behaviors (caused by shame that goes out of control without external soothing), until a new "fantasy person" is found, repeating the cycle.

Honestly, that's where I would draw the line between these two PDs and other conditions like ahdh and asd - is the behavior motivated by the frantic attempts to escape shame and shift blame?

Some anecdotally observed pattern suggests that many codependants in relationship with BPDs are either diagnosed with ADHD/ASD or suspect that they might have it, not sure what the causal link is.

bbminner··on FastHTML – Modern web applications in pure Python
I have been reading about these kinds of projects for some time, and even prototyped my own a while back, but one question that keeps popping up is - all these python abstractions over how html and js and dom interact tend to be extremely leaky. So, as soon as you go beyond the simple todo example, you need to manage BOTH the standard browser model and the abstraction model in your head, and all the funny ways in which they interact. Do these kinds of libraries prove useful for people beyond their authors (who have a good mental model of a framework in their head anyway because they are developing it)?
bbminner··on Calculating the cost of a Google DeepMind paper
Because accelerators (tpus, gpus) unlike ram/cpu are notoriously hard to timeshare and vitrualize. So if you get evicted in an environment like that, you have to reload your entire experiment state from a model checkpoint. With giant models like that, it might take dozens of minutes. As a result, I doubt that these experiments are done using "spare" resources - in that case, constant interruptions and reloading would result in these experiments finishing sometime around the heat death of the universe :)
bbminner··on Things you didn't know about GNU readline (2019)
Bash uses readline, right? So

> Tens of thousands of people probably use it every day without thinking about it.

seems like an understatement.

bbminner··on Monads are like burritos (2009)
For me, everything made sense when I read that generator functions in python can be used to implement algebraic effects, and algebraic effects and monads express the same ideas/logic using somewhat different language (and for some, including me, the algebraic effect lagngauge is easier). So I like an explanation that goes like "langaues without either but with exceptions and async io > generators/coroutines > algebraic effects > monads".

On a fundamental level, all these describe abstraction over what happens "between functions calls" and how values are passed around.

1. Some languages provide special syntax for exceptions and async io - in both cases "something" might happen between function calls - either an exception handler is called under certain constitutions (eg prints logs) or a kernel level callback is created and the program is suspended.

2. One generalization of this can be implemented using python generator functions / coroutines - you can build a call graph by invoking all functions in you callstack as "yield from func()", and use "yield Exception" to propagate errors and "yield Timer(1)" to ask an outer caller (event loop) to wait, or "yield Print(mag)" if we want to keep our functions pure and make the C event loop handle all the IO. You can also pass values down the stack via corp.send(x).

3. But it is a little clunky. Some langaues like Koka give you an ability to define arbitrary "effects and effect handlers" which is essential special syntax for how we were abusing coroutines in the previous step that makes differentiating and handling different "kinds things that we pass up and down the callstack" (exceptions vs timers vs prints) easier.

4. But some langaues do not have effect handlers but still want to do "custom arbitary custom things between function calls". That's where monads come in - they define a type for defining chains/trees of function calls and rules for how these threes must be iterativley unwrapped and wrapped back depending on how the wrap looks like. Eg instead of doing a(b(c)) you say unit(c) | b | a and describe how piping must be done it terms of types of values that these steps process. I hope it makes it clear how one could implement side effect IO, or exceptions, or async io that pauses by defining how to "unwap such piping". In principle, you abstract away control flow by introducing your own syntax for building function call trees and then rules for writing piping that works with such trees.

Monad guru please correct me if I am wrong.

bbminner··on Survival of the richest: Inside the short-lived fallout shelter bubble
I happened to read a short story called "Foster, You're Dead!" not so long ago - which appears to have been Philip K. Dick's reaction to exactly these kinds of efforts.
bbminner··on What UI density means and how to design for it
> Things which are massively useful on desktop - like searching in a page or visually scanning a large doc are much harder on mobile

Interesting, am I the only one who almost always uses "search on page" and glimpses/scrolls over the entire page before reading both on mobile and desktop? Especially if I just came from a search engine, I search for the "highlighted" phrase.

bbminner··on Simplicity is an advantage but sadly complexity sells better (2022)
If we are talking about paper reviews, what I am looking for in a paper as a reviewer is neither simplicity nor complexity. I am not even looking for "novelty". What I am looking for is a thorough and thought-provoking empirical analysis of a problem.

I see plenty of submissions where 1) authors propose a system that is clearly a monstrosity Frankenstein patched together from a dozen of existing ideas - clearly a successful attempt at getting "bold numbers" using as many new shiny toys they could get their hands on without analyzing failure modes of either part in depth; 2) a simple modification of an existing method that accedentally improves the performance of the system but still lacks proper empirical or therotical justification of why this modification helps.

While the second type of papers has at least some marginal value to the community or the reader, I still find such papers mostly useless. What brings value to the reader is a phd student who stared at the problem long enough to find quantitative and verifiable confirmations to his intuitions about the problem that lead to reproducible observations with predictive power. Ie "we experimentally verififed that indeed X affects Y exactly though the mechanism Z described in this paper in all cases, this helped us to improve metric A by B%, agreeing with Z". Not "we did X, and we saw A increase by B%", regardless of the complexity of A.

Not all reviewers agree with me, sadly.

bbminner··on An automatic indexing system for Postgres
Exactly, I have always been curious about the same thing - if we have live statistics on queries then what stops us from cloning data (to correctly capture statics such as skew, etc.) and running these live queries with a bunch of knobs tuned automatically (which indexes, on which columns, etc.), and reporting the cost-throughput paretto optimum to the user? The configuration space is too large to explore randomly? And it's structure is too complex to produce automatic suggestions?
bbminner··on A Bayesian view of Amazon resellers (2011)
When I started learning about Bayesian statistics years ago, I was fascinated by the idea that a statistical procedure might take some data in a form like "94% positive out of 85,193 reviews, 98% positive out of 20,785 reviews, 99% positive out of 840 reviews" and give you an objective estimate of who is a more reliable seller. Unfortunately, over time, it become clear that a magic bullet does not exist, and in order for it to give you some estimate of who is a better seller, YOU have to provide it with a rule for how to discount positive reviews based on their count (in a form of a prior). And if you try to cheat by encoding "I don't really have a good idea of know how important the number of reviews is", the statistical procedure will (unsurprisingly) respond with "in that case, I don't know really how to re-rank them" :(
bbminner··on Bayes is guaranteed to overfit
So the argument is essentially that "not only if you pick the best thing fitting your finite data, but even if you take a weighted average over things that fit your finite data proportionally to how well they fit your finite data - you are still almost surely end up with something that fits your finite sample better than the general population (that this sample was drawn from)"?
bbminner··on Drag Your GAN: Interactive Point-Based Manipulation of Images
There's also an older work called PuppetGAN http://ai.bu.edu/puppetgan/
bbminner··on Creating Isometric RPG Game Backgrounds
There's also MaskSketch from Google that will be presented at the upcoming CVPR https://github.com/google-research/masksketch
bbminner··on TRIZ – Theory of Inventive Problem Solving
404 Not Found
← PreviousPage 4 of 4