Hacker Newsnew | past | comments | ask | show | jobs | submit | gamache's commentslogin

Best of luck on your journey! I made the transition from Friendster to MySpace when a bunch of my top 10 Friendster friends were dead.

Anyhoo, this will be a tough climb for you. Ello captured a lot of what you are going for, at least for users who were willing to part with Google+. Vine still rules for short-form video, Dodgeball still wins for mobile-first, there's Meerkat and Justin.TV for streaming, SixDegrees is still at it, and (let's be honest) most of us are still on AIM. I hear good things about Path too, they have an inspiring CEO and a unique product. Niches are the future; there's even a startup trying to help Harvard nerds get laid. I wish you the best!


10/10. Would use this time machine.


Path was awesome!


It really was. It had a great UX, and was just a better experience.


Cool project! But one nitpick.

K&R C has no concept of THEN. That's a peculiarity of the ZIP source code, defined as a pure no-op:

    #define THEN
https://github.com/ChristopherDrum/pez/blob/main/zip/infocom...


Oh wow, thank you for the clarification. I completely didn't even consider to audit for that in the ZIP source (though the ALL CAPS maybe should have been my hint). I'll update the post with this and another small thing another player found.



Zildjian cymbals are not any more prone to breaking than other manufacturers'. Whether they sound good to you is another story. :) It's hard to make that judgment about a product line so big and varied anyway.

These days I'm playing Sabians, mostly AAX. Not out of brand loyalty, just cause they all sound pretty good for what I do (loud, fast rock). But I've had a handful of Zildjians that I really enjoyed (wish I still had the 24" A Ping Ride that I broke in high school), some Paistes, a Meinl here, a Byzance there...


Tuilet: a TUI for Toilet, the premier ANSI text generator, written in Rust. https://github.com/gamache/tuilet

Are you an IRC shitposter? Isn't it hard to experiment with Toilet/Figlet fonts and flags? Well _not anymore._ Presenting Tuilet: a front-end to Toilet written by us, for us.


Nothing, really. It's food-grade plastic and it will come out the other end.

Now, what happens if you seal high-pressure hydraulic oil systems with it? Let's find out! https://www.youtube.com/watch?v=D1RYVSmuOmc


What if it's chicle, does it differ?


It would be an achievement on itself to find true chicle, the vast majority of chewing gum worldwide is synthetic rubber.


There are several chicle gum companies out there. I forget the name, but I bought some. It comes in pellet form instead of sticks or bricks.

Edit: "Simply Gum" is the company I tried.


Why is the pressure gauge full of liquid? (Presumably water? but why / how?)

Quite the talker there :)

Edit: Got it Shog9, thanks!


Probably not water. Purpose is to dampen vibration, making the needle easier to read and possibly protecting the mechanism a bit. https://tameson.com/pages/liquid-filled-pressure-gauge


> Turns out sometimes you gotta use these "orphan" functions even though they logically belong to a certain type (in this case, why isn't tuple_size called like Tuple.size or something?)

tuple_size/1 is a guard, and guards are built-in. The compiler itself uses them. Unlike regular functions, you are allowed to use guards in a function head, like:

    def foo(my_tuple) when tuple_size(my_tuple) == 3 do ...
Official docs: https://hexdocs.pm/elixir/1.16.3/patterns-and-guards.html#gu...


Ahh, that's it. I said in a sibling comment that I had no idea why it was like that. But reading this made me realize that at one point I did know why! Completely forgot this bit of knowledge in the last year of not using the language.


Oh yeah, FWIW a "built-in" function or macro just means it's a part of the Kernel module, which is automatically required+imported in Elixir modules. So it's not orphaned, it's just in the one special module that gets brought in by default.


Love seeing Vint Cerf reduced to a “Google executive”


> ...listing any given prefix is essentially constant time: I can take any given string, in a bucket with 100 billion objects, and say “give me the next 1000 keys alphabetically that come after this random string”.

I'm not sure we agree on the definition of "constant time" here. Just because you get 1000 keys in one network call doesn't imply anything about the complexity of the backend!


Constant time irregardless of the number of objects in the bucket and irregardless of the initial starting position of your list request.


The technical implementation is indeed impressive that it operates more-or-less within constant time, but probably very few use cases actually fit that narrow window, so this technical strength is moot when it comes to actual usage.

Since each request is dependent upon the position received in the last request, 1000 arbitrary keys on your 3rd or 1000th attempt doesn't really help unless you found your needle in the haystack in that request (and in that case the rest of that 1000 key listing was wasted.)


You’re assuming you’re paginating through all objects from start to finish.

A request to list objects under “foo/“ is a request to list all objects starting with “foo/“, which is constant time irregardless of the number of keys before. Same applies for “foo/bar-“, or any other list request for any given prefix. There are no directories on s3.


If you use computers, Curl is awesome. https://curl.se/


If you use a router, manually connecting wires to send data is awesome


For JSON based REST APIs httpie is somewhat easier to use.


In the same sense that no one needs a graphics editor when imagemagick is available via the command line.



Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: