Java Was Strongly Influenced by Objective-C - <AUTHOR> http://cs.gmu.edu/~sean/stuff/java-objc.html <comment><USER2> Holy cow, that's my USENET posting. Will have to ask my sysadmin to record the HN spike. I do find it funny reading postings here basically saying that, regardless of what Patrick Naughton said, his language is actually based on C++. Those language creators have some nerve! :-) Reminds me of the Kurt Vonnegut scene in Back to School.

Even back in the '90s, when I wrote that as a wee PhD student, it was clear that Java was derivative of Obj-C (among others) much more than C++.

EDIT: all the Newton references in that passage are because it was posted in comp.sys.newton.misc (IIRC).

<comment><USER3> And Objective-C is a derivative/recreation/highly inspired by SmallTalk.

But my question is, what modern language today is a copy of Dylan?

<comment><USER4> None of them, unfortunately? (Unless I'm forgetting something.)

Of the languages created at Apple, Dylan was the most interesting one. Swift is practical in many ways, but it's not inspired or visionary.

Swift is basically a better C++ with decent Cocoa interop built-in. It's comparable to C# in originality... And that's not putting down either Apple or Microsoft -- it's simply the realities of creating a language at a large corporation with internal and external stakeholders.

<comment><USER5> I don't think 'originality' should be the goal of any language. Being novel for the sake of novelty inhibits effective communication, it doesn't enhance it.

<comment><USER6> Originality is a virtue if the language really has a better way of solving certain problems that people face. Even if it has merely a different way of solving certain problems, that _may_ be very worthwhile, because the different way may in fact turn out to be better.

But novelty just for the sake of novelty... yeah, not so much.

</comment></comment></comment></comment></comment><comment><USER7> I'm not sure how much Brad Cox[1] would like the characterization:

> Objective-C is an object-oriented mutant of C

But Java (the language) has little in common with C++ aside from the token- level commonality both share with B.

As for Java's interfaces, those (as "zak_mc_kraken" mentions) have strong ties to Objective-C's protocols, though I disagree with the subsequent statement of them being "a simplification of C++'s multiple inheritance". IMHO, they are far closer to C++'s class/function declarations.

I'd say Java had a similar influence as C++ did from Simula, introducing superficial similarities with C++ due to its dominance at the time[2], but incorporated more of the dynamics provided by Smalltalk-like languages (such as Objective-C). Note the use of "super" for calling parent methods and the lack of multiple inheritance in both.

1 - [http://www.virtualschool.edu/objectivec/](http://www.virtualschool.edu/objectivec/)

2 - Fun bit of trivia: when Java hit the scene in the late 90's, you could globally replace the word "reference" with "pointer" and the documentation would read just the same. See section 2.2.9 of [http://www.oracle.com/technetwork/java/simple-142616.html](http://www.oracle.com/technetwork/java/simple-142616.html) for a prime example.

<comment><USER8> I find a lot of similarities between Java and C++. Java is basically a subset of C++ with some sugar around. When I was learning Java, I just made a link between Java constructs and C++ constructs and that allowed me to learn Java in one day and start getting things done. Of course I took few years more to master Java, but that's another matter.

So Java "reference" is C++ pointer without asterisks and ->. All java methods are virtual. Java interface is full-abstract class without fields (in Java 8 even not so full-abstract). Multiple inheritance only with interfaces. No generics (I learned Java 1.4), one common ancestor Object, friendly GC releasing you from the pain of memory management.

Basically the only new concept is package. Otherwise it's stripped C++ with different runtime library.

<comment><USER9> > Java is basically a subset of C++ with some sugar around.

Not sure where you got that from... the notion of a class being a "reference type", which is the foundation of Java, doesn't even exist in C++. Every class type is a value type in C++.

<comment><USER10> Sure, it does. In C++, you can declare everything on the heap, then pass pointers by value. In Java, you declare everything on the heap (because you can't declare it anywhere else), then pass pointers by value (because you can't pass classes in any other way).

The only difference is that Java's subset also does not include pointer arithmetic, so this is actually a safe coding practice, because it allows for garbage collection to be performed.

<comment><USER9> You're not countering the same claim I'm making.

Yes, C++ can emulate what Java is doing, but no, that's not what I'm saying. I'm saying C++ classes are not _reference types_ , i.e., every class you define is always a value type, which is the exact opposite of Java. Obviously C++ also has pointers/references that could help you emulate Java, but that's beside the point. The point is that classes work differently in C++ and Java, and neither functionality is a subset of the other.

<comment><USER10> I suppose I'm not seeing the difference between Java's restriction of only using reference semantics, and C++'s option of using reference semantics. Since Java only provides reference semantics, while C++ allows both reference semantics and value semantics, this would make Java be a subset of C++, in this regard.

</comment></comment></comment></comment></comment></comment><comment><USER11> Not very convincing. Maybe Patrick Naughton was in love with Objective C but there is little of that left in Java.

Depending on which angle you look at, you could see Java's interfaces as a direct successor of Objective C's protocols or a simplification of C++' multiple inheritance.

If you were to believe James Gosling, it's clearly the latter that influenced Java's design. The fact that Naughton liked Objective C hasn't had much impact on what Java ended up looking like in 1995.

<comment><USER12> Having programmed many, many lines of C++, Java and Objective-C, I'd have to agree. Maybe parts of Java were influenced by Objective-C, but surely there is very, very little left of the philosophy behind how you write Objective-C code. In fact, I'd say there's almost no similarity whatsoever.

In terms of how you program, Java is a lot more like C++, minus half the language features that make C++ both powerful and dangerous. Obviously there are fundamental differences, but I think it's pretty clear that someone switching from C++ to Java would have a much easier time adjusting, then going from C++ to Objective-C.

Also, I find the qualification of Objective-C as a 'mutant of C' a bit off the mark. Yes, Objective-C is a superset of C, it's built on exactly the same foundation, but the end result is and how you use it is completely different in almost everything except the syntax of the pure C-constructs and fundamental types.

<comment><USER13> The fact that class methods are not polymorphic is a dead giveaway that Java's heritage is more C++ than Smalltalk/Obj-C.

</comment></comment></comment><comment><USER14> The saddest thing is that Java never implemented support for Objective-C 'Categories' so Java programmers are forever doomed to write classes called StringUtil full of methods that really should be on the String class. After 20 years of Java programming this still annoys me.

That and making 'byte' signed.

<comment><USER15> To me, the worst thing about Java is the tooling and OS integration. Compare what it takes to invoke a node program with what it takes to invoke a Java program. Or what it takes to do basic file IO in either of those. It's crazy, and it will never get better. The best Java can do is wrap everything in a build system ("just add an exec compiler plugin, configure for your main class, and invoke mvn with special arguments!") or an IDE ("just create a run config through the following 20 step process...").

It's true that if you spend a lot of time in Java these things fade into the background, but these are exactly the things that shouldn't fade. You'll never "whip up a quick script" in Java because of these problems.

<comment><USER14> Java was never designed to "whip up a quick script". Today as in 1995 there are better alternatives to do that. Also Java was designed to abstract away from the underlying OS to provide "write once, run anywhere" so its "as designed" that OS integration is lacking.

Personally I think the tooling is the best part of Java. Having an IDE helps you build more robust software by providing far more context than a text editor ever could. The build systems have reached the point that its very easy to do the right thing to build robust software. Compared with what came before (make, imake, configure etc) the tools are much better.

</comment></comment></comment><comment><USER16> Patrick Naughton... now there's a name I haven't heard in a long time. I went to Wikipedia to find out what happened to him after his arrest. No jail time, but he had to work for the FBI for free for a year.

<comment><USER17> The first book I read about Java was his. I remember enjoying his essay at the end [this particular link being an unedited version]:

[http://blinkenlights.com/classiccmp/javaorigin.html](http://blinkenlights.com/classiccmp/javaorigin.html)

</comment></comment><comment><USER18> Maybe true. I recently ported an Obj-C project containing 9000+ lines of code ( no GUI ) to Java and was quite surprised about how easy the Obj-C code was to read even though I knew nothing about it.

<comment><USER19> The naming of parameters in method calls was something I found a bit weird and overly verbose when I first used ObjC.

But I've come to appreciate that it can greatly improve readability when trawling through unfamiliar code bases, and thankfully it's a feature Apple have carried across to Swift.

Now days I often wish Java had external parameter names, too!

<comment><USER20> One of my fave obj-c features (which comes from smalltalk, I am told), and I'm surprised more languages don't do it. Aids code readability immensely, and basically eliminates an entire class of bug (of accidentally transposing two params of the same type).

Most people tend to react to it really negatively at first encounter though.

</comment></comment></comment><comment><USER21> Wait... C# was strongly influenced by Java... by law of transitive properties that means C# was strongly influenced by Objective-C..... Nooooooooooooooooooooooooooooooooooooo.

That's like the opposite of finding out that Sweden named New York

<comment><USER3> This is what makes C# so pleasant to use. Before C# Microsoft created a language called J IIRC that was meant to compete with Java (Maybe it was J++?)

Wikipedia says J#, but I think this is a later incarnation: [https://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Visu...](https://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Visual_Basic_.NET#J.23)

<comment><USER22> [https://en.wikipedia.org/wiki/Visual_J%2B%2B](https://en.wikipedia.org/wiki/Visual_J%2B%2B)

</comment></comment></comment><comment><USER23> That is pretty much the same way that I remember it as well. The interesting dichotomy is that the NeXT 'cabal' as it were, primarily, the code/library developers as was I, and James was primarily language design. But the group was small enough that everyone had an opinion, and it often came up "well Objective C does it this way..." or "C++ does it this way ...". James was always a minimalist and Bill Joy (who was in Aspen working on the 'self' language) was always pushing the edge of what you could express in a language.

</comment><comment><USER24> Objective-C was strongly influenced by smalltalk. I think Java is more influenced by smalltalk than by Objective-C. The whole concept of compilation toward bytecode that may be interpreted or compiled to native is very similar to smalltalk. I think the influence of objective-C and C++ was mainly to avoid reproducing mistakes, in particular the tricky syntax. The syntax of smalltalk is very clean and simple which is not the case of C++ or objective-C.

<comment><USER25> Java the language is more like Simula than Smalltalk. But yes, the JVM/runtime is vaguely Smalltalkish, and this is no accident given that many of the key contributors came from Self and Smalltalk lineages.

</comment></comment><comment><USER26> Not strongly enough unfortunately, otherwise it would have metaclasses and class-side inheritance would work correctly.

</comment><comment><USER27> An interesting tidbit on two unused keywords from the 1.0 specification [1]:

"The keywords const and goto are reserved by Java, even though they are not currently used in Java. This may allow a Java compiler to produce better error messages if these C++ keywords incorrectly appear in Java programs."

[1] [http://titanium.cs.berkeley.edu/doc/java- langspec-1.0/3.doc....](http://titanium.cs.berkeley.edu/doc/java- langspec-1.0/3.doc.html#229308)

</comment><comment><USER28> Brad Cox's two books are worth reading:

"Object-Oriented Programming: An Evolutionary Approach" ISBN-10: 0201548348 ISBN-13: 978-0201548341

"Superdistribution: Objects as Property on the Electronic Frontier" ISBN-10: 0201502089 ISBN-13: 978-0201502084

even after all these years, they still give some interesting insights

</comment><comment><USER29> Would kill for dates on each these messages!

</comment><comment><USER30> I remember when I moved from obj-c to java (as WebObjects made the same transition) and being amazed at just how bad the java standard libraries where compared to the obj-c foundation and other nextstep libraries. The obj-c libraries were so nice and clean and focused.

Funny to see the 'oak' name reused - it's now an Apache project for a jcr backend.

<comment><USER31> Do you remember any of the the names of method calls that were created by converting the objective-c libs into java?

<comment><USER32> If you mean WebObjects its libraries used almost the exact same method names e.g.

      EOUtilities.objectsMatchingKeyAndValue(key, value);

You can still see a lot of the original code in Project Wonder e.g.

[https://github.com/wocommunity/wonder/blob/master/Frameworks...](https://github.com/wocommunity/wonder/blob/master/Frameworks/Core/ERExtensions/Sources/com/webobjects/foundation/NSArray.java)

<comment><USER31> Thanks - found one I was thinking of, addObjectToBothSidesOfRelationshipWithKey

<comment><USER33> Or EODatabaseContext.qualifierForLockingAttributesPrimaryKeyAttributesEntitySnapshot().

Work with WO made me prefer this style of long, self documenting method/variable names.

</comment></comment></comment></comment></comment><comment><USER34> They hid it well.</comment>


tqdm: Add a progress meter to your loops in a second - <AUTHOR> https://github.com/noamraph/tqdm <comment><USER2> You can find the actively maintained repository at [https://github.com/tqdm/tqdm](https://github.com/tqdm/tqdm)</comment>


Ask HN: You have 3 months and $1000. What would you do? - <AUTHOR>

If you were in the situation that you had 3 months where all your regular expenses were taken care of and you didn't have to work AND you had $1000 to spend on your project/business, what would you do? <comment><USER2> I've kind of lived this for the past couple of months. I haven't spent the time as well as I'd hoped due to some family and other issues. Picking something to focus on was my hardest part. Lots of interesting startups, technology, and stuff to read. I'm now doing what my gut told me originally - building iOS apps for a niche I'm interested in.

So if it were me, I'd spend the $1000 on a Mac of some sort (if you don't already have one), take the Stanford iOS Programming class on iTunes, and maybe pick up a book or two on iOS programming / app business. Worst-case, at the end of the 3 months you'll have a skill that's getting to be in more demand every month and an app or two in the store as proof.

</comment><comment><USER3> You could try starting a business, create new product or site. With the limited time what I can suggest is try playing Options in stock market.

I have turned $600 into $21,000 in the last 2 months. With the European debt crisis looming it is perfect time to play options as well. You can get 1000% percent return in a day.

there is not much risk if you spend time understanding how it works. Also From my learning, you don't need 50 stocks to make money. Just focus on Google and apple options. They are most volatile and predictable.

<comment><USER4> What did you read/study? Do you have a finance background? I've heard of people getting pretty burnt in options trading as well. :)

<comment><USER3> I have a background in Analytics and Economics. No I don't have a finance background but I do very well in options trading these days. I lost in options trading for 4 straight years till I got a valuable advice from a seasoned option trader. He turned 10k into few millions over few years. Then things turned around.

The Mantra is "Discipline"

</comment></comment></comment><comment><USER5> This is something that I would love to do. It would be awesome if I had the time to do things with great focus.

I think I'd keep hold of as much of the $1k as I could and try to bootstrap a couple of projects to make a small but regular income.

It's so much more satisfying and stress free when profit is made on sale #1 (even if it's just a small amount)

It would certainly still be 3 months of hard work & continuous learning.

I'd like to build something that teaches me better how APIs work. Perhaps with Twitter Bootstrap.

Aside from business, in life in general I would clear so much junk out, it feels so therapeutic!

I'd spend un-rushed, quality time with friends & family.

I'd probably spend some of that thou on a small break away and try to not stick to an itinerary.

</comment><comment><USER6> Build something for small businesses in the creative arts industry. I haven't seen a lot of innovation in online design tools for wedding and party invitations, but if you can work the font problems out, the time is ripe to use HTML, SVG and canvas to make a fun webapp for these customers.

</comment><comment> oscar-the-horse learn a new skillset. sometime it can be hard to find the time in the bustle of business.

<comment><AUTHOR> Do you think 3 months is long enough? I guess if you spent every day focussed you could learn quite a bit

<comment> oscar-the-horse depends what you're learning. but like you said, if you focus you can learn quite a bit.

i've done it a few times and it's been great.

</comment></comment></comment><comment><USER7> Ship a simple product that earns a (small) paycheck every month.

<comment><AUTHOR> I think this would be my choice too</comment></comment>


AI defeats elite doctors in diagnosis competition - <AUTHOR> https://www.thestar.com.my/tech/tech-news/2018/07/02/ai-defeats-elite-doctors-in-diagnosis-competition/ <comment><USER2> Clinical decision support systems and AI has been used in diagnosis since 70 (CASNET, MYCIN, and PIP).

The real problem is not defeating doctors in diagnosis. It's the acceptance, maintenance, integration, and many other practical considerations. Even if AI defeats the doctor, doctor must believe the AI and know it's limits.

As it was back then then, probably the best way to use AI in diagnosis is an AI assistant that shows the doctor relevant pages in medical reference and the reasoning behind the suggestions. Black box approach has hard time getting accepted.</comment>


When fourth-party collection becomes attribution hell [pdf] - <AUTHOR> https://cdn.securelist.com/files/2017/10/Guerrero-Saade-Raiu-VB2017.pdf <comment><USER2> To put it in painfully simple terms, just because the "hacker's code" contains Cyrillic, it doesn't mean Putin was behind it.

As a layman, "fourth-party collection" sounds a lot like "false flag" to me... is there any key difference I'm missing?

<comment><USER3> They discuss that both in the passive and active sense. I'd say that only the active sense appears to be similar to a false flag operation. From the article:

Fourth-party collection – As described previously, fourth-party collection involves interception of a foreign intelligence service's 'computer network exploitation' (CNE) activity in a variety of possible configurations. Given the nature of Agency-A as a cyber-capable SIGINT entity, two modes of fourth- party collection are available to it: passive and active. The former will take advantage of its existing visibility into data in transit either between hop points in the adversary's infrastructure or perhaps in transit from the victim to the command-and-control servers themselves (whichever opportunity permits). On the other hand, active means involve the leveraging of diverse CNE capabilities to collect, replace, or disrupt the adversary's campaign. Both present challenges which we will explore in extensive detail further below.</comment></comment>


The legacies of 1917 - <AUTHOR> http://www.eurozine.com/the-legacies-of-1917/ <comment> temp-dude-87844 > _the nature of the Bolshevik movement was that it implied a cultural > revolution, because it meant peasants leaving the land and coming into > mines, factories, cities; sometimes sending money home, sometimes returning > to home to help bring in the harvest but at the same time buying into an > idea of modernisation – hyper-modernisation, really; that the answer to > Russia 's backwardness and poverty was to sweep away the old peasant world._

The cultural revolution rapidly (in a span of few decades) lifted Russia from a rural state to an urban one, and brought a changed cultural consciousness. Strong state institutions like schools, councils, enterprises, and theatre furthered the social progression.

> _As a nation, Russians are the last victims of their own revolution. It 's > very difficult for Russia to become a nation, because it has this imperial > legacy and because it was the 'Russian' Revolution – so they can't[, like > other post-Soviet nations], blame 'the Russians' for their revolution. > That's why, I think, the centenary is going to be so quiet: it's not a > history that the Russians can use to go anywhere; it doesn't have any > positive uses for them. In Latvia they can celebrate liberation, in Ukraine > they can celebrate independence; but in Russia it's very hard to do that._

The most critical observation of the article. Other states like Germany, France, typically deflect previous revolutions that aren't compatible with the current model of their state. Russia does no such thing, in no small part because:

> _what happened in 1991 was just collapse; there wasn 't any democratic > revolution to create a new state. All that happened was that the Soviet > state collapsed and new political elites, largely made up of the old ones, > found themselves back in power. Putin's state is still essentially the > inheritor of the Soviet state, in every aspect – in its attitude to power, > in its attitude to the country – and that means that many of the old reflex- > attitudes of Russians – the unquestioning acceptance of authority, the > acceptance of the need for the state to use violence, the protective role of > the Cheka/KGB/FSB – are all still there. For Russia to become a democracy > will not really happen until Russians begin properly to reconsider what the > revolution meant in terms of its legacies, in terms of those deep cultural > aspects of thinking. And I don't see that happening._

</comment><comment><USER2> I really enjoyed Mr. Figes book on the Russian Revolution because his writing style is wonderfully accessible and compassionate.

Unfortunately it has been accused of having many pages of plagiarized content and poor sourcing. Which has made me weary of his writings and commentary.

I really hate to color a person with a single brush but my impression is that the problems were significant. Either error on its own would be forgivable but combining plagiarism and inaccurate sourcing points to a sloppiness with history in an effort to create narrative. To me, a historian most break away from narrative and commit to rigor.

<comment><USER3> Damn your first line had me ready to go buy the man's books....

I yearn for historical writing with a good narrative, but you're 100% right, if you need to sacrifice the flow or the facts, sacrifice the flow.

<comment><USER4> I really enjoyed the first volume of Kotkin's Stalin biography, if you're looking for something in a similar vein: [https://www.amazon.com/Stalin- Paradoxes-1878-1928-Stephen-Ko...](https://www.amazon.com/Stalin- Paradoxes-1878-1928-Stephen-Kotkin/dp/0143127861)

</comment></comment></comment><comment><USER5> Looking at this from a national point of view is a mistake.

In my mind, we're still dealing with the blowback resulting from the end of the victorian world order, which was gutted by the events of the First World War, of which the 1917 revolution was a part.

Russia has always been a bridge between east and west. I think as we've spent the last 50 years exporting the wealth of the west, we're approaching a similar changing of eras.

<comment><USER6> >Looking at this from a national point of view is a mistake.

>In my mind, we're still dealing with the blowback resulting from the end of the victorian world order, which was gutted by the events of the First World War, of which the 1917 revolution was a part.

Asimov in the Foundation caught it very well - the more populous and dense the world and the more it is tightly interconnected ("globalization" of today) - the more tribalistic/nationalistic/xenophobic the internal communities at all levels get, even when the communities are like just 2 adjacent city blocks of the same city like in the case of the Empire's very densely populated capital city covering the whole planet with the differences between the city blocks viciously enforced and cultivated by the respective communities itselves.

You can see that process starting in Europe with Jan Hus on one side and the French nationalism rising during the 100 years war on the other side. The 100 year war started as some adjustment of power lines between high lords of practically the same language and culture, and ended as the national freedom movement. Next was Luther, i.e. the German nation forming and waking up. And so forth...

The WWI can be seen as earthquake style resolution of the tension (built-up during previous peaceful decades) between significantly grown up nationalistic movements and the old trans-ethnic empires power lines in Europe. And naturally most of those empires disappeared as result of the war.

The process didn't obviously stopped with WWI. It is naturally continues today and into tomorrow. The diversity celebrating all-accepting globalized society of our dreams is probably just a dream.

</comment></comment><comment><USER7> > What happened very quickly in 1917 was the development of committee power, > so the development of local, direct democracy in terms of local committees, > soldiers� committees and, of course, the Soviets. And I think that those > institutions need not have become the instruments of class war, which is > what the Bolsheviks used them for, or encouraged them to do. You could have > had, as some in the Bolshevik Party, in the Left-Menshevik wings, were > thinking, a combination of local soviet-style structures with a national > parliament.

There are a lot of silly ideas contained in the last two sentences.

First off committees like those mentioned have sprung up in every revolution since the French Revolution. Back then they were Les Enrages, the sans- culottes, and they have emerged in revolutions since then up into the 20th century, be they called councils or soviets or whatever. The notion that "those institutions need not have become the instruments of class war" is preposterous, because workers taking control over their own lives and halting the exproporiation of their surplus labor time is the centrality of class warfare. If workers had control over their own labor time, instead of punching a clock at some corporation owned by heirs, which directed their work and expropriated surplus labor time from them, then there would be no classes. The only way to prevent workers managing their own affairs in local committees from not being engaged in class warfare would either be to dissolve the committees, or alternatively neuter them to where they were completely powerless.

In terms of the idea of a national parliament and local soviets being the basis of a government, that is exactly the situation Russia was in in February 2017 - what was called dual power. It's an untenable situation. Up until April 1917 the idea was generally that socialists might be able to take power, but should instead subordinate themselves to the bourgeoisie, in a society where the capitalists would rule through a modern bourgeois parliament.

Lenin spells out why this was not done at the beginning and end of his April Theses: one of the main things that made him realize the time for socialists to stop subordinating themselves to capitalists and bourgeois parliaments was it was leading to the degradation of the socialist parties, the center-piece of which was German social-democrats supporting entry into World War I. The option Lenin saw being handed to him was - support World War I, pitting Russian workers against German workers (including left-wing pacifistic German socialists), or turn completely against the government. Lenin chose the latter course. Figes neglects to mention this - Lenin's only real alternative to taking the path he took would be to support Russia's continuation of World War I.

<comment><USER8> Class warfare doesn't seem inevitable if locally organized committees in a time of revolution prioritize something else in life more than class concerns. Consider Iran where, as the shah's regime crumbled, there was a lot of organization not in favour of the Communists, but rather to try to bring bring Khomeini back from exile and usher in an Islamic regime. Similarly, some of the other revolutions in and around World War I were driven more by a desire to marginalize ethnic groups other than the workers' own than to marginalize the bourgeoisie.

</comment></comment><comment><USER9> > You could say that the Utopian nature of the revolution developed out of the > idea of Russia being a tabula rasa, a blank canvas onto which > revolutionaries could project their utopian ideals of human transformation. > That was part of a tradition in Russian revolutionary thinking – not just > for the Bolsheviks and anarchists, but more importantly for populists in the > 19th century, who thought that because Russia was not developed, in a > western sense, with political institutions, civil society, an advanced > economy, it could sort of 'leap over' the West by becoming a new form of > democracy or socialism.

If that were true, then if Communism were to succeed anywhere, it should have succeeded in Russia. (Note, however, that Marxist theory says that it is _not_ true, as the article says later.)

> Revolution is, by its nature, an improvisation – there are no rules...

Interesting. Yes, that seems right for a revolution. You're revolting against the way things are, and the current rules, and you can throw out any rules that you want.

> ... so they are desperately looking for examples from previous revolutions > of what will happen, and of what it is to be a revolutionary.

And, having no rules, they find themselves completely adrift, except for the one requirement: It has to work to overthrow the existing order. ( _Not_ it has to work to produce something functional afterwords.) So they look for something that will give them some guidance - some rules, almost - on how to proceed. Ironic, that.

<comment><USER10> > If that were true, then if Communism were to succeed anywhere, it should > have succeeded in Russia.

Isn't that exactly the case?

<comment><USER11> If by Communism you mean Leninist vanguardism, then, if not "exactly the case", it's at least consistent with the theory.

If you mean the system described by Marx and Engels, then, no, it's directly contrary to the theory.

If you mean some other Communist theory, well, maybe, but probably not.

<comment><USER12> And we might add that it indeed made Russia go from bottom to the top of any economic índex for a long time.

</comment></comment></comment></comment><comment><USER13> Not for no reason were Soviet general secretaries sometimes called the Red Tsars. There is most certainly a civilizational continuity between imperial Tsarist Russia, the Soviet Union and the Russian Federation. This particular civilizational continuity makes the prospect of democratic rule problematic. It does not sit comfortably within Russian civilizational parameters. Some explain in this way the failed attempt to instill a democratic order in Russia in the 1990s, i.e., that what democratic rule presupposes is absent in Russian society, rendering it foreign and "unnatural".

Among scholars specializing in civilizations, Feliks Koneczny[0] stands out in particular. Specifically, he identifies Russia as an example of Turanian civilization (one of several present within the West, though perhaps what is most prototypically Western is what he called Latin civilization). The author of the article mentions some of the markers of Turanian civilization, viz., "the unquestioning acceptance of authority" and "the acceptance of the need for the state to use violence".

[0] [https://www.scribd.com/doc/4464979/ON-THE-PLURALITY-OF- CIVIL...](https://www.scribd.com/doc/4464979/ON-THE-PLURALITY-OF- CIVILIZATIONS-Feliks-Koneczny-Entire-Book)

<comment><USER12> What would be more democratic than the Russian society? American? Give me a break.

</comment></comment><comment><USER14> Their idea of "a western, French revolution" is pure fantasy. The French revolution started with the Declaration of the Rights of Man, but quickly turned into the unelected tyrant Robespierre holding absolute authority.

</comment><comment><USER15> If not for Revolution, perhaps Russia would resemble more of 300 mln strong Sweden than of 140 mln strong Honduras as of today.

<comment><USER16> History is very complicated and full of contradictions. Imperial Russia is often dubbed as a semi-medieval state, yet it was able to build the Trans- Siberian Railway which was a massive engineering feat.

<comment><USER17> There is no contradiction, medieval states regularly build massive engineering feats including Cathedrals all over Europe.

<comment><USER18> Pretty easy to build megastructures when you're the Church and you can squeeze the local population for every bit of money they have.

Those things would also take several generations to build. They weren't comparable to highways or railways that got laid down within a decade.

</comment></comment></comment></comment><comment><USER19> This article over-analyzes the situation and gives Lenin and co too much credit. What happened was very simple:

* Russia is in the midst of World War I and things are rather rough for people.

* Leftist/liberals use the situation to their advantage and pressure Nicholas into resigning in Feb/Mar 1917 ending the monarchy and instituting the "provisional govenment" which was rather weak and inexperienced. They do dumb things like pardon all prisoners.

* Germany takes advantage of the weakness and sends in Lenin to sabotage the weak government.

* In Oct 1917 this armed gang of Lenin, Trotsky and Stalin takes over. Having realized how relatively easy it was, they ensure that they stay in power by publicly executing anyone who even hints at descent.

* 28 years later in 1945, Germany surrenders to Stalin, one of the very people it paid to topple Russia.

Edit: The lesson is rather simple: any however well-intentioned revolution is most often followed by a coup whereby ruthless criminals take over and in the end everyone suffers. The liberal parties who pushed for a constitutional monarchy and democracy inadvertently caused over 100 million deaths and a century of misery for their country and the world.

<comment><USER20> Or maybe you cannot explain what happened on half of continent for 28 years with 5 sentences and state it was simple. Has Lenin been armed gangster, he wouldn't written a lot of books. Putin is less educated than was Lenin.

World can't come in terms with what was happening in russia it late 19-th and 20-th century. This is a shame, because we can learn a valuable lesson from those events.

<comment><USER2> He was certainly more than a gangster but he seems to have been a horrible person. He lived an acetic lifestyle and pushed that disdain of pleasure into the party orthodoxy. He used his allies for advantage in a way that went way beyond the political norm of the time. And he laid the groundwork for the Soviet Gulag system. An apparatus that inflicted the equivalent of half a dozen holocaust's worth of human suffering over its existence.</comment></comment></comment>


Draft Trump Executive Order: Limiting Legal Immigration - <AUTHOR> http://www.vox.com/policy-and-politics/2017/1/25/14390106/leaked-drafts-trump-immigrants-executive-order <comment><AUTHOR> Direct link to the PDF scan: [https://cdn0.vox- cdn.com/uploads/chorus_asset/file/7872567/P...](https://cdn0.vox- cdn.com/uploads/chorus_asset/file/7872567/Protecting_American_Jobs_and_Workers_by_Strengthening_the_Integrity_of_Foreign_Worker_Visa_Programs.0.pdf)</comment>


Stargazer: understanding the π-calculus, visually - <AUTHOR> http://www.emanueledosualdo.com/blog/2017/stargazer-release.html <comment><USER2> For those wondering about practical application, here's two quick examples on use with distributed, problem solving and web applications. They're both doing precise models with a focus on deadlock prevention.

[http://www2.cs.siu.edu/~rahimi/papers/2.pdf](http://www2.cs.siu.edu/~rahimi/papers/2.pdf)

[http://www.sersc.org/journals/IJGDC/vol8_no5/13.pdf](http://www.sersc.org/journals/IJGDC/vol8_no5/13.pdf)

</comment><comment><USER3> I love the pi calculus. It's a good starting point for analyzing distributed systems in a rigorous way. If you're interested in learning more about this kind of thing, check out the Kell calculus[0] and it's related calculi

[0] [http://www-verimag.imag.fr/~bidinger/publi/fmoods2003.pdf](http://www- verimag.imag.fr/~bidinger/publi/fmoods2003.pdf)

</comment><comment><USER4> Also relevant: Pict [0], a π-calculus programming language.

[0]: [http://www.cis.upenn.edu/~bcpierce/papers/pict/Html/Pict.htm...](http://www.cis.upenn.edu/~bcpierce/papers/pict/Html/Pict.html)

</comment><comment><USER5> For those of us who have never heard of pi calculus, can someone give a beginners description (wikipedia article just confused me even more)

<comment><USER6> The pi-calculus is a mathematical formalization of concurrent programs in the same way that lambda calculus is a formalization of computable functions. It is basically a notation that allows you to easily specify concurrent programs, and then rigorously reason about them.

</comment></comment><comment><USER7> "pi-calculus" would be a better term to use in the title, since the glyph used for pi looks like "n"

<comment><AUTHOR> I just followed the guidelines when submitting - i.e:

> Otherwise please use the original title, unless it is misleading or > linkbait.

It's regrettable that π looks similar to n, however I think it's a very minor issue that is resolved the second that you click the link.

</comment></comment><comment><USER8> Anyone here knows a good self contained description?

<comment><USER9> [https://en.wikipedia.org/wiki/%CE%A0-calculus](https://en.wikipedia.org/wiki/%CE%A0-calculus)

One of the links from that article : [http://www.cs.tufts.edu/~nr/cs257/archive/jeannette- wing/pi....](http://www.cs.tufts.edu/~nr/cs257/archive/jeannette-wing/pi.pdf)

</comment></comment><comment><USER10> There is also the Join calculus in case anyone is interested.

[0]: [https://en.wikipedia.org/wiki/Join- calculus](https://en.wikipedia.org/wiki/Join-calculus)

<comment><USER11> In college I was fascinated by the Join calculus, in particular it's research implementation in Polyphonic C# and its successors.

</comment></comment><comment><USER12> This is awesome! Does it do anything like fdr or can it be plugged in to play traces demonstrating live/deadlock?</comment>


DuckDuckGo: When privacy becomes a trigger for growth – The Four-Week MBA - <AUTHOR> https://fourweekmba.com/duckduckgo-hooked-model/#.WfZgylDAN2E.hackernews <comment><USER2> Naturally, I just stay away from it since it can't seem to give me results that are as good as Google.. unless it's all just in my head.</comment>


Analyzing 10+ Years of My Facebook Data - <AUTHOR> https://www.leejamesrobinson.com/blog/analyzing-10-years-of-facebook-data/ <comment><USER2> > Inside of the friends.html file, you can find the exact dates you added _or > removed someone as a friend_.

(emphasis mine)

Oof. I'm not sure I want to take a trip down that memory lane.</comment>


Emails From Schmidt And Sergey Brin Show Agreements Not To Hire Apple Workers - <AUTHOR> http://www.businessinsider.com/emails-eric-schmidt-sergey-brin-hiring-apple-2014-3?utm_content=buffer7d246&utm_medium=social&utm_source=facebook.com&utm_campaign=buffer <comment><USER4> > Meg called to talk about our hiring practices. Here is what she said. Google > is the talk of the valley because we are driving salaries up across the > board. Then Eric Schmidt says: > I would prefer Omid do it verbally since I > don't want to create a paper trail over which we can be sued later

So Silicon Valley execs were illegally conspiring to drive down wages, and who knows how much more was done outside of the paper trail mentioned.

Then we have an article discussion yesterday and blog posts etc. in the past few weeks about how companies can't find great engineers, and how we need immigration law changes that blocks Mexicans etc. but brings in more engineers to drive down engineer wages etc.

Maybe if CEO's weren't illegally conspiring to drive wages below their market value, there wouldn't be a so-called "engineer shortage"?

I mean it's risible. They conspire illegally to drive down wages, then whine that not enough people want to work in this field where wages have been artificially and illegally deflated.

<comment><USER5> Colluding to hold down wages is terrible and I hope they get in a lot of trouble for it. But this doesn't follow:

> Maybe if CEO's weren't illegally conspiring to drive wages below their > market value, there wouldn't be a so-called "engineer shortage"?

What illegally driven-down wages mean is that the shortage is _more acute that previously thought_. That's because the main way to measure the relationship of supply and demand is through price; i.e. the more the salaries grow, the less supply there is relative to demand. So if salaries have been held down, some of that evidence was masked.

Secondly, it means that non-giant companies could be competitive in making job offers, whereas perhaps in a more free labor market they might not be able to compete salarywise with Google, Apple, Microsoft, etc. Thus, as seen from say, a startup's vantage point, this check on the upward price pressure actually kept the supply of affordable engineers up.

So I remain sympathetic to the there-aren't-enough-programmers line of thinking, and certainly don't think of this as hypocritical or antithetical to that line. Of course, that doesn't excuse any of Google's behavior here; they've effectively stolen a great deal of money from all of us through illegal collusion, pocketing the money that an honest market would direct into the engineers' bank accounts. I hope there's hell to pay.

Edit: I suppose it's theoretically possible that if the salaries went up to their natural levels, then people would pour into the field, and perhaps that's what you're trying to say. I think that's very unlikely, since software engineers are already paid a great deal more than most fields, so these people are either people who don't care about money unless it's a _lot_ of money, or they're people who instead chose to be doctors and lawyers. I'm sure more people would say, "hmm, maybe I should be a programmer", but you have to ask why those people aren't doing it now. As economists might put it, this is a structural problem, not a market problem (I hope I'm using those terms right).

<comment><USER6> > What illegally driven-down wages mean is that the shortage is more acute > that previously thought. That's because the main way to measure the > relationship of supply and demand is through price; i.e. the more the > salaries grow, the less supply there is relative to demand. So if salaries > have been held down, some of that evidence was masked.

Not really, price ceilings have a well-known effect of causing shortages because purchasers who should have been priced out of the market use up some of the supply. If the price had been allowed to rise naturally, those willing to pay the higher price would get what they need.

<comment><USER7> You also can't look at the market statically. Higher wages will create incentives for new people to enter the profession, increasing overall supply (and eventually putting some downward pressure on salaries once again).

<comment><USER8> That's true in theory, but I don't think there are a lot of people ignoring the tech sector because median pay for a competent engineer is only ~$100k.

Sure, you can find examples of people who went into other areas, but given the very low barriers to entry (put some good stuff on Github repeatably, no industry requirement for an advanced or even undergraduate degree if you have talent, no unions or guilds, no competency certifications required to practice software engineering), I don't think there's such a big pent-up supply.

<comment><USER9> I live in Australia and work in a small company and $100k just isn't enough to entice me to go over to the US to work for Google et al; It isn't that much more than what I make now, plus I get to live close to home. And yes, I can choose to move to US if I want, due to the E-3 visa.

I'm sure there are a lot more people like me.

<comment><USER10> Even the bottom level full time software engineers at Google in the US make more than 100k in total compensation.

<comment><USER9> I've only just graduated from university last year, so...

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> This is appalling to read, and it's frightening how blasé they are about blatantly illegal and unethical non-competition. Yet, I think the article misrepresents Schmidt firing the recruiter:

>Here, Schmidt relates a phone call he had with eBay CEO Meg Whitman and then orders his own recruiter to be fired because that person tried to poach the COO of eBay.

Reading the email, it doesn't seem like the recruiter was fired for trying to poach the COO; it seem like he was fired for lying to the target about the position (as Schmidt calls them, "falsehoods"). Don't forget recruiters usually get a significant finder's fee, and are not above misrepresenting a position to generate interest.

</comment><comment><USER12> Ah... So it was always "Be Evil" and fuck over your employees. It always amazes me that these people love free markets, until it's expensive and then they break the law deliberately to pay slightly less than the fair market price to the best and brightest.

Effectively stealing from their employees to give to their shareholders just blows my mind.

<comment><USER13> It's important to not gloss over Apple's role in this. Based on the emails that I have seen, they were the driving force behind these agreements.

Yes, Google's "don't be evil" mantra is tempting low hanging fruit. They dropped the ball here, but so did most of the valley. Nobody should be getting free passes in the court of public opinion.

<comment><USER12> Very true... I feel that if workers tried to steal billions of dollars from the rich they would get thrown in jail. The other way around and we're _trained_ to believe that's preposterous.

<comment><USER14> >I feel that if workers tried to steal billions of dollars from the rich they would get thrown in jail

Why is that? All evidence points to the contrary. Take for instance, the collapse of the housing market a few years ago. Not only were the borrowers not jailed, most people even blame the bankers.

<comment><USER15> The bankers' entire business of lending is predicated on their understanding of risk and proper extension of credit dependent on that risk. To extend credit as they did to people who were obviously not credit-worthy is to abandon the main responsibility of their profession and for what? Short term personal gains via "performance bonuses" based on volume?

The bankers deserve blame and jail time for endangering the entire economy with their short-sighted greed.

<comment><USER16> Exactly.

For some perspective: In the UK, if a bank extends credit to people who were obviously not credit-worthy at the time of applying, based on the information available to the bank, not only is the debtor not at fault, but the debts can in many cases be wiped out by the courts. And it happens regularly - <USER2> have had entire mortgaged just struck off because the banks were found to have acted irresponsibly when giving them out.

The banks here have a _legal responsibility_ to understand their customers ability to repay, and to not extend credit that is likely to cause their customers substantial financial hardship.

The reasoning for this is that there's a massive information symmetry - <USER3> people do not understand the full risks, and are easily seduced by the thought of a new house and possibly smooth talking real estate agents to look at think in the most rosy way possible, while the banks know very well the hard data on what financials are likely to cause defaults when you take into account risk of unemployment, budgets, unexpected repairs, likely interest rate movements etc..

</comment></comment></comment></comment></comment></comment><comment><USER17> Just gonna throw my perspective out there, since I was a firsthand witness to this stuff.

I started at Google in 2005 as an ordinary software engineer, and I've not yet left them. Back then, Google recruiters were constantly bugging employees for referrals. But this "no poaching" thing wasn't some weird dirty secret among execs -- it was just sort of a common knowledge thing, and nobody seemed to think it was a big deal. "Oh, we have a gentleman's agreement with Apple not to poach them and vice versa -- so give us the names of your friends to reach out to, but not if they already work at Apple."

AFAICT, the reason I (and my coworkers) never thought of this policy as illegal is probably for two reasons:

1\. Hey, poaching back and forth would create a lot of disruption and churn and mess up both companies' ability to get things done. Let's not start a pointless war.

2\. We, as programmers, are ridiculously overpaid already. How could anyone possibly be "taking advantage" of us at these salaries? The notion seemed as absurd as a Programmer's Labor Union!

Again, the idea was not to _poach_ , not to avoid hiring. If somebody from Apple applied for a Google job of their own will, that was fine.

In hindsight, I /guess/ I understand how this looks like evil collusion to keep salaries down... but really it seemed like common sense and civility at the time. At least that's how it was sold to us. It was sort of like the nuclear policy of Mutually Assured Destruction: "the only way to win is not to play." It's the same attitude that still explains why giant companies don't (typically) begin patent wars -- there's no point if everyone ends up destroying each other.

<comment><USER5> You were duped.

> We, as programmers, are ridiculously overpaid already. How could anyone > possibly be "taking advantage" of us at these salaries?

Overpaid by what metric? Compared to society at large, you make a lot money, yes, but you're also contributing significantly to one of the most profitable companies in the world. Google has a profit of about a million dollars per employee per year; why aren't you capturing more of that? [1]

If you're not taking that money home, someone else is. What do you bet those people are the ones telling you this is all in the name of civility?

[1] E.g. [https://signalvnoise.com/posts/2283-ranking-tech- companies-b...](https://signalvnoise.com/posts/2283-ranking-tech-companies-by- revenue-per-employee) I confess I don't know the numbers for 2005, but it should be easy to look up.

<comment><USER18> > Google has a profit of about a million dollars per employee per year

Revenue, not profit. Profit is closer to $250k

<comment><USER5> You're right that my source was the wrong thing for that (I wasn't careful enough in my quick search). But profit per employee per year is much closer to a million than 250K. Here's the source I should have used :[http://csimarket.com/stocks/singleEfficiencyeit.php?code=GOO...](http://csimarket.com/stocks/singleEfficiencyeit.php?code=GOOG)

Note the numbers are _quarterly_ , so that comes out to $900K. I was off a bit, so point taken, but my original point mostly stands, I think.

<comment><USER18> Where is that source getting data?

Using Google finance: [https://www.google.com/finance?q=NASDAQ%3AGOOG&fstype=ii&ei=...](https://www.google.com/finance?q=NASDAQ%3AGOOG&fstype=ii&ei=e3AwU7DDDonfiAKD1gE)

Google made almost $13B in net income last year. They had 47,000 employees in Dec '13.

That's about $275k/employee in net income.

<comment><USER5> Hmm, yeah. Maybe they erroneously used gross profit (which is useless here). I cede the point.

</comment></comment></comment></comment></comment></comment><comment><USER19> The collusion allegations sound serious, but I believe the pando.com article has a couple misunderstandings and is overly sensationalist:

1\. It is not illegal for a company to have its own "Do Not Cold Call" list. If you know that poaching your allies' employees is likely to jeopardize the joint projects, you may choose not to poach your allies' employees. If you know that poaching your competitor's employees will likely provoke them to poach your own employees, you may both choose to avoid the mutually assured destruction. As far as I know, it is only illegal to collude with your competitor to make such a list. But it appears that Google did have illegal agreements.

2\. One of the quotes from a Google memo, "Most companies have non-solicit agreements which would limit or prohibit a candidate from asking a coworker to interview with us as well," appears to have nothing to do with anticompetitive behavior. Instead, it probably refers to non-solicit agreements that employees often must agree to when joining a company that prohibit the employee from poaching one of their coworkers for a time after leaving the company. The memo warns not to pressure employees to violate contracts they have signed with their prior employers.

</comment><comment><USER20> Interesting choice of subjects in the headline. I see that Saint Steven's reputation is still off-limits. My reading of the first two emails is that Jobs was a raging asshole in every facet of life and business.

</comment><comment><USER21> The same way the SEC opens insider trading investigations based solely on market data - eg. unusual volume of transaction preceding a major unplanned announcement - a government body should mine employment data from LinkedIn for example and investigate cases where there are very few employees switching jobs between large corporations.

This is even more unsettling when you realize that Google, Apple and such have employees that generate revenue in the range of a million dollar per head yet pay a average salary that is 10-20% of that. They end up with absurdly large piles of cash that banks and financial institutions never see because they compensate their employees more fairly.

<comment><USER22> How do you quantify in a team how much money a specific employee generates to the company?

<comment><USER23> Does it matter whether you get the granularity down to a single individual?

If a 10 person team builds a product that delivers $100 million in revenue for a company, and the team members are paid $90k on average...then they're pretty underpaid.

<comment><USER22> Well, this might be working for a team of 10 elite-class programmers... but what about those working to support them?

Like, IT maintenance staff, HR, accounting, marketing etc.

Without either of those, the programmers would not earn a single cent. Now, how do you determine how to pay the support staff? What do you do when one group of HR staff works for a stellar, 100M+$ team and another HR staff group works for a 1M+$ team? Pay the same? Pay different?

<comment><USER24> How replaceable or irreplaceable are the support staff in this scenario? What's the ramp up time for a new member of the support staff compared to a new member of the team in question?

</comment></comment></comment></comment></comment><comment><USER25> I have to say, the only person that disappoints me in all of this is Sergey Brin. I guess I kind of expected everybody else to be a douche, but he's fostered this free-thinking Tony Stark/Ironman persona and this just makes him seem like a coward, who caved the instant Steve Jobs came-a-ranting.

</comment><comment><USER26> As I understand it, they were still allowed to hire from each other, they just agreed not to poach employees from each other. That doesn't sound so unreasonable to me.

<comment><USER27> I can see your point. Even without written agreements there are unspoken agreements amongst friends in this regard. For example, if I own a small business, and so does one of my friends, it goes without saying that him poaching my team would feel like a stab in the back.

What I find interesting in this whole story is the value that these executives put on the teams they have built. Of all of the things that Steve Jobs could be worried about as the CEO of one of the largest companies in the world, he's spending his time stressing about losing a few engineers to Google? As an engineer this makes me happy, but I still find it a bit surprising.

These executives knew an agreement like this would have to be delegated to a vast number of people. To me this means they didn't think it was a big deal. I say that because if they were doing something they viewed as extremely illegal they would have been concerned that someone in the delegation path would blow the whistle. Seems to be a crisis of perspective at that top.

<comment><USER28> > he's spending his time stressing about losing a few engineers to Google?

That is the amusing part! The agreement explicitly excludes engineers.

From the article:

"3\. Additionally there are _no_ restrictions at _any_ level for engineering candidates."

(emphasis theirs)

This was about sales and management.

<comment><USER29> Why was this downvoted? The discussion in these articles has all seemed to ignore the fact that engineers were explicitly excluded from the agreements.

<comment><USER30> Because it's wrong? That line is in the "Restricted Hiring" part of that document. The "Do Not Cold Call" section didn't include that caveat.

</comment></comment></comment></comment></comment><comment><USER31> I'm not very knowledgable of this sort of thing -- what have other professions historically done to mitigate this sort of thing? Unions? Licensing boards?

<comment><USER32> Class action lawsuits.

I find this agreement and the Facebook sponsored stories feature baffling. They remind me of when Korean companies have gotten caught up in price fixing and invoked the excuse "we had no idea this would be illegal!"

<comment><USER33> Huh? "Facebook sponsored stories feature"?

<comment><USER32> [http://m.huffpost.com/us/entry/4574644](http://m.huffpost.com/us/entry/4574644)

<comment><USER33> Oh. Yeah. That's how SV works. (I didn't know about this particular story though... must have missed it).

It's basically just another variant of a dark pattern.

They're everywhere. It's basically what fast growth is all about. It's about skirting some rule that you know very well is illegal or at least unethical -- and later when you get caught doing it, saying "Ooops!!! I didn't know this was illegal, LOL!"

Go to [http://darkpatterns.org](http://darkpatterns.org) to get more examples of dark patterns. Facebook in particular is expert at it, e.g. see [http://darkpatterns.org/library/privacy_zuckering](http://darkpatterns.org/library/privacy_zuckering) \- the clear lesson to take away for startups is, don't give a fuck, do whatever unethical shit you can do to attain a large userbase, get big, get funding, and then either a) deny any wrongdoing was ever done, or b) justify it with some excuse like "we were young :)" or "we didn't know!" Sometimes you have to pay a fine, but you can be assured that the fine will be smaller than the profit made/growth achieved by some particular action. It's a winning strategy.

p.s.: Here's a fun challenge: try to turn off targeted advertising on an Apple device. Can you do it? (fwiw, it's much easier to do on iOS7 vs iOS6).

</comment></comment></comment></comment></comment><comment><USER34> Like many of you I am one of the engineers that's covered by the suit and may stand to benefit from it.

Having said that, I want to play devil's advocate for a second. It's just my natural reaction when the press embeds big unquestioned assumptions in reporting for the sake of sensationalism -- namely that this is obviously "illegal" and nefarious behavior. Because, after all, it kept down wages for people like me who might otherwise have been more actively recruited.

If your reaction is OF COURSE IT'S ILLEGAL, just hold on a second. Try to think about the counterargument rationally, even if it's against your personal interests. (That's what I'm doing.)

There do exist many precedents for agreements and restrictions on seemingly "competitive" behavior that is deemed "unfair".

Let's consider a related example from another domain: countries "dumping" cheap goods into foreign markets. For example, China is accused of "dumping" subsidized steel into the U.S. market, which hurts the industry here. The U.S. steel industry works with the government to put in place tariffs that block the practice.

So is the U.S. steel industry being anti-competitive here? Have they engaged in an anti-competitive pact with the U.S. government conspiring to keep up the price of steel here?

Well, on the surface, _yes they have_. But the distinction is that "dumping" is meant to describe a particular form of competition that is _short term_ and _unsustainable_ in nature and designed primarily to destroy competing business. It is meant to isolate a specific practice that actually hurts competition in the long run.

So, what about the practice of poaching employees from competitors? Well think about it for a minute.

What is the value of a Safari engineer to Google's nascent Chrome team? The truth is, it's a _lot_ more than just that engineer's skillset. There's also the value of _undercutting Apple 's Safari development_. That's HUGELY valuable to a competitor.

So, I just wanted to put it out there that at first blush at least, that the practice of "poaching" may actually have an anticompetitive angle. Just like with "dumping", you have to look beyond the immediate act (restricting/boosting prices) and examine the particular practice it's attempting to curtail.

<comment><USER5> If you were arguing that Google was hiring all those people in a way that was _short term_ and _unsustainable_ , you might have a point. But unlike the US steel example [1], you haven't made such an argument. You've just argued that competition can damage companies, which of course is part of the point.

One way to look at anti-competitive rules is that the point isn't to protect companies at all. In the steel case, the point is that dumping will destroy the American industry and then--this is the crucial part--China can hike up its prices way above current levels because there's no competition. If China couldn't do that for whatever reason, then that would be great for American consumers, who would benefit from cheaper steel, and--in principle at least-- the competition rules would do nothing about it. In other words, in theory, the law doesn't care about the American steel industry; it only cares about the long-term well-being of steel consumers, which requires sane pricing. That industries have co-opted that in all sorts of ways to ironically entrench their positions in anti-competitive ways should not distract you from the core purpose of the rules.

So applying that here, since the rules in question are meant to protect the workers, the problem would be if Google were hiring all these people to destroy Apple and then be able to slash salaries, since no one would have anywhere else to go. Since that strikes me as implausible, and at the very least not established, I can't see how we can think of Google's poaching as anti-competitive.

[1] I'm not sure I buy the US steel argument either, but that's a separate discussion.

<comment><USER34> It's a slippery slope for sure. And given your skepticism of even the US steel case, I can imagine where you stand on that slope. Which is fair.

But to complete my devil's advocate argument, "poached" offers could in fact be unsustainable in the long run. It may be worth it to Chrome to add a $100K signing bonus to a Safari engineer. But they're not going to be paying them an extra $100K above market year over year.

If there actually were a poaching war kicked off, you can imagine that the value of inflicting targeted damage on competing teams, and protecting teams from such damage, could balloon to a very large amount. Theoretically all the way up to expected profit, if there were no other mechanisms to prevent it.

This could have a chilling effect especially on startups entering competition with deep-pocketed big companies. They could just poach the best talent with offers the startups couldn't match. That's exactly like a big chain engaging in loss-leader tactics to destroy local competition.

You could maybe also draw a parallel with what's going on with patents right now. It's a huge tax on development, especially to startups.

Now that I think about it, this could very well backfire on all of us. Anti- poaching agreements among companies aren't the only way to prevent this sort of thing. If they get sued over that (which is targeted at the practice of poaching), what companies may start doing is figuring out more restrictive covenants in employment contracts. Exclusivity clauses, etc. I'm a little scared to think what they may come up with and standardize if their attention is focused on it.

<comment><USER35> I'd love to see those contracts. They either have to put in a nice big juicy monetary penalty(If it's not your new employer will cover it) that each year at your pay review you can point to and say you obviously think me leaving is worth this much why am I paid 2-20% of it, or they chuck in a non-compete which are often unenforceable (unless they continue to pay you) or doesn't really matter to the hiring company as they can stick you with an unrelated project as they're not looking to capitalize on your skill as much as screw the other company. Really the only way I see it working is with deffered forms of payment which means more equity or performance bonuses. Maybe I'm just not imaginative enough.

<comment><USER34> See right there, that "imagination" is what I'm talking about: companies figuring out a way to shift compensation into long-term rewards that disincentivize employees from considering unanticipated competitive offers.

The problem is you seem to think it's only additive and therefore great for employees. Hey, more bonuses, more equity.

But if _everyone_ adopts it as a standard operating procedure, it could lead to a lowering of base salaries. So then we get paid like salespeople: little salary, mostly performance based. Do you want that?

Bottom line, it could be opening a can of worms. My personal philosophy is that it's rarely good to be righteous and inflexible. It often backfires or escalates a situation.

</comment></comment></comment></comment></comment><comment><USER36> This is real theft. I applaud my free market overlords for such setting fine examples of Machiavellin psychopathy and systematic duplicity, where they on the one hand lament the "shortage" of engineers and the failure of the education system, whilst simultaneously depressing the wages that should have been demanded from the fruits of that self same system.

Fuck. These. Assholes.

</comment><comment><USER37> To quote Stringer Bell. Again.

"[I]s you taking notes on a criminal fucking conspiracy?"

Setting aside issues of ethics and legality, I cannot believe that any of these people would ever commit _any_ of this to electronic record.

<comment><USER38> one of the best quotes from the series

what's more astounding is that eric deliberately says in an email to send the message orally so they don't get sued

</comment></comment><comment><USER39> "Brin appears to not know what the nature of the agreement is between the two companies."

I still remember a HN thread which suggested that Larry/Sergey fire Eric Schmidt for this: [https://news.ycombinator.com/item?id=3523513](https://news.ycombinator.com/item?id=3523513)

<comment><USER40> That's two weeks before the no-hiring agreements were put into place.

</comment></comment><comment><USER41> Since this has market-wide effects, it seems fair to compensate _all_ engineers working in the bay area during that time period.

</comment><comment><USER23> From 2006

> he was sure we were building a browser and were trying to get the Safari > team

Well he wasn't wrong...

When did work start on Chrome? First release was in 2008.

<comment><USER42> ... and "i told him we were not building a browser". I can see 3 possibilities:

1\. That was a lie. Perhaps I'm naive, but I would expect him to say that he's not going to discuss the Google product line-up.

2\. They were not building a browser, but Steve's accusation got them thinking about building a browser.

3\. They were not building a browser, but later decided to build a browser.

<comment><USER43> Er, did you read the email? Brin explicitly says they have people working on Firefox and were thinking of making a modified version of it, but hadn't made the final call yet.

</comment></comment></comment><comment><USER44> I'd like to see criminal prosecutions here.

</comment><comment><USER45> Not sure why this is ruffling so many feathers. There are thousands of great tech companys to work for that aren't on any Google, Apple or EBay "no-hire" list and vice versa. I fail to see how a few big companys agreeing not to poach talent from each other artificially reduces the total compensation ceiling industry wide.

<comment><USER46> It was more than a couple of top tech companies:

[http://pando.com/2014/03/22/revealed-apple-and-googles- wage-...](http://pando.com/2014/03/22/revealed-apple-and-googles-wage-fixing- cartel-involved-dozens-more-companies-over-one-million-employees/)

</comment></comment><comment><USER47> Since our employers are clearly not above playing juvenile dirty tricks, what's to stop us engineers returning the favor?

Other professions (Doctors, Lawyers) use legislation to restrict the supply of labor and drive up prices, so why should software engineers be any different? We currently make ourselves vulnerable to manipulation and abuse in a way that no other profession has been stupid enough to do for centuries.

We should lobby aggressively for legislation requiring professional accreditation for practicing software engineers, as well as for the provision of training and documentation services. We need to shut down the technical MOOCs, as well as efforts like stack overflow and code academy. All of these things, whilst seemingly noble, do our profession grievous harm.

</comment><comment><USER48> The behavior seems slimy (otherwise there'd be no need to be all cloak-and- dagger about it), but the interpretation seems sensationalist (Pando: "Price Fixing!"). As far as I can tell from the evidence, this was a 'no cold call' agreement, not an agreement not to hire people who apply or to set their wages, perhaps with the exception of high level managers or executives, most of whom, if they wanted to demand higher salary, could leak or threaten to leave for another company, and who are often under other constraints. In fact, it's not even clear this is about wages per say, but the disruption that comes from breaking up team and concerns over intellectual property/trade secrets leaking.

I'd be pissed if I applied for another job and was turned down purely because of my previous employer. But I'm not phased by avoiding cold calls. I still get loads of emails trying to recruit me and they're mostly annoying. If I decide to switch jobs, it'll be because I initiate it, not because of HR reps phoning me.

If you were around during the last dot-com boom, you may remember the ridiculous poaching that went on, startups offering insane signing bonuses and other perks, employees changing jobs after only a few months on the job. I worked for a company once that had $100+ million in Softbank funding, and funneled a huge amount of it through headhunters which received a bounty on each hire, and were incentived to bribe prospects to quit their current job.

I'm not sure this is healthy for the industry as a whole. There's already an apparent bubble in asset prices and cost of living in the Bay Area, and while it seems good for some tech workers in the short term to have salaries pumped through the roof, I'm not sure it's good for the overall tech economy, or the economy in general.

I'm somewhat sympathetic to the notion that companies want to avoid aggressive and invasive poaching on each other's workforces, it could turn into mutually assured destruction. If I had a startup, I'd be pissed of someone came along (and poached my employees instead of an acqui-hire) that I spent significant amounts of resources recruiting and training.

To read some of the press articles, you'd think this was the Grapes of Wrath or something, that poor tech workers, the ones who drive around in luxury busses and pay $3000-5000/mo for studio apartments in SF, are woefully under compensated. I wonder if this was a story about Goldman Sachs and JP Morgan conspiring to keep down the compensation of Wall Street money managers through no poach agreements, we'd have the same coverage.

Here's analogy. Let's say there is an employee marketplace. Employers list jobs for offer and salary. Employees list skills, availability, and asking salary. If the employers don't conspire to artificially restrict the offers and salary prices listed, would we say this is a competitive market with no price fixing?

Ok, now let's say that besides listing the jobs and prices, Employers activity solicit buyers. With stocks regulated because of issues ([http://www.sec.gov/answers/cold.htm](http://www.sec.gov/answers/cold.htm)). But let's say employers cold call the employees and tell them to 'buy' a particular offer. Then at some point, the companies cease using sales forces to go out and cold call people to buy these offers. Instead, employees must come to the market of their own accord and bid on them. Is this really price fixing?

If all brokers stopped calling you trying to get you to "Buy XYZW", you wouldn't consider them trying to manipulate the price of XYWZ.

<comment><USER49> >If you were around during the last dot-com boom, you may remember the ridiculous poaching that went on...

>I'm somewhat sympathetic to the notion that companies want to avoid aggressive and invasive poaching on each other's workforces...

>If I had a startup, I'd be pissed of someone came along (and poached my employees instead of an acqui-hire) that I spent significant amounts of resources recruiting and training...

I find the term "poaching" in this context to be disgusting. Employees aren't game captured by underhanded or illicit tactics. Employees are human beings that think and make decisions for themselves, and talk of them being "poached" as if it wasn't their choice is offensive.

>There's already an apparent bubble in asset prices and cost of living in the Bay Area

House prices are artificially high because of NIMBY zoning laws set by the very wealthy , and NOT the tech employees in question. The strata of middle class are being pitted against each other by the wealthy.

> and while it seems good for some tech workers in the short term to have > salaries pumped through the roof, I'm not sure it's good for the overall > tech economy, or the economy in general.

When a company keeps the money instead of paying its employees, the money is funneled to stockholders, who are in general richer and fewer in number than the employees. Are you seriously suggesting, in spite of the abject failure of trickle down economics, that giving money to the middle class tech workers instead of the wealthy (owners of the company, and shareholders) is bad for the economy?

>To read some of the press articles, you'd think this was the Grapes of Wrath or something, that poor tech workers, the ones who drive around in luxury busses and pay $3000-5000/mo for studio apartments in SF, are woefully under compensated

"No poaching agreements" ineluctably means THEFT. $10,000 a year extra is a _lot_ of money for tech workers and their families. The victims were skilled workers that were deserving of the pay stolen from them. Your suggestion that we shouldn't empathize with any victims of theft if they're not destitute is fatuous and offensive.

<comment><USER50> >I find the term "poaching" in this context to be disgusting. Employees aren't game captured by underhanded or illicit tactics. Employees are human beings that think and make decisions for themselves, and talk of them being "poached" as if it wasn't their choice is offensive.

The word "poach" by definition isn't exclusively tied to animals, but rather refers to property or other potential resources associated with another.

<comment><USER51> Got it, not animals... _property_

<comment><USER50> Take your pick. "To take without permission", or "to catch by trespassing on private property", is that better?

Feel free to be outraged by the practice of collusion, but is it worth getting upset about a vague slang industry terminology?

[http://dictionary.reference.com/browse/poach](http://dictionary.reference.com/browse/poach)

</comment></comment></comment></comment></comment><comment><USER52> Meanwhile in medicine we need the AMA to keep physicians in short supply so the wages stay high...

</comment><comment><USER53> Whatever happened to "Don't be evil" :(

</comment><comment><USER54> Genentech ([http://www.gene.com/](http://www.gene.com/)) is also on "do not cold call" list. How this company is related to google's business profile?

</comment><comment><USER55> Now lets talk about "Don't be Evil!"

</comment><comment><USER56> I personally don't care if employers agree not to hire each other's employees. People are free to make agreements if they want to, just as employees are free to not work for them. There's nothing immoral about it.

Are you free to use the power of the state to try an boost your salary? I don't think you should be able to do that. But apparently many people do.

<comment><USER13> > _People are free to make agreements if they want to, just as employees are > free to not work for them._

No, they're not. This is anti-competitive wage suppression. It's illegal.

> _Are you free to use the power of the state to try an boost your salary? I > don 't think you should be able to do that. But apparently many people do._

Pretty sure that's illegal too.

<comment><USER14> You're pretty sure raising the minimum wage is illegal?

<comment><USER13> The original statement clearly implied government corruption. After all, those raising the minimum wage don't earn it themselves. Thus, they're not "using the power of the state to boost their salary".

<comment><USER56> What I was referring to was trying to prevent people from making agreements that make it easier to keep their employees. Putting a stop to that would be using the state as a way to make more money.

And, yes, those lobbying for something are a different group than those approving. But I bet if I lobby for something you don't like that gets implemented, I'd be responsible for it, if not wholly responsible.

</comment></comment></comment></comment></comment><comment><USER57> Genuine question - I see a lot of references to the fact that this practice is "illegal", but what law is it violating?

<comment><USER50> Antitrust law such as Sherman. [http://www.justice.gov/atr/about/antitrust- laws.html](http://www.justice.gov/atr/about/antitrust-laws.html)

</comment></comment><comment><USER58> I'm confused about this entire situation. If I own a company in the US then it's my right to not hire from someone else's company if I so choose, yes? And in the case of tech giants then there is a lot of proprietary tech knowledge that can exist in an engineer's brain that may make him or her a very strategic hire for my competition. So, if I'm paying an engineer $100K and Google sees fit to hire them away for $200K then, sure, it's in the engineer's interest to tell me because then I would need to offer $250K to keep them. And this isn't because they have suddenly become more valuable, or because the engineer has suddenly developed new skills, it's simply a game of strategy and money that could potentially hurt both businesses. So, it makes sense to me that companies would agree to skip the drama, and just agree not to poach talent from each other. And, honestly, how many Apple designers, Google engineers, or EBay executives have gone hungry because of these non-compete agreements? When you're playing in that league then you are already extremely well compensated. So, is it simply a matter if principal? Why exactly is it illegal? These are honest questions.

<comment><USER59> It's illegal for the same reason that it's illegal for companies to collude to fix prices. You could apply your same arguments.

<comment><USER58> I guess so. But also it doesn't seem that companies are artificially keeping wages low. I mean if an engineer at a tech company isn't happy with his salary then he wouldn't have taken it in the first place, right? It's not the same as a person taking a job at a grocery store because they simply don't have other options. Top talent gets head hunted all the time. So if they want a better salary couldn't they just go somewhere else that pays it, as long as it's not a company that's part of the agreement?

<comment><USER59> Not necessarily. Keep in mind that the wages at the big tech companies affect wages at other firms. If the big techs drive down wages, then wages will go down at the smaller firms as well.

<comment><USER58> Ah yeah that's a good point. And I guess it's in the big tech's interests to keep smaller companies under staffed.

</comment></comment></comment></comment></comment><comment><USER60> It's interesting that Microsoft is barely mentioned here. Perhaps it's just because they are not in the Bay area?

<comment><USER21> They are. Have a look at the last document.

</comment></comment><comment><USER61> _" Additionally, there are no restrictions at any level for engineering candidates."_

Basically their agreed upon policy says that they can hire any engineers they want, but you better not hire one of our managers! What an indictment of the higher value attributed to managers over engineers.

</comment><comment><USER62> Here's an earlier story about this: [http://www.theverge.com/2012/1/27/2753701/no-poach- scandal-u...](http://www.theverge.com/2012/1/27/2753701/no-poach-scandal- unredacted-steve-jobs-eric-schmidt-paul-otellini)

</comment><comment><USER63> Don't be evil,...except when it comes to hiring & labor practices.

</comment><comment><USER64> Watch talk by Lawrence Lessig SCALE 12x: [https://www.youtube.com/watch?v=D3O1MC1AqvM](https://www.youtube.com/watch?v=D3O1MC1AqvM)

</comment><comment><USER65> Employers "conspire" to hold down wages -- "bad".

Employees "conspire" to raise wages (unions) -- "bad".

Keep in mind the multiple dimensions upon which "privilege" acts -- including those of perception.

In other words, you think people should be "free" as "individuals" to earn whatever they are worth. Well, at its simplest, that is what you are going to get. You are ALSO going to get employers to work against this. Welcome to "libertarianism".

In other other words, I'm suggesting that we are all members of society, and that our personal interests do not lie solely in our own, personal remuneration.

</comment><comment><USER66> So how many Google share holders does it take to put a motion of "no confidence in the board" on the order paper at the next Google AGM.

<comment><USER67> Given the amount of specializes stock that Larry and Sergey hold (over the other shareholders, essentially giving them the reigns for the time being), it's a futile effort.

<comment><USER66> But makes the issue public and shows up the nature of the "dodgy" stock classes.

And it woudl mean that the board woudl have to stand up and either defend what they did or admit they are law breakers.

BTW the FTSE threw out a company with restrictive stock classes out of one of its index's only last year - the Daily Mail trust.

</comment></comment></comment><comment><USER68> Maybe this will bring end-to-end encrypted e-mails to Gmail, so that when they do discuss such things in the future, it's all encrypted properly?

One can hope.

<comment><USER69> I'd have to check my US law, but I'm pretty sure that a major corporation encrypting its internal emails and then trying to claim to a court that it can't produce documents under warrant because they're encrypted doesn't let the e-mail owners "win..." It gets them thrown in jail for contempt of court.

If you want some evidence to back that hypothesis: the e-mails you're talking about right now are encrypted. They're encrypted inside Google's servers. But it doesn't matter in the face of a court order. It's not like the Justice Department accessed these files that are being reported on with wireshark.

</comment></comment><comment><USER70> This is good news for every entrepeneur who is developer. Why? Because it shows that you are worth more than companies pay for you!

</comment><comment><USER71> I remember having heard news about companies not hiring from each other a few years ago, I don't know for what exactly. I suppose to not try and steal each other's knowledge by buying people. I'm not sure which companies it were back then, but Apple and Google are very likely candidates. What changed? Why is this news now?

</comment><comment><USER72> Well hello Sergey Brin.

</comment><comment><USER73> a

</comment><comment><USER74> Wait a second. These emails[1] (not the commentary around them) seem to say that the big tech companies in the valley agree not to _recruit_ employees of other companies. There's a big difference between recruit and hire. It seems to me like they've all agreed it's pointless to just poach each other's employees.

Eric Schmidt says the practices are zero sum. In my opinion this is exactly correct. If all the big companies just move each other's employees around, nobody benefits. If instead they all agree to look outside of the talent that's already been recruited, everyone (including developers) benefits. New talent keeps coming in, and developers not in big tech companies have a shot at working at places their parents will recognize.

1\. [http://pando.com/2014/03/22/revealed-apple-and-googles- wage-...](http://pando.com/2014/03/22/revealed-apple-and-googles-wage-fixing- cartel-involved-dozens-more-companies-over-one-million-employees/)

<comment><USER75> "If all the big companies just move each other's employees around, nobody benefits."

The companies may not benefit, but the developers certainly will! Not just the ones being moved around, either --- it'll raise market prices, and so _every_ developer will benefit, even those who don't move.

<comment><USER69> Honestly, an engineer who is unhappy with their salary can pretty much walk down the street to the next company in the Valley. They don't need recruiters calling them to remind them of that.

I think drawing a line from a handful of non-recruitment agreements to price depression in the specific world of the software engineering industry requires more than hand-wavy assertions based on generalized economic theory.

</comment></comment></comment><comment><USER76> This is the free market. People choose what they think they are worth. If you don't think Google is paying you enough, quit. Deals with companies to avoid poaching have a cost themselves. This doesn't need more government interaction this needs people to value their work, to think.

<comment><USER12> I'm not sure why this is being down voted... because it disagrees with your view?

I don't agree with the statement but it does represent a possible solution - all companies involved in this should have their employees go on strike!

People think this idea is ridiculous because they've been told it is over and over and over again. Are unions really evil or are they ever more necessary to balance out the insane profits companies are making?

Just some questions worth thinking about before you arbitrarily down-vote someone...

<comment><USER76> Thanks, just to clarify I'm against unions as they come with a large political power which I think is undeserved.

My statement merely aims to say that I don't think there is anything currently wrong. These companies make billions. They could easily afford to pay larger salaries. Why should they if people will work for less? Why isn't everyone's salary like Eric Schmidt?

<comment><USER69> To expand a bit on the thought of unions in the Software industry...

Step 0 would be to convince software engineers that other software engineers who don't perform up to the same level as them should be protected for the good of the working-class engineer, instead of kicked to the curb to make room for a more productive engineer.

A bit of a hard sell, as engineers tend to see themselves as co-owners of the solutions they create and hate to see their work fail to launch because they're saddled with bad coworkers.

</comment></comment></comment></comment><comment><USER22> I am wondering what happens when one mails directly to the mentioned addresses.

Or, what 4chan/other trolls could potentially do with it.

Publicly disclosing internal matters for the courts is bad enough, but PII like internal mail addresses should be redacted before release!

<comment><USER77> I think it's reasonable to assume that the 'email@example.com' mailbox already has something to filter out the crazy.</comment></comment>


Ask HN: How might a businesses benefit from using regular expressions? - <AUTHOR> I am taking part in a technical writing certificate program. As part of my work, I am required to create a whitepaper outlining some specific benefits of implementing our assigned topic. Frankly, I am a bit jealous of those people in the class assigned things like fusion power or robotics - since the benefits seem more immediately obvious - but that is neither here nor there.
So, I am reaching out to HN as a sort of hive-mind SME[1] to help me better direct my own research.
What are some interesting and beneficial ways that a company in any industry implement the use of regular expressions? I'm especially interested in cases where they might have been implemented, but weren't, to somebody's detriment (if such a thing has ever happened).
[1]Subject Matter Expert <comment><USER2> Pretty much anything involving searching and filtering. For instance if you'd like to search about the benefits of regular expressions in industry it would be very useful to be able to use regular expressions to do so in Google/Google Scholar.

</comment><comment><USER3> you can use regular expressions to filter make validation filters on websites for things like email, phone, etc. you could filter for sql injection attacks and if you didn't catch it they could delete your whole database.</comment>


A call to honesty in pandemic modeling - <AUTHOR> https://medium.com/@wpegden/a-call-to-honesty-in-pandemic-modeling-5c156686a64b <comment><USER2> I think the assumption is that in 2 months, we'll have test capacity, lower number of cases, and we'll be able to switch to containment.

But this assumption definitely needs to be articulated.

<comment><USER3> Such an assumption should be explicitly been represented in the prediction model. Cutting off the time window of a model at an arbitrary period of 2 months is ambiguous at best when the model is about estimating the cumulative outcome in time.

<comment><USER4> The point of these models is to estimate peak utilization of health facilities, not to predict outcomes of different remedies after the initial suppression period.</comment></comment></comment>


Elements C++ GUI Library - <AUTHOR> https://github.com/cycfi/elements <comment><USER2> Firstly, this looks fantastic. And the GUI not taking over the main loop is a wonderful feature. This is something that has really irritated me using most other GUI libraries (including Qt).

> The GUI should be declared in C++ code.

While I love the declarative aspect of the above, would the authors consider using a different DDL for layouts rather than C++?

The reason I ask is: this now enables creation of wrappers around this library for other languages like Golang and Python.

Also, having the layouts described as plain data rather than C++ code would allow not having to compile for minor UI/layout changes. Which will in turn permit faster prototyping during UI development.

<comment><USER3> First time loading any of the examples it takes a noticeable time but it creates some cache files e.g. "e33b398b592a74de7cce1c9035ee8082-le64.cache-7" which seem binary. Subsequent loads are fast.

</comment></comment><comment><USER4> Looks cool! I wonder how this compares to Dear Imgui in terms of features. (I understand this may not be an immediate mode toolkit, so not really discussing that side of things)

Would the usual competitor to this be JUCE?

<comment><USER5> I don't think so. JUCE includes an audio/dsp engine. This is only for UI

<comment><USER6> The DSP module in JUCE isn't production quality, and the audio I/O integration in RtAudio is good enough for even professional use cases.

JUCE is really painful to use if you want to integrate it into anything modern. It's old, it's slow, and you really can't make it better. I really can't express how much distaste I have for JUCE after shipping multiple products built on it - it solves _one_ hard problem (wrapping AU, AAX, and VST3), other than that it is dog slow and can't be improved because the core devs don't accept outside contribution for no reason except their own hubris.

Any cross platform UI in C++ that isn't JUCE or Qt is highly welcome. Especially one that allows me to pull in external dependencies and use modern build systems, test frameworks, CI/CD, and other tooling.

<comment><USER7> Have you tried the latest version of JUCE? I think it supports cmake now.

<comment><USER8> I've actually been using JUCE with CMake for ages using this project:

[https://github.com/McMartin/FRUT](https://github.com/McMartin/FRUT)

It's meant to convert Projucer to CMake files, but we just create them ourselves. The CMakeLists files come out a bit wonky, but it works.

</comment></comment></comment></comment></comment><comment><USER9> What are the technical details behind how it avoids creating an event loop? Is it just creating a UI thread that is doing the event loop work in the background?

<comment><USER10> If there is no event loop I assume it has to be callbacks from the OS?

<comment><USER11> Isn't there still an event loop internally though even with callbacks?

<comment><USER10> I guess there need to be one somewhere unless you do hardware interrupts.

It seems to have an event loop though:

       void app::run()
       {
          MSG messages;
          while (_running && GetMessage(&messages, nullptr, 0, 0) > 0)
          {
             TranslateMessage(&messages);
             DispatchMessage(&messages);
          }
       }

<comment><USER12> NOTE: That is the classic Win32 event loop.

</comment></comment></comment></comment></comment><comment><USER13> This looks really great--fully modern C++ coded by the best of the best! If it is like his other work, it will be a joy to use.

<comment><USER14> Ironically, the last update is the removal of Boost dependency :)

<comment><USER15> I'm curious, why is that ironic? Removing Boost dependencies in favor of modern STL is a common and healthy chore.

<comment><USER14> Of course. Just the parent mentioned his other prominent projects - which are several Boost libraries actually.

</comment></comment></comment></comment><comment><USER16> How does this do on the "integration" part of GUI? Like is it easy to spin a "native" file picker on Windows/macOS?

(Sure there are native APIs for that, but bridging the gap is one of the point of a cross-platform GUI framework, isn't it?)

</comment><comment><USER10> Nice with effort being put into fesktop GUIs. It is really an area that degraded alot I feel ... with many framewotks being just too complex and interdependent on stuff so you can't keep the build quite clean.

</comment><comment><USER17> Is all rendering done using Cairo?

<comment><USER18> I was wondering if it uses native controls on each platfrom.

<comment><USER17> No one does that anymore because the differences between platforms are too large and there is no single platform native controls anyway.

<comment><USER19> I wonder why this lesson we learnt from desktop GUI development doesn't apply to mobile apps. Seems like the preferred approach there is to use native controls.

<comment><USER17> The APIs are better.</comment></comment></comment></comment></comment>