HNHacker News
TopNewBestAskShowJobs

foob

4,793 karma · joined February 14, 2011

I'm the CAIO at TenantBase (https://tenantbase.com) and a co-founder of Intoli (https://intoli.com). Feel free to get in touch at evan@sangaline.com if you would like to chat.

my public key: https://keybase.io/sangaline my proof: https://keybase.io/sangaline/sigs/uKMqGQ_auE6z2qTdrkpZihnoA-DcJ4BeHb35KLA1KZI

submissionscomments
foob··on Restaurant real estate gets a radical makeover
I think you're spot on about the role of tips and inflation. The article brings up patrons saving on marked up alcoholic beverages, but fails to mention the rise in expected tip percentages driven by larger defaults in point-of-sale systems. Tips are effectively a premium paid to eat in a restaurant instead of getting the food to go, and it's only natural that fewer people will be willing to pay that premium as it increases and is introduced in types of restaurants where it wouldn't have traditionally been charged. Couple that with inflation dwarfing wage growth over the last two years, and people are only going to be more sensitive to price differences.
foob··on A.I. imagery may destroy history as we know it
There's also a technique for lucid dreaming where you make a point to look carefully at your hands throughout the day until it becomes an unconscious habit. The idea is that they won't look quite right in a dream, and you'll therefore realize that you're dreaming. I wonder if there's any particular significance to hands beyond them being conveniently accessible, or if any similar ritual would work as long as the individual believed that it would. In other words, are hands inaccurately constructed in dreams without people noticing unless they're specifically looking for it, or does the lucid dreaming technique cause the distortions because the dreamer is expecting them?
foob··on A misleading open letter about sci-fi AI dangers ignores the real risks
I would add startups to the list in addition to the more explicitly negative groups that you mention. There's a tremendous amount of both reputational risk and technical/organizational inertia to overcome in Amazon overhauling Alexa to use LLMs for responses, but much less for a new startup because they have far less to lose. Same for Apple with Siri, or Google with Google Assistant. I expect that we'll see exciting changes in these products before too long, but they're inherently going to be more conservative about existing products than new competitors will be.
foob··on Jqjq: Jq Implementation of Jq
Jokes aside, this is a actually a pretty common scenario for some people, and I wrote a tool called Exodus to solve it [1]. Exodus makes it trivial to relocate Linux binaries like jq from your local machine [1]. You can simply run

  exodus jq | ssh my-server
locally, and then immediately have access to jq on the server. I personally find it very useful when working with servers or containers that have limited package repositories or where I don't have root access.

[1] - https://github.com/intoli/exodus

foob··on Understanding UseMemo and UseCallback
If you're passing the callback as a prop to a child component, then it will cause that component to be re-rendered every time the parent component renders unless you memoize the callback. This happens because React checks referential identity when determining whether props have changed. The performance hit of unnecessary re-renders can be fairly significant in large React apps.
foob··on Use of geometrical methods in Babylonian mathematical astronomy (2016)
I had a physics professor many years back who told me about how they sometimes used to measure integrals by cutting out the areas of a plot they were interested in and weighing the resulting paper.
foob··on Tokamak Energy sets a temperature record among commercial fusion companies
Not in classical thermodynamics, but temperatures above the Planck temperature aren't understood with current quantum models. It would probably require a theory of quantum gravity to shed further light on this.
foob··on My transition from Windows to Linux in an anti-customer age
If you use an Arch-based distro, it's available in the Arch User Repository (AUR) [1]. With Aura [2], installation is as simple as:

    aura -A radarr
Yes, you need to use the CLI to run that, but it's trivial to do so and a real package management system brings many advantages over exe installers. The AUR, inspired by BSD's Ports, is one of the major advantages of Arch. It's very rare to find a package that isn't supported.

[1] - https://aur.archlinux.org/packages/radarr

[2] - https://github.com/fosskers/aura

