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

Cool project! Looking at starting a group of people to lobby my small city to invest in muni fiber. Would love to see what you have if it ends up on GitHub.

Quick typo fix on the main page: neigbors is missing an “h” (neighbors).


This is possibly the best description of my development process I’ve ever seen.

I’d add “staring into the distance” alongside the mumbles (yes, when pacing, that often means I run into corners of walls, couches, etc).

I think of it as iterative development in my head, and it’s often focused on finding the fastest path to proving that an architecture or implementation is wrong; when I find it hard to prove why something won’t work, then I begin to explore in depth the idea and have a pretty big running start on the code, which flows a lot more quickly when I’ve done this than when I just sit down and start typing.


One of my favorite spa/hotels for a weekend retreat for my wife and I has absurd waitlists — takes a few months typically to reserve 2 nights. However, they have a 7 day cancellation policy that leads to a U shaped availability curve for rooms.

The hotel website itself is inordinately difficult to search more than 1-2 nights (each day takes 6-8 clicks to search), but it’s all queryable through an undocumented API, so I wrote a small CLI tool in Crystal that can scan the next 60-90 days (configurable, of course) to see if there have been any sudden openings.

It does it all in parallel, so I can find out within about 10 seconds if there are any rooms available within a 30 (or longer) day range.

It’s already helped booked one wedding anniversary trip and one special getaway for 2 friends. I don’t use it often, but it’s wonderful to have around.


Reminds me of a similar hack I did recently. I wanted to book tickets for a show in Vegas, and for whatever reason the “ticket bundle” which included the show plus extras was about $20 cheaper than just the show on its own.

The only problem was selecting the bundle would automatically choose the seat (on the far side which weren’t good), skipping the seat selection modal.

I realized that if you had a seat in your cart, it would reserve it for 15 minutes and the bundle would pick the next available seat. Since I wanted central seats, I wrote a simple Puppeteer script which selected the bundle in multiple browser instances, reserving all the unwanted seats until mine was finally available.


> but it’s all queryable through an undocumented API

How did you go about querying this?


Mostly recording and replaying the network request logs through Chrome and comparing diffs as I clicked around, looking at headers and URL params generated from clicking to get a high level picture for how it all fit together.

They didn’t do anything fancy in terms of auth, etc, so the only thing that was challenging was guessing some additional parameters and formats for things like number of nights, etc., once I had the basic structure.

Once I had a basic search working, the rest of it was pretty straightforward. It works for other hotels that use this booking software as well, but I didn’t bother to go down that rabbit hole much further as I didn’t want to encourage adversarial techniques and I only need to use it a few times a year.


My guess is the developer tools. Maybe the web page makes you open a date dropdown for "check-in" > select check-in date, same for checkout, hit "search", and then a pop-up would open saying "sorry, nothing available", which you'd have to dismiss before repeating the process, but in the developer tools you might be a able to see that there's an XHR query which is just something like /searchAvailability?checkIn=20230313&checkOut=20230315/&guests=2, and OP's script could just modify the dates and hit this request URL.


Yep, pretty much this along with some guessing at the stuff that was obfuscated (mostly response structure and the meaning of some of the data).


REST APIs can be queried easily enough with curl or a gui like Postman. The more impressive bit is working out the API interface.


Crazy that it’s been 5 years already. Time flies.


I’ve been developing in Crystal a lot lately, and it’s a very interesting middleground.

You can still monkey patch, but having type safety and compilation gives you guarantees that you don’t get when you do the same thing in ruby. What you get out of the box is flexible, but still doesn’t require “discipline” in the same way Rails is.

The downsides right now are the small community and compilation times are an impediment to new dev UX for sure, but it’s definitely caused me to rethink what I really value from ruby.


Ironic that the current trials will take 5 years, given how many times T1s have been promised that a cure is “5 years away” (seriously, it’s a running joke) — but this does look promising.

Looking toward to talking to my endo about his views on this and for the first time in a long while, feeling slightly hopeful that this may not be a lifelong, incurable disease. Unfortunately if the only viable path for now requires immunosuppression, it’s going to be a non starter for many like myself, but it’s still a legitimate breakthrough that can hopefully lead to other avenues.


Same here. I’ve enjoyed many of his other books (including the sequel) as well, but Children of Time was an absolute masterpiece.


I've not looked at spiders the same again...


She even entered a drag contest for the best lookalike. IIRC she came in 4th place.


There are some interesting hypotheses around microtubules and their potential role in consciousness; this directly ties in with your comments around anesthesia - I've certainly had a similar subjective experience under anesthesia, when compared to other forms of consciousness disruption (sleep, psychedelics, and seizures).

This talk is definitely out on the fringes, but I find it interesting for stimulating thinking about a lot of this: https://www.scienceandnonduality.com/video/a-brief-history-o...


~100μg.


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

Search: