Thunderbolt-DMA-land: Hacking Macs through the Thunderbolt interface - <AUTHOR> http://www.breaknenter.org/2012/02/adventures-with-daisy-in-thunderbolt-dma-land-hacking-macs-through-the-thunderbolt-interface/

<comment><USER2> This is a deeper issue than just firewire. Yes, disabling firewire will stop this one vector of the attack, but there are plenty of other devices out there that can use DMA channels. I imagine someone halfway decent with vhdl and other languages can code an fpga that'll take the pci-e channel and enumerate as another device that the OS has DMA drivers for, like a SATA controller chipset or a sound card. From there, one has to implement just enough of the expected behaviors -- for a SATA controller, perhaps pretend to have a 1 meg drive attached to it, for example -- to get a DMA channel and continue as with the firewire attack.

The issue here is that Apple, like most OS vendors, still don't seem to use the IOMMU facilities built into chipsets, especially for untrusted devices, like anything connected to a thunderbolt port. Considering that the Firewire attack has been known for several years, it's rather foolish that a company would implement a spec that can provide direct access to RAM without such basic precautions.

<comment><USER3> SATA is not as straightforward, as far as I know there are no known attacks. It depends very much on the intface design, and you do not just get a pcie bus from sata. USB has some weak attacks apparently. Firewire and so on are mulimaster which is much more dangerous. No reason not to use iommu.

<comment><USER2> SATA devices wouldn't be able to pull these off, but a malicious SATA /controller/, connected to the pci-e bus, could. There have been proof of concept rootkits ( [http://www.livehacking.com/2010/11/23/backdoor-rootkit- for-n...](http://www.livehacking.com/2010/11/23/backdoor-rootkit-for-network- card/) ) which hack the firmware of devices to use the negotiated DMA channel for operating system corruption. I used SATA as an example because it's something that would not be as easy to disable. The firewire attack is easy to disable because it's well known and most people don't need firewire. SATA controllers are a lot more common and would require a lot more work to clean up.

</comment></comment></comment><comment><USER4> There are ways to prevent DMA over firewire, and also Apple has been aware of and provided prevention methods (such as disabling firewire DMA when a firmware password is enabled) over the years.

A good account of the current state of affairs is here:

[http://derflounder.wordpress.com/2012/02/05/protecting- yours...](http://derflounder.wordpress.com/2012/02/05/protecting-yourself- against-firewire-dma-attacks-on-10-7-x/)

And a diagram of protection methods that do work:

[http://www.frameloss.org/2011/09/18/firewire-attacks- against...](http://www.frameloss.org/2011/09/18/firewire-attacks-against-mac- os-lion-filevault-2-encryption/)

</comment><comment><USER5> Apple actually had a remote debugger that (ab)used the FireWire DMA to get access to the RAM. I used it several times when debugging drivers on OS 9.

I had thought that the OS X FW drivers didn't map any RAM until a driver requested some 1394 address space, but apparently that isn't the case... That would be the sane and easy way to fix this.

</comment><comment><USER6> My favorite FW exploit story: someone thought their laptop was "secure" because it didn't even have a FW port. The attacker plugged in a FW card at the login prompt, and the OS automatically installed the drivers - and the vulnerability :)

</comment><comment> X-Istence Feel free to remove the FW driver from the OS.

<comment><USER7> I thought this was a hardware-based attack. Does it matter whether the OS supports firewire or not?

<comment><USER8> No. It's direct DMA from the hardware.

<comment><USER9> It does matter. The OS has to set up the device for DMA in the first place. If the device is never enumerated it just doesn't get access.

</comment></comment></comment></comment><comment><USER10> Funny, when I first heard about thunderbolt my first thought was "Cool, I can finally build my own SSI NUMA box like an SGI!".

The second thought was, gee, what if someone writes a crappy driver that scribbles another hosts memory.

</comment><comment><USER11> You mean with someone with physical access to my machine can trivially bypass software security measures?

I am shocked, _shocked_ , good sir!

<comment><USER12> This attack is hot precisely bc it blurs the local/remote line.

Physical access is relative. 'Remote' vulns are still exploited with some level of physical access: i.e. via a network that lets you touch bits on the other side of the machine's ethernet jack / wireless card.

The other extreme is standing over the ripped carcass of the machine case, triumphantly raising an unencrypted hard disk over your head, and blowing a kiss to the receptionist on your way out through the main lobby.

The OP's attack can be staged multiple hops away, through a physical network of peripheral devices. In a heavy SAN or PPPoFW environment, where FW cables are regularly disappearing under desks, a somewhat-insider could dump a lot of RAM.

RAM which, for some goddamned reason on OS X, apparently contains an _unencrypted copy of my login password_?! Ouch.

<comment><USER13> _RAM which, for some goddamned reason on OS X, apparently contains an unencrypted copy of my login password?_

Really? Most software does that, most crypto software and encryption algorithms are vulnerable to RAM attacks. It's not as easy to protect against that as you think it is.

<comment><USER14> Most software is vulnerable, but only for a very limited time span. If the password is persistent in RAM during an entire session, it's still a WTF.

</comment></comment></comment></comment><comment><USER15> This is some serious shit. We're doomed!</comment>


Show HN: My Start-up for managing roommates - <AUTHOR> http://goodmate.co

<comment><USER2> I guess I'm going to sound like a Debbie Downer* but this feels like a great example of when talented software engineers have too small a universe of personally experienced problems, and end up building solutions for things that don't really need to be solved.

Dealing with roommates is no doubt a venerable problem to solve, but is there really a 'market' here that people will pay to address? There are so many lucrative and important issues out there, solving roommate management seems way down the list in terms of building a viable business. I base that last bit on the fact the OP describes this as a "startup" not a project.

I would emplor the OP to get out into the world more and find better problems to solve.

* = I use the term "debbie downer" after the recent HN post about searching for the weird terms people use in their comments. Debbie Downer was one of them.

<comment><AUTHOR> I appreciate the feedback! We are still playing with the idea of how viable this is as an actual business. For me this gave me an opportunity to escape from the more standard tasks of freelance development and a chance to implement all the new toys (MongoDB, Backbone, CoffeeScript, Bootstrap, etc.). That being said, I think there are some interesting ways that this could become quite profitable. If not, it's still a great way to put my name to something when applying to incubators on other ideas

<comment><USER3> I agree there may be no 'market' making money from students who have to live together, but the problem of 'shared ownerships' applies to much more people (even incubators themselves!).

</comment></comment></comment><comment><USER4> Maybe adding some screenshots of the app could help people sign up.

<comment><AUTHOR> Good idea. Will add something to the home page.

</comment></comment><comment><USER5> Please add another type of login.

</comment><comment><USER6> I would rather say, a 45- 60 secs max, video with a screenplay, would be just awesome. If you can tell the pain of whiteboarding the tasks, or roomies arguing over the tasks, and then the advantage of using GoodMate. This is a pretty simple idea, but a damn needy one.

Cheers!!

</comment><comment><USER7> Splitwise (<http://splitwise.com>) also has a roommate bill-tracking tool, of which I'm the co-founder. We have Android and iPhone apps that sync with the cloud, and you don't need to connect with Facebook to sign up. Doesn't do chores or to-dos though, if that's something you want in your roommate site.

Let me know if you'd like to meet sometime @rschmulker, I'm based in Cambridge MA and Providence RI. You can reach me at email@example.com.

</comment><comment><USER8> Nice work. I like the logo and its a great idea. This space seems to be getting crowded, I feel like I've seen a few apps in this vein recently, most notably RentShare (<http://rentshare.com>), which a few of my friends in NYC use.

My biggest question to you (and anyone else here): What's your strategy for differentiating yourself from others in the market?

<comment><AUTHOR> One thing we are looking into is building a sort of roommate resume. We have data on how much you borrow from friends, how long you take to pay back, how often you do and don't do your chores, etc...

I find as I am transitioning out of college, I am about to move again to a new place and now I'll need to find new roommates. I personally would pay a fee to have access to good roommates to choose from, especially if its backed up by some sort of tangible history (badges, analytics, etc.) There's also a lot of opportunity here to make a game out of something not fun. Game mechanics are perhaps a bit over done, but none the less, it could be fun to compete against roommates for the title of best roommate. Hell, we could even incorporate something where all the roommates take a pool ($10 each for example) and the roommate with the highest points at the end of the month gets it.

</comment></comment><comment><USER9> I'm not sure if this is a product that will become profitable soon. I am quite sure that you did learn from building it (and you did a good job!), so that may be worth more in the long-run than what this may end up being worth.

It takes guts to launch, more to show them on HN, and even more to keep launching until you strike gold (but you still keep on launching...)

The best of luck!

=)

<comment><AUTHOR> Thanks for the praise!

</comment></comment><comment><AUTHOR> Would love any and all feedback. Ideas, features, UX problems. Whatever you guys have I'd love to hear!

<comment><USER10> i doubt this audience is going to be receptive to a site that requires a facebook login. it's probable you have other demographics in mind though.

<comment><AUTHOR> Yeah, the facebook authentication is kind of a double edged sword. We want it because it will make it easy for users to invite their roommates, and more importantly, it allows us to have the concept of an "identity" to tie actions to. Going forward this could let us create a sort of roommate-resume tied to your identity.

<comment><USER11> Instead make it really easy for one roommate to create everyone's accounts, then you reduce the conversion requirement to just 1 person (though you do slightly increase the friction on that one person you radically decrease it on the others).</comment></comment></comment></comment>


Names do not transmit meaning - <AUTHOR> https://www.parsonsmatt.org/2019/08/30/why_functor_doesnt_matter.html <comment><USER2> I like the article but I disagree: Mappable is the correct name in this case and does transmit the meaning which is contained in the "grammatical" expansion. The confusion here is that there are prerequisites to knowing what Mappable means. One should know what map, the more primitive concept, means first. This is how derivational morphemes work. The productive suffixes still remaining in the English language such as "-able" do in fact have meanings, as do verbs such as "map", and they combine to form new meanings.

Furthermore, a bunch of things being named terribly doesn't support the thesis that names don't transmit meaning. It supports the thesis that a bunch of people failed to communicate and they should have put much more effort into naming things accurately.

> Names don't make them any easier or harder to understand

If we renamed every variable in Firefox, for example, with numbers, people would find it more difficult to understand, so this is an absurd thing to say. The reason we use names is because they _do_ convey meaning. That meaning (index into our conceptual map) is what differentiates them from the numerical value of the string of letters which make up their textual representations and makes them so much easier to remember and understand contextually!

<comment><AUTHOR> In Scala a Set is "mappable" because it has a `map` method that goes over its elements and transforms them using the provided function. But it is not a functor, because its `map` does not obey the functor laws. If you take a Set of integers and pass an `isEven` function to `map` you will get a Set with a different structure (as long as there were originally at least two odd or two even numbers of course).

`Mappable` provides short-term comfort due to familiarity, but to do so it sacrifices precision that is essential in the long term.

<comment><USER3> I am also really annoyed by how Set and Map's map methods work in Scala (and have argued about it here: [https://contributors.scala-lang.org/t/set-map- deduping-and-p...](https://contributors.scala-lang.org/t/set-map-deduping-and- possibly-unsafe-behavior/3436)), I actually don't think that for all the shortcomings of the Set map method, it actually violates any of the Functor laws:

1) For all sets s, s.map(identity) == s ==> true

2) For all sets s, functions f and g, s.map(x => f(g(x)) == s.map(g).map(f) ==> true

On the other hand, Map's map method is much more horrible, and does violate the 2nd functor law where f == g == _.swap :

Map(1 -> 2, 2 -> 2).map(_.swap).map(_.swap) ==> Map(2 -> 2)

Map(1 -> 2, 2 -> 2).map(_.swap.swap) ==> Map(1 -> 2, 2 -> 2)

Further, it behaves differently depending on if it is known to be a Map at compile-time, or if it is only known to be an Iterable[(K, V)], due to overloading:

Map(1 -> 2, 2 -> 2).map(_.swap) ==> Map(2 -> 2)

(Map(1 -> 2, 2 -> 2): Iterable[(Int, Int)]).map(_.swap) ==> List(2 -> 1, 2 -> 2)

<comment><AUTHOR> Ah, you're correct of course, as is TJSomething. While Cats and Scalaz don't provide a Functor instance for Set (and neither does Haskell for Data.Set), it's not for the reason I mentioned.

</comment></comment></comment></comment><comment><USER4> > Names can't transmit meaning, and so a name shouldn't be judged on how well > it transmits meaning. That doesn't mean that names can't be judged at all - > there are good and bad aspects to names.

Names can't transmit the complete meaning of a concept, but they can still transmit a partial or ballpark representation of that concept. In the world of linguistics it's easy to see how many names come from the composition of Greek or Latin roots, prefixes and suffixes, or Chinese composition of radicals. I don't find it particularly compelling to try to make the case that names cannot transmit ANY meaning at all -- therefore let's choose some other arbitrary criteria for judging names.

If you think about the concept of affordances/signifiers from HCI and interaction design, people do draw upon their past experience when encountering new, unknown concepts, and in the PL space a good name can streamline the process for learning a new concept. It's just that Functor has affordances from category theory and, well, most people haven't taken enough advanced math to access those affordances before encountering Functor.

I think Matt would have been better off calling this article "New Concepts Deserve New Names", rather than try to say that all names transmit no meaning whatsoever. I think I would agree that it's not a huge price to develop new affordances for Functor, Applicative, Monad, Semigroup, and Monoid, in comparison to the potential pitfalls of choosing a name that points to a potentially vague or incorrect meaning. And I personally like the names because although they were poor pointers to meaning, they were good pointers to their mathematical roots, and that makes me curious to learn more category theory.

<comment><USER5>
         Names can't transmit the complete meaning of a concept

Exactly. It seems the author is stuck in a sort of "precision trap", where in their ideal world, there would be no ambiguity in names and when I referred to a foobaz, I'd be pointed only at a foobaz as it relates to xyzzy, and not ... I'm running out of silly variables.

Names are the first point that you often encounter a subject. Arguably, it's more important that a name be _more familiar_ at the expense of precision. As the developer becomes more familiar with the concept, they'll understand, for instance, that "Select" in C# is for converting one object to another, and "Where" is for limiting the results. Sure, at first glance, one might think "Select" is for filtering, but the release of LINQ coincided with language features centered around reducing the need to write SQL, so the name "Select" and "Where" were used rather than "Map" and "Filter" because they correlated directly to keywords in SQL.

I'd argue both that "Familiarity is the reason names are chosen" and that in the context of software development, choosing familiar names that easily transfer to a concept that is "good enough" has greater value than picking an obscure, but precise word.

</comment></comment><comment><USER6> I think one of the best counterexamples is The Jabberwocky by Lewis Carroll. If names (and more generally English words) conveyed no meaning on their own and were simply keys in a large fuzzy hash table, the poem would be completely opaque. However, despite the fact that almost every word in it is made-up (new, never a be foreseen keys), I'd argue that most English speakers, after reading the poem, would have a reasonably common understanding of what "slithy" meant or what a "borogrove" was.

If names fit well with what a person already knows, they can aid memory and even impart understanding. If names are poorly chosen they can instead confuse.

<comment><AUTHOR> Even more impressively, the poem is also sometimes used (untranslated) in classes teaching English as a second language. So you don't need to be a native speaker to intuit the intended meaning.

</comment></comment><comment><USER7> >> I'm about to go on a bikepacking trip ...

When I read that, I had never seen the word "bikepacking" before, but I think I've got a decent idea what it means. Words matter. Technical terms exist in a context and are not just arbitrary identifiers. If we called monoids broccoli and other concepts had other random words, programming would be harder. Not everything can get a great name, but we should try.

</comment><comment><USER8> Naming things is one of the hardest problems in programming. No matter how much experience I get, I still run into problems where I can't think of a decent name for something on a regular basis.

<comment><AUTHOR> Some thoughts on the matter:

1) Are there domains where naming things is easier? Perhaps even trivial? As a layman in both, biology and astronomy come to mind. Where you just find a Latin word vaguely describing what you see, and if nothing comes up you just pick a name of a famous person from your field that doesn't already have something named after them.

2) If non-English languages are also considered, are there any where naming things is easier? Have to keep in mind that a "good" name maintains a balance between descriptiveness and brevity.

3) Can this be considered as an advantage of point-free style?

4) Is naming things in programming hard as in "building a spaceship" or as in "making the NBA"? That is, can you name all the things if you put in enough effort, or are some things simply unnameable?

<comment><USER9> > If non-English languages are also considered, are there any where naming > things is easier? Have to keep in mind that a "good" name maintains a > balance between descriptiveness and brevity.

As a native English speaker with a relatively very weak understanding of Chinese, I find Chinese names to be generally understandable and English names to be completely opaque.

This is most pronounced when dealing with technical topics:

For example, because I know essentially no Latin or Greek, a name like "Bilirubin" means absolutely nothing to me. Whereas the Chinese word, 膽紅素 (膽 - gall bladder, 紅 - red, 素 - essence), is actually something I can break down and have any idea at all what it is.

Japanese is also generally better than English in this regard in my experience, but unfortunately it often borrows words from other languages. In this case, ビリルビン (birirubin), so it can be even more opaque than English.

In the case of "functor", I also find the Chinese (函子) more obvious than the Japanese (関手) or English.