foob··on For some Greenlanders, eating sugar is healthy
Lactase is the main way that people digest lactose and it's produced by human intestinal epithelial cells rather than bacteria. It seems plausible that a bacteria to digest lactose could serve a similar role, but I don't think that's how people typically digest it.
foob··on Exodus – relocation of Linux binaries–and all of their deps–without containers
You usually can't detect them other than running the program and watching it die, or running the program with strace and looking for the files it's trying to stat/open.

You can actually pipe the output of strace into exodus and it will include the files that were accessed by the program in the bundle. For example:

    strace -f nmap --script default 127.0.0.1 2>&1 | exodus nmap
foob··on Exodus – relocation of Linux binaries–and all of their deps–without containers
I'm the author and I agree that you're correct in assuming that what you ran should work. I just tested this with git on arch and I was able to reproduce the issue. I'll look into why this is happening and hopefully push up a fix soon, but I also invite you to try it out with another binary in the meantime. There seems to be something particular about git, and I think you'll have better luck trying it with almost any other ELF binary.
foob··on The Fastest FizzBuzz Implementation
I think it's unfair that people downvoted this to gray. This person didn't claim that this was about to happen, and it seems likely to me that when/if AI surpasses human intelligence that something like this would be possible. It might require some additional way to describe expectations about the input data, and it might be many years away, but I would be disappointed if compilers couldn't do this in the far distant future. Look at the progress we've made in the last seventy years and try to extrapolate that out a thousand years forward. I obviously can't guarantee what will happen, but is it really that unreasonable to suggest progress like this as a strong possibility?
foob··on Ask HN: What does one look for in a laptop these days?
you'll find in the sub-$1000 laptop range you'll get something that is literally twice as fast

That's true, but it would require some combination of major compromises on the SSD, RAM, hot swappable battery, build quality, form factor, and keyboard/trackpoint. I'm almost never CPU limited in my day to day workflows, even on a 2nd gen i5, and I have cloud resources available when I need to do something CPU intensive like model training for work. It's a tradeoff that isn't right for everyone, but those other factors are far more important to me than the CPU.

foob··on Ask HN: What does one look for in a laptop these days?
My tastes are fairly similar to yours. I'm curious which boxes aren't ticked by the more recent X200 series Thinkpads since the X230 in your view?

I recently purchased one, and I did a bunch of research before deciding which to get. I settled on an X270 because it's user upgradeable, supports two SSDs, has two batteries, has hardware VP9 encoding/decoding, includes a USB C port, and is hopefully much closer to the ruggedness of the impeccable X200-X230 range than the newer models. The only thing thing I felt like I compromised on was the lack of support for 32 GB of memory. I was able to purchase an i7 X270, 4TB SSD, 16GB RAM, and replacement batteries all for under $1k, and it blows any new laptop that costs twice as much out of the water for my needs.

foob··on VSCode deprecates Enable Telemetry, auto-enrolls you in Telemetry?
everything else works perfectly

Isn't it also the case that pylance doesn't work and has some form of DRM to prevent it from being used with the open source version? I'm not saying that as a reason not to use the open source version, just wondering if Microsoft has already rounded the corner on that second "E" in EEE.

foob··on ‘Seinfeld’ fans upset that Netflix’s aspect ratio cuts out jokes
There's a great blog post by David Simon on the conversion of The Wire from 4:3 to 16:9 [1]. It goes into a lot of depth about some of the trade-offs and considerations as well as the lack of communication from HBO. Unfortunately, the video examples don't seem to work anymore. I can't help but wonder if HBO sent YouTube a DMCA takedown for David Simon's clips from the post (or they got taken down automatically). It's pretty sad if the creator of a show can't even post short clips from it to illustrate some of the design decisions behind them.

[1] - http://davidsimon.com/the-wire-hd-with-videos/

foob··on Leaded gas was a known poison the day it was invented (2016)
Intellectual property reform could be a solution. It sounds like they might have gone with ethanol if they weren't motivated by patents so that they could prevent free market competition. We see the same thing with pharmaceuticals and in many other industries. I'm not particularly convinced that intellectual property laws are anywhere close to a net positive for consumers or society at large.
foob··on How to become a bad theoretical physicist (2017)
This is absolutely the case. When I was in physics, I was told that the moderation policies had previously been more strict and were only relaxed after one of the quacks was rejected and murdered someone in retaliation. I don't know for certain whether that's true or an urban legend, but it was told to me by a physicist who would never joke or lie about something like that.

There's also viXra [1] which is like arXiv for fringe content that arXiv won't accept. One of the people who publishes there underwent a huge email spoofing campaign where they would send emails from one of my coworkers to others in the field promoting the papers. It was a really difficult situation because the coworker didn't know exactly who they were being sent to unless they replied, so it damaged his reputation without him getting a chance to explain what was happening.

[1] - https://vixra.org

foob··on Introducing chrome.scripting
I hope you're right about Firefox. I think their hand is forced in terms of supporting any API additions that Google makes because of Chrome's dominance among extension developers, but they can choose to maintain support for the manifest v2 features that are getting removed.

I would love to hear more about your personal project ideas that involve remote-browser. My contact info is in my profile, feel free to reach out.

foob··on Introducing chrome.scripting
What is being crippled here?

The ability to execute arbitrary JavaScript in content scripts at runtime. Remote-browser works by making it very easy to run code in content and background script contexts from a remote client. Typical browser automation tasks like filling out an input, clicking a button, or extracting the HTML of an element are accomplished by marshaling code and results between the browser and the client.

your point is that the API was stable with V2

My point isn't that the API was stable, it's that Google is moving towards removing key features from the API because they consider them to be too powerful. Blocking webRequest and executeScript are two notable examples.

foob··on Introducing chrome.scripting
I'm one of the authors of a browser automation framework called remote-browser that's built on top of the Web Extensions API [1]. The meaning behind the name is that you have access to a Web Extension API browser object in the client environment that gives you remote access to the full API. That offers enough power to do complex browser automation tasks along the same lines of what you can do with Selenium or Puppeteer, but simply using vanilla JavaScript and the Web Extensions API instead of tons of browser-specific implementation code and a custom automation API. If Firefox follows Chrome's lead on removing executeScript, then it will effectively kill the remote-browser project.

I find it very unfortunate that the capabilities of browser extensions are being crippled. I understand that there are significant security issues with browser extensions, but the same general purpose APIs that allow abuse simultaneously allow really wonderful and powerful things to be built. As a developer who loves extending and personalizing their browser, it's simply depressing to see that go.

[1] - https://github.com/intoli/remote-browser

foob··on Show HN: TeXMe – Create self-rendering Markdown + LaTeX documents
There's an open-source project called grip [1] that can render markdown to HTML that looks almost identical to the GitHub rendering. It can do either live preview or export to HTML. I use it for previewing GitHub READMEs while I edit them, and it does an excellent job for that purpose.

[1] https://github.com/joeyespo/grip

foob··on Police playing music while being filmed, seemingly to trigger copyright filters
From an article in Time [1]:

The first publicly funded, organized police force with officers on duty full-time was created in Boston in 1838. Boston was a large shipping commercial center, and businesses had been hiring people to protect their property and safeguard the transport of goods from the port of Boston to other places, says Potter. These merchants came up with a way to save money by transferring to the cost of maintaining a police force to citizens by arguing that it was for the “collective good.”

In the South, however, the economics that drove the creation of police forces were centered not on the protection of shipping interests but on the preservation of the slavery system. Some of the primary policing institutions there were the slave patrols tasked with chasing down runaways and preventing slave revolts, Potter says; the first formal slave patrol had been created in the Carolina colonies in 1704. During the Civil War, the military became the primary form of law enforcement in the South, but during Reconstruction, many local sheriffs functioned in a way analogous to the earlier slave patrols, enforcing segregation and the disenfranchisement of freed slaves.

From Wikipedia [2]:

For approximately 150 years, union organizing efforts and strikes have been periodically opposed by police, security forces, National Guard units, special police forces such as the Coal and Iron Police, and/or use of the United States Army. Significant incidents have included the Haymarket Riot and the Ludlow massacre. The Homestead struggle of 1892, the Pullman walkout of 1894, and the Colorado Labor Wars of 1903 are examples of unions destroyed or significantly damaged by the deployment of military force. In all three examples, a strike became the triggering event.

