Microsoft Staff: Do Not Use HoloLens for War - <AUTHOR> https://www.bbc.co.uk/news/technology-47339774 <comment><USER2> Previous discussion [1].

        Microsoft Workers Demand It Drop $450M U.S. Army Contract (reuters.com)
        202 points by petethomas 13 hours ago | cached | flag | hide | past | web | favorite | 260 comments

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

</comment><comment><USER3> Where exactly is the limit?

Windows, Microsoft Office and other Software is used "for war" all the time, and not just by the US.

<comment><USER4> I think that's a false dichotomy. Office software is general purpose, and maybe the military buys it like everyone else. AR gear for soldiers is not general purpose.

Similarly, criminals and non-criminals alike use public roads and internet, but only one of those groups would have need of a weapon with a ground-off serial number, for example.

So is the point the buyer, or the purpose?

<comment><USER5> Microsoft is a defense contractor. They've been working closely with the military since the 90s. I'm not sure when people decided to suddenly ignore or forget this.

<comment><USER6> Does it matter when? If the employees decide they don't want to develop for the military, that's their prerogative. They can try to change their current employer's practices, or they can leave.

</comment></comment></comment></comment><comment><USER7> It will be used for porn and military purposes. It's extremely naive to assume the opposite.

<comment><USER8> What's more, it's extremely naive to work in big tech like Microsoft or Google and not expect your work to be used by military some day.

<comment><USER9> You say that as if there's a huge history of these companies' tech being used to enhance warfare.

<comment><USER10> Militaries around the world already use the Xbox 360 controller extensively. As well as Surfaces, and of course the obvious like Windows, Excel, Word, etc.

<comment><USER11> And before that, different versions of windows. I recall going for an interview with some sonar guys looking at using Direct3D back in the late 90s.

</comment></comment></comment></comment></comment><comment><USER12> Refreshing to see employees of a megacorp speak up against company decisions. I wish we could see more of the same from Facebook. Unfortunately a huge paycheck seems to do weird things to your ethical compass. It's not enough that those that disagree simply quit.

<comment><USER13> What is the ethical consideration here? Augmented reality headsets aren't weapons.

I find it unrefreshing to see employees warping something benign to achieve personal attention. This is a fight in search of a subject.

<comment><USER12> > Augmented reality headsets aren't weapons.

Who you sell to can always be an ethical consideration, even if the product isn't "unethical" in itself.

> to achieve personal attention.

What makes you think these people would want "personal attention"? Isn't the attention here mostly a _risk_?

<comment><USER13> Who they are selling to is an ethical entity, their own government, so this point doesn't make any sense.

I am thinking this matter is about personal attention because the complaint is absurd. It simply isn't rational.

</comment></comment></comment></comment><comment><USER14> This sounds like a publicity stunt.

No group of educated people can seriously think this would have any effect...

<comment><USER15> Do something is better than do nothing.

<comment><USER16> Not necessarily. Doing something can be worse than doing nothing.

</comment></comment></comment><comment><USER17> let's add some critical thinking: why not use it for war? Would it be better for the world if the US military was less well equipped relative to Al-Qaeda, Russia? I sure don't think so. I think it's best that any fight our military gets into is as asymmetric as possible, and in general the more asymmetry, the less people will die.

I'd further like to emphasize that the idea that the inequality in strength between our military and various 3rd world warlords is a form of injustice is absurd and childlike and anyone who thinks this way deserves to have their opinions discounted like children.

<comment><USER18> Interesting thought experiment: if you think of the military as a business - then you're basically advocating for the US to have a monopoly on military power.

<comment><USER19> 3rd world warlords aren't the only other militaries in the world.

</comment></comment></comment><comment><USER9> They can always package up anything used for military purposes and move it to a different branch or subsidiary to create a large enough disconnect that will keep most employees satisfied.

<comment><USER3> Not really, because they need to keep HoloLens inside the company. They could create a subsidiary which buys HoloLenses and sells them to the government, but that would still mean that Microsoft is taking a contract to sell the units.

<comment><USER9> > Not really, because they need to keep HoloLens inside the company.

HoloLens maybe, but the hypothetical repackaged FreedomLens could simply be based off of it.

</comment></comment></comment><comment><USER20> I hope they will use SignalR and Orleans as backend for battle operations so I can market my skills as battle tested.

