Call me maybe: Elasticsearch 1.5.0 - <AUTHOR> https://aphyr.com/posts/323-call-me-maybe-elasticsearch-1-5-0 <comment><USER2> > How often the translog is fsynced to disk. Defaults to 5s. [...] In this > test we kill random nodes and restart them. [...] In Elasticsearch, write > acknowledgement takes place before the transaction is flushed to disk, which > means you can lose up to five seconds of writes by default. In this > particular run, ES lost about 10% of acknowledged writes.

Something bothers me about this: if the bug was merely a failure to call fsync() before acknowledging an operation, then killing processes shouldn't be enough to cause data loss. Once you write to a file and the syscall returns, the written data goes into the OS's buffers, and even if the process is killed it won't be lost. The only time fsync matters is if the entire machine dies (because of power loss or a kernel panic, for instance) before those buffers can be flushed.

So is the data actually not even making it to the OS before being acked to the client? Or is Jepsen doing something more sophisticated, like running each node in a VM with its own block device instead of sharing the host's filesystem?

<comment><USER3> I believe Jepsen is killing (VM) systems, not just processes. It is meant to model the failure modes in a data center, which would include machines bursting into flame, etc.

<comment><USER2> Hmm. Upon looking at the documentation [1], it looks like the recommended configuration is to run nodes in LXC containers. Maybe I'm mistaken, but I thought "LXC" basically just meant some automation around kernel features like chroots, user namespaces, etc. In which case, shouldn't the containers share the host's VFS and pagecache?

