HN user

dzello

87 karma

developer advocate and indie hacker

Posts16
Comments30
View on HN

Resonates deeply with me. I’ve moved personal data out of ~10 SaaS systems into a single directory structure in the last year. Agents pay a higher price for fragmentation than humans. A well-organized system of files eliminates that fragmentation. It’s enough for single player. I suspect we’ll see new databases emerge that enable low multi-player (safe writes etc) scenarios without making the filesystem data more opaque. Not unlike what QMD is for search.

Orbit (https://orbit.love/) is hiring software engineers to build tools for developer advocates, community organizers and open source maintainers. Companies like Apollo, Nuxt, Typeform, and CircleCI use us to understand & grow their communities. Team is 3 today, 2 engineers. We have 4-5 roles open and are excited to build lots of product and APIs in 2021. Our tech stack is Ruby, Rails, React, Alpine.js, Tailwind CSS, and lots of other goodies. We're pragmatists who care a lot about making an excellent product and learning fast.

To learn more about who we are, our engineering culture, and whether this is the right place for you, read our Key Values profile: https://www.keyvalues.com/orbit. Cheers & good luck with your search.

Good look at the evolution of Jamstack and how much "stack" is required for each different architectural pattern. Really enjoying the conversations and graphics embedded throughout. Thank you for saving some of the best for last - the Teastack! :)

Not being on the product or engineering team can definitely be a challenge. What I learned at Algolia is that it's critical to build trust between engineering and dev relations. Dev rel needs engineering to be engaged in community initiaves (and to help code stuff) and product/engineering can get great feedback from dev advocates working in the field about the real developer experience :)

The encryption is for security. The upload is so we can front the S3 bucket with a CDN for fast download of the binaries from any region.

Thanks for the comment simonw. It's not directly mentioned in the article but we're also using the API clients to implement a DNS fallback strategy. If the hosts are unreachable through their primary hostnames (.algolia.net), the clients try alternate names (.algolianet.com) that are hosted by a different provider.

Here's a link to information about Algolia's ranking formula - https://www.algolia.com/doc/guides/relevance/ranking. One thing to note is that 'textual relevance' is considered before 'business relevance'.

One component of textual relevance is the presence of typos. A typo-containing match (error instead of Errol) carries less weight than a typo-free match, so it will be ranked lower even when the business relevance ranking (popularity in likes/comments) is higher.

Algolia is an API so each implementation can be a bit different - developers have the ability to tune the relevance formula to better suit their needs. So don't feel bad about needing an explanation, this stuff can get complicated :)

[Josh from Algolia here] Places is designed to be very customizable in terms of the UX and the data you put in front of the user. For UX we have sensible defaults but you have full control over the look and feel. For data you can mix in results from you own database or other APIs (e.g. show the names of cities alongside search results for listings in those cities).

Great post! Makes a lot of sense to move I/O to a thread pool. Do you control max topology I/O with the thread pool size now, in addition to Storm settings like # of executors? Another q - do you monitor how long each bolt blocks waiting for a thread to become available? (as a measure of pool saturation)?

[dead] 10 years ago

Great post! Makes a lot of sense to move I/O to a thread pool, good thinking :) Now you can control max topology I/O+concurrency not just with Storm but also with thread pool size, yeah? Another question - do you monitor how long a bolt blocks each time waiting for a thread from the pool to be given to it? If the pool has available threads it's instant but if the pool is saturated (backed up on an I/O slowdown for example) it would be good to know?

When we did the migration over to Storm & Cassandra, we did a 1 time ingestion of old events. This was very fast, peaking around 50k events/sec. Additional synthetic testing showed we could easily beat that. It was actually the old system that bottlenecked, and prevented us from turning the dial way up :)

We currently are not. We tried them out, but found that the counter value would spontaneously change from time to time. This could have been user error, but we weren't able to resolve it via our own wits or the user group.

We evolved our design to use simple integers and add to them in a way that didn't require atomicity. That has been rock solid.

(from the author) Can totally understand how for some folks this isn't an issue at all. But for spastic me it was a stubborn one I found myself losing time on. Perhaps in part because I have my repeat rate jacked way up using KeyRemap4Macbook - http://pqrs.org/macosx/keyremap4macbook/.

I'd Cmd-Tab my way into Finderland a few times a day and inadvertently trigger new Finder windows instead of new Chrome windows with Cmd+N - stuff like that.

Getting Finder out of the rotation prevents this from happening. While I still might double-tab back to the original window, I usually spot that before too much typing b/c it's where my eyes originally were looking.

And aesthetically I'll always take the less number of icons when I can.