HN user

mr_luc

1,556 karma

whoami

-------

I've been following this community for a while, and in fact I attended the first Startup School conference -- and was almost certainly the only person to have arrived from the midwest via Greyhound bus. (I pestered a couple of very nice SFP alums about what they would do if they lived in a small town and had no co-founder ... I know, I know).

Startup School changed my life in an unexpected way: it finally clicked that I could change my location to make my life better.

This did not result in me moving to Silicon Valley.

Instead, for the next 7 years, I spent 9 months of each year in remote Pacific South America, doing volunteer work with friends - and surfing, quite a lot during the good season. Sometimes I'd return and do about 3-4 months of contract programming on-site with great teams, mostly in Ruby/JRuby and early Node.js in those years.

These days I work mostly remotely; I still have a home base down south, and I travel a lot with my better half. (I write mostly multi-user systems in BEAM languages since 2015, but I often do smaller projects in Swift, TS, Kotlin etc, usually with someone in my network or someone they've vouched for).

Like pg says, lots of good projects, to really do them right, have to be companies. For that reason I can't completely rule out doing a startup. But it'd have a lot to compete with, so it's not inevitable.

superluc@gmail.com

Posts2
Comments464
View on HN

Above was a quote from Carpenter, and the Court seems to have called out that the completeness of the record meant it recorded them, 'not only in public thoroughfares', but also private homes and doctor's office and so forth.

It does seem like that's an element, then -- this is not to say that it's sufficient for anything, since obviously a sufficiently good record of where one goes on public thoroughfares would fail the same test ('reliably reveals that so-and-so went to visit a specialist doctor, divorce attorney, and brothel all on the same day')

I'd be cautious for the same reason: thyroid cancers are also positively associated with obesity, and people who take GLP-1s are often obese.

Below a table, it says "adjusted for social deprivation index, hypo- and hyperthyroidism, and use of other antidiabetic drugs..." -- but nothing about obesity.

What if the GLP-1-prescribed patients tended to be more obese?

Wait you have an API now??? Is it open, is there a waitlist? I’m on a plane but going to try to find that on the site. Absolutely loved your demo, been showing it around for a few months.

I’m surprised to find this on the 3rd or 4th page of Hacker News! It seems pretty impressive —- of course, the lack of code on GitHub might be partly responsible for that; there’s so much interesting AI stuff happening that an impressive page of results without either a detailed explanation, or an executable one, could easily fall through the cracks.

Me too! I came looking for this sort of meta-comment. I've re-read the paper book a few times now.

What makes it my favorite is how clear Norvig's writing is. It's easy to follow (both when reading it in English, and when following its execution if you're a programmer), and it introduces important ideas so effortlessly that, years later, it will give you a chuckle.

Anyone interested in clearly communicating about technical topics, and with a knowledge of Lisp's nature and some idea of what programming in 1991 looked like, might be tickled to read Chapter 1; even its first few paragraphs are refreshing.

Oh, hey that's great! So in your case, you're re-using the Phoenix client, and thus the Phoenix protocol lives on so as not to break that. Makes sense.

Thanks for the answer -- the current SDUI renaissance is a beautiful thing. Cheers :)

Didn't mean to distract from the main discussion either -- pre-emption is something that more people should want, I think, so y'all making it the default for WASM stuff feels super valuable. And surely the sandboxing is really valuable to some people too. (But day-to-day I probably won't use Lunatic, whereas LiveView-based SDUI is my current shop-time project).

Ooh, LiveView pattern implementors! I have a question -- I've been tinkering with a custom Phoenix LV client in my 'shop time', so I wanted to ask: are you doing your diffs on a string-based representation, like they do in the internal Phoenix LV protocol? Or are you sending the DOM patches?

In the phx protocol, their diffs depend on having split the render into a tree of 'statics', 'dynamics', 'components', and on each change, that structure is patched, and needs to be recursively zipped to a string, parsed into a DOM, and patches computed against the previous DOM.

I've been playing with a new client as a way of understanding it, and it's definitely a certain amount of work! Fortunately computing 'what needs to change to reconcile 2 html-like DOMs' is a project that's been wrapped into libraries a few times in a few languages (phoenix relies on other people having done that too, via the 'morphdom' library in JS, and Dockyard recently open-sourced an ergonomic Rust library I'm using in my client).

So -- it's a lot of client work, but it optimizes for bandwidth. Cool.

But I've wondered if there could be any benefit to optimizing for granularity of patches, and simpler clients -- by sending 'just the patches', ie the list of DOM operations that cause the desired end state. My intuition is that the bandwidth 'cost' would be prohibitive, because the list of patches required to perform the morph could be quite large for a change that appears small in 'what string has changed' terms. (maybe harder to debug, too? lots of trade-offs)

I just don't have the energy to try it that way too, hehe, on the off chance that my intuition is off base and it'd actually help improve things (simpler clients, and maybe the bandwidth hit wouldn't be too bad?); it'd require deep server changes as well, when up until now I've only been writing a client. So I was curious what approach y'all are taking.

Prior/related art in the Rust space: I know there's a non-Phoenix liveview project, 'dioxus', with a generic DOM liveview implementation that several clients have been created for, by making a state machine that operates on that list of generated Patches; however I don't know what that one sends, whether DOM patches directly, or Phx-style diffs that need to go phxDiff -> zippedUpString -> dom -> morphPatches -> applyToDom.

I have a physical copy of this! My parents got it for me at a garage sale in the 80s when I was a little nipper.

It has a great programming language “tower of babel” illustration.

It wasn’t until years later that I realized it was a Soviet science ecosystem book. Some of the content should have been a giveaway …

I think that's too simplistic, which is why I used a vague term like 'scammer'.

Giving money to, say, a powerful criminal mob would be bad.

But giving money to someone who is simply dishonest or exaggerating when seeking donations from people looking to give locally? Not such a problem.

Moving money from people in the richest country to people in the poorest country is probably good, if that money gets spent (instead of hoarded) via normal economic activity -- paying people in a community in that poor country -- I'd say, regardless of the morals of the person through which it moved. Relatively small amounts of money can be turned into durable wealth in a poorer country; for instance, it can be the difference between a young family buying/building a house or not.

That's why the OurWorldInData essay mentioned that some use charities that focus on 'giving locally', even letting you personally contact and vet people.

An example of skimming I've seen firsthand: large-scale subsidized programs of house construction for poor folks.

The skimming that arguably occurred: the local program administrator's son, both of his woman's kids, several of his ex-wife's kids in another province, all got houses under this program. It's arguably skimming or corruption, because he and his family gained 6 houses from this program intended to help the least fortunate, out of maybe the 20 or so I know were built in the area. 'Arguably', because these people did qualify; they were adults living with other family who legitimately couldn't afford their own houses or rent, it was only an injustice in the sense that it disproportionally benefitted one family in the community.

But all of the money stayed in the area, and mostly in the country, because (in the words of the prefect of police in the movie Casablanca), he was 'only a poor corrupt official'; no one in their family had even attended local universities at that point. The construction and trade workers were local, the materials were local, and his now more-materially-secure family was engaged in economic activity locally.

It's possible, of course, for scammers to organize large-scale fabrication of 'sob stories' and I'm sure it's happened and will happen, but hopefully the scammers are 'sufficiently local'. :)

That's fantastic! Although personally, while I get a chuckle out of reading that excerpt, I can't actually understand the point of view I'm intended to chuckle at.

I don't want my life's work, or anyone else's, to be engaged in a struggle to change mucky 'institutions and opinions.' Eww! Gross! Honorable, necessary, maybe. (But only 'maybe', I wouldn't assume it about those who claim to be engaged in such a struggle). It's not completely implausible that realpolitik can be creatively fulfilling, worthwhile, and life's calling. But I'd chalk that up to humans being able to imbue even the worst situations with meaning, rather than it being particularly attractive as a life's work.

If I think of that question:

    Suppose [...] that all the changes in institutions 
    and opinions which you are looking forward to,
    could be completely effected at this very instant:
    would this be a great joy and happiness to you?
I'd answer 'yes', and I think a lot of HN readers would too (aside from "Monkey's Paw"-style unintended consequences). I wish we had a safe, abundant world for everyone, where all respected each others' rights -- so we could get on with the best parts of human life.

The best parts of human life are limitless, so the Mills' thought experiment can't touch them: creating, and sharing.

Creation is limitless, and there is no end-game, nor can there be. The question falls apart immediately: "imagine that everything that should be created has been created." It would be nonsensical -- whether in a cave, in the present day, in a 1950's sci-fi future or some (implausibly) transcendent Singularity, there are always things that you don't know, and thus new things you can do with the new knowledge once you acquire it. And thus there will always be new things you can experience and share with others.

Edit: and as a note about EA specifically, so as not to derail one of my favorite recent HN comment sections.

I'm a fan personally, and my experience is that 'expat' living is a good way to help accomplish it, without any particular misery traps (10 years out of the past 18).

Specifically, I align with the 'Our World In Data' take, about how inequality globally is so much more than within rich countries -- so any 'sticky' ways of funneling your money into poorer countries is good, and you don't even need to worry too much about getting scammed, as long as the scammer legitimately lives and spends in a poorer community.

And then if you're actually living in that poorer country, while working in a richer one, you're 'funneling money' there, by and large not competing with the locals (except in things in which there is already effectively global competition, like, say, oceanfront property/rentals). And you can also develop excellent 'local knowledge' in order to give more targeted help, which is rewarding -- but that kind of 'give a kidney' stuff isn't scalable, where remote work is.

Oh, hey! I used Dokku back in the ... I want to say 2012-2013 ? and missed multi-node stuff a bit (nothing that couldn't be scripted around) so this looks cool.

I do see that it shouts 'EXPERIMENTAL!', so I guess it's 'experimental, but official'.

Heh, funny, I'm implementing this exact thing at the moment, oddly enough -- rather, implementing a security check that provides that same guarantee you mention, Mixed Script protections.

In Unicode spec terms, 'UTS 39 (Security)' contains the description of how to do this, mostly in section 5, and it relies on 'UTX 24 (Scripts)'.

It's more nuanced than your example but only slightly. If you replace "German" with "Japanese" you're talking about multiple scripts in the same 'writing system', but the spec provides files with the lists of 'sets of scripts' each character belongs to.

The way that the spec tells us to ensure that the word 'microsoft' isn't made up of fishy characters is that we just keep the intersection of each character's augmented script sets. If at the end, that intersection is empty, that's often fishy -- ie, there's no intersection between '{Latin}, {Cyrillic}'.

However, the spec allows the legit uses of writing systems that use more than one script; the lookup procedure outlined in the spec could give script sets like '{Jpan, Kore, Hani, Hanb}, {Jpan, Kana}' for two characters, and that intersection isn't empty; it'd give us the answer "Okay, this word is contained within the Japanese writing system".

The Sucker Complex 5 years ago

The author might be assuming public knowledge that some kinds of corruption in the United States, for instance, are getting worse:

See [1] https://foreignpolicy.com/2021/01/28/report-transparency-int...

Also, it might be hard for them to mention the strongest examples of brazen corruption in leadership without being accused of being political, so I don't blame the author for using the even-handed examples drawn from all quarters -- which does make it easier to characterize as cherry-picked noise -- when the thesis of the article is that leadership, a necessarily tiny fraction of the 1% in the public spotlight, are growing increasingly shameless.

But the author well could have mentioned certain boundary-pushing, prosecution-taunting illegality by political actors in the United States, including actions rescued only by equally brazen presidential pardons -- actions in the public sphere that are almost without precedent.

Those kinds of actions, so few in terms of data points, could be characterized as 'noise' for their rareness, but the author's thesis (which seems sufficiently plausible not to be discounted out of hand) is that extremely brazen action by different kinds of leadership are at least leading indicators of institutional inability to deal with corruption and wrongdoing, preceding spillover into society at large -- and that maybe, due to the outsized impact that leaders have on society, those actions have an element of influence or causation.

Well, a thesis like that doesn't, to me, mark the author as being morally dubious himself for having it.

If a society is getting more corrupt, over the short-term, (see [1] for proof that at least some well-informed people think this one is), then an increasing number of individual members of society will be corrupted.

The author simply draws an obvious corollary that we may not have considered: hey, reader -- we are among those members of society. We should assume that we can, and will, be influenced if corruption increases, or if we're exposed to very public and visible examples of it.

That may be uncomfortable to consider, but I'm glad the author helped us consider it. Is it really only other people, other people's children and families, who are corrupted if they live and grow in a society in which corruption is on the rise?

(It's clearly an opinion piece, and I'm not sure how HN-ish it is, but it doesn't seem like a particularly trashy one to me)

(Man I've liked these first couple of articles).

I see a few comments saying "this is stuff the rest of the world has had for a while now."

That's probably true to some extent. But it undersells the value being reported on, because the US market is a valuable one.

'Surprise! The richest, biggest economy in the world had banking/financial systems that were inefficient in X, believe it or not -- but that's in the progress of being fixed, which means Y is now more possible/profitable.'

Citation needed -- and that silly TechCrunch article isn't a citation.

They raised a howl because the plans say they will start on a power plant, whose impact is considered -- but 'oh my goodness, where will the gas come from? A well? Trucks? Oh my!'

Well -- that literally may not be known yet, as is when and whether they'd get close to running it at anything like capacity.

And that's not a problem; Texas has power plant regulators, and pipelines have their own paperwork and process.

The FAA regulating this is a bit funny anyway. :) Eventually that'll change, but right now they're doing a good job handling these weird corners of their responsibility with grace.

32 Bit Real Estate 5 years ago
    This is a hard market to time. Nobody 
    believes the Internet will be IPv6-only 
    within the next few years. There are 
    credible people who believe IPv4 addresses
    will be scarce and useful indefinitely. 
    We might put money on you getting away 
    with an IPv6-only app 20 years from now.
    But we'd have said that 20 years ago, too.
This was interesting to me, so I looked up adoption metrics.

In 5 years (2016-2021) it went from 9% to 35%.

Source: https://www.google.com/intl/en/ipv6/statistics.html

TL;DR: it's being adopted at 5% of internet traffic per year, over the past 5+ years.

Once it gets to 80% or so, some number, there plausibly could be a flood of "we don't support IE6" behavior where adoption accelerate.

But that would still be 9 years, if the rate of adoption didn't accelerate at all.

... which, I guess, means I should just look around github for "wavelet compression" and see what code pops up, since that search for good encodings will be done in any of those.

--- Edit: this one seems simple enough to learn from, it's minimal, MIT licensed, audio-focused, written in Julia, and references the course material that it's based on:

https://github.com/nicholaskl97/wavelets

It, uh ... like lots of scientific code, it has a lot of single-letter variables. :D But if one was to google up a few acronyms ('DWT'), install Julia, get it to run, and then re-implement it in another language, my feeling is that you might understand wavelets pretty good, no? Or be at least be well-equipped to understand more interesting uses of wavelets?

(I'm posting this because I might use some 'shop time' doing approximately that, so I would definitely appreciate any HN comments telling me 'consider learning from $some_other_example instead, for $some_reason.')

This is the stuff I want to know more about, because I understand my analogies/mental model, but I have only crude/naive 'code mental model' of how these kinds of things are implemented

When you say:

    When you scan this wavelet across the audio file
Is that literal in code?

Apologies for the naive code analogies -- your comment makes me think of something like an XLA 'reduceWindow' operation (edit: or an OpenCL kernel), where a wavelet-sized 'window' is slid over the input, the difference is computed for each data point -- and then (waves hands: probably something smarter than just a) 'cumulative sum' to see how close/different is is.

(a) is that on the right track/what you meant by 'scanning the wavelet across?

(b) what about transforming the wavelet -- to different scales, etc?

This seems like the kind of thing that's actually like a search problem, heh, where you'd need to slide it over the input many many times, and where it could conceivably benefit from (waves hands) machine learning techniques as a result, to come up with something that does the search for a good wavelet encoding more efficiently based on the input.

So if I'm understanding this right -- if I have a stream of numbers coming in forming a squiggly line, and I have a bucket of these wavelet shapes, I can pick up wavelets and stretch and squeeze and resize them and overlay them on my line, and ... use them to characterize that squiggly line? Working as feature recognition and also serving as a way to compress it? So instead of 20k data points, I have a sequence like 'mexican hat, mexican hat', and maybe elements in the sequence are different sizes and overlap?

(a) if my intuition is super wrong I'd love for HN to correct it, heh. (b) long shot, but anyone have links to code? It's HN after all -- maybe some commenters in this thread are aware of cool/idiomatic/simple/etc uses of wavelet code in open source software.

(I know of a bunch of cool uses they've been put to, from JPEGs to the spacex fluid dynamics presentation about using wavelet compression on gpu, but I've personally never used them as a tool for anything, and it'd be fun to learn about them with code!)

    Nortel was the main reason this all happened. 
    They were the ones that were doing all the cutting 
    edge wireless network research and when they 
    collapsed Huawei was the one that executed the 
    best in the wake of said collapse.
Err ... not sure if you're aware, but it's common knowledge that Nortel's sensitive IP was hacked by the Chinese.

In fact it went on over almost a full decade, from the late 1990's to 2009 when it was brought widely to light. [1]

    Say what you will about Chinese companies but 
    damn some of them execute well.
Well, I mean, especially the ones benefiting from nation-state level corporate espionage.

Of course empires stealing tech from each other has happened many times historically; we don't have to all act shocked that it can happen.

But neither is it irrelevant that it did, in fact, happen, and specifically in the case that you mention of Nortel and Huawei.

It's definitely not just a simple case of "generous credit", though the wider point about Western governments not supporting their core digital infrastructure companies in strategic ways during those years is certainly correct.

---

[1] https://mindmatters.ai/2021/04/why-do-huaweis-inventions-loo... -- well-sourced article referencing much of the earlier reporting on the matter

Hmm -- I just read the article, and it seems pretty pro-bitcoin to me ...

    "They have to take a bus to go to a physical location 
    to pick it up, and there are gangs that hang out 
    around those offices. They know what people are 
    going there for, and they basically rob them."
And
    “Remittances are one area where the status quo 
    in our legacy financial system is terrible"...
And
    ... Alex Gladstein, chief strategy officer for the 
    Human Rights Foundation
    
    “That’s drop-dead stunning. It’s an 
    incredible humanitarian improvement.”
The story of the article, and the headline, seems to be: old-timey remittances are on the ropes; can't compete.
Weird Languages 5 years ago

I agree that there aren't a ton of convincing examples mentioned that aren't relevant to people who already agree w/the value of lisp-style macros -- but if you're interested I used the example of erlang when responding to a comment above: https://news.ycombinator.com/item?id=28343140

FWIW I do actually agree w/pg about macros; I use them day-to-day for more mundane things than his impressive fully-bottom-up approach to programming. But each time I do use them, I feel like "thank heavens I don't have to reach for some weird external codegen tool to do this".