[https://github.com/dotnet/orleans](https://github.com/dotnet/orleans)

[https://github.com/aspnet/AspNetCore/tree/master/src/SignalR](https://github.com/aspnet/AspNetCore/tree/master/src/SignalR)

</comment><comment><USER21> If they really want to have any control over what Microsoft does with their technology they should unionize. Same goes for any other large tech company.

</comment><comment><USER22> They are completely free to quit if they don't like what they're building is used to help their soldiers defend their own country.

<comment><USER23> The only attack on american soil I can recall is Pearl Habor...

Almost invariably, to provide the american military with hardware is to arm an offensive force.

<comment><USER24> As has been pointed out repeatedly in other comments, we live in a post- nuclear era where military strength is, itself, the defense. In this particular case, it's less relevant, but since we are generalizing I'm pointing it out.

As for improving military training and tactical hardware, yes it will most likely be used for offensive purposes. The absence of the technology wouldn't stop those offensives though; the absence would just result in less-well- trained less-well-equipped troops in the same situation. As has been pointed out elsewhere, bad training and lack of information is likely to lead to more deaths.

While I think it's wonderful employees of major tech companies are trying to drive more ethical choices, this was an odd choice for a line in the sand.

<comment><USER25> > we live in a post-nuclear era

That's a bold statement to make, particularly in the context of the US pulling out of INF and JCPA (Iran deal), especially when accounting for the reality that nuclear weapons "modernization" is still steadily going on [0]. That's not something you'd expect to see in the "post-nuclear era".

Particularly not with a US president who clearly does not understand nuclear weapons and would just love to sell and use them.

[0] [https://thebulletin.org/2017/03/how-us-nuclear-force- moderni...](https://thebulletin.org/2017/03/how-us-nuclear-force- modernization-is-undermining-strategic-stability-the-burst-height- compensating-super-fuze/)

<comment><USER24> Post-nuclear as in: following the invention and use of nuclear weapons.</comment></comment></comment></comment></comment>


The New Twitter Logo in CSS - <AUTHOR> http://labs.upperdog.se/twitter-logo-in-css/

<comment><USER2> Am I the only one who's bothered by the slight tilt that they introduced into the new logo? I don't think the old bird was weirdly tilted like that.

<comment><USER3> It's triggering optimism / uplifting. Interesting it's bothering you in some way.

Edit: To add, it also could be that there's no movement to it - so it also gives me a sense the bird is stalling, and about to fall the ground.

<comment><USER4> Or it's symbolising a desperate bird among many other birds trying to get some food from a feeding hand.

Joking.

<comment><USER3> I laughed. Thanks.

</comment></comment></comment></comment><comment><USER5> While I appreciate the time and effort that went into producing this, I must admit that I am a little confused; what is to be gained by recreating logos using only CSS?

There are only two answers that I can come up with: practice or showcasing new properties. In my opinion, both of those reasons don't justify recreating an image using CSS. Surely if you wanted to practice, or showcase a property, you would be better off creating something that could actually be used?

Please feel free to 'enlighten' me, as I have almost certainly overlooked something.

<comment><USER6> Speed and size - if you you were using images, you are going to incur an extra HTTP request, while using this method everything needed to draw the logo is already at the client-side. In terms of size, the HTML and CSS needed to draw the logo could well be smaller than that needed for an image. In this case the HTML+CSS is around 2.6K (without the Google analytics code), while a screenshot of the logo is around 10K - and the HTML+CSS version will scale to any size without pixilation.

Google's Marissa Mayer did a talk about Google's quest for speed a few years back, where she showed that an HTML version of the Checkout icon was faster than an image: [http://www.bitcurrent.com/marissa-mayer-at-velocity09-and- go...](http://www.bitcurrent.com/marissa-mayer-at-velocity09-and-googles- quest-for-speed/) (about halfway through that article).

<comment><USER5> What would you then recommend when needing to support legacy browsers?

<comment><USER6> Heh - it is not without its drawbacks! The Google Checkout icon didn't hit that problem, as they used tables, but certainly in this case I don't see how that could be achieved quite so readily.

</comment></comment></comment></comment><comment><USER7> Old and new logo side by side: <http://i.imgur.com/OAFlx.jpg>

<comment><USER8> Old and new logo overlaid on top of each other: <http://dribbble.com/shots/592612-New-Twitter-Logo>

</comment></comment><comment><USER9> Seems like the Twitter logo is evolving towards the Dove logo: [http://www.southernbellaswaystosave.com/wp- content/uploads/2...](http://www.southernbellaswaystosave.com/wp- content/uploads/2011/05/dove_logo.jpg)

<comment><USER10> This was my bought exactly. Like the simplicity, but this looks less like a tech company now.

</comment></comment><comment><USER11> Also seen here: <https://github.com/Haizyfox/twitter-bird-pure-css>

</comment><comment><USER12> Thanks, saved me from having to figure out the circles by myself.

</comment><comment><USER13> What IDE is used to create the logo? adjusting size in code is difficult.

<comment><USER14> Just TextMate.

</comment></comment><comment><USER15> That's not CSS, that's HTML+CSS.

</comment><comment><USER16> Doesnt work in IE8

<comment><USER17> Good</comment></comment>


Starting a startup in a toxic environment? - <AUTHOR>

What advice and tips do you guys have for starting a startup in an environment where everyone expects you to go work for someone else?
The ideal solution, from what I hear, is to move to an environment that supports the idea of startups but let's say it's currently impossible but it's something you keep in the back of your mind.
So now your stuck in this environment.  Friends, family, etc tells you to get a job and climb up the ladder.  Absolutely nobody wants to help you with your "crazy" idea.  A relative is grudgingly willing to let you stay at their place but they aren't that thrilled with what your doing.  What is you next step?
To help lower the variables, let's say it's an internet startup and you know enough basic coding to test out a few ideas you have.  Oh, and your hungry too. <comment><USER2> I feel your pain, although I can't say my environment is toxic. But, I do have to deal with past decisions and their reprecussions.

Those include helping feed and house 3 children and a wife, paying off ~$100k in student loan debt, and living in an area that, while generally intellectual, is not a startup haven.

Here's how I have dealt with the challenges:

\- Find a position that allows you to meet your obligations and work flexibly -- in my case this means working remotely and without a set schedule (thank goodness).

\- Find a group of peope, locally or online, that share your passion for starting something. Luckily, I am close to Kansas City, which has a burgeoning startup scene, and I discovered HN.

\- Find and infect with your enthusiasm one friend or family member. For me, it is my wife and a very good friend from high school. This person will not only support you, but often go to bat for you when other friends question your choices.

Good luck!</comment>


Typora–a minimal markdown reading and writing app (OS X,Windows,Linux) - <AUTHOR> http://abnerlee.github.io/typora/2015/03/11/why-typora/ <comment><USER2> The problem I have with this approach, is how do I change something that's part of the syntax? Eg how do I change the url for a link? How do I change the heading level?

A pure editor or editor+preview doesn't have those issues.

<comment><AUTHOR> you just put the cursor on that item again (whatever it is) and the markdown reappears, and you can change it. it's actually not a problem at all and quite intuitive

<comment><USER2> Doesn't work for headings, list items, etc.

Even when it does work, it's kind of janky to use, because I have to click/move the cursor to the displayed text, and then move it again once the markdown parts appear.

Honestly: the "Source Code Mode" is a _lot_ more appealing: it leaves the full markdown visible, but applies styling to the code, so headings are bigger, bold/italic are styled appropriately, etc.

However: MacDown does this, is open source, and has dedicated edit and preview windows/panes.

Good luck (if you're the author) with this. It's nice to see people still writing proper (i.e. native, not something with a Chrome runtime) Mac Apps, but this one isn't for me.

<comment><AUTHOR> not the author just a fan

if you put the cursor just before the first character in a heading, then hit backspace/delete, you get back to plaintext. same for list items</comment></comment></comment></comment>


Crossfit Deletes Facebook and Instagram After User Group Is Deplatformed - <AUTHOR> https://reason.com/2019/05/24/crossfit-deletes-facebook-and-instagram-after-user-group-is-deplatformed/ <comment><USER2> Previously submitted twice with the second submission leading to a substantive discussion [0][1].

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

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

<comment><USER3> Looks like it was flagged/removed with no explanation. It's currently ranked 107, even though it's vote:time ratio should easily put it on the front page.

Kind of ironic given the subject of their post. If I didn't know any better, I might think there are some FB people attempting to bury this story...

Edit: And this submission already appears to be suffering the same fate, ranked far below other stores with nearly equal vote:time ratios.

<comment><USER4> You can't compare stories that way because it's not nearly just about vote/time. In any case, the previous story tripped the overheated discussion detector which we've just turned off so it's on the second page now.

</comment></comment></comment><comment><USER5> /me applauds crossfit

The 8 complaints about FB on the crossfit website are rather good and I wish more would see this perspective. [https://www.crossfit.com/battles/crossfit- suspends-facebook-...](https://www.crossfit.com/battles/crossfit-suspends- facebook-instagram)

<comment><USER6> Thanks for that. It's crazy how much left propaganda there has been and how initially it was all about Russia. Choose whatever political opinion you want but what Facebook is doing is dystopian.

</comment></comment><comment><USER7> > Facebook is acting in the service of food and beverage industry interests by > deleting the accounts of communities that have identified the corrupted > nutritional science responsible for unchecked global chronic disease. In > this, it follows the practices of Wikipedia and other private platforms that > host public content but retain the ability to remove or silence—without the > opportunity for real debate or appeal—information and perspectives outside a > narrow scope of belief or thought. In this case, the approved perspective > has resulted in the deaths of millions through preventable diseases. > Facebook is thus complicit in the global chronic disease crisis.

If people can believe this about Facebook, why can they not believe it in the context, of say, CNN or Fox News?

Similarly, our education system preaches how great Democracy is. Is Democracy great? Why must young children be taught the tenets of our civilization, and who stands to gain the most from this indoctrination?

Going against the established order will get you shunned in the west. Society will conspire against you to marginalize your beliefs.

</comment><comment><USER8> Totally agree with crossfits guide to a lower carb diet, that meat/veggies/seeds should make up the bulk of your diet, and grains are more for livestock. Switching to low carb, lost weight and felt better.

<comment><USER2> The recently updated (Jan 2019) Canada's Food Guide also agrees with that approach [0][1].

[0] [https://food-guide.canada.ca/en/](https://food-guide.canada.ca/en/)

[1] [https://en.wikipedia.org/wiki/Canada's_Food_Guide](https://en.wikipedia.org/wiki/Canada's_Food_Guide)

<comment><USER9> Reading the guide [1] I can see that it recommends, for adult men, 7-10 servings of fruits and veg, 7-8 of grain products, 3-4 dairy and 3 of meat _and alternatives_, which means vegetable sources of protein, particularly beans and legumes, including peanutbutter. For adult women it's 7-8 servings, 6-7, 3-4 and 2, respectively.

That's a predominantly carb-based diet, especially counting the "alternatives" to meat and the vegetables that include potatoes and sweet potatoes (the "other vegetables" category in the guide.

You can see this also on the food guide's website [2] (and its wikipedia page) where an image summarises the recommendations: a full plate; half is fruit and veg (including sweet/ potatos); a quarter is carbs (black and white rice, noodles, bread, red quinoa); and another is meat and alternatives, which again, include beans, chickpeas, lentils, almonds, peanuts, tofu, walnuts and some grains I can't quite identify.

So I don't know where you guys saw the low-carb diet. I particularly don't see any suggestion that grains are "for livestock".

____________________________

[1] [http://www.hc-sc.gc.ca/fn-an/alt_formats/fnihb- dgspni/pdf/pu...](http://www.hc-sc.gc.ca/fn-an/alt_formats/fnihb- dgspni/pdf/pubs/fnim-pnim/2007_fnim-pnim_food-guide-aliment-eng.pdf)

[2] [https://food-guide.canada.ca/en/](https://food-guide.canada.ca/en/)

<comment><USER2> Your link to in your [1] is the older version of the food guide (it has 2007 in the PDF file name) and is different from [2]. The food guide in your [2] specifically does not have servings and has a proportional plate instead [0].

[0] [https://en.wikipedia.org/wiki/Canada%27s_Food_Guide#Serving_...](https://en.wikipedia.org/wiki/Canada%27s_Food_Guide#Serving_size_vs._proportion) .

Update:

I see where the mistake came from: the Wikipedia link for the "complete guide" under [https://en.wikipedia.org/wiki/Canada%27s_Food_Guide#Canada's...](https://en.wikipedia.org/wiki/Canada%27s_Food_Guide#Canada's_Food_Guide_First_Nations,_Inuit_and_M%C3%A9tis) points to the older page here [http://www.hc-sc.gc.ca/fn-an/alt_formats/fnihb- dgspni/pdf/pu...](http://www.hc-sc.gc.ca/fn-an/alt_formats/fnihb- dgspni/pdf/pubs/fnim-pnim/2007_fnim-pnim_food-guide-aliment-eng.pdf) . The new complete guide is [https://food-guide.canada.ca/static/assets/pdf/CFG- snapshot-...](https://food-guide.canada.ca/static/assets/pdf/CFG-snapshot- EN.pdf) . I don't know if there is an updated guide for First Nations, Inuit and Métis .

<comment><USER9> You're right, my bad. But the new guide is the image I describe above, with the half-and-two-quarters plate. This is still a carb rich diet.

In fact, it's virtually identical to the 2007 diet, only really changing the format of the advice.

Even more so- the new guide now describes the food category that includes meat as "protein foods":

[https://food-guide.canada.ca/en/healthy-eating- recommendatio...](https://food-guide.canada.ca/en/healthy-eating- recommendations/make-it-a-habit-to-eat-vegetables-fruit-whole-grains-and- protein-foods/eat-protein-foods/)

These are:

        eggs
        lean meats and poultry
            lean cuts of beef, pork and wild game
            turkey
            chicken
        nuts and seeds
            peanuts
            almonds
            cashews
            nut butters
            sunflower seeds
        fish and shellfish
            trout
            shrimp
            salmon
            scallops
            sardines
            mackerel
        lower fat dairy products
            milk
            yogurt
            lower sodium cheeses
        beans, peas and lentils
            brown, green or red or other lentils
            peas such as chickpeas and split peas
            dried beans such as black beans and kidney beans
        fortified soy beverages, tofu, soybeans and other soy products

So again, nuts and seeds, beans and legumes -not a low-carb diet by any means.

<comment><USER2> I would say it is lower than before, which is definitely an improvement. I'm not aware of a specific number of calories or kilojoules for a diet to be considered low-carb. I guess there is some ambiguity on my part on what the low in low-carb means: low in comparison to the other nutrients in the meal? low as a proportion of daily caloric intake?

It also seems that I'm not the only one who is confused [0].

[0] [https://en.wikipedia.org/wiki/Low- carbohydrate_diet#Definiti...](https://en.wikipedia.org/wiki/Low- carbohydrate_diet#Definition_and_classification)

<comment><USER9> Yes, that seems to be typical. There is no agreement on what "low-carb" even means. And yet, there are many people who are very vocal about the benefits of such diets.

I note also that there are no public bodies that recommend such diets- it's only private companies and individuals.

>> I would say it is lower than before, which is definitely an improvement.

I can't see that this is the case- at least not in comparing the 2019 with the 2007 guide.

<comment><USER10> British public health service are now piloting it for people with type 2 diabetes.

<comment><USER9> Source please? All I can find is advice to diabetics to eat a healthy, balanced diet without cutting out any food group entirely:

 _> > Should people with diabetes avoid carbs?

>> People with diabetes should try to eat a healthy, balanced diet, as shown in the Eatwell Guide.

>> They should also include higher fibre starchy foods at every meal. Steer clear of cutting out entire food groups.

>> It's recommended that everyone with diabetes sees a registered dietitian for specific advice on their food choices. Your GP can refer you to a registered dietitian.

>> There's some evidence that suggests low-carbohydrate diets can lead to weight loss and improvements in blood glucose control in people with type 2 diabetes in the short term.

>> But it's not clear whether the diet is a safe and effective way to manage type 2 diabetes in the long term.

>> Weight loss from a low-carbohydrate diet may be because of a reduced intake of calories overall and not specifically as a result of eating less carbohydrate.

>> There also isn't enough evidence to support the use of low-carbohydrate diets in people with type 1 diabetes.

>> Douglas Twenefour, Diabetes UK clinical adviser, says: "When considering a low-carbohydrate diet as an option, people with diabetes should be made aware of possible side effects, such as the risk of hypoglycaemia (low blood sugar).

>> "We also advise that people with diabetes discuss the amount of carbohydrate to be restricted with their healthcare team.

>> "The best way to manage diabetes is by taking prescribed medications and by maintaining a healthy lifestyle that includes plenty of physical activity, and a balanced diet that is low in saturated fat, salt and sugar and rich in fruit and vegetables, without completely cutting out any particular food groups."

>> Read Diabetes UK's review of the evidence on low-carb diets and their conclusions._

From: [https://www.nhs.uk/live-well/healthy-weight/why-we-need- to-e...](https://www.nhs.uk/live-well/healthy-weight/why-we-need-to-eat- carbs/)

(Note the name of the url).

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> Just don't get rhabdo</comment>


Automatic Differentiation (2009) - <AUTHOR> https://justindomke.wordpress.com/2009/02/17/automatic-differentiation-the-most-criminally-underused-tool-in-the-potential-machine-learning-toolbox/ <comment><USER2> At the time this post was written, there was no good autodiff implementation for any language that anyone actually used for ML, meaning Python, Matlab, or Java. That's changed now; for example, Python autograd [1] is quite seamless and plays well with the entire Numpy stack.

The bigger trend, though, has been towards DSLs such as Theano or Tensorflow (and Torch to a lesser degree) that include autodiff as a first class design consideration. The ability to build complicated networks out of modular parts, and have the gradient calculations automatically fall out, has been a major driver of the recent explosive progress in deep learning research, as has easy portability between CPU and GPU execution. It'll be exciting to see what happens as these tools mature and especially if they find applications in other fields.

[1] [https://github.com/HIPS/autograd](https://github.com/HIPS/autograd)

</comment><comment><USER3> Never heard of it before. Thanks, 'Tomte.

Some resources for Common Lisp I found:

\- AD in Lisp paper: [http://www.cs.berkeley.edu/~fateman/papers/ADIL.pdf](http://www.cs.berkeley.edu/~fateman/papers/ADIL.pdf)

\- A library: [https://github.com/masonium/cl- autodiff](https://github.com/masonium/cl-autodiff) (basics seem to work, but it definitely could use some love to grow)

</comment><comment><USER4> TensorFlow has built-in automatic differentiation -- so it seems like at least some progress has been made since this post.

<comment><USER5> The Ceres Solver (also from Google) has great automatic differentiation support as well.

[http://ceres-solver.org/index.html](http://ceres-solver.org/index.html)

</comment></comment><comment><USER6> Can someone further clarify the distinction between automatic and symbolic differentiation?

The author claims that using symbolic differentiation on his example (f(x)=sin(x+sin(x+...+sin(x+sin(x))...))) builds a "huge expression that would take much more time to compute" than automatic differentiation. At the top of the article there's also an update noting an "explosion of great tools for automatic differentiation" recently, which I assume is referring to machine/deep learning frameworks like Theano, TensorFlow, etc. However, from my understanding, building an entire computational graph to express the gradient via the chain rule (backpropagation) is exactly what these frameworks do, and by the author's brief description that seems to fall under symbolic differentiation. So which one are these frameworks doing -- symbolic or automatic differentiation? And, concretely, how would they differ if they were instead doing the other one?

Edit: I've been doing some further reading trying to understand this, and it's only confusing me further. Wikipedia has this diagram [1] which supposedly illustrates the relationship between the two -- what the hell is going on here? The only interpretation I can come up with from it is that automatic differentiation takes code (written in a computer programming language) as input and produces code to compute the gradient, whereas in symbolic differentiation, the input and output are mathematical expressions. But this doesn't seem like a meaningful distinction to me...both math and computer code are languages; functions written in programming languages _are_ mathematical functions (the ones that can actually be correctly called "functions", anyway). Someone please help me out here; what am I missing?

[1] [https://en.wikipedia.org/wiki/Automatic_differentiation#/med...](https://en.wikipedia.org/wiki/Automatic_differentiation#/media/File:AutomaticDifferentiationNutshell.png)

<comment><USER7> To the best of my understanding:

\- with numerical differentiation, you take an algorithm to approximate a function, you repeatedly evaluate that, and you use the results to approximate the derivative

\- with symbolic differentiation, you take a symbolic, _exact_ representation of a function (which you could evaluate with floating-point numbers to approximate its values if you wanted to use numerical differentiation instead), and you apply rules like linearity and the product rule to get a symbolic, exact representation of the derivative, which you evaluate with floating-point numbers to approximate the derivative

\- with automatic differentiation, you take an algorithm to approximate a function, which must be implemented using basic floating-point operations, and you apply rules like linearity and the product rule _to the operations used to implement the approximation_ , and you get an algorithm that approximates the function's derivative

Put another way, when people say they're using symbolic or automatic differentiation to "calculate" the derivative of a function, "calculate" means different things: in the one, they're "calculating" the exact, symbolic _expression_ for the derivative (which can optionally be evaluated); in the other, they're "calculating" the floating-point approximation of the _values_ of the derivative.

To me, automatic differentiation is GENIUS. My friend, who's written a Julia package [1] based on some of the ideas behind automatic differentiation, introduced me to them; unfortunately, according to him, numerical differentiation is usually more practical. I don't remember why but I'm going to ask him.

[1]: [https://github.com/jwmerrill/PowerSeries.jl](https://github.com/jwmerrill/PowerSeries.jl)

<comment><USER8> You can think of AD as differentiating a function that is defined in terms of composition... e.g. f(g(h(x))), where (loosely) x is the initial state of your function and f, g, and h are differentiable mappings from one state to another. In this analogy, in a procedural language f, g, and h would be lines in your source code, which modify the overall program state to produce some final value. There are a few different ways to actually do it (including the rather tricky concept of "dual numbers"), but ultimately it amounts to differentiating the overall program f(g(h(x)) recursively using the chain rule. It's [often] more efficient than direct symbolic differentiation because of this recursive evaluation - think of it as something like tail-call optimization.

It's not an approximate method, nor does it care [directly] about floating point. If you have implemented some f' that approximates a mathematical function f and you use AD to differentiate f', you are calculating the _exact_ derivative of f', not an approximation of the derivative of f. It's an important distinction.

<comment><USER7> I found dual numbers pretty intuitive, but I was a math major and studied abstract algebra and stuff, that way of thinking is definitely an acquired taste.

To be clear, when you say f' you're not talking about Newton's notation for the derivative of f, you're talking about a function from floats to floats that is the approximation/algorithmic implementation of f (which is R->R), right?

I don't really see why the distinction is particularly important. The reason the exact derivative of f' that you get from AD is _useful_ is because it also approximates the derivative of f, right? If it were possible to make some pathological choice of f' (that is, algorithmic implementation of f) such that the result from AD is a poor approximation of the derivative of f, that's not really a successful use of AD on f, right? So when I say I'm gonna "use AD to get a derivative of f", I'm really saying I'm going to use AD on a good choice of an approximation of f to get a good approximation of the derivative of f, right?

I suppose if infinite precision analog computing were possible, or in the context of theoretical real-valued register machines (does anyone still study that?), it matters that AD is exact on the algorithmic implementation, but we're not in or anywhere near those contexts, are we?

<comment><USER8> > To be clear, when you say f' you're not talking about Newton's notation for > the derivative of f, you're talking about a function from floats to floats > that is the approximation/algorithmic implementation of f (which is R->R), > right?

Yep. I probably should have used f* instead of f' because of context. R->R isn't necessary however, it should generalize quite a bit.

As to why the distinction is important, it's because of sensitivity. Approximating a function rarely also approximates its _derivative_ well unless it is constructed to do so (e.g. k-th order Hermite polynomials). As an example, consider the simplest approximation scheme, basic polynomial fitting. They will guarantee that your fit matches the true function at all sample points, but the derivative might (and usually will) be _wildly_ different. You have to be extremely careful differentiating approximate schemes and relating them to the true derivative. Usually what you're interested in for AD is the derivative of the _approximate_ scheme and not an approximate derivative for the exact function (e.g., sensitivity analysis).

And I agree that dual numbers are intuitive to me as well, but I think it requires a decent bit of background as to why they work.

</comment></comment></comment></comment></comment><comment><USER9> Automatic differentiation dates back at least to 1974, in a language called PROSE that ran on the CDC 6600 family [0].

[0] [https://en.wikipedia.org/wiki/PROSE_modeling_language](https://en.wikipedia.org/wiki/PROSE_modeling_language)

</comment><comment><USER10> I had a need for this in an unrelated problem area - ragdoll physics. In 1996-1997 I came out with Falling Bodes, the first ragdoll physics system that worked right. It was a spring-damper system, not an impulse-constraint system like most game engines; this produces more accurate and better looking collisions, but is more expensive computationally. So it was used as an animation tool, not for games.

The rigid body dynamics system used Featherstone's algorithm. This models a tree of links and joints, a skeleton. You put in forces and torques at each joint, and the algorithm computes accelerations at each joint and the root node. Those accelerations then have to be integrated to get velocities and positions. As positions change, so do contact forces. If you don't want to get interpenetration in collisions, the contact forces must be allowed to become very large. We used exponential springs as the contact model to achieve this.

Numerically, this means integrating a very stiff system of differential equations. Explicit integration, like Runge-Kutta 4, works, but you have to monitor the error term and cut the time step when necessary. During the early parts of a hard collision, the time step may have to drop into the microsecond range. This is why this approach doesn't work well for games; it's not constant-time. (If you don't cut the time step, your simulation goes "sprong", and things go flying off into space. Some games still do this.)

An alternative is to use implicit integration, where you work backwards to solve the next step to be consistent with the previous one. Implicit integration works with larger timesteps on stiff systems. (There's still error, but it acts in the direction of draining energy from the moving system, which is much better than adding it.) This requires gradients of the function that the Featherstone algorithm is computing. The brute-force approach is to compute the gradients (the Jacobian) by perturbing each input by a small amount, running the Featherstone algorithm, measuring the differences, and obtaining the slopes numerically. This is slow.

Ideally, you'd like to have analytical Jacobians. That's where automatic differentiation would help. Differentiating Featherstone's algorithm analytically is hard, but might be possible today.

We used SD/Fast, which is a C code generator for Featherstone's algorithm. Straightforward implementations of Featherstone have lots of switches and conditionals as they deal with the topology of the skeleton being simulated. SD/Fast took in the link and joint description and turned out C code for that structure. This gets rid of most of the conditionals. It unwound the code more than you'd want to do today; there was much loop unrolling at the source level. (Before superscalar CPUs, unwinding loops was a win; today, tiny tight loops are a win.)

Anyway, it's possible that the tools being developed in machine learning could be applied to game physics in that way. At the visual level, the difference is that big objects bounce like big objects, with slower collision rebound times. In impulse-constraint systems, all bounces are instantaneous, which is why, in video games, everything seems to be too light.

</comment><comment><USER11> The caveats are worth reading before the rest of it. How long does it take to write down the derivative of a loss function, compared to trusting that your automatic diff did what you expected? I can tell you: not long.

</comment><comment><USER12> Hi

Can you clarify the difference between autodiff and symbolic diff?

Thanks

<comment><USER13> Symbolic calculates the symbolic representation of the derivative, autodiff just calculates the (numerical value of the) derivative by adjusting the computation graph.

</comment></comment><comment><USER14> indeed, how did a post from 2009 get on the front page of HN?

<comment><USER15> You'd be surprised how many applications are using techniques for optimization that not only work poorly but require more work. Many programmers, academics, and students who browse HN may benefit from AD but don't know about it.</comment></comment>


The Post-Recession World Doesn't Scale - <AUTHOR> http://csen.tumblr.com/post/144102896829/the-post-recession-world-doesnt-scale <comment><USER2> I can't figure out what the list of examples is supposed to have in common, beyond "something isn't perfect".</comment>


The continuing saga of the gene patenting case - <AUTHOR> http://www.theatlantic.com/national/archive/2011/04/nature-vs-nuture-the-continuing-saga-of-the-gene-patenting-case/73359/

<comment><USER2> Awesome article! Thank you for posting this. I just recently started really looking at Hacker News (mostly because of my Y Combinator application), but I have been really impressed with the breadth of stuff posted here.

I am a molecular biology major and used to do lab research in this area, so I find it fascinating.

I will say that the U.S. Patent Office really needs a refresh in terms of who it hires. Both in terms of software patents and molecular biology, it is pretty clear that the people issuing these patents don't understand the core issues.

The isolation of a DNA sequence should not be patentable, any more than reading data off a disk drive is patentable. Both these technologies relied on years of publicly funded scientific research and a myriad of different technologies. This company has merely built on those findings.

If they have discovered a novel way to analyze the results of a specific sequence, and determined a provable correlation between a specific sequence variant and getting breast cancer, then perhaps this is an invention that deserves patent protection in the form of a commercializable product. In no way should this restrict further research in the area, however. The entire point of the patent system is to trade disclosure for protection. These guys seem like they want to prevent anyone else from researching these genes entirely, which in my mind is just plain selfish and goes against the spirit of the patent system.

I agree that there needs to be some benefits to companies that produce novel discoveries in the area of information technology (which is really what we are talking about regarding molecular biology and software patents). Patenting genes is not the way. Patenting software algorithms is not the way.

Bottom line: Our legislators need to get off their asses and adapt our laws for the 21st Century. Or we need to find new legislators who will.

</comment><comment><USER3> The only solid position against patents is the principled one. It would be a shame if biotech were hobbled for decades to come.

For those interested, a must-read resource: [http://levine.sscnet.ucla.edu/general/intellectual/against.h...](http://levine.sscnet.ucla.edu/general/intellectual/against.htm)

<comment><USER2> I think the question is: What is the principled stance?

The link you referenced would generally be considered the far-left stance, in that there really shouldn't be any property ownership at all (the referenced writings seem to suggest that even real property is a menace).

Personally, I think there should be some reward for truly novel invention. I agree with the referenced writings that a peanut butter and jelly sandwich does not qualify for such protection, despite what the Patent Office may do. This is simply an indication of the level of work being done at the Patent Office, however, amongst other structural problems in the system.

I do think that the patent system serves a purpose. For invention that is truly novel, it is worth the price of temporary monopoly to encourage disclosure. Many of the novel drugs on the market today might not exist without patent protection. It is simply too expensive to create a new drug without the promise of a future upside free from the inevitable copycats, who could underprice because they have no R&D expense. While drug companies are not usually considered the good guy due to over-pricing (because of patent monopolies), I think we are better off having the drugs in the long term and suffering the short term consequences of issuing the patent.

<comment><USER3> There is a very clear distinction between IP and 'physical (real?) property', we can at least agree on that, can we? There is a great drive to define IP in the same vein as physical property, in order to derive the same kinds of protections. But they are fundamentally different and so IP belongs in a category of its own.

The problem with monopoly for inventions is that people can come up with the same ideas independently and some developments are merely logical engineering solutions to a given problem (other engineers may solve it the same way and independently).

As for drugs, the real costs come from the regulatory procedures and less from the R&D itself. And even then, why should a company be granted a monopoly for simply following a logical series of steps (which any other company could do)? There is no clear idea what 'truly novel' means and how it's distinguished from an 'engineering solution' as defined above.

<comment><USER2> I agree that IP belongs in a category of its own. Real property ownership lasts effectively forever. Intellectual property, in the form of patents, are temporary monopolies under the current system. So there are already distinctions.

It is indeed difficult to decide what is truly "innovative" or "new". The patent system defines the criteria for issuing a patent as novel, non-obvious, and useful. These are very broad standards, and were much more applicable to physical invention than information technology invention.

In my opinion, the patent system needs an update for the 21st Century. Those involved in developing software and information based technologies need to collaborate on a set of rules that set a high bar for issuing a patent, and a set of guidelines that streamline the application process for the U.S. Patent Office. The issues involved are usually highly technical, and rather than have a bunch of software engineer working in the patent office, it would make sense to force the applicant to prove via the application process that the product deserves protection.

Personally, I think that pure software should be copyrighted, not patented. If there are hardware and software components, that is the only time that a patent should be considered. Ditto with genetics. You should not be able to patent the information for a gene. It may be reasonable to patent the tools used to discover genes, assuming they are not straight derivatives of naturally occurring enzymes.

</comment></comment></comment></comment><comment><USER4> grellas, many thanks for the submitted article. It's good to know about the case, but I have to admit that reading about patents on genes, living organisms and medical treatments is disturbing. We need a better system; one that rewards research and innovation with incentives but without granting the disincentive of monopoly.

<comment><USER3> There is one system and it's called 'the market'.</comment></comment>


A conversation with Michael Arrington, TechCrunch   - <AUTHOR> http://www.charlierose.com/view/interview/10501

<comment><USER2> When are we going to see Paul Graham on the Charlie Rose show?

</comment><comment><USER3> Charlie Rose asks about Loopt at 10:30. That's got to be some kind of milestone.

</comment><comment><USER4> Charlie Rose: "Screw you, Mike!"</comment>


DuetDisplay and Unattributed Open-Source - <AUTHOR> https://github.com/deanm/deanm.github.com/blob/master/_posts/2014-12-18-DuetDisplay.markdown <comment><USER2> We've been developing app that also streams video content from Mac to iPad, and this recent Apple reversal on USB has been very frustrating for us.

About a year ago we submitted an app to the App Store that uses the same USB tech (PeerTalk), we wanted to see if Apple would allow it (we didn't want to build a business around something that could change on a whim). If it was allowed that would have changed the entire direction of our development. An Apple rep called us and informed as that USB access is not allowed.

With this in mind we went ahead with using WiFi, which has been HARD and time consuming. Now Apple all of a sudden allows USB access, what?!

How does Apple expect people to build serious apps when the ground is shifting beneath our feet?

Anyway.. I should write a post with more details.

<comment><USER3> It sucks, but this is always the risk when developing on someone else's proprietary platform.

</comment></comment><comment><USER4> [https://github.com/rsms/peertalk/commit/5973b1722d3330340c08...](https://github.com/rsms/peertalk/commit/5973b1722d3330340c08c87c81d2e66f34299a8a)

PeerTalk's README was just updated with a note about DuetDisplay.

</comment><comment><USER5> It's always _possible_ that they have custom contracts with the creators of these open source projects; CocoaSplit could have offered them a custom license without x264 so that part can be dial-licensed.

</comment><comment><USER6> I paid for it and have had very little luck in getting it to work properly. I've mailed their support and heard nothing back. I would personally advise people away from giving them money, especially now I know of their lack of crediting open source projects.

<comment><USER7> On MacRumors [1], the developer responded in a thread and mentioned that its just him, no big team. So, perhaps he's just overwhelmed with customer queries?

That said, Duet works well on my 13" Early 2011 MBP and a iPad Mini Retina, normal resolution. Retina resolution bumps up the cpu utilization. Duet does not work so well with the same machine connected to an iPad 3, but still usable. Duet does NOT work with 10.10.2 BETA according to the MacRumors thread. Hoping for updates.

[1] [http://www.macrumors.com/2014/12/18/duet-display-ipad- tether...](http://www.macrumors.com/2014/12/18/duet-display-ipad-tethered/)

</comment></comment><comment><AUTHOR> Dean (the author of the article) mentioned that several other apps have attempted to use peertalk and other OSS code this app uses but had their app rejected by Apple (e.g. see mronge's comment). So perhaps the lack of attribution was made with the assumption that use of these OSS packages was part of the reason for rejection. If this is not the excuse then I can't imagine any reason for it. Attribution in this form is a simple footnote somewhere and giving credit to others never hurts your own brand. In fact I'd argue it contributes to it.

</comment><comment><USER8> The CocoaSplit repository does not contain a LICENSE file. Basically this would mean it is unlicensed. However it does mention a license in its credits.rtf page, buried in the project:

" The inclusion of x264 requires this software is licensed in a GPL compatible way. I'm fairly apathetic about software licensing, so to make everyone's life easy (but mostly mine) CocoaSplit is licensed under GPLv2. "

Considering the apathy of CocoaSplit if there is going to be an aggrieved party here it will be authors of x264.

</comment><comment><USER9> Since the MacOS app is free, does the creator need to do anything but give attribution? Seems like the place to focus on for license issues is the iOS app which costs $10.

<comment> vertex-four As it contains GPLed code, the MacOS app's source code must be distributed or offered for distribution under the GPL to anybody who has a copy of the binary.

<comment><USER10> Is that true? My understanding is that so long as you clearly segregate GPL and non-GPL code by using wrapper classes and linking (rather than copypasta), the core application can remain non-GPL.

<comment><USER3> Usually, the litmus test is: Does the software work at all without the GPL'd parts? If not, it doesn't matter how segregated you think it is, because it's still dependent on that GPL'd code.

<comment><USER10> As an example, consider a video player with a codec plugin system. The player ships with a noop plugin, a proprietary plugin for MPEG-1 video, and a general plugin that leverages GPL code. It is my understanding that the video player can still be non-GPL, but that wrapper to the GPL code must be GPL

<comment><USER11> This seems exactly analogous to the CLISP/libreadline example I just linked in another comment, where it was agreed that CLISP needs to be under the GPL.

The situation is, probably, a bit different if the video player authors have no intention of using GPL code and just develop an interface, and someone else unrelated comes along and writes a GPL plugin. But if the app's authors ship the GPL plugin or worse write it, they're on shaky ground.

(This gets you into some slightly silly situations where author A writes GPL software A linking software B, software B can make use of a GPL-incompatible library C, all of A, B, and C can legally redistribute their software on their own, but Debian has to make sure A doesn't link C because they're shipping the whole thing.)

</comment></comment></comment></comment></comment></comment><comment><USER12> Can someone educate me a little more on these license issues?

What actual benefit is derived by an open source project when they are credited somewhere deep in an about page? Is tangible value provided there?

I feel that if I had produced an open source library, I'd be less interested in having my name anywhere near a project that I didn't actually produce. But I have little practical experience with such things.

<comment><USER13> Is it so hard to understand wanting to be credited when someone uses your work?

<comment><USER9> If licenses were just about getting credit for your work, they'd be a lot less complicated :)

<comment><USER14> Hence the simplicity of the MIT license, which is mostly just about getting credit for your work.

</comment></comment></comment></comment><comment><USER15> Duet Display twitter account responded that "[The omission of the attribution was] an oversight of rushing to get in the App Store before lockout" and "All projects we used were cleared for use."

[https://twitter.com/duetdisplay/status/546676103645896704](https://twitter.com/duetdisplay/status/546676103645896704) [https://twitter.com/duetdisplay/status/546709659457826816](https://twitter.com/duetdisplay/status/546709659457826816)

</comment><comment><USER16> The only real way to fix this situation is to threaten some type of legal action to enforce your copyright or your licence is really meaningless.

</comment><comment><USER17> Not taking sides one way or the other but:

\- CocoaSplit's licensing isn't anywhere BUT in the credits.rtf which is buried. It's not in any of the source headers, not in the README.md. If you aren't using the app part of CocoaSplit, you would never know it was there unless you grep'd. And who amongst us has grepped for a license?

\- PeerTalk and GPUImage are permissive licenses that only require attribution

I don't see what the big deal is, to be honest.

<comment><USER18> What sort of argument is that? If the Duet Display author wasn't able to find the GPL license for CocoaSplit, how could he assume that the code was available for any use? Furthermore, the ISC and BSD licenses of PeerTalk and GPUImage are rather permissive, yes, but they do require attribution that is not given by Duet Display.

The big deal here is that licenses matter, especially when you're profiting from others' work.</comment></comment>


Russians Climbed a 2,073-Foot Tower in China [video] - <AUTHOR> http://www.theatlantic.com/international/archive/2014/02/video-the-russian-daredevils-who-climbed-a-2-073-foot-tower-in-china/283825/

<comment><AUTHOR> I actually did get a little dizzy watching this. My favorite part is when the grating one of them is using to climb lifts up from the scaffolding; he just switches his grip and climbs on.</comment>


American Companies Selected to Return Astronaut Launches to American Soil - <AUTHOR> http://blogs.nasa.gov/bolden/2014/09/16/american-companies-selected-to-return-astronaut-launches-to-american-soil/

<comment><USER2> It seems that SpaceX can do for $2.6 billion what Boeing does for $4.2 billion.

<comment><USER3> That is an accurate description.

The best part is that SpaceX will widen the cost up to 10 times(!), when they get their reusability tech working, which Boeing doesn't have.</comment></comment>


Ellen DeGeneres and the Oscars take down Twitter - <AUTHOR> https://twitter.com/

<comment><USER2> I want to say this is their first major outage since going public (someone please correct me if that is incorrect). I wonder if the markets will care about this in the morning?

</comment><comment><USER3> So, I don't use twitter, but I find it odd that clicking the link on a mobile device (iPhone) takes me to a landing page where I must log in or create an account to see what is being referenced. There isn't a link directly to the content.

I guess I'm not the target audience, but it really feels like I'm being turned away at the door of a particularly wonderful party that everyone is talking about.

<comment><USER4> I think it was pointed at Twitter, because Twitter was down momentarily. The actual post is shared in the comments.

[https://twitter.com/TheEllenShow/status/440322224407314432](https://twitter.com/TheEllenShow/status/440322224407314432)

</comment></comment><comment><USER5> Obama record (778 000 retweets) is broken, Ellen is now at 1M+

[https://twitter.com/TheEllenShow/status/440322224407314432](https://twitter.com/TheEllenShow/status/440322224407314432)

[https://twitter.com/BarackObama/status/266031293945503744](https://twitter.com/BarackObama/status/266031293945503744)

<comment><USER6> I'm wondering, exactly what is it about this post that makes so many people want to share it? I tend to ignore most pop-culture stuff, is there something all historic going on here?

<comment><USER7> It gives a glimpse into the lives of actors one wouldn't otherwise see in the same image, while making them appear more human and approachable.

Overrated? Maybe.

</comment></comment></comment><comment><AUTHOR> The tweet that is the culprit, on track to beat Obama's for number of retweets.

[https://twitter.com/TheEllenShow/status/440322224407314432](https://twitter.com/TheEllenShow/status/440322224407314432)

<comment><USER8> Oh. I'd assumed pmarca went on a tweeting rampage one too many times.

</comment></comment><comment><USER9> I was reloading her picture (the first she posted during Oscar) and it was shared more than 500 times per second. When it was retweeted about 70000 times, the retweet and favorite status counter was not available anymore.

</comment><comment><USER4> Just crossed 1,000,000 and it's too wide for the container.

<comment><AUTHOR> I'm only seeing 848K

<comment><USER4> It's well north of that. [http://imgur.com/Mb2IcT9](http://imgur.com/Mb2IcT9)

Edit: Refreshed right after posting that it was at 1.15 million.

</comment></comment></comment><comment><USER10> Just minutes ago it was at 1m+, now it's back at 700k+.

People removing their retweets? is that even possible?

<comment><USER9> Each reload may get results from distinct servers that may be not yet updated with the current number.</comment></comment>


Are entertainment and politics more meritocratic than startups? - <AUTHOR>

I've been commenting on HN for a while now, but I'm posting this under a different username so that, when I get burned at the stake, I'll be able to forget about it and move on next week.
And, before I begin, let me say that I'm not accusing anyone, from pg & the YC team, to angels, to venture capitalists (all of whom I greatly admire) of anything. I am simply stating an empirical observation.
So, to ask the question: Are politics and entertainment more meritocratic than startups? This might seem absurd, until you look at the data, and, as it turns out, there's quite a bit of data.
For example, take a look at the Wikipedia list of people who went from "rags to riches" (http://en.wikipedia.org/wiki/Rags_to_riches). This is, of course, not a complete list or a statistically random sample, but the trend is obvious: it's mostly entertainers and politicians. The only person on there who's arguably a startup founder is Larry Ellison, and his company is much less of a technology company than a sales company. There are founders of other kinds of businesses- Sheldon Adelson, the casino baron, and Lakshmi Mittal, the British/Indian steel baron, to name two- but no technical startup people.
To approach it from the other direction, look at the most famous startup founders. Bill Gates- his father was a name partner at the largest law firm in Seattle, Preston, Gates & Ellis. Larry Page and Sergey Brin- their parents, all four of them, were top computer science or mathematics professors. Michael Dell- he started his company with a $500,000 loan from a relative. Mark Zuckerberg- his parents were both doctors. There are, of course, exceptions, but the general rule seems to be in this direction.
Or, to take a third angle, look at any list of orphans (http://en.wikipedia.org/wiki/Famous_orphans, http://thirdworldorphans.org/gpage.html34.html, and many more). There are lots of politicians and entertainers and demagogues and novelists, but very few startup founders (and scientists, for that matter); Steve Jobs is the only one I was able to find, but he was so young when he was adopted that he has no memories of his biological parents.
So, what do you all think? I've only been able to list famous people here, because those are the ones I can look up, but any investors reading this probably have a better data set- what have you found? <comment><USER2> You have a point. But I think the sample is biased because of fame. A founder who goes from $0 to $10m is rags-to-riches by most definitions of the term, but goes largely unnoticed _unless_ they seek fame - and many don't.

Conversely, you cannot easily go from nowhere to successful in either politics or entertainment without becoming widely known - almost by definition of success in those industries.

That said - I can think of relatively obscure rags-to-riches stories in entertainment (writers/producers etc. Rod Temperton springs to mind) so you could be right. Would be interesting to see a better data set, as you say.

</comment><comment><USER3> I think being exposed [or not being exposed] to computers from a young age will affect your ability to synthesize new concepts and analyze old ones in technology.

Either way, these are all hugely outliers. The best way to get wealth is clearly inheritance.

<comment><AUTHOR> I'd say outright inheritance is the second best way, with entrepreneurship in general as the best. The three wealthiest people in the US (Gates, Buffett, Ellison) all got their money through entrepreneurship. (Buffett's father, incidentally, was a congressman, Howard Buffett of Nebraska.)

<comment><USER4> This line of arguing could go last for pages, but Gates and Buffett both came from successful families and built upon that success through entrepreneurship. It was a mix of both.

</comment></comment></comment><comment><USER5> I don't see any lack of merit among your examples, Gates, Page & Brin, Dell, Zuckerberg, all solved major problems in a way that allowed them to build a business.

<comment><AUTHOR> Yes, but the point is, if startups were very meritocratic, then other people who didn't have powerful parents would build bigger businesses and outshine them, for the simple reason that people without powerful parents outnumber those with powerful parents by a margin of something like 30:1. The only alternative explanation is that people with better parents are more talented, and there is indeed a correlation there, but it's fairly weak, and there's no reason to believe that technical talent is more heritable than political or singing or acting talent.</comment></comment>


Robust Image Retargeting via Axis-Aligned Deformation - <AUTHOR> http://igl.ethz.ch/projects/retargeting/aa-retargeting/

<comment><USER2> Very very nice result!</comment>


Ask HN: How do you document you stack? - <AUTHOR>

I have a fairly large project and I want to make it as easy as possible for other developers who come on board to get a broad overview of the application's structure and behavior. Do you document your system in a single README.md file sitting in your app's root? Do you draw network topology maps? How do you go about documenting the intricacies and nuances of your program?
- Commenting code, obviously, helps a lot. - bash scripts that document the build environment are awesome. - A soft introduction in a README file.
Could I be doing thing smarter? Do you have any neat tools or processes you use?
Thanks. <comment><USER2> I'm working on a rather large and (in my opinion) unwieldy C#-based project right now that....well....tries. However, when your stack is at a point where a Google Wiki isn't enough to document it adequately, there's an underlying problem, namely that the people I'm working with have reinvented the wheel a few times.

As a developer coming into a new environment/stack, there is nothing worse than having to read through hundreds of pages to figure out how to run unit tests. It's probably as bad, if not worse, than getting the "send an email to ___" treatment.

Keep your stack as simple as possible. New developers may not be experienced with it, but we have this wonderful thing called Google. If you're using common libraries, our Google-fu is strong. If you're reinventing the wheel, you should probably reconsider your stack.</comment>


Enabling all developers to build on the Account Activity API - <AUTHOR> https://blog.twitter.com/developer/en_us/topics/tools/2018/enabling-all-developers-to-build-on-the-account-activity-api.html <comment><USER2> Looks like this API will be too expensive for Twitter client developers to afford.

> The public pricing that I'm seeing shows Twitter's Account Activity API > pricing as $2,899/month to get activity updates… for 250 users.

[https://twitter.com/BigZaphod/status/996794900208287744](https://twitter.com/BigZaphod/status/996794900208287744)

</comment><comment><AUTHOR> Highlights in this thread [https://twitter.com/TwitterDev/status/996782993200025600](https://twitter.com/TwitterDev/status/996782993200025600)</comment>


Sefid: Free 24/7 human personal assistant - <AUTHOR> https://sefid.co <comment><USER2> There have been a couple companies that have tried this in the past.

\- Users are going to make requests where you have to say no very frequently. \- You'll attempt to go fill that side of your marketplace with vendors, and you'll get a couple. \- Managing vendor churn will be a nightmare, especially once scheduling comes into play. \- The fee you earn on each transaction won't be enough to pay for a quality human to do the matching, unless you mark up the transactions a significant degree, which is possible, but is mostly a medium-sized business.</comment>


Must Read for Laid-Off Engineers: Making Sense of Your Future - <AUTHOR> https://hackernoon.com/layoffs-making-sense-of-your-future-dq583ynm <comment><USER2> I know engineers who dropped out of the tech years ago and couldn't be happier. The truth is, no matter how much you're getting paid, many many of these jobs are terrible. Hopefully some people use this as an opportunity for a new beginning.

</comment><comment><USER3> I'm sure there is probably some good advice in there for the "laid-off engineer" but that article begins with a tangential three paragraph note to startup founders. That is not what you are selling and tangential material should be at the end (if you want your target audience to actually read your post).

When the article does start it starts with:

 _You have done 10, maybe 15 years as an Engineer. But your Github is empty. It has 0 shades of green for the last year or so. What's your excuse? The Dunning-Kruger effect is so strong in Silicon Valley Engineers. Sometimes, this impression is formed when those Engineers introduce themselves. They have been laid-off recently, for sure. Despite that, they do not pretend to need or to ask for a helping hand._

This reads as if it was computer generated nonsense. I stopped reading at this point.

</comment><comment><AUTHOR> Must read for laid-off Engineers</comment>


Microsoft: Google Chrome Frame makes IE less secure - <AUTHOR> http://arstechnica.com/microsoft/news/2009/09/microsoft-google-chrome-frame-makes-ie-less-secure.ars

<comment><USER2> Seems like Microsoft FUD policies at work. This is not the result of any kind of study, just a measure to maintain market share.

Increasing avenues of attack?

I've heard that Chrome is currently has the most impressive security credentials, working hard at security does not equal effective security [http://arstechnica.com/security/news/2009/03/chrome-is- the-o...](http://arstechnica.com/security/news/2009/03/chrome-is-the-only- browser-left-standing-in-pwn2own-contest.ars)

</comment><comment><USER3> This is funny... When Microsoft is making the claim, they say they do more to secure their users than the alternatives. However, at least on 3 occasions I've been speaking to a MS employee or MS fan and mentioned that there are significantly fewer security problems with alternative OS's and browsers, and their response is "well no-one uses -insert product here- so nobody wastes their time trying to hack it".

</comment><comment><USER4> I wonder who funded the study that shows that Chrome is less secure than IE. I hunted around, but could not find any indication about who paid for it.

<comment><USER5> That would be Microsoft.

"The spokesperson also referred us to the latest phishing and malware data from NSS Labs, the same security company that found IE8 was the most secure browser in August 2009 via two Microsoft-sponsored reports."

</comment></comment><comment><USER6> nice to see the MS marketing dept at work

</comment><comment><USER7> They got a point. IE has its own venerabilities and Chrome has some too, maybe less maybe more. Also we can factor the plugin since it can have its own security risks. So statically IE using the Chrome Frame is more exposed then IE alone.

It sounds like MS are clutching but they still raise a valid point.

BTW I can't remember hearing that Mozilla are complaining about IE Tab.

</comment><comment><USER8> Lol, it's common knowledge that NSS labs testing is funded by microsoft... sadly, that's the only way Microsoft can get 'away' in rankings of anything [http://www.thetechherald.com/article.php/200912/3268/Can- you...](http://www.thetechherald.com/article.php/200912/3268/Can-you-trust- the-NSS-Labs-report-touting-the-benefits-of-IE8)

</comment><comment><USER9> Personally, it was great to see Microsoft spitting in the face of the company that is practically trying to save their product. However, this was by far one the greatest PR moves for chrome bar none. Lets see what kind of commercial Microsoft is going to use to attack Google for helping.

</comment><comment><USER10> It's merely like replacing the engine in the Titanic from where I'm sitting.

</comment><comment><USER11> I wonder if it really doubles the attack surface area.

<comment><USER12> I was wondering that too when I read the article.

If Chrome Frame works the way I understand it does, with Chrome basically sitting in the rendering area of IE, taking UI commands from it and interpreting all the incoming markup/code itself then I would have to guess that the answer is no.

The only public facing interface should be Chrome's, but I'd have to do a bunch more research to confirm that for sure...

<comment><USER13> If the attacker wasn't stupid, it would double it.

If he has an exploit for chrome, he is going to add the magic tag and let ChromeFrame render the code thus the browser is vulnerable.

If he has an exploit for IE, he isn't going to add the magic tag, IE's engine is going to handle the rendering and the browser is vulnerable.

The key is that the attacker can choose what browser the victim is using, thus he can target either browser.

<comment><USER12> Ah, I hadn't realized that the individual _website_ had control over whether Chrome Frame was used or not... That is a _terrible_ idea. If the user elects to install Chrome Frame it should render every page except for exceptions set at the user's discretion.

I absolutely agree. Letting the website choose is just adding attack vectors.

<comment><USER14> It also ensures that sites that only work in IE continue to work. Google Frame simply lets someone visit sites that only work in IE _and_ sites that need HTML5 without having to know which browser to use for which site.

Having the site control when GF is used is essential for this to work.

<comment><USER12> I understand the reasoning behind that, but ultimately it should be the _user_ not the _website_ that has control over whether Chrome Frame is activated or not. A user can always visit an IE-only website in FireFox, so it's not creating a new problem there.

Allowing the user control, rather than the website, means the user will get the benefit of Chrome Frame _by default_ rather than as the exception and will stop a potential attacker from getting to choose their attack vector...

</comment></comment></comment></comment></comment></comment><comment><USER15> I wonder what they think of the Adobe Flash Player.

</comment><comment><USER16> This holds as long as there's no exploit that affects IE, but doesn't affect google framed IE. And there would be. I'd say, for IE6, there are probably a few.

And those who care about security don't use IE anyway.

</comment><comment> onreact-com As I said before, M$ will block Google from doing it.

<comment><USER5> Nothing in the article said anything about blocking Google Chrome Frame. They just advise against it. Also, can we cut the M$ crap? It is childish.

<comment> onreact-com I did not indicate in my comment that the article says so, I wrote that I SAID SO before. This is obviously the first step on the way to blocking it. Please try to read first and understand before complaining. Comments are not for repeating what the articles say but to add your own opinion. Also you're not my father to tell me how I should behave.

Here is the link where I said it in case you still don't get the context:

<http://news.ycombinator.com/item?id=839002>

<comment><USER17> He may not be your father, but judging by your comment score, he's the voice of the community.

<comment> onreact-com Just because many people agree with you doesn't mean you are right. It's often opportunism. M$ will surely try block it, either technically or by law. For the uninitiated M$ is the short version for Microsoft.

I may be childish, but it has been the unofficial acronym for at least a decade so obviously whole generations of children use it.

Last but not least: Voting everything down you don't agree with is childish. I argue with people and don't vote them down like some bury brigade just because I disagree.

<comment><USER18> Not to repeat what was said above, but many of us (I suspect) immediately think of THIS when they see someone write "M$" -- <http://art.penny- arcade.com/photos/215178115_ExTPi-L-2.jpg>

That term simply doesn't come across well in a discussion held - ostensibly - by adults. It has the same effect as someone writing 'MAD LULZ G00G PWNED MS' and ultimately conveys nothing aside from prejudice.

<comment><USER19> If you want to use an epithet for the leading operating systems vendor, use _Micros~1_</comment></comment></comment></comment></comment></comment></comment>


Can China be brought before an international court over Covid pandemic? Yes - <AUTHOR> https://theprint.in/opinion/can-china-be-brought-before-an-international-court-over-covid-pandemic-yes <comment><USER2> Bored and brainless topic.

why not remove this kind of topic. Hacker news should be technical related !!!</comment>


Vancouver Housing Tax Pushes Chinese to $1M Seattle Homes - <AUTHOR> https://www.bloomberg.com/news/articles/2016-12-04/vancouver-housing-tax-pushes-chinese-to-1-million-seattle-homes <comment><USER2> There should be similar laws all over. In a global economy, if "regular people" have to compete with multi-millionaires and billionaires who can move capital wherever, whenever they want, housing where any decent paying jobs are located will continue to become more and more unaffordable.

Please note: I'm fully aware this isn't the ONLY reason for ridiculous housing prices.

<comment><USER3> So you should have the ability to force other people how to use the house they paid for? Should I be able to tell you how to use your computer, phone, or car?

<comment><USER4> They should consider becoming citizens if they want to get the same treatment as citizens in the country. Most countries have significant limitations on what non-citizens can purchase, try buying land in China.

<comment><USER3> My favorite counterargument! Duly upvoted. I did try buying real estate in China. Just ended up giving money to my in-laws instead.

<comment><USER5> That counterargument kind of assumes you _can_ become a citizen wherever you want. A lot of people can't, even if they could afford to buy a house.

</comment></comment></comment></comment></comment><comment><USER6> Seattle should immediately enact a 25% foreign buyer tax and an extra annual property tax assessment for vacant foreign owned homes.

Likewise, Midwest cities that are economically in the dumps could offer incentives to attract foreign buyers.

<comment><USER7> Why not just tax for vacant homes, regardless if foreign or not?

<comment><USER8> Because that would ultimately discourage new construction. If you're an investor and you want to invest in a house to hopefully rent out (not keep empty just-in-case for yourself), then you have to factor in the risk of not being able to rent out the property. Having a tax if you fail to rent the house only increases the risk of failing to rent, and thus, makes investing in real estate more risky. Pro-development policies need investment to be less risky, not more risky.

<comment><USER9> The investment risk does not increase very much if the price is decreased accordingly.

</comment></comment></comment></comment><comment><USER10> From the article, 50% of homes sold in Seattle and its suburbs are foreign investments. That's absolutely insane - totally disincentivising people from actually living there from trying to buy a home. Guess it's time to find another city.

<comment><USER11> > From the article, 50% of homes sold in Seattle and its suburbs are foreign > investments.

The article does say that, but as a Seattle resident, that really does not sound right to me. As a counterpoint, this article[1] in the Seattle Times says:

 _Chinese money now accounts for about 55 percent of all homes purchased by foreigners in Washington, the Realtors association says._

and

 _"It's definitely helped in driving prices up," Riley said. In some parts of the Eastside, in particular, she said "we've had a large influx of international buyers coming in. They're the buyer about 50 percent of the time right now."_

That's 50 or 55% in some parts of the market, not the Seattle metro market as a whole. That's a lot more believable.

[1] [http://www.seattletimes.com/business/real-estate/seattle- bec...](http://www.seattletimes.com/business/real-estate/seattle-becomes- no-1-us-market-for-chinese-homebuyers/)

</comment></comment><comment><USER12> Well done, Vancouver city council! The housing market in Vancouver is totally bananas

<comment><USER13> Foriegn ownership is only a small part of why Vancouver real estate is so high. The last stats I saw said foriegn sales amounted to 10-15%. It's mostly Canadian citizens, coupled with low interest rates that are causing this bubble.

I saw a stat that said 40% of condos purchased in Toronto (another crazy market) were bought by speculators. Foriegn sales are even lower (sub 10%) than in Vancouver.

These laws focused on foriegners are good for scoring political points, but they don't really address the issue.

<comment><USER14> > It's mostly Canadian citizens, coupled with low interest rates that are > causing this bubble.

If that's true, how do you explain that the median home price to household income ratio is roughly 12x?[1] Affordable is defined as 3x.

1 - For house price I used the 900k avg house price from the parent article. For median family income I used 76k from StatsCan's 2014 census. [http://www.statcan.gc.ca/tables-tableaux/sum- som/l01/cst01/f...](http://www.statcan.gc.ca/tables-tableaux/sum- som/l01/cst01/famil107a-eng.htm)

</comment></comment></comment><comment><USER15> It's strange that there is so much push back against foreign investment.

Rather than enact a bunch of projectionist policies, wouldn't it be better to just adapt to the investment in a way that benefits natives? After all, when foreign people want to buy something you have, that is called an export, and most people agree those are good for the economy.

If foreigners are investing in housing, local governments will receive a huge influx of tax income from property taxes. If there is no property tax, then now is the perfect time to add it (or the similar but more progressive land value tax) or increase it. The income from these taxes can be used to fund infrastructure, education, and reduce other taxes like consumption taxes.

The other thing to when demand for housing in your city is high, is to increase supply. Seattle is not full. The Seattle metropolitan area is 15,000 sq. km with a population of 3.7 million. To compare, the Tokyo metropolitan area is 13,500 sq km, with a population of 37 million. No idea about the accuracy, but this site showed that rents were more reasonable in Tokyo (which matches my own impressions): [https://www.numbeo.com/cost-of- living/compare_cities.jsp?cou...](https://www.numbeo.com/cost-of- living/compare_cities.jsp?country1=Japan&country2=United+States&city1=Tokyo&city2=Seattle%2C+WA)

If we are going to take legislative action anyway, instead of a bunch of protectionist policies that will create long lasting opportunities for arbitrage and market inefficiencies, why not just make taxes to help the people benefit from the foreign investment and let development happen to help reduce costs long term?

<comment><USER4> It's funny that you think that they pay taxes.

>An unusually high number of Vancouver homeowners living in multi-million dollar neighbourhoods but reporting poverty-level incomes is a red flag that needs immediate government action, says NDP MLA David Eby.

>"The focus should be quite straightforward: are you paying your worldwide taxes inside British Columbia, or not?" Eby, who represents Vancouver-Point Grey, told reporters during a July 15 press conference.

>"If you're not you should have to pay extra in order to pay for the public services that make this real estate so valuable: the environmental controls, the policing, the court system, the schools and the healthcare."

[http://www.metronews.ca/news/vancouver/2016/07/15/number- of-...](http://www.metronews.ca/news/vancouver/2016/07/15/number-of-poor- million-dollar-homeowners-high-in-vancouver.html)

>Documents obtained by Eby also show 29 of those homeowners have also been able to take out a mortgage. "There's a waitress that bought a $2.3 million property. And there was a casino dealer and a cashier who bought a $1.2 million property as well. Students, homemakers and waitresses, by definition, have very low or no incomes. Is this why MacKenzie Heights and other neighbourhoods throughout the Lower Mainland are reporting incredibly low incomes, despite real estate values being so high? Are the people purchasing these $1 million homes reporting poverty level incomes for tax purposes?"

[http://www.news1130.com/2016/09/27/homemakers-students- own-1...](http://www.news1130.com/2016/09/27/homemakers-students- own-107-million-in-one-vancouver-neighbourhood/)

<comment><USER16> It still seems like a property tax assessment on the house, which doesn't take into consideration the owners tax bracket, Would benefit the community the local governments?

<comment><USER4> Property tax on residences isn't they only place municipalities get revenue, they also get taxes from commercial (shops & companies) property. If the foreign owners never move into the house and don't rent[0] it there is no additional revenue in the form of purchasing things or working at an employer in the city.

[0][https://www.pressreader.com/canada/the- province/20141127/281...](https://www.pressreader.com/canada/the- province/20141127/281479274729254)

</comment></comment></comment></comment><comment><USER17> I am beginning to think there is another housing bubble, but this time I am not exactly sure how it would play out if it burst assuming there is one forming. Would it affect the Chinese economy? The economy in each US city? The larger US economy? The global economy?

<comment><USER13> Google the Case-Shiller home index. Average prices in the US are as high as they were during the 2007 bubble.

<comment><USER18> Not quite correct. The CS20 home price index is...

\- 7% lower than the 2006 peak in nominal terms.

\- 22.6% lower than the 2006 peak in inflation-adjusted terms (adjusted by the BLS's US CPI-urban NSA)

\- 27.3% lower than the 2006 peak as a percentage of wages (adjusted by the BLS's average hourly earnings paid to private-sector employees)

Together with massively lower mortgage rates (3.9% rather than 6.2% for a 30yr fix), the situation is nowhere near as bubblicious as 2006. We are maybe around 2003 levels - easily sustainable.

</comment></comment></comment><comment><USER19> So what happens when foreign owners start voting in council elections?

At what point does foreign real estate ownership start affecting local politics?

If imposing a tax has no affect on, or only slows, foreign real estate investment, what do we suppose will be the long term outcomes?

<comment><USER4> To vote in council elections they will have to become citizens and will therefore no longer be foreign owners.

</comment></comment><comment><USER20> _" The week that the government announced Vancouver's foreign tax,"_

Which government? Fed, state, municipal?

<comment><USER21> The article is pretty lazy with describing the tax. The municipal government of Vancouver doesn't have any of these taxing powers, and the tax comes from the Provincial government. It only applies to the Metro Vancouver area however, so some are already stating that there has been a spillover effect in other areas of the Province, such as Victoria.

<comment><USER22> The foreigner tax is provincial (applying only to Metro Van). The vacancy tax is municipal, applying to CoV. The city requested special taxing powers from the province for this tax and received it.

</comment></comment></comment><comment><USER23> Buy in Auckland New Zealand lol</comment>


Avast open-sources its machine-code decompiler - <AUTHOR> https://blog.avast.com/avast-open-sources-its-machine-code-decompiler <comment><USER2> Is there any way to use this on a DOS EXE? This would be a lovely tool to port/remaster old games (i.e. decompile, replace rendering methods with modern equivalents, compile again -- an "offline" version of the "online" idea I was going for with [http://www.gabrielgambetta.com/remakes.html](http://www.gabrielgambetta.com/remakes.html))

<comment><USER3> Note that it was not rare for some old DOS games to have bits of assembly in them.

This was usually done to overcome some performance bottleneck but with today's hardware you might not need that at all.

<comment><USER4> Yesteryear's C compilers weren't great, optimization-wise. But anything remotely modern would just brute force its way through a DOS-era program, well optimized or not.

<comment><USER3> Also yesterday's instruction sets were a bit more limited.

</comment></comment></comment></comment><comment><USER5> Cool. Finally some free alternative to IDA decompiler plugin. IDA is still better due to interactive nature, i.e. you can explore the code and rename variables/functions as you keep on exploring. I hope this evolves into something like that.

<comment><USER6> You might be interested in the free decompiler Radare2 [https://en.wikipedia.org/wiki/Radare2](https://en.wikipedia.org/wiki/Radare2)

<comment><USER7> radare2 is a disassembler, not a decompiler.

Disassembly is a much easier task than decompilation, since it's a mostly mechanical process. Decompilation requires you to undo the optimizations/transformations the compiler did as it generated the binary, which is much harder.

That said radare2 is still cool, and a GUI (Cutter) is in the works.

</comment></comment></comment><comment><USER8> Backward R in the logo: this drives me nuts. To any readers of the Cyrillic alphabet it says "Ya". So this says "Yaetargetable Decompiler"

I can't be the only one!

<comment><USER9> It's not written in a Cyrillic language. It's written in English.

Nobody comes along and points out that in Spanish the "g" works differently, and it bugs them to see words with "g" in them.

It's one thing to do faux-Cyrillic and get the letters wrong. It's quite another to do something silly to a latin letter, and get complaints that it _resembles_ a non-latin letter.

<comment><USER8> It doesn't _resemble_ the Cyrillic letter---it _is_ it. "R" is an English letter but not a Cyrillic one, and "Я" is a Cyrillic letter but not an English one, and by flipping them horizontally you transform them into each other. I imagine for many of the 7,574,303 people in Russia who speak English and probably also a fair chunk of the 854,955 Americans who speak Russian (and presumably have mastered both alphabets), it's annoying. Not a huge deal, just annoying.

[https://en.wikipedia.org/wiki/List_of_countries_by_English-s...](https://en.wikipedia.org/wiki/List_of_countries_by_English- speaking_population)

[https://en.wikipedia.org/wiki/Russian_language_in_the_United...](https://en.wikipedia.org/wiki/Russian_language_in_the_United_States)

<comment><USER9> There are so many symbols from different languages that resemble each other. If I use a smiley face, that doesn't mean I used a "ü" or a "ツ" from another alphabet just because it looks similar. A backwards R is visually the same as a Cyrillic character, but that doesn't mean I'm writing in Cyrillic, just like a "P" is visually the same as a Cyrillic character but doesn't mean I'm writing in Cyrillic.

</comment></comment></comment></comment><comment><USER10> Does anyone know why intel discontinued their tamper protection toolkit? They had an obfuscation compiler that would turn compiled C code into a self encrypting/decrypting code. The idea was if you dissassembled the code at any point you wpuld get mostly garbage instructions. I always wondered how a de compiler could get around that.

[https://software.intel.com/en-us/articles/intel-tamper- prote...](https://software.intel.com/en-us/articles/intel-tamper-protection- toolkit-beta-closed)

<comment><USER11> Google for anything Rolf Rolles has published on the topic, believe it or not there are general approaches to solving this. Someone already mentioned dumping the text segment, that only works for silly 90s-era obfuscators.

Contemporary obfuscators _rewrite_ the protected code as a series of instructions executed on a virtual machine whose bytecode (and bytecode semantics!) are randomly generated at build time. The solution (AIUI) is symbolic execution of the instructions to determine their underlying architectural effect, synthesize some compiler IR that is equivalent to those effects, run an optimization pass (like a regular compiler) over that IR, and finally generate x86 from the result.

The optimization passes are necessary to remove side effects that do not impact the state of the program ("noise"), which modern obfuscators like Themida insert a ton of into the instruction stream

In other words, rather than attempt to dump some particular part of the program, the binary as a whole is statically analysed to determine, regardless of the indirections inserted by any obfuscation pass, what machine instructions are ultimately executed for a given program input. The abstract representation is then compiled to an equivalent new program which is much easier to read, because all of the indirections and noise have been optimized away.

When I was reading about Rolles' work initially, I couldn't help but imagine this is the kind of approach Geordi La Forge would have come up with if cracking an encrypted binary were ever the plot for an episode of Star Trek :)

<comment><USER12> _instructions executed on a virtual machine whose bytecode (and bytecode semantics!) are randomly generated at build time_

Like the one built into Windows: [https://github.com/airbus- seclab/warbirdvm](https://github.com/airbus-seclab/warbirdvm)

</comment></comment></comment><comment><USER13> >"As we announced in our Botconf 2017 presentation at the beginning of December (slides), RetDec, our machine-code decompiler, is now open, which means anyone can freely use it, study its source code, modify it, and redistribute it."

These slides linked in the above looks like this was a really fascinating talk.

Does anybody know when or if this presentation was recorded or if it will be made available? I would love to watch this.

<comment><USER12> There was a live stream, but nothing appears to be available yet.

[https://twitter.com/Botconf](https://twitter.com/Botconf)

<comment><USER13> Yeah I also checked youtube with various search terms and came up empty. Hopefully someone from Avast or Botconf will read this and post them :)

It looks like some conference presentations from years past have made it to youtube.

</comment></comment></comment><comment><USER14> Really cool stuff. I don't like being negative when it comes to fantastic moves like this, but I'm still really disappointed that it doesn't support 64bit executables.

<comment><USER15> A reddit comment had a pretty good explanation.

Most malicious code is still written in 32-bit since 64-bit Windows supports running 32-bit code.

Write something in 32-bit - target 100% of devices. Write something in 64-bit - target ~50% of devices.

<comment><USER16> But if security software only treats 32-bit executables as suspicious, wouldn't it make sense for malware creators to switch to 64-bit?

<comment><USER17> Is any security software that easily bypassed?

</comment></comment></comment></comment><comment><USER18> I've used retdec before, its output is quite nice. I even had some problems with it (doing dumb stuff like putting in executables that were beyond the limits they imposed on their website) and whoever they had supporting it were quite friendly in helping me anyway.

</comment><comment><USER19> Looks like it's also relying on LLVM for disassembly? Ouch; that's an incredibly bad idea if you're trying to analyze malicious or unusual code (it's not designed for that), but I guess it's the easiest for a proof of concept like this.

Although, there's no way an AV company doesn't have its own disassembler, but those are almost always treated as trade secrets (especially the stuff that isn't in the spec / the spec is wrong). They'll probably hook it up to that before doing any real work with it themselves.

<comment><USER20> > Looks like it's also relying on LLVM for disassembly?

[wild speculation here] I suspect they're using llvm to go from an ast to c(++) code since they have tooling for stuff like that.

Now I have to find me a binary-blob kernel module that manufactures like to put out and see what the C code it spits out looks like -- another wasted day methinks...

<comment><USER19> You could just ..uh.. _acquire_ a copy of IDA that has the AMD64 decompiler. It's more mature and spits out C code of wildly varying readability, though only for one function at a time.

</comment></comment></comment><comment><USER21> Super cool move. Always interesting to look at techniques for this type of stuff. It always feels like black magic.

</comment><comment><USER22> This is awesome! I had been using retdec.com since before Avast bought AVG (where RetDec was originally developed). I'm very excited to do away with the limits the website imposed.

</comment><comment><USER23> Why they do it? This is their competitive advantage.

<comment><USER24> Modern AV software uses a virtual machine and a decompiler in tandem. This is not their only competitive advantage.

</comment></comment><comment><USER25> Now the usual for large projects like this one (this is just for the main repo):

      $ loc .
      </comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>--
       Language             Files        Lines        Blank      Comment         Code
      </comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>--
       C++                    587       202592        23441        43727       135424
       C/C++ Header           450        34934         6371        11733        16830
       Bourne Shell            10         2363          247          518         1598
       Plain Text              16          827           46            0          781
       Autoconf                 1         2507          551         1635          321
       Python                   1          195           32           22          141
       Markdown                 2          162           45            0          117
       ASP.NET                  2            2            0            0            2
      </comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>--
       Total                 1069       243582        30733        57635       155214
      </comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>--

<comment><USER26> So there are two lines of ASP.NET code? Do I read this correctly?

<comment><USER27> Two single line files that have a file extension making them look like ASP.net code is how I read that.

It could be place-holder scripts that redirect to the correct location, for instance a default.asp/index.asp file that does nothing but redirect to index.html some other default that IIS doesn't recognised out of the box. This would catch cases where someone has just dumped the web assets on a IIS share (IIS doesn't, or at least didn't used to, consider index.html as a potential default document). In classic ASP this would be something like the line:

        <% response.redirect "index.whatever-extension" %>

It could also be false positives in whatever test is being performed. For a project like this, I suspect that is more likely to be the case.</comment></comment></comment>


KDE Ships Plasma 5.5 Release - <AUTHOR> https://www.kde.org/announcements/plasma-5.5.0.php <comment><USER2> Can't wait for Kubuntu to package it up and release it!</comment>


Your Business is Not Your Baby - <AUTHOR> http://www.inc.com/chris-heivly/your-business-is-not-your-baby.html

<comment><AUTHOR> At what point did your thought process switch from "it's all about me," to "it's all about the company?"</comment>


Best React UI component libraries for 2018 – part 2. Enjoy - <AUTHOR> https://blog.bitsrc.io/best-react-ui-component-libraries-for-2018-part-2-d231dcb04c0a <comment><USER2> I ugh.... dislike this research.

It has React Grommet as #5. Working with Grommet I can attest that it is a terrible framework.

Their "grid" makes you want to avoid any sort of layout that grommet gives you. Their icon set is kinda terrible and pretty darn opinionated. And they are making a complete incompatible rewrite for grommet 2.0.

I would use Bootstrap or anything really. Just not grommet.</comment>