Powering Twitch and Medium, Algolia (YC W14) raises $53M - <AUTHOR> https://venturebeat.com/2017/06/08/powering-twitch-and-medium-search-startup-algolia-raises-53-million/ <comment><USER2> We're using Algolia (the free version) for all Facebook open source project websites (React, GraphQL, Yarn, ...) and it's been nothing short of awesome.

You just include a js file and add an input where you want the search and it just works(tm).

It has required 0 maintenance, it didn't go down, the api didn't change, nothing to tweak on the backend... Users have gotten a quality and super fast search since then.

I highly recommend it!

<comment><USER3> > You just include a js file and add an input where you want the search and it > just works(tm).

Reading this I get the impression that they do the indexing themselves or something but in the Quick Start the first thing you need to do is importing your data. What am I missing?

<comment><USER4> @vjeux is using [https://community.algolia.com/docsearch/](https://community.algolia.com/docsearch/) which is Algolia's community product that crawls technical documentation :)

If you have any other usecase than technical documentation, we recommend indexing your data through the API.

Ben

<comment><USER5> Is the identification of classes/methods/etc generated automatically or manually?

</comment></comment></comment></comment><comment><USER6> Algolia is an amazing service and an absolute joy to use. They deserve all the praise they're getting and then some.

However, it's easy to exceed their record limits, especially since you need to duplicate your index every time you want to 'sort by' something.

For instance, if I wanted an option to sort my results by date, and to then search these, I'd need to create 2 new slave indexes for date ascending and descending respectively. Sorting by anything else, like price, means creating yet more indexes and suddenly it's easy to turn 30K records into 150K. This happened to me and I ended up having to roll something custom instead (Vuejs frontend and Sphinx Search backend), since my client balked at the extra cost.

But, if you have a small dataset, or are fine with the costs, then Algolia is spectacular.

<comment><USER7> Yes,

especially if you have records that not even change often.

If you have 300,000 items in an index that you want to sort in 4 ways and want to update eg the price daily, you already consumed 36 million operations of the biggest non enterprise plan that includes 50 million operations.

Just by testing and tweaking the index every other day, we already use up to 500,000 operations.

But then again setting up search infrastructure in different countries and synching it in realtime also comes at a hefty price. So we will stick with Algolia for now, the speed is breathtaking and we will never be able to achieve 20ms responses with eg an Elasticsearch cluster.

<comment><USER8> > we will never be able to achieve 20ms responses with eg an Elasticsearch > cluster

Why not? Assuming good hardware, why isn't that possible?

<comment><USER9> IME, I haven't been able to replicate Algolia's search responsiveness with ElasticSearch, even with good hardware. I don't think ES/Lucene was ever designed for that use case. IIRC, Algolia was designed to perform well even on mobile phones. I wouldn't dream of getting Lucene to run performantly on a mobile phone.

I'd love to see if someone has done any of the "realtime" Algolia demos backed by ElasticSearch.

In any case, ES excels at very different use cases - I've only seen Algolia provide "basic" search.

<comment><USER10> Algolia has done some terrific work on search latency (and written about it which is awesome [https://stories.algolia.com/how-algolia-reduces-latency- for-...](https://stories.algolia.com/how-algolia-reduces-latency- for-21b-searches-per-month-3959dc926f0)).

I think ES can get there, but depends a lot on what hardware you deploy (SSDs!), how you build your index, and whether you can geographically distribute your search engine close to your users.

We have one ES cluster with hundreds of queries per second that gives median 9ms response times and 99th percentile around 160ms. Another cluster with 100x more data that gets 20-25ms median response times and 99th percentile at 360ms.

Now both of these are just the ES response time, there is additional overhead in responding to an API request and then you also start to get into where your data centers are located relative to the end users.

More (slightly out of date) background on our config: [https://data.blog/2016/05/03/state-of-wordpress-com- elastics...](https://data.blog/2016/05/03/state-of-wordpress-com- elasticsearch-systems-2016/)

</comment></comment></comment></comment></comment><comment><USER11> Oh, that's the Hacker News site search... Works fine for me, except I always switch from "results by Relevance" to "Results by date", as in "Has this been posted already...?"

Did not know Google is discontinuing its custom search engine. Looks like there may be a business opportunity here.

<comment><USER12> If you want to know if something has already been posted on hacker news and are using chrome, I've made an extension for that purpose. It's a reverse lookup that uses algolia search. It's not perfect but I use it daily and solves this problem [https://chrome.google.com/webstore/detail/hacker-news- lookup...](https://chrome.google.com/webstore/detail/hacker-news- lookup/ekfmfhhfalhmiacchemmhapffjaolffo)

Hope you find it useful

<comment><USER13> Why does the extension need browser history permissions? I see it states it does not use it, so curious what it's needed for. Cool idea regardless, just curious.

<comment><USER12> It's not used. I just need access to the current tab url and the ability to open tabs, but I am not sure how to require less permission... The manifest file looks like this:

      "permissions": [
        "tabs",
        "https://hn.algolia.com/"
      ]

See: [https://github.com/jazzytomato/hnlookup/blob/master/resource...](https://github.com/jazzytomato/hnlookup/blob/master/resources/release/manifest.json)

Thanks for the heads up, I will investigate.

</comment></comment></comment></comment><comment><USER14> Algolia is a great product.

However, the market is very very tough here.

The problem here is consolidation: all big customers (successful websites) will end up being part of mega-corporations (Amazon, Microsoft, Google, Salesforce, etc.). And all these companies have their own search engine (which they use for other machine learning, etc. - not just search). For example, Twitch will probably switch to Amazon A9.

So the question here is: what is the game plan to return this $53M? Acquisition?

<comment><USER15> I mean Twitch has been passed between two giants and they're still using Algolia.

<comment><USER16> Two giants? As far as I'm aware, they've only ever been owned by Amazon or private.

<comment><USER17> Yeah, it was basically Justin.tv which morphed into Twitch and was bought by Amazon.

<comment><USER18> They might be referring to the one-time-rumored acquisition by YouTube, before Amazon actually closed the deal.

</comment></comment></comment></comment></comment><comment><USER19> I think that Adafruit uses them, too.

What I notice with their results is that they start strong, but fall off very rapidly into partial gibberish.

For example, say I want to make a battery-powered project. I search "lipo." The results start out promising; charging boards, including a few options tailored to specific popular boards. But by the time we get to the end of page 1, only every other result or so is actually relevant. Useful results like batteries and connectors are interspersed with random microcontrollers, LEDs, motors, etc.

Still, it works and you can always refine by category if that sort of thing really bothers you. It seems like a pretty solid solution, and the issues I'm mentioning are probably caused by the implementation, which I'll bet uses the full text description of entries to weight things towards not excluding a potentially-relevant result.

<comment><USER20> Ideally you'll get everything you need in the first page anyways but generally speaking if you have complex part numbers or product series, it's harder to get right. I think that machine learning is essential to improve relevance over time without having to resort to manual tweaks.

<comment><USER19> Adafruit does have it tough; they try to bridge sites like Amazon and Digikey by having a very broad selection of products specific to electronics, but they don't actually have many parts in each of those categories. They focus more on supporting what they have with documentation and software and whatnot.

But sites like Digikey/Mouser/etc have searching _down._ If I want a capacitor, first I pick what kind (electrolytic, ceramic, tantalum, etc,) and then I am presented with dozens of menus representing specific attributes that I care about. Capacitance, temperature coefficient, size/pakaging, manufacturer- whatever you could possibly want to select on, you can.

Sometimes I wish that other digital distribution platforms would take inspiration from that 'catalog' model. Discovery is difficult, these days.

</comment></comment></comment><comment><USER21> I've actually been avoiding using Algolia after I used IndexTank and then they were acquired by LinkedIn. (I always said grats diego + team at IndexTank) but it was a frustrating experience to need to role up everything and pack up shop.

Seeing a huge raise like this actually makes me feel better about the possibility of using Algolia rather than rolling my own Solr containers.

<comment><USER22> _Seeing a huge raise like this actually makes me feel better about the possibility of using Algolia_

Because...they won't be pressured to be acquired?

</comment></comment><comment><USER23> This is great for something like a public website. What about a situation where I want some of my users to only be authorized to view some of my data based on a set of rules I set in my backend application. Can Agolia accomplish this?

EDIT: Looks like they do support this.. [https://www.algolia.com/doc/api- client/ruby/api-keys/#genera...](https://www.algolia.com/doc/api- client/ruby/api-keys/#generate-key)

However, I think for a small project it will probably be extra work to keep these keys synchronized vs just doing a postgres search for my project

<comment><USER24> You could just as easily set up Solr/Elasticsearch locally and index your data for searching. It'll give you the advantage of being able to do more complex queries, faceting, grouping, stemming, synonyms, and things that you expect from a modern search experience.

<comment><USER25> All of that is out of the box with Algolia FYI :)

<comment><USER24> Absolutely, I was saying the features were modern compared to PostGres search :)

</comment></comment></comment></comment><comment><USER26> I definitely love the hn search which is powered by algolia. Fast and instant. I wish it was possible to turn off fuzzy matching in some cases.

<comment><USER27> There's a "typo tolerance" option in the settings that may help?

<comment><USER26> Oh wow, I didn't notice the settings in the top bar. Thanks!

</comment></comment></comment><comment><USER28> Algolia is a fantastic service. I wish Elastic Search just as easy to populate and then to search with a front end javascript lib.

<comment><USER29> I really enjoyed using [http://searchkit.co/](http://searchkit.co/) a while back. If i were to do it again, I'd probably roll my own, as IIRC state management with searchkit was a bit of a black box, but it is a pretty nice drop-in lib .

<comment><USER28> Looks interesting, thanks for the link.

</comment></comment></comment><comment><USER30> We've been using Algolia as we build out our custom database of ~1.5million US-based nonprofits for patronage.org and I have become their #1 fanboy. The search is blazing fast, super customizable, and support has been incredibly helpful. It's one of those products that seems to provide "if you can dream it, you can do it" functionality. We went from a slow search that used EINs to a search that accounts for typos, alternative names of charities, EINs, locations, and is customized for the logged-in user since we can pass queries to Algolia clientside.

My only complaint, if I had to make one, is that pricing is a bit steep for our use case but I can't imagine how much time I'd need to spend to get ElasticSearch running comparably.

</comment><comment><USER31> I miss the old HN search. The new one has some nice features, but it's missing basic search engine commands. I used to do search stuff like "ai OR artificial intelligence OR deeplearning..." to see if any articles on a certain subject have been posted today.

<comment><USER32> Did you try: ai "artificial intelligence" deeplearning

<comment><USER31> Forgot the quotes but it doesn't fix anything. There is no supported "OR" syntax or any kind of advanced search option.

<comment><USER33> There's indeed no OR, as you'd be able to type those three queries with instant results. If you really wanted to do that, you could use the optionalWords feature at query time using the API. :)

</comment></comment></comment></comment><comment><USER34> Algolia is an amazing product. I've used it on several projects over the past few years and the performance & ease of use is top notch.

<comment><USER35> Same here, I started to use them very early on and I keep doing it now. They are great everytime search or auto completion is needed, wherever it is.

</comment></comment><comment><USER36> Geez... Looking at all the praise from the tough HN crowd, I can only hope to one day build a product that's so widely loved.

Kudos to the team at Algolia. Hope you're bathing in pride this week. Looks like the praise is widespread and well earned.

</comment><comment><USER37> Guess I always assumed Algolia wasn't anything special. Anyone know what exactly makes it worth so much?

<comment><USER38> They are one of the very few companies in that space which still develop their own search technology instead of just adopting and mixing available open source packages. Most other search software these days runs on some flavour of Lucene and rightfully so IMO because Lucene is a rock solid piece of software.

This means that creating a defensible USP in that space isn't easy. Algolia did it by essentially developing their own search software from the ground up. It isn't necessarily better than competitors like Elasticsearch in every measure but it certainly has some interesting properties and it can be pretty fast, especially for things like autocomplete.

<comment><USER39> Are you sure? I thought Algolia literally _was_ Solr (which is ElasticSearch which is Lucene).

<comment><USER38> Yes, I'm sure. I talked to one of the founders about 2 years ago. Algolia is written in C / C++ from the ground up.

</comment></comment></comment></comment><comment><USER40> Congratulations!

Algolia wrote some good blog posts, for example:

[https://stories.algolia.com/how-the-founders-of-algolia- thin...](https://stories.algolia.com/how-the-founders-of-algolia-think-about- scale-and-how-you-can-too-291a937d119e)

[https://stories.algolia.com/how-algolia-built-a-culture- firs...](https://stories.algolia.com/how-algolia-built-a-culture-first- company-around-ownership-eee6623b1b6)

</comment><comment><USER41> My team switched to Algolia, and it's been a game changer for us. Great product, simple yet powerful API and a really helpful team. We use it both for our public facing properties (i.e [https://tubitv.com/search/schwarzenegger](https://tubitv.com/search/schwarzenegger)) and also to power search for our internal video CMS

<comment><USER42> Yay! It's great to be working with you all at Tubi TV. Love, your Algolia account executive. :D

</comment></comment><comment><USER43> I am using Algolia with React Native and Firebase to search users by name, bio, phone, and more, and all I needed was a single cloud function file in Firebase to link the two completely after I had imported my data with a simple node script.

Just their typo acceptance alone makes Algolia, imo, the best 3rd party search service available currently.

</comment><comment><USER44> Anyone care to share positive and negative experiences of using Algolia to power search in your SaaS?

(We're currently using MySQL's full-text search and are finding it to be a long way short of the experience we'd like our customers to have.)

<comment><USER45> We've been using Algolia in production for 8 months and moved to self-hosted elasticsearch. Small dataset, 2,5million records in 10 indexes IIRC, data structures and filtering were quite complex.

Algolia Pros:

* very nice UI/dashboard, stats, lots of options, flexible

* documentation is nice, 'onboarding' was not an issue

* it worked reliably most of the time

Cons:

* lock-in/proprietary. Think twice if you want to base your business on it.

* you have trust them with very sensitive customers data

* it is expensive. We reduced costs from $800/month to 40$/month by moving to self-hosted open source solution with same level/quality of customer experience.

* guys at Algolia like to rewrite client libraries and make them completely backwards incompatible. Good luck rewriting almost everything.

* support is incompetent and honestly it was useless in our case. I don't want to share details here in public as lots of people were involved in the case, but their support is disaster and for us that was major reason to migrate away. We had major issues for 2 weeks and in the end had to debug&fix problem in their client library by our developer. Long story, but that one was disaster.

In short, it wasn't extremely horrible experience overall, product is nice in general, but elasticsearch is very very good and Algolia just couldn't justify price tag, sorry.

<comment><USER46> I am sad to see you had a bad experience with Algolia and I can assure you that we put a lot of effort on backward compatibility:

* we have never discontinued a feature in the API since the launch

* We never broke our API clients, we proposed a new version when a new feature required a big change but we kept the previous version (and this happened only on two API client in 5 years)

For the support, this is our engineer's team working on the product that does the support and we put a lot of effort to make sure all our customers are satisfied and get the relevant answers.

Then if you got the same customer experience with a $40 machine, you have probably not used all the feature/power of the engine. I am sad to see such a feedback and you can make me accountable to make sure we will do everything we can to satisfy all our users

</comment></comment></comment><comment><USER47> I love Algolia. I worked with them for a week to make DocSearch accessible to screen readers and had a lot of fun. I'm especially grateful for their commitment to open source. Go Algolia!

</comment><comment><USER48> Algolia is amazing. They are growing like crazy and somehow they still have time to help out startups. Both the CEO and CTO have been giving us advice. Great guys, amazing tech.

</comment><comment><USER49> We use Algolia a lot at StackShare. Stack News[0] is powered by Algolia's client-side library. It's easy to integrate in your project and runs really fast. We love it! If you're looking for a way to add search for your project give Algolia a shot, there really is nothing like it on the market.

[0] - [https://stackshare.io/news](https://stackshare.io/news)

</comment><comment><USER50> Algolia is a great company! I am using their docsearch but my friend used it in a mobile commerce app. He was super impressed with the integration and the end result was a great user experience.

highly recommend checking them out. Congrats to the Algolia team!

</comment><comment><USER51> What about search inside enterprise?

This is a place where there are tons of unstructured data: emails, slack, atlassian, code base. Search seems like a useful tool for employees. Permission control is another essential feature.

<comment><USER42> Yeah, definitely. It's a product category called, somewhat prosaically, "enterprise search." Algolia's appropriate for this in that we allow you to define data structures on a per-content source basis, and can show the most relevant results for each content source. Usually, enterprise search providers provide lots of out of the box connectors — with us, you'd just shove JSON into the proper index using one of the API clients.

Security is super important, but we can provide encryption-at-rest and have a secured API key [1] feature that allows you to segment your user base.

[1] - [https://www.algolia.com/doc/guides/security/api- keys/#secure...](https://www.algolia.com/doc/guides/security/api- keys/#secured-api-keys)

</comment></comment><comment><USER52> Congratulations are in order ! I guess they're finally moving out of their Rivoli offices ! ;)

(their Paris desk is located virtually across the street, but it's not so great)

</comment><comment><USER53> I'm a big Elasticsearch guy, so when I ran across Algolia on a client project I was skeptical, but they've been nothing short of awesome. I'm a fan.

</comment><comment><USER54> Still blows my mind that Algolia is built on like, nginx

</comment><comment><USER55> Algolia is awesome, but as others pointed out, the market is tough. I wish them all the success they deserve nonetheless.

Allez les gars !

</comment><comment><USER56> I've always wondered what rights they hold to your data, re: analyzing it, trends, patterns, etc.

<comment><USER46> (CTO of Algolia here) We have just the right to host the service for you on your data, it remains of course your property!

<comment><USER57> Any thoughts on all the comments around steep pricing because of needing to add a sort, or test? Sounds like a bait and switch as the rise in cost is quite unexpected for most people?

<comment><USER46> For testing, we propose free accounts. For the different sort, we did the choice to emphasis quality over cost, on purpose :) In practice, it means we need to duplicate the data for each sort in order to do has much as possible at indexing time. We have seen few users that were not ready to pay but the big majority see the value and this is aligned with our cost.

</comment></comment></comment></comment><comment><USER58> Does anyone know their tech stack? I assume it's just a giant elasticsearch cluster.

<comment><USER33> Custom-made C++ engine - baked into an nginx plugin - no elasticsearch nor lucene in the stack, except to gather analytics on the side. It has been made to solve user-facing search only, where elasticsearch couldn't meet the same speed because it's trying to solve a lot of other things.

<comment><USER59> More information about the tech stack here - [https://stackshare.io/algolia/how-algolia-reduces-latency- fo...](https://stackshare.io/algolia/how-algolia-reduces-latency- for-21b-searches-per-month)

</comment></comment></comment><comment><USER60> Awesome! Great opportunity.

</comment><comment><USER61> Any comments on Swiftype and what this means to them ?</comment>


Court order seeks email of Wikileaks volunteer Jake Appelbaum - <AUTHOR> http://online.wsj.com/article/SB10001424052970203476804576613284007315072.html

<comment><USER2> The US government is becoming increasingly opposed to individual freedom (see: the DEA, the TSA, the NSA, its response to Wikileaks, its incarceration rates, its use of torture, etc, etc, etc). I'm glad there are still people like Jacob who will put up a fight against these infringements. So many people choose the path of least short-term resistance.

<comment><USER3> Exactly why I'm leaving as soon as I can secure a residency permit in my country of choice. While every country has its problems and there's no utopia, I'd rather live in a place that has no illusions about the realities of its flaws and rights.

You can't fix something if you don't even realize there's a problem.

<comment><USER4> Just out of curiosity, what's your country of choice?

<comment><USER3> Germany. My girlfriend lives there, and besides being the powerhouse economy of the Eurozone at the moment, they seem to have more or less successfully blended a highly successful capitalist economy with realistic and humane social initiatives. To broadly generalize, the people here have a strong work ethic, are highly educated by average US standards, and take pride in what they do. They have a strong outdoors tradition and have highly progressive (again, by US standards) green-living initiatives.

While I'm not yet that well educated in Germany politics and policies, my initial vague impression is that while they're not as big on certain civil rights as people ostensibly are in the States (open government censorship and sometimes discriminatory hiring practices, for example), neither do they have any illusions about those policies. If you do cross the law, punishments appear reasonable--not $3 million and a lifetime of bankruptcy and lawyers if you share 5 songs on Kazaa.

Lots of other countries like to poke fun and point out the flaws in many of Germany's policies, and they certainly may be right, but Germany as viewed from the lens of a self-employed American engineer unable to get even basic health insurance is, at times, seemingly a progressive paradise.

<comment><USER5> > a self-employed American engineer unable to get even basic health insurance

Why is that?

<comment><USER3> Pre-existing conditions. I discussed this in a different thread long ago, but the long and short of it is that while I may qualify for a "car-crash emergency" type plan, it currently makes more financial sense for me to simply declare medical bankruptcy in case of emergency and pay small incidentals out of pocket than than pay a high premium/deductible on a plan that won't pay out unless I need tens/hundreds of thousands in care. Not to mention the risk of rescission. Meanwhile the COBRA payment from my last "real-job" employer was in the range of $400/month, which was not affordable for me.

</comment></comment></comment></comment></comment></comment><comment><AUTHOR> <https://uloadr.com/u/rA44.png> to get around the wsj paywall.

<comment><USER6> Seems like simply not allowing cookies will get you to the text too.

</comment></comment><comment><USER7> It's been true since I first wrote it in January: <http://sneak.datavibe.net/20110113/wikileaks/>

PS: The PATRIOT Act which perpetuates this kind of idiocy is ten years old this month. It's time to leave America. I did!

<comment><USER8> To where?

<comment><USER9> Switzerland

</comment></comment></comment><comment><USER10> The headline is a bit sensationalistic, if arguably accurate.

Edit for the downvoters: before it was modified, the headline read something to the effect of "US Government invades jacob Applebaum's privacy in continuing Wikileaks witch hunt".

<comment><USER11> What's untrue about that older headline? Isn't that exactly what's happening right now?

<comment><USER10> I'm always suspicious of people who put conveying their emotional reaction to a story above getting the facts across. You see it on reddit all the time, and submitters hide behind the very justification you just gave. In the end, it lowers overall quality.

Good journalism is about more than simply truth. It's about professionalism and the appearance of such. Similarly, on HN I don't want to be browbeaten by people's moral judgements on any given issue. Give me the facts and I'll make my own judgements.

I happen to agree that the USG's actions against Wikileaks supporters are, if not extralegal, then certainly not in keeping with the ideals the US justice system is based on. That does not, however, mean that having headlines like that improves my experience on HN.

</comment></comment></comment><comment><USER12> Well he would be crazy to use US based email providers for anything important anyway

<comment><USER13> Amazing how far we've come, eh? Hard for me to reconcile the fact that I have to put US-based communications in the same mental bucket as China-based communications.

</comment></comment><comment><USER14> Ah, the good old United States, where safety is more important than freedom.

<comment><USER15> Funny thing is I don't even see how this makes us more safe.</comment></comment>


Linode giving $100 credit to first 1,000 new customers to sign up this Friday - <AUTHOR> http://blog.linode.com/2010/12/15/linode-100000-giveaway/

<comment><USER3> Deals like this are a double edged sword.

They really are great for people who have been sitting on the fence.

But new customers who recently signed up... those new customers all feel shunned and wish that they had of waited.

<comment><USER4> I just signed up Sunday. I feel betrayed :(. Maybe I can just cancel my account and move somewhere else that has a new-customer deal for the holidays.

<comment><USER5> "I got exactly what I agreed to.

I feel betrayed!"

<comment><USER4> Betrayed isn't the right word, but it certainly doesn't make me happy :/.

<comment><USER6> That's irrational. You found the service valuable at the price point you paid. They're running a promotion where new customers get a credit. Another persons deal doesn't make yours less valuable... it's perception.

<comment><USER4> I know it's irrational. That's not my point.

<comment><USER5> So fix it. You see something happening which makes you feel bad, presumably you don't want to feel bad, so find the bug in your thought processes and correct it.

How would you like to feel instead? Happy that the trade you did was fair at the time, and also happy for the people getting a good deal? Sounds good.

There's your unit test: imagine linode offer. Current result: feel bad (q: how, precisely?). Desired result: feel good.

Now all you need to do is fix it as if you were fixing a bug report - <USER2> why and how you feel bad (observing what actually happens in your head instead of what you think ought to be happening) and what you would need to change (in your head, not in the world) so you can feel good instead. Keep trying things and rerunning the test of imagining the linode offer as a check of whether you have successfully changed anything.

The essence of mindhacking in one HN comment. You could pay a therapist loads and not get to that heart of the matter, which is the old stereotyped Buddhism trope that the world is fine and if you feel bad, it's your job to fix your feelings, not the world.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> I've been using Linode for over a year, and I have to say they really are the best when it comes to VPS. The distribution choices are great, the emergency AJAX shell is great, and everything (in my experience) is automated to the point where I haven't even logged a support ticket yet.

If you'd like to ask more about my experience, please do so. In return, I'd like to shamelessly ask you use my referral link when you sign up: [http://www.linode.com/?r=200d6bb341711532c638b475e536b0205ce...](http://www.linode.com/?r=200d6bb341711532c638b475e536b0205ce17f63)

I could always use another free month!

</comment><comment><USER8> If anyone has any hesitation about switching to Linode, I've been using them for the past 2 years and have had an exceptional experience. This is after using both Slicehost and Media Temple - Linode has been the most reliable for me so far, in terms of both performance and speed/latency. Their control panel is also pretty sweet, I'm not sure if you can see a demo from the main site but if anyone wants, I can post a couple of screenshots.

<comment><USER9> Screen shots would be nice - I've been thinking of moving over from Mediatemple DV but do not really want to spend too much time configuring a server from the command line.

edit: screenshots on the linode site <http://www.linode.com/features.cfm>

<comment><USER10> Sorry to read you're thinking of leaving us! Have you been unhappy with your (mt) service? If there's anything we can do to help, please let us know by calling or messaging us on Twitter (@meditatemple). We'd be happy to hear some feedback or offer some support/advice.

</comment></comment></comment><comment><AUTHOR> I imagine this is prompted by Amazon's free usage tier. I hope it's successful for Linode, though with the AppSumo credit and now this I can't help but feel a little envious of the new users.

<comment><USER11> No reason not to :). I got in on the free amazon AWS and use the machine as a dev server.

</comment></comment><comment><USER12> Does anyone know how Linode's latency from Chicago compares to Slicehost (which is 20ms round-trip for me)?

At work, I'm stuck with servers that are 100ms+ away, and they are unusable over ssh with that latency. I'm willing to switch to Linode, but only if I get box-under-my-desk-like speed :)

<comment><USER11> Forgive me for being kindof ignorant here, but wouldn't this be pretty heavily dependent on _your_ connection? If you're close (logically, as in network hops) to their datacenter?

Here: <http://www.linode.com/avail/>

That's a list of their systems. If you want to test the latency, ping one of them. For instance I'm on qwest's network in Phoenix, AZ. My ping time to

dallas1.linode.com is 40-45ms.

atlanta1.linode.com is 85-100

They're named by city...dallas1.linode.com fremont1.linode.com atlanta1.linode.com etc. etc.

</comment></comment><comment><USER13> This is pretty clever.

They're going to get more than 1000 people signing up.

The order of magnitude above 1000 people will probably more than make up for the $100,000 they stand to lose.

Extending this idea, if I was the person involved with this deal, I'd also include current customers.

If they allowed this, the order of magnitude of new sign-ups (above 1000) would only be increased.

People who sign up for a second Linode are worth just as much as people signing up for their first Linode - there's potentially less risk, because current customers already have an established relationship with Linode, and are most likely to continue using their services once the credit has been spent.

<comment><USER14> I think they're more hedging their bets on customers using the service for a few months and replacing their current (if they have it) host with Linode and once their credit runs out being so invested in Linode as a service -- realising it rocks and having their stuff all there -- they won't have a reason to move and if they choose to it'll be a pain to do so.

<comment><USER13> True, but if they extended the deal to current customers they'd still have the same outlay ($100,000) but the buzz + new signups would be increased.

I suppose it could be argued that current customers are more likely to sign-up for a second linode independently from any offer; but in counter to that, some current customers might be dissuaded from signing up for a second linode in the near future because the perceived value proposition has been lessened.

I think allowing current customers to sign up for a 2nd linode would be a win- win for Linode (and people like me who currently use them).

</comment></comment></comment><comment><USER13> It scares me when they come out with great deals like this. Will there be a tipping point, when Linode cease to be great because they're overstretched?

<comment><USER11> I doubt it. My guess is that they have a usage-per-server stat and don't go over that.

For example, 10 VPSs per physical server, no more. If we're going to up 1000 new VPS, we're going to need 100 new physical servers.

<comment><USER15> GP may have meant "great" in terms of support; that's one of the most often- cited benefits of Linode over other providers. They appear to give a crap about their customers and are very responsive over several open communication channels (forums, IRC, etc.). That may or may not scale if they were to someday have 100x the customers.

</comment></comment></comment><comment><USER16> The world clock for non-US HNers: [http://www.timeanddate.com/worldclock/fixedtime.html?day=17&...](http://www.timeanddate.com/worldclock/fixedtime.html?day=17&month=12&year=2010&hour=9&min=0&sec=0&p1=179)

</comment><comment><USER17> Ohohohohoh merry Christmas to me. I am so jumping on that, luckily its my company that bought the existing accounts. 44:40:01, 44:40:00, 44:39:59

</comment><comment><USER18> Almost 100% identical to what SparkFun did a year ago: <http://sprkfn.com/n305>

<comment><USER19> Without shipping charges!

</comment></comment><comment><USER20> I missed the AppSumo deal and have been wanting to switch over from Slicehost so Friday seems like a great day to do that.

</comment><comment><USER21> Linode hasn't been best lately. They suffered far too many outages and network issues (especially Fremont data center). We have been seriously considering moving to a dedicated setup because of network issues. (Also the fact that they are inflexible -- we want RAM but not hard disk capacity; they can't help us).

<comment><USER22> Hurricane Electric 1 in Fremont is, IMHO, a notoriously bad DC - I wouldn't host anything in there regardless of whether it was with Linode (I'm a fan) or another provider.

If Fremont was a random choice of the 4 US DC's Linode offers, I would consider putting in a ticket to be moved to another one of their DCs (they'll do it painlessly for free).

<comment><USER23> Also, isn't it completely filled to capacity? I think they're unable to refill Linodes there very often due to some reason like that.

</comment></comment></comment><comment><USER24> Is it me or putting the figure "100,000", is meant for people to mistake it for "100.000"?

But, if I'm not mistaken, there is nothing like it in reality, it should really be "100,00" unless the Fed are planning to introduce new currency that is 1/10 of a cent...

<comment><USER25> In the states, "$100,000" is one hundred thousand dollars. They are giving away $100 x 1000 = $100,000.

<comment><USER24> Oh, my bad, I thought the figure meant $100,000 (interpreted as 100 dollars + 000 cents) each customer.

<comment><USER26> They have Linodes in the UK. Honest mistake :)

<comment><USER27> The "100,000.00" format is also used in the UK.

</comment></comment></comment></comment></comment><comment><USER28> Local time for me is GMT. Looks like I won't have to be the early bird to catch this worm. Nice.

</comment><comment><USER29> I take it a lot of people are going to be sitting with their mouse poised over the submit button as 9am rolls around, and if you're lucky, you'll get the 100$? Surely there's a better way to handle this; it's sort of an annoying gamble, imho.

</comment><comment><USER20> <http://www.linode.com/avail/>

According to this they are going to be 121 nodes short. I'm sure they are working on that as I write this though.

<comment><USER19> Asked and answered:

[http://blog.linode.com/2010/12/15/linode-100000-giveaway/#co...](http://blog.linode.com/2010/12/15/linode-100000-giveaway/#comment-81663)

</comment></comment><comment><USER30> Huh, so I was going to ask today whether Linode or EC2 made sense for running a personal server. Thanks Linode, you hopefully just made my choice easier!

<comment><USER31> As somebody with a Linode and an EC2 account, here are some other things to consider:

\- Linode's DNS manager is pretty decent, and I've historically used it for both Linode and EC2 machines.

\- EC2 t1.micro instances are frustratingly underpowered if you have a CPU spike, and they may "freeze" for as much as a second at time. I'm not convinced that Amazon is price/performance competitive at the very low end.

\- EC2's ability to back up volumes to S3 is very handy.

\- EC2's ability to spin a new system up alongside your old one, transfer the old IP address to the new system, and then spin down your old system is great.

So if what you want is a low-end Linux box that's online 24 hours a day, Linode can be an excellent choice. And a $100 credit will go a fairly long way.

<comment><USER32> FWIW, one can swap/move IPs between Linodes within the same facility, too.

</comment></comment></comment><comment><USER33> I love Linode, but I don't get anywhere close the type of bandwidth I get with 100tb.com. Can you recommend other high-bandwidth hosts?

<comment><USER34> $200/month is their cheapest plan? Not really in the same league as Linode then.

</comment></comment><comment><USER35> Great, now I might signup for a Linode account.

</comment><comment><USER36> Dagnabbit. I just signed up this morning. That being said, their services are pretty slick.

</comment><comment><USER37> What if I already have a linode? What do I get :p

<comment><USER38> Some great new (HN) neighbors?</comment></comment>


The Alexa Top 1M Sites file has been retired - <AUTHOR> https://support.alexa.com/hc/en-us/articles/235229028-The-Alexa-Top-1-Million-Sites-file-has-been-retired-November-2016 <comment><USER2> Does anyone know of any alternatives? SimilarWeb should jump in a publish a similar top-1MM CSV daily.</comment>


Ask HN: Books on Magic Tricks? - <AUTHOR> My tween son been reading lots of books on magic tricks, that I buy on garage sales and in used book stores. So some of these books are really primitive, hit and miss... So I want to hear recommendations on quality books. Thanks! <comment><USER3> Some wonderful magic books I've got a lot out of:

Derren Brown - _Absolute Magic_ and _Pure Effect_

Tommy Wonder - _The Books of Wonder_ , Vols I & II.

Books by Dariel Fitzkee, e.g. _Magic by Misdirection_

Berglas - _The Berglas Effects_ (and his other books)

Maybe they're too sophisticated for him, but I sure wish I'd had those when I was a kid! The Derren and Tommy books in particular are so thoughtful, inspiring, philosophical. You have to create your own magic effects - <USER2> show you how. The Berglas book puts 200+ (!) pages into explaining his 'Any Card At Any Number' effect in great detail..but it's more a complex of effects than a particular thing with a start and end...most of the time. There's a lot of Derren, TW and Berglas on youtube too.

<comment><AUTHOR> Thanks!

</comment></comment><comment><USER4> Card College is the gold standard for card magic. Several volumes. Very clear illustrations. Pricey. There is also a DVD with the book's text and videos.

The Royal Road to Card Magic is much shorter, much cheaper, and also a classic.

<comment><AUTHOR> Thanks!

</comment></comment><comment><USER5> Really good tricks are kept secret, but here is a place to look for first principles:

[https://en.wikipedia.org/wiki/Coin_magic](https://en.wikipedia.org/wiki/Coin_magic)

Coins are a bit advanced due to the dexterity required, and the close up nature of the presentation. You should check out card tricks too.

[https://en.wikipedia.org/wiki/Card_manipulation](https://en.wikipedia.org/wiki/Card_manipulation)

There is a basic mechanic to magic tricks that cross over. it requires dexterity, "salesmanship" and perceptual psychology.</comment>


Stack Overflow triggers Google Chrome malware detector - <AUTHOR> http://stackoverflow.com/questions/3078622/why-attachment-size-given-by-outlook-programming-interface-is-always-wrong

<comment><USER2> The image on that page is hosted from freeimagehosting.net, which apparently Chrome doesn't like.</comment>


NODB --- Uncle Bob on planning without databases - <AUTHOR> http://blog.8thlight.com/uncle-bob/2012/05/15/NODB.html <comment><USER2> I guess it depends on what you want to do. Now and then I need to authenticate users and check for their privileges to access my applications. Now and then I need to see who has what privileges on what applications. These both sound to me like cases where one could use a database. Maybe I don't care how the stuff is stored, but the relational model is very handy.

<comment><USER3> I believe what he's talking about is that you do not NEED a DB for those features. One could implement authentication using a persistence mock. Eventually you will need to replace the mock with some sort of real persistence, but that is unrelated to that use case and should not affect the implementation.

I think the idea he is trying to express is that developers put too much focus on the persistence layer of an application too soon in the development. When you say I am going to use MySQL before you even write a line of code you are automatically trapping yourself and your thinking.

Persistence is meant to be an after thought of a use case; an implementation detail.

</comment></comment><comment><USER4> Nope.

The data is the center. Databases, frameworks, _and_ use cases change.

Data (information, knowledge) is what persists.

<comment><USER5> Not sure if your comment was intended to be sarcastic or if it's actually what you think but I'm going to say this anyway.

Data is the byproduct of business logic. You cannot know how it will end up looking before actually thinking of the use cases and sometimes even starting to code them. And off course if you don't know what the data will look like, you cant make an informed decision on what kind of persistence layer you need.

Just my two cents</comment></comment>


OOP in Bash - <AUTHOR> http://lab.madscience.nl/oo.sh.txt <comment><USER2> You don't need bash features to do this either. I wrote shoop (<http://shoop.sourceforge.net/>) a decade ago.

<[http://kitenet.net/~joey/blog/entry/ten_years_of_free_softwa...](http://kitenet.net/~joey/blog/entry/ten_years_of_free_software_ --_part_10_shoop/>);

</comment><comment><USER3> Colour me impressed. I thought you needed fancy (relatively) modern stuff like Ruby for decent in-language DSLs, but clearly Bash can do the trick, too.

I wonder how decent a programming language you could turn bash into using tricks like these.

<comment><USER4> You can in fact write a web framework for Bash using tricks like these: Bash on Balls has a HTTP parser and router, a model layer that implements OO similarly to this, even a templating language, esh

<http://news.ycombinator.com/item?id=2781019>

<comment><USER5> And if you're stuck in the Microsoft ecosystem there is DOS on Dope: <http://secretgeek.net/dod_intro.asp>

</comment></comment></comment><comment><USER6> You can do this in straight shell, with polymorphism. See <http://onestepback.org/articles/poly/sp-shell.html>.

And see <http://onestepback.org/articles/poly/index.html> for the same example in many, many other languages.

</comment><comment><USER7> Doesn't look like you can do polymorphism with it, which would be the real utility of this. Objects are globally named, etc.

But looks fun!

<comment><USER8> Why can't you do polymorphism? It looks like he just needs to add vtables to make that work.

</comment></comment><comment><USER9> Ha ha! Brilliant. An incredibly suitable domain name for such and insane monster!

</comment><comment><USER10> This is bad a joke - not only the classes and methods but the individual instances have statically generated names. That means in the examples, for the statically generated "one", "two" and "three" there's no way to assign them to another variable, or pass them as arguments to a function.

</comment><comment><USER11> I used this to make a utility logging class for bash scripts. It prints nicely formatted messages to the console and/or logfile. The format is similar to Linux boot messages.

<https://github.com/timbowhite/bashtasklog>

</comment><comment><USER12> Have bash skills?

<http://blog.audaxhealth.com/jobs>

</comment><comment><USER13> does anybody know if it works for zsh also ?

</comment><comment><USER14> There's insanity, and then there's this...</comment>


Rules for Autocomplete - <AUTHOR> http://jeremymikkola.com/posts/2019_03_19_rules_for_autocomplete.html <comment><USER2> Here's two autocomplete mistakes that really irritate me:

\- Autocomplete on enter: Chrome does this, if I type in [https://example.com](https://example.com) (enter), it makes the mistake of autocompleting to [https://example.com/some_page_I_visited_yesterday](https://example.com/some_page_I_visited_yesterday)

\- Arguing: Some applications that I use have autocomplete spell checkers that continue to aggressively try to "correct" technical terms, uncommon names, or company jargon that's not known. (For example, I'll cancel an autocomplete, then go back and add some punctuation, and it'll just "fix" the word again.)

\- Autocomplete when the text field looses focus is a form of arguing.

\- Learning typos, or incorrect learning: Libre Office started doing this. It learned some names, then it somehow learned a missed space after a common word and started continually trying to autocomplete "Electricvehicle" every time I put a space after the word "electric."

One thing that will help, in certain contexts, is the ability to unlearn or disable suggestions that frequently are canceled.

<comment><USER3> Unlearning is a great option. I have in Firefox a persistent autocompletion for a URL that I typo'd once, which still shows before the one I've been to a thousand times (because it's first alphabetically, I suppose?)

<comment><USER4> You can use Shift+Delete on an entry to remove it from the autocomplete list.

<comment><USER3> Not easily on a Mocbook Pro, which doesn't have a Delete key. Shift+Backspace doesn't work.

<comment><USER5> On MacBooks the combination of Fn+Backspace mimics Delete. So Shift+Fn+Backspace to remove a suggestion.

</comment></comment></comment></comment></comment><comment><USER6> A few good guidelines, but the author states this as generic autocomplete 'rules', and I feel a lot of bias and assumptions coming from programming and terminal contexts.

> If there are no subsequence/substring matches, it can optionally fall back > to approximate matches. This is rarely necessary to provide

Supporting proximity matches is critical for anything dealing with city names, landmarks, events, person or commercial names, etc, where typos and mixed language input are a normal occurrence. This applies to almost every e-commerce site out there.

> Matches should be sorted alphabetically

This is countered by a few other of his own rules, such as 'prefix matches come first', 'exact matches come first'. Again, in some applications the best behaviour might be sorting by distance, recent use, relevance, popularity, ratings. Sorting is entirely domain-specific.

> If an option is highlighted, never change it, even if new data is loaded

I don't get this one. If I have the second item selected, and search for a completely new term, should the item remain wedged in the new results at the same position?

<comment><USER7> >> If an option is highlighted, never change it, even if new data is loaded

>I don't get this one. If I have the second item selected, and search for a completely new term, should the item remain wedged in the new results at the same position?

I think the author means "never change it without user input". The problem is that Autocomplete is often slow, so developers load suggestions asynchronously, and may update suggestions shown to the user after better suggestions have been loaded.

If a suggestion was already highlighted at that point, the system should not change it, to avoid the case where the user tries to commit a suggestion, but the system changes it just before the user hits the key to commit the suggestion.

<comment><USER6> Oh yes, I can relate to that - iOS system search is always pulling the rug on me and making me click random apps / web search results. This can be solved by clearly indicating that new results are loading, or deactivating the current items.

</comment></comment></comment><comment><USER8> So, here is the thing. Modern browsers (at least Firefox and Chromium, haven't tried the others in a while) have AWESOME autocomplete widgets for their URL bars.

They incorporate multiple data sources (URLs and page titles from history, bookmarks, the search engine's keyword autocompletion, probably more), build statistical models (when I start typing "y" I want to go to Youtube 95% of the time, so suggest that first), don't clobber my paste buffer even though they pre-select some text, and so on. Awesome all around.

Could we _PLEASE_ get this exact same widget with pluggable data sources available as a HTML <input> element or similar?

Every time I build a web app, I feel that the user experience could be so much better if I had such an awesome autocomplete widget available. None of the javascript implementations come even close.

<comment><USER9> There are two problems with adding widgets to browsers:

1: Once they are in, you have to support them forever. Or you will break the few websites that use them.

2: Almost nobody uses them. Try 10 popular websites and chances are you will not see a single native dropdown. You might not even see something as simple as a native radio button.

I think it's better to get the basics right instead of building more and more 'userland' type of functionality into the browser itself.

<comment><USER8> > 2) Almost nobody uses them. Try 10 popular websites and chances are you will > not see a single native dropdown.

I'd argue that's because the native widgets haven't changed much since I've started using computers around 1994 (probably longer), and simply aren't up to the modern standards anymore.

If there was a native widget that worked better than any of the current javascript-enhanced widget and could be styled to fit the website around it, lots of people would use it. Maybe not the top 50 web pages in world, but lots of developers with lower budgets would.

<comment><USER9>
        that's because the native widgets haven't changed much

So why aren't they updated?

If browser makers can't maintain something as simple as a radio button, they will probably not be able to maintain more complex widgets.

Browser engines are already so complex that even a giant like Microsoft gave up on maintining one. And Firefox is spending over $200m in software development per year to keep up.

<comment><USER10> > _If browser makers can 't maintain something as simple as a radio button, > they will probably not be able to maintain more complex widgets._

Who said they "can't maintain it"? They just wont, which is different. Besides, it is up to HTMLWG/W3C to expand on those widgets, and they have done nothing...

> _Browser engines are already so complex that even a giant like Microsoft > gave up on maintining one._

Not because of them having radio buttons and form controls. Those we had since Mosaic... Even Lynx supports those.

It's all the other craziness (from 3D, to MIDI, to sound APIs, to 2-3 layout engines, to crazy CSS features).

<comment><USER11> It's not even that they won't, it's that _the radio button doesn't do the thing you want it to_. The radio button works, perfectly, as much as it ever did. There are no issues, regressions, or any such thing.

It is perfectly maintained as the exact UI element it should be.

</comment></comment></comment></comment></comment></comment><comment><USER12> Great list. Easy to follow. I will be using this next time i write an auto complete

My only objection would be

> Autocompletion to the nearest ambiguous prefix. If I type "g" and that > matches both "Google" and "GoodReads", this operation would fill in the two > "o"s, allowing me to then type either "g" or "d" to select the option I > want.

Dont change the input as i am typing otherwise you qill get 4 o's. Show it as an option and allow me to choose the help with right arrow or something

<comment><USER13> I think I have seen this implemented before and when it inserts the extra 'oo' it automatically ignores extra 'o's that might be typed. It allows for users to actually type Google, but also allows users to type 'Ggle' and get the same response.

<comment><USER14> The article mentions this being on some activation like tab or similar like bash uses. Automatic completion could work with two levels of highlighting. Example with []/{} showing active/suggestive:

      "[G]" <- Typed
      "[G]{oo}" <- Displayed in input, with Google/GoodReads as options
      "[Goo]" <- Tab Pressed
      "[GoodReads"] <- R Pressed
      "[Google"] <- g pressed
      "[Gx]" <- Any other character x

Then things like Chrome's url bar will fill in the complete first suggestion with a way to clear it which gives UX like:

      "[G]" <- Typed
      "[G]{oogle}" <- Displayed
      "[G]" <- Backspace pressed

<comment><USER15> Usually I've seen right arrow as the activation key.

</comment></comment></comment></comment><comment><USER16> One rule I always consider important:

> If I type the next letter of the top match, it should remain the top match.

I find these types of inductive rules might be a better way to express how autocomplete should work (given a limited universe of suggestions).

<comment><USER13> > If I type the next letter of the top match, it should remain the top match.

How would this not always be the case anyway given the other rules in place?

<comment><USER17> You're right in that this example violates, "When one option is the prefix of another, put the shortest one first." But a personal peeve of mine is Apple Spotlight. When I type d-a-s it autocompletes to dash.app, as soon as I type d-a-s-h it autocompletes to dashboard.app. Since it's built-in I felt limited in what I could do about it. Thanks to this post I looked up how to suppress it from Spotlight since I dont use Dashboard.

<comment><USER18> you might like this - [https://www.alfredapp.com/](https://www.alfredapp.com/) \- replaces spotlight, is faster, and fuzzy search seems better

<comment><USER17> I'll check it out again. I only use the most basic functionality of launching apps (I stretched out and started using the calculator a few months ago!). Years ago I looked at what was out there and used Quicksilver, but as soon as Spotlight started working for launching apps I stopped looking for anything else.

I can't imagine anything faster than Spotlight other than the few times where it's reindexing.

</comment></comment></comment></comment></comment><comment><USER19> It's important to note that this set of rules is for use with a small (<10000), known, possibly hand crafted set of results.

> Exact matches always come first.

One place this very first rule doesn't work is autocomplete for geocoding.

If you are typing "London":

\- There is a village called Lon, Pakistan [1]

\- There is also a village called Lond, Pakistan [2]

\- There are numerous places called Londo all over the world [3]

So its necessary to determine that some places are more likely to be typed than others (population is a commonly available number that can help, but doesn't always work), or autocomplete becomes useless.

[1][https://spelunker.whosonfirst.org/id/1209616309/](https://spelunker.whosonfirst.org/id/1209616309/)

[2][http://www.geonames.org/1370290/lond.html](http://www.geonames.org/1370290/lond.html)

[3][http://www.geonames.org/advanced- search.html?q=londo&country...](http://www.geonames.org/advanced- search.html?q=londo&country=&featureClass=P&continentCode=)

<comment><USER11> I see no reason this doesn't work for Lon and Lond and London.

It turns out that people in London, England have to type 2 more letters, a task that I am sure is not beyond them.

<comment><USER20> > It turns out that people in London, England

Together with all the other millions of people that write London around the world.

According to google trends London is searched about 20-30 times more often than Lon.

Sorting Lon before London (in absence of more information) seems a bad choice.

<comment><USER21> And I wonder how much the Lon search results are inflated by this same phenomenon? It may be a lot worse than 20-30 times.

</comment></comment></comment></comment><comment> yoz-y > If an option is highlighted, never change it, even if new data is loaded.

I'd change this to "never change the positions of already visible elements when the person is not typing". Typing something, then trying to click/tap on a result that disappears and gets replaced by something else is infuriating.

<comment><USER22> Spotlight in macOS is terrible when it comes to this sort of thing, and it's been that way forever. I can't count how many times I've tried to launch an app with Spotlight only to realize that macOS has conveniently replaced the highlighted top hit (that I wanted) with something else between the time my brain said "go" and my pinky hit "return".

<comment><USER23> The thing is, it does never really stop: [https://i.imgur.com/UVPpYYO.png](https://i.imgur.com/UVPpYYO.png)

</comment></comment></comment><comment><USER24> > Besides exact matches, prefix matches come first.

Google Maps used to do this, and when I entered "9831 Main St, Funky Town" once and a day later I would not remember the street number. Entering "Main" would not give me what I wanted.

Google Maps does what I want now AFAICT and entering "Main" will return "9831 Main St, Funky Town" first.

<comment><USER25> I feel like little QoL things like this are what keep Google at the top of the world. It seems that Google's real business is search after all.

</comment></comment><comment><USER26> > Matches should be sorted alphabetically

This should only be done in lieu of information about frequencies. If I type "repub" into Google, "republic of korea" appears before "republic of ireland" because it's more popular with users in my demographic (and we know that they are not simply doing reverse alphabetization because "republic of gamers" appears after both).

Sorting should happen in this order:

\- whether it's a prefix

\- empirical frequency

\- the number of tokens in suggestion

\- alphabetization

With that said, achieving all of this at the same time is pretty difficult - especially within the prescribed sub-100ms response time.

> If there are no subsequence/substring matches, it can optionally fall back > to approximate matches. This is rarely necessary to provide.

I completely disagree with this. Fuzzy matching is extremely powerful. People routinely get things wrong, particularly on mobile devices, and you don't want the suggestions to disappear the second I make a mistake.

</comment><comment><USER27> > Autocompletion to the nearest ambiguous prefix. If I type "g" and that > matches both "Google" and "GoodReads", this operation would fill in the two > "o"s, allowing me to then type either "g" or "d" to select the option I want

This is terrible, unless I misunderstood. It would mean that if I typed "Google" without looking at autocompletions, I would end up with "Goooogle".

I keep fighting the in-browser auto-completion boxes which try to be too smart and annoy me to no end. Whatever auto-completion you provide, your first priority should be "do no harm": if the user typed something that should be considered as Holy Scripture.

<comment><USER28> This should only happen for user requested auto-completion. For example typing "g" <tab> "g" <tab> would result in Google in the provided example.

This is very beneficial in code completion or navigating file directories. It is horrible when typing an email (though maybe when searching email contact). Definitely needs to be context aware.

</comment></comment><comment><USER29> "The user should never have to take extra steps to not use autocomplete"

Failure to follow this rule is possibly the most egregious of sins one may commit, and is unfortunately very common. You have to wonder if people doing this ever even test it themselves.

</comment><comment><USER30> I was pretty sure I'd see this:

> If an option is highlighted, never change it, even if new data is loaded.

They're quite deliberate in favoring showing new things in response to additional keystrokes over results that have already been displayed and not selected with fewer keystrokes.

This annoys me, but I type faster than I read even when I'm searching. I don't think most people do so it makes sense to not keep showing the same result after more keystrokes.

Plus I think it just looks smarter, and surfaces more results. So if you're using the autocomplete of Spotify, you see more songs than you would if it kept showing the same result.

I think they're trading function and usability for showing the user more stuff, and making the app look more intelligent.

For an example of what I'm talking about, if I type "ha" into spotify, "Happy Now" is the third result. If I type "p" so it's "hap", it becomes the sixth result. Sometimes it pushes it all the way to past the end of the screen.

</comment><comment><USER31> Agree with a lot of these, particularly the ones that prevent misclicks (changing the data "underneath you" when you have something else selected, or "enter" doing something unexpected).

However, strongly disagree with the sorting and preference guidelines. In general the autocomplete should match the intention of what the user is trying to accomplish which is going to vary widely depending on context. Sometimes that's the shortest lexical thing, sometimes geo matters, sometimes recency of usage matters, etc.

<comment><USER32> To be fair, the introduction says that these guidelines shoukd be changed on a case by case basis if common sense dictates that. The ruleset as described is generic - and also slightly opinionated.

</comment></comment><comment><USER33> I would love autocomplete in URLs I haven't visited before. Eg my browser should be able to query foo.com for all its available urls and let me search / filter through them via autocomplete.

So I could type

foo.com/sig

And I see/tab through the route for foo.com/sign-in or signup or whatever the server has available.

We'd need an agreed endpoint for browsers to query (.well-known/routes?) and some implementations to automatically / easily generate the routes, but it doesn't seem unfeasible

<comment><USER34> We already have sitemap.xml that could be used for this purpose

<comment><USER33> You're right actually. Building a web extension for this would be pretty cool. I'll take that on when I get some free time.

<comment><USER35> sitemaps easily run into the gigabytes for larger sites. I just checked [https://www.nytimes.com/sitemaps/www.nytimes.com/sitemap.xml...](https://www.nytimes.com/sitemaps/www.nytimes.com/sitemap.xml.gz) and it contains 2000 urls of individual weekly sitemaps of 1 or 2MB each. And that's just part of their sitemap structure.

</comment></comment></comment></comment><comment><USER36> An anecdote on MacOS Spotlight and learning algorithms: I never started Chrome browser with it, because it was already running and never shut down. Then I (once!) started the chess game with Spotlight. Fast forward half a year, and Firefox had became my preferred browser. Chrome was no longer running always. However, Every Single Time I now try to start Chrome using Spotlight this happens: Type 'C', press enter and Chess starts up. Shut down Chess, carefully type 'Ch' and wait for Chrome to appear on the list.

It is hard to learn predictive input when you cannot know if the predicted end result was actually what the user wanted.

</comment><comment><USER37> * If the user types a word that is both a common dictionary word and part of the name listed in a contact, do not auto-capitalize it. You are not helping when you auto-capitalize this.

</comment><comment><USER38> _The matching should probably be case insensitive unless there are two options that differ only by case. In that case (pun intended), prefer the one that more closely matches the user's input._

I find "smart case" is a nice solution here. The filtering should only be case-sensitive if the input has an uppercase letter.

</comment><comment><USER39> Particularly twitter is a huge sinner in regards to autocomplete. When searching, autocomplete for profiles comes much faster than the autocomplete for search terms. Often bad timing makes me hover a profile and then right when I click the search terms autocomplete finishes and changes the data underneath me.

<comment><USER40> Came here to mention this also. I have a 200meg internet connection, and this get's me every time. I wonder how bad it is on a slow connection?

</comment></comment><comment><USER41> Agree with some of them, but not all:

> Matches should be sorted alphabetically.

Not always. Sorting is usually a good idea, though.

> When one option is the prefix of another, put the shortest one first.

Except this means that uncommon, short prefixes will always show up first. I guess "San Francisco" isn't going to have a great time :(

<comment><USER42> What's frustrating with San Francisco is when you're in the US, type it in, and see San Francisco, Agusan del Sur; San Francisco, Cebu; San Francisco, Quezon; etc. pop up before the one in California... like what are the chances that you're in the US and referring to those instead of the one that's actually in the US?

<comment><USER43> Matches should be sorted by a weighted score that takes both geographical distance, prioritizing San Jose over San Jose appropriately rather than blindly sorting them adjacent.

<comment><USER44> Exactly, some rules are meant to be broken. If the user is believed to be in northern California and types 'San ', then "San Francisco" should _probably_ be higher up the list than "San Diego" despite that not being alphabetical order.

Determining whether or not the autocompletion should work like this is a matter of common sense applied by the developer, there is no hard and fast rule. In some hypothetical circumstances it may make more sense to sort by population size, rather than geographic proximity (let alone alphabetically.)

</comment></comment></comment></comment><comment><USER45> Great list. I would add:

* Don't automatically add the suggestion as selected text in the search box. Because pressing delete will delete (only) the auto-completed text, not the last character you typed (which is what you'd expect if you're typing fast). The Chrome URL bar is an offender here.

</comment><comment><USER46> Mobile phones are barely mentioned here.

On a physical keyboard you can be confident that key presses were intended, that assumption doesn't really hold on a phone.

If I type 'thr', 'the' is a possibly legitimate word that should be getting suggested at some point.

</comment><comment><USER47> When the results change, they ability to use things that took over a position should be disabled for 100ms.

</comment><comment><USER48> The biggest autocomplete annoyance I find in some implementations is that they spring into action the moment you type a single character, and then do so much processing (in apparently the same thread) that they horribly slow down the entry of subsequent characters! You make mistakes due to the lag, and the whole experience is just shit. The run prompt in Microsoft Windows is like this.

Like, hold your horses for three or four seconds so I can type more, then you have less to search for. Prioritize my typing response time over the background search, damn it!

(Really, explicit auto-complete is best, like in command lines ("Tab completion")).

The second biggest gripe is autocomplete choices that dispatch the command. Sometimes you see an autocomplete item that is close to what you want, except for a small edit or addition. Nope, you can't just have that completion in your edit buffer for further refinement: that item is actually just an item in a dynamically constructed pop-up menu, bound to do the dispatch action.

Third gripe: caching invalid entries, such as misspellings, and offering them in future auto-completions! Browsers do this: you misspelled a domain name three weeks ago, so the resulting URL couldn't possibly load, but now it's still coming up as a completion item!

</comment><comment><USER49> here's my pet peeve: its the omnibox in google chrome. it _only_ chooses prefix-lengthening matches

if I am on guardian.co.uk/au I can find sub-spaces _under_ this.

I also visit guardian.co.uk/uk but I cannot be told about it by google omnibox rules. But, URL forms are syntactically bound, the /... is well understood to identify a base-URL and sister URLs. The stringmatch logic should show me at least some of my sisters alongside the longer-prefixes under the au... sequence.

<comment><USER50> The conspiracytheorist in me thinks Chrome's address bar is intenionally crippled to make you do a Google search instead. It's so so different from how well it works in Firefox.

It also breaks the rule in the article about not selecting the suggestion for you. When I start typing in Chrome it fills my whole bar with a suggested url that matches. I end up pressing esc to remove the last highlighted/completed part, but that ends up clearing the whole field. I do this multiple times a day, drives me nuts.

<comment><USER51> Alright - use Firefox! It's a great browser and one that doesn't treat you as the product.

<comment><USER50> I do use Firefox as my private browser, but at work I switch between multiple browsers and various test environments. So I have lots of almost identical urls where Chrome completes something I don't want to be completed, or pretends it doesn't understand what I'm looking for.

</comment></comment></comment></comment><comment><USER52> > The tab key should always accept the current autocomplete option

I was with them right until here. Tab is a well-known button that has one function: going to the next selectable element. Not do something funky with your autocomplete list. If I want to tab to the "go" button that is after the autocomplete list, then I expect tab to take me there. How else would I do it? I'm not visually impaired, but I hate having to move over to the mouse to leave your input field (feels like Flash Player all over again).

Of course, if I selected an item and then press tab, then the value of the suggestion should be used together with sending my focus on its way.

An earlier item should solve this, so you don't need to use tab to use the suggestion:

> The action to make use of [your input] must be a different key than the > action to [make use of the autocomplete]

(If I understood that correctly in the first place, the sentence is a little convoluted.) But to hijack a perfectly useful button? That's a no-go. I'm not even sure what other keys you could use: space should usually be a space, enter would go using your input (unless you selected a suggestion with the down arrow maybe), so what's left that does not have an alternate function, caps lock? Sysrq? Or something like shift+enter?

</comment><comment><USER53> One thing that is also annoying is that some autocomplete list implmenetations will select an option on mouseover even if mouse didn't move.

So if you place a cursor somewhere below the input, when you type, the list will open with non-first item selected, which breaks the muscle memory in a very annoying way (i know that after typing a few letter what the first item will be, so I confirm selection by habbit immediately).

</comment><comment><USER54> > The tab key should always accept the current autocomplete option, if there > is one (whether it is highlighted in a dropdown or suggested inline).

Someone please let Slack know. I type "@dustin" and see one of five Dustins, the one I want is highlighted, so I press tab and it selects the next Dustin and usually I press "tab enter" to then submit my comment and now I've pinged the wrong person.

</comment><comment><USER55> > The user should never have to take extra steps to not use autocomplete

This! I hate it when I type a word, hit enter, and the widget search for a totally different search term that happens to begin with that word as its prefix. Firefox and Chrome, I'm looking at you.

And no, "press Backspace to search for what you actually typed" is not a good solution.

</comment><comment><USER56> This is pretty interesting and useful. Now where are the details about how to get ElasticSearch to behave this way? :)

<comment><USER57> > Now where are the details about how to get ElasticSearch to behave this way?

The rules posted in the article make a lot of sense, but they also require a ton of backend work. To do prefix matches quickly, you need to create a new index of your content. Then to handle the relevance rules described, you need to be able to query both indices and merge the results in a meaningful way. No obvious way to do this with ES.

</comment></comment><comment><USER58> Goodreads is the most flagrant violator of most, if not all, of these rules. Searching for a book, author or a user is a PITA, and has been that way for a long, long time.

The best autocompletion I've seen is on Wikipedia - no frills, and extremely accurate. If only all services were like this.

</comment><comment><USER59> In case you're looking for some JS autocomplete libraries you can inspect the kind of results they give on [https://fiatjaf.github.io/search- comparison/](https://fiatjaf.github.io/search-comparison/)

</comment><comment><USER54> Autocomplete is really frustrating on my phone.

Spelling. It should use key distance. Typing "hrapg" should suggest "graph."

Grammar. The tense of the verb is never suggested correctly. Just previous, as I typed suggested, it gave me suggest until I got passed the whole word.

Responsiveness. If I type "early," I start with "ea" and I notice "early" as a suggestion. I type "r" as I reach up with my other thumb to select "early," but before I can even stop myself, "ear" now suggests "" (the ear emoji) and I inadvertently click it.

Editing. If I deleted a word at the beginning of a sentence, the new word is needing to be capitalized. I click the word, and that suggestion doesn't appear.

<comment><USER60> I think your referring to auto-correct, rather than "autocomplete".

</comment></comment><comment><USER61> My pet peeve - the Safari URL bar that will start autocompleting based on page title, but won't let you edit the URL it completes to without visiting said URL. (It only lets you edit the title it's matching)

</comment><comment><USER62> > The user should never have to take extra steps to not use autocomplete.

This is so annoying in VSCode. Often it has a really dumb autocompleter (if the language is hard to autocomplete for - Rust or Python for example), so there are _always_ autocomplete options no matter what you type.

Also, pressing enter is the way you pick an option. Which means if you are typing something quickly followed by a newline like this:

      // This is a comment.[press enter]

You will actually get some nonsense like this:

      // This is a comment.operator+=()

Very frustrating.

</comment><comment><USER63> I have written several autocompleters, both for desktop- and web-apps. Put in a good amount of thought and coding, and I do believe they worked reasonably well, and would have scored alright on this list.

One thing, though: Context. Expectations will vary, depending on who is using the particular input field and for what. Searching a customer base? Match first on names, then further down on addresses, emails and whatnot. Or whatever.

</comment><comment><USER64> > If there are no subsequence/substring matches, it can optionally fall back > to approximate matches. This is rarely necessary to provide.

> Matches should be sorted alphabetically.

But pay attention to other languages / alphabets. From 2009:

[https://alistapart.com/article/accent-folding-for-auto- compl...](https://alistapart.com/article/accent-folding-for-auto-complete)

</comment><comment><USER65> I just want VSCode to stop "fixing" "import numpy as np" to "import numpy as numpy" when I press enter.

<comment><USER66> Disable the "Editor: Accept Suggestion on Enter" option. There's also a setting "on Commit Character" which would approve the suggestion on semicolon (javascript).

Took me a while to find them, but life is so much nicer without needing to manually correct stuff.

</comment></comment><comment><USER67> Kibana 5 has (had?) one of the more annoying autocompletes I've seen, where when you press enter it searches for the first autocomplete result instead of what you actually typed in. Makes it so I always need to use the mouse to press the seach button.

I'm not sure if they fixed this in newer versions but jeez is that bad UX

</comment><comment><USER68> Please add to the list: Auto detect language! It's super frustrating when you try to write to your German friend and autocorrect just keeps mutilating perfectly good German words into gibberish (e.g. it's trying to autocorrect to English etc. default language).

<comment><USER14> This is talking about search auto-completion and not spelling auto-correct.

<comment><USER68> Whoopsie. Caught cold turkey I admit. But for what it's worth, for text editor and text message spelling autocorrect, auto detect would be nice, even if off- topic.

<comment><USER14> Actually autocomplete for each word might not be too bad. Just get a unique prefix or few letters in order and that's all you need.

</comment></comment></comment></comment><comment><USER69> Interestingly enough, some of us were debating this elsethread

[https://news.ycombinator.com/item?id=19432965](https://news.ycombinator.com/item?id=19432965)

</comment><comment><USER70> Do databases like MySQL/PostgreSQL support searching the reverse index? I was looking for a solution but haven't really found one to show autocomplete results.

</comment><comment><USER71> One thing I didn't see here that's a big pet peeve of mine, if you're typing and the first option changes despite the first matching prefix not changing.

</comment><comment><USER72> Desktop Safari breaks a number of these, most notably and annoyingly:

        "When one option is the prefix of another, put the shortest one first."

</comment><comment><USER73> For most of businesses it's too pricy to write a good one. Also it's too pricy to have a bad one.

Consider using SaaS like Constructor.IO, algolia.com etc.

</comment><comment><USER74> I've always thought that Markov chains would work well for autocomplete, or is that how most autocomplete engines are implemented already?

</comment><comment><USER75> Twitter has some really bad autocomplete UI where invariably I am tapping something and a new result gets tapped instead.

</comment><comment><USER76> Any good JS libraries that conform to suggestions noted?

</comment><comment><USER77> These are almost completely wrong. The goal of AC is to get to "what I meant to type" and good AC systems are designed with priors (eg frequency), common spelling mistakes, etc in mind.

</comment><comment><USER78> what if I want to search for something with a comma in it?</comment>


Enough with the Trolley Problem - <AUTHOR> https://www.theatlantic.com/technology/archive/2018/03/got-99-problems-but-a-trolley-aint-one?single_page=true <comment><USER2> For some reasons the link goes to a 404, this works:

[https://www.theatlantic.com/technology/archive/2018/03/got-9...](https://www.theatlantic.com/technology/archive/2018/03/got-99-problems- but-a-trolley-aint-one/556805/)</comment>


How Bangladesh vanquished diarrhoea - <AUTHOR> https://www.economist.com/news/asia/21739211-its-gdp-person-barely-half-indias-it-has-lower-child-mortality-rate-how-bangladesh <comment><USER2> The approach to build latrines for the poorest people then shame the "rich" into building ones for themselves is marvelously devious.

According to the article, even marriages were canceled after it was revealed that the family of one of the newly weds is without this essential status simbol.

<comment><USER3> About 100 years ago in New Zealand my great great grandfather was very proud of his "WC". Of course only guests were allowed to use it!

<comment><USER4> What does WC stand for?

<comment><USER5> Is English your mother tongue?

In South America, people use WC, Patent (because it was written on the loo), or just Water (in Uruguay, at least) a lot. So it would be funny if (at least WC) was not as known in the English-speaking world. Patente (used in Brazil) is obviously just derived from the Patent label.

<comment><USER6> Italians use "water" (spelled váter") or WC (spelled "vee-chee"), rarely "tazza" or the less elegant "cesso".

<comment><USER7> In Germany, Crapper manufactured toilet bowls are still common.

</comment></comment></comment></comment></comment></comment><comment><USER8> When I was growing up in Bangladesh in the early 90s, the only channel on TV had continuous ads for Orsaline (Pedialyte in the US) and what to do if you didn't have (or couldn't afford) it when your child was ill.

I have long since left Bangladesh, but it warms my heart to see that the the grassroots campaign paid off in droves.

</comment><comment><USER9> Interesting that the article doesn't mention Nobel Peace Laureate Muhammad Yunus. In order to be eligible for his micro loans people had to commit to building a toilet/WC/loo amongst other things. Given that approx. 140 mio people in Bangladesh borrowed micro loans from him he must have had some influence on it.

<comment><USER10> > Given that approx. 140 mio people in Bangladesh borrowed micro loans from > him he must have had some influence on it.

That's a little far fetched. I am one of the 140 mil and I do not recall borrowing from him (or anyone I know). As novel as the idea of micro financing is, realistically it has little impact on poverty reduction in Bangladesh, the RMG and manpower export sector has more stake in the claim.

The sanitation revolution can be attributed to Sir Fazle Hasan Abed[0], the founder of BRAC[1].

[0] [https://en.wikipedia.org/wiki/Fazle_Hasan_Abed](https://en.wikipedia.org/wiki/Fazle_Hasan_Abed) [1] [https://en.wikipedia.org/wiki/BRAC_(organization)](https://en.wikipedia.org/wiki/BRAC_\(organization\))

</comment></comment><comment><USER11> A similar story is detailed in a booked called The Power of Moments. In particular, they focus on the shaming that they do to change behavior

</comment><comment><USER12> Can someone summarize? I could only read the 1st paragraph before ads froze up my browser.

<comment><USER13> This extension is excellent and works on mobile if you have Android Firefox: [https://github.com/gorhill/uBlock](https://github.com/gorhill/uBlock)

If you're on iOS, Brave has an ad blocker built in.

<comment><USER12> Windows Phone. A lot of great things about the platform has kept me using it, but modern (aka bloated) websites aren't too great these days.

</comment></comment></comment><comment><USER14> "In Matlab, a part of Bangladesh with good data, deaths from diarrhoea and dysentery have dropped by about 90% since the early 1990s (see chart)."

I just kept reparsing and trying to error correct that sentence over and over until it finally sunk in that yes, they are saying _Matlab_ is actually the name of a place in Bangladesh.

<comment><USER15> > I just kept reparsing and trying to error correct that sentence over and > over until it finally sunk in that yes, they are saying Matlab is actually > the name of a place in Bangladesh.

I'm Bengali, and I looked up the spelling of the name. It looks like it's spelled মতলব, which means it's pronounced more like "Motlobe" (the second "o" is halfway between "lob" and "lobe"). It means "plan" or "project", which I'm guessing refers to some attempt at creating a township at some point (or being named after a place that was).

For reasons, Bengali words are often transliterated in the Sanskrit form, which means that the spelling doesn't really always represent their actual pronunciation. (This is why people often have a _harder_ time pronouncing my name when they see it spelled out in English, because the final syllable is transliterated according to Sanskrit, but pronounced differently. It's sort of like -ough as a suffix in English.)

<comment><USER16> And I can imagine a small techie tourism trade for people who want to say, "Yeah. I've been to Matlab. For two weeks, I breathed it, ate in it, and slept in it."

</comment></comment></comment><comment><USER17> Can we get a flag for pay-walled/register only content on posts and a checkbox in settings on our profile to hide these posts?

<comment><USER18> Not sure why you got downvoted. It seems like a very pragmatic and helpful feature.</comment></comment>


Build a Web Chat Component - <AUTHOR> https://medium.com/outsystems-engineering/how-to-build-the-ultimate-reusable-web-chat-component-c9acf3dc5f2b <comment><USER2> This very much feels like a promotionpiece for silkui.

"Regarding the UI, the choice is yours. Et voilà! You have a working chat app!" Or you could use our silkui tool.

I am not against promotionpieces on hackernews, I realize that companies need to earn money somehow. But I certainly expect more than a datamodel, "lets use firebase for realtime communication", and "draw the rest of the owl/UI"

</comment><comment><USER3> What would be nice is a component that would connect to a XMPP server over a websocket, create a temporary account (save a handle to localStorage) and start a chat with me. Everything could run on the same server.

Perhaps a small plugin for prosody if necesary at all and a self-contained JS code. Nothing else.

</comment><comment><USER4> recently, [https://news.ycombinator.com/item?id=16430108](https://news.ycombinator.com/item?id=16430108)</comment>


Ask HN: Pre-revenue valuation - <AUTHOR>

How do you decide what a company with traction is worth pre-rev for a low millions round? <comment><USER2> Practically speaking, the market sets the rate. How desirable you are compared to other deals, determines your valuation above that rate.

Let's say your company has typical proof-of-concept traction. Depending on the specific space that could be 10-50k uniques per month.

For example, 500 startups typically makes a 50k investment at a $1 million dollar valuation for companies they incubate. Syndicated angel / early stage vc rounds are usually (lately) in the $3-5 million post range. However, this is more a function of the amount raised and the % each investor needs to make their investment model work.

I've also noticed that revenue for most early-stage companies looking to raise funds, when revenue does exist, is usually a milestone (proves the business model). A company that has yet to scratch the surface in their market, which is most early-stage, doesn't get their valuations off multiples. A company w/ rev of 5k per month that gets a $3 mil pre-money "technically" has a 50x valuation (annualized) or let's say 25x with some decent growth projections. But, the revenue doesn't lead the pricing, it's a just truism via basic financial formula.

</comment><comment><USER3> Guess and use a convertible note instead of a straight investment. If the company is worth something, the note turns into an investment. Otherwise, the note stays a loan that needs to be re-paid.

<comment><AUTHOR> Aren't convertible notes for small amounts before larger investment?</comment></comment>


Floorspan: rate my startup - <AUTHOR> http://floorspan.com/

<comment><USER2> I like the concept, after a brief look at the site here are my thoughts:

1) The site has a clean look but is fairly boring and bland. Get some more color and design going. It's hard to separate content visually etc.

2) As a side project it looks cool but I don't see the startup potential. Where's the money going to come from? Ads on floor plans? Your click thrus will be low I fear.

3) How do you get more content? What's the motivation for me or for a conference center to get their floor plan on your site? I'm not sure it solves a problem that existed before. Was navigation of conferences and hotels that big of an issue?

Some ideas: 1) Make mobile access possible a bigger selling point. If I can get to it from my iphone or blackberry etc then that makes it a bit more useful.

2) Find your way to draw in more content.

3) Find your line to profit. Is it a directory for conventions + this nifty layout and mapping utility? Do you rent a higher quality system for events willing to pay for it?

I'm not trying to cast dispersion and such, good luck on it :)

</comment><comment><USER3> Nice logo, good pithy tagline. You need some variation in the background colors on the map.

Maybe needs more explanation of who will use this and how: planners, event hosting, exhibitors, guests. EG, "Going to FooCon? Looking for the Sony Booth?"

Overall, looks very nice. Good luck!

</comment><comment><AUTHOR> My good friend and I recently made our startup project public. I chose to make an interactive map of EclipseCon 2009 for an early demo since it has enough going on in a large space to make the demo interesting.

Also, if you have an iPhone, be sure try us out thru mobile Safari. We have an alternate iPhone UI.

We're prepared to support conferences at this point, but we've kept other indoor/custom mapping scenarios in mind while developing.

We would really appreciate any feedback you may have: ideas, layout, design, etc.

Thanks! Casey & Nassim <http://floorspan.com>

</comment><comment><USER4> interesting</comment>


Show HN: A simple distributed key-value store built on Raft - <AUTHOR> https://github.com/otoolep/hraftd <comment><USER2> If you're going to build a Raft demo, perhaps it should show strong consistency? Memcache supports compare-and-swap, so a distributed KV store speaking the memcache text protocol, and implementing a distributed CAS sounds like a great place to start!

To my knowledge, a very simple distributed CAS doesn't exist, and there are plenty of memcache clients, so I also think this might maximize the odds people use hraftd in their production environments at some point.

<comment><USER3> Arakoon supports this: [https://github.com/openvstorage/arakoon/](https://github.com/openvstorage/arakoon/)

</comment></comment><comment><USER4> Not trying to be cynical, but "simple distributed" is an oxymoron.</comment>


Unicode Security Considerations: URL spoofing etc - <AUTHOR> http://unicode.org/reports/tr36/tr36-8.html

<comment><USER2> The changes to the internationalized domain-name rules this document links to are particularly scary: <http://www.unicode.org/reports/tr46/#Security_Considerations>

Some identical Unicode strings might resolve to different domains depending on what version of a browser you're using!

</comment><comment><USER3> Personally, I'd like to see a system where the language of a character is colorized in the browser. This way, the mixed script spoofing [1] would highlight the first example's "o" in a different color, as it comes from greek text instead of ASCII. It should be an always-on system, so when an entire URL is in a different-but-similar-looking-to-your-language text, it'd be highlighted differently. The system / browser's "main" language wouldn't need to be highlighted, but all others should, to make other languages easily visible.

That, and _always_ having a "punycode" translation available would be useful, and browsers should use the browsing history to point out similar-looking URLs that are different. I'd imagine such a similarity-mapping on UTF-16 exists, though at worst case it could just graphically compare the characters.

[1] [http://unicode.org/reports/tr36/tr36-8.html#Mixed_Script_Spo...](http://unicode.org/reports/tr36/tr36-8.html#Mixed_Script_Spoofing)

</comment><comment><USER4> I'm not vulnerable to phishing anymore, because I use a password manager. If it doesn't submit a password, I know I'm on the wrong website.

A big chunk of these problems (and phishing in general) would go away if users weren't responsible for authenticating websites by _looking at_ the URL. Good, portable password management needs to become more common.</comment>


Walmart's Three-Billion-Dollar Hire - <AUTHOR> http://www.newyorker.com/business/currency/walmarts-three-billion-dollar-hire <comment><USER2> I've been thinking a lot about this acquisition and I think I figured it out. Jet was really not growing and it would have been hard for their backers to pony up based on those metrics. However, Jet was still at a point where they were relevant and could potentially compete with Amazon. They could have waited a 12-18 months and bought Jet for 1/6th the price but they would have lost employees and a brand that could potentially compete with Amazon. At some point brand value falls of a cliff (think MySpace, Friendster).

In many ways this is hedge on Walmart's future. If they don't buy Jet it's unlikely that they build something in house. However right now, they, and Jet has a fighting chance and I guess that fave Jet more leverage in the negotiation.</comment>


Paju Book City - <AUTHOR> https://en.wikipedia.org/wiki/Paju_Book_City <comment><USER2> "Inside Paju Book City books outnumber people by a ratio of 20:1"

Pathetic! In my house its more like 1000:1</comment>