<comment><USER10> > In the case of "functor", I also find the Chinese (函子) more obvious than the > Japanese (関手) or English.

If not too much to ask, can you please explain how those non-latin characters form the meaning for the word "functor"? In my native tongue (Turkish), we borrow the word "functor" without applying a translation to it, thus it becomes one of those things you simply memorize and move on.

Do these Chinese and Japanese words form a meaning similar to something like "function-izer" or "function+abler" or something else?

<comment><USER11> 函子 should probably be analyzed as an abbreviation of "函数" (function) + "子" ("essence of" or "atomic unit of"). This meaning of "子" is the predominant one when used in technical contexts. See molecule "分子" (unit of separation) atom "原子" ( _the_ original/fundamental unit) electron "电子" (unit of electricity) or monad "单子" (essence/unit of oneness) where the second character is third tone not neutral. Many of these originate in Japanese and are re-borrowed back into Chinese, but that's a story for another time.

A sibling comment points out that 子 can mean child. This is the original, ancient meaning of the character. This usage is still productive in modern Chinese (usually to mean sons), but the previous examples are examples of how the meaning has undergone some transformations to form derived, related meanings. The original meaning can also be found in technical contexts. Examples of this are 子集 (child + set = subset) and again 分子 (fraction + child = numerator) with the counterpart 分母 (fraction + mother = denominator). This is not how I scan functor 函子 though.

In the Chinese programming community, you'll usually just see the English words "Functor" and "Monad" used. I wouldn't be surprised if some Chinese programmers familiar with "Functor" do not recognize "函子." I've only ever seen 函子 used in math articles and occasional FP tutorials (and even then, given how dominant English is, it is often glossed by "Functor").

</comment></comment></comment></comment></comment><comment><USER12> Names clearly CAN transmit meaning once a context and a vocabulary are a given, to quote Leslie Nielsen, isn't that right mr-poopy-pants? Even five year olds know this, and for some reason math- educated-types (look, i did it again!) are especially against combining symbolic representation AND semantic content in the same symbolic medium, even though the lesson from programming is that even though it can be hard, when it's done well, it's infinitely superior for humans to actually use in practice.

In defense of Haskell however, author does have a point. Names for abstractions and anything you cannot touch and hold and easily categorise as a human in everyday life are really hard because current English is almost void of good words that capture or describe these concepts. Map and reduce, as two examples he rightly points out, are no more meaningful to most people than any other name we could give, and the only reason we think they are or might be is when we come from a context that has already learnt them. The same could be said for add, minus, subtraction, division, if they weren't essentially universally taught in universal education.

Who knows, maybe in the future, when abstract programming becomes widely taught, maybe words and concepts around abstract operations will enter the mainstream language.

Although, as a controversial counter-proposal to that (which I am merely putting forth, not necessarily advocating, i admit ignorance in this regard) if it turns out that various levels of abstract thought are not universally learnable by humanity, which is to say, are there thoughts and concepts some/most people can't think, then such words and vocabulary will always be an 'elitist' language...

/random thoughts

</comment><comment><USER13> It's probably just a quesion of what you are used to.

OOP terminology feels more "Software Engineer"-y to me and FP terminology feels more "Math"-y.

So OOP feels more at home and FP feels more foreign.

On the other hand, in OCaml feels at home and Haskell/PureScript feels very theory-heavy.

