HNHacker News
TopNewBestAskShowJobs

apgwoz

7,308 karma · joined February 20, 2007

Personal: - http://sigusr2.net/ - My topcolor is #ccff66

Email: - web@apgwoz.com

Elsewhere: - https://github.com/apg

[ my public key: https://keybase.io/apg; my proof: https://keybase.io/apg/sigs/FVP39qxp7ptdAG2Nfeigd5-mN2nceMwWnPl2-EIhP4I ]

submissionscomments
apgwoz··on Our Plan for Python 3.13
> Also, there aren't good programmers in Python core dev.

You seem pretty confident that you know what you are doing.

apgwoz··on Had a call with Reddit to discuss pricing
Why do you believe Reddit (or Twitter) knows less about its users? Users on Reddit literally self select into interest groups by visiting, (and with 100% confidence) subscribing to a subreddit. Someone not interested in surfing is not going to subscribe to r/surfing. But someone who casually browses r/surfing, or subscribes to r/surfing is very likely to have, at least casual, interest in it.

Twitter is similiar in that you’re self selecting who to follow, and who to engage with. Things you engage with have hashtags, have observable topics and categories that they generally post about, etc. If you’ve ever looked at the categories that you’re in after doing a Twitter data dump, you can see they know a _ton_ about you. What I don’t remember seeing in there is “confidence,” but it might just be that those numbers aren’t surfaced to users, or that it’s encoded in the ordering (and I don’t remember it).

The point is, Twitter and Reddit have largely the same types of signal that Facebook does, but certainly way less than Google. Facebook’s user engagement might be higher, but I’m willing to bet that the number of people using Facebook to follow their friends, and not random businesses and other accounts is greater, thus limiting confidence in understanding about someone’s preferences. What I mean is that my friends might never post about politics, and I might not follow political figures, or other talking heads, that suggest my affiliation…

In Google’s case, they drop a “pixel,” for tracking purposes, on 75% of the web (inflated estimate for effect), and analyze every accessible page on the internet with the goal of understanding what it says. As a result, they have far greater reach in what they can and do know about you…

apgwoz··on Lua: The Little Language That Could
Ugh. I meant `;` is unquote-splicing, which is an operator within a quasiquote. Sorry for my brain fart.
apgwoz··on Lua: The Little Language That Could
None of these options lift the `;` into something I have to parse as code, not documentation, so you’re all good!

:)