These aren't the only influences on modern policing in the US, but it's hard to argue that the history of US policing isn't deeply intertwined with slave patrols, union busting efforts, and more generally protecting the interests of the ruling class.

[1] - https://time.com/4779112/police-history-origins/

[2] - https://en.wikipedia.org/wiki/History_of_union_busting_in_th...

foob··on u/DeepFuckingValue and the GameStop Reddit mania
Does anyone know if it's illegal to lie about your holdings as an individual retail investor? I've seen a handful of screenshots on /r/wallstreetbets showing large holdings, but it would be trivial to modify the page source before taking a screenshot.
foob··on Python 3's F-Strings: An Improved String Formatting Syntax
It can feel annoying sometimes, but it's also nice that it prevents you from getting overly complicated with your string interpolations. Human readability is highly valued in Python culture, and things start getting hard for humans to quickly parse when you allow arbitrarily complex interpolation expressions. Assigning your complicated expression to a well-named variable first will usually make your code more readable, even if it's slightly more verbose.
foob··on 70TB of Parler users’ messages, videos, and posts leaked by security researchers
And now information about your account has been leaked, and will be lumped in with more nefarious accounts. I have a feeling that a significant number of people have similarly made accounts out of curiosity. I've had my parents and some less technically inclined friends recently ask me what Parler is because it's been in the news. These aren't people that fall under the alt-right categorization in the slightest, and they're also not people who would think to use fake information if they were signing up for something to see what it is like.

Even if the platform had terrible and dangerous content on it, we should avoid assuming that everybody on it supported that content, and we shouldn't celebrate their personal information being leaked.

foob··on Wobblepaint
Just a heads up, the viewport scrolls in Firefox on Android while you're painting. Everything still works otherwise, but it makes it hard to draw because the canvas is moving with your finger. I'm guessing it has something to do with the URL bar changing the viewport height because the extra space seems to be roughly the same vertical height.

Awesome work by the way, it's a lot of fun to play with.

foob··on T-Mobile: Are you blocking specific words and suspending accounts?
I recently ran into this sort of filtering when trying to share an AI Dungeon .link URL with a friend. It's kind of crazy that entire TLDs are blocked without any indication or warning.
foob··on Unicode-based scientific plotting for working in the terminal
It's not unicode, but there's also sixelplot [1] which allows matplotlib plotting in a terminal using sixel. The underlying pysixel library [2] unfortunately doesn't support Python 3.7+ however.

[1] https://github.com/kktk-KO/sixelplot

[2] https://github.com/saitoha/PySixel

foob··on Blogging Is Not Dead
If you want to see more high quality blog posts, then I highly recommend taking actions to help promote and encourage them. Sign up for a mailing list or subscribe to an RSS feed when you find a blog that consistently produces quality material. Post new or old content on Hacker News, Reddit, Lobsters, Twitter, and other communities where you think they would be a good fit. Upvote and retweet quality content that you run across, and flag stuff that's blatantly marketing spam. Leave comments on the blog or reach out to the author over email. Even as a single individual, these sort of actions have a much bigger impact than you might expect.

I used to blog extensively, and I've spent a lot of time thinking about this. The content I would write was loosely for marketing purposes, but I put a lot of effort into generating high quality content that I would genuinely enjoy reading myself. An article that I spent 50+ hours on and felt very proud of might have a 30% chance of reaching the front page of Hacker News. A fluffy post with a decent title that I spent only an hour or two on would still have a 10-15% chance of front paging. The way the math works out, it's simply much lower ROI to generate quality content. It's also a bit heartbreaking to invest a lot of time making something for other people to enjoy only for nobody to ever see it.

The second chance queue on Hacker News is a major step in the right direction, and I'm grateful for all the times where my posts were given another chance. A lot of great content still slips through the cracks however, and relatively small actions by community members would go a long way towards helping incentives align towards generating quality content.

← PreviousPage 2 of 9Next →