[1] [https://github.com/aphyr/jepsen/blob/master/jepsen/README.md](https://github.com/aphyr/jepsen/blob/master/jepsen/README.md)

<comment><USER3> Ah, I didn't know it used LXC, as opposed to Xen or so.

</comment></comment></comment></comment><comment><USER4> The 'Recap' section has good advice to address the issue of data loss:

 __ _My recommendations for Elasticsearch users are unchanged: store your data in a database with better safety guarantees, and continuously upsert every document from that database into Elasticsearch. If your search engine is missing a few documents for a day, it's not a big deal; they'll be reinserted on the next run and appear in subsequent searches. Not using Elasticsearch as a system of record also insulates you from having to worry about ES downtime during elections._ __

<comment><USER5> I do something similar but my data is not that important, as most of you guys work on - I have a very high rate of data being input from users for curating purposes in a bioinformatics lab..So I load the data onto a mongodb cluster and run the elasticsearch-river-mongodb [1] to keep the elasticsearch in sync with the mongodb.. I do not know whether it solves this problem - but I am happy that I have data safe in mongodb - any inputs regarding my method would be appreciated..

[1][https://github.com/richardwilly98/elasticsearch-river- mongod...](https://github.com/richardwilly98/elasticsearch-river-mongodb.git)

<comment><USER6> "Data safe in Mongo" seems... less reassuring than I think you meant it to be:

[https://aphyr.com/posts/322-call-me-maybe-mongodb-stale- read...](https://aphyr.com/posts/322-call-me-maybe-mongodb-stale-reads)

</comment></comment></comment><comment><USER7> Elasticsearch has its flaws, but are there really any alternatives that do what it does? In my case, I need to do fulltext search across millions of documents -- nearly a TB of text in all, and still growing. Many database engines can do basic fulltext, but what else can scale like Elasticsearch does while offering powerful fulltext features like fuzzy matching and "more like this?"

<comment><USER8> Riak search works well. The indexing is just Solr, but the cluster and data itself is managed differently.

<comment><USER9> Riak Search 2.0, or Yokozuna is what you're thinking about.

DISCLAIMER: I work for Basho.

</comment></comment></comment><comment><USER10> TL;DR; All previous data loss scenarios still exist, however the window during which data can be lost is much smaller.

<comment><USER11> And all known defects are now documented. [http://www.elastic.co/guide/en/elasticsearch/resiliency/curr...](http://www.elastic.co/guide/en/elasticsearch/resiliency/current/)

</comment></comment><comment><USER12> I bet the people who work for these database companies have nightmares about getting bug reports from Kyle.

But seriously, his work is super impressive. Kudos to Stripe for funding this.

<comment><USER13> Isn't a bug report always a good thing? I mean the real nightmare is your users sending outraged emails about corrupted data and you have no idea what's going on. With the bug report (and especially from Kyle) at least you got something to chew on. As people say, a reported bug is a bug half-fixed.

</comment></comment><comment><USER14> waaaay back in the mid 2000s when search engines were large, complex, expensive pieces of enterprise software not unlike a commercial database, it was always assumed (and the customer told) that the search engine cuts corners for the sake of speed, in both indexing and searching, and that it should never be counted on as a database, or any kind of authoritative data store. it does one thing: search staggering amounts of information quickly at acceptable levels of performance and accuracy.

looks like expectations have moved beyond that, which is good, but it's not an easy problem to solve... especially with billions or trillions of documents in the index. leaving out all the the important stuff that made a database slow is what made a search engine fast.

</comment><comment><USER15> Key takeaway for me:

"crash-restart durable storage is a prerequisite for most consensus algorithms, I have a hunch we'll see stronger guarantees as Elasticsearch moves towards consensus on writes."

It seems like ElasticSearch is inching towards a proper consensus algorithm, at least optionally, which makes me wonder yet again, why not just implement RAFT? While I won't speculate I will point out that the answer for other systems appears to have been related to ego (ie, distributed systems are easy).

<comment><USER16> The funny thing is there is a community plugin that fixes almost all of this by using Zookeeper for discovery and master election.

The not so funny thing is Elastic employed the primary developer of said plugin and basically shut it down.

<comment><USER17> actually, it doesn't fixes the mentioned bug. I am only posting this here to make sure people won't go and try and install it thinking it does...

There is a difference between cluster level master election and replication semantics in Elasticsearch (and other similar systems). Even if you use Zookeeper for cluster level master election, one still needs to handle point to point replication (which doesn't go through zk).

<comment><USER16> I should have been more specific. The ZK plugin fixes the issues related to network split-brains and other nasty partition conditions.

The newly discovered translog issue is also a problem and is not solved by ZK but is also a lot less scary.

</comment></comment></comment></comment><comment><USER18> I'm pretty pleased with Elasticsearch's progress on durability. The snapshot/restore feature has been pretty nice to work with!

That said, having a "single source of truth" and regularly refreshing Elasticsearch is a _huge_ pain in the butt. I currently maintain a ~500 line syncing script that takes ~15 minutes to run.

Adding a new field in a doc_type means:

\- Adding a column in Postgres

\- Adding a field in the doc_type mapping (I think being explicit with the field is better practice)

\- Adding code to the syncer to update the field.

Ouch.

Also, the syncing scripts required a steep learning curve. At first, I was upserting everything and the syncing script took forever. To solve this, I made the syncer fetch all the documents in Postgres and all the documents in Elasticsearch then update the specific changes (thankfully, the dataset is small enough that it easily fits in memory).

I'd really love to scrap this portion of my infrastructure...

<comment><USER19> Just today I successfully finished an experiment: An existing web-app with Postgres as the source of truth pushing update events to a Kafka queue. From there, a screenful of Go forwards those events into Elasticsearch.

It doesn't solve every problem and it might be a lot of new parts if you're not going to use Kafka for anything else. I will be using it for other things like caching and push events. This kind of syncing problem seems to crop up in a lot of places.

A nice thing is that I don't have to care about Elasticsearch durability much, because I can simply rerun the ingester from the beginning of the log, as long as Kafka doesn't lose data.

<comment><USER20> I think putting a stateful, persistent, transactional stores in the middle of two stateful, persistent, transactional stores is a bad idea.

The idea is to sync secondary store B to continuously be a perfect replica of A, so: A —> B. What a lot of people do, you included, is add a third store as an intermediary: A —> Q —> B. Now you have three complex pieces of software rather than two.

The thing is, you already have the state that Q covers: It's A.

For the record, we made the same mistake. We put RabbitMQ in the middle. Now we had many problems:

* What do we do if the queue loses messages? (Manually reindex from N days ago.)

* How do you _know_ if the queue has lost messages, due to bugs, or network downtime or similar? (Well, you don't really know. If unsure, manual complete reindex.)

* What do you do when the PostgreSQL transaction completed, but it's for some reason unable to reach RabbitMQ to post a queue message? (Manually scan logs, figure out how far back to backfill, reindex from there.) Fixing this "correctly" would require some kind of two-phase commit, which queues don't support.

Lots of manual intervention required to run a system flawlessly. It's not just about running a consistent system; it's about knowing when you're consistent or not, and how to repair.

Also, there are logistical issues:

\- What do you do when people run batch jobs producing millions of updates, and users want to update documents (and see their changes) at the same time? You have no recourse but to create traffic lanes — queues and more workers.

\- How to run multiple queue consumers. You have to use version constraints (update only if newVersion > oldVersion), because you will end up processing updates out of order, something which only works if the original source has a version field (ES does support "external" version numbers). Turns out a queue makes these checks happen more often because you often get multiple adjacent updates for the same objects. Kafka can de-dupe, fortunately, but RabbitMQ can't.

\- How do you update _multiple_ target stores (let's say, both ES and InfluxDB)? You have to create separate queues for each of them, so that you get true fanout. Now you have added more "middlemen" on top of the first one, more stuff that can go out of sync.

My conclusion after struggling with this for a while is that the database is the truth, but it's also the only one that's coherently transactional. So one should keep the change log close to the truth, meaning _in the database_. You can use a PostgreSQL "unlogged" table for performance.

Secondly, you will want to use time-based polling that invokes a simple state machine that can travel back in time. Basically, you run a worker that keeps a "cursor" pointing into the database transaction log. Let it grab big batches every N seconds. The cursor doesn't need to be transactional as long as it's reasonably persistent; if you lose the cursor, your worst case is a full reindex, but if you are unable to update the latest cursor, worst is case is just a small amount of unnecessary reindexing. This worker can live side by side with the queue-based processor, and if you shard it, you can run multiple such workers concurrently.

Everything else comes out of this logic. For example: If ElasticSearch is empty, it can detect this, and set the cursor to the beginning of time. It knows how far back the cursor is, so it knows whether it's in "full reindex" mode or "incremental mode", something it can export as a metric to a dashboard. It can also backfill, by moving the cursor back a little bit. And by using a state machine you can also put it in "incremental repair" mode, where it can use a smart algorithm (Merkle trees were mentioned by someone else recently) to detect holes in the ES index that need to be filled.

Things like building a new index now becomes a trivial, because you just start a worker instance that points to a new index, but from the same truth data store; being smart about state, it will start pulling the entire source dataset into the new index. The old worker can continue indexing the old index. Once that instance is done, you can swap the new index for the old one, then delete the old worker.

Finally, to solve the problem of real-time vs. batch updates: In addition the above worker you run a separate worker that listens to a queues. Whenever a non-batch update happens (a "batch" flag needs to be indicated in all APIs and internal processes), push the ID of the affected object on a queue, but not the object itself; rather, let the worker pull the original from the store. This way, your queue (which requires RAM/disk) stays super lean and fast. Give the worker a small time-based buffer (like 1s) so that it can coalesce multiple updates if they're happening rapidly, and use an efficient query to get multiple objects at the same time. And use versioning to avoid clobbering newer data.

Of course, the system I've outlined is probably not workable for Google or Facebook, but it will scale well and will keep things in sync better than something queue-based.

<comment><USER21> You make some good points, but there is a big architectural difference between RabbitMQ and Kafka. The solutions you point out work just as well with Kafka as they do with a unlogged PostgreSQL table, but of course there are tradeoffs for each of them. The unlogged tables has transaction guarantees, but I am not sure if I want to hit my production database with huge read loads on every reindex of a secondary data store.

I haven't really looked into it, but Botteled Water[0] looks like it can combine the good log properties of Kafka with guaranteed delivery from postgres.

[0] [http://blog.confluent.io/2015/04/23/bottled-water-real- time-...](http://blog.confluent.io/2015/04/23/bottled-water-real-time- integration-of-postgresql-and-kafka/)

<comment><USER20> Kafka is certainly better than RabbitMQ in some respects. (In others, it's disappointing: It's practically useless if you're not running on the JVM, as clients for languages such as Go, Ruby and Node aren't up to date with the "smart" Java client. It's also clearly more low-level and designed for large installations, and less friendly to small ones.)

The problem with storing indexing state outside the database — using a queue, for example — is transactionally protecting the gap between the database and the queue. Bottled Water is cool in that it can actually bridge that gap safely, as I understand it, since PostgreSQL will keep the decoded stream until you've been able to propagate it to Kafka. On the other hand, if you have the stream, do you need Kafka? Can't you just push it directly to ElasticSearch?

For us, this issue — this and standardizing on an elegant cross-language RPC — is probably the main architectural challenge we're facing right now in our microservice development. We have tons of microservices with private data stores that need good search and also internal synchronization between microservices, which is coincidentally the exact same problem space: You have service A with its complex data model, and then a service B that wants to subscribe to updates so that it can correlate its data with that of A. It's a complicated problem that requires a simple solution.

 _I am not sure if I want to hit my production database with huge read loads on every reindex of a secondary data store._

Hopefully a full reindex shouldn't happen that often, though. And a full reindex would require a full scan of your production database (not the transaction log) anyway, since you don't want to keep the entire change log around forever (and can't, since the log only starts at the point when you started running this system).

<comment><USER21> > On the other hand, if you have the stream, do you need Kafka? Can't you just > push it directly to ElasticSearch?

I think the separation is something very nice here. We have something like an Apache Storm topology (though we use a own Mesos based framework here) for every datastore we want to populate. If we want to add a new datastore we just have to find a library for it and can whip up a new topology. That is much more convenient than having to build support for each datastore into something central like Botteled Water and can be tweaked nicely to the specialities of the datastore.

> since you don't want to keep the entire change log around forever (and > can't, since the log only starts at the point when you started running this > system).

If we initialize a new Kafka topic, we push the relevant data into it once from the production database, and after that Kafka dedupe will keep it from growing too large.

<comment><USER20> The separation is nice, although I would counter that if your only primary data store is Postgres, and you want to go the logical decoding route, Postgres _already_ has the queue: The decoded transaction log. There's no need for a queue on top of a queue. All you need now is a client that can process the log sequentially and emit each change to the appropriate data store.

Things like Kafka would be more appropriate if you have multiple producers that aren't all Postgres.

</comment></comment></comment></comment></comment></comment></comment><comment><USER22> One more thing to add to the Elastic reliability:

> We recommend installing the Java 8 update 20 or later, or Java 7 update 55 > or later. Previous versions of Java 7 are known to have bugs that can cause > index corruption and data loss. Elasticsearch will refuse to start if a > known-bad version of Java is used.

[http://www.elastic.co/guide/en/elasticsearch/reference/1.5/s...](http://www.elastic.co/guide/en/elasticsearch/reference/1.5/setup.html)

</comment><comment><USER23> Kind of OT, but losing data in these cases is not even what I'm most concerned about with ES: I had to recreate the ES cluster way too many times now that I'm really glad that PostgreSQL keeps on running, or just restarts without bricking the data files, even after OOM or out of disk errors.

</comment><comment><USER24> Also [https://news.ycombinator.com/item?id=9475620](https://news.ycombinator.com/item?id=9475620).</comment>


HN resource code  - <AUTHOR>

i want to add a forum like HN to my site,so is HN resource code open? <comment><USER2> I believe it is included in the arc source package. You can get it from: <http://arclanguage.org/install> (there's a file in the .tar called news.arc). I do not know what licence it is released under however.</comment>


Ask HN: Transition from Operations to Development? - <AUTHOR> The last few years I have been getting the bug to transition from operations in to development. The main drivers being that I miss writing code, looking for a new challenge, reduce stress(??)/off-hours work, adding flexibility to my job prospects in case I would like to move. I've been in the industry for about 17 years, with most of that experience in the enterprise content management specialization. While primarily architecting and building/supporting ECM infrastructure, I've written code whenever I have the opportunity—things such as lower level system monitors and performance modules. Given that it is specialized/niche field, the compensation is pretty good, but I'm at the point in my career, where it might be time to try something new, otherwise I'll be doing this for the next 20 years. I have a pretty good knowledge of backend, and plenty of side projects I've coded, but don't have experience as a developer in an enterprise environment, so it would be essentially starting over.
I'm curious if there are others on HN who have made the transition from Ops -> Development.
How did the transition go? What did/didn't work well?
Any thoughts are much appreciated. <comment><USER2> Have you considered marketing yourself as a devops engineer? From the sound of it you already have most if not all of the required skills, and IMO this makes the transition easier as well as plays on your existing strengths (i.e. you're not a would-be developer who has to prove he can code, you're a seasoned ops engineer who can help the dev team get their ops shit together). Speaking as a CTO, I would love to add to my dev team someone who knows what it's like to be woken at 2am on Sunday morning because of a stupid bug and who'll go into the code base to eliminate anything that triggers a sudden wake up call.

<comment><AUTHOR> I really appreciate this advice--I will look in to doing this and ensuring I have the right toolkit. It does seem like a good intermediate step that could be taken without completely starting over on a jump to essentially a new developer role. Thanks again!</comment></comment>


Show HN: StartOpz – Software for small business financial and H.R. operations - <AUTHOR> https://www.startopz.com/ <comment><AUTHOR> I've been working full-time on a startup for the past four months but had this side project pretty much finished for the past year. I decided to finally release it as it might help some small businesses be a bit more efficient with their invoices, expense reports, time-off tracking, etc. Also any additional runway it gives me for my main project can only help.

Please let me know any comments you have (both positive and negative). Thanks!</comment>


Do you have proper vox.io etiquette? - <AUTHOR> http://blog.vox.io/post/35844563724/do-you-have-proper-vox-io-etiquette

<comment><USER2> The obvious vox.io promotion ruins this post for me. If it said "IM" rather than "vox.io" everywhere, I'd send it to a few "rude" friends, but now it feels like it's specific to vox.io.</comment>


Things I Wish Someone Had Told Me About Go - <AUTHOR> http://openmymind.net/Things-I-Wish-Someone-Had-Told-Me-About-Go/

<comment><USER2> _But, without pointer arithmetics or, despite many claims, pass-by-reference, Go's "pointers" feels like a more flexible form of Java/Ruby/Python/Node/...._

It's not clear from the first example if the writer actually understands pointers. The example code passes a pointer to a function and then modifies the pointer, not what it's pointing to. It was no surprise to me that this wouldn't modify the original thing the pointer was referencing. If they wanted to modify the pointer itself then they should have passed a * * User not a *User.

Go does, indeed, have pass-by-reference (use a pointer) or pass-by-value (don't use a pointer).

<comment><AUTHOR> I understand what a pointer is, but it's entirely possible that I still don't grok Go. Before writing that, I did try:

        func main() {
          u := &User{Name: "Leto"}
          Modify(&u)
        }

        func Modify(u **User) {
          u = &User{Name: "Paul"}
        }

With no luck.

<comment><USER3> Enjoyed your article. I think that you are a little off the mark with respect to pointers though.

The simple solution to your first example is to simply write to the Name field of the struct being pointed too.

<http://play.golang.org/p/D3t0Iv8oG4>

If you want to do complex pointer meddling (and replace the entire struct) you need this syntax.

<http://play.golang.org/p/tMwHC-k-bu>

As a side note I have personally used pointers to interfaces for doing search tree reordering. You can really do a lot of useful pointer operations without pointer arithmetic.

(A link to a quadtree implementation which uses pointers to interfaces, on line 119) [https://github.com/fmstephe/location_server/blob/master/quad...](https://github.com/fmstephe/location_server/blob/master/quadtree/quadtree.go)

<comment><USER4> You don't need pointer-to-pointers to replace the entire struct, you can just do this: <http://play.golang.org/p/2ZUvuyCtwr>

      func main() {
        u := &User{Name: "Leto"}
        println(u.Name)
        Modify(u)
        println(u.Name)
      }

      func Modify(u *User) {
        *u = User{Name: "Paul"}
      }

<comment><USER5> Looks like C pointer syntax!

<comment><USER6> Indeed. They are pointers. You just cannot do pointer arithmetic on them.

In declaration the ' _' goes on the left though. In general Go's syntax inverts the declaration w.r.t C/C++:

        a int   vs  int  a
        b *int  vs  int* b

        type X int  vs  typedef int X

NOTE: you can do unsafe pointer arithmetic using the "unsafe" package. You can convert any pointer to a unsafe.Pointer and then you can convert it to a uintptr.

There are also library functions designed to work with that, for example atomic.AddUintptr that atomically adds an offset to a pointer.

Although not intended as general use, it can be useful in low level library code. Otherwise you can do pretty much everything using slices.

</comment></comment></comment></comment></comment></comment><comment><USER7> The author is obviously new to Go, and that's fine.... here's a clarification of interfaces:

 _Interface Pointers_

Note that the author of a type that fulfills an interface and the consumer of a function that takes an interface both have full control over how much data is copied on a call to the function. You can control whether a type fulfills an interface, or whether a pointer to the type fulfills the interface. In Go, it is always easy to tell how much memory is being copied for any function call.

      type Jumper interface {
        Jump()
      }

      func MakeItJump(j Jumper) {
        // this function doesn't know what's wrapped inside the Jumper interface
        // and doesn't need to care
        j.Jump()
      }

      type Foo struct {
        data [10]int64 // array of 10 8 byte numbers = 80 bytes on a copy
      }
      func (f *Foo) Jump() {
        // we define Jump on Foo to take a copy of a pointer to a Foo.
        // this means that when we pass a *Foo into MakeItJump,
        // just a single pointer value is copied into the interface, \
        // not the whole array inside Foo
      }

      type Bar uint8

      func (b Bar) Jump() {
        // we define Jump on Bar as taking a copy of the value of Bar
        // since we know it only needs to copy an 8 bit integer to do so
      }

<comment><USER8> I didn't quite "get" the point of the pointer/copy option on interfaces, but this makes it crystal clear. This works around such a common problem in writing C++ templates (which is really the only equivalent polymorphism if you want to dispatch a function on a native type):

      template <class T> void doSomething(const T &expensiveCopy);

Versus:

      template <class T> void doSomething(T cheapCopy);

As usual, boost provides another crazy template hack to work around this issue:

<http://boost.sourceforge.net/libs/utility/call_traits.htm>

<comment><USER9> Can you explain why this is actually a problem? Why not just always have a const T&, is there some negative in the "cheap copy" case to not copy?

<comment><USER8> I'm making some assumptions about the compiler optimization: If T is something like "int", then passing by reference can be more costly, because a value that was once stored in a register now needs a real memory address and must be deferenced to read.

</comment></comment></comment></comment><comment><USER10> The "interface as a pointer" thing really threw me for a loop as well. It was bothering me so much (not knowing what was actually going on), and Googling was helping so little, that I actually hopped on the Go IRC channel. The guys on there set me straight in, literally, minutes. There's a great community around Go right now.

Other than that, though, everything has been pretty cut and dry. There really aren't many "gotchas" in Go.

</comment><comment><USER11> That pointer example is a little weird. A C/C++ pointer used that way wouldn't print "Leto" "Paul", either. All it would do is update the local variable to point to a new object, but the caller would still be pointing to the original. I think the poster meant to use a pointer to a pointer here (which would work as intended in both Go and C/C++).

</comment><comment><USER12> "Tip Or Don't Bother"

This is pretty true, although I would not bother using tip if writing a small command line utility or learning Go, but for a large project this is good advice. Execution time and memory usage are greatly improved in tip, at the cost you might run into bug that has not been fixed yet.

Here is the burn down to Go 1.1's release, when it hits bottom it releases. <http://swtch.com/~rsc/go11.html#> Go 1.1 RC should be out in April I believe.

Also if you need to pick a Go tip build to use this is useful: <http://build.golang.org/>

<comment><USER13> Just how much has execution time improved? I'd love to see some benchmarks.

<comment><USER12> If you read the golang-dev google groups mailing list you will see lots of micro-benchmarks posted for specific commits. The best test is to install both stable and tip on your machine and compile your application with both. In one of my application there was a 9% improvement, in another it was 53%. When Go 1.1 is released I presume the computer benchmarks game will be updated, which might make comparison, at lease with other languages, easier.

</comment></comment></comment><comment><USER14> Whoa. Pre-coffee, I'd clicked on the link expecting to find a "List of things someone had told me about the strategy game Go".

Anyone have a link to such a list? Seems like it'd be fun.

<comment><USER15> I had the opposite problem.

When someone retweeted this[1], I thought it was about golang problems.

[1] <https://twitter.com/gogameguru/status/309695255056351232>

</comment></comment><comment><USER16> >func ServeHTTP(res http.ResponseWriter, req *http.Request)

I'd always wondered about that too. Thanks for one less mystery in the world.

</comment><comment><USER17> Wow, this displays a severe misunderstanding of how pointers work in general. It's not like the syntax for it in Go is any different, this code would look very similar in anything that has real pointers (C, for example), certainly in regards to the notation and syntax for pointers and references and such.

'I understand what a pointer is'. Questionable.

<comment><USER18> For reference, I posted this in a subthread above: the same example in C demonstrating using a pointer and passing it or declaring an object and passing it's address: <http://codepad.org/TeUZi1Wp>

<comment><AUTHOR> Same example in C# showing pass by reference does exist <http://rextester.com/IYZE41714></comment></comment></comment>


How to Make 300 Dollars a Day with Nothing but Pen and Paper - <AUTHOR> https://www.youtube.com/watch?v=plwILmYHlf0 <comment><AUTHOR> I'm always seeking to understand new/different ways of making smallish amounts of money in uncomplicated ways... The more uncomplicated, the better... This video gets somewhat close to that ideal, but I'm sure there are even better ways.

Perhaps that should be an Ask HN discussion, "What are some of the least complicated ways to make smallish amounts of money?".

Anyway, comments welcome.</comment>


Is It Time to Rewrite the Operating System in Rust? - <AUTHOR> https://www.infoq.com/presentations/os-rust <comment><USER2> Fortunately, the answer is no, but the author suggests a hybrid approach of adding Rust components to existing systems.

BTW: Kudos for having a full transcript.

</comment><comment><USER3> If the world was truly going to take the time/money/effort to rewrite the operating system from scratch and create a new standard core for the future of computing, there are _much_ better options than Rust. Ada being just one of them.

It would be a real tragedy to do it all again, only to make a mistake on the very first decision, what language to use.

<comment><USER4> How so? I don't remember Ada having any features preventing use-after-free or write-write conflicts.

</comment></comment><comment><USER5> so, like, it's like, painful to read, like</comment>


Looking for a programmer with strong knowledge of Twitter API and semantic - zenith-mf-1

I have a killer application idea which requires some programming skills. So, I am looking for a programmer with a strong knowledge of twitter API and semantic. A big challenging implementation and a really useful idea. By "application" I mean Service, maybe an API, Plug-in, etc This will be decided based on our discussions <comment><AUTHOR> Can you mail me the details? My contact is username at gmail.

<comment> zenith-mf-1 Hi Sandy, just sent you an email. please check and let me know.</comment></comment>


No one needs libraries any more? What rubbish - <AUTHOR> https://www.theguardian.com/commentisfree/2017/oct/26/no-one-use-libraries-any-more-rubbish-sanctuaries--enrich-communities <comment><USER2> _I assumed that someone had stolen it, or taken it out and then died, but then it struck me that perhaps the library had closed._

If I was a betting man, knowing nothing else about this, I'd wager that it was simply sold by the library to make room for something else. Libraries sell off books all the time.[1]

That said, I don't disagree with the author in holding that libraries are still immensely valuable.

[1]: [http://www.booksalefinder.com/](http://www.booksalefinder.com/)</comment>


Paris to Create 650 Kilometers of Post-Lockdown Cycleways - <AUTHOR> https://www.forbes.com/sites/carltonreid/2020/04/22/paris-to-create-650-kilometers-of-pop-up-corona-cycleways-for-post-lockdown-travel/ <comment><USER2> Let's hope that they have it be designed by actually experienced road designers, and/or people who commute by bike. So much a French bike infra is so clearly build by people who never use it. Turns too sharp, cycle lanes next to parking strips (French motorists don't check where they swing their doors), lanes that end a busy intersections (creating intersection arenas), places where you need them the most...

I'm from the Netherlands and I see there's a serious effort in France, but before they build anymore they really need to get some experience into the design. Much of the infra barely helps having a safe and comfortable commute like we have back home.

<comment><USER3> > Under her plans, Paris was to remove 72% of its on-street car parking > spaces.

Totally a political promise made by the kind of people who think subway tickets cost 5€ and only use official cars that comes with driver and parking.

I hate cars in Paris as much as anyone, but they are required in a number of cases and this measure will hugely impact negatively the mid-class and poors that needs to commute to Paris for work, while not impacting the (very) richs that can live in the center.

<comment><USER4> This is a common refrain, but I don't think it's supported by evidence. The poorest people cannot afford own a car[1] - and one can hypothesise that the high entry cost (purchasing a car, buying insurance) is a significant reason for this. Other methods of transport, such as cycling, walking, buses and trains do not have this high entry cost and so are much more accessible for the most disadvantaged people in our society.

It's also critical to have a strong urban planning policy that allows people to live near to where jobs and transport hubs are. Suburbs inherently advantage car owners (and, consequently, the richer people that can afford to own a car).

[1] See, for example, data from the UK: [https://www.ons.gov.uk/peoplepopulationandcommunity/personal...](https://www.ons.gov.uk/peoplepopulationandcommunity/personalandhouseholdfinances/expenditure/datasets/percentageofhouseholdswithcarsbyincomegrouptenureandhouseholdcompositionuktablea47)

</comment></comment></comment><comment><USER5> I hope they actually separate the cycle path from the road with a physical barrier and not just a yellow line like the photo in the article.

<comment><USER6> Don't be too hopeful about that. Barcelona in general is a bicycle-friendly city, and most of the city-center bikelanes looks like this (lane on the furthest right is the bi-directional bicycle lane): [https://firstname.lastname@example.com,2.1634847,3a,75y,66....](https://email@example.com,2.1634847,3a,75y,66.49h,82.65t/data=!3m7!1e1!3m5!1sinf92SDCbqjnDPiWywm1Iw!2e0!6s%2F%2Fgeo2.ggpht.com%2Fcbk%3Fpanoid%3Dinf92SDCbqjnDPiWywm1Iw%26output%3Dthumbnail%26cb_client%3Dmaps_sv.tactile.gps%26thumb%3D2%26w%3D203%26h%3D100%26yaw%3D216.94206%26pitch%3D0%26thumbfov%3D100!7i16384!8i8192)

Most people seem fine with this arrangement, we're pretty used to tight spaces, for people, cars, motorcycles and bicycles. Maybe this lane is only fine because we don't have as much bicycle traffic as Amsterdam or Copenhagen, but seems to work well right now.

<comment><USER7> "Armadillos"

I think that's pretty reasonable. Most lanes in the UK are just the paint, without the plastic armadillos, and usually without the extra 30cm width.

</comment></comment></comment><comment><USER8> Any cycle path that is created with just a bucket of paint is not a cycle path. I wonder how many of those kilometers will fail this test.

<comment><USER9> I'd think getting the space is a good first step and the harder part politically, no?

Here is Berlin, but also just temporary for now: [https://www.cdu- friedrichshain-kreuzberg.de/image/news/238.j...](https://www.cdu- friedrichshain-kreuzberg.de/image/news/238.jpg) (in other areas parking cars in between road and cycle way)

<comment><USER8> I'm not saying it isn't good as a quick fix temporary measure, but over here in Belgium this has been consistently used to pretty up the cycling path numbers while doing nothing.

We even invented "cyclist suggestion paths" ("fietssuggestiestroken" colloquially referred to as "paths of shame" (schaamstroken) [1]), which are not cycling lanes as they explicitly allow cars to ride on them, but just a color painted onto the right hand side of the car lane to advice cyclists not to ride side-by-side (which is their right within inner-city limits) but ride on the narrow painted strip behind each other, So this is an anti-cycling measure, and it _still_ is counted as "cycling infrastructure".

[1] [https://fietsbult.files.wordpress.com/2015/06/moscou7c.jpg](https://fietsbult.files.wordpress.com/2015/06/moscou7c.jpg)

<comment><USER10> Wow, you're allowed to ride side-by-side. Is that common in other countries?

Over here cars honk, even if 2 cyclists take only 1/2 a lane of 2 same- direction lanes and <5 cars pass in a minute. OTOH, if you ride the same, except the sheltered cyclist isn't there, they don't make a fuss even in moderate traffic - they just don't like you talking.

</comment></comment></comment></comment><comment><USER11> Makes sense. Paris is currently not quite as cycle friendly as you might think, given its early adoption of bike sharing and close association with cyclesport.

<comment><USER12> I live in Paris and almost only travel by bicycle. It all depends where you're going, but it's improved drastically in the past few years. In fact it started with Vélib, the sudden increase in bikes forced other road users to expect bikes and act accordingly.

</comment></comment><comment><USER13> Milan is planning the same: [https://www.theguardian.com/world/2020/apr/21/milan-seeks- to...](https://www.theguardian.com/world/2020/apr/21/milan-seeks-to-prevent- post-crisis-return-of-traffic-pollution)

</comment><comment><USER14> considering how sars2 may be infecting through aerosols, it might not be a great idea to cycle for high-risk people . OTOH, keeping people outdoors reduces the infection rate by 19 times , and the sunlight kills the virus in 3 minutes, so anything that promotes outdoor instead of indoor congregations is good

[https://www.sciencedirect.com/science/article/pii/S016041202...](https://www.sciencedirect.com/science/article/pii/S016041202031254X)

[https://news.yahoo.com/sunlight-destroys-coronavirus-very- qu...](https://news.yahoo.com/sunlight-destroys-coronavirus-very-quickly-new- government-tests-find-but-experts-say-pandemic-could-still-last-through- summer-200745675.html)

</comment><comment><USER15> Isn't the most interesting point about this the assumption that people are going to abandon public transport in favour of cars when the lockdowns end?

That seems to suggest we'll have more crowded roads with reduced capacity (due to the added cycleways); maybe I'm being too pessimistic though, and we'll see a big switch to WFH.

<comment><USER16> > That seems to suggest we'll have more crowded roads with reduced capacity > (due to the added cycleways);

The goal of course is to have people actually use the cycleways, which should increase capacity: you can fit multiple cyclists in the space used by a single car driver.

<comment><USER17> Except that in Paris those that take a car aren't exactly doing commutes that can be done by bikes

<comment><USER6> Of course not everyone who is driving will immediately switch to bikes, that would be unexpected. But many do use cars when they could have used bikes, but because the infrastructure is poor, they chose cars. The ones that come from outside the city can now park within range of their work and bike the rest. Paris is notable for it's shitty traffic (and drivers...), so many would want to switch to bikes, just to avoid going insane.

</comment></comment></comment></comment><comment><USER18> Never let a good crisis go to waste.

Having a fantastic cycling infrastructure didn't help us here in the Netherlands. We have one of the highest death rates in Europe.

</comment><comment><USER19> Love it. London next?

</comment><comment><USER20> A lot of the pre-post-lockdown talk by politicians will have a way of vaporizing post-lockdown.

</comment><comment><USER21> Paris is in the middle of an election (aborted by lock-down). don't trust wha tyou read.

<comment><USER22> Give us a reason to trust this comment, then.

<comment><USER21> it's just a campaign announce. there are no plans, no budget, no nothing. it definitely does not deserve HN front page.

</comment></comment></comment><comment><USER23> ...i think there's a lot more important issues that cycleways, to be blunt. Cycleways aren't going to help the tons of people that are out of jobs or lose their jobs if we have any post-pandemic economic slowdowns, and a lot of regions that depend on tourism are going to suffer a massive hit.

This is tending to the needs of the rich.

</comment><comment><USER24> This is pretty awesome. But even though as a cyclist myself, I am a bit uncertain about bicycle lanes in Europe as a whole(maybe except Greece, Italy, Spain, Malta, Portugal and so on, where the weather allows it). Let's take my situation for instance, given that Greece is just 250-300 km south from me: During the period between October and April cycling is pretty much impossible unless you have a death wish - starting with heavy rain, followed by a meter of snow and ice. That's 6 months out of the year during which those lanes and paths are practically unusable. Sure, there are a few enthusiasts that will carry on even in those conditions(and I know one or two of those) but in any case, for 98% of cyclist, this is unthinkable(myself included). So in those 6 months, that whole are is simply unusable, while traffic jams expand beyond reason.

<comment><USER7> In Denmark, the cycle lanes are swept clear of snow before the driving lanes.

There's slightly higher car and public transport use in the winter, but most people don't stop cycling.

> as a cyclist myself,

Also, people here don't identify themselves like that. Just like people don't say "I'm a driver" unless it's their job to drive a bus, taxi or truck.

I cycle to work, but it's not part of my identity.

<comment><USER24> OK those are just semantics. I generally walk to work(it's ~4km largely through green areas so a nice walk in the morning and evening). Somehow the idea of carrying a backpack with an extra pair of clothes and having to shower at work isn't very appealing to me. Semantically I mean "cyclist" as in I'll go for a joyride in the evenings and 5-6 hours during weekends. When it's nice and dry that is, rain and water probably bugs me more than you I suspect... And a lot of people around here by the looks of it.

<comment><USER25> Why would you need a shower and different clothes for a short bicycle ride?

(disclaimer: am Dutch)

<comment><USER26> Finn here with a 3–7.5 km commute depending on which office I go to: hills. I was in Amsterdam last summer and rode about 60 km one day with a shitty rental bike and it was a breeze because there was only a couple of inclines that I remember. Here it's constant up and down and I would surely need to shower at work. Personally I have solved that with a pedelec, which takes the effort out of the hills.

<comment><USER27> On these kinds of discussions, claims about the need to shower at work after cycling usually come from Americans (especially in their southern regions), so it is rather surprising to hear it from a Finn. I feel like Finns pay more attention to appropriate clothing for the season and activity, so they would choose something to cycle in that is breathable and won't leave them soaked in sweat, and they would be willing to invest in e.g. a merino-wool base layer – merino wool doesn't stink even if one's sweats in it.

Granted, I am chiefly getting this impression from what was sold in the sports sections of clothing shops in downtown Helsinki when I was a student there, and perhaps most of the native Finnish population finds that clothing just as unaffordable as I did as a poor foreigner.

<comment><USER28> If it's 25C out, it really doesn't matter what you wear - if you exert yourself outside, you're going to get sweaty. The American south is quite warm. Wearing wool is ridiculous.

<comment><USER27> It is not often 25C in Finland at commuting hours. And even when it is, a merino-wool microweight base layer can easily be worn up to 30C and still keep you cool and dry. That is why Smartwool etc. are so popular in the bicycle- touring world.

The problem with the American South is not just heat but humidity, but again, the challenges that they and people in similar climatic regions face are not universal.</comment></comment></comment></comment></comment></comment></comment></comment>


Android 4.1 in AOSP - <AUTHOR> https://groups.google.com/forum/#!msg/android-building/XBYeD-bhk1o/ry-0jTGimEQJ <comment><USER2> Does anyone know which commit covers the reduction in functionality for the global search (related to the sales ban on the Nexus)? My friend is trying to find the commit so he can compile Jelly Bean (for the Galaxy Nexus) with the global search restored but neither of has been able to find where the change was made.

We were thinking it might be in the QuickSearchBox ( [https://android.googlesource.com/platform/packages/apps/Quic...](https://android.googlesource.com/platform/packages/apps/QuickSearchBox) ) but there don't seem to be any recent commits here. I'm thinking now it might be in some place specific for the Nexus, but I'm not familiar enough with the Android source to know where to look.

<comment><USER3> Building android requires a beefy developer workstation. Does your friend have the recommended 16GB of RAM[1]?

[1] [https://groups.google.com/d/topic/android- building/N1exifTpP...](https://groups.google.com/d/topic/android- building/N1exifTpPfA/discussion)

<comment><USER4> $100 worth of memory, so beefy.

<comment><USER5> Some older computer, like my 2009 MBP for example, can't be upgraded to more than 8gb of memory.

edit: I imagine that people interested in hacking on Android have better machines, so it's not a problem. I was pointing out that you can't just buy 16gb to meet the requirements on all machines.

</comment></comment></comment></comment><comment><USER6> That seemed pretty quick. And apparently it's a minor update, code wise, so hopefully we'll see some action from the CY devs soon. Though, ICS probably has to hit release first.

<comment><USER7> The Cyanogenmod developers have been taking CM9 development a bit differently to the past, trying to make it less hacky, so it is both more stable and easier to port features. Since Jelly Bean is a minor update, a lot of parts should have the same, or a similar API. This means the CM developers can literally forward port and backward port features between ICS and Jelly Bean with ease. So they will be releasing ICS and JB releases simultaneously.

<comment><USER8> Yes. CM has rewritten their modifications for ICS so that they integrate side- by-side with the OS settings. If you didn't see the boot screen or the ROM version, you would just think that you got a whole bunch more features and nice little performance tweaks. They did an amazing job of keeping it stock and adding functionality where it made sense. All without the awkward, disorganized "CMParts" of CM(<9). It's all quite wonderful.

<comment><USER9> I'd rather CM sticks as close as possible to AOSP. Fewer potential issues for them in the future, and they get more time to port to more devices, and to make the "master" ROM more stable.

<comment><USER8> You can always just take the vendor overlays and build JB-AOSP. Then you don't have to wait for merges.

</comment></comment></comment></comment></comment><comment><USER10> Could this point to an imminent Jelly Bean release for Nexus devices?

<comment><USER11> You can already get Jelly Bean for the Galaxy Nexus, if you're willing to do a manual install. I've been running Jelly Belly[0], an LTE Jelly Bean rom, on my LTE Nexus for the last couple of days. There were a few issues with Jelly Belly v2.1 (tethering and camera), but as of Jelly Belly v2.4, it's been running without any hitches, Google Now and all.

0: [http://rootzwiki.com/topic/28677-rom-jelly- belly-v26-0709201...](http://rootzwiki.com/topic/28677-rom-jelly- belly-v26-07092012-jellybean-411-aosphybrid-its-all-about-speed/)

</comment></comment><comment><USER12> Until the factory images page gets updated, I'm staying put: <https://developers.google.com/android/nexus/images>

</comment><comment><USER13> Does anybody know if the new text-to-speech engine is part of AOSP? I'm referring to the tech Google got by buying Phonetic Arts.

</comment><comment><USER14> What is AOSP?

<comment><USER15> It's the subset of Android that is released as open source some time after the proprietary versions are shipped.

<comment><USER8> Your snarky comment isn't even accurate. The only thing not released in AOSP is Google's propreitary APKs of the Google Apps (Market, Gmail, etc). One can build AOSP and have Android almost identical to Galaxy Nexus or what not. A small zip later, and it's nearly byte for byte identical.

<comment><USER16> You also forgot the proprietary drivers needed to actually use almost any of the devices on the market (including Google's own that they sell directly now).

While the original poster was being somewhat disingenuous, let's be honest here, Android isn't a _completely_ open platform. To obtain full functionality from Android devices requires more than what Google distributes source code for.

I say this as a somewhat angry and disappointed Android developer :-(

<comment><USER17> How is that Google's fault though? How many modern mobile devices have completely open drivers including wifi, camera, accelerometer, bluetooth, and GPU? Exactly none. Even the raspberry pi has binary blobs. It doesn't make sense to blame Google for not being able to provide what doesn't exist.

<comment><USER16> I'm not blaming google; I'm just suggesting that Rubin's snarky twitter post about the "definition of open" is somewhat misleading.

Put simply, I'm just trying to point out the sad state of affairs.

Android is primarily run on Phones, but you can't actually use some of them as a Phone if you build AOSP and install it because some of the binaries required for the phone functionality can't be distributed.

That's my point. It's misleading to say "here's an open phone OS" -- when you can't actually use it on your phone, because the things that make your phone work as one aren't open and can't be redistributed.

An open platform doesn't do much good if you can't actually use it on hardware with full functionality.

As I said before, I'm just a disappointed and somewhat angry Android developer, _somewhat_. Google could have done a better job here and made life easier for me and other developers.

<comment><USER8> This is true of every smart phone in existence. Period. Even when OpenMoko tried it, they still had binaries. Luckily they were given permission to redistrib the binaries.

</comment></comment></comment></comment></comment></comment></comment><comment><USER18> What the hell did Google Groups just do to my back button?

</comment><comment><USER19> Looking forward to seeing this on Kindle fire soon.

<comment><USER20> I can't tell if that's sarcasm. You mean the new Kindle Fire which will be released for Christmas 2012, right?

<comment><USER21> I think he means an unofficial port. I expect those will be available fairly soon.

<comment><USER19> yes the unofficial port.

<comment><USER22> Here's a very early port (from the Galaxy Nexus build): <http://forum.xda- developers.com/showthread.php?t=1753287></comment></comment></comment></comment></comment>


Meet DOCSIS: the unsung hero of high-speed cable Internet access - <AUTHOR> http://arstechnica.com/business/news/2011/05/docsis-the-unsung-hero-of-high-speed-cable-internet-access.ars

<comment><USER2> When I read this, it brought back memories of being back in '98 or so, when I got the first cable modem Charter had to offer. It came in the form of an ISA card that used my existing dialup modem for the upstream and the cable for the downstream, and I'm pretty sure was not DOCSIS compliant as the cable co had to swap all the things out a year later.

It only supported Windows 98 (barely), no NT and definitely no Linux. When it worked though it certainly was fast, but was weird having 10 Mbps down and 33.6Kbps up.

So three cheers for DOCSIS and 2-way cable plants!

</comment><comment><USER3> I have 20 / 2 cable at home up from 10 / 1. Using DOCSIS 3.0. I finally don't care about getting anything faster, in the near future.

<comment><USER4> We actually just got 55 Mbps down / 5 Mbps up from DOCSIS 3.0. I can't imagine needing anything faster in the future, but I'm sure in 10 years I'll think it's slow as molasses.

<comment><USER5> Luckily DOCSIS3 scales pretty well. You can just keep adding bonded channels. 4 or 8 channel D3 modems are common these days but we have 16 and 32 channel models waiting in the wings. Since cable systems aren't exactly symmetrical from a spectrum standpoint the upstream speeds will continue to lag a bit but 25-50Mbit/sec is do-able today. 50-100Mbit will probably be common in 5 years.

<comment><USER6> I'm curious about why the artificial limit? The cable cos have enough backbone bandwidth, right? So why can't they just add channels and sell 100mbps+ today?

<comment><USER5> Some companies do offer 100Mbit packages today however it's mostly a gimmick. They would face a much bigger challenge/cost to offer every single customer 100Mbit. There's a surprising lack of demand for customers who are willing to pay more for faster speeds. It seems the $50 or less per month price point is what people want.

</comment></comment></comment></comment></comment><comment><USER7> Crazy blast from the past. I worked on a cable modem project as my first job out of college in 1999. Back then, having a USB interface on the modem was a huge thing because it meant the cable company didn't have to open a customer's computer to install an ethernet card (and deal with the customer's complaints afterward that their computer didn't work anymore). Nearly everyone was using dial-up then, so most computers didn't come with ethernet.

</comment><comment><USER8> "This makes it possible to use the same TV channels for cable that are also used for broadcast over the air" -- can someone explain what this means?

<comment><USER9> I think it means that the cable carries an analog TV signal at the same frequencies used by over-the-air broadcasts. If the cable wasn't shielded, it would act like an antenna and pick up radio-broadcast signals. That would cause interference with the cable signal. But since the shielding electromagnetically isolates the cable, cables and over-the-air broadcasting can use the same frequencies.

</comment></comment><comment><USER10> Hmm TDMA for upstream seems wasteful, imagine all those unused slots.

<comment><AUTHOR> In the world of netflix and Youtube, We dont see those unused slots. Almost every other slot has user data (except DOCSIS maintenance messages). Only other option is SCDMA which is not widely supported on the CMTS platforms (cable routers) and has many other issues attached to it. So, right now A-TDMA is our best bet.</comment></comment>


'I've never seen anything like it': Airbnb renters leave Calgary home trashed - <AUTHOR> http://www.ctvnews.ca/canada/i-ve-never-seen-anything-like-it-airbnb-renters-leave-calgary-home-trashed-1.2351001 <comment><USER2> I've had the opposite issue which is as a renter which is out of 6 AirBnB rentals 5 of them had issues, 4 of them the host lied on their listing and several I didn't rent lied on their listings as well but I got smart enough to confirm before.

#1 was "parking on premises". Having a car I wanted a space. One place I show up and "here's the space but it's often blocked so you'll have to park somewhere else". Another I show up. "Host, sorry I'm in Europe and my car is in the space so you'll have to park somewhere else". Have had similar experiences confirming. "It says on your listing parking on premises. Is that true?" "Yes, parking on the street is easy although if here on a weekday you won't have a permit so you'll have to park 3 blocks away". "What part of __on premises __don 't you get???"

And no, the reviews didn't mention it. I assume because others didn't have car or didn't notice they paid for "parking on premises".

Another place claimed WiFi but it turned out he was stealing wifi from a neighbor and it only worked if you sat on their sofa. He said if it didn't work there was free wifi in the lobby of the building.

Yet another said their place was a 1 bedroom, not a studio but it was actually a studio with just a wardrobe separating the bed from the rest. What's the difference? Whether or not there's a door between me and the refrigerator who's noise keeps me awake. I wouldn't have rented the place had the listing been correct.

So, yea, no more AirBnB for me

<comment><USER3> AirBnB refunds you when they fail to deliver the advertised product... Right?

Or do they just keep your money and tell you find a legal hotel somewhere else next time?

<comment><USER4> You have to go through a refund process. If they host doesn't agree to the refund, it goes through arbitration which takes a long time and is kind of pain.

They are supposed to find you alternative accommodation, but they didn't for me when my host cancelled <24 hours before I was supposed to arrive, or when my friends were staying in an AirBnb when the host was evicted(!).

</comment></comment></comment><comment><USER5> As an Airbnb host (we rent out our master bedroom suite), I can safely say Airbnb is not what it used to be.

It's just like any community online, really. Airbnb started out as a tight- knit, mostly Bay-Area-techie demographic. As a host in Austin, where many techies visit, do job interviews, or hang out for a few weeks, I enjoyed meeting interesting people who were in the same (or similar) community as I was--startups/entrepreneurs. I met people who had shared connections with me on Facebook and people who became good friends.

Fortunately for Airbnb's valuation, but unfortunately for hosts, the demographic has dramatically changed over the past few months to a year. With Airbnb becoming a "household name" of sorts, with a multi-billion-dollar valuation, people have started booking on Airbnb who are not of the caliber (to put it nicely) of the original close-knit community that made the site so neat.

I get it. Communities, as they grow and become mainstream, tend to attract more not-so-great people. It's inevitable. It's just, as a host, it stinks. Airbnb is going to have to get even better with quality control. (One step, as I've made clear in emails to their support team, is to get really firm on their guideline of not letting people book for other people. It is a trust and safety issue--the person booking the Airbnb should be the person staying in the house, PERIOD.)

I wrote more about my personal experience a few weeks ago on Facebook [1]. I didn't mention some of the particular bad experiences we've had with guests in the post, because I don't want to embarrass anyone publicly, but let's just say...we have had some really negative, uncomfortable experiences with multiple guests in the past couple months. That's after having over 100 positive experiences, but the percentage of positive vs. negative experiences has taken a dramatic negative turn lately.

My experiences are not as horrific as the above article--probably in part because we are here when we rent out our master bedroom. However, this definitely is a trend/issue that Airbnb is going to continue to struggle with. I hope their customer service team takes these incidents seriously and continues to make it safer for hosts and guests of the service.

[1]: [https://www.facebook.com/ericabiz/posts/10152926663453305](https://www.facebook.com/ericabiz/posts/10152926663453305)

<comment><USER6> Can't you vet the people that stay with you? Do you find the ratings process unreliable?

<comment><USER5> Here is one example that happened to us. A man with prior positive reviews did an Instant Book on our place. (We had it set so people with previous positive reviews could instantly book our listing without our prior approval.) Then he sends us a message through Airbnb saying the reservation is for his daughter. Great--so he's already broken Airbnb policy.

I can't cancel his booking without being severely penalized by Airbnb. (Later, I found out I could have contacted Airbnb's host support and they would have cancelled it without a penalty since he broke the guidelines, but at the time I did not know that.)

His daughter turned out to be someone who (I am really trying to be polite here since this is a public forum) should not be living on her own. She was not...OK. After one really crazy incident, the next morning, I called her dad on the phone and explained the situation. They agreed to cut the booking short, and I ended up having to refund them their "unused" nights.

I straight up asked him, as politely as I could, "I don't mean to pry...but what's going on with your daughter?" His reply: "Well, she's never been diagnosed with anything..."

If I wouldn't have already had other people booked on the Airbnb for later dates, I would have taken down the listing after that experience. It was a nightmare. My roommate had to clean up the room, and that was a nightmare too. We were all pretty over it at that point.

<comment><USER7> What did you have to clean up exactly?

</comment></comment></comment></comment><comment><USER8> Anyone notice the irony?

Okay, a few days ago it was, "I'm gonna rent this out for some extra money".

Now the vocabulary has amusingly changed to "our sanctuary".

I somehow don't associate the word with FOR RENT signs. A sanctuary is literally a sacred place. That precludes it being a marketplace. (At least according to an obvious Western/Christian interpretation of "sacred place", pretty much in effect since old J. C. cleansed that temple of the traders and money changers.)

<comment><USER9> I sure do love me some victim-blaming.

<comment><USER10> Victims can be dumb.

This is because everybody can be dumb.

If you're dumb, you need to get told so you become less dumb.

This is a terrible thing that happened, but shielding the people at risk of terrible things from all possibilities to learn how to avoid terrible things is not doing them favors.

</comment></comment></comment><comment><USER11> Key takeaway here: "The couple posted to Instagram saying that they were "thankful" to Airbnb for providing coverage under its Host Guarantee, which offers up to $ 1 million in insurance "in the rare event of guest damages which are not resolved directly with the guest."

<comment><USER12> For each case like that, i bet there are 1000 where someone just steal a stereo or leave the room dirtier than you can imagine that airbnb does not reimburse the owner. and that the police will just ignore since it is not over the threshold of monetary damage that is there so they don't have to care about poor people like you.

<comment><USER13> Unless there's some evidence of this happening, this is pure conjecture and adds nothing to the discussion.

<comment><USER12> The airbnb team is strong in this thread.

[http://www.airbnbhell.com/](http://www.airbnbhell.com/)

there are several sites like the above. most of the real complaints are cleaning fees that airbnb promises to cover in case of abuse and they never do.

Also, several analysis from insurance companies saying that the $1mm "host guarantee" is a marketing ploy and not that most of the insurance business loss is on small things, and that only covering the big bust is a fake way to not have insurance losses. but you will have to search those for yourself

edit: ok, i've searched for you [http://www.tnooz.com/article/homeaway- thinks-1m-airbnb-host-...](http://www.tnooz.com/article/homeaway- thinks-1m-airbnb-host-guarantee-is-as-empty-as-a-vacant-apartment/)

<comment><USER13> "The airbnb team is strong in this thread."

Yeah, right. I have no affiliation with AirBnB, I've used it twice and have a neutral opinion of it, I'd never dream of renting my house with their service, and if you are going to _baselessly_ accuse me of being a paid shill for expressing my natural, homegrown opinion then we have nothing to discuss.

<comment><USER12> mostly hinting at the fact that several people downvoted, me for not doing the search for all of you, while nobody provided facts on the contrary as well.

picked your comment to reply because, well, i had to pick one :)

<comment><USER13> That's not an excuse for shutting down the conversation by implying the only reason someone would disagree with you is if they were paid to.

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> i used airbnb once for a trip to europe, and one of the hosts cancelled on me the night before, causing me to scramble to find a hotel that was wildly overpriced. the next airbnb in the other city was run by a couple of weirdos who i didn't feel comfortable interacting with.

i'm never using it again - seriously, what is the advantage here? given the very real risk that someone can cancel on you, or simply make you feel creeped out, why would i choose this over reliable commercial accommodations when traveling thousands of miles? cheap hotels are just fine, and they don't cancel reservations on a whim.

<comment><USER15> Airbnb is great when traveling with a larger group (family, colleagues of the kind you'd want to share a house with, etc). There are plenty of cities where cheap apartment hotels that do short-term bookings basically don't exist, often for legal reasons. (I'm looking at you, Singapore and Tokyo.) When traveling with young kids, meaning you _need_ a kitchen, a washing machine and more space than the average Japanese business hotel, Airbnb has been a lifesaver.

<comment><USER16> So you are knowingly breaking local laws?

<comment><USER15> Nope, individuals can often quite legally rent out their apartments in situations where a company could not. See eg. [http://travel.stackexchange.com/questions/27065/are-short- te...](http://travel.stackexchange.com/questions/27065/are-short-term-rentals- airbnb-etc-legal-in-singapore) for the complexities of the situation in Singapore, and I gather Japan is very similar.

</comment></comment></comment></comment><comment><USER17> I just had an awful experience with Airbnb a month ago. I rented an apartment in Maui for two nights. We arrived really late in the night. When we were in the apartment, we found out that it wasn't cleaned. Used bed sheets were on the floor and still on some beds, tables were dirty. The host obviously forgot to clean it. I contact the host, but couldn't get hold of him, since he's in another time zone. I called Airbnb and send them pictures of the place, and asked what to do. The Airbnb support guy basically told us that the apartment was clean enough to stay for the night, and we have to resolve the issue with the host ourselves. That was the first time I have talked to Airbnb support, and the experience was just awful. We ended up staying at hotel for that night on our own dime, but the host was kind enough afterwards to refund the booking fee.

</comment><comment> xkcd-sucks I'm honestly quite surprised that renting AirBNBs for partying/selling drugs hasn't become more popular.

I certainly would have done it as a teenager-- Chip in $5 per person, get a weekend party house that isn't owned by your parents. Get the kid with a beard and the voluptuous church girl to meet the hosts if necessary.

<comment><USER18> You can do this with hotels too, but you don't see that happening. Not really sure why.

<comment><USER19> People party in hotel rooms all the time. It's just part of the standard operations of the hotel to deal with them so they never become a big deal.

</comment></comment></comment><comment><USER20> It's a testament to Airbnb's PR that the people quoted here don't know about previous issues like:

[http://gawker.com/man-unwittingly-rents-out-apartment-on- air...](http://gawker.com/man-unwittingly-rents-out-apartment-on-airbnb-for- xxx-1544961941)

[http://www.businessinsider.com/airbnb-host-cant-get- squatter...](http://www.businessinsider.com/airbnb-host-cant-get-squatter-to- leave-2014-7)

<comment><USER21> The guy in the second situation is a huge asshole, but it is also very naive to think that you can simply rent out your propery to someone (especially on a long-term basis) and you do not somehow enter a landlord/tenant relationship.

Most people know someone who rents out property, and have heard horror stories like this. Laws and eviction processes tend to error on the side of the tenant for good reasons. So it's the responsibility of the landlord to know the rules and the risks. Just because the match was made with AirBnB doesn't suddenly absolve you of risk or responsibilities.

This is not to 'blame the victim', the renter seems like an asshole. For a long time I rented out my house to many roommates, and I've had some bad ones where lawyers needed to be involved. It's often hard to spot an asshole upfront and sometimes impossible to spot a sociopath, no matter how good your interview process (or AirBnB rating system) is. And life circumstances can turn a friendly renter into an evil one. But I knew the risks... namely that in CA it can take 6+ months after a problem occurs to get someone evicted, and your chances of getting paid for that period are very low.

</comment></comment><comment><USER22> New business idea: people engaging in risky commercial enterprises (like, say, renting a valuable property on AirBNB) could pay into a central fund, which would cover damages in rare but nasty circumstances like this. The amount they pay could be proportional to their expected loss, plus an extra fee to cover administration. That way you could pay a predictable amount per month and you'd be covered in the event of a disaster like this.

Silicon Valley, it's time to disrupt commerce - get on it!

<comment><USER23> So, your new idea is insurance?

<comment><USER24> I think the idea is sarcasm

</comment></comment></comment><comment><USER25> > "I mean, this is our home. This is our sanctuary," Mark said.

Then don't rent it to people you don't know. Duh.

<comment><USER26> There are few kinds of HN comment I hate more than the superior-by-dint-of- hindsight putdown.

<comment><USER13> Personally, I dislike comments that just criticize commentary as "hindsight." If it were technologically possible to discuss these things before they happen then I'm sure we would do it, but for now we're stuck with traditional concepts of causality.

I imagine a lot of people on this site have considered renting on AirBnB. Certainly I have. It's a hip service, it fits in well with our techie notions of the world, and you make a little extra cash. Perfect!

Then I came to my senses and decided that the risk to my house, where I happen to live and in which I place great value, wasn't anywhere near worth the relatively small amount of money it would bring in.

If you thought it through and decided it's not worth the risk, it's hardly "hindsight" to point out when somebody else clearly got it wrong.

<comment><USER26> I am in favor of commentary, but his comment only makes sense as hindsight. If he posted it beforehand, he would mostly be wrong, because AirBnB mostly works. If he posted it after any of the many successful outcomes, he would look dumb.

There is no reason to say that these people "got it wrong". They were unlucky. Suppose the same shitheels broke a window, climbed in, unlocked the door, and had a big party on a weekend when the owners were away. One inclined to superiority-by-hindsight could say, "Well duh, why didn't they have bars on their windows?"

After a rare negative occurrence, one can _always_ look back with hindsight, find some way the bad outcome could theoretically have been averted, and then say, "Well duh." _Always._ It is a great way to sound and feel smart. But it never actually fixes anything. Indeed, it can prevent the fixing of things because, having blamed someone, we mostly stop looking for useful lessons to learn.

If you want the book-length version of this, Sidney Dekker's "Field Guide to Understanding Human Error" has a great explanation of why retrospective blame ends up being immensely harmful: [http://www.amazon.com/Field-Guide- Understanding-Human-Error/...](http://www.amazon.com/Field-Guide- Understanding-Human-Error/dp/0754648257)

<comment><USER13> "Why didn't they have bars on their windows?" could be a reasonable criticism or it could be pure hindsight. Which one depends on whether the person stating it was faced with a similar decision and decided in the direction they advise. If I've evaluated the risks and decided that putting bars on my windows is wise, and I did it, then it's totally reasonable for me to criticize people who didn't and subsequently got their house broken into. That's not hindsight, that's having foresight, and criticizing other people for not having it.

That's relevant because the AirBnB question is one that a lot of us have actually thought about and decided on. I (and presumably the other guy above) had the _foresight_ to realize that renting my house on AirBnB was not wise. Pointing out the natural consequences of making what we see as the unwise choice is not hindsight, because we made that decision _beforehand_.

I don't see how this particular instance doesn't fix things, or prevents fixing things. Convincing people not to rent their houses on AirBnB if they care about said houses is a fix! It's a really good fix! It doesn't fix the problem of "AirBnB guests can sometimes cause major damage to their accommodations" but it does fix "AirBnB guests cause emotional violation by trashing a person's primary dwelling."

"Don't rent your home to strangers from the internet" is not searching in hindsight for some way the problem could have been avoided, and using that to unjustly criticize. It's a completely rational approach to life that a lot of people have been following for a long time.

<comment><USER26> Your theory here seems to be that one person in the world having an extremely negative outcome validates basically all negative risk perceptions. I think that's bunk. It makes no more sense than saying that because one person wins the lottery, it validates everybody who buys a ticket and loses. To evaluate risk and reward, you have to look at baskets of outcomes, not crazy outliers.

Suppose he lent his house to a friend who trashed it? Suppose he gave keys to a cleaning service and some reprobate there stole the keys and trashed the house? Suppose an earthquake destroyed his house? No matter what happens, there's always a way to blame people after the fact.

The way this discourages fixing things is that blame never fixes _anything_. Blame isn't a solution, it's another problem.

If somebody wants to do an integrated risk analysis on AirBnB and make some predictions on that, great. I'd love to read it. But comments like the one I call out are predicting the past. They're not just worthless, they're harmful to useful dialog.

<comment><USER13> What exactly is the difference between "blame" and analyzing a past problem with the idea of avoiding similar problems in the future, and what makes you put this particular statement on the "blame" side of it?

<comment><USER26> From Wikipedia: "Blame is the act of censuring, holding responsible, making negative statements about an individual or group that their action or actions are socially or morally irresponsible."

This guy didn't "analyze a problem". There was zero intellectual contribution. He called people stupid for taking a risk and then being unhappy when they got a 1-in-a-million negative outcome.

If you want a longer version of why blame impedes risk analysis, try the book I recommended upthread. (Or pretty much any book on retrospectives will have a shorter version.) But the short version is that you basically have a choice between the emotional activity of blame or the analytical activity of analysis. Because humans.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER27> (Gasp) you mean requiring pictures of the host & pictures of the potential renter is not a cure all? Why, I never....

</comment><comment><USER9> Another Airbnb host learns the hard way that being an Airbnb host is a sucker bet. It's the meatspace equivalent of running a Tor exit node.

</comment><comment><USER28> It should be really easy for Airbnb (which insured the house under its TOS) to recoup the damages from the renters, of whom it has all pertinent information to track them down.

Though the article is sensationalized linkbait, unnecessarily showing pictures of the damage, the story is an affirmation of Airbnb's good business practice of mitigating risk to the owners.

<comment><USER29> Does Airbnb pay you well?? I mean, a police officer in CALGARY said that he had never seen anything like that.

Note - Calgary is right in the middle of a highly prosperous oil patch and nobody can wreck a home quite like rig workers.

<comment><USER30> Well he isn't wrong, Airbnb asks for Government ID when you rent a place and they have your credit card information.

<comment><USER31> Pretty sure the credit card doesn't have a limit of $75,000. There's plenty of identifying information, but it's still a matter of civil litigation.

</comment></comment></comment></comment><comment><USER32> Are we not past the immaturity of having to post the fact someone trashed a house, but OMG it was on Airbnb?

Continuing this level of immaturity, it seems to mostly be just mess that a simple mop and bucket could fix.

But I guess to the immature having to clean for a few hours is a news worthy horror.

Yes a couch or three might be total write offs for the immature, where as a good steam clean from the non lazy might fix some of them, but Airbnb will replace them anyway.

The 'what's wrong with people' should really be directed to the people who watch these style of stories.

<comment><USER33> I don't think the homeowner is going to be stuck with the bill. But, that kind of dammage can easily end up with some prison time.

It depends on the house, but doing $50,000 to $75,000 worth of damage to a 'normal' house without fire or flooding takes some effort and is a little more than just a few couches. Sure, you could also do that much dammage by chipping the wrong cup, but and assuming a normal house I suspect the party was actively trying to trash the place.</comment></comment>


Plug-In EV Sales in Norway Up 48% in October, Overall Market Share at 43% - <AUTHOR> https://insideevs.com/norway-ev-sales-october-2017/ <comment><USER2> It's going to be an interesting inflection point when gas stations start closing. It's easy to setup a charging station at home, but if the nearest gas station is 30 miles away that's a different story.

<comment><USER3> Imagine how much simpler a commercial charging station is than a gas station. You already need electricity for a gas station, but you no longer need to send tanker trucks out to fill tanks and technicians to maintain all the mechanical pumps, or even the auditors who make sure that the pump is measuring gallons correctly.

It will be really easy to enable long distance travel for EV's that can DC fast charge. Charging for your home area is covered by wherever you park it.

Seems like a gas station death spiral is inevitable, once there is a solid travel network in place and ample 200 mile range EV's available.

<comment><USER4> Just to be clear, the power requirements for a supercharging station and a gas station are wildly different. The supercharging station might be putting out 75KW per car, and have a dozen cars charging at any particular point. A whole gas station might pull less than 75Kw easily.

The requirements for the kind of grid hookup you need to handle that power are wildly different. Alternatively, you can have a lower powered grid connection, and local batteries to buffer energy and lower peak power, but that is even more expensive, and only works if your charging station has low average usage.

Once built, the supercharging station might need less maintenance, but it is WAY more expensive to set one up up front. This won't stop them from proliferating, IMO, but it's still a big barrier to entry, and a nice commercial "moat" for Tesla to offer their customers.

<comment><USER5> We have worked with electric trains with over 1Mwatt or more per machine in places like subways. When a train slows down and stops, an enormous amount of electricity is recovered for another train to accelerate at the same time.

Also the requirements of aluminum factories in electricity are mind blowing.

What I mean is: We already have those electrical installations running, way bigger installations than 10 supercharging stations grouped together, for industry and transport.

I see EVs as an enormous opportunity for those technologies to become cheaper as they become mass produced. But the technology is well proven and works.

It will also accelerate the development of things like superconductors or extreme voltage continuous current for electric transportation.

<comment><USER6> The problem isn't a lack of technology, but cost. You have to get your electric utility to make substantial improvements to their delivery infrastructure. This generally involves digging up the street and laying cables, not just flicking a switch. It gets more expensive depending on how far your proposed charging station is from the nearest high voltage distribution point.

<comment><USER2> It does not take a lot of buildings to get into the 1MW range.

A 20 story apartment complex with say 400 apartments needs ~1MW. Power companies are used to rolling out these kinds of connections and large ones do it on a weekly if not daily basis.

</comment></comment></comment></comment></comment></comment><comment><USER7> Is this really a surprise? Massive government incentives and cheap electricity.

I was there this summer working on an oil rig (Aasta Hansteen), ironically. Teslas, BMW i3's/i8's and more... everywhere. What is more, is that many of the Norwegians who work in the oil industry own electric cars because "petrol" cars are too expensive.

<comment><USER8> It is to me, given the level of subsidy and current tech! And there are always plenty of people who will believe that electric cars will never work for any significant chunk of a population. Even on seeing data like this they will probably retreat to "oh it's a European country, nothing like what I experience."

The level of economic tax break is such that a Leaf costs about the same as a Golf[1]. These are pretty equivalent cars in size, though the Leaf is more fun around town, and the Golf more fun on the highway. But the Leaf has a huge range disadvantage.

Wikipedia also says:

>Electric vehicles are also exempt from the annual road tax, all public parking fees, and toll payments, as well as being able to use bus lanes. These incentives are in effect until the end of 2017 or until the 50,000 EV target is achieved.

People are buying these largely as second cars (which is what everybody should be doing, IMHO). Once the battery costs come down so that 300-500km BEV range costs same cost as gas up front, BEVs become the primary car, and market share will increase even further.

[1] [https://en.wikipedia.org/wiki/Plug- in_electric_vehicles_in_N...](https://en.wikipedia.org/wiki/Plug- in_electric_vehicles_in_Norway#Existing_incentives)

<comment><USER9> This largely has to do with the high average income and a wealthy state than European culture or anything like that. I can't imagine my city ever giving up parking fees or the average person being able to afford a mid-tier electric car, even with the subsidies we have here in Canada.

Not to mention there are usually far better offerings for electric cars in Europe. Such as the Golf GTE which isn't available in North America: [http://www.autotrader.ca/expert/20170605/first- drive-2018-vo...](http://www.autotrader.ca/expert/20170605/first- drive-2018-volkswagen-golf-gte/)

The lack of infrastructure is also a big deal. I personally didn't get a plug- in because of the lack of access to plugs in my apartment building and only a few charging stations in my city.

<comment><USER8> Are you trying to prove the point of my second and third sentences? :) Otherwise I'm not really sure what you're trying to say.

</comment></comment></comment></comment><comment><USER10> Part of the October boost is probably caused by a significant increase in road toll for any ICE-powered car entering Oslo, introduced (if memory serves) October 1st.

Roughly half the population of Norway live within an hour's drive from Oslo (this is probably a slight exaggeration, but emphasis on 'slight') - so this increase probably served to boost sales of any toll-exempt vehicle instantly.

</comment><comment><USER11> All of the hubbub around Norway and EVs smells to me. How far can you really go in an electric car in the winter in a country in/around the arctic circle? How far does the distance an EV can travel diminish when you have to heat the cabin?

<comment><USER12> Most of Norway is very far from the arctic circle. And even the few bits that are close to the artic circle are pretty warm most of the year. Thanks to the gulf stream most of Norway rarely gets that cold.

<comment><USER13> Most of the population also live close to the sea, which helps keeps the winters mild.

If you spend a good amount of time at a winter cabin in the mountains, there is a good chance you got two car and can take your non-electric there.

</comment></comment></comment><comment><USER14> Does EV mean purely electric vehicle or does it include hybrids?

<comment><USER15> It includes plugin hybrids. The article says that the 43% (42.9%) total breaks down to 21.6% plugin hybrid electric vehicle and 21.3% battery electric vehicle. It wouldn't include hybrids that cannot charge batteries from a wall plug, like the ordinary Prius.</comment></comment>