apgwoz··on Lua: The Little Language That Could
I have ignored it because quasiquote is `;’ and that just pisses me off. I should not have such a strong reaction, but I do.
apgwoz··on JeanHeyd Meneide's response to “Why I left Rust”
But, a few months later io.js merged back with node. So, “it worked,” but was a giant mess.
apgwoz··on Emacs Web Buttons

    (defservlet hello-world text/plain (path)
        (shell-command (concat "php " (file-name-nondirectory path)) (current-buffer)))
Or similar should do the trick. :)
apgwoz··on Favicon Dino Game
So, I did some investigation and know what's broken, but I don't know why. The game uses `canvas.toDataURL()` to replace the favicon for each frame. It draws it, essentially like this jsfiddle https://jsfiddle.net/trLkd1ys/

The fiddle works in both Chromium and Firefox for me (a 16x16 green filled square), but the data URL produced by Firefox results in vertical line rainbow. In Chromium it works fine.

FF: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAQUlEQVQ4T2O83OR55grL9sMTZ1tdefydOU2t5o50tbH8dc+a8h8pYZ8fZ71cboZPnnHUgMejYfB5NAyAeWUYpAMAFY8jzzH0m5oAAAAASUVORK5CYII="

Chromium: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAB5JREFUOE9jZGhg+M9AAWAcNYBhNAwYRsOAYViEAQCDTRgBEA8acQAAAABJRU5ErkJggg=="

https://onlineimagetools.com/base64-decode-png can be used to quickly see if you're inclined.

apgwoz··on Favicon Dino Game
Hmm. Same version for me. The only difference is my FF comes from a Snap. Perhaps that has something to do with it.
apgwoz··on Favicon Dino Game
It displayed a random rainbow of vertical lines for each frame. Not sure why, and didn't attempt to debug.
apgwoz··on Favicon Dino Game
Weirdly did not work in Firefox on Ubuntu. Switched to Chromium and got 1182 before deciding to quit. The framerate was pretty slow, which I think is the only reason I got > 1000. :)
apgwoz··on I wrote a tool in Go to write Sequence Diagrams in Go
Saws certainly can project a laser beam across the cutting surface, and don't get me started about AI powered CNC cuts. I mean, just the other day I found the words "WHY ARE YOU IGNORING ME?" CNC'd onto a piece of plywood I left in my shop. I didn't do that by hand.
apgwoz··on A vegan leather made of dormant fungi can repair itself
> coming back to a solid mass of mycelium.

So what you are saying is that I never have to buy clothes, or materials again. Long live growable clothes!

apgwoz··on Python-based compiler achieves orders-of-magnitude speedups
> and the lack thereof makes me a bit skeptical to say this will become successful when others did not.

Success of projects like this is not usually based on merit, but on how many people you can convince to go along with it until it eventually becomes a thing of its own sustainability. So, the recipe here would be to:

1. Be "good enough" and easy enough to get started such that early adopters have a great first experience speeding up something important to them. (hook them) 2. Be open and friendly to potential incoming contributors, letting them land changes, have a say in the discussion, and generally be part of it all. (community build) 3. Encourage people to share their successes and hopes / dreams for how great $X is on their blogs, HN, social media, etc. (propaganda) 4. Goto 1.

In this case, step 3 will work best by highlighting that "You actually don't need most of the dynamic features of Python" as the central narrative.

One big caveat is that Codon choose to not use Python semantics for `%` so the basic test of `print(-2 % 5)` fails unless you run it with `-numerics=py`... which should just be the default behavior -- and a great first community patch / discussion!

apgwoz··on LLaMA: A foundational, 65B-parameter large language model
LLaMA is short for "Large Language Model Meta AI" -- I don't get how, but I guess the "fakeronym" was a brandable, recognizable word, and close enough that they went with it?
apgwoz··on I had ChatGPT write a Decemberists song and recorded it
You sound like a prompt engineer.
apgwoz··on Interview with the founder of Teenage Engineering
I’m not knowledgeable about synths and such (I wish I had more time to learn music, though), but I always look at this stuff because the devices are aesthetically beautiful — pluto as well. It’s probably almost a shoo-in that if you focused on aesthetics you could sell out a small batch of modular synths with the most basic beep / boop making capabilities.
apgwoz··on Ask HN: What's the best lecture series you've seen?
> Pi degrees would imply your outlook barely changed at all.

And what if the OP knew nothing of maths before the course? A mistake it was, but I think you’re overindexing on (potentially) a brain fart.

apgwoz··on Ask HN: Why did BASIC use line numbers instead of a full screen editor?
I prefer that people get the joke (and to use languages where this isn’t a problem).
apgwoz··on Ask HN: Why did BASIC use line numbers instead of a full screen editor?
I prefer to name my labels L00001, L00002, and so on. One for each logical line of code.

(Why yes, I am suggesting that there’s no difference between the two, and so “strictly better” is …)

apgwoz··on Bike helmets: what the science says about an American safety obsession
The impression that I got was helmet laws make people feel like biking is default unsafe, which leads to less bikers, which leads to less visibility and less isolation of bikers (no demand, no tax dollars spent on infrastructure).

If you want safe biking, you need visibility and isolation. The visibility here is helped by, say, biker wearing blinking lights and reflectors. But also, just having constant presence of bikers on the road such that drivers get used to sharing it. The isolation is space between bikes and 3000+ pound hunks of accelerating metal, e.g. dedicated bike lines / bike barriers.

apgwoz··on Bike helmets: what the science says about an American safety obsession
I don't think anyone is saying "don't wear a helmet." What's being stated is that you can't stop at "wear a helmet," and doing so does more harm than good by creating a false sense of safety. A helmet will protect you from _some things_, no doubt. It won't protect you from a car whose driver just dumped his soda in his lap, and swerves when looking down to see the damage.

The article cites the Netherlands, where bicycling is extremely popular, but helmets are not. The "safety" comes from the infrastructure which reduces hazards that make bicycling unsafe. Visibility, and isolation from 3000+ lb metal objects are the two most important things.

There's a fun catch-22 here. You need more riders to create safety (groups of cyclists are visible. large groups of cyclists can advocate for bike lanes, etc), but without safety you can't attract new riders.

apgwoz··on Debugging Lisp: fix and resume a program from any point in stack
Not only can you redefine classes and functions at runtime in CL, my understanding is that all references to them will automatically be updated to the new code (I think unless it’s compiled?). It was already mentioned that Python’s classes come up short here, and I bet there are lots of cases where functions, too, miss the mark.
apgwoz··on Twenty five thousand dollars of funny money
Go does pretty good with time. You could replicate that for distance, too.
apgwoz··on Ask HN: What do you like/dislike about Golang?
> Error handling based on comparing strings, to find out the real cause.

I'm not a fan of Go, at all, but credit where due: they did make this slightly better with error wrapping (https://pkg.go.dev/errors#Is). Of course, this doesn't work unless errors are wrapped, instead of blindly concatenated, forcing you to do string matching more often than not. :)

apgwoz··on Om is a novel, maximally-simple concatenative language
It’s heavily inspired by Joy https://en.wikipedia.org/wiki/Joy_(programming_language) from the looks of it.
apgwoz··on Ask HN: What's Your Biggest Regret?
> Your car's windscreen is 100x bigger than the rear view mirror for a reason.

Great metaphor! It reminds me of a song lyric: “The Future’s so bright you’ll have to wear shades.”

apgwoz··on Tell HN: Meetup.com is offering abandoned meetups to anyone willing to pay
As someone who spent 2.5 years working at Meetup during the early '10s (no idea what it's like today, mind you)... But:

Organizers were never able to see anything but basic information about users. Definitely not email. Mostly historic RSVPs, a userpic, and whatever information provided when you joined a group or RSVPed (organizers could ask questions in both cases).

Despite what people seem to believe, the _vast_ majority of Meetups are about topics that aren't technical at all. There have always been technical oriented meetups, of course, and that category used to have a lot of user volume for events, but most of the meetups on the site were for hobbies, support groups, hiking, biking, dogs, etc, etc, etc..

Let me also say that _most people_, at the time, resisted changes to the site. Redesigns (and there were a few attempts while I was there) would result in crushing amounts of support tickets, and social media campaigns threatening the business. It was wild! During this time:

1. Meetup did usability studies (and even paid for them) 2. Ran lots of A/B tests, and did so properly (and by this, I mean, we waited until the statistics gave us actual confidence) 3. Were generally very conservative about roll outs or design changes, must to the chagrin of everyone that worked there.

Meetup also had (and likely very much still has) a really interesting problem. Most people want to passively join a group and show up to a few meetups when their schedule allows. But! Organizers who don't organize meetups, or who aren't into it anymore, mean that the group exists but doesn't do anything and sits inactive. There's no worse feeling in the world than finding a group of potential shared interest holders only to realize that the group doesn't actually do anything, and maybe never has.

And here's the problem. When I was there, we were about 100 employees, and we _all_ were there (not for large sums of money, let me just get that out of the way) because we believed in the mission: "A Meetup everywhere about (al)most anything." This company was completely mission driven!

So! What do you do? You want organizers to have "skin in the game" and be passionate about what they're doing so that the rest of the group actually has a good experience. Well, you charge the organizer! When they run out of passion, they stop paying, someone else maybe steps up! It worked so well, soooo many times, and it was a big piece of the "how do we make money?" problem.

Meetup was so unique back in those days. There were discussion boards, sure. But, we only ever felt successful when actual people went to actual meetups. It was the best feeling in the world to see thousands and thousands of people getting out in the world and meeting their neighbors to do simple things (and not so simple things, like finding the 5 other people in your state that suffered from the same chronic medical conditions), and if you were ever in the office on Broadway, you couldn't forget that feeling, cause you saw the thousands of pictures of happy people meeting up all over.

apgwoz··on Silly Camera Numbers
Even better advice can (probably) be attributed to Weegee: "F8 and be there."

https://en.wikipedia.org/wiki/%C6%91/8_and_be_there

apgwoz··on Tom Lord has died
A few of those links lead to actual tarballs, but sadly, the pika one does not. :(
← PreviousPage 8 of 34Next →