</comment><comment><USER14> Saul Kripke built an entire career on what exactly names are, as covered in Naming and Necessity ([https://en.wikipedia.org/wiki/Naming_and_Necessity](https://en.wikipedia.org/wiki/Naming_and_Necessity)), building on earlier work by Frege ([https://en.wikipedia.org/wiki/Sense_and_reference](https://en.wikipedia.org/wiki/Sense_and_reference)). OP touches on some concepts they cover - it's definitely worth reading these two if you are interested in the philosophy behind names!

</comment><comment><USER15> One of the funny things about "Monad" is that philosophers will probably come to it with a fairly rich concept of what a monad is, since it has been used since ancient Greece.

[https://en.wikipedia.org/wiki/Monad_(philosophy)](https://en.wikipedia.org/wiki/Monad_\(philosophy\))

<comment><USER16> This is called Unit in the context which we are discussing.

A monad is a different concept in this context.

</comment></comment><comment><USER17> Names are one part of a two-part code. The name transmits meaning to people with enough knowledge of the other part.

Liken them to other analogies using other names can help build up the required knowledge

</comment><comment><USER18> Functor is a good enough name. Much better than for example quark from particle physics with its colors.

Mappable is definitely better in one specific context but contrary to the author I think that Iterable may be even better as it is a more generic name (Iterable can be also Foldable).

Or does Mappable mean that you will mutate the state?

But why not refer to multiple names? Functor also known as Mappable or Iterable?

<comment><USER5> Honestly, I think Mappable and Iterable are _both_ fine. Are they perfect? Maybe to one or two developers who's past experience precisely matched up. They're "good enough" because the reason we tend to name things the way that we do is because (1) we're trying to help the developer create/learn/form a mental model of the concept we're introducing and (2) we're providing experienced developers with a name that, when context is provided, allows for quick recall of the details of what was learned. A word that is _very_ unusual (Monoid and Monad come to mind in that -- for me -- there wasn't a _part_ of that word that conveyed meaning), might as well be a "magic number". I have to remember the concept, and this odd word that I'm only ever going to see in the context of this concept. That's OK when it's infrequent or when the concept is so far off from anything else that it necessitates a new word (Internet)[0].

Had they chosen the word "Mappable" over "Functor", it would be unimportant that in "language X" a Mappable is a Functor and in "language Y" it's something similar, but not exactly the same. Hell, even _distant_ similarities (like Visitor pattern or Map) are useful. To remember what "map", in JavaScript did, I thought "C# 'Select'", since I had used that more frequently, but I also remembered that "thing X maps to thing Y", or "A map gets me provides a way for me to get from location A to location B". I can explain most of that with the word "map" and they have a quick way to remember it. I don't have an easy way to do that with functor. I don't even have a terribly good way to do that with the word "function".

When I tell my kids to "Open the door" when they knock, I'm referring to the door they knocked on, not the front door, the garage door, or the sliding back patio door. They're all _wildly_ different concepts for "door" but I can refer to each of them as a "door" with either implied (as-in the nearest door to where I'm standing) or by providing additional explicit context (the "back" door is enough for everyone who has visited my home, thus far, to understand that I'm referring to the sliding-glass patio door).

[0] Note that I'm not referring to business names or names for people. They serve different purposes.

<comment><USER18> Good points.

> I don't even have a terribly good way to do that with the word "function"

This is something I have internalized: function is a map is a map is a map from one set to another. This is the reason I think that Functor is not such a bad name.

</comment></comment></comment><comment><USER5> I really didn't have much of an opinion on the subject but after reading this, I'm finding that the author effectively demonstrated why Functor, Monoid, Monad and most of the terms used in FP are terrible and why it's so hard to get people to explore pure functional languages. This is the opposite of what the author intended, but I was unable to find anything other than evidence _against_ the argument the author was trying to make.

The author's central point and most of the arguments they make, throughout, prove the opposite of what they're trying to argue.

         The purpose of a name is a pointer

The author then goes on to use this statement as though they had actually said "The only purpose" or "the primary purpose". Context, here, is _really, really important_. The purpose of a person's name is an attempt to be a unique pointer to a person.

From there we twist in to how ineffective the way we name things is _at being a unique pointer_. But how unique of a pointer does a name have to be? If that was the primary, only or main focus, our language would reflect that. I wouldn't tell the kids to "open the door" when I'm in the bedroom, I'd tell them to "turn the kwikset lever handle on the master bedroom door". Or I'd use the fancy name for the kind of door (it's got a french name of some kind) we have in our bedroom.

In the first case, I'd be providing unnecessary information. In the second, my use of a unique name to describe a unique door in our home would land in this articles "nirvana", but my kids would stand there confused since they would not be familiar with the term.

         Names can't transmit *meaning*

Of course they can! The author is more-or-less trying to make the argument that "names _shouldn 't_ convey meaning", but you don't get to control what your readers do with what you provide[0]. In fact, it's clear that the _main goal_ that language authors place on _naming things_ is specifically _to convey meaning_. The author's argument now becomes "Names regularly transmit meaning and often the meaning they transmit isn't as accurate as I'd like it to be".

In fact, that an unfamiliar name was used for something where a more common, familiar term was available made understanding what a Functor was much more difficult. Had it been called Mappable, I would have been most of the way there[1]. Upon researching what a "Functor" was, I didn't trust any of the first several, simple, short answers because I assumed "if that's all it is, they wouldn't have used such an obscure name".

So _the very use of a name unfamiliar to me_ conveyed meaning that _it must be a much more complicated topic, or they would have used a term that landed on the 80% mark_.

[0] Newspeak, aside.

[1] I didn't actually struggle with Functor, but that was the author's chosen term to focus on. For me, I think it was Monoid and Monad. I had been using F# for two years before I actually _looked up the exact definition_ of those two terms. Knowing what they meant was, evidently, not important but that they were named something unfamiliar to me didn't immediately make me explore what they meant.

</comment><comment><USER19> Isn't a Functor just a morphism from one category to another?

</comment><comment><USER20> In my humble opinion, Haskell uses big words and obscure category theory terminology for simple concepts in order to make Haskell programmers look smart. It's actually rather selfish because it reflects poorly on other FP languages, people start to think that _all_ functional programming languages are about applicative functors and kleisli arrows.</comment>


A Strategy For The Dreaded Interview Coding Question - <AUTHOR> http://www.etherealbits.com/2012/07/a-strategy-for-the-dreaded-interview-coding-question/

<comment><USER2> I don't know about you, but I don't dread interview coding questions at all -- I love them. What I dread are the squishy / soft questions. "Where do you see your career going in 5 years?" "What do you want to get out of this job?" "What is your greatest weakness?"

Coding I can handle.

<comment><USER3> Here's a good cheat sheet of answers to memorize.

<http://www.gowrikumar.com/interview/index.html>

<comment><USER4> Rather than memorizing the answers to bad questions, technical interviewers should memorize the questions themselves. Then if any of those show up in an interview, walk out -- one doesn't want to work at those sorts of companies.

<comment><USER5> That's a bit much - it's rare that a company doesn't have something broken about its hiring process, even good/great companies. If you want to work there otherwise, what does it hurt to learn the expected answer for fluff questions and recite it when asked?

<comment><USER6> It is a bit much. Good managers can be crappy interviewers (and vice-versa). I would take it into account when considering my options, though.

</comment></comment></comment></comment></comment><comment><USER7> Yes. Having been on both sides of the process a lot recently, I'd agree that restating / asking questions / talking through the problem as you do it is helpful. But beyond that, I think that simply practicing typical whiteboard questions is the best preparation. You can find a lot of these simply by googling, or, by looking at a typical CS algorithms or data structures textbook. Re-familiarize yourself with lists, trees, etc... and basic searching/sorting algorithms. Steve Yegge offers similar advice here: [http://steve-yegge.blogspot.com/2008/03/get-that-job-at- goog...](http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html)

<comment><USER5> Yegge's post is a classic but getting a bit old. I highly recommend "Cracking the Coding Inteview" [[http://www.amazon.com/Cracking-Coding-Interview- Programming-...](http://www.amazon.com/Cracking-Coding-Interview-Programming- Questions/dp/1466208686)] for serious prepping.

Edit: It looks like the author of the above has a newer book out called "The Google Resume", probably worth taking a look at too.

</comment></comment><comment><USER8> This framework is very similar to case interview questions management consultants use during their interviews. The bit about repeating the question not only buys you some time to think about the problem some more, but also allows you to confirm your assumptions (as the write notes).

As another comment pointed out, the best way to become better at this process is to practice. I know when I was preparing for my consulting interviews, I practiced the framework with a friend for weeks at a fast food joint so that I had the process down. Once you can perform the process instinctively, you can focus your brain cells on actually solving the problem.

</comment><comment><USER9> I like the framework you layout. It's always good to have a method for walking through problems because it conveys a cogent thought process (reminds me of SAT multiple choice problems or Spelling Bee questions about word origins).

</comment><comment><USER10> I think the world could have done without this post. The reason being that while the interview question might be anywhere in 2hr-solution space, the answer is always: Make sure you understand the problem, the edge cases and present a viable structure for a solution. Now we're going to have to find a new question.

<comment><USER11> "present a viable structure for a solution" is easier said than done. This post elaborated a bit on that point and offered some suggestions that I found useful.

<comment><USER10> I think you missed my point, and that's ok. Maybe also the OP. Well, and also that I was being a little tongue-in-cheek.</comment></comment></comment>


Datensparsamkeit (2013) - <AUTHOR> https://martinfowler.com/bliki/Datensparsamkeit.html <comment><USER2> I wish more developers/companies practised this discipline. Not just for ethical reasons, but also just because I find it interesting to see clever ways of achieving tasks with minimal data.

One example that I love is Firefox Sync. It's end-to-end-encrypted with your password as encryption key. And there's a "Forgot password?" link on the login page. If you're thinking along at home, you'll notice that clearly this cannot work. If you forget the password to data that's encrypted with your password, then that's it. You can't just reset the password on it. If you could, anyone could. All you can do, is erase the data.

Well, and that's exactly what Firefox Sync does. It just wipes your data off of Mozilla's servers. You typically have this data synchronized to your local client when you do the password reset, so it just encrypts this local data with your new password and uploads that to Mozilla's servers.

There are some corner cases where you might lose data, but I've never heard a complaint about it being less reliable than for example Chrome's implementation. And it's a hundred times more secure and private, in particular also because it means NSA/FBI/CIA can't look through your browsing history (and not having Google look through it, which is why they keep it in cleartext, is also nice).

</comment><comment><USER3> Excellent introductory article. My only gripe is that the following statement should have been qualified:

> Datensparsamkeit suggests that you shouldn't store the IP address directly, > perhaps instead you should hash it and only store the hash.

Hashing an IP address with a well-known function such as SHA1 will be almost useless for keeping the data private from malicious actors, as there are less than 4 billion hashes to precompute. A keyed hash would be better assuming that the key could be well protected.

<comment><USER4> Well, the article sounds like it was written with IPv6 in mind

<comment><USER5> Fun fact: Sometime this year, the IPv6 spec will be as old as the IPv4 spec was when the IPv6 spec was published.

</comment></comment></comment><comment><USER6> Interesting in this context is to point out how it's anchored into German law. Germany's Federal Data Protection Act states:

> Section 3a

> Data reduction and data economy

>

> Personal data are to be collected, processed and used, and processing > systems are to be designed in accordance with the aim of collecting, > processing and using as little personal data as possible. In particular, > personal data are to be aliased or rendered anonymous as far as possible and > the effort involved is reasonable in relation to the desired level of > protection.

Source: [https://www.gesetze-im- internet.de/englisch_bdsg/englisch_bd...](https://www.gesetze-im- internet.de/englisch_bdsg/englisch_bdsg.html#p0064)

</comment><comment><USER7> Privacy is only one dimension, of course. While space is cheap, time isn't, so having less data can also mean less data processing (for example, when possible, using online algorithms to compute what you really care about instead of logging all the things and then computing what you really want on demand). However...

"We might not have an immediate use [...] but we'll ask for it anyway in case it comes in useful later [...] so if we come up with some way to use that data later, we can."

That, at least in my experience, is _the_ major motivator. Unless either the ethos changes or stiff penalties instill sufficient fear in the incorrigible opportunism of the the internet tech sector, the fear of missing out will continue to be a major motivator of the lust for data.

</comment><comment><USER8> TLDR: the principle of not storing data unless absolutely necessary

As opposed to, say, logging each and everything, including credit card transaction details to Splunk/elastic search, or storing every user action "just in case".

<comment><USER9> and the german word for that is "Datenreichtum" (data-richness)

<comment><USER10> Which is also ironically used whenever the next "500gb of personal healthcare data" gets leaked.

<comment><USER11> Because some business organization recently invented it to push the opposite of Datensparsamkeit. Seems like it only took off used ironically, except maybe in clueless politician circles...

</comment></comment></comment></comment><comment><USER12> Datensparsamkeit

data-spare-some-ness

<comment><USER13> I like _data frugality_ from Martin Fowler's post best.

According to [1] it is called _data economy_. in the official translation of the German Federal data protection act (Bundesdatenschutzgesetz, BDSG).

[1]

§ 3a Datenvermeidung und Datensparsamkeit

Section 3a Data reduction and data economy

[https://dict.leo.org/forum/viewUnsolvedquery.php?idThread=56...](https://dict.leo.org/forum/viewUnsolvedquery.php?idThread=561497&idForum=1&lang=en&lp=ende)

<comment><USER14> _data frugality_ seems to express it the best. _data economy_ is a bit unfortunate since it also could mean an _economy based on trading data_ , which is almost the opposite of the goals of Datensparsamkeit.</comment></comment></comment>


An Addiction Crisis Disguised as a Housing Crisis - <AUTHOR> https://www.city-journal.org/opiods-homelessness-west-coast <comment><USER2> While this article alleges that addiction is the root cause of homelessness, it makes no effort to prove that claim. That there is correlation between the two is clear, but claiming that addiction is the root cause of homelessness of the west coast is just fear-mongering.

Determining root cause is important to finding the right solution. Further cracking down on homeless people will just transfer them from the streets to jails, where they will cost the taxpayers exorbitant amounts of money (and if they're in a private prison, create profit for private interests), while failing to get people back on their feet when they are eventually let go.

> no city on the West Coast has a solution for homeless opioid addicts

While Utah isn't technically the West coast, how does the author's claim hold up in the face of the resounding success of their efforts to reduce chronic homelessness (down 91% in a decade while saving the government 50%)? Does this proven solution fit with his root cause model?

See: [https://www.npr.org/2015/12/10/459100751/utah-reduced- chroni...](https://www.npr.org/2015/12/10/459100751/utah-reduced-chronic- homelessness-by-91-percent-heres-how)

<comment><USER3> Not saying I disagree with you, but west coast cities do have temperate climates that I would think attract more of the chronically homeless. I'd much rather live on the street in LA in the winter than SLC.

<comment><USER4> They also have booming economies. People move to successful big cities for work, where they have no existing safety net. Then they can't find a job fast enough, or get sick, or get divorced and start drinking, and become homeless. These are the vast majority of "not from here" homeless people in Seattle. The chronically homeless tend to be old people in pretty bad shape who don't move cities for the weather. So is the answer that people born in economically ruined rural areas should be locked out of big cities? Only allowed to stay there so long as they have enough money? People arguing you shouldn't be able to get benefits somewhere you're not "from" are arguing for a system that entrenches the political and economic divide between rural and urban Americans.

</comment></comment></comment><comment><USER5> I think the question to ask is what created the opioid problem in the first place - I tend to think it's lack of regulation in the pharma space.

I've criticised the author (Chris Rufo, associated with the conservative and intelligent design group Discovery Institute) in his earlier pieces (see [https://www.reddit.com/r/SeattleWA/comments/acwqng/podcast_s...](https://www.reddit.com/r/SeattleWA/comments/acwqng/podcast_seattles_homeless_challenge/edngsrn/) ) where he used seemingly incomplete estimates on the funding used in homeless initiatives and suggesting unproven solutions (large tents, sanitariums).

I'm not denying the homeless and drug problems in Seattle. I live in the same neighborhoods where I've seen people shoot up in starbucks bathrooms and on the street, RV camps of bicycle chop shops and filth. The King County complaint Rufo links to ( [https://www.krcomplexlit.com/wp- content/uploads/2018/01/King...](https://www.krcomplexlit.com/wp- content/uploads/2018/01/King-County-Complaint-1-010518-1.pdf) ) arguably means the local government is trying to take that first step in recognizing "addiction is the common denominator for most of the homeless", right?

<comment><USER6> And if you tightly regulate the "pharma space" and those drugs are harder to get, the same addicts will just find a substitute drug. The "War on Drugs" has been an abysmal failure.

If you lock up the users, you're just spending more money housing non violent offenders. If you lock up the sellers, someone else will take their place. Homeless drug addicts don't fear jail, how could it be any worse than life on the street addicted to drugs?

I have no idea what the answer is, but I suspect it is a better social safety net where people think they have a fair shot in society where they don't view drugs as an escape or have the mindset of having nothing to lose. I honestly haven't thought about solutions that deeply.

<comment><USER7> We are absolutely feeling the pain of a lack of social safety nets for all kinds of problems.

Unpopular opinion: I'm ok putting non-violent people in jail when they break the law. We need reform in the jails and prisons, not more lenient sentencing.

And because I'm sure it needs to be clarified, not every law breaker needs to go to jail immediately.

<comment><USER8> Why is jail necessarily the best answer? Fines and restitution, community service, court mandated counseling, "night jail" (must report to jail after work) and other tools would work better for preventing and correcting the harms of many (if not most?) types of nonviolent crime. Traditional jailing creates all kinds of assorted harms that actively prevent rehabilitation and which probably don't provide much deterrence.

Your suggestion of reform is indeed necessary, but some of the things I suggested above would fall outside of what most people would consider "jail." We are stuck on this singular "solution", and why? It doesn't seem to be very effective.

<comment><USER7> I agree with you so I should clarify what I mean by "jail". The reform aspect is absolutely crucial and I am not advocating for simply locking people up as we do today. When I say "jail" I should probably say something like "adequate social safety nets supported by state mandated rehabilitation" but the marketing needs work.

</comment></comment></comment></comment></comment><comment><USER9> I don't think it's "disguised" as a housing crisis: dishonest advocates took advantage of superficial similarities between the housing cost crisis to claim that homelessness was driven by it. I don't think most people serious about understanding the homelessness issue instead of exploiting it for their pet cause think that the housing crisis is a primary driving factor (though I'd be surprised if it wasn't contributing)

</comment><comment><USER10> From my anecdotal experience living in an area filled with fentanyl shooting drug addicts I've noticed they generally are substance abusers with other drugs, such as meth or heavy drinking, ilegally procured prescription pills, cocaine etc., they have groups of fellow substance abusers they meet with daily to combine resources and when the money runs out switch to other drugs that are cheaper to buy like bags of heroin to snort which they quickly get hooked on and then I would see them on the street shooting up.

Another question is why do some countries not even have a drug taking culture in the first place. Lot's of places I've been to where the population isn't interested in any drug use despite it being decriminalized or readily available.

<comment><USER11> Coming from Germany I found it interesting how much the US culture depends on ingesting substances to make you feel better. Be it painkillers or "superfood" or other things. That makes the US really vulnerable to all kinds of addictions. As a kid I remember only a few occasions where I took any kind of medicine but today's kids know a ton about all kinds of drugs and it seems pretty standard to take some.

<comment><USER12> Hmm, makes me wonder if it is in any way related to the somewhat "lost" cooking culture in the states. My roommate in the States didn't even know how to cook tea or how to boil an egg. And I am really not kidding. Might be a crazy theory but maybe...

<comment><USER13> Who can't make tea? Or boil an egg. That's a terrible kind of exceptionalism. I've never seen that in the us.

</comment></comment></comment></comment><comment><USER14> I have been saying this for a while and the activists in San Francisco get so offended. 90% of the people on the street in the Bay Area are on meth or heroin. Their addiction is the bigger issue than housing affordability. The reason so many homeless have come to California lately is that California cities give cash handouts almost immediately. We are absolutely being taken advantage of and really we are making the problem worse.

</comment><comment><USER15> The article points out a correlation between "being addicted" and "being homeless" but does not provide _any_ evidence that there also is a causation.

With the same evidence one could write an article that says "increasing prices drive out the most vulnerable first".

</comment><comment><USER16> Unclear to me if they're homeless because of addiction, or became addicted after becoming homeless. This distinction would seem crucial to me.

<comment><AUTHOR> Almost everyone has some kind of support network, whether it's extended family or friends, that would offer a spare bed or a couch. Sure, they won't let you stay forever, but it will keep you off the street until you can get yourself together.

People who are living on the street, for the most part, have burned through all the support their family and friends are willing to give. Their addiction or mental illness (or combination) have resulted in their support network turning their back on them. Sure, there are exceptions, but this is true of a significant majority of people living on the street (this is easy to verify if you search for studies of people living on the street and addiction/mental illness).

It's not a coincidence that a large majority of people living on the street are addicted to drugs or suffering from mental illness (and in fact that the majority are suffering from both or self medicating with street drugs).

If you are homeless, but you have no mental illness and no addiction problem there are so many people and services standing by to help. The homelessness crisis is almost entirely a mental health crisis. People aren't living on the street because they can't find a job or affordable housing. Look at undocumented immigrants, they somehow find jobs and housing despite prejudice, language issues and low wages, and still find ways to send money home despite being completely ineligible for public assistance. If millions of people who are still learning the language can find housing and work and save money, then the otherwise physically healthy people living on the street can't be explained by 'income inequality' or 'housing prices', and in fact studies show that addiction and major mental health issues are nearly universal for people living on the street.

<comment><USER17> Lots of people don't have support networks of people who will lend them housing. Be very careful with the presumption that anyone on the street must have burned through a support network.

<comment><USER18> Exactly. And for those fortunate enough to have one, it is possible that the entire support network is also homeless, or in prison, or in another country, currently in rehab or a nursing home, or some mix of these.

</comment></comment></comment></comment><comment><USER19> This article aside, my general understanding has been homelessness is very often a symptom of mental health issue. Yes, there are people (read: families) who would obviously prefer not to be homeless. But many others are there because individual rights / protections are such that we can not force them to do otherwise.

</comment><comment><USER20> > If this figure holds constant throughout the West Coast, then at least > 11,000 homeless opioid addicts live in Washington, 7,000 live in Oregon, and > 65,000 live in California (concentrated mostly in San Francisco and Los > Angeles)

This is a pretty silly assumption to make when the data for San Francisco and Los Angeles show different, where less than a third of the homeless is addicted.

And given how the housing crisis is so much worse in San Francisco and Los Angeles than Seattle, it's choosing exactly the wrong data points to extrapolate from.

Further, it ignores how once someone is homeless it is much easier to fall into addiction, as other homeless people are often your support network and there's a higher incidence of addiction among the homeless, spreading it.

All too often "not my fault" is a reason to avoid addressing the parts that _are_ our fault.

</comment><comment><USER21> I appreciate the author identifying what is really going on with homeless on the West Coast. Any visit to Portland, Seattle, SF, LA corroborates this. We need to crack down on those that are perpetuating and benefiting from this crisis.. the dealers, cartels, and yes, the pharmaceutical companies.

<comment><USER10> These street drug networks are pretty sophisticated and hard to crack down on.

For example a typical street operation like openly selling baggies outside of a legalized injection clinic or to a homeless camp is often done by the addicts themselves, who will always only be holding just enough so they don't see much jail time if they are arrested. Security of this street dealing is overseen by very obvious looking prison gang members who hold no evidence and make sure to never take the money from the street addict peddling their baggies of heroin or crack instead there are drops coordinated with the huge prison goon nearby to prevent any robberies. Resupply is done through complicated handoffs and drops with a network of a few dozen addicts who've been recruited to sell for the gang. The gang themselves are buying off other mid level gangs who in turn are buying from higher level/cartels.

You can try to put a cop on every corner and disrupt the handoffs, or harass these enforcers off the street, but soon your police force is going to run out of overtime money, not to mention the other factor which is gang violence "management". The police know if they decimate the current street gang controlling the street trade that a dozen other gangs will immediately start fighting to be the successor meaning there will be high profile shootings going on in the media, which in turn puts pressure on city hall, which in turn puts pressure on the police chief to do something to stop the violence which eventually means relaxing enforcement on whatever gang currently controls the homeless drug trade so long as they stay in their lane and don't escalate their street violence into the media or against people not involved in the trade. It would be nice to arrest and stop the midlevel and high level suppliers but nobody has figured out how to effectively do that with limited enforcement resources either.

<comment><USER22> If the low level gangs knew that cops would remain present on those corners, would the shooting wars erupt when there was a power vacuum? Looking at these gangs as rational economic players, it makes sense to fight over a limited, highly valuable resource(the street corner). It doesn't make sense to fight over it if it's value is extremely reduced(because cops will be stationed there all the time).

<comment><USER10> The gangs attack each other's higher level members outside the area, meaning broad daylight shootings at some high end restaurant or Starbucks parking lot. There is already a heavy police presence outside the numerous injection sites here all day long it doesn't seem to matter at all in restricting the organized sale of fentanyl. I think you would need to quadruple the budget of the police department to try any real sustained crackdown, and you would have to build new prisons as the current ones are already to capacity.

Nobody will vote for the city mayor who wants to significantly jack up property taxes to pay for a new drug crackdown when every voter knows it's largely a tried and failed, unsustainable policy. It would be vastly cheaper to just pour money into gang recruitment discouragement, and hand out free heroin undercutting the gang's product which is what they've started to do here.

</comment></comment></comment></comment><comment><USER4> This is a dishonest narrative propped up with misunderstood statistics. He claims that saying "30% of homeless people" are addicts contradicts the claim that "80% of unsheltered" \- but he's been arguing about how to get rid of homeless people for long enough to know that unsheltered is a subset of the homeless, and generally the group with the most issues (which is why they are sleeping outside and not even in a car).

Oddly enough, he fails to include any of the research we do have about the connection between cost of housing and rate of homelessness. When rents go up, homelessness goes up. [http://fortune.com/2018/12/14/rent-homelessness- housing-inco...](http://fortune.com/2018/12/14/rent-homelessness-housing- income-zillow-research/) When affordable housing disappears, evictions go up and homelessness goes up. [http://komonews.com/news/local/washington- homelessness-resul...](http://komonews.com/news/local/washington-homelessness- result-of-evictions-rent-spikes-uw-study-finds)

One recent positive change was a state law increasing the time a tenant has to pay rent late from 3 days to 14 days. There are many programs that will help pay a one-time late rent, but none of them are instant. Lots of tenants will accept a landlord saying that if you're not out in three days you'll be evicted and spend that time scrambling to leave instead of scrambling to pay, so that they have a chance at renting again in the future - and there's a ton of evidence that preventing the initial step into homelessness is by far the cheapest and most successful way to prevent longterm issues. [https://seattle.curbed.com/2019/4/26/18518477/eviction- refor...](https://seattle.curbed.com/2019/4/26/18518477/eviction-reform- washington-state-renter-rights)

Of course, Rufo and people who quote him admiringly tend not to support interventions like this at the point of entering homelessness, since they are committed to the idea that not having a place to live is not a cause of homelessness (which, to be clear, INCLUDES those who are staying with friends or using their social safety net).

<comment><USER13> Rufo isn't interested in an open consideration of the facts. I think he just wants to curry conservative support.

</comment></comment><comment><USER13> He provides no evidence to back up his claim that it's a drug crisis at root. I walk through Seattle every day and there's definitely an aspect of drug use, but it's many many other things, including people too poor to afford a house here, people with mental issues, along with a lot of drug use. Then I noticed the name of this author, a kind of frustrated conservative who ran for office in Seattle and claimed basically that people were really mean to him - so take his claims with a giant tub of salt.

Regardless of the situation, the city is not really coping very well with this challenge. We should just do what Utah did, focus on getting housing for everyone, then you can send treatment to them. I can't quite understand why we can't arrest and hold people to longer sentences who commit crimes dozens of times in Seattle. This is separate from just arresting people for drug use, which never solves anything. Get housing, get enough services, treatment for people and also police and other services. That is how we deal with this.

[update, fixed a few typos]

</comment><comment><USER23> I think this is a belonging crisis disguised as an addiction crisis. People mostly become addicted because they don't have strong social ties to family, friends, church, whatever. If it were just a physical reaction to drugs every Grandma with a hip replacement would be a junky on the streets. But good luck putting families back together again.

</comment><comment><USER24> Maybe I missed it in the article. What percentage of homeless in these cities are or were recent drug users?

<comment><USER25> >In Seattle, prosecutors and law enforcement recently estimated that the majority of the region's homeless population is hooked on opioids, including heroin and fentanyl.... For the unsheltered population inhabiting tents, cars, and RVs, the opioid-addiction percentages are even higher—the City of Seattle's homeless-outreach team estimates that 80 percent of the unsheltered population has a substance-abuse disorder. Officers must clean up used needles in almost all the homeless encampments.

No word on methodologies though.

<comment><USER26> Also from the article: the mayor estimates the rate at 1 in 3. Still no word on methodology.

<comment><USER27> Might be a difference in wording. As I recall, 2/3 of Seattle homeless are not sleeping on the street (instead they are in cars or shelters), which may make them "sheltered". The other 1/3 are in the street and if most of them are addicts, then yes, about 1/3 of total homeless are addicted as well

</comment></comment></comment></comment><comment><USER28> Dude, people become addicts cause life sucks when you are in a constant struggle.

<comment><USER29> Addiction is an optional choice, homelessness may well be an involuntary state of being.

</comment></comment><comment><USER30> If you become homeless, you are super likely to do drugs. Just visit a homeless camp and you'll find that out.

This article gets causality backwards. It's kind of amusing.

</comment><comment><USER31> For anyone interested in how drugs became such a crisis in America, I highly recommend History Channel's "America's War on Drugs" ([https://www.imdb.com/title/tt7026882/](https://www.imdb.com/title/tt7026882/)) - it's free with a trial on Prime Video. It is a fascinating story involving the CIA, fear of communism and, of course, the bottomless guile of corporate greed.

</comment><comment><USER32> From this article: [https://www.thesunmagazine.org/issues/519/filling-the- void](https://www.thesunmagazine.org/issues/519/filling-the-void)

"The true source of drug addiction: a society organized around the quest for wealth and geopolitical power, which creates enormous dislocation. This pursuit of wealth and power inevitably produces widespread addiction, which we insist on calling a "drug problem.""

We live in a society where record numbers of people are lonely, depressed, and disconnected. We worship consumerism and the economy, and idolize weirdo greedlords like Jeff Bezos and Donald Trump.

Increased opioid regulation has had the effect of forcing a lot of people who are in pain to suffer even more. The addictions that plague our society won't go away until we fix the underlying problems that make people so vulnerable in the first place.

<comment><USER33> > weirdo greedlords like Jeff Bezos and Donald Trump

This breaks the site guidelines against flamebait and name-calling. Would you mind reviewing them? Taking threads further into flamewar is what's most important to avoid here.

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

We detached this comment from [https://news.ycombinator.com/item?id=20197294](https://news.ycombinator.com/item?id=20197294).

</comment></comment><comment><USER34> A friend who lives in the SF Mission likes the idea of shipping the druggies off to a drug camp in the middle of nowhere. They get all the drugs they want, until they die.

<comment><USER11> Same for unemployed people and depressed people who have fallen on hard times?

<comment><USER35> Well, given how people who come up with ideas like that think, yeah, they probably would like all the poors to be removed and shot or something. It's just how those people think.

</comment></comment></comment><comment><USER36> The article fails to acknowledge that drug abuse can be caused by homelessness (which also makes sense when you think about it). In fact all it says is that homeless people use drugs, and then goes on to say that therefore drugs cause homelessness.

It also fails to acknowledge (in CA at least) that the 80s republican plan to save money by closing mental health facilities put a large number of people on the streets without any means to afford necessary drugs, and so no ability to work (assuming they had somewhere to live). This dramatically increased the cost to the state as now people with mental health issues get put in prisons. Keeping someone in a prison costs much more than in a proper treatment facility, and also fails to provide any rehabilitate support, _and_ now they have a criminal record so even if they could get treatment in prison they can't get a job when they get out, so end up homeless, and then back in prison.

It also ignores fairly basic concepts: there are fewer rooms available to rent in SF than there are homeless people, so even if the city just paid the rent for them (which is cheaper in the long term), there isn't anywhere for them to live.

Cool beans.</comment>


Peter Thiel: The online privacy debate won't end with Gawker - <AUTHOR> http://www.nytimes.com/2016/08/16/opinion/peter-thiel-the-online-privacy-debate-wont-end-with-gawker.html <comment><USER2> Totally debunked here:

[https://www.techdirt.com/articles/20160815/18214635251/billi...](https://www.techdirt.com/articles/20160815/18214635251/billionaire- backer-palantir-facebook-insists-hes-bankrupting-journalists-to-protect-your- privacy.shtml)</comment>


Do Cryptocurrencies Such as Bitcoin Have a Future? - <AUTHOR> http://www.wsj.com/articles/do-cryptocurrencies-such-as-bitcoin-have-a-future-1425269375?mod=WSJ_hpp_sections_tech <comment><USER2> As a stable store of value... Not for a while. (Then again, gold has been around for awhile, and is IT a stable store of value?)

As a value exchange mechanism... Certainly. Already useful (and troublesome, to certain establishments) for that.

As a secondary ("world"/"international") or even primary currency... Only if your already-legitimized currency is performing worse (hmmm, Argentina, Greece, Iceland, Russia...).

As a third-world currency exchanged via cell phones... Well, now we're talking. Although anything that stores value can be used in the same way, which is exactly how M-Pesa started out as phone credits (the "base" or "backing" value) and is now used for much more than that.

I will say that anyone who travels (still a very underrated undertaking that abysmally few Americans engage in) has been frustrated by currency exchange. If I could default to something like Bitcoin when I travel, it would ease that pain quite a bit.

Governments are concerned about "capital flight". Thing is, it's difficult to destroy (as well as to create) "value," it usually just gets transformed. It therefore stands to reason that if you don't want your country's value to flee, stop debasing your own currency (so that people stop exchanging it for other currencies), and make things of value (so that more representations of value, i.e. cash, flow into your country).

<comment><USER3> Bitcoin gives you _two_ currency exchange transactions to do where previously there was only one. I can't really see it taking off except for transactions that are banned from one of the other payment systems, and given that transactions are entirely public with persistent pseudonyms, that's not great either.

Bitcoin's transaction cost and risk is necessarily greater than any centralised solution, so as soon as it establishes a useful market it can be undercut. (Don't quote the minimum transaction fee in response to this, quote the miner electricity cost per transaction, the exchange bid/offer spread, and the escrow fees if relevant).

It's entirely trivial for value to be destroyed: this is what happened in the leveraged property downturn as recently as 2008.

"Just fix your current account deficit" is about as useful a piece of advice for countries as "just create jobs", ie not very.

<comment><USER4> > Bitcoin gives you two currency exchange transactions to do where previously > there was only one

What? Only if you don't treat bitcoin as a currency. If bitcoin is used as its own currency, and both you and the seller hold bitcoin, there is no exchange, or at most one: When you buy in from your existing currency.

<comment><USER5> This is why to be a value exchange mechanism, you also need to be a store-of- value mechanism.

If the buyer and seller aren't holding bitcoin, a simple fiat transaction turns into three transactions.

</comment></comment></comment></comment><comment><USER6> On a day-to-day basis, bitcoin takes ages to confirm that payment has been received, supports somewhere around 3 [three] transactions per second, and shifts risk from sellers to buyers (e.g. compare refund possibilities with credit cards).

There are various hacks that are being proposed to increase the number of transactions per second, and reduce confirmation time. Ultimately, they're just that, though: hacks on a proof-of-concept.

What I'm _really_ interested in is whether it's possible to have a cryptocurrency that _doesn 't_ rely on e.g. blockchain technology.

How you'd fix the issue of double-spending ("I can just copy-and-paste my money - yippee!") without a blockchain or equivalent is beyond me.

I'm just really intrigued by the idea of being able to cryptographically sign over a digital $5-equivalent -note to someone else, instantaneously, and without relying on a third party saying "Hmm, yep, that note looks legit to me".

Sadly, a lot of bitcoin's popularity seems to come from people who sincerely hope and believe that it's their lottery ticket to millions in the future. Whilst these people are vocal, it's probably a good idea to be aware of and filter out their voices.

<comment><USER7> > What I'm really interested in is whether it's possible to have a > cryptocurrency that doesn't rely on e.g. blockchain technology.

Yes, it is possible. MaidSafe is building the solution as we speak, and does not get anywhere near the attention it deserves. Because there is such a general lack of understanding of its underpinnings, it is usually lumped together with other blockchain technologies or altcoins. There is no blockchain, there are no transaction fees, and transactions are irreversible almost immediately (no confirmation time). There is no wasteful mining.

I wrote a pretty comprehensive article[0] on how it works from a technological standpoint if anyone is interested. Perhaps someone will find it useful.

[0] [http://blanshey.com/introduction-to-maidsafe-what-it-is- how-...](http://blanshey.com/introduction-to-maidsafe-what-it-is-how-it-works- and-how-it-compares-to-bitcoin/)

<comment><USER6> _MaidSafe is building the solution as we speak_

Doing an admittedly very brief search, it seems there's a lot of scepticism about MaidSafe, ranging from it's "objectively a scam," through to a highly questionable IPO, and doubt over the core technology itself:

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

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

[http://www.reddit.com/r/crypto/comments/24zext/what_does_rcr...](http://www.reddit.com/r/crypto/comments/24zext/what_does_rcrypto_think_of_maidsafes_self/)

Clarifying on my original point about not relying on blockchain technology, I think imagining a purely offline system would get closer to the question in my head.

How much can be done without relying on a network / database / blockchain etc?

<comment><USER7> There is a lot of scepticism indeed, mainly because what they're doing is so new. (The IPO was not questionable at all IMO, that's just FUD.)

In any case, the objections and scepticism is healthy and would only serve to improve the project.

I'm not really sure what you're implying though--how can you have a cryptocurrency without communication (e.g. a network)?

<comment><USER6> _mainly because what they 're doing is so new_

I (possibly obviously) haven't done enough research in the area, but it seems like there are potentially showstopper questions about how to stop people gaming the system.

The reddit link also questioned how much of MaidSafe is, in effect, security through obscurity.

One thing that can be said - it's definitely interesting!

 _How can you have a cryptocurrency without communication?_

Exactly - that's kinda what I'm asking! :)

Another rephrasing: is it possible to have some bitcoin-equivalent token sat on your computer which you can exchange for goods and services _without consulting anyone else_?

As far as I can tell, it's the double-spending problem that's the killer.

</comment></comment></comment></comment></comment><comment><USER8> Even as a Bitcoin skeptic I'm absolutely convinced that in 20-30 years time something that can directly trace its intellectual roots to the Satoshi white paper will play a significant role in several aspects of financial transactions. The underlying mathematics is just too useful to be ignored.

Actual Bitcoin as we know it today will probably be an interesting historical anecdote.

</comment><comment><USER9> I bought several bitcoins in early 2010, and when the price peaked to $1000, I sold what I had left. To me I was interested in the technology piece, but thought the economics of it was utterly crazy. Having a fixed supply of some arbitrary number with a fixed release seems so "old worldly". It ignores the fact that we have this huge computer network that has built into it access to near perfect information about the economy.

I thought something better would come along, which is why I sold it. However the one thing that really rang with me was this. When I transferred the bitcoins to my account (bitstamp) I didn't even remember the fee. I'm not certain there even was a fee. However when I transferred the dollars, there definitely was a fee, Which seemed like a lot of money.

The cost of using bitcoin is a really big game changer. If it was stable, I think adoption would be bigger.

<comment><USER10> I personally have seen interest wane because of several high-profile scams and hacks. I originally knew quite a few people really interested, and I'm pretty much the only one left.

</comment></comment><comment><USER11> I used to joke that I had more bitcoins than I could spend in my lifetime. Not because I had a lot, but because there was fuck all to spend them on.

I just paid for my lunch in Bitcoin. Not as some evangelical, cryptanarchistic statement, but because I have bitcoins and I needed lunch. The mechanism for paying is on a par with credit cards, if not slightly above. I've watched the monetary value of my bitcoins plunge in the last year, but I've seen their practical value _to me_ increase massively. A year ago I could buy precisely zero lunches for 1 BTC, now I'd get at least 50.

<comment><USER12> Where can we buy tangible stuff with bitcoins? Is it only in the USA?

<comment><USER11> I'm in Budapest and there are now two bars and a restaurant that take Bitcoin.

</comment></comment></comment><comment><USER13> When Bitcoin was high, it was the future. When Bitcoin is low, does it have a future?

I wish we would make decisions about a technology's or company's or economy's viability based on something less fickle than price.

<comment><USER14> Perhaps the price reflects a collective decision about the technology's viability.

<comment><USER13> Doubtful, the "wisdom of crowds" is useless for something like Bitcoin. It's too new, too revolutionary, too complex for its applications and failures to be apparent to even a select few. Let alone a statistically relevant population.

</comment></comment></comment><comment><USER15> Bitcoin is here to stay for at least this one reason: gambling.

I have bought and sold more bitcoin since I started sportsbooking and playing poker with it than I ever had before.

With services like circle and bitcoin-friendly gambling sites, I am able to instantly deposit and withdraw to my gaming site, and then within 2-3 days have my winnings back into my bank account in my native currency.

It is really a better system than I have experienced gambling online with fiat previously.

</comment><comment><USER16> I'm always amused that every bitcoin story seems to include a stock photo of a shiny physical coin with a big "B" on it.

<comment><USER17> People are always looking for a way to visualize it. Since it is a currency, and people associate coins with currency, what better icon to use?

<comment><USER18> A spreadsheet would be a closer representation of Bitcoin. You can make it a paper one if you want a proper photo :)

<comment><USER17> But does a spreadsheet icon look like a currency to you?

</comment></comment></comment></comment><comment><USER19> Perhaps given the source (Wall Street Journal), it is no surprise that they asked a couple of economics professors for their opinions on Bitcoin's future... but, they could have thought a little more creatively about the possibilities.

Dr. Harvey (on the "Yes" side), made the typical gesture, at least part right, that the technology is the interesting part. In fact, the subheading says it all: "Valuing Bitcoin as a Technology"\---but an edit would improve the matter: "Valuing Technology"; or simply "Technology".

Other than those who have skin in the Bitcoin game, there's no reason for your average person to care about Bitcoin _in particular_ , but the idea and the technological pursuits that it embodies _are_ worth paying attention to. In fact, I think this is the primary reason HN likes Bitcoin---nobody cares about its economic logic or valuation or whether a new block every ten minutes enables liquidity or not. The IDEA behind Bitcoin, and subsequent cryptocurrencies, is what matters. The TECHNOLOGY that permits novel arrangements of power, social interaction, and human-computer interfacing is exciting.

Personally, I'm ambivalent on whether the technology is, on its own terms, good or bad. But, what I don't doubt, is whether the idea is going to stay--- we won't call it "Bitcoin" in 10 years, but we may call it "Ethereum" or "Dogecoin" or something not yet invented. In fact, we'll likely just call it by some acronym only the geeks care about (but everyone uses): like HTTP or USB. The technology will recede from its specular, media-driven attention and just become how things are done. Banks will transfer funds on a blockchain (perhaps the government forces them for transparency and verifiability), ATMs will become decentralized, you'll establish a smart contract with your Uber driver... and so on.[1]

[1] For anyone interested, I'll be giving a talk on cryptocurrencies at NYU this Wednesday (March 4, 5PM), along with Bill Maurer and Finn Brunton. Free registration here: [http://events.nyu.edu/#event_id/30104/view/event](http://events.nyu.edu/#event_id/30104/view/event)

<comment><USER20> Ok, so everybody can make a currency, keep some for them (directly or indirectly), convince people to use it, making it scarce and making the value of it grow. Great idea! How couldn't we think about it before! Let's start with a small group (technical people, in case of cryptocurrencies) that are idealists and full of goodwill. Then we'll pack the idea as the world's salvation from stupid governments and fees. Don't be evil!

Meanwhile my (fat) share of myCurrency is getting value exponentially.

<comment><USER19> Far from being opposed to the article's articulation of cryptocurrencies, I see your (sarcastic) response as buying into the very logic of it. Thinking that the problem with Bitcoin and its ilk is its lack of economic stability, liquidity, or whatever economic factor floats your boat is tantamount to endorsing a future version that fixes the issue. You see, you've been trapped into the short-sighted vision that the RIGHT cryptocurrency is just a patch or version away.

The issues with cryptocurrencies are much deeper than implementation errors. I may actually agree with your economic assessment of Bitcoin, but I think that's quite beside the point, and we should learn to speak about the deeper issues and debate these.

</comment></comment></comment><comment><USER20> I'm not an expert in this subject but IMHO:

 _1-Bitcoin is just an huge ponzi scheme._

The early birds to got into the system are the ones that will have HUGE profits. So I want to create my own currency and be able to get an advantage also.

 _2-Bitcoin is unfair._

Besides everything governments taking care of currency seems the most fair and democratic way of dealing with it. With Bitcoin technical people have advantage over non-technical people. It remembers me Nietzsche when he writes something like:

"There are only 3 types of people: the rich that wants to keep being rich; the poor that wants to be rich; the intelectual, that using his ideals (advantages) wants to be rich."

[1] Due to the strong bias, I created another account to express this unpopular opinion. Shouldn't be like this.

[edited]

<comment><USER21> > The early birds to got into the system are the ones that will have HUGE > profits. So I want to create my own currency and be able to get an advantage > also.

That is in most part due to a bubble caused by people thinking of Bitcoin as an investment vehicle.

> Technical people have advantage over non-technical people. It remembers me > Nietzsche when he tells something like:

Explain?

<comment><USER22> > most part due to a bubble

Not really, Bitcoin's where front loaded. It would have been easy to have the same fixed number of bitcoins, but set things so only 70% of possible bitcoins where released in the first 100 years.

</comment></comment></comment><comment><USER23> Of course it has a future... just not a very interesting one. The messiah period is over, and the technical and practical merits (what few there are) have now been digested.

</comment><comment><USER24> Are headlines the new way of discouraging investment in cryptocurrencies given Betteridge's law?

</comment><comment><USER25> The skeptic says that currency is a security because its issuer will pay you face value for it. What will the Federal Reserve pay me for my dollar? This seems like an outmoded view of what a currency is.

<comment><USER20> Ok, so everybody can make a currency, keep some for them (directly or indirectly), convince people to use it, making it scarce and making the value of it grow. Great idea! How couldn't we think about it before! Let's start with a small group (technical people, in case of cryptocurrencies) that are idealists and full of goodwill. Then we'll pack the idea as the world's salvation from stupid governments and fees. Don't be evil!

Meanwhile my (fat) share of myCurrency is getting value exponentially.

</comment></comment><comment><USER26> A Bitcoin bot has already been created, it predicts 90% accuracy on future tradings.

What I'm concerned with is, if this made public, would it devalue the worth of Bitcoin?

And, how will Bitcoin deal with quantum computing?

</comment><comment><USER27> "they have no basic underlying value" is not true. Bitcoin themselves are value - intrinsic value. The time it took to mine the Bitcoin is what gives it the value. I think this is a much better measure than we have of actual currency where no one, even the reserve really understands where the value of a dollar is.

<comment><USER18> LTV¹ applied to Bitcoin? I had never seen that :D

I disagree with your reasoning for the same reason I disagree with LTV. That time is just sunk cost - there's no value to it, and certainly no market value.

¹ [http://en.wikipedia.org/wiki/Labor_theory_of_value](http://en.wikipedia.org/wiki/Labor_theory_of_value)

<comment><USER28> I was under the impression LTV applies to human labor, so applied to bitcoin it would imply that they should have close to no value, whereas fiat currencies derive value from the efforts of the tax payers.

<comment><USER2> LTV as applied to Bitcoin uses the many many kilowatts of electricity used to verify transactions as the "labor".</comment></comment></comment></comment>


Where all the Portland hipsters are - <AUTHOR> http://www.yelp.com/wordmap/portland/hipster

<comment><USER2> And this demonstrates that SOMA in San Francisco really is where they are in _that_ city. Too bad they only show this for a few geographies.</comment>