Show HN: Multiplayer Backgammon Game Written in JavaScript - <AUTHOR> https://backgammonjs.herokuapp.com/ <comment><USER2> Nice work. I've played the Bulgarian games before but I always forget the rules for the last 2. Generally speaking for an international audience I'd suggest defaulting to standard international rules. This is basically the same as your "General" except you'll need to add a doubling cube and a few other little things (ie Jacoby rule). The game is really incomplete without the cube.

For a truly multiplayer experience, you can implement chouette rules. This is the most common way to play casually in bars/clubs (at least in North America), and is IMO pretty much the most fun you can possibly have at a board game. :)

To solve the problem of waiting around for an opponent, you can hook up an AI such as GNU BG. Backgammon has a long tradition of AI development going back at least to Hans Berliner's BKG program in the 70s.

Cheers!

<comment><AUTHOR> Thanks!

Will change the default to classic international rule and keep variants as a second option (eg. under some kind of a country flag).

Have not yet thought on rules with more than two players, but I will consider it.

Having an AI will be nice, but I do not have an idea yet how to integrate it safely (to avoid cheating) in the client. Did not want to add AI in the server to avoid increase in server load/costs.

By the way rules written by other players/developers, with variants of them as known in their country, are welcome. I will consider adding those rules to the official demo.

</comment></comment><comment><USER3> Some sort of a timeout or feedback would be great I guess. I'm waiting for my opponent for well over a minute now, and I guess they're gone. (But are they? What if I close this now and they win!)

<comment><AUTHOR> Agreed, a timeout is a must. Thanks for feedback!

</comment></comment><comment><USER4> I waited for any game to start and it was Gul bara game, which I didn't know the rules of. I never saw that many doublets in a game.

I also agree that it's tedious to wait for opponents and I think it would be great to hear a sound played when a game starts. I suspect some moves aren't transmitted correctly, but I'm not certain.

Is there a way to select the order of dices in the general rule? Sometimes you roll 5-4 and 4-5 would be a good move with a specific piece but 5-4 is blocked.

<comment><AUTHOR> Thanks for feedback!

I should add a link to the rules for the current game. Playing a sound is a good idea.

The server has few players for now, hence the waiting time. But you can always invite a friend.

I will advertise it more as soon as it gets highly available/scalable.

You can change the order of dice by clicking on the dice. Another way is to use left/right mouse button. Left button plays the larger die, right button plays the smaller die.

I guess a short help page will be useful.

<comment><USER4> Another small UI glitch: as a black player you don't know when it's your first turn. You see the dice, but it's not clear that you have to wait for white to make a move.

</comment></comment></comment><comment><USER5> Nice work!

Suggestions:

\- Allow choosing length of match

\- Auto-play (any/all) forced moves (perhaps still requiring the forced player click Confirm when there are 0 or 1 legal moves)

Not sure if you are or aren't (didn't see it in my game): show doubling cube in neutral position at start, and possession/face when offered to or owned by one player

Show quick "emoji" style reactions so you can send e.g. a :P when someone dances on the bar several times in a row?

<comment><AUTHOR> Thank you!

Choosing match length seems to be a must have.

I will probably postpone auto-play for now. I want the game to be as close as possible to playing with a friend on a real board. Automation would spoil that a bit.

But having emojis goes in todo list.

</comment></comment><comment><USER6> I like it. A couple suggestions:

\- show the opponent's dice roll

\- show pieces taken off the board (or where they will be put).

Good work!

<comment><AUTHOR> Thanks!

Didn't the opponent's dice roll show in your game?

It should be visible for the time before the opponent presses the Confirm button.

I have not decided where to place the pieces that are off the board, without reducing the playable space, but will surely find them a place.

<comment><USER6> What might have happened is the opponent left on their 2nd turn before they rolled they dice. I honestly didn't notice on the first turn. A different option could be showing "waiting for opponent to roll".

I hadn't thought about writing a backgammon game before, and it'd pretty interesting to think about all of the work that is necessary to create something polished. The mechanics of making the core rules would probably be the easier part. Creating a seamless UI/UX to accommodate online players from all over gets complicated pretty fast.

If you're planning on using this as a portfolio piece to impress potential employers, I recommend writing down some of the things you could have done, but chose not to implement... "I thought about adding drag and drop functionality, but I kept it simple for the demo, because PC users did X, touchscreen users did Y, and I would have needed to do A, B, and C to do it well, but didn't have time to work on it."

</comment></comment></comment><comment><USER7> You should have option to play ai</comment>


Scientist 'Dream Team' Agrees Huge Asteroid Killed Dinosaurs - <AUTHOR> http://www.aolnews.com/science/article/scientists-reaffirm-asteroid-theory-in-dinosaur-deaths/19383600

<comment><USER2> So what's the point of going green

<comment><USER3> Maybe it'd be nice if millions more people world-wide did not endures existences of starvation, deprivation, etc. during the the X-hundred or X-thousand years until our species bends over and kisses its legacy good-bye?

<comment><USER2> haha i totally agree.

</comment></comment></comment><comment><USER4> aol? ...talking about extinction? ...Joke-o-meter overloading</comment>


Tell HN: Maker Faire Bay Area 2010  - <AUTHOR> http://makerfaire.com/bayarea/2010/

<comment><USER2> Please be on the lookout for my buddy's booth:

<http://www.pearlbiotech.com/>

Find Tito--he will answer all your questions about hacking your genome!

</comment><comment><USER3> Anybots is going to be there. Come try driving a robot. ;)

<comment><AUTHOR> It would be cool if people could rent them remotely and attend the fair virtually.

</comment></comment><comment><USER4> I'll be showing my exercise bike connected to an xbox. Come say hi.

<comment><USER5> Definitely check out Pedal360, definitely one of the coolest/most practical exhibits at the fair.

</comment></comment><comment><USER6> I went last year and plan to go again on Sunday. It was incredible. I highly recommend that all HN readers in the bay area attend.

