Equality Is Hard - <AUTHOR> https://www.craigstuntz.com/posts/2020-03-09-equality-is-hard.html <comment><USER2> As much as null is considered the "billion dollar mistake", personally, I think that Java giving Object a virtual equals() and hashCode() was an even bigger mistake. NPEs blow up loudly in your face and are fairly easy to lint for. By comparison, bad equals() and hashCode() implementations can cause difficult-to-track-down errors. Unfortunately, this design was inherited by C# and other OO languages. C# does have the IEqualityComparer interface, which helps in some cases, but many containers and other framework methods rely on an overridden instance equality method.

<comment><USER3> I agree. It might make sense to use something like memcmp() on structs to assert that they are exactly the same, or to have a dedicated comparison function that makes sure they are functionally equivalent for some defined need.

However Objects should have only the second and it might also need to be (I think replacing a function pointer might be) an over-loaded function if something has extended a base object type. I'm not even actually positive that could work if there are two extensions to a base type.

<comment><USER4> > It might make sense to use something like memcmp() on structs to assert that > they are exactly the same

No, actually, it doesn't make sense in general. Due to padding, structs may have arbitrary meaningless bytes between the actual data fields, and memcmp will break on those. It works because structs are often filled with zeroes on initialization, but it isn't required or enforced in any way. I was burnt by this problem more than once, not really fun to debug

<comment><USER5> Fun, create a struct on the stack. Set the elements individually. Padding is now filled with garbage. Any elements you forget to set will also be garbage. When you copy the struct the garbage goes with it.

I've been burnt too.

</comment></comment></comment></comment><comment><USER6> > First, programming languages should make it simple to create types where > equality comparison is disabled because it makes no sense

This is kind of a silly "solution" as some languages don't even have types, others have "soft" types, and others support arbitrary typecasting. (Not even going to get into duck typing, union types, etc. Type theory is _hard_.)

> Programming languages must make the difference between structural equality > and reference equality crystal clear

This is probably intractable. Author doesn't even touch cases where you have objects that contain other objects. Are these references or values? How does the equality operator work there? How deep does the rabbit hole go?

If you _only_ deal with values, then you're probably crippling performance. There are reasons for these design concessions, it's unfair to assume that people that designed these languages are complete doofuses.

> One might look at the length of this post and say, "Wow, equality is really > complicated! I'm going to give up coding and become a soybean farmer."

Farming is magnitudes harder than what the average programmer does day-to-day :)

<comment><USER7> > This is kind of a silly "solution" as some languages don't even have types, > others have "soft" types, and others support arbitrary typecasting.

Well, more fool those languages. It's a good solution, and if your language can't offer an equivalent, take it up with your language's maintainers.

> This is probably intractable. Author doesn't even touch cases where you have > objects that contain other objects. Are these references or values?

Let's not declare it intractable before we've actually tried. The language would need to draw a clear distinction between (possibly compound) values and objects-with-identity - like the distinction between struct and class in C#, or between case class and class in Scala - and ripple that distinction all the way up; values should only be allowed to contain other values, should be immutable, and should be able to be treated in a generic way (i.e. a record system). Objects-with-identity should be rarer and heavily encapsulated, almost like Erlang actors; the simplest example is a reference cell (i.e. a mutable thing holding a value of a particular type that can be get and set). Doesn't sound like such a bad language design.

<comment><USER6> I'd have to think about this more, but I think your purported solution (mostly immutable record-type objects) would tax performance and memory constraints.

<comment><USER7> Haskell already works that way, and is a high-performance language. (The same is true of strict ML-family languages, so laziness is not required to make this practical). Those languages generally just don't bother with reference comparisons at all, but one could imagine a more hybrid language that included support for traditional OO - in fact idiomatic Scala works like this (and again is a high-performance language, though to some extent that relies on what's probably the best garbage collector in the world). I don't know what kind of support Erlang has for making comparisons between actor identities, but that might be an even better example.

</comment></comment></comment></comment><comment><USER8> I really like this about Rust, implementing equality is just another trait. The same is true of comparison operators. If you don't want a type to be able to be compared by == you can make it always evaluate to false or even panic and give a message that the type cannot be used in that way. That might aggravate coders who do not test comprehensively but it is an option.

Edit: This is a response to the concerns of the article. For general info on this it's a great introduction to Rust's awesome documentation.

[https://doc.rust-lang.org/std/cmp/trait.Eq.html](https://doc.rust- lang.org/std/cmp/trait.Eq.html)

<comment><USER9> You mean there is no compile time way to accomplish that? Doesn't sound very Rust-like.

<comment><USER10> It is determined at compile time; I'm not sure why GP is suggesting returning false if you don't want types to be compared. By default structs are not comparable. If you opt-in to the standard PartialEq implementation using the `derive` annotation[1], it will only allow a struct to be compared for equality with other structs of the same type. You can choose to add implementations to compare against other types[2].

[1] [https://doc.rust-lang.org/book/ch05-02-example- structs.html#...](https://doc.rust-lang.org/book/ch05-02-example- structs.html#adding-useful-functionality-with-derived-traits)

[2] [https://doc.rust- lang.org/std/cmp/trait.PartialEq.html#how-c...](https://doc.rust- lang.org/std/cmp/trait.PartialEq.html#how-can-i-compare-two-different-types)

<comment><USER11> Rust is such a delightful language.

</comment></comment></comment></comment><comment><USER12> To correct the opening statement: The two hard problems in computer science are cache invalidation, naming things, and off-by-one errors.

<comment><USER13> The [1] is worth a read -

[https://skeptics.stackexchange.com/questions/19836/has- phil-...](https://skeptics.stackexchange.com/questions/19836/has-phil-karlton- ever-said-there-are-only-two-hard-things-in-computer-science)

</comment></comment><comment><USER14> I'm surprised the article discusses extensional equality for functions, then doesn't mention why languages don't try to derive it: it's equivalent to solving the Halting Problem (per Rice's Theorem).

<comment><USER15> That's only for Turing complete languages. It's not true for total functions. Total functions can be written in Coq, Agda and Idris among others.

<comment><USER16> Funnily, in programming languages based on Martin Lof Type Theory, the topic of function extensionality is a whole rabbit hole for reasons other than the halting problem.

There is a distinction between intensional Martin Lof type theory and extensional Martin Lof type theory, which differ in their treatments of equality. First, one must distinguish between judgmental equality x = y, which is a statement in the mathematical metalanguage that two terms are equal, and propositional equality, which "internalizes" judgmental equality within the programming language through the equality type Id(A, x, y), the type of proofs that x and y are judgmentally equal. In extensional type theory, judgmental equality also follows from propositional equality, and together with the eta- conversion rule for functions, function extensionality is provable [0]. However, typechecking extensional type theory is undecidable [1].

Alternatively, in Homotopy Type Theory (HoTT), supports function extensionality is provable from the univalence axiom, which states that isomorphic types are equal [2]. Function extensionality is trivially provable in Cubical Agda [3], which gives a computational interpretation of HoTT's notion of equality.

[0] [https://cstheory.stackexchange.com/questions/46331/extension...](https://cstheory.stackexchange.com/questions/46331/extensional- type-theory-and-function-extensionality/46342#46342)

[1] [https://cs.stackexchange.com/a/112559](https://cs.stackexchange.com/a/112559)

[2] [https://ncatlab.org/nlab/show/function+extensionality#relati...](https://ncatlab.org/nlab/show/function+extensionality#relation_to_the_univalence_axiom)

[3] [https://agda.readthedocs.io/en/v18.104.22.168/language/cubical.htm...](https://agda.readthedocs.io/en/v220.127.116.11/language/cubical.html)

<comment><USER15> Yeah, I didn't mean to insinuate that function extensionality is provable or testable in those languages, just that one can ensure that one is actually writing total functions today. I'm sure the same could be done in a simple or polymorphic type theory, I'm just not aware of one. Is there a Haskell extension like Idris's totality checking?

I was gonna say, just wait until the OP hears about HoTT.

Thanks though, I didn't know Cubical Agda exists.

<comment><USER17> > Is there a Haskell extension like Idris's totality checking?

There's LiquidHaskell [https://ucsd-progsys.github.io/liquidhaskell- blog/](https://ucsd-progsys.github.io/liquidhaskell-blog/)

</comment></comment></comment></comment></comment><comment><USER18> If no mainstream programming languages implement equals like math—an obvious and well known example throughout the history of computing—maybe it's because that's a bad idea.

<comment><USER19> Or really hard, when you're communicating with a computer and not another human. Lots of concepts that are easy to communicate to a human, are difficult to communicate to a computer, not just equality.

It is a good point, though, that if virtually EVERY mainstream language gets it wrong, when every single one of the people creating those languages knew about the math =, there has to be a reason.

<comment><USER20> and what might that reason be?

<comment><USER21> It depends what the meaning of "is" is.

<comment><USER18> Philosophers distinguish three senses of "is":

\- Identity: "Clark Kent is Superman." Anything true of Superman is true of Clark Kent and vice versa, since these are two names for the same thing. \- Predication: "Superman's cape is red." Red is a quality of the cape. It's not reflexive because not all red things are capes. \- Existence: "There is no Superman." In English, existence sentences usually begin with "there is" or more poetically, you say "Superman is ~not~." Existence is not a relation.

In the case of Clinton, he was being evasive about "is" versus "was" in the time dimension. There was a sexual relationship between him and Lewinski, but he called there "is" no relationship in general.

</comment></comment></comment></comment></comment><comment><USER22> I know that opening line as "there are two hard problems in computer science: cache invalidation, naming things, and off-by-one errors"

<comment><USER23> I'm pretty sure the original statement is just with "cache invalidation" and "naming things", and later the "off-by-one errors" was added, as when I first learned about this quote, it was never with the "off-by-one errors" parts but nowadays, seems to always include the three of them.

</comment></comment><comment><USER24> I have to admit that I expected an article on a different type of equality before I clicked on the link.

<comment><USER25> I, uh, equally expected that.

</comment></comment><comment> jerome-jh Is reference equality ever useful in itself, in a high level language?

Of course reference equality is a straightforward optimization for structural equality, as mentioned in the post. But it is not required to make it visible to the programmer.

Reference equally is mandatory for the garbage collector. Again it may not be visible to the programmer.

Finally there is the case of two data structures sharing a reference to a single instance of some data. Usually that is a bad idea if the pointed to data is mutable, and often makes the program leaky.

The paper reads: "So reference equality is a sensible default in a language which supports mutation.". Is it not a bad reason to support reference equality?

</comment><comment><USER26> > _Never use == in JavaScript. Use === instead._

Or better, know what == [0] and === [1] do by looking at the ECMAScript reference

[0]: [https://www.ecma- international.org/ecma-262/10.0/index.html#...](https://www.ecma- international.org/ecma-262/10.0/index.html#sec-abstract-equality-comparison)

[1]: [https://www.ecma- international.org/ecma-262/10.0/index.html#...](https://www.ecma- international.org/ecma-262/10.0/index.html#sec-strict-equality-comparison)

</comment><comment><USER27> Hm...

let john = { Name = "John"; Age = 15; Offspring = [] }; let jane = { Name = "Jane"; Age = 47; Offspring = [ john ] } let sue = { Name = "Sue"; Age = 35; Offspring = [ john ] }

Not very realistic :)

</comment><comment><USER28> I believe the erlang VM and the languages on top of it get all four conditions correct (not counting rebinding a variable to a new value, which you can do in some BEAM languages)</comment>


Lawmakers Push to Invest Billions in Semiconductor Industry to Counter China - <AUTHOR> https://www.nytimes.com/2020/06/11/business/economy/semiconductors-chips-congress-china.html <comment><USER2> You're going to need more 10s.

10s of billions over 10 years would be 1s of billions per year.

Global Semiconductor companies spent $100 Billion _last year_ [0]

[http://www.koreaherald.com/view.php?ud=20200417000516](http://www.koreaherald.com/view.php?ud=20200417000516)</comment>


Apple can do better than ZFS - <AUTHOR> http://devwhy.blogspot.com/2009/10/loss-of-zfs.html <comment><USER2> Having used ZFS on my servers for a few years, it's a bit disappointing that it's not available on my Mac OS X desktop.

Not necessarily because it's ZFS, which is no longer state of the art. But because I've come to consider strong cryptographic checksums, free snapshots and trivial administration of storage as a bare minimum of what's required in a filesystem.

While ZFS may not be completely suitable for a consumer desktop, it is available now. Plus with the hierarchical storage features, imagine how wonderful it would be to have your multi-TB disc accelerated by a few GB of flash on the motherboard.

It's taken ZFS a long time to get where it is in terms of features and stability. It may be over five years before Apple can produce something tried and tested enough to be their new default filesystem.

</comment><comment><USER3> I really wish someone would come out with a BSD/MIT licensed filesystem, so anyone could use it. It wouldn't have to be the one with the most features, mainly simple and good at storing typical users' files. Currently, it seems FAT32 is the only thing out there that is able to be implemented without having to worry too much about patents, licenses etc (with some exceptions). The only issue is, FAT32 sucks! I have a Canon Rebel camera that can record videos, but they can only be up to 4GB because of crappy FAT32. It doesn't matter if I have a 32GB flash/CF card in there, they can still only be 4GB.

<comment><USER4> There are some great BSD/MIT licensed filesystems. The BSD's UFS is as good if not better than NTFS/EXT3/HFS+. It isn't cross platform due to a combination of being complicated, each systems being slightly different and lack of market share.

<comment><USER5> You are high as a kite. UFS is more comparable to ext2, except with more data loss and not even a pretense of a stable disk format even within the same platform!

<comment><USER6> that's a textbook example of one of the things pg says _not_ to do here: "When disagreeing, please reply to the argument instead of calling names. E.g. 'That is an idiotic thing to say; 1 + 1 is 2, not 3' can be shortened to '1 + 1 is 2, not 3.'"

<http://ycombinator.com/newsguidelines.html>

you often have knowledgeable things to say, but that's not enough around here.

</comment></comment></comment></comment><comment><USER7> "It turned out his research team had about the same number of people working on their FS as Apple had working on HFS, HFS+, UFS, NFS, WebDAV, FAT, and NTFS combined. I think people don't appreciate how productive Apple is on a per- engineer basis."

The thing is that's not quite right. The comparison there is between the crew maintaining file system support versus the crew implementing a new fs from scratch. The Author pays lip service in saying it normally takes more than one OS release to implement a FS, but still underestimates the effort it takes to make a completely new production ready FS.

Yes ZFS is not the be all end all. BtrFS, distributed FS's like Hammer and Venti, as well as the occasional complaint about ZFS are exhibits A-? for that, but that doesn't mean Apple can create an FS of the same sophistication in the 18? months that they release in.

</comment><comment><USER8> That Apple has not yet done so is unexplained.

My explanation is that filesystem performance on desktop and laptop systems is not that big a deal; while on larger servers like what ZFS is targeted for, filesystem performance in all facets is very important.

<comment><USER9> Oh please, apple is the worst file-system designer on the planet. HFS, HFS+ and what not. Wastes tonnes of space (space allocation+journalling) and i'd rather use FAT, atleast it is compatible with other operating systems.

Apple should stick to fancy buttons and animation thanks.

<comment><USER10> Hindsight is 20:20. HFS was release in 1985!

</comment></comment></comment><comment><USER11> There is HAMMER filesystem by DragonFlyBSD team <http://www.dragonflybsd.org/hammer/>

just take it and improve it :)

</comment><comment><USER12> ZFS is several years old now. I'd think someone could implement a filesystem that borrows many of ZFS's best concepts and adds significant improvement. I haven't kept a very close eye on btrfs but I hope it meets this since it seems poised to take over as the new default filesystem in the next few years.

<comment><USER13> I just don't get it why age matters.

If something is stable and good enough, then why should it be reinvented, instead of improved?

<comment><USER6> in the case of file systems, 'improving' around the original design decisions is often impossible. take hfs+ for example: almost all the filesystem metadata is stored in a single b-tree called the catalog. doing almost anything with an hfs+ volume requires exclusive access to the catalog, which locks out all other callers for the duration of the file operation. the solution is to spread the metadata out to other parts of the disk, but that can't be done without breaking hfs+ compatibility.

</comment></comment></comment><comment><USER14> That theme/website looks really good. Stunning.

I'm kind of off-topic, sorry about that guys.</comment>


The lost art of concentration: being distracted in a digital world - <AUTHOR> https://www.theguardian.com/lifeandstyle/2018/oct/14/the-lost-art-of-concentration-being-distracted-in-a-digital-world <comment><USER3> Three things helped me:

1) Mindfulness training so I could see myself in the moment NOT concentrating and stop myself. Still not at 100% with this but have been getting a lot better since I first took [https://www.futurelearn.com/courses/mindfulness- wellbeing-pe...](https://www.futurelearn.com/courses/mindfulness-wellbeing- performance/1) a couple of years ago.

2) Thinking of my mobile in the way marketers think of it. As a cache for mobile minutes. Each marketing dept is like a little gnome each trying to get at my treasure. So I cut them off. I deleted all apps with ads and made an effort to block all ads or suggestions for new content across the digital things I use via everything from Greasemonkey to plug-ins to switching providers of services. So now distraction from my digital browsing is significantly diminished.

3) Re-reading this Michener essay about once a year: [http://www.asahi- net.or.jp/~xs3d-bull/michener.html](http://www.asahi- net.or.jp/~xs3d-bull/michener.html). It reminds me that it takes long periods of time and discipline to create great things. Else they are easily achievable and don't IMHO qualify as great. This includes everything from putting tons of time in for Ironman training (quite the physical achievement) to writing a book (look at Michener's books and how crazy-well-researched and expansive they are) to having a good relationship with your mate to writing quality code for your most recent idea. The more the gnomes pick at your little time treasure, the less time you have to achieve great things.

<comment><USER4> The Michener essay is a great read. Thank you for the link.

It has made me think about a problem, though: how to select that huge task in which to pour your energy. For him, it was his novels; but being in a 9 to 5 office job like I am, I'm wondering what are my options.

<comment><USER5> Here is what I think. Do you have something you really want to achieve? Writing a book? Learning something new to advance your career? Whatever it is you must carve our deep work time for it. Waking up early, etc.

How to select your "whatever it is". Don't start small. Think about it every day. I think this will prime your brain to help you find it. Keep a journal focused on this. It probably won't take too long. If you are still hit by analysis paralysis some times you just have to flip a coin and force a decision. This catalyst will often make the right choice clear (e.g if the coin flip lands on a thing you aren't as excited about).

Final thought, practice deep work at your job. Prime your colleagues for when you will be in deep work. 2-3 hour stretches are a minimum IMO. Really entire days are ideal, but 2-3 hour stretches are good enough if they are truly distraction free.

<comment><USER6> Lately it's been fashionable to downplay the idea of "passion" (try Googling "don't follow your passion"), but I think it's critical to having any chance of success at tackling a big problem.

Several years ago I took up jazz drumming and purchased a DVD by the jazz drummer John Riley. Amidst all the technical lessons that comprise 99% of the disc he inserted a brief, 1 minute long sidebar on the idea of being "gifted" at drumming.

[https://www.youtube.com/watch?v=ist7xECbDh0](https://www.youtube.com/watch?v=ist7xECbDh0)

Of course it applies to anything, not simply playing the drums.

It caused me to think differently about what kinds of things I'm willing to spend my time on, simply because doing that thing was most rewarding.

<comment><USER5> Passion is almost a Zen concept to me. Follow your passion is great, but, fly too close to the Sun and you get burned. Passion can be learned in the sense that you can explore new things and find you have a passion for them. And you won't know if you have a passion for some topics until you are deep into them. I think most smart people can learn to have passion for almost any area where they have mastery and purpose to achieve. It can be a bit of voodoo "finding your passion" and you can learn to be passionate about almost anything if it scratches the right itch, IMO. It is all about expanding horizons. Getting a job in a hobby or passion can be the worst thing for that passion.

</comment></comment></comment></comment></comment><comment><USER7> It seems like nowadays, we wring our hands about the effects of constant access to the internet on a near-daily basis. And isn't it kind of odd that the people working on these products in an 'individual contributor' capacity are often the same ones encouraging others to stay away from their platforms?

Maybe that should tell us something. Anecdotally, most of the things that this article recommends are things that I wholeheartedly enjoyed several years ago, but tellingly no longer have time for despite a similar schedule.

Reading for pleasure took the biggest hit - I can just listen to an audiobook or podcast during the commute, right? But it does also feel like I've gotten worse at persisting in tedious tasks after being interrupted, exercise feels more like wasted time, and even my breathing exercises are getting shallow and rapid these days.

What is going on? It's not that thumbing through the news feels like an accomplishment, and I know that I'll look back on these years and shake my head at how terribly I'm wasting my time - it's already happening - but this is a comfortable lifestyle and I just keep on doing it. That does sound like an addiction, right?

I don't know. But I do know that I've had enough, and I'm coping with it by planning to spend a couple of years on the road in the hopes that things blow over and the people of 202x will have this all figured out. And hey, maybe I'll feel better after forcing myself to be bored for several months.

Because these issues seem so massive and unapproachable that I can't think of anything to do besides throwing up my hands and leaving. I can't even talk to other people about it because everybody's noses are in their phones everywhere. Is that weird?

<comment><USER8> but this is a comfortable lifestyle and I just keep on doing it. That does sound like an addiction, right?

I have similar traits that I am actively working to wear off. My only addictions are Twitter, Hacker News and Yahoo Finance. I spend at least 4 hours in a day flipping across these. I must admit Twitter is quite helpful because my feed is well curated. YF is a total waste of time - I don't know why I keep checking the stock prices when I know for a fact I won't sell anything. It satisfies some part of my brain to keep watching the tickers. What a fucking waste. Hacker News is useful too. What has helped me in the beginnings of my de-addiction is measuring how much time I am wasting and writing it down. It's kind of a slap in the face to get up in the morning and see that you wasted 4 hours the previous day.

I can't even talk to other people about it because everybody's noses are in their phones everywhere. Is that weird?

Perhaps hanging out at an old fashioned bar might not be bad. Not the ones with fancy music but the ones that remain somewhat rustic, where you can just have a beer and a random conversation.

<comment><USER9> The new Apple screen time app really is a tremendous addition to see just how bad it is. A lot of time on my phone I'm doing things that I still consider productive like reading technical articles, and doing my anki cards, but the amount of time I can spend looking at my phone is absolutely outlandish in a given day of free time.

My big time sucks are hn, fark for news, and occasionally reddit. I'd like to at least drop reddit from my routine, and maybe only come to hackernews when I've gotten through every other article open on my phone.

Seem like good goals. The screen time app is nice because you can actually set limits on how much you can use an app then it bugs you with a warning.

I've been trying to read more lately, it's wonderful. Just finished For Whom the Bell Tolls, and started in on some Kafka. But it's definitely different then when I was younger and would just tear books up.

I think maybe I'll blacklist reddit at least with the proxy on my phone and then only browse that on the laptop which would be much rarer and far less likely since there's so many more interesting things to do on the computer (I just discovered the joys of tmux, how was I missing you all these years? With tmuxp, what a powerful set of tools.)

Anyways, that's my experiences, these little gadgets are incredibly addicting, and with three link aggregates with nigh on never ending pages of links it's ridiculously easy to spend a tremendous amount of time with your face in the screen.

<comment><USER8> But it's definitely different then when I was younger and would just tear books up.

When I was 19, I finished John Grisham's The Partner in one sitting - <USER2> even getting up for food. Something like 24-30 hours non stop reading. There's no way in hell I'll be able to do that now.

<comment><USER10> I never read a whole book in one sitting, but I could read for hours. For me it wasn't the internet/phone distractions that broke me of that ability, it was having kids. There was just not time to do that anymore. Now, for better or worse, I still read a lot of books but in very small rapid chunks, even standing in line at the store. I treasure the times when I can go to bed and read for an hour or so, though I usually just fall asleep after 20 minutes.

</comment></comment></comment></comment></comment><comment><USER11> After using facebook for 8 years, I had reached a point where I stopped posting content but couldn't stop consuming the content posted by others and also logging into facebook without even thinking. I tried multiple times to deactivate the account but it always resulted in reactivating it. The two main reasons for it was the herd mentality and the FOMO.

I needed a new approach, I started by unfollowing people and pages that made me react. I realized the most important part of facebook for me was keeping in touch with people and not the posts that they share so decided to unfollow everyone which includes pages and groups too. The annoying part is that it is not easy to unfollow everyone and you have to do it one by one. I found a post with some js code that helped in achieving this and it worked, don't know if it will work now - [https://www.quora.com/How-do-I-unfollow-everyone-on- Facebook...](https://www.quora.com/How-do-I-unfollow-everyone-on-Facebook-at- once)

After about 8 months of using facebook this way,I checked how many conversations I had using the messenger which turned out to be in the lower end of the single digit. Finally, I decided to go ahead with the deletion of facebook after backing up all my data. Once you hit delete, it gives 14 days of thinking time in case you decide to change your mind. After deleting the account, it took me almost 2 months to stop my reflex action of going to facebook login page.

Its been more than 6 months I've deleted facebook, I'm not missing it, I hardly think about it and quite happy that I'm out of it.

<comment> raffael-vogler > After using facebook for 8 years, I had reached a point where I stopped > posting content but couldn't stop consuming the content posted by others and > also logging into facebook without even thinking. I tried multiple times to > deactivate the account but it always resulted in reactivating it. The two > main reasons for it was the herd mentality and the FOMO.

I'd argue that deeply reflecting on this offers a huge potential for personal growth. Why the fear of missing out? To me it seems more and more clear that the only thing to miss out on is the present moment as it is for me right here and right now.

> The annoying part is that it is not easy to unfollow everyone and you have > to do it one by one. I found a post with some js code that helped in > achieving this and it worked, don't know if it will work now

I guess with Facebook and its siblings this is an uphill battle as they will always try to come up with new ways to prevent you from pursuing precisely those kind of goals.

> Its been more than 6 months I've deleted facebook, I'm not missing it, I > hardly think about it and quite happy that I'm out of it.

Congratulations on that!

</comment></comment><comment><USER12> One of my biggest distractions for years has been email. I just have to have my inbox at zero and used to check my email religiously, from every few minutes to every few hours. I'd check email in the bathroom, in bed, at the table .. it was getting ridiculous. The things is, I never got any interesting email worth checking - it was always the same pattern: swipe - delete. So I decided to do something about it.

I figured checking email once or at most twice per day would be enough so I took took a few steps to accomplish this:

1\. Moved the email icon from my phone into an obscure folder hidden on the very last screen on my phone. Now, instead of clicking it right away I have to actively find it which is kind of a pain.

2\. Installed SelfControl for Mac and added gmail.com, facebook (yes I still have a shell account I use to check one group), reddit, ycombinator, twitter and a host of other news sites I may occasionally visit to the black list. The first thing I do in the morning is set that timer for almost the entirety of the day and hit start. Now everything is literally blocked and I cannot access it without turning off SelfControl which I have yet to do. Some days I make an exception and leave hacker news off the list.

What I really want now is a product, app or SOMETHING that just turns off everything, including notifications at a click of tap of a button - across all devices simultaenteouly. Turn of all notifications, popups, alerts, all the garbage that comes up through the day including phone calls, messages, Facetime.. just everything. I don't care if it's an emergency, I don't care if someone died, I don't care if checking the phone will save my life. Just turn it all off, but give me access to the apps I still use.

<comment> raffael-vogler For me it seems that in times of instant messaging email is the saviour in personal communication - not in professional context though (I still prefer an email over being called many times over). When it comes to private messaging people tend to write mails more with a mindset of writing a letter. Full sentences and the entire communication structure seems to be aimed at being complete and more thoughtful. IMing often feels more like ping pong than actually conversing.

</comment></comment><comment><USER13> CGP Grey discussed this on a recent Hello Internet episode [1], that he was concerned by his inability to maintain focus on a single task (such as reading a book) for more than several minutes. He specifically notes that Reddit and HN were major contributors to this.

1\. [http://www.hellointernet.fm/podcast/108](http://www.hellointernet.fm/podcast/108) (about the 1 hr 15 min mark)

</comment><comment><USER14> People have short attention spans. It was not so very long ago (and indeed it is still quite common today) when the standard way that one "lived" their life was to spend 8 hours a day at work and then most of the remainder watching television.

Yes, compared to the ideal, having your nose in your phone to the detriment of all other activities is undesirable, but compared to the actuality of what came before it might be an improvement.

<comment><USER15> I would counter argument that in the past TV was a shared experience while staring at one's phone is a single experience.

<comment><USER14> I would counter-counter argue that using a smartphone is much more of a social experience than TV, and can be less interruptive as well.

Much of the time when people are using their phones they are socializing asynchronously or synchronously with their friends and family. They are following what's happening in their lives through twitter, facebook, instagram, etc. They are keeping in touch through instant messaging (on facebook, through google hangouts, texting, what-have-you). They are keeping up with current news and events. They are keeping themselves informed, etc.

And in terms of the presence of media in the physical space _sometimes_ watching TV with others can be a social experience, but it can also be an anti-social experience by draining attention away from conversations and by having something of interest going on that can't easily be interrupted or paused to do something else. Whereas smartphone use _can_ more often be interrupted or paused.

My own anecdotal experience is that television is much worse of an attention hog than smartphones, on average.

</comment></comment></comment><comment><USER16> My internet cut out last week for four hours while my phone was busted.

I spent an hour listening to this podcast I'd downloaded a week earlier: [https://fs.blog/naval-ravikant/](https://fs.blog/naval-ravikant/)

And then spent a few hours thinking about what was said.

It was the most peaceful evening I've had all year.

<comment><USER15> > It was the most peaceful evening I've had all year.

That's a really powerful statement to make. Lately, I am have become addicted to riding my bicycle to the office. The main reason is that I have 30 min each way to not care about emails, news, etc.

<comment><USER17> Says a thing about the reality of human impedance [mis]match with the modern life fantasy. Moving one's butt in nature is probably more tuned to our system.

</comment></comment></comment><comment><USER18> Distraction is not new. We love doing things with instant gratification and anything of great value comes from deep work.

What it is new today is that people are fighting against a football team of Doctors in Psychology, experts manipulators that have sold their soul to the "Man", Google, Facebook... in order to enslave people following their primal impulses for the benefit of those Juggernauts, and the manipulators themselves, pretty happy to receive a fat check for their services.

The first thing you need to do in order to become free of their extensive web of control is to be conscious of their unfair game.

If you try to fight , alone, you will lose. Those guys know much more about you and humanity that you could ever grasp. Theoretically they hire experts in human behavior. In practice they know what thousands of millions of people do for real. They hold the emails, they have cameras and microphones on people's rooms, they follow your GPS signal on real time.

If you want to be a creator, free of distraction, the winning strategy is not to play. Use digital services that you pay and own, and associate with other creators because alone you are too weak.

<comment><USER19> Thank you very much. I find this very insightful and eyeopening. What are resources that I can pay attention to in order to be "conscious of their unfair game"? Will wholeheartedly appreciate it. Thank you once again.

</comment></comment><comment><USER20> I often felt that I was getting distracted way too much, but I couldn't stop it. About a year ago when my depression got back on track I just shut myself off of every service I had. I quit facebook, deleted all unnecessary apps from my phone, muted it completly and turned off the thing that the display lights up if you get a new message. I even let my phone at home when I was not expecting any major call. If people called me I just called them back when I was at home and had time for it. All of this went out way better than I ever would've thought. I feel super relieved and relaxed nowadays. Because I started a new job I carry my phone with me now most of the day, but it is still muted most of the time. It is even fun to see if there is something new on the internet without getting notified about it instantly. Now I decide when I want to take a break and what I want to look for, not my Smartphone or something else.

</comment><comment><USER21> This is one of the reasons I still have a few subscriptions to magazines. No micro-distractions, just long form journalism.

<comment><USER22> Which magazines aren't 90% ads and the remaining 10% long form ads? Genuinely interested as I haven't seen any good mags in a while.

<comment><USER23> Lapham's Quarterly: [https://www.laphamsquarterly.org](https://www.laphamsquarterly.org)

</comment></comment></comment><comment><USER24> I love that every time the monkey[0] distracts me today, the top link is about distraction. Reminds me to get back to work.

[0] [https://waitbutwhy.com/2013/10/why-procrastinators- procrasti...](https://waitbutwhy.com/2013/10/why-procrastinators- procrastinate.html)

</comment><comment><USER25> That's it, I'm deleting my hacker news bookmark. I've been on a good kick lately looking at old illustrations in books on archive.org. I've started reading around them and there is some pretty neat stuff written by people who never logged on.

<comment><USER26> My fingers can touch type the url autonomously, before I even realise what's happening. That's why I need the hosts entry block at work..

</comment></comment><comment><USER27> It's hard to take these articles seriously. Do these psychologists think that the average person's issue is they get distracted 60 times a day on their weekends? Who cares about that???

My problem is that I get interrupted 160 times a day in my workplace!!! How do these suggestions help me in my workplace? Shall I tell my boss that I can't reply his email right now because I am counting back in sevens from 1000 or what???

<comment><USER28> Tell your boss you check email three times a day, in the morning, after lunch, and before leaving work. And if she/he has something urgent to please slack you directly. If necessary create a filter that lets people add an #urgent tag to the subject that sends you a notification.

Then turn off email and slack notifications for all but the rooms centered on things you are directly responsible for. Police those groups so they are only critical isssues that the whole team should be addressing. Create a second channel for casual discussion if need be.

I don't know... maybe none of these work but just try something. If you can't change anything at least keep a log of all your interruptions and the general category of issue, so that you can talk about it with your boss in an informed way at your next 1 on 1.

</comment></comment><comment><USER29> My best strategy is to avoid the distractions from the get go.

I don't browse the web until I finish my workday. If I need to look up something (which must be work related) I just browse the minimum needed to get the answer. I don't browse to the related links.

With my smartphone is the same. I turn off all notifications and leave it in my bag (if I'm at office) or in another room (if I'm working from home).

My focus, calmness and confidence skyrocket when I do this.

</comment><comment><USER30> I rediscovered(after 10 years or so) a half-solution the other day: any activity that requires focus but is done offline(so not programming nowadays, unless you have your docs/tutorials/etc offline).

In my case it's making music. The product is obviously crap and takes _a lot_ of time to create, but it has done wonders to my ability to focus.

<comment> raffael-vogler Just yesterday evening I had a quick look for old-fashioned chess computers. Who needs a chess computer when you have a real computer or a tablet? The difference is that with a chess computer you are offline.

</comment></comment><comment><USER31> I typically think of this as a unique advantage that programmers have. In almost every other industry I see, I see people who never get the chance to focus all their attention on intellectually challenging tasks for hours without break, and a lot of them seem super distracted and like their brain have been negatively affected by this absence. But programmers seem like the rare species that actually do get this privilege, and this is usually the reason I prefer intellectual conversations with coders than almost anyone else (even when the topic is something other than engineering).

<comment><USER32> I agree with you. But lately I've been noticing myself being distracted a lot and finding it hard to concentrate... for example I have a hard problem in front of me and in the momment something goes wrong I just switch task and go on hn/reddit/mail etc...

<comment><USER31> Habituating myself with music and special rooms that I'm very strict about associating only to work (never play) has been the key for me. Play music when you work, and be very strict about not playing the same track/genre when you go on hn/reddit. Sometimes I stand up when people speak to me, just so I don't encourage my mind to allow "conversation thoughts" to bubble up from my subconsious when I'm in a chair. If you're strict about this, and you do it for long enough, it becomes much easier. (Don't be too hard on yourself when you fail, let it take the time it needs to take, be patient. And be careful once you've reached the good habit state. Remember how fragile it is and how much effort was required to get to that point.)

</comment></comment></comment><comment><USER33> Might be coming across as an asshole but it's not that hard for me to ignore digital things. Sure i have a bad habit of looking to my phone and opening HN but... When i'm at home i will leave phone sitting somewhere (forgot where i left it) for hours and ignore people. I can run and exercise and listen to the sounds of nature. The problem I have is that at work you are plugged into the browser 8-10 hours a day and instantly searching everything. When you get home it takes a bit of focus to just live and not be staring at a screen. It is possible though.

</comment><comment><USER34> I have a cell phone plan with limited data. At first it was just a frugality thing, but it's also done wonders for attention/mindfulness. I tend to listen to podcasts instead of mindlessly FB/Redditing. Not only does it clear my mind, but listening to the news instead of constantly refreshing a news site throughout the day saves time and decreases stress and "FOMO" (fear of missing out). I know I'm missing out - I've chosen to! :)

</comment><comment><USER35> As a tech fanatic here is my way of dealing with it:

\- no smartphone

\- as little social media as possible (yes, I know)

\- when with family or others the phone is on silent and I won't answer or text

\- adblockers and privacy tools used to the max to get rid of advertising

\- no TV

\- no radio

Between all those tricks I can get a half decent day's work _and_ still spend time on others, though I have to admit that the better the business is doing there is still pressure there that will need to be relieved somehow.

</comment><comment><USER17> Anybody ever felt relieved when their ISP was down ?

</comment><comment><USER36> The book War of Art by Steven Pressfield is a great book talking about this. Half of the battle is procrastination. One has to do develop a routine and stick to it never what. Concentration will come from that.

</comment><comment><USER37> They mentioned a variety of apps, but w/o discussion of iOS 12 "Screen Time" (best if enabled for All Devices).

That data can be jarring enough to motivate habit change.

</comment><comment> raffael-vogler This is an ongoing battle for me. I do make progress but it seems that the fundamental design of our culture and society is just increasingly depending and requiring to be online all the time. But I found that a set of simple rituals will go a long way.

> We check our phones every 12 minutes, often just after waking up.

First of all I reduced my involvement with services that cause me to check my phone. I don't use Facebook, Instagram, WhatsApp, Twitter. I even blocked youtube.com and youtu.be on my computers.

At some point in the evening I will switch off my phone and keep it in the living room when going to bed. That solved my terrible habit of reading reddit, HN etc while lying in bed intending to sleep. After stopping this I realized how detrimentally this impacted my sleep quality. It also keeps me from immediately reaching for my phone upon waking up. Now I'll do several things before giving attention to my phone.

> more and more experts are telling us that these interruptions and > distractions have eroded our ability to concentrate.

I guess a lot of people will argue that it didn't erode anything but instead just changed our ability to concentrate - in the sense of evolutionary addaption - but I will argue that this is in deed a negative development. I do this confidently from a position of personal experience. It simply doesn't feel good. And a lot of people who claim they like being on and conneceted 24/7 seem nervous and anxious to me.

> More than half of the 1,100 participants said they always responded to an > email immediately or as soon as possible, while 21% admitted they would > interrupt a meeting to do so.

That's one of the first things to learn on a job - not to respond to mails immediately. It seems this will just trigger the next mail and establish an expectation to receive fast response from me at all times. In the end it will just snowball and suddenly I'm only writing mails all day long.

> ... The deep reading that used to come naturally has become a struggle."

I observed that with me, too. The antidote is naturally to read more lengthy texts like books. Sitting down and just reading a book in the evening feels sometimes like therapy - but in a good way. (Currently I'm reading Twain's "A Connecticut Yankee in King Arthur's Court")

> Start by switching off smartphone alerts, or taking social media apps off > your phone, then switching off the device for increasingly long periods.

I even got me second (dumb) phone (Bea C65). It's number one feature is that it can do nothing except calling and SMS. Also the number is known currently only to my girlfriend. I take it with me when I am certain that I won't need my smartphone. No way to check about Seehofer or Kashogghi on sueddeutsche.de.

> Most of us breathe poorly: ...

I practice various kinds of meditation - currently twice a day for half an hour each. Body Scan, Zen meditation, Wim Hof breathing, Pranayama inspired breathing etc. This is easily the most important and healthy habit for me at the moment.

> Although any type of light can inhibit sleep, research has shown that light > towards the blue end of the spectrum is especially effective at keeping you > awake because it stimulates the retina in the eye and inhibits the secretion > of melatonin from the pineal gland in the brain.

In hindsight I have to conclude that reducing brightness on my S7 to lowest setting + activating the blue light filter + using a special app to reduce the brightness even further was not sufficient to prevent sleep issues.

</comment><comment><USER38> i would love to read this... but, ya know...</comment>


The Empty Promise of Suicide Prevention - <AUTHOR> https://www.nytimes.com/2019/04/26/opinion/sunday/suicide-prevention.html <comment><USER2> > We need to address the root causes of our nation's suicide problem — > poverty, homelessness and the accompanying exposure to trauma, crime and > drugs. ...

It blows my mind that a licensed psychiatrist publishing in the NYT about the root causes of suicide can fail to mention child abuse. Sure, she mentions "trauma", but only as an accompaniment to poverty. It is well established that developmental trauma (also known as "adverse childhood experiences", or ACE) causes a significant increase in suicide attempts. [0]

> If we ignore all this, and keep telling the story that there is a simple > solution at hand, the families of suicide victims will be left wondering > what they did wrong.

I hate to break it to her, but when a victim of intrafamilial child abuse dies by suicide, their families _should_ be left wondering what they did wrong. Obviously this isn't happening in all cases of suicide attempts, but it's a significant factor, and tends to be under-reported due to societal taboos around speaking ill of one's family.

Misinformed articles like this one, however well-meaning, are harmful because they perpetuate a culture of denial and continued stigma around child abuse.

[0] [https://www.sprc.org/news/adverse-childhood-experiences- suic...](https://www.sprc.org/news/adverse-childhood-experiences-suicide- attempts)</comment>


IRS Says Bitcoin Is Property, Not Currency, And Forms 1099 Are Required - <AUTHOR> http://www.forbes.com/sites/robertwood/2014/03/25/irs-issues-bitcoin-guidance-its-property-not-currency-and-1099s-are-required/

<comment><AUTHOR> The IRS document used as source material for this article can be found at:

[http://www.irs.gov/pub/irs-drop/n-14-21.pdf](http://www.irs.gov/pub/irs- drop/n-14-21.pdf)</comment>


Command Not Found: Install any command on any operating system - <AUTHOR> https://command-not-found.com/ <comment><USER2> Why so many ads?

Definitely not finding some and giving incorrect results for others.

<comment><AUTHOR> You're finding ads when finding results for a command?</comment></comment>


China retaliates with 25% tariff on $34B worth of goods including agriculture - <AUTHOR> https://www.cnbc.com/2018/06/15/china-announces-retaliatory-tariffs-on-34-billion-worth-of-us-goods-including-agriculture-products.html <comment><USER2> As I understood the last set of tariffs the EU enacted specifically targeted industries operating within the districts of Mitch McConnell, Paul Ryan, and Nancy Pelosi. I'd be interested in figuring out which politicians Xi is targeting with his tariffs.

</comment><comment><USER3> > The list includes soybeans, electric vehicles, a range of hybrid electric > vehicles, a variety of seafood and pork, according to the Ministry of > Commerce.

Tariff on electric vehicles also serves China's strategic interest in becoming the world leader in the industry. It allows their domestic manufacturers and ecosystem to achieve even stronger economy of scale and to move up the learning curve faster. (Domestic competition is already intense so complacency is unlikely.)

I suspect they had wanted to do this and the event provides a perfect excuse for it.

It is possible we will see Shenzhen-style hub for electronic components where it is the cheapest and fastest place globally to manufacture many electronics but now for electric vehicles, again in China.

</comment><comment><USER4> This is where everyone starts cheating in the prisoners'dilemma. On trying to win, we're all going to lose. Trade war is the surest path to global economic depression of 1930s magnitude. Let's hope it ends better than that...

</comment><comment><USER5> I hate to say it but tariffing their own food supply is not a tenable position. Granted they likely have some pretty fucking large stockpiles of foodstuffs and grains, but they are still very dependent on US agriculture, especially in concerns for their beef production which is super expensive there. They don't have the land to grow alfalfa and grass for their cows, but they do have large empty cargo ships regularly sitting in US ports that we normally pack to the brim with grass for a few extra pennies.

<comment><USER6> But there are lots of other places in the world to buy foodstuffs like the US sells them. Is there a reason they can't just buy from Europe or Australia or whatever?

<comment><USER7> Only if they can up their production to match what the US was selling them. The US is a very large food exporter although the EU looks like it does more in aggregate[1]. There big problem will be if the prices rise, does it cause unrest in their populace. People will grumble if their IPhone gets more expensive or jobs are lost. Riots start when food starts getting scarce

[1][https://www.worldatlas.com/articles/the-american-food- giant-...](https://www.worldatlas.com/articles/the-american-food-giant-the- largest-exporter-of-food-in-the-world.html)

<comment><USER8> I don't think the USA is a crucial food exporter to any market except maybe Mexico. Yes, we export lots of fruits, nuts, and animal feed, but none of this is going to be missed very much. It's not like Thailand cutting off rice exports.

<comment><USER7> The USA is a food exporting powerhouse. We are not #1 in every market but we are in the top 5 of every major grain I can think of.

some examples

Wheat-[http://www.worldstopexports.com/wheat-exports- country/](http://www.worldstopexports.com/wheat-exports-country/)

Corn-[http://www.worldstopexports.com/corn-exports- country/](http://www.worldstopexports.com/corn-exports-country/)

Rice-[http://www.worldstopexports.com/rice-exports- country/](http://www.worldstopexports.com/rice-exports-country/)

<comment><USER8> But no one really depends on us. A lot of what we export is used as animal feed.

<comment><USER7> animal feed is used to make more animals which humans eat. Im not saying I know that this would affect China for sure, but you cant take a major producer out of a market or increase their price substantially and expect no effect

<comment><USER8> Mexico and Canada would be hurt much more, prices would go up, meat would be more expensive in China, but...global starvation wouldn't occur. There are plenty of net surplus exporters out there, and what they add are mostly luxuries.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> This is great news for India if this really does blow into a trade war between the US and China I imagine.</comment>


Ask HN: Which hardware careers can be high-paying? - <AUTHOR> Last weekend there was an "Ask HN" question about engineering careers [1], mainly in CA, that reaches 300k+ salary. All the answers were by software engineers and the like, which is expected here at HN.
So, the question is: is there a highly profitable career (150k+) in your region (specially CA) or company for hardware-focused?
Which are these careers and what skills are in demand for them?
To give a more concrete situation (and avoid the XY problem): I feel a bit like the top answer of this thread[2]: I fell I'm wasting my skills and the prime earning ears in a not-so-high-paying industry (scientific facility) in a low-wage region (not EU or USA).
So, I'm planning to both relocate to US or EU, maybe China or Japan; and probably also change market so I can get my career in a better-paying track. I consider myself very broadly skilled, having designed high-performance electronics (board level, never IC level),done FPGA development, including DSP, and programming from embedded up in a few programming languages, even occasionally contributing to some open-source projects. I also oversaw several short-run manufacturing and deployment, which is a skill set by itself.
However, I have some anxiety on which path to follow. Should I focus on:
* learning a particular set of board-level design tools for getting my foot in SV consumer electronics companies?
* try to get a PhD and learn analog IC design?
* using my current experience to get a decent paying job in a FAANG (all of them seem to be doing HW now, except maybe Netflix) and set foot on the door?
As you see, I have some anxiety and maybe people here could help. Maybe my software skills could put me in a better track, but I first want to check if I can make better use of my 10+ hardware-focused career.
Thank you.
[1] https://news.ycombinator.com/item?id=16811454 [2] https://news.ycombinator.com/item?id=16811968 <comment><USER2> My background is slightly higher-level than yours; CPU architecture. I have friends and colleagues with similar backgrounds, and the ones pulling in the most have either pivoted all but entirely to software, or have managed to find hardware roles within the big 4. They do exist. The latter get the best of both worlds, as they pay essentially the same as they do for software roles, and come with the rest of the usual perks. Banks are similar, but my observation which may or may not be completely accurate, is that they are pickier and narrower in scope.

I would be wary about getting a PhD in anything outside of computer science today, though. The roles are out there, but there are far fewer of them.

<comment><AUTHOR> Thank you for your answer. This is the kind of info I'm looking for.

Maybe you got my background wrong: I do not design ICs currently, I was wondering if I should. I do design boards (high speed digital and analog RF in the higher end) and do FPGA programming to make them work. CPU design is an area of interest, but way to niche for my current field of work to accommodate.

Which areas a PhD could leverage both computing and my hardware design experience? Also, any ideas of skills or tools set required for getting into one of the big 4s?

<comment><USER2> I don't have a PhD. In my opinion, if you don't have a decent idea about what you want to get yours in, you probably should be thinking twice about getting one at all. There's a huge opportunity cost, and the job market will probably change in non-trivial ways by the time you're done. Only do it if you're certain you want to become an expert in something specific. Microsoft and Google in particular are doing a lot of work with FPGAs. (Though, admittedly, the most interesting of these are probably research positions where relevant PhD's are the norm) Apple does the full stack when it comes to hardware, and I'd expect them to have plenty of analog people. The best route might be to tell the right story based on your past experience and pair it with relevant positions at the bigcos. How to get their attention is unfortunately a topic that literally plenty of books have been written on, and I'm as far from an expert at it as possible. :p

<comment><AUTHOR> Thank you. I'm finishing my masters while working and thinking a lot if I should or not get a PhD. The tendency is not to.

</comment></comment></comment></comment><comment><USER3> You can live well in Germany if you can do a) FPGA+embedded Linux+OpenCV+PCB Design+microprocessors or b) FPGA+RF hardware+RF protocols+PCB Design. I am sure, that your skill set is sufficient. Though the opportunities are rare. And only it works in large enterprises paying according IG Metall tables. If you don't have family, go to Silicon Valley or Switzerland.

<comment><AUTHOR> Plan b sounds much better from my perspective, even thought I could hack a if needed. The rarity of opportunities is what scares me.

SV sounds obvious, but why Swirtzerland?

<comment><USER4> There are many reasons why people move here, I even wrote a blogpost about it: "Eight reasons why I moved to Switzerland to work in tech" [http://bit.ly/2JxSQPt](http://bit.ly/2JxSQPt)

</comment></comment></comment><comment><USER5> Google has a whole division now called Google Consumer Hardware, and they're hiring hardware engineers at the typical Google salaries. Google X, Waymo, and Verily all do plenty of hardware too. And of course Apple does hardware. Tesla hires hardware people too but I haven't heard the greatest things about their salaries or work life balance.

<comment><AUTHOR> Yeah, I've already read about Tesla, and was not considering them already.

Do you know how hard it is to get these Google opportunities? Do they do whiteboard interviews as with SE?

<comment><USER6> White board interviews are common across all kinds of companies in SV not just for SW roles. I was asked to invert a tree for a HW test role at Google and very recently asked to come up with code for a particular situation for a test role at Apple.

<comment><AUTHOR> Oh god, I could not invert a tree in a whiteboard for my life. I took a MOOC algorithm class for fun, but never applied any of it at work and never intended too. The nearer I've ever got was FPGA implementation of some sorting algs, all just for fun.

</comment></comment></comment></comment><comment><USER7> Banks pay HW engineers a lot. I know a dude at JPMC (nyc) who is clearing 450k doing HW (dc/priv cloud) design. I wouldn't be surprised if folks at somewhere like two sigma make around the same.

<comment><USER8> dc/priv cloud seems more like IT and infrastructure and less electrical engineering though right?

<comment><USER7> I should clarify, by private cloud, I mean a few custom designed servers running open stack or something, and DC I mean some built up "pod/rack" design you might colo. Ether way, I mean end to end, I was just trying to account for colo a _nd_ on-prem (two sigma, for example, have a small private cloud in their office that's quite well architected.)

</comment></comment></comment><comment><USER9> High frequency trading is largely done in hardware these days. It's a constantly moving target, dealing in nanoseconds. It's not my area of expertise, but last I heard, ASICs directly in the switch is where it's at these days.

Compensation-wise, if you have the right skills and can find the right place, it can make software engineering look like bagging groceries. Mostly concentrated around financial centres, so more New York and London, less so CA.

<comment><USER10> FPGAs are certainly extremely useful but most hft is moving away from purely speed focused stuff. Only one place that I know of does asics like that and it was a complete boondoggle. The difficulty of changing, printing and verifying an asic just doesn't make sense especially once your latencies are a tiny fraction of exchange jitter, and the smarter player saw the trade you wanted to make way ahead of time anyways.

</comment></comment><comment><USER11> Talking to some people in San Francisco, it seems like there is high demand for electrical engineers with hardware experience at the moment. There's tons of programmers, but few hardware people. Check out Lemnos Labs in SF, they just raised some money and are focused on hardware startups.

I would guess $100k-150k salary depending on the company and your experience.

<comment><AUTHOR> Thanks for the Lemons reference. Maybe I'll get in contact, at least to get a sense of the market and opportunities.

</comment></comment><comment><USER6> FAANG+Microsoft and they have a division focused on Hardware operating out of their MV office off of shoreline Blvd next to computer history museum. They hire for board level HW engineers to work on Hololens and their other HW initiatives. Check out their websites for the actual listings

<comment><AUTHOR> You're right: [https://careers.microsoft.com/us/en/job/397873/Sr- Electrical...](https://careers.microsoft.com/us/en/job/397873/Sr-Electrical- Engineer)

The only problem is that I do not have any experience on consumer electronics, even thought I've worked with all these technologies in some level, sometime in my career. Would this be a show stopper?

      5+ years of experience designing and building electronics products with a focus on consumer and portable systems.

<comment><USER6> Don't think so. When I got into CE I came from a Medical devices background. All they are looking for is your ability to go from specs to schematics to pcb layout to overseas manufacturing builds transfer. This process though not set in stone is very common across various industries.

<comment><AUTHOR> Thanks! This is the kind of information I needed!

I surely have gone in all these steps, just in smaller scale (few hundreds at a time). Now I quadrupled my confidence on these applications, given that I already worked on a varied of situations.

</comment></comment></comment></comment><comment><USER10> Send an email to the address in my profile. A team in my company is looking for talented hardware engineers and pays above what you want, along with great work/life balance and benefits.

<comment><AUTHOR> Thank you, seems very interesting! Already sent you an email.

</comment></comment><comment><USER12> Trading. Check out firms like Optiver, Jump Trading, XR, etc. Big bucks for FPGA devs

</comment><comment><USER13> IC design can still pay very well in Silicon Valley. So you are on right track with that, if that's what you really enjoy. Also, people who can wear both hardware and software hats are extremely valuable (aka highly paid), but for very specialized jobs. For instance, embedded programming for high-end chips.

<comment><AUTHOR> Yeah, but IC design would be a long shot to me. I have lots of board level experience, but just the odd academic course on IC design. If needed, I'll do, but I'd rather leverage my board and system level expertise.

</comment></comment><comment><USER14> I'd bet that within the next 5-10 years, a lot of neural networks are going to shift from running on graphics cards to running on custom hardware. Probably some opportunities there, given the wide applicability.

</comment><comment><USER15> RF/Microwave hardware design, DSP with FPGA, maybe SDR. Though those all would be specific to the military-industrial complex.

<comment><USER16> From my experience, he probably won't be able to leverage this to relocate, precisely because it is a bit military-prone and these things require clearance only a citizen may get.

SDR was actually an area I worked on while at college, and a bit in a few companies after that. Both CPU-based and FPGA-based, on the early days of GNU radio.

There's some niches SDR and RF may get outside military use: RF-based instrumentation (I currently work on a particle accelerator), TV and Brodcast equipment (I also worked before in these areas), but these are VERY niche.

Well, if anyone knows about some interesting opportunity that resembles this, I'd be glad to hear!

</comment></comment><comment><USER17> Medical testing lab on a chip hardware manufacturing can be pretty lucrative until the sec shuts you down

<comment><USER18> You talking about Theranos ? Never knew what they were doing was Lab-on-a- Chip.</comment></comment>


Disney CEO Bob Iger's Empire of Tech - <AUTHOR> http://fortune.com/2014/12/29/disney-ceo-bob-iger-empire-of-tech <comment><USER2> The more I read about Bob Iger, the more I like him. This guy knows exactly how to critique the company from the inside and has the balls to just execute on a solution that makes sense rather than tip-toeing around focus groups. His agility has been impressive, especially for a near-100 year old behemoth like Disney.

</comment><comment><USER3> Do articles linked to Fortune start half-way down the article automatically for anybody else? Seems to happen with some sites that use infinite scrolling large content pages.

</comment><comment><USER4> > Not all of Iger's bets have reaped rewards—it took the company's gaming > division five years to get out of the red

Why has Disney struggled financially with games, even with the "CTO" Bob Iger? I ask because it's the only product Disney makes that is software in the strict sense, and I wonder why they can't make it work.

Disney Infinity helped get its interactive unit out of the red. That makes a lot of sense. For a game that apes Skylanders in many ways, it leverages Disney's character and brand portfolio in a way that can't be copied.

Its other successes are naked clones. Tsum Tsum and Frozen Free Fall are canonical tired as far as genres go. They too use Disney properties, but in the most straightforward and obvious ways possible.

I liked Where's My Water. It developed an original character too. I think it was financially viable for Disney, but I can't find conclusive evidence that it was.

It's definitely possible to develop a financially viable original title by handing big capital to great talent. The best parts of Infinity Ward left to found Respawn (Titanfall), and independent Bungie is not doing too bad with Destiny.

The real question is, why don't tentpole video game developers want to work with Disney? Why didn't Disney scoop up publishing contracts for Titanfall or Destiny? Why can't it find the J.J. Abrams of video gaming and put 'em in charge of Star Wars the video game?

The answer has to be more complicated than, "The games are violent." Like Star Wars isn't violent.

My feeling is, it's not about being technologically savvy. Bob Iger, I'm sure, understands that what Pixar does requires a lot of software.

I think they just don't play games, and don't yet get what makes them entertaining. I will share a little anecdote with you: A Disney executive, interviewing at a large, passionately successful video game company, scoffed at the quip that he didn't play the game. He argued that people who didn't play the game had something to contribute to the development of its business. Suffice it to say, he was wrong, and they didn't hire him.

Sure they play Skylanders and Candy Crush and get how to clone them. But they just don't play Modern Warfare, League of Legends or Starcraft. So they should stop expecting to make games that have as much mindshare as these huge titles.

It's going to cost them a lot of money before they realize that their tastes are basically the same as young children and low tech people when it comes to games. It's why big game developers will partner with Activision and Microsoft, and why Disney will not get the respect it could easily earn.

<comment><USER5> Speaking as a former game reviewer, I think Disney's inability to enter the game market with quantifiable success is that they're still being reactionary.

Games are stories, regardless of how you look at them. They're either stories you're told or stories you tell. League of Legends is a story you tell so it's the originality of the game that makes it. Starcraft is a story you're told, and truth be told in the intervening years between the original and its modern iteration the gameplay is stale and generic it's been cloned a dozen times, but the modern iterations are still fun an playable.

So I think you're right. They just don't play games.

You see a change in Disney's movies when John Lasseter takes over. He took over prior to Meet the Robinsons release, and at his behest they scrapped over 60% of the movie. It was the first thing Disney had put out in a long time that was actually a good story, and it did it by shirking conventions. He scrapped what would become Bolt entirely. From then on everything just got better.

Why? Because Lasseter loves movies, he loves stories.

Square Enix manages to use Disney characters, but they're doing it in a massively unconventional way. So the characters themselves aren't an issue, it's the way they're used in games.

Disney puts out movie tie ins and the only game that was decently received was Epic Mickey and instead of solving its flaws and building on it they tanked it with #2 by falling into sequel mania.

Honestly Disney needs to find out what story it wants to tell and tell it through a game. They've got enough franchises under their belt that they could find a story that people want to hear - they've been doing it all the time with movies lately.

Disney isn't going to be original in game play. It's too big, it's too slow. The only way it can be successful is to tell a good story, and it just doesn't try to put even it's B-material into its games.

Starcraft 2 continued a great story. People don't play through a dozen near identical levels for nothing. They do it because it unlocks more story. It worked for Brood War. It worked for Mass Effect.

Fallout 1 and 2 are still the best games in the entire franchise because of how tight their story was. To highlight the power of a good story, TES fans still frequently call Morrowind the best game in the series. Most of the talk over Skyrim is good graphics and gameplay mechanics - lots of which were inherited from mods from Morrowind.</comment></comment>


2007: The Implicit Web - <AUTHOR> http://avc.blogs.com/a_vc/2006/12/2007_the_implic.html <comment><USER2> I like how he uses 'Web 2.0' without getting all frustrated about the term as many do. See: <http://blog.nanobeepers.com/2007/02/01/whats-with-the- web-20-angst/>

Also, very interesting discussion on the use of 'implicit' user data. Amazon is probably the leader at this - their recommendations for me are so accurate it's spooky.

</comment><comment><USER3> Josh is brilliant. If you ever get a chance to talk or work with him be prepared to drink from a firehose.

</comment><comment><AUTHOR> This is a great blog post, which discusses the evolution of web 2.0 and beyond.</comment>


Call ObjectiveC methods from Javascript in a UIWebView - <AUTHOR> http://maniacdev.com/2011/09/open-source-library-for-easily-communicating-with-objective-c-code-from-a-uiwebview/

<comment><USER2> Very similar code exists within PhoneGap. In addition to bi-directional message passing, PhoneGap also provides: 1.) JSON serialization/deserialization, 2.) callback tracking, and 3.) white-listing of domains that may pass messages to the host.

<https://github.com/phonegap/phonegap-iphone>

</comment><comment><USER3> Here's the relevant part:

[https://github.com/marcuswestin/WebViewJavascriptBridge/blob...](https://github.com/marcuswestin/WebViewJavascriptBridge/blob/master/WebViewJavascriptBridge/Classes/WebViewJavascriptBridge.m)

</comment><comment><USER3> Any thoughts on using local XMLHttpRequest instead of the more usual frame reload method?

<comment><USER4> Great idea! Sounds cleaner but I think it'd be more code injected into the webview than the current approach.</comment></comment>


Ask HN: How much Chinese is required to read Tech Documentation? - <AUTHOR> There's been an explosion of Chinese engineers entering in the last few years - more noticeably for me due to Vuejs. They provide Chinese documentations and I'm also seeing many third party github components being created only written in chinese.
A long assumption but I'm thinking it might be beneficial for me to learn some chinese to be able to take advantage of projects deriving from the Chinese community.
Anyone know how much Chinese I'll need to learn to be able to read tech documentations? 1 year? 5 years? <comment><USER2> You're better off delving deeper into learning the actual framework instead of studying a foreign language.

Something similar happened with NGINX a few years ago. Almost all documentation was in Russian. But once it grew in popularity a few people just translated the documentation over to English.

If you had studied Russian just to understand NGINX better, it would've been a huge waste of time, and my guess is that it'll be similar in this situation.

The caveat, of course, is if you want to study Chinese for other personal reasons. In that case, by all means.

<comment><USER3> Totally agree.

There is another barrier, the technical terms. Even if you know every character used to compose terms like linked list, stack, etc. when they are put together, you will have a hard time to figure them out, unless you have something like a Chinese-English Dictionary of Computer Science to look up.</comment></comment>


Telegram: Video Calls and Seven Years - <AUTHOR> https://telegram.org/blog/video-calls <comment><USER2> Telegram truly has the best UX of all messengers out there; it's a shame I can't switch to it because they don't do E2EE by default. If I'm going to be switching to a new app it will have to be a Matrix ([https://matrix.org/](https://matrix.org/)) client. Anyone want to work on a Telegram fork that runs on Matrix?

<comment><USER3> What I don't understand is why the free software movement so often reinvents the wheel, Telegram releases all the code to their UI but any new security focused chat app always starts from the ground up.

<comment><USER2> I think developers prefer writing code they understand over trying to understand someone else's code. I've taken a look at Telegram's codebase, and replacing the Telegram API with the Matrix API is way harder than it sounds. Telegram wasn't developed with this flexibility in mind, and the Matrix SDK has its own way of doing things.

<comment><USER4> This. I often end up writing my own libraries because of this reason. Kinda hard to get into other people's minds...

</comment></comment></comment></comment><comment><USER5> It has been my messenger of choice for about 6 of these 7 years and watching its evolution has been pretty cool.

It's grown to be a much wider social platform now than it used to be, but it hasn't distracted from personal chats much. That's pretty amazing! It hasn't even been destroyed by commercial interests yet and my feeling says that Durov will approach commercialization carefully, which gives me hope.

<comment><USER6> It's definitely one of the nicest IM services around. Well built apps with useful features that look good and are available everywhere. I was never able to get enough of my friend group on it to really make use of it, though.

</comment></comment><comment><USER7> >Our apps for Android and iOS have reproducible builds, so anyone can verify encryption and confirm that their app uses the exact same open source code that we publish with each update.

This is impressive. I wish also chats _on desktop_ would be end to end encrypted...

<comment><USER8> And lose message history of messages sent on phone? That would be terrible

<comment><USER9> No you just share the private key between your mobile and desktop.

<comment><USER4> Or encrypt the private key by a pin

<comment><USER9> That seems very easy to bruteforce.

<comment><USER4> What alternative is there? Its also very easy to loose keys, if your target audience is not hackernews...

</comment></comment></comment></comment></comment></comment><comment><USER10> When it comes to privacy telegram is not great. The privacy is handled by splitting the cryptographic key in to multiple segments and storing it in servers located at different countries making it harder for any single government to force to provide without involving legal process that has to go- through multiple countries. This sounds not that bad in theory but in practice any developer knows you need the entire key on a single machine to process the data which means every server that processes the data has the entire key and any government can intervene and spy on the message.

</comment><comment><USER11> Finally, been waiting on this for a while. Will be much easier to convince family and friends to make the switch from WhatsApp. Interesting that the recent Apple drama is making its way into the update as well. I really doubt it's Apple being petty after Telegram's CEO attacked them but, considering yesterday's Epic vs Apple debacle, I wouldn't be surprised if this escalates.

<comment><USER12> > Interesting that the recent Apple drama is making its way into the update as > well

Where? I didn't see it. (Is it possible that the blog post was edited after the fact?)

<comment><USER5> They didn't wait for Apple's approval of the iOS app before releasing the Android app this time.

</comment></comment></comment><comment><USER13> > It is also possible to independently verify that Telegram apps available on > Google Play and App Store are built using the same code that we publish on > GitHub.

How does that work exactly? Could anyone give me the steps perhaps? I am honestly curious as to how I can be certain of this.

<comment><USER6> The steps are listed at [https://core.telegram.org/reproducible- builds](https://core.telegram.org/reproducible-builds).

<comment><USER14> Why does apple require encryption for free apps.

At least make it optional.

</comment></comment></comment><comment><USER15> Now if only they had a bot API which wasn't so restrictive...

<comment><USER14> Running a user bot isn't that difficult

</comment></comment><comment><USER16> Is telegram considered trustworthy now?

<comment><USER17> I feel like IM is a pick-your-poison kind of deal. Signal is technically superior, but it's UX is laughably bad. Facebook, Microsoft, Google and Apple are cartoonishly evil corporations. Telegram is a bit rough in places, but has to me been the least offensive of the bunch.

<comment><USER18> Its hands down the smoothest, fastest and most reliable messenger out there. And I don't have to ever worry about losing messages between devices or taking backups.

</comment></comment></comment><comment><USER19> You can tell they had long meetings about the eggplant and peach animations.</comment>


Your Opinion on Groovy on Grails? - <AUTHOR>

<comment><USER2> I've never used Grails, but I've used JBoss Seam in a couple of projects and I love it!

<http://labs.jboss.com/portal/jbossseam/>

<comment><AUTHOR> Thanks for your input, but that's not really the same.

</comment></comment><comment><AUTHOR> I think I am encountering some bug - it says "5 comments" in the title but only 3 are shown.

</comment><comment><AUTHOR> Anybody using it and has some tips & pointers?</comment>


Boeing's Fixes to 737 Max Not Likely to Get FAA Approval Until February - <AUTHOR> https://www.wsj.com/articles/boeings-fixes-to-737-max-not-likely-to-get-faa-approval-until-february-11576181915 <comment><USER2> Would anyone fly in a 737 max even after it gets approval?</comment>