</comment><comment><USER7> And keep an eye out for Rob Cockerham trying to make himself a celebrity with Paparazzi Contest II - [http://www.cockeyed.com/personal/maker_paparazzi/maker_papar...](http://www.cockeyed.com/personal/maker_paparazzi/maker_paparazzi.php)

</comment><comment><USER8> I will be coming! The trade show relevant to my startup was in aneheim earlier this week, so we'll be going to Maker Faire. No Booth, but ill be wandering around. If anyone cares to meet up, my info is all in my profile.</comment>


When a Player Gets the Game - <AUTHOR> https://www.mcdbooks.com/electric_eel/when-a-player-gets-the-game <comment><USER2> I've never heard of 80 Days, but man that is a lot of awards. IGF winner, BAFTA nominations, I didn't even know Time had a "game of the year."

<comment><USER3> Yes, it is a quite good, somewhat dynamic choose your own adventure that works well on touchscreen devices.</comment></comment>


How to prevent cryptographic pitfalls by design [video] - <AUTHOR> https://fosdem.org/2019/schedule/event/crypto_pitfalls/ <comment><USER2> (I apologize if I'll be glossing over something; I've just read the slides and haven't gotten around to the presentation yet. These issues might actually be addressed in the talk.)

Some of the problems that invariably crops up with libraries that hide implementation details:

a. If the algorithms ever need swapping, you might not even find out because your code compiles cleanly (assuming you don't obsessively read changelogs for libraries); only when you go live after the update you see that suddenly all data is garbled and spend a few hours debugging in your own code. How do you replace what's inside something like _crypto_box_ while also breaking existing implementations so that they don't even build?

b. Interoperability across programming languages becomes difficult. AES-256-CTR with HMAC-SHA256 authentication is something you can scramble to get algorithms together because you know them. But _crypto_box_ is just opaque; you'll be stuck reading source code and shoddily porting it to $language_that_you_must_use because policy or technical requirements or whatever dictate you must not use native extensions to bind to your library of choice. If your library of choice is also not written in C (though libsodium, which is what the presented library wraps, _is_ ), but rather in Java or some other even higher level language, you'll be completely locked in a monoculture and dependent on that particular library.

They mean well, but the interoperability problem seems to a very unsolved problem. The modern non-FIPS world appears to slowly be gravitating towards de-facto standardizing libsodium, though.

<comment><USER3> Problem (a) is pretty silly. If you use a library with a vulnerability in it, you need to be prepared to upgrade the library. How many people using (for instance) Markdown libraries understand how their library handles memory management or recursion? Meanwhile, the alternative in cryptography is hand- hacked direct-to-primitives coding that is likely to create _more_ bugs. Further, the primitives that are most likely to "need swapping" aren't algorithms (AES and SHA2 may never fall, just like 3DES, but for its block size, still hasn't) but constructions, which are hidden in hand-rolled crypto code.

If you "scramble to get algorithms together because you know them" and use AES-256-CTR with HMAC-SHA256, in my experience auditing crypto code, you're very likely to have scrambled together at leave two game-over crypto flaws that libraries like Tink and libsodium avoid for you.

<comment><USER4> While I agree with your second paragraph, I don't think you need it to justify the position that

        crypto.secret_box.encrypt

is almost always better to use than a combination of

        crypto.primitives.aes.ctr

and

        crypto.primitives.hmac.sha256

Aside from the obvious argument that rolling your own cryptography is dangerous, at a more abstract level you just generally don't want to work with raw primitives in _most_ types of software. Specialization isn't just the lifeblood of the economy, it's also the way software productivity works. If your core competency isn't _X_ , why should you be re-implementing _X_ using its raw primitives? You should _generally_ be importing known-good library implementations if possible. Even in adversarial scenarios (like cryptography) this principle remains the same.

Given that I don't really understand the parent commenter's point. You touched on this a little with your example of a Markdown library - as software engineers we use things which are substantially black boxes all the time. It seems strange to me that you'd want to do surgery on the raw primitives of a library instead of updating it to suit your needs. In this case, that means just use a reputable crypto library and update it when there's a reported security vulnerability.

You don't even need to buy into, "Don't roll your own crypto" to lean into this.

<comment><USER3> I took the original argument to be "if you use secret_box, you don't even know that you're using Salsa20, so if a cryptanalysis of Salsa20 is published, you might not realize and know to fix that problem".

Which is, I think, a silly argument; if someone finds a stack overflow in a Markdown library, I still need the maintainers of that library to tell me about it --- nobody is going to tell me about it directly. I have _more_ information to act on in the secret_box scenario, not less.

But I was a little confused by the argument too, so maybe I'm not making that much sense either.

</comment></comment></comment></comment><comment><USER5> Helping developers avoid the pitfalls of cryptography is the main problem we at Tozny ([http://tozny.com](http://tozny.com)) are trying to solve.

We found that there is so much mis-information available online it's too easy to shoot yourself in the foot with cryptography so we're trying to make tools that make strong crypto easy to implement.

</comment><comment><USER6> Cryptography is so very easy to get wrong. This is the kind of thing that should be outsourced to someone who only does this and is known to do it well and with known and trusted algorithms.

<comment><USER7> Designing cryptographic libraries should definitely be left to cryptographers. However, the information here also seems pretty useful for the programmers using those libraries.

</comment></comment><comment><USER8> Yeah most programmers should not code "AES" or other algo. The should be an option to use the current best.

<comment><USER7> This is not about coding AES, it's about designing APIs for cryptographic libraries. If you're a programmer using those APIs, it would be helpful to know whether they're well-designed, and what pitfalls might be there if they're not.

<comment><USER9> I often quote Avi Douglen here:

"Security at the expense of usability, comes at the expense of security."

Misuse-resistant cryptography API design is a particular hobby horse of mine. (My other hobby horse is software update security.)

A lot of the arguments in favor of cipher agility (a.k.a. runtime negotiation and risk of downgrade attacks) come from well-intended people who haven't internalized the past few decades of real world cryptographic failures.

I liken it to building a brick wall that's expected to hold up a roof.

Would you rather have a wall made by carefully placing bricks and mortar in place _once_ , and if need be, rebuild the brick wall later with better materials?

Or would a lattice of mortar that lets you hot-swap bricks as needed be a preferable design?

The first one is _versioned protocols_. The latter is what keeps people typing AES into their code.</comment></comment></comment>


Ask HN: How to get started with android game development? - <AUTHOR>

I have done java and a bit of android but now I want to learn on how to make simple games for android. <comment><USER2> <http://www.google.com/search?q=android+game+development>

A ton of links in the first page...</comment>


A Simply Arited Concatenative Language - <AUTHOR> https://suhr.github.io/obsc/ <comment><USER2> > _In our notation, it 's just drop dup (^2) + (^2) - abs. Simple, readable, > beautiful._

Considering how the author is not presenting a language for stack manipulation, but for defining functions of fixed arity, I fail to see how that style is supposed to be simpler or more readable than the usual formulation, in the syntax of your choice, for example: fun x y z -> x^2 + y^2 - abs y

> _programming is finally liberated from von-Neumann style_

No, it's not.

Not until you show me how a sorting algorithm (say) written in that FP/FL (J?)-inspired style is just as readable, but with less potential bugs.

Also, not until you show me how a complex algorithm written in that style can be more easily synthesized to a FPGA or some other non-von Neumann computing platform.

I will agree that ';' is a nice idea, but extraordinary claims require extraordinary evidence.

In particular, the article fails to explain what device is supposed to replace recursion or unbounded iteration, that allow Turing-completeness (and modern software as a consequence) to exist in the first place.

<comment><USER3> The article does not seem to emphasis on that, but in a concatenative language you have "combinators" to achieve looping, recursions, etc. For example, the Joy language has combinator for "applying a function" until a certain condition holds, etc. Also, you have the classics: `map`, `fold`, `filter`, so certain constructions just look like Haskell point-free style.

It seems a bit crazy but you can have a pretty readable program by defining many litle functions with an explicit name.

</comment></comment><comment><USER4> I feel like the syntax could do with bit more explanation. For example in "(* ) + (* )" the use of parenthesis is not explained anywhere as far as I can tell. Also, shouldn't it be "(* ) `+` (* )" instead if "+" is used as an infix function instead of postfix, i.e. so that the expression desugars into "(* ) ; (* ) +"

<comment><USER5> This is likely borrowed from Haskell where functions starting with special characters are treated as infix. Parens and backticks allow for switching between the conventions

        add a b = a + b
        -- these are all the same
        3 + 4
        (+) 3 4
        add 3 4
        3 `add` 4

The article might also make slightly more sense in context, I think it was in part an idea for how to make infix notation more useful in Kitten: [https://github.com/evincarofautumn/kitten/issues/174](https://github.com/evincarofautumn/kitten/issues/174)

<comment><USER6> To some extent, yes, but the article silently switches the meaning of + about halfway through. That's why there's confusion.

</comment></comment></comment><comment><USER7> Since nobody else seems to care, I'll just put this out here: "arited" is really rather weird. I would say "aritied" instead (pronounced "ari-teed", not "ari-tied").

Does anyone know of a parallel construction turning any word ending in "-ity" into a past participle?

<comment><USER8> I would write "aritied." The article also uses the word "simpliest," and there are a few other language oddities.

<comment><USER9> Yeah, and their name on Github is in Russian (sorta like "toasty", as in a small toast) so they're probably just not a native English speaker. I would also write "aritied", and that's what I've been saying when talking about this article.

Speaking of "simpliest" though, even as a native speaker I sometimes use "-lier" and "-liest", but rather to form comparative & superlative adverbs, e.g. "He solved it quicklier than I did".

</comment></comment></comment><comment><USER10> Author's implementation in rust: [https://github.com/suhr/esobsc](https://github.com/suhr/esobsc)

The parser and AST have tests, which clear up some of the syntax confusion, but it doesn't have the function definitions used in the last code example.

<comment><USER11> More details in this lengthy commit message [https://github.com/suhr/esobsc/commit/809241a726f2c97dac90bc...](https://github.com/suhr/esobsc/commit/809241a726f2c97dac90bccf2779b3792c6bc5bf)

</comment></comment><comment><USER6> The main invention here is being able to write a function as drop dup (^2) + (^2) - abs, meaning the same as fn(x,y,z)=>( x * x + y * y - abs(y)).

But, it does not read at all naturally for a concatenative language. The first two atoms (drop, dup) work in the usual fashion (directly and immediately affecting the stack). Then, the (^2) is just a syntactic input for the + after it, which is now an infix operator, also consuming the (^2) after it. But these _still_ don't yet affect the stack, as the - is also consuming atoms and it consumes the final abs. Then, the expression so built is run against the current stack. It gives the impression of elegance and flexibility by throwing away the very thing that makes concatenative languages what they are.

There are better solutions, like using a scratch space (like the return stack, given in another comment) or otherwise explicitly making given atoms input or output from/to a non-default location.

</comment><comment><USER12> <rant>

The "why concatenative programming matters" example is a strawman to begin with. The correct solution in standard Forth is "DUP >R DUP * SWAP * + R> ABS -" not the rot3 garbage they exhibit (yes, I ignored the useless z parameter because it's beyond the idiocy I can deal with).

Same goes for the (ab+cd) example, that simply writes "* >R * R> +".

Two stacks, problem solved. Forth lets you use the return stack for a reason. If you're a chicken, just provide a second user stack and hide the return stack. Problem solved.

But I guess that introducing and writing about the _powerful_ (this word, really, should be treated as an intellectual smell) ";" operator is more fun. The only problem is that this operator actually doesn't work on stacks but arrays. Oops.

But, hey, can have infix notation!

</rant>

<comment><USER13> > The correct solution in standard Forth is "DUP >R DUP * SWAP * + R> ABS -"

I don't think that can be correct. Multiplication is commutative, so SWAP before * doesn't do anything, getting "DUP >R DUP * * + R> ABS -", which means it computes x^2 y for some x and y somewhere along the way.

To compute y^2+x^2-|y| in forth, I would use multiple functions, for example

      : ^2 DUP * ;
      : x^2-|x| DUP ^2 SWAP ABS - ;
      : f x^2-|x| SWAP ^2 + ;

<comment><USER12> I stand corrected, I forgot a DUP:

        DUP >R DUP * SWAP DUP * + R> ABS -

I didn't want to use helper words to allow for a 1:1 comparison.

And I also forgot that standard Forth has TUCK (<=> SWAP OVER), so one can do it without the return stack as well (using helpers this time):

        TUCK ^2 SWAP ^2 + SWAP ABS -

</comment></comment></comment><comment><USER14> Posted 20 days or so ago but did not find many upvotes. My comments on the original post are still relevant:

\-----

1 point by drallison 20 days ago [-]

Interesting but incomplete paper, apparently cited in from Redit although located on github.

Sadly, there is no information about who the author might be. One of the redit comments suggests that the author is gopher9.

The paper does cite as examples several of James Purdy's lanugage experiments. He is evincarofactum@github.

<comment><USER9> As an aside, my name is Jon Purdy, and my username is "evincar of _autumn_ " (here, GitHub, gmail, most places).

<comment><USER14> Sorry Jon, a slip of the keyboarding synapse. Anyone interested in language design should look into Jon's experiments with concatenative languages.

</comment></comment></comment><comment><USER15> I only recently found out about J and had never heard about APL before. Is the dc (predecessor of the bc cli calculator) syntax in the same family here?

</comment><comment> Chiba-City This is lovely. Its treatment of arity reads like an implicit pattern matching against tuples across the operators.</comment>


Attacking Audio reCaptcha using Google's Web Speech API - <AUTHOR> http://www.debasish.in/2014/04/attacking-audio-recaptcha-using-googles.html

<comment><USER2> This is a relevant and very entertaining talk: [http://www.youtube.com/watch?v=rfgGNsPPAfU&feature=player_em...](http://www.youtube.com/watch?v=rfgGNsPPAfU&feature=player_embedded)

<comment><USER3> The "new" version of the audio Captcha mentioned in that video is truly unbelievable. For those that haven't heard it, give it a go here:

[http://www.google.com/recaptcha/learnmore](http://www.google.com/recaptcha/learnmore) (click the small audio icon to the right of the input box)

I turned my volume up pretty high and couldn't understand a single word over all the static in the background and over-distorted foreground audio is unintelligble. Can people actually get that audio captcha right or is that Google trolling people?

</comment></comment><comment><USER4> Using Google's services on themselves? This is awesome and reminds me of the article a short while ago about Google's own OCR beating its (visual) CAPTCHA.

</comment><comment><USER5> This feels like a good time to repost my article on why you should never use a CAPTCHA:

[http://www.onlineaspect.com/2010/07/02/why-you-should- never-...](http://www.onlineaspect.com/2010/07/02/why-you-should-never-use-a- captcha/)</comment>


Progressively Less Progressive - <AUTHOR> https://trib.tv/2016/06/05/progressively-less-progressive/ <comment><USER2> UX people, of everybody, could stop messing with the scrolling behavior.

I'm usually not bothered by it. But an article about UX should not disrupt the main form of interaction readers will have with it. I couldn't scroll at all until I disable JavaScript.

And this time it's for not gain at all. There's no fancy slide deck, no overlays blocking the view, nothing.

<comment><USER3> I don't see any interference with the scrolling.

</comment></comment><comment><USER4> Agree with the authors points except regarding use of the amp elements. If the author wanted the benefits of the amp-img element and to include outside scripts they can. Google will not index the page as a valid amp page but the elements will still function the same.

</comment><comment><USER5> Does anyone have specifics (code) for this just-in-time loading of images in AMP?

I see something related to this here [https://www.ampproject.org/docs/get_started/technical_overvi...](https://www.ampproject.org/docs/get_started/technical_overview.html#prioritize- resource-loading) but do not know enough about AMP. Is an AMP an app? A js thin? An android specific js thing or what? A mobile chrome only extension?

Whatever it is, I'd be curious to see the image loading code if it is open source somewhere.

<comment><USER5> Okay I found it, though it is quite complicated logic: [https://github.com/ampproject/amphtml/blob/34b74935bdb0da9f3...](https://github.com/ampproject/amphtml/blob/34b74935bdb0da9f39a01c018235f07ceacf4e27/src/base- element.js#L17) also [https://github.com/ampproject/amphtml/blob/34b74935bdb0da9f3...](https://github.com/ampproject/amphtml/blob/34b74935bdb0da9f39a01c018235f07ceacf4e27/src/service/resources- impl.js#L1288)

</comment></comment><comment><USER6> The "What can Google do?" is all valid criticism.

</comment><comment><USER7> So is this laziness on developers' part? Or management explicitly mandating?</comment>


Ignore the competition - <AUTHOR> http://www.nivi.com/blog/article/competition If you want to be #1, ignore the competition. <comment><USER2> He's wrong. You have to pay attention to competitors because (a) so many people will ask why you're better, (b) you may be able to get new ideas from them, and (c) even a lame competitor can motivate you to work harder.

Getting new ideas doesn't just mean getting ideas to copy. If the competition is really lame, studying them can be a way to learn what's good about what you're doing. Often you're doing something right unconsciously, and don't even realize it till you see someone not doing it.

What you don't want to do is change your direction to do something just because competitors are.

<comment><USER3> Hola Paul, who is wrong?

Me or the CEO of TellMe? :-)

<comment><USER4> PG and nivi have two ends of the stick.

Think about the competition when talking to your customers, not when talking to yourselves. Don't anthropomorphize the problem. Focus on the problem space, not the people that populate it.

</comment></comment></comment><comment><USER5> He's quoting _Netscape_ about the virtues of ignoring the competition. Netscape failed to pay enough attention to what the competition was doing. Where are they now?</comment>


Nissan's self-parking chairs - <AUTHOR> http://www.engadget.com/2016/02/15/nissan-intelligent-parking-chair-stunt/ <comment><USER2> Not long ago I saw this [http://imgur.com/gallery/dVBj3#2](http://imgur.com/gallery/dVBj3#2) (2nd picture from the top). It felt quite zen. The article video is similarly zen. Self organizing furniture / space feels valuable ..

</comment><comment><USER3> What if you're in the chair? "Get back to work!" _claps_

<comment><USER4> Amusing as it may be I thought of this as well, as I'm sure did the engineers. My guess is that if there is weight in the seat the chair will not move.

<comment><USER3> Yeah, I would assumed that is the case as well :)

</comment></comment></comment><comment><USER5> I'd like to see a bunch of these chairs play a game of "musical table", around a series of tables of decreasing size.

<comment><USER6> This sounds like an idea for a startup

<comment><USER7> As well as the plot of the Hunger Games.

</comment></comment></comment><comment><USER8> I'm just imagining what would happen after a wildly successful presentation from which much applause ensues.

</comment><comment><USER9> Just imagine the fun you could have hacking those.

<comment><USER4> IoT

<comment><USER10> All kidding about killer chairs aside, hacked self-parking chairs could potentially convoy over to a security door and pop it open, leading to a real robbery or industial espionage, or any number of other funny or embarrassing scenarios.

</comment></comment></comment><comment><USER11> Self returning super market trolleys!

This technology could be used for those pesky shopping trolleys that left in various part of car parks.

</comment><comment><USER12> I wonder if this is just a PR stunt for advertising or if they actually use them. Two issue that come to mind is do they automatically go to charging stations at night and do they work on all surfaces?

</comment><comment><USER13> As creepy as hell. I'd rather not leave such a chair.

<comment><USER14> What about : chair that takes you to the kitchen and brings you back ?

<comment><USER15> ... and also vacuums the floor along the way ...

<comment><USER16> ... and has USB charging ports built-in (via Inductive charging with the floor?)</comment></comment></comment></comment>


Cisco 'secured visas for foreign workers instead of hiring US citizens': report - <AUTHOR> https://www.mercurynews.com/2018/08/21/h-1b-visa-reliant-cisco-secured-visas-for-foreign-workers-instead-of-hiring-u-s-citizens-report <comment><USER2> Securing visas for (and hiring) foreign workers instead of citizens, in itself, is not criminal or wrong -- and absolutely the thing to do when the foreign employees bring skills not available locally.

The problem is when this process is used to save on salaries, favoring foreigners over locals on the basis of being able to pay foreigners less only. The article alleges (without evidence!†) that this is what happened.

Better headline: Cisco pays visa-holding employees less.

This proposed headline, IMO, is more likely to evoke the rational response (Cisco must pay its visa-holding employees a higher salary), rather than the irrational one (dey turk ur jerbs). Perhaps that's why it was _not_ used.

† An average salary of $130K cited in the article matches the average salary of a good software engineer in the area. More needs to be said for the statement against Cisco to have any merit, in my opinion.

<comment><USER3> Ex employee of 5 years here. It was open secret that the system was being abused.

What they would do is post a notice of intent to hire an H1B by posting the job listing in break rooms along with requirements that were clearly senior level and included a salary range for the job drastically below market average. No self respecting local would even bother applying. That's how they got away with claiming they couldn't find good local talent. They have no interest in competing in the local market.

<comment><USER4> Almost every company uses tactics like these. And for good reason. Most factors that actually matters in hiring (GPA, college you got the degree from, caliber of your prior companies and work experience, interview performance, general intellectual & problem solving skills) are all banned from consideration when explaining why you didn't hire a local. And once you water down the job-requirements to exclude all of the above, if even one "qualified" person applies to that job, you're hosed. Dysfunctional laws invite creative workarounds.

<comment><USER5> Maybe they should have to make a reasonable effort to train someone before hiring from overseas.

<comment><USER6> Maybe they should just pay the correct amount for the position, according to the job requirements?

<comment><USER7> Obviously, they already do. The company is willing to pay this amount and there are enough people willing and able to work for this amount, hence the amount is correct.

</comment></comment></comment></comment></comment></comment><comment><USER8> My feeling is that these jobs should be given to US college grads first. Let them grow into the roles. Why are we letting foreigners get hired into these roles instead? Let the college grad learn on the job, instead of the external candidate.

I have noticed that they pay less for h1b workers, and this is not only at Cisco, basically everywhere I have worked.

I've also seen the companies write job descriptions that only fit the h1b worker so they can help them get a green card. It's sad.

Finally, I believe that companies have too much power over a h1b worker. If they fire them, they only have a month to find a new job and then they have to fly home. It's bad on all sides.

<comment><USER9> As an employer, if you had to choose between two candidates, one of whom was harder working, much more likely to stay long term, had more experience, and was cheaper, which one would you choose?

Some of those points you can't do much about, but others are fundamentally caused by the H-1B restrictions on employees. If they were relaxed it would make the playing field a lot more even, and stop companies from abusing the program to get cheap labor.

</comment></comment><comment><USER10> I'm curious how this is possible considering a certified Labor Condition Application is a requirement of, and must be submitted with, an H-1B petition. An employer essentially attests to various posting requirements, and that the wage (ranges) _at least_ matches the average for the same job title and seniority in a specific area, among other things. The wages listed in the LCA have to be backed by wage data from for instance [http://www.flcdatacenter.com](http://www.flcdatacenter.com).

Seems like the company would have to either misrepresent the job requirements/responsibilities/wage level (seniority).. Or perhaps they'd fake a survey of local wages rather than using the "official" statistics?

Otherwise I don't think the Department of Labor would/should certify an LCA with a wage way below market for the position. If they do, though, perhaps that's where the issue can and should be fixed?

In practice this also means that employers need to file an amended H-1B petition with a newly certified LCA when an H-1B employee moves to a new area code. For instance, if you move a H-1B software engineer from Denver to San Francisco you'll likely have to pay the employee more.

The article does point out that the issue was discovered by the Labor Department (rather than for instance the USCIS, who's responsible for processing the H-1B petition itself), so perhaps that indicates a failure to comply with LCA requirements?

<comment><USER11> Because Cisco is "underpaying" H1 workers is a myth that a lot of HN posters like to believe. Here's the data

[https://h1bdata.info/index.php?em=Cisco+Systems+Inc&job=Soft...](https://h1bdata.info/index.php?em=Cisco+Systems+Inc&job=Software+Engineer&city=SAN+JOSE&year=All+Years)

Cisco median pay in San Jose is $122k. This is before bonus and RSU as DOL doesn't accept those as salary. So basically median pay is around $150K

<comment><USER10> _> Cisco median pay in San Jose is $122k._

Yes that seems to be pretty close to the mean wage in San Jose for a likely "Software Engineer" job code: [http://www.flcdatacenter.com/OesQuickResults.aspx?area=41940...](http://www.flcdatacenter.com/OesQuickResults.aspx?area=41940&code=15-1132&year=19&source=1) Cisco's (posted) wages span the different levels of that job description pretty well as far as I can tell.

However it's probably important to note that LCA data (e.g. the data on h1bdata.info) doesn't actually say anything about how much Cisco's paying. Those are just the wages Cisco has submitted in LCAs, but I don't think there's any way to verify that an LCA is connected to and used for an approved H-1B petition and actual employment of a foreign worker.

 _> Because Cisco is "underpaying" H1 workers is a myth that a lot of HN posters like to believe_

Not sure about HN reader bias (*see edit below), but in this case the Labor Department clearly found some wrongdoing on Cisco's part. Would be interesting to know what that is? Perhaps Cisco is filing all these LCAs to signal that's they're employing workers in all wage levels, but only use the certified LCAs with the lower wages when submitting H-1B petitions?

Edit: OK, I'll admit that I do actually know about HN bias a few years back. That was abundantly clear from the shitshow that was the HN discussion about pg's "Let the Other 95% of Great Programmers In": [https://news.ycombinator.com/item?id=8799572](https://news.ycombinator.com/item?id=8799572)

<comment><USER11> You could potentially argue that if Cisco and others didn't hire H1 workers, maybe the median wage in San Jose would be $200k. But that sounds like a little bit of a stretch. I also think about roles like HR and Marketing that do not have much competition from immigrants, but are still very low paying. I bet the median wage of HR role in San Jose will be much lower

<comment><USER10> _> You could potentially argue that if Cisco and others didn't hire H1 workers, maybe the median wage in San Jose would be $200k. But that sounds like a little bit of a stretch._

I agree that would be a stretch especially because the yearly H-1B visa cap is 65,000 across all industries.

In any case, even if wages would be a bit higher without foreign labor, Cisco would probably only be responsible for paying at least the market wage for a position at the time the H-1B petition was filed.

 _> I also think about roles like HR and Marketing that do not have much competition from immigrants_

Just a small nit (because I'm reminded of this every time I enter the US): H-1B is a non-immigrant visa type for temporary workers ;)

</comment></comment></comment></comment></comment><comment><USER12> Many companies do this. I used to work at Apple, where they exploited the hell out of H1-B workers "instead of hiring US citizens". This happens in Sunnyvale, Cupertino, Santa Clara, and San Francisco (and probably many other parts of the country). Much of this takes place in their IT org: "IS&T" as well as the org that contains iTunes: "Apple Media Products" aka "AMP". They prefer to have foreign workers who can be removed and replaced on a whim. It helps create an environment where people are constantly doing "extra" work to show that they should be converted from contractor to employee (which is many contractors dream, bc if they become and H1-B directly at Apple, they'll be free from the tax that the consulting agencies take from their salary, and it also provides mobility if they aren't as beholden to the consulting agency). It also helps keep salaries low.

The IS&T org alone is above 10,000 employees, and there are more contractors than employees by roughly 2.5:1. I would estimate the number of H1B workers in the IS&T org alone would be greater than the total number of H1B workers at Cisco.

Apple uses shell contracting agencies, like Tata, Wipro, Infosys, Accenture, etc, so that they don't have to report the number of H1-B's that they have.

Also, many of these engineers skill level is an insult to the engineering industry. If you couple that with severe communication/ESL problems, it's a wonder why any American engineer would work for Apple in these orgs. It's not that there isn't local talent available. It's that the companies are just too cheap. Nobody working there speaks up to hold them accountable, because they believe they're just lucky to have a job at Apple in the first place.

<comment><USER13> > Also, many of these engineers skill level is an insult to the engineering > industry

This feels like a 'race to the bottom' strategy that will work against the company in the long term.

</comment></comment><comment><USER14> 5 out of the 6 people who interviewed me at Amazon had foreign accents. Do Americans just not go into tech anymore? Are there not enough? Do they ask for too much money? Are they too lazy? Are they not smart enough? I don't understand it. I heard they'd been hiring like crazy - I'm a pretty good software engineer but I didn't get the job. Maybe I told them I want too much money.

No kids, no land, half of my wages go to a foreign landlord who I've never met. America.

<comment><USER15> There are not enough Young Americans anymore. That sound weird but true. Also a college grad fresh out of college can not compete with the huge supply of experienced and better Indian/Chinese/Korean engineers.

<comment><USER14> > Also a college grad fresh out of college can not compete with the huge > supply of experienced and better Indian/Chinese/Korean engineers.

Yes, my skills are diluted when competing against billions of people, rather than millions.

<comment><USER16> Come to the dark side / defense industry. It's only citizens in my office.

</comment></comment></comment></comment><comment><USER17> I think quite a lot of companies are visa reliant. Amazon's H-1B issuance is up 78%.

[https://www.mercurynews.com/2018/08/13/h-1b-use- skyrocketed-...](https://www.mercurynews.com/2018/08/13/h-1b-use-skyrocketed- among-bay-area-tech-giants/)

Meanwhile there are a bunch of northeast restaurants and crab houses who can't get H-2B seasonal workers at all, and very much need them - they're not getting Americans to do that work. [http://www.wboc.com/story/38923157/empty- crab-houses-look-to...](http://www.wboc.com/story/38923157/empty-crab-houses- look-to-fall-season-still-with-no-crab-pickers)

Seems like a disproportionate increase on the one hand, and disproportionate decrease on the other hand.

<comment><USER18> Why does Amazon need to use H1-B when it can open offices overseas and pay workers low wages?

<comment><USER19> Because then they would have to hire Indian management and that would reduce the benefit

<comment><USER20> But Amazon does have offices in India...many of them: [https://www.amazon.jobs/locations/?&continent=asia_pacific&c...](https://www.amazon.jobs/locations/?&continent=asia_pacific&cache)

</comment></comment></comment></comment><comment><USER21> Discussion yesterday on a similar article titled: Cisco Said to Be Cited for Bias Against U.S. Workers (bloomberglaw.com)

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

</comment><comment><USER22> I think this statement is false by nature. If one have secured visa, assuming following law, is something like saying that Cisco have engineers on H1b. Taha, whole world knows that, it's in public domain. This is like saying Google or some other firm is using H1B employee.

<comment><USER23> The usual critique is that these visa programs were designed to allow companies to hire a person from another country in cases where no US citizen was available (usually because of some particular skill or unusual knowledge required for the job). But companies have learned how to game the system and "prove" that there are apparently zero US citizens qualified for software development jobs, which then absolutely requires importing people who will work for a far lower salary and be tied to that specific job as a condition of being allowed in the US.

</comment></comment><comment><USER13> Three scenarios:

1\. The Intentionally Bad: A symptom of Ultra-capitalism, working towards short term financial gains to make the next quarter look good for shareholders.

2\. The Situationally Bad: Employee salaries at current levels are unsustainable and there isn't the interest from locals to work for lower, more sustainable rates.

3\. An Actual Skills Shortage: Can't find suitable people locally, gotta look at the international market.

Secondary Point, a gross paraphrasing:

First they came for manufacturing, and I didn't speak up because I was a software engineer. Then they came for the software engineers...

</comment><comment><USER24> The title does not match the headline on the website. The headline should better reflect the headline: "H-1B visa-reliant Cisco 'secured visas for foreign workers instead of hiring U.S. citizens': report"

Otherwise, it seems obvious that US citizens would not need visas.

<comment><USER25> Thanks. We took a crack at fitting it in 80 chars.

Submitted title was "H-1B visa-reliant Cisco secured visas for foreign workers instead of US citizens"</comment></comment>


You're So Vain, You Probably Think This Smart Mirror Is About You - <AUTHOR> http://www.thememo.com/2017/01/27/simplehuman-wide-view-iot-mirror-internet-of-things-smart-ho <comment><USER2> Does this thing have any features other than some LED lights? I can't seem to find there being many other features than that on the website and the author doesn't seem to discuss any either. £300 seems a little steep for a light-up mirror, hardly a 'smart' mirror.

<comment><AUTHOR> Hi Matt,

It is steep in terms of price - the LED lights are the main party feature... you can also use them as an alarm clock and take pictures on your phone and then match the light tone from where you took them.</comment></comment>


Why does unsupervised deep learning work? - <AUTHOR> https://arxiv.org/abs/1412.6621 <comment><AUTHOR> To summarize:

\+ An autoencoder is a stabilizer of the input f: it maps it to itself.

\+ Imagine that the space of autoencoders forms a group.

\+ Learning stops as soon as a stabilizer is found.

\+ If the search is a Markov chain, the bigger the stabilizer the sooner it will be hit.

\+ The group structure implies that this big stabilizer corresponds to a small orbit.

\+ The orbit of an element x in X is the set of elements x can be moved to by the elements of G (the group).

\+ The stabilizer is the set of group actions that map x to itself.

\+ Blog post explaining fundamentals: [https://gowers.wordpress.com/2011/11/09/group-actions-ii- the...](https://gowers.wordpress.com/2011/11/09/group-actions-ii-the-orbit- stabilizer-theorem/)

\+ Reconstruction in deep NNs is often guided by an l2 distance. If there are competing feature sets, gradient descent moves the configuration to one of the stabilizers.

\- Note. Is this indeed the case? Is there a WTA mechanism at play? Is this preferable?

\- Note. In this view a NN is a MCMC that is stopped prematurely.

\+ The probability that a network "discovers" a stabilizer for the signals f_i depends on the volume of the stabilizer.

\- Would we be able to construct a PDF by running an MCMC till we are in a high probability region? Or does this only work if we're interested in modes?

\+ A neural network operation is not a group action but can be seen as a "shadow group" in some auxiliary space (theorem 4.1, 4.2).

\+ The size of the stabilizers is preserved in the original space (theorem 4.3).

\+ Next levels exhibit again symmetry, generalized edges lead to figures like trapezoids, triangles, and butterflies.

Most important take-away: representations that exhibit a lot of symmetries are the ones that are easiest/fastest to find.

<comment><USER2> This could be the least dismissive and anti-intellectual tl;dr I've seen here.

</comment></comment><comment><USER2> Will deep learning soon make the jump from alchemy to chemistry? Will abstract algebra suddenly attract all the business-brogrammers? Stay tuned!

<comment><USER2> To be clear, this paper looks great. My concern is the poeple pushing deep learning before the theory is worked out—it's an AI winter waiting to happen.</comment></comment>


Steve Jobs in good health following second surgery - report - <AUTHOR> http://www.appleinsider.com/articles/08/07/23/steve_jobs_in_good_health_following_second_surgery_report.html <comment><USER2> The only way Apple can succeed without Jobs, is if they find another super productive sociopath perfectionist with a 1 in a million sense of design. A sugar water executive won't do.

<comment><USER3> What about promoting Jonathan Ive (<http://en.wikipedia.org/wiki/Jonathan_Ive>)? He definitely has good design sense. I don't know about the maniacal sociopath perfectionist bit, though.

<comment><USER4> He's a damn good designer, but he's not a social designer. I figure Apple wants another performer to step up to the lead when Jobs is gone.

Besides, Ive is good exactly where he is. He's doing what he does best. A promotion would make no sense.

<comment><USER5> It could end up being like google where there are 2 or 3 with complementary skills that lead. Ive would probably be one of them.

<comment><USER4> Possibly - but I doubt it. Different mindsets.

Apple is all about focus. They hone in on little bitty details that require a single mind's perfectionist worldview. No compromises. And I can't think of any multi-man team that focuses that much, excepting the Coen brothers.

Google doesn't need airtight focus. Apple does.

</comment></comment></comment></comment></comment><comment><USER6> I find the "Steve's health is a private matter" line a bit odd. According to the SEC it's not a private matter. His health directly impacts $150B in AAPL shares. My health is private because I don't have billions of dollars in other people's money counting on it.

<comment> a-priori What, you think the SEC is going to compell him to publicize his health? It doesn't matter how much stock you own, your health is always a private matter unless you want it to be otherwise.

<comment><USER6> I could definitely see some new rules being put in place sometime in the near future. Steve Jobs is absolutely critical to Apple and a serious disease should be an obvious material disclosure. Not all CEOs are so vital, but Steve Jobs has tens of billions of dollars invested in his well being, it would be borderline fraud to be hiding a career threatening disease. Not to mention an insider trading nightmare.

<comment> a-priori I find the very idea of forced disclosure of medical information downright scary, regardless of who the person is or how vital they are.

<comment><USER6> I agree, but no one is requiring him to be the CEO of a public company. He shouldn't have to post his blood tests on the web, but something like an annual checkup would be reasonable. Athletes do it before they get signed. Politicians do it before running. Pilots have to do it every year. Etc etc. Right now he could be dying (I don't think he is) and the board/investors are just counting on Steve to let them know. That's not cool especially after he showed them he wasn't willing to do that the first time (going on for months with natural treatments and waiting to the last possible time to disclose that he was very seriously ill).

<comment><USER7> That's a pretty interesting idea - public disclosure of health seems very wrong (where every investor could read the doctor's annual report on Jobs's health), but something in the direction of what pilots do seems quite reasonable. The pilot is checked by a doctor, and the only information publicized is a "pass/fail". Any conditions remain between the pilot and the doctor, and in particular any conditions which are irrelevant to the task at hand. (If Jobs has erectile dysfunction, no one would ever know)

Anyhow: The way Apple works today, there is little reason the SEC should be involved. Everybody knows that Jobs kept a life-threatening illness from investors until the last minute, and everybody knows that the company would be in deep shit if he had died. Hence, the risk of him keeping any current serious condition secret is known to investors and the share price reflects this. This is also why a (minor?) issue such as this one causes so much noise. Speculators are speculating.

<comment><USER8> Also, the disease he had wouldn't kill him immediately. Even if he had disclosed earlier, the only purpose it would have served would have been to make the stock more volatile for a longer period of time. It's reasonable to argue that keeping the disease secret was a responsible decision.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> It's unfortunate that, at least as seen from the outside, the outcome (and the shares value) of a company depends on a single man.

There are a few out there like Steve Jobs. They just don't work any further after the first couple million. It's a matter of incentive and motivation.</comment>


How to Start Adventure with Psychedelics - <AUTHOR> http://ptsdengineer.com/2Y8mvYQ <comment><AUTHOR> I am open to answer any questions regarding interactive guide and also my other article. I don't want to spam, moderators please don't block me. I am about awareness and spreading harm reduction message.

<comment><AUTHOR> I have job interview now for remote position, but will be back in an hour or two and happy to answer any questions. I don't advocate drug usage, just sharing my experience. Don't block me.</comment></comment>


Browser ktrace browsing - <AUTHOR> http://www.tedunangst.com/flak/post/browser-ktrace-browsing <comment><USER2> If only those browsers were open source so we can actually check the code...

<comment><USER3> If that's your takeaway from this article, then I got some bad news for you.

This kind of low-level analysis of programs is incredibly useful, it leads to discoveries of aberrant and often unexpected behaviour.. observing the system calls directly and the structures in their final form passed to the kernel.

You cannot gain this level of insight reading the source code alone, and if you have never stepped outside of your compiler before.. well, you should probably find a new hobby.

</comment></comment><comment><USER4>
       Hopefully as a result of this exercise the reader has gained some valuable insight into modern web browser design.

And that about says it all, doesn't it?</comment>


Reform the FISA Court: Privacy Law Should Never Be Reinterpreted in Secret - <AUTHOR> https://www.eff.org/deeplinks/2013/07/fisa-court-has-been-radically-reinterpreting-privacy-law-secret

<comment><USER2> I think they misspelled "abolish". Why would the spying even need a "special Court"? It should go through normal Courts, with normal warrants, because the whole idea of "mass spying" needs to go. Have a special target in mind? That's fine - get a warrant.</comment>


Uber in Talks to Buy Postmates for About $2.6B - <AUTHOR> https://www.wsj.com/articles/uber-in-talks-to-buy-postmates-for-about-2-6-billion-11593487498 <comment><USER2> That's a lotta food deliveries.</comment>


How to break into 100k+ Euro salary in EU/EEA? - <AUTHOR> I have total 7 years of dev+DS experience and have ambitions to break into 100k+ salary range in coming year. Should I must move into management role for this? <comment><USER2> Sorry mate, but if you'd like some good advice from this crowd, you should spend more than 20 seconds to describe your issue and the type of suggestions you are looking for. That's probably lesson #1 in how to get to a 100k salary :)

You don't mention: where you are located; what current job you have; what's DS; what kind of dev work have you done.

Also, any github / stack overflow link, so that we can get a better sense of your skills?

<comment><USER3> I don't think a cursory glance at his/her stack overflow / github profile would be a good indicator of his overall skillset _eyeroll_

</comment></comment><comment><USER4> Plenty of contracting roles paying £500-600/day in London, a few even up to £800 (and 'Head of'/CTO level consulting gigs hovering around £1k/day although very rare as most of those positions are perm).

I know some rather mediocre developers on £550 day rates.

For perm positions, such roles aren't too uncommon for senior/lead level devs in finance, tech consultancy (doing SAP/Salesforce work at some place like Accenture, etc) or the top tech firms - though you'll want to avoid the underpaying Shoreditch start-ups.

Does mean living in London though, where a £100k salary still barely gets you a mortgage for a 3 bed semi. Plus, £100k will soon be worth about €27 but right now it's about 1:1.

<comment><USER5> $500 a day programming?

<comment><USER6> Belgian here. Day rates of 400+ euro are the normal rate over here for java and php developers (even to the lower side) for freelancers. But I should mention that you lose about 55% on taxes of it.

</comment></comment></comment><comment><USER7> I suspect that the only companies with this kind of salary in the EU are Palantir and trading companies (e.g. Jane Street).

So, it kind of depends on what you're willing to do for money. I'm personally not quite enthusiastic at the idea of working for either.

<comment><USER8> Nonsense, most capital cities in the EU have contracting rates at €500+ per day.

</comment></comment><comment><USER9> That level of salary... well I'd say you gotta sell your soul and head off into banking or into a role as consultant somewhere, but no way for ordinary devs, even in Germany. For what it's worth I know directors of 300+ employee companies that don't crack the 100k.

Alternatively try to land a remote job for some Valley-based or other VC backed company, but beware of the tax and legal implications of doing so.

<comment><USER10> Google pays 120k+ for junior developers in Switzerland.

<comment><USER9> Switzerland is not in the EU as OP asked, also you spend a large chunk of the gains over Germany on higher living cost (rent, but also basic stuff like cheeseburgers is up to 3x the price of Germany). Oh and they have both a strict immigration regime as well as a huge right-wing problem, which might be another factor against moving to Switzerland for work.

<comment><USER11> You can pretty much just come to Switzerland and work if you are an EU citizen, so might as well be.

Zurich has probably the best ratio of earning potential to COL in the world (for the average person, not necessarily for software engineers). If you are cheap/thrifty you can even go do your shopping in a neighboring country, since Switzerland is so small.

<comment><AUTHOR> I am Non EEA citizen :( true that Swiss is not immigration friendly.. difficult to find jobs

</comment></comment></comment></comment></comment><comment><USER12> Not sure about a salary, but contracting can comfortably let you earn that based on a daily rate. I've even seen Qlikview or Excel roles at banks in the UK that pay 600+ per day! The trick is to have a niche - look at what's hot in contracting job ads and read up about it. Get confident with the tech/software they ask for and go for a few interviews. Getting a contracting role is generally a lot easier than a permanent position, and in my experience, a contracting job can be just as secure as a perm job.

<comment><USER9> Problem with contracting jobs is, depending on OPs country, they can be risky: health care costs can kill you at that salary rate (eg in Germany with its dual class health care system), contractors may not be eligible for ordinary pensions (and you might be tempted to skip over saving for retirement...) and when you're sick for more than a week (or, can't find a new project soon enough) it can burn through your entire savings sooner than you'd like.

I wouldn't do contracting again without serious money (aka F-U-Money levels, or a full year worth of expenses) in the bank.

<comment><USER13> In the UK, contractors are considered high-risk for mortgages and car loans. Even if you manage to lock-in a mortgage before starting your contractor career, it will make things difficult should you wish to remortgage (which is almost mandatory every 3 to 5 years, these days...).

<comment><USER9> Oh yeah, totally forgot about that one... and in case you end up broke/in debt with contracting, your _personal_ credit score will be screwed up, too.

<comment><USER14> You can get a contractor mortgage based on your day rate in UK.

</comment></comment></comment></comment></comment><comment><USER15> You've asked how you can get 100k EUR per year. But you have not mentioned anything about the value you can offer for this money (unless DS means something there, I have no idea what DS is).

In many companies, low-level managers don't earn that much (especially green ones, which it sounds like you would be during the time frame you specified). Companies wouldn't want to distract all their employees by offering a huge pay bump just to switch fields.

When you ask for money you should first talk about what you can contribute. Which is?

<comment><USER13> _> unless DS means something there_

I suspect it's data-scientist, which is a pretty hot field/buzzword these days.

</comment></comment><comment><USER16> Working remotely for a Silicon Valley company seems the easiest way.

</comment><comment><USER13> Work remotely for silicon valley companies.

<comment><USER17> The time you consider the tax implications you've got to be on a very good US wage to break the 100k level.

<comment><USER18> 100k in your pocket sure, but 100k gross? That's 120k USD, not sky high for the US. And don't taxes net out so you only end up paying the higher of the two rates in most places? In Europe total income taxes are likely higher than US federal income taxes just about everywhere.

</comment></comment></comment><comment><USER19> If the salary is all you are after and do not mind the culture shock, did you look into relocating to Switzerland?

<comment><AUTHOR> I've heard that a lot.. but a) Swiss living cost is expensive b) Difficult to find job as non European

</comment></comment><comment><USER20> Look at contracting and London. There's tons of £500+ per day rates dev contracts around. [https://www.jobserve.com/gb/en/JobSearch.aspx?shid=E1AD4AE0F...](https://www.jobserve.com/gb/en/JobSearch.aspx?shid=E1AD4AE0F7CE019CE8)

<comment><AUTHOR> Thanks.. but not an EU/GB citizen.. won't be possible contracting in U.K.

</comment></comment><comment><USER21> As others said, it is very difficult, a few devs earn that in EU.

Options are :

\- CTO but not early stage

\- freelancing : 7 years of experience could be more than 500€ per day. And if you are in a niche, could be much more

\- Remote for an american company

\- I know some startups in Paris which hire at more than 100k euro but you need to be outstanding.

</comment><comment><USER22> Though technically not salary but revenue freelancing or rather self-employed consulting is a realistic option for reaching that kind of annual income.

One piece of advice though: Don't do it for the money (or the money alone, at least). If you want to run a sustainable consulting practice you have to be passionate about what you're doing and constantly deliver high-quality work.

Confidently marketing your services is essential. If you're good at solving important problems for your customers that should be reflected in your rates. Speaking of which, if possible adopt value-based pricing instead of time- based, i.e. daily or hourly, rates.

</comment><comment><USER23> > Should I must move into management role for this?

Do you want to be a manager? If not, you will be trading a life of misery for a modest pay raise.

</comment><comment><USER24> I know several engineers making over 100k in the EU. You just have to be really good at what you do and pick a company which pays well.

<comment><AUTHOR> What companies would that be? If you could name few..

</comment></comment><comment><USER25> I know banking offers that kind of salary, in the Netherlands. But it's the higher tier of the bucket though.

<comment><AUTHOR> ING/ABN? What kind of roles though? Sr/lead/principal or management role?

<comment><USER25> Both, actually for ING. Though, again, this is achievable for the top tier. Question of scale, more than position.

</comment></comment></comment><comment><USER26> Migrate to Switzerland :) Salaries there are much higher than rest of the Europe but living there is more expensive too.

<comment><USER27> True but you pay basicaly no taxes (especially compared to Germany)

</comment></comment><comment><USER28> > _So what makes you feel you deserve to earn more than 99.93% of the world 's > population?_

Looks like you hit a nerve (perhaps a somewhat guilty one) with some users.

But I was wondering similar - why does the OP feel the need to earn this much money? I suspect psychological rather than financial insecurity, given that they're already likely to be a relatively high earner.

</comment><comment><USER29> Management makes less than devs in my experience.

</comment><comment><USER30> Switzerland.</comment>


People Who Have "Too Many Interests" More Likely to Be Successful - <AUTHOR> https://medium.com/the-mission/modern-polymath-81f882ce52db <comment><USER2> Reminds me of one of my favorite quotes:

"A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects."

-Robert A. Heinlein

<comment><USER3> Thanks for this, I've seen it before but lost the link and was unable to find it.

This is a great to-do list.

</comment></comment><comment><USER4> I am really not that great of a programmer. I am 35 and was not paid to write code until I was 31. Before I learned to code I spent about 10 years in the military, infantry to be specific. The leadership and problem solving skills learned in that domain have served me extremely well in my current position and pushed me into a project lead position before my first year of employment was over.

I have found solving problems outside of your normal problem domain allows you to develop fresh ideas inside of your domain.

<comment><USER5> Nice, I'd like to hear your story if you don't mind sharing. I have a similar background. Infantry for 6 years and switched to programming about two years back.

<comment><USER4> I work with a few as well. I have found a lot of nerds live in the Infantry, most like myself, just needed some direction when we were younger, which Uncle Sam was willing to provide.

</comment></comment></comment><comment><USER6> There is certainly an element of truth, but I feel the life coach formulaic decomposition is heavily at play here. This to me signifies that there are a lot of elements which are necessary to execute this effectively which are either not mentioned, not connected or straight up unknown. The trap is that this is read, a moment of "I am already interested in loads, I am destined to be successful" ...when there is a lot more to the story. Given the value of rarity (as mentioned), even knowing all this is not enough.

<comment><USER7> Hey - I'm the author of the article. You bring up some good points.

I agree that being a world-class polymath is difficult just like being world- class at anything is challenging. Some of the challenges specific to polymaths are:

1\. Not really any formal training in the school system on how to connect disciplines.

2\. Sometimes people consider take polymath to mean not having a core area of expertise. In the article, I make the case that a modern polymath is someone who learns skills across disciplines and combines them in their core area of specialty to create a skill set that puts them in the top of their field.

3\. Many environments are not conducive to being a polymath. So, it's important to find fields, job, companies, etc. that are.

</comment></comment><comment><USER8> I'd like this to be true as someone who is tempermentally a bit of a polymath but professionally I've seen the returns to specialization go up as the entry bar gets higher. Nothing in the article convinces me that what applies to a few rare geniuses whose names we know because they were so exceptional applies to me. Having multiple skills can give you flexibility, but I still think you need many years in one discipline to make it worthwhile. It is a golden age for autodidacts of course so for those willing to put in the time to go deep maybe it will pay off.

<comment><USER7> I'm the author of the article. Good comments. A few quick thoughts.

1\. I agree about being an autodidact. It is hard to imagine someone being a successful polymath without one.

2\. The article isn't making the case that people should avoid specialization. It is making the case that people should learn across disciplines and then apply what they learn in their core area of specialty.

</comment></comment><comment><USER9> As someone with many interests and a mix of work experience. I find this article encouraging.

I've been a quantitative analyst, software engineer, and investment analyst. I have a MEng in Mathematical modelling and a CFA Charterholder.

Sometimes I worry my skill set and past experience are too diverse.

</comment><comment><USER3> I have too many interests, and I recently learned how to delegate and use others to enhance my life and give amazing employment opportunities. For instance, I have a junior adventurer whose role is to go places in advance, take photos, tell me a story. This helps me focus my time on the best experiences when I go so I limit my disappointment.

<comment><USER10> You pay someone to pre-vacation for you? Let me know when your hiring..

<comment><USER3> I am thinking of turning it into a summer internship for people that work on my farm during the winter.

</comment></comment></comment><comment><USER11> Shameless plug for my newsletter because I write exclusively about mental models which transcend disciplines: [https://alexpetralia.github.io/newsletters](https://alexpetralia.github.io/newsletters)

I have found writing it a fantastic learning resource for myself.

<comment><USER7> Hey Alex - I'm the author of the article, and love your site. Is there a good email to reach you at?

</comment></comment><comment><USER12> Define Successful</comment>


When is a Set not a Set? - <AUTHOR> https://engineering.vena.io/2018/01/31/when-is-a-set-not-a-set/ <comment><USER2> Ah, mutable data. Is there any abstraction it can't ruin?</comment>


The Great Ape Dictionary Experiment: do you speak chimpanzee? - <AUTHOR> http://greatapedictionary.wp.st-andrews.ac.uk/experiment/ <comment><AUTHOR> Some background on the experiment: [https://phys.org/news/2017-07-online- reveals-humans-instinct...](https://phys.org/news/2017-07-online-reveals- humans-instinctively-apes.html)

BBC Radio 4's Inside Science did a segment on it, too: [http://www.bbc.co.uk/programmes/b08xxdq1](http://www.bbc.co.uk/programmes/b08xxdq1)</comment>


Meditation and Performance - <AUTHOR> https://al3x.net/2015/02/24/meditation-and-performance.html <comment><USER3> Time blow the dust off my favourite software-industry parable:

[http://www.ckwop.me.uk/Meditation-driven- development.html](http://www.ckwop.me.uk/Meditation-driven-development.html)

<comment><USER4> "Tim asks everyone to sit around on the floor in a circle and reflect deeply on a particular passage from the Bible."

This is when I stopped reading the article. Asking teammates to do meditation before coding is one thing, but asking them to read a passage from the Bible. whoa..

<comment><USER5> After a little consideration, I've decided I don't agree with your position, and that's not because I'm religious (I'm not) and it's not because I disagree with the separation of religion and work. (I do.)

No, the reason I disagree with your position is because you've made a piece of information taboo merely because of the source. Not all passages from the Bible are religious, and even the ones that can have meaning in non-religious contexts. The fact that the book is holy to someone should not provide the impulse to discard its entire contents without a second thought.

Even if all of the above rings hollow to you, the suggestion that people contemplate a Bible verse in the initial incarnation of "MDD" is actually somewhat pertinent to the parable, in that later groups practicing "MDD" throw out the Bible verse and instead meditate reflectively on famous poems, and the story notes that this substitution is no less effective.

Yet you stopped reading an insightful story because you're concerned that a made-up person in a made-up situation suggested thinking about a Bible verse.

Sorry if this sounds like concern-trolling.

</comment></comment></comment><comment><USER6> I had never heard of the Wisdom 2.0 conference before reading this article. It sounds like corporate bible camp.

If you've heard of that conference but not Mindfulness in Plain English, I'd recommend reading the latter. It's free to read online here: [http://www.urbandharma.org/udharma4/mpe.html](http://www.urbandharma.org/udharma4/mpe.html)

</comment><comment><USER7> Pursuing Meditation as a way to make more money or increase business productivity/bottomline, is too narrow and simplistic. Daily meditation (specifically Passage Meditation [http://www.easwaran.org/](http://www.easwaran.org/)) practice has changed my life's priorities dramatically.

At the risk of sounding a little too touchy-feely, Meditation helps you:

a) Be more compassionate and choose what is right, instead of what brings more material wealth.

b) Bring more clarity and focus to what you are doing.

c) Understand yourself and others better, forgive yourself and others easily, love yourself and others unconditionally.

<comment><USER8> I don't understand why mental clarity must lead to certain outcomes. What's wrong with seeking peace in order to find ways to market things better? Or seeking calm and finding inner strength to go and wipe out a troublesome group of people?

While those might seem abhorrent to us, a mind improving practice should work for any goal. It's not like exercising doesn't work to your advantage if you're evil.

To the point: if one is not interested in A or C, just B, is it still helpful?

<comment><USER9> It goes a bit like this. Most human actions have side effects in addition to their main purpose. Some we are aware of (and may trouble our subconscious), some we are dimly aware of (and brush aside), some we find out later (perhaps to our regret). Not being aware of them causes reactive behavior and goal confusion and reduces the power to act.

Increased awareness of them allows us tackle them effectively, but requires lot of brainpower most of us are unwilling to spend.

Meditation allows one to simplify a problem so one can see its dimensions clearly (less brainpower needed), then allows one to weigh solutions along with their side effects (to get an overall better solution).

</comment></comment></comment><comment><USER10> So I'm a fully qualified teacher of meditation, all the way to what is casually called enlightenment. I'm also a software engineer - I came from a "householder" lineage where teachers have day jobs. I'm currently the release coordinator (ish) for the Ethereum Project, so I'm working on cryptocurrency stuff. For the record, I hardly teach meditation: very few people really want it.

Let's actually put this into context: you sit there and do stuff with your mind that is supposed, over time, to make your mind work better (even if better means silently!). This is not in principle different from exercise: you do thing with the body that result in a better body. The argument between dancers and cross fit enthusiasts about the real benefits of exercise would be a good parallel to the discussion about meditation for a better mind vs. meditation for enlightenment.

To expand a hair more: meditation is a tool on the path to enlightenment. You certainly need it, but you may also need other things: "wisdom teaching" that show you what to look for, or membership in an enlightened society to provide models to step into as your practice matures. Climbing might be an analogy: a lot of time in the gym, but the real action is on the peaks. It's just that in meditation, the gym and the peaks are both on the meditation cushion, in different parts of your mind.

One thing that I don't think anybody has discussed here is the role of time. I'm willing to believe that a fair number of the people who are meditating for better minds now will meditate for other reasons as they age and their mortality presses in on them. Others will find a deeper practice during personal tragedy, or moral crisis, or any other deep impetus for change. I don't see anything wrong with a whole bunch of people hitting the gym - <USER2> who choose to climb later will be in good shape.

But, and this does need said: the enlightenment tradition must be protected through all this popularity. The dance, the mountain climb, all of that - those are analogies for something far above-and-beyond one's regular sitting practice: you build CERN in your mind and look for the fundamental nature of consciousness through introspection. It's not done one mantra at a time.

<comment><USER11> _very few people really want it_

Is this really true? A lot of people want to meditate and learn to meditate (me included), and a lot of us have tried a bunch of books, so called courses etc. But eventually gave up, because we couldn't succeed. I think having a good/experienced teacher would make a world of difference to people like us.

</comment></comment><comment><USER12> I think the focus on morality is misguided somewhat. Or at least not important.

In "The three pillars of Zen", zen master Yasutani-roshu tackles this issue decisively. There is no problem with people just going after the goal of increased concentration, a state he describes as: "more than the ability to concentrate in the usual sense of the word. It is a dynamic power which, once mobilized, enables us even in the most sudden and unexpected situations to act instantly. Those who have developed 'it' are no longer slaves to their passions."

It does say that this "quality" recedes without practice, it's something you have to maintain by meditating every day, as opposed to the actual deep changes that come from seeking enlightenment.

But discussing which is better is, imo, a fool's errand.

</comment><comment><USER8> Does anyone have any recommendations on a good, but scientific, intro to meditation practices? All the ones I read seem so interspersed with nonsense I find incredibly distracting. And not just "secular", either.

I'm referring to talk about "Life force" or "true nature" etc. Those are matters of biology and physics, so writing about them when your only source of knowledge is sitting by yourself thinking private thoughts, stretches credibility a bit.

I'm sure I would gain a _lot_ by being able to shut my mind up at times. And indeed, I find induced mental states to be great. But while I can lie to myself about many things, I can't seem to do it with mysticism around mediation. I'd like to eliminate that hurdle.

<comment><USER13> Mindfulness in Plain English is what you are looking for. You can read online but there are OCR errors: [http://www.urbandharma.org/udharma4/mpe.html](http://www.urbandharma.org/udharma4/mpe.html) \- I'd recommend buying a copy.

<comment><USER8> That one was the one I was reading, which refers to "seeing things as they truly are" and "life force" and other hand-wavy concepts. But it seems OK otherwise.

</comment></comment></comment><comment><USER14> So funny how meditation has to be related to buddishm... When it is actually pretty universal and even found in christianity, which is what the western civilisation is built on, just sayin.

</comment><comment><USER15> To each their own; but mantra based meditations are probably more effective at attaining hemisphere coherence which is what brings gains in creativity at those random moments throughout the day. [http://youtu.be/RAETeTPhekk?t=1m40s](http://youtu.be/RAETeTPhekk?t=1m40s)

<comment><USER16> Do you know a good resource for getting started with TM?

<comment><USER15> [http://www.tm.org/](http://www.tm.org/)

So the foundation that was eventually created after Maharishi moved on is actually based in Iowa. But they have TM Centers in most places. You can find your local contact through the website and make an appointment.

It's not a big deal, you go, you pay once, you get a mantra and then you're on your own depending on whether you feel it's beneficial or not.

As an East Coast skeptic I was surprised by how legit the results were.

</comment></comment></comment><comment><USER17> Tech really ruins everything, doesn't it? First San Francisco, now Buddhism. What's next?

If you're interested in meditation, Taoist practice is much harder to ruin. There is way less expectation as to what you should and shouldn't be doing. Just practice. :)

<comment><USER18> Tit for tat?

Its not tech specific, but anything with a large potential for "success". This is nothing new. Zen has been commercialized repeatedly within economic bubbles.</comment></comment>


Ask HN: What are better alternatives to Meteor? - <AUTHOR> looking to quickly build a SaaS platform MVP that can scale. No need for real-time socket stuff. thanks <comment><USER2> It's not an alternative to Meteor since it's built on top of it, but you could look at VulcanJS: [http://vulcanjs.org](http://vulcanjs.org)</comment>


A precise instrument to determine the Planck constant, and the future kilogram - <AUTHOR> http://scitation.aip.org/content/aip/journal/rsi/87/6/10.1063/1.4953825 <comment><USER2> That's quite the environmental setup:

The fourth generation watt balance apparatus, abbreviated NIST-4, shown in Figs. 2 and 3, is located inside a radio-frequency shielded laboratory, 12 m underground. For later reference, observe that the balance is oriented along a diagonal with respect to the compass direction of North as shown in the figure, with the main pivot axis falling along a line oriented from the north- west to south-east corners of the room. The room itself is temperature stabilized using an air jacket between the inner and outer exterior walls. Inside the room, the apparatus sits on the center of a concrete block that is 4 m long and 4 m wide and has a total mass of 67 metric tons. This block is isolated from the building's foundation and, for additional vibration isolation, can be floated off the ground using eight air springs. The apparatus is housed inside a 1.6 m diameter and 2 m tall stainless steel vacuum chamber which is pumped to a vacuum pressure on the order of 0.1 mPa. The watt balance apparatus is supported at three points in a pseudo-kinematic fashion on top of two stainless steel, sand-filled, parallel tubes that run from south-west to north-east through the chamber. The tubes are structurally decoupled from the vacuum chamber via four flexible bellows. This minimizes the transmission of chamber vibrations to the apparatus and maintains the apparatus alignments from air to vacuum. We have verified the alignment of the top of the magnet in four different configurations: (1) with the vacuum chamber top lid open, (2) closed, (3) during the evacuation of the chamber and (4) in vacuum using an autocollimator with the beam reflecting from a mirror on the tear drop plate. Between these four cases, the angle between the top of the magnet and a horizontal plane did not change by more 30 μrad.</comment>


Ask HN: Comepetitive Research for the App Store? - <AUTHOR>

What tools/techniques do I have available to me to put together sales projections for an as-yet-unreleased iPhone app?
For any given app I can look at the ranking history, the price, the number of reviews, etc., but it's difficult to extrapolate that into something I can put into an investor presentation.
In certain categories (esp gaming) there are groups of app developers who have gotten together to share sales info, but those are very few data points (and not in the category in which I'll be competing).
What data are you using to come up with sales projections? <comment><USER2> I seem to remember that Flurry published some aggregated analytics to their customers. You should check with them: <http://flurry.com></comment>


Ask HN: What did you do to become an expert in C++? - <AUTHOR>

How did you master C++ language ? <comment><USER2> It just takes time. 10K hours or whatnot. I've been writing C++ almost every day for the last 10 years, and I'm still learning.

My best advice would be to just do it. Don't focus on memorizing the syntax of pointer-to-member functions or the stupidly complicated overload rules. C++ is powerful but a lot of it is quite useless in practice.

Instead, you should be writing DNS servers, hiding text as bit patterns in JPEGs, or whatever other thing you find intellectually interesting. Sprinkle in some Google and bake for a few years.

I'm sorry to say that like with most things in life, there aren't any shortcuts here.

</comment><comment><USER3> It's important to distinguish C++ expertise from that of other languages. C++ is so large (and with C++0x will be larger still) that any expert you do meet will know at best a large portion of some subset of the language. And this is fine.

The most important skill is general problem solving, and for this a variety of tools is helpful. So in the C++ world, focus on a few language features that are most different from one another. Make sure you know _basically_ how templates work, but don't fret if you've never seen a specialization or any of the 44 corner cases that are unsupported or undefined. Learn at least common STL containers like vectors, sets and maps, and learn basic_string. Expose yourself to at least one algorithm like fill_n(), and recognize how it is different for vectors versus C arrays. Learn ostringstream. Use namespaces, and learn about the "using" keyword. Learn the basics of classes, constructors and destructors, and the RAII technique. Master all of this before exploring the messes that are inheritance and exception handling.

</comment><comment><USER4> Read the Exceptional C++ series (shorter, 'highlights' version is C++ Coding Standards), Modern C++ Design, and Andrei Alexandrescu's unpublished columns.

<comment><USER5> Gotta second this, after reading these books you'll have a completely different perspective on how to write code in C++. It's completely different than C.

</comment></comment><comment><USER6> As many have said here, it's about actually writing code in the end, personally I learned C++ by writing an electronic schematic editor as a front end to a SPICE circuit simulator, so I learned C++ and the Windows API at the same time. Of course as well as writing code, reading other peoples is useful too, when i was learning there weren't the reasources there are today, you can go over to github or sourceforge and find lots of interesting code to learn from, and do code reviews on to see how you might have done things differently.

</comment><comment><USER7> You don't master it, so instead I will write about what I did to learn reasonable amounts of it.

I wrote lots of code, tried use it and then fed what I learnt back into the design. Repeatedly.

I read tons of other people's code. Large, running projects. Example code won't work.

Occasionally, I read books, but the only one I ever read all the way through was /Teach Yourself C++ in 21 Days/ back in 1996 (and its title is ridiculous; I'm still learning every day).

</comment><comment><USER8> (Not an expert, but reasonably proficient.)

I worked with a lot of really good C++ programmers and had them do my code reviews. The best way to learn is to expose yourself to people who know more than you do and give you feedback.

As one of my coworkers is fond of saying, "If you work with people better than yourself, you'll get better. It just happens naturally."

</comment><comment><USER9> Assuming that I _have_ mastered it, it happened from learning and using Haskell, watching people post and smart people answer in some C++ megathread, and getting a job where the product is written in C++. And also some early experience using it in a CS II class that used Koenig & Moo.

</comment><comment><USER10> The answer is the same as it is for any programming language: write something big.

You can read as much as you want but it will never make you an expert. To fully understand a language you have to live in it for a while.

</comment><comment><USER11> My first real project was writing a game engine, and then using it to write a couple games. After that, I learned a whole lot writing a compiler for a C like language.

</comment><comment><USER12> I wrote a proprietary trading system in C++.</comment>