Was the Antikythera Mechanism the world's first computer? (2007) - <AUTHOR> https://www.newyorker.com/magazine/2007/05/14/fragmentary-knowledge <comment><USER2> YouTube channel of a guy recreating the mechanism:

[https://www.youtube.com/playlist?list=PLZioPDnFPNsHnyxfygxA0...](https://www.youtube.com/playlist?list=PLZioPDnFPNsHnyxfygxA0to4RXv4_jDU2)

<comment><USER3> It's a beautiful device, and for some reason I could watch Mr. Clickspring file brass for hours. Most of the device is clockwork – gears and bearings, so… physical manifestations of multiplication and division.

But…

The first couple of minutes of Episode 9 amaze me. There is a section where two gears with slightly offset axis are joined with a pin and slot to approximate the nonlinear angular movement of the moon caused by its elliptical orbit.

It makes one wonder about the sheer number of observations and quantity of analysis they must have done >2000 years ago to work out the motion of the moon and translate the math into bronze.

<comment><USER4> Every advanced ancient civilization had astronomical observatories and political leaders routinely relied upon personnel at these facilities for information about when to plant and harvest crops. If your livelihood depends on this sort of thing, there may be an incentive to invest in improving instruments and models.

The artifacts that we have found represent a small fraction of what these people produced and used. Are there going to be any iPhones (or Commodore 64's)that will survive to thousands of years from now? If so, will future archaeologists be able to turn one on?

<comment><USER5> The problem is not that we don't have more of these devices but rather that little written remains of them. It's as if references to them were systematically destroyed. Mind you, we wouldn't even know about the Antikythera mechanism where it not for its accidental discovery.

</comment></comment></comment></comment><comment><USER6> Update: A 2017 find appears to be another piece of the mechanism.

[https://greece.greekreporter.com/2018/11/15/has-a-missing- pi...](https://greece.greekreporter.com/2018/11/15/has-a-missing-piece-of-the- ancient-antikythera-mechanism-been-found/)

</comment><comment><USER7> If you're interested in the history of the mechanism itself and the lives of the people who tried to make sense of it, I found this book [https://www.goodreads.com/book/show/5456216-decoding-the- hea...](https://www.goodreads.com/book/show/5456216-decoding-the-heavens) both very enjoyable and informative

</comment><comment><USER8> I have visited the old observatory in Athens, Greece. There, along other treasures (e.g. a Tycho Brahe book) there's a replica of the Antikythera mechanism.

Additionally, recently they found some kind of inscription in it [1], which describes the way that it works. What is fascinating to me is that they also fixed a bug with the periodicity of an event and wrote it down. According to the tour guide, this signifies that it was massively produced. I still find it incredibly difficult to create a new gear without modern tools and also fix a 'bug' by creating a new, better gear to replace the old one that approximates an astronomical event with better accuracy.

[1] [https://currentepigraphy.org/2008/09/24/inscriptions-on- the-...](https://currentepigraphy.org/2008/09/24/inscriptions-on-the- antikythera-mechanism-1/)

</comment><comment><USER9> There might have been even more amazing devices which were lost.

<comment><USER10> The very fact that one of them was found is a miracle itself.

</comment></comment><comment><USER11> If it is a computer that predicts astronomical events, seasons etc. as is theorized by some, and if it was built more than 2000 years ago presumably before people understood how the solar system works (I think back then it was not understood that the planets revolve around the Sun) then they must have based the design on a large number of observations recorded over time. If so, then it is also the first application of "big data" in that an algorithm was developed based on data and implemented using a mechanical computer.

<comment><USER12> Not quite. Heliocentrism was introduced around 270 BC by a Greek astronomer.

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

The oldest estimates for the Antikythera Mechanism are 205 BC.

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

So it is very well possible, if not likely, that the builders of the Antikythera Mechanism were aware of the heliocentric model.

<comment><USER13> Amazing. Also amazing to me is the caluclation of the size of the moon and distance of the earth from the sun around the same time [1] [2]

[1] [https://en.wikipedia.org/wiki/On_the_Sizes_and_Distances_(Ar...](https://en.wikipedia.org/wiki/On_the_Sizes_and_Distances_\(Aristarchus\))

[2] [https://en.wikipedia.org/wiki/Hipparchus#Distance,_parallax,...](https://en.wikipedia.org/wiki/Hipparchus#Distance,_parallax,_size_of_the_Moon_and_the_Sun)

</comment></comment></comment><comment><USER14> What's really interesting for me and something I haven't been able to find good literature on - is how the civilization seems to severely regress into the dark ages after the ancient times.

While Rome fell, Byzantium continued on. The state even continued to refer to themselves as Roman.

Certain construction items change and have good explanation, such as the Roman concrete - it's volcanic components were no longer accessible to Byzantine builders, so the use became impractical.

But how did we manage to lose the knowledge behind the Antikythera device and why was it not recorded?

<comment><USER15> Rome itself was partly/largely to blame - the idea of a unified greco-roman culture is a myth. When thinking about ancient science and technology, its useful to divide antiquity into three periods:

the classical greek period 600-350 bce

the Hellenistic Greek period 350 - 150 bce

the 'imperial' period 150 bce - whenever ce

Virtually all of the great scientific and technical achievements of antiquity were from the Hellenistic Greek society - the society of euclid, eratosthenes, archimedes, ctesibius, hipparchus, chrysippus, herophilus, supported by the Ptolemies in north Africa.

All this scientific work came to an abrupt end around 150bce due to the roman conquests, and the political atmosphere they created. Carthage (itself a cosmopolitan center of learning with close ties to the greek world) was not he only north african city razed to its foundations by Rome. Its easier to list the survivors: (1) Alexandria and (2) Rhodes. This completes the list. And the academics didn't survive: in 145bce Ptolemy VIII persecuted the city's greek elite so all the intellectuals fled, and the romans made a hobby of enslaving greek intellectuals, to have them work as copyists and teach their children to read.

Thus in a very short span of time, virtually all of the physical books were destroyed when the cities were destroyed, and the intellectual culture that understood the ideas was eliminated. There was a partial renaissance during the Pax Romana (ptolemy, galen, etc), but the understanding of the science was much more primitive and quickly faded with no state and cultural support.

As for technology - roman engineering was typically less advanced than greek engineering, and for technically difficult things the latin writing are both crude and wrong: their _scientific_ engineering was done by importing engineers from the east. The antikythera mechanism (late 2nd century bce) is a good example of the decline: there is nothing of comparable mechanical complexity from the roman period, neither in archeology or in Heron.

See Russo[1] for very readable up to date academic scholarship on this kind of thing.

[1] [https://www.amazon.com/Forgotten-Revolution-Science-Born- Reb...](https://www.amazon.com/Forgotten-Revolution-Science-Born- Reborn/dp/3540203966/)

<comment><USER16> What Russo has to say about Seneca and Eratosthenes is shocking

</comment></comment></comment><comment><USER17> A few years back I had started outlining an alternative history scifi story with the premise being that both the technology and the civilization behind the Antikythera Mechanism was not lost but continued to progress up until today. Sort of like William Gibson's "The Difference engine" but with a 2000 year head start towards the singularity.

<comment><USER18> Carl Sagan imagined something like this in "Cosmos" \- we'd be launching dodecagonal starships about now.

</comment></comment><comment><USER19> I think there was a lost book by Archimedes that may have been about constructing these, called "on sphere-making"

It mentioned the archimedes sphere in the story

"Rehm suggested that it might possibly be the legendary Sphere of Archimedes, which Cicero had described in the first century B.C. as a kind of mechanical planetarium, capable of reproducing the movement of the sun, the moon, and the five planets that could be seen from Earth without a telescope—"

</comment><comment><USER20> Since they had this mechanism, did they also have regular clocks with gears in ancient times?

According to Wikipedia, they only had that kind of clocks since the middle ages, but if they were building a mechanism with gears to keep track of other planets in ancient times, surely they must also have done so for local time?

<comment><USER21> One important distinction between a clock an the mechanism is that clocks can be would up and run "by themselves". Perhaps this was the missing key? (Though, this would not preclude them from creating "mills" run by wind/water to display time.

Another thing to consider is that the concept of doing things at a specific time may not have matter to much of the worlds population at the time and, even though they were capable; there was no demand.

</comment></comment><comment><USER13> a.) Amazing

b.) I wish people today would stop thinking people back then war "stupid", people have the same intelligence for the last 10k years and the same thought processes (e.g. when reading Sumerian texts) but not the same tools or knowledge. So someone from old Greece would come up to speed very fast and then make inventions in our time frame based on our knowledge. You could argue with him the same way you can argue with todays scientist.

</comment><comment><USER22> When I think of a computer, the first thing that pops up in my mind is whether the Antikythera computer is Turing complete? The article makes no mention of this.

To give it a title as the first computing device, I think there should be some analysis of operations that it can perform and whether they can constitute as a universal turing machine.

Otherwise, we can call stones as computers. They can do addition and subtraction by the virtue of counting. I am not familiar with Turing's thesis on a theoretical basis (having only read the popular "Turing's Vision" by Chris Bernhardt), is it possible to determine turing completeness of this mechanism?

<comment><USER23> > whether the Antikythera computer is Turing complete?

Of course it isn't. Just like many analogue computers put together for the computation of ballistic trajectories or some other physical modeling task are not Turing complete. That doesn't mean they are not computers, just not general purpose computers.

<comment><USER24> By that definition the abacus is the first computer. I don't disagree with you that Turing completeness isn't a good definition of a computer (especially since the word itself is quite old and has been in use longer than even Babbage's computer).

<comment><USER23> > By that definition the abacus is the first computer.

It isn't. The abacus does not compute anything at all unless used as a tool by a human that executes the algorithm. The Antikythera has its algorithm built in, it will compute the same numbers no matter who turns the crank. It's a stored program computer where the program is stored in the proportions of the gears in its gearbox.

Think of an abacus as an aid to manual computation, and a Antikythera as something that actually computes.

</comment></comment></comment></comment><comment><USER16> Simon Winchester in his recent book is pretty adamant that it isn't.

</comment><comment><USER25> It can hardly be the first because it's made too perfectly. It's obviously not a prototype.

<comment><USER26> An important subtlety that's often missed. The iterations before it would have been _numerous_.

</comment></comment><comment><USER27> [2007]

<comment><AUTHOR> Thanks!

</comment></comment><comment><USER28> If the Antikythera mechanism was a computer, then so arguably is the abacus, which is probably not much younger than numeracy itself.</comment>


HackerSkills Game – Level 1 - <AUTHOR> http://hackerskills.com/

<comment><USER2> Cute concept. I liked the CTF game from Stripe[1], it progressed more quickly and there were no ads. It felt like a more genuine challenge.

Some interesting Google results show for hackerskills.com [2].

[1] Stripe CTF 2.0: [https://stripe.com/blog/capture-the- flag-20](https://stripe.com/blog/capture-the-flag-20)

[2] Skip ahead?: [https://www.google.com/search?q=site%3Awww.hackerskills.com](https://www.google.com/search?q=site%3Awww.hackerskills.com)

</comment><comment><USER3> If only "hacking" was as easy as finding passwords within JavaScript. Got bored after level 6 or so, meh.

</comment><comment><USER4> Also I'm not sure if it's part of the game, but I can't get the page to load after the first level.

</comment><comment><USER5> Level 7 is broken. First six levels consist of searching the JS for a password. Pass.

<comment><USER6> 7 didn't seem to work for me either. Asked a friend to give it a shot, same thing

<comment><AUTHOR> 7 begin to be hard! The site promises more than 100 levels, what do you expect of the firsts 6?

</comment></comment></comment><comment><USER7> Those awful pop-up ads render this pretty much unplayable.</comment>


Ethereum and Clojure(Script) [pdf] - <AUTHOR> https://github.com/DomKM/ethereum-free-lunch/blob/master/slides.pdf <comment><AUTHOR> free-lunch project form the slides & links to the talk:

[https://github.com/DomKM/ethereum-free- lunch](https://github.com/DomKM/ethereum-free-lunch)</comment>


I am creating artificial life, declares US gene pioneer - <AUTHOR> http://www.guardian.co.uk/science/2007/oct/06/genetics.climatechange <comment><USER2> While it would technically be considered a different species (though perhaps in the same genus as the parent species), I wouldn't consider it artificial life. All they did was repeatedly remove genes and see if the organism was viable. They still have no idea how most of the genes and regulation actually work. Simply modifying an organism doesn't constitute artificial life unless you consider dog breeds or other things we've created by breeding. By the same notion, it's not considered artificial life when a new custom chromosome (called a plasmid) is inserted into a bacteria or eukaryotic cell. It's done all the time and has been since the 80s.

All they did was get rid of "extraneous" genes that they don't deem necessary. They're trying to make a designer organism to synthesize/produce compounds. This is one step in achieving that, though it was arguably unnecessary. The hard part is creating genes/proteins to make it do what you actually want. This involves creating a new biochemical pathway (or modifying an existing one), probably creating new enzymes to recognize your intermediates, designing ER and golgi receptors to recognize their finished product and target it for excretion from the cell, creating proper regulation of this pathway, etc, etc. As you can see, it's very complicated. No one has successfully created their own enzyme or protein yet, let alone an entire biochemical pathway of them.

<comment><USER3> I would submit that even an organism of entirely new proteins isn't artificial. If it uses DNA, RNA and amino acids, it is just a variation on the same 4 billion year old theme.

These proteins would not be "created" their structure would almost certainly be evolved computationally. That would be enormously useful. And it would be damned cool.

But, I think true artificial life simply must be made out of something else.

<comment><USER4> While the current vein of research might never satisfy your stringent definition of "artificial life", I think that's somewhat beside the point. The usage here is synonymous with "designer life", which is becoming an increasing possibility.

</comment></comment></comment><comment><USER5> Why did the Guardian take this really awesome scientific advancement and wrap it in a politically-charged article about fighting global warming?

The ramifications of creating new life-- or a chromosome, in this case-- are far, far more widely reaching than simply to fight climate change.

<comment><USER6> Indeed, the ramifications of this breakthrough are much larger than fighting climate change. An editor from the Guardian told me: "these new life forms can also fight terrorism, drunk driving and The Others."

When I asked if this development had any relevance in areas other than cliche current event subjects, he said "Absolutely. Since we know have an answer to where life comes from--the lab--humans won't have to waste all that time with existential talk and can spend more time reading the Global Warming and terrorism stories in our great news media."

</comment></comment><comment><USER7> What exactly was accomplished? Is the big deal that they removed a bunch of genes and it's still alive? That article left me feeling like they were just trying to tell me that this discovery is "omg awesome!"

</comment><comment><USER4> Breaking news: Proof of P!=NP discovered, ramifications for the fight against bioterrorist warming discussed.</comment>


How to turn a technical screw up into a "delighter" feature - <AUTHOR>

I received this recently from Xero.com. Because they reached out honestly, pro-actively and generously I ended up actually feeling happy as a result of their (initial) failure. Kudos.
<comment></comment><comment></comment><comment></comment><comment>----
Hi Peter,
We have found an error in our billing system which caused your credit card to be charged twice for your monthly subscription to Xero.
This occurred twice on the same day, 30 November 2009.
We're really sorry about this. We have investigated how this error occurred and are making system changes to ensure that this cannot happen in the future.
We apologise for any inconvenience this may have caused your company.
We want to rectify this error for you as quickly as possible and would like to offer you two choices: 1.    We can make an immediate refund of this amount directly to your credit card 2.    Or we can apply the overpayment to your next invoice.
Regardless of which option you choose, we'll also give you one month's subscription for free as our way of saying 'Sorry'.
Please let us know which option you would prefer, however if we don't hear from you we will apply the overpayment to your next invoice.
Once again we apologise for any inconvenience caused.
Kind regards Ben </comment><comment><USER2> It is nice, those rare moments, when a company has a clue.</comment>


Will Amazon Open the Kindle to Developers? - <AUTHOR> http://bits.blogs.nytimes.com/2009/09/25/will-amazon-open-the-kindle-to-developers/?hpw

<comment><USER2> The Kindle as it exists today, is going to be a pretty sad design for _mostly_ anything other than reading. Definitely not intended for playing shoot-'em-ups - playing chess or educational games might work, but then again, Kindle's form factor puts it right in the middle - it's too big to fit into a pocket like an iPhone and too small to be used as a full-fledged laptop.</comment>


Everything You Need to Know to Rebuild Civilization from Scratch - <AUTHOR> http://io9.com/everything-you-need-to-know-to-rebuild-civilization-fro-1566170266

<comment><USER2> I want copies of this printed on non-decaying plastic paper (like that cradle- to-cradle book a few years back ) so that it will still be around if we screw up technological civilization to the point of a near-extinction event.</comment>


Google Analytics Opt-Out Browser Add-On - <AUTHOR> https://tools.google.com/dlpage/gaoptout?hl=en <comment><USER2> That doesn't do what you think it does. It only excludes your data from being included in Google Analytics reports that website owners "end users" see. All your data still goes to "the borg" as if nothing has really changed.

You need to block the domain completely using a privacy tool plug-in for your browser.

<comment><USER3> Source?

According to Google:

> This add-on instructs the Google Analytics JavaScript (ga.js, analytics.js, > and dc.js) running on websites to prohibit their information from being used > by Google Analytics. Using the Google Analytics opt-out plug-in will not > prevent site owners from using other tools to measure site analytics.

[https://support.google.com/analytics/answer/181881?hl=en](https://support.google.com/analytics/answer/181881?hl=en)

I've heard that the reason it sets a variable rather than blocking the script is to avoid breaking websites that do custom tracking.

<comment><USER2> I'm pointing out that "Google" and "Google Analytics" are separate and that when your data is collected "Google" gets it, processes it and then pushes the refined data to "Google Analytics". The raw data is used in the "internal API" (Which is different than the public APIs that you are familiar with). Both your source and OPs are referring to "Google Analytics" (which is the public part that webmasters see).

<comment><USER4> This appears to be pure unfounded speculation. Can you provide anything to back this up in any regard?

<comment><USER2> It's not speculation. Are you asking for more of a deeper explanation of how the internal API works, or do you want to see published papers/links about it? Google doesn't publicly document the "Google Analytics Internal API".

<comment><USER4> Please provide some evidence of this claim as it relates to this extension:

> when your data is collected "Google" gets it, processes it and then pushes > the refined data to "Google Analytics".

<comment><USER2> You are asking for a publicly available document showing the architecture of Google + Analytics + Doubleclick + Adwords... I can't get that, but other than doing experiments; you could do what I did when I first found out which is go ask someone who works on the internal API. (That's what I did)

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> Good options for real privacy:

Privacy Badger from EFF The extension is designed to automatically protect your privacy from third party trackers that load invisibly when you browse the web. We send the Do Not Track header with each request, and our extension evaluates the likelihood that you are still being tracked. If the algorithm deems the likelihood is too high, we automatically block your request from being sent to the domain. Chrome: [https://chrome.google.com/webstore/detail/privacy- badger/pke...](https://chrome.google.com/webstore/detail/privacy- badger/pkehgijcmpdhfbdbbnkijodmdjhbjlgp) Firefox: [https://addons.mozilla.org/nl/firefox/addon/privacy- badger-f...](https://addons.mozilla.org/nl/firefox/addon/privacy-badger- firefox/)

or

Ghostery from Ghostery, Inc Block over 2300 request from Advertising, Analytics, Beacons, Privacy and Widgets lists. Quick, easy to use and configure. There business model isn't all that great, it's selling data to advertisers if you want to optin for that. Chrome: [https://chrome.google.com/webstore/detail/ghostery/mlomiejdf...](https://chrome.google.com/webstore/detail/ghostery/mlomiejdfkolichcflejclcbmpeaniij?hl=en) Firefox: [https://addons.mozilla.org/nl/firefox/addon/ghostery/?src=se...](https://addons.mozilla.org/nl/firefox/addon/ghostery/?src=search)

There are others but they all have a downside. AdBlock (Plus) but has terrible business model which let advertisers buy back adds, uBlock (Origin) super quick AdBlock fork but with terrible interface and Disconnect which also has a terrible interface.

<comment><USER4> > AdBlock (Plus) but has terrible business model which let advertisers buy > back adds

How is that terrible? (this is not their business model in reality) Do you not agree that by using these features you deprive sites of revenue? Adblock believe that unintrusive ads should be permitted to allow free sites to remain free.

This is a perfectly reasonable position to take and it is unfair of you to attack them.

<comment><USER2> Adblock is unfair because the "unintrusive ads" aren't that - they are just "companies who have paid more to have their ads shown - ads". I would say that's both unfair and terrible because a) it disavantages smaller players in the ad market (decrease in choice is bad). b) Who determines which ads are "unintrusive"? - that's a qualitative property. But then again it has become a product that does not do that - it's not actually blocking ads now.

<comment><USER4> > a) it disavantages smaller players in the ad market

How?

> b) Who determines which ads are "unintrusive"?

Adblock

<comment><USER6> Adblock was recently sold to an undisclosed buyer[1]. They told users of the switch the same day they started the "Acceptable Ads" program. I don't want someone I don't know controlling which ads bypass my ad blocker..

[1] [http://www.businessinsider.com/adblock-gets-sold- acceptable-...](http://www.businessinsider.com/adblock-gets-sold-acceptable- ads-2015-10?r=UK&IR=T)

<comment><USER4> > I don't want someone I don't know controlling which ads bypass my ad > blocker..

Then I think your only option to remain logically consistent is to not install any ad blocker.

<comment><USER7> Because what people want from an ad-blocker is an affirmation of their logical consistency, and not "blocked ads". Uh huh.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> The opt-out doesn't really do anything: [http://www.unrest.ca/google- analytics-opt-out-not-really](http://www.unrest.ca/google-analytics-opt-out- not-really)

<comment><USER2> Yes - good resource. All of Google's TOS/Privacy-Polcies are so full of vague and misleading legal speak (on purpose of course), I'm not surprised that OP was tricked.

<comment><USER4> > All of Google's TOS/Privacy-Polcies are so full of vague and misleading > legal speak

Please provide 3 misleading examples.

<comment><USER9> Everything is debatable of course, but pretty much on page 1 of Google's privacy page, I see:

 _We collect information to provide better services to all of our users – from figuring out basic stuff like which language you speak, to more complex things like which ads you'll find most useful_

I object to "ads you'll find most useful" being ok under the category "provide better services to our users". If you accept the premise that better ads are useful, then pretty much everything Google does is for your own good.

<comment><USER4> This is not misleading in any way, your only disagreement with it is on principle.

Even given that, I must say, the idea that better ads are not useful is probably fallacious

<comment><USER2> What are better ads? Are they ads that really connect with you? Do they change your behavior in some significant way? What makes ads better for the consumer? What makes ads better for the marketer? My answer is that what's good for the marketer is not good for the consumer. Google is optimizing for the marketer (getting better ROI). As long as consumers are told the ads are "unintrusive" they must be good too right? When marketers have a really strong ROI, they can get their ads out there and influence customer behavior. That type of influence is not good - and does not make it better for consumers.

<comment><USER4> They explicitly state 'more useful'. That is the metric they are using, better ads are ads which are more useful.

For example. Until a day or two I did not know the 'MX Master' mouse existed. An advert for this would have been useful.

<comment><USER2> Useful and obtrusive are not mutually exclusive. Is it useful to have only large companies with large ad budgets peddle a slight iteration to their product line as "the next best thing", while smaller companies with a really great (superior) product don't get the exposure. The smaller company would have lower margins because they invest much more in superior materials, QA, R&D, etc. Where the larger company has an advantage because they invest more of their margin on ads. Note: I have an "MX Performance" and I would not recommend that line of mice no matter what the ads originally said.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> This opt-out works for me (add to hosts file):

      127.0.0.1 www.google-analytics.com
      127.0.0.1 google-analytics.com
      127.0.0.1 ssl.google-analytics.com

<comment><USER2> What about the doubleclick domains and adwords domains which feed the same data into the same system too? And what about when they launch a new domain? (Would be difficult to keep up with those changes)

<comment><USER11> Use own root and cache DNS instead of HOSTS. Then use wildcards, e.g.,

      *.doubleclick.net

<comment><USER12> Tool to automate that: [https://github.com/jakeogh/dnsmasq- blacklist](https://github.com/jakeogh/dnsmasq-blacklist)

<comment><USER11> The question is: what is listening on 127.0.0.1?

For example, do you have an httpd listening on 127.0.0.1? Do you bind any other daemons to 127.0.0.1 or the broadcast address?

If you operate your own root you can reassign the authoritative nameservers for doubleclick.net to nameservers you control. You may or may not choose to return "A" records.

<comment><USER12> Hopefully nothing is on 127.0.0.1:80/443, that way webkit gets a RST back, which I assume is faster (and less error prone) than serving a dummy page. I'll add a note to the README.

Edit: Added a --dest-ip option

<comment><USER11> "...serving a dummy page."

It could also be less than a page. It could be a dummy resource. For example, in the case of an ad server and a smartphone app that has some screen space reserved for ads. You might want your own resource to appear in that space instead.

Another example is reverse engineering API's and protocols for popular web services, social media, storage, etc. In that case you might want a "dummy server" that serves certain responses.

<comment><USER12> Interesting. Does --dest-ip[1] solve this?

[1] [https://github.com/jakeogh/dnsmasq- blacklist/commit/554e20a3...](https://github.com/jakeogh/dnsmasq- blacklist/commit/554e20a3f9f4c6402c4e9a6129f36d10e439e678)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> Opt out? This should be the default.

In an ideal situation, Google tells the user that in order to provide optimized recommendation services, the user must enable certain options. These options could include the reporting of browsing behavior to Google. They could also include storing X bytes of information on Google servers for at most Y days, where X and Y can be chosen by the user.

</comment><comment><USER14> "Don't let the fox guard the henhouse."

(unless the "fox" is Firefox, and even then you should be using 3rd party privacy extensions like Privacy Badger or Ghostery)

</comment><comment><USER15> What's the advantage of this over blocking tracking stuff with adblock? Or other extensions like disconnect.me?

<comment><USER16> I doubt there is any (for the user). While there are many benefits to keep using an ad blocker.

</comment></comment><comment><USER17> This news concerns me a bit, as a project manager for a SaaS web app that uses GA to generate user activity reports for data around things like "# of users who clicked on link X" or "users who completed a survey". I'm not a dev, and we hire an outside web dev company to build the web app and reporting dashboard.

Can someone more knowledgeable than me indicate if a user with this add-on enabled will be throwing up zeros on our analytics when they use the software as a logged in user? I know Ghostery blocks GA, but it's niche enough that I don't worry about a critical mass of our target demographic using it. But this seems like an official Google add-on, which makes it much higher profile to average users.

<comment><USER18> It makes it so no data generated by a user ever reaches Google Analytics's server, so: yes, they will be zeroes, except if you use other tools to account for them.

<comment><USER19> This is false. The data goes to google's servers, it is just not reported to the webmaster.

<comment><USER18> Upon reading the article, you seem to be correct.

</comment></comment></comment></comment><comment><USER20> "For Internet Explorer, 3rd-party cookies must be enabled." Sounds like it activates a bunch of other stuff that the kind of person who would want to "opt out" would never want.

</comment><comment><USER21> I find this to be more of a PR stunt that says "Google tries to care about privacy..."

With every change they make to Google search, they put more value on a site's user experience. Now they take away data that is used to improve user experience... smh

If GA users are abiding by their terms and not collecting private info, why is this necessary? Punish all b/c we don't feel like investigating who is actually wronfully collecting private info?

<comment><USER22> But if it was a PR stunt wouldn't it have more design to it? It looks like some kind of legal compliance thing, not something they want to get any attention.

<comment><USER2> Could be both. I looks like it was just made a long time ago with older design standards. It is commonly used in discussion & feature comparison to make people think that they can opt out. Even implying that webmasters have some control over their data (which they don't have)

</comment></comment></comment><comment><USER23> "The requested URL /intl/en/analytics/learn/privacy.html was not found on this server. That's all we know."

I still hate this 404 message.

Edit: maybe I didn't make it clear enough that that was what I saw after clicking on "Learn more about Google Analytics Privacy »".

<comment><USER24> Are you on a non US or non English "IP"? Google does this stupid geoip work then _404s_ pages for other regions. For instance, their solar rooftop calculator thing just 404d in IPs they think are in Central America. It's a dumb and weird way of handling things, though no doubt someone got a raise for that feature.

<comment><USER25> Actually, I'm in the US and I also get this 404. It's been a while since this add-on has been made, so that the link is broken isn't too surprising.

</comment></comment></comment><comment><USER26> I've had pretty good luck with: [https://addons.mozilla.org/en- US/firefox/addon/gdc/](https://addons.mozilla.org/en-US/firefox/addon/gdc/)

</comment><comment><USER27> This may seem like a silly question, but why would someone want to do that? Google Analytics is basically anonymous traffic and demographic data for web site users. Why does anyone care?

<comment><USER2> Here's a A summary of some of my previous comments on this: The bulk of information about you isn't associated with your account. (or in some personal way) Rather, it's stored in other silos associated with a non-account identifier (consider this a way to make it easy to serve more targeted ads to people who don't even have a google account). This non-account identified data can be enriched by account data (when there are co-occurrences of account activity along with non-account identifiers).

There are great efforts made to track everything we possibly can about people's behavior on the web. Algorithms connect all the dots and make information about you (found in Service A, Service B, ...) useful. So useful that we can determine enough about you to tailor your online experience in order to influence your decisions when it comes to purchases, brand recognition, political leaning, etc. This is done even when the influence we have over you may harm your best interests, for the purpose improving ROI for advertisers.

So the idea of "anonymous" data really isn't that, and the real issue is how that data is used against you. This is true both for an end user, as well as a company using google analytics on their site (losing customers, classifying their marketing sources for advertisers on doubleclick, etc.)

</comment></comment><comment><USER28> "Don't be evil," Google.</comment>


Google Sprints Ahead in AI Building Blocks, Leaving Rivals Wary - <AUTHOR> http://www.bloomberg.com/news/articles/2016-07-21/google-sprints-ahead-in-ai-building-blocks-leaving-rivals-wary <comment><USER2> The way I see it, TensorFlow has already won, even if competing frameworks don't yet see it that way. New ideas and research breakthroughs will spread faster to the framework that has the most users and contributors, thereby attracting more users and contributors, in a feedback loop.

Some of the other frameworks will continue to be used (for example, FaceBook's AI team is unlikely to back away from its commitment to Torch), but the TensorFlow ecosystem and its network effects appear to have reached 'escape velocity' in a winner-take-all space.

New higher-level services and products will be built atop the framework most widely used by the most software developers, almost by definition.

Expect a shakeout: [https://medium.com/@mjhirn/tensorflow- wins-89b78b29aafb#.bzl...](https://medium.com/@mjhirn/tensorflow- wins-89b78b29aafb#.bzlyyk3ed)

\--

EDITS: Added the "new higher-level services and products" sentence.

<comment><USER3> TensorFlow has kind of won the Python deep-learning community, although frameworks like Keras[0] make it easier to use. While Python programmers make up the majority of deep-learning practitioners, they don't have much penetration in enterprise, which is chiefly JVM and lower-level languages.

Deeplearning4j [1] has won deep learning on the JVM. Nothing else comes close. (Disclosure: I'm one of its creators.) DL4J has the most sophisticated Spark integration, plugs into Kafka and works as a Hadoop job. It does all that while running on distributed GPUs, multiple CPUs and heterogenous hardware. It wraps cuDNN, which is faster than Tensorflow.

Finally, part of our stack, JavaCPP [2], is used by the TF communities as well as other big company projects to bridge the gap between Java and C++.

Dev mindshare in the form of Github stars doesn't equal revenue.

Finally, there are a number of strategic problems companies face when adopting a Google project. First, they are leery of depending on Google when they also compete with it. This is particularly true because Google doesn't open source a lot of its best work, like code from DeepMind. So Tensorflow adopters are getting the leftovers in a way, and they're kneecapped in the AI race.

Secondly, Tensorflow is not platform neutral. It's optimized for TPUs, which are not publicly available. It's a play to attract people to the Google Cloud.

[0] [http://keras.io/](http://keras.io/) [1] [http://deeplearning4j.org/](http://deeplearning4j.org/) [2] [https://github.com/bytedeco/javacpp](https://github.com/bytedeco/javacpp)

<comment><USER2> Upvoting, because I agree that JVM and .NET shops, like commercial banks and industrial manufacturers, are more likely to use Deeplearning4j (DL4J) and CNTK, respectively, than TensorFlow (or anything else, really).

However, those corporate shops are typically many years behind the state-of- the-art in AI, and in many, if not most, cases, they will likely end up paying for higher-level "AI services" provided by a third party than building new kinds of applications in-house with lower-level frameworks.

My view is that those new AI services will be created by startups we haven't heard about yet, led by developers outside of Corporate America who by and large are betting on TensorFlow and non-Oracle, non-Microsoft stacks.

Google's competitors will of course want to use their own in-house frameworks regardless.

\--

PS. By the way, I think DL4J is awesome. Great job!

<comment><USER4> (Disclosure: Vonnik's cofounder creator of dl4j)

That's more than likely the valley echo chamber. These kinds of startups are going to continue to appeal to people like themselves getting acquired by google eventually. The same scientists who create these services have zero clue about the sales process in enterprise and can't often figure out how to sell in to these corporations and actually create some kind of long term value. Our differentiation in this space is being able to do EXACTLY that while also adding features that are actually useful. By the time they have, they're usually bored and realize they just want to work on cool problems and therefore: sell.

Most research out there generated quickly is actually useless for products.

I'd rather implement every 5th iteration of a technique that has significantly better results than jump on the feature treadmill.

<comment><USER2> As much as I want you guys to succeed, I must disagree with this comment, because there are an awful LOT of people in the valley who know how to build scalable enterprise-sales organizations, and "AI service" startups with traction will have little trouble finding and recruiting those people.

I would not bet against the valley's "how to build a giant business" expertise.

<comment><USER4> We're _far_ from that. Much of what we actually sell are solutions focused on anomaly detection. We actually do most of our business in asia where the on prem market is much larger and people move faster.

What I'm trying to point out here is that the people who run these startups are typically Phds with little interest in building an actual business.

Many of these deep learning startups are built to be quick flips while having fun for a few years building something cool. That in and of itself is fine.

They build something differentiated and valuable, get paid a handsome chunk of money. No one really loses when that happens, it's just different when you want to go to market.

That being said, you have every right to bet against us. That's how many large companies start is with detractors.

90% of startups also fail. We have a different opinion on how it's done. Only time will tell whether we succeed or not.

That being said: Where's your deep learning startup? ;) At least we're trying something different.

<comment><USER2> There will be room for a good number of niche frameworks, some of which could be highly profitable for their creators/maintainers. I don't disagree with that :-)

My point was -- and still is -- that the competition to become the _dominant_ framework has already been won, by TensorFlow, because it has captured the hearts and minds of the most developers. Most new AI services are being built atop TensorFlow -- not DL4J, nor Torch, nor Theano, nor Caffe, nor CNTK, nor anything else.

Let me finish by sharing a video of Steve Ballmer, former CEO of Microsoft, in which he emphasizes the importance of attracting developers to a stadium packed with Microsoft employees: [https://www.youtube.com/watch?v=Vhh_GeBPOhs](https://www.youtube.com/watch?v=Vhh_GeBPOhs)

<comment><USER4> There's 2 things I'm not so sure about: python as the dominant ecosystem long term and 2: most people doing machine learning yet.

I'm still convinced most people just star tensorflow "cuz google". I'd like to see a statistical analysis of people actually using tensorflow for their job. I get the developers bit...but not much of it equates to revenue.

Developers don't pay. Period. That devs bit might work for lock in to cloud services (google compute engine). That play doesn't work for on prem though.

What's happening here is you're equating startups/cloud to "the whole world" while ignoring where most of the money is being made and how many people are actually using machine learning. I'd love to see this play out more before declaring a "winner". Still seems too early yet.

Anyways - as I said we'll see who wins and who doesn't. I won't say whether my guess is absolutely right or wrong. I just don't believe in silicon valley's ability to build "hard stuff". I think we're still very much in the hype phase yet. It might return some day though.

<comment><USER2> On #1, although TensorFlow has well-supported APIs only for Python and C++ as of now (see [https://www.tensorflow.org/versions/r0.9/api_docs/index.html](https://www.tensorflow.org/versions/r0.9/api_docs/index.html) ), support for other languages is on the way (search Google for specific examples); moreover, TensorFlow can be readily deployed as a service (see [https://tensorflow.github.io/serving/](https://tensorflow.github.io/serving/) ) in mixed-language environments.

On #2, I agree: most people will use higher-level AI services developed and provided by third parties.

How about we revisit this in, say, three years, and see who turns out to be right?

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> Number of stars on Github is not a great metric of the health of a project. TensorFlow, in particular, has received a lot of attention, so a lot of people have starred it, but this does not measure the number of non-Google contributors or what would happen to the project if Google abandoned it.

Note that I'm not saying TensorFlow is going to fail in the future; I'm saying that the measures used in this article are dubious at best.

Does nobody remember Elefant, Alex Smola's machine learning library that had a lot of hype then suddenly died after he left NICTA? The machine learning world is littered with tons of dead projects, and many of these died without a lot of warning. I'm concerned that this effect is only going to get worse now that machine learning libraries are often company-controlled instead of academic.

<comment><USER6> Hi there, I wrote the article. We also looked at data on things like number of forks and contributors on GitHub as well as massive rise in questions on StackOverflow (thanks to Delip Rao's great post here [http://deliprao.com/archives/168](http://deliprao.com/archives/168) and invaluable ecosystem analysis from Francois Chollet). These other things were cut for purposes of length and because we felt a mainstream reader (which is more Bloomberg's audience) would be able to understand the 'stars' figure most easily of all metrics.

Obviously I agree with you that this measure isn't definitive, but we felt it was relatively easy to understand. And the rest of the reporting we did for this story bore out the idea that TF has gathered an unusual level of both enthusiasm and commitment in a short amount of time.

Thanks for reading!

<comment><USER7> good points, though I would argue that tensorflow fundamentally is a way to define transformations. Think of it like assembly language. There are higher languages that expose higher level constructs (see keras)

</comment></comment></comment><comment><USER8> The article makes the argument that, by opening up TensorFlow, other companies are at risk of having their TensorFlow-fluent employees poached by Google.

Trouble is, if other companies are using the same tooling as Google, it's equally easy for the outside company to poach a Google employee.

Opening up the code to the world is more likely to be a net-good act, propelling everyone forward.

[https://github.com/tensorflow/tensorflow/blob/master/LICENSE](https://github.com/tensorflow/tensorflow/blob/master/LICENSE)

<comment><USER9> The hard parts of these frameworks isn't the framework itself. The hard part is understanding what's going on; the same properties common to all frameworks.

CNNs are hard to understand. Understanding why gradient descent improves the model is very hard to understand. And understanding the right architecture to solve a problem takes a significant chunk of your research career unless you're already an expert.

But languages and frameworks are simple. If you know Caffe, Torch will be easy to understand. If you know Torch, Tensorflow will be easy to understand. If you know Tensorflow, the others will be easy to understand. It's quite possible to get up to speed with a different framework in a few weeks.

<comment><USER10> In the corporate world even a few weeks of ramp-up time can create lock-in and network effects. Most programming languages can be learned in a few weeks by an experienced programmer, but there are still huge network effects. Part of it is that a lot of times you just don't have a few weeks to learn. But the other part of it is that the more popular it gets the library and tooling ecosystem also starts growing exponentially, so then you have to add the learning time of the tooling and library to the switching cost.

<comment><USER11> I think the network effects have more to do with clueless recruiters trying to tick off a list of keywords for a position, than the actual cost to a company of an engineer ramping up on a new framework for a few weeks.

</comment></comment></comment></comment><comment><USER12> It's interesting that none of the quotes from Torch and Theano folks indicate any shortcomings of Tensorflow, their sole counterargument is that using tensorflow might give Google more control.

<comment><USER6> Hiya, I wrote the article. What might not be captured here is that this is above all a community of people all working on AI so it's not like anyone is really emotional and/or aggressive about this issue. It's more that it's always better for an ecosystem to have multiple dominant players who are all relatively equal. Torch & Theano people were saying it's non-optimal if TF becomes the majority framework, which is a fair point. Everyone I spoke to for this article said TF was engineered well, albeit a bit of a black box in certain aspects.

</comment></comment><comment><USER13> Some people are noting that TensorFlow evens the playing field, allowing other companies to poach Google's employees. Whilst that is true to some light degree, there are amazingly large caveats - Google still have the major advantage when it comes to poaching. The other important note is that open sourcing TensorFlow is likely more important for attracting recent graduates in machine learning than it is for attracting employees of other companies.

Most machine learning engineers and researchers get excited by two things: underlying hardware and underlying tooling.

Google have enough GPUs to throw 50 K80s for a few weeks into the hands of a single researcher for a single paper[1]. That's impressive. It gets even more impressive considering Google are making custom made ASICs that are more efficient - both power and computation - than GPUs too. None of that hardware is open source and even if it was, I don't see anyone getting them into general production in the near future. Nervana[2] are the closest to custom hardware I know about yet still have many steps until production.

TensorFlow is also just the beginnings of the tooling Google has internally. The original TensorFlow whitepaper talks about their internal distributed training stack. A tiny recreation of this has reached the wild but it misses many of the interesting optimizations. (1) Automated efficient allocation of tensor operations to components (does this op go on GPU? CPU? Across the network to another GPU machine?). (2) Minor optimizations, such as truncating 32 bit floats to 16, then re-expanding - they noted it in the paper but I've not seen external verification. (3) Google DeepMind moved to TensorFlow but given they do a lot of reinforcement learning, they likely have a modified TF internally that's better tailored for RL. (4) etc etc etc

Given the majority of the contributors to TensorFlow are also from Google, that gives them the strongest say in the future of the framework. This is especially important given that Google would likely be trying to ensure their internal modifications and variations of TensorFlow remain in line with the open version. For that reason, I don't expect to see TensorFlow handed off to a third party caretaker any time soon.

Releasing TensorFlow is a net win for Google, both in "making the world a better place" and "making Google a better place (for attracting talent)".

[1]: [https://arxiv.org/abs/1607.05691](https://arxiv.org/abs/1607.05691)

[2]: [https://www.nervanasys.com/](https://www.nervanasys.com/)

</comment><comment><USER14> I'd really like to see what Apple is doing, they usually come late to the table but they get a lot of things right, even though they may not be the most technologically advanced. Granted this may not be applicable since this is more about AI infrastructure.

<comment><USER15> This is actually where I'm worried Apple is falling behind, _because_ they are a bit private & come late to to the table. Microsoft, Google, and others very openly share and learn from the AI community, but Apple has been known to be only a "lurker" at best (for lack of a better term.)

<comment><USER16> They have almost constantly innovated by acquisition. That explains their lurker status, I think.

<comment><USER14> They're also very secretive. They only say they do something new publicly when they have a product to show it off.

</comment></comment></comment></comment><comment><USER17> "If the company changes the software too much, then other companies that have adopted it will need to make a copy of the software and rewrite it to suit their own needs -- an expensive and time-consuming process known as forking."

Seems like it's the opposite? Forking a project is technically easy. Writing something equivalent from scratch is much harder.

(Of course there are marketing considerations - it's "just a fork" so it might not get much attention.)

</comment><comment><USER18> While Google may be the leader in Machine Learning tools, they are way behind when it comes to Machine Learning services.

They've only just now released a Natural Language Understanding service in beta, and it is more limited compared to other NLU services from Microsoft/others.

While tooling is important, the market for low level tools is much smaller than for the services built using those tools. The vast majority of businesses who could benefit from Machine learning don't have the expertise to run RNNs using Tensor Flow, but do have engineers who can integrate API's that leverage trained classifiers.

<comment><USER19> The market for services is several orders of magnitude less than the market for products that make use of ML. It's probably ok if they don't focus to heavily on the services side

Google makes heavy use of these tools internally to build a wide range of products (and enhance existing ones)

<comment><USER18> How do you see those two as being different?

In my mind, products that make use of ML are using ML services as the back end. An example would be the recent wave of bot companies: many are not rolling their own NLU system but rather leveraging services like wit.ai or Microsoft's LUIS.</comment></comment></comment>


Real-Time Conversations Hasten Social CRM   - <AUTHOR> http://www.techcrunch.com/2009/07/11/real-time-conversations-hasten-social-crm/ <comment><USER2> For those baffled by "CRM" or "SCRM": "Social Customer Relationship Management".

This was a TechCrunch panel presentation, and so may have been overlooked here, but I think it presents another niche market that could be ready for several types of startups.</comment>


Why You Should Write in 2012 - <AUTHOR> http://blog.davidtate.org/2012/01/write-in-2012/

<comment><USER2> I like this idea a lot, I miss the writing I did when I was younger, before work interfered. Bravo!</comment>


Anatomy of a software engineer reject - <AUTHOR> http://ck-hack.blogspot.com/2011/10/anatomy-of-software-engineer-reject.html

<comment><USER2> If you can sustain yourself part time and have time to tinker, skip the frustration of a career in software and build a product.

</comment><comment><USER3> Just have to say I love this quote:

 _But intellectual stimulation fades with time because as one of my teachers once told me "if it's still exciting in 10 years time it's because you don't know what you're doing"._</comment>


Ask HN: What about those great posts that appear/disappear while I'm sleeping? - <AUTHOR>

Obviously the best posts will appear and stay on the front page between the time I sleep and wake up. However, there must be a plethora of amazing content I never see purely based on the time I sleep.
I can imagine people in other time zones and/or with different sleep patterns, being exposed to and voting on content that I may never.
Any solutions or comments? <comment><USER2> <http://news.ycombinator.com/best>, <http://news.ycombinator.com/active>, or (as already suggested by treo) <http://www.daemonology.net/hn-daily/> may be useful.

<comment><AUTHOR> Nice! Thx

</comment></comment><comment><USER3> <http://www.daemonology.net/hn-daily/> This is probably what you want.

<comment><AUTHOR> Just what I was looking for. Thx

</comment></comment><comment><USER4> Sounds like a feature request. Some type of daily digest scheme ranked by each posts total popularity would be nice.

However you currently have access to the RSS feeds, which I believe gives you a permanent link. Even if the article has been archived.</comment>


Neuroscientists find long-sought bat sat-nav neurons - <AUTHOR> http://www.nature.com/news/sat-nav-neurons-tell-bats-where-to-go-1.21275 <comment><USER2> > Having the goal in the centre of the room, so that approach paths covered > 360 degrees, turned out to be the essential element in pinpointing the > vector cells. It meant that the team could verify that the same neurons were > firing whatever the direction of approach.

This reminds me of hacking on old Mac OS games with a program called Pandora's Box.

[http://www.macgamefiles.com/item/11768/Pandoras- Box/](http://www.macgamefiles.com/item/11768/Pandoras-Box/)

The basic idea is to dump the game's memory, then do something like lose a life, then scan the memory dump for values that changed from the old value to the new value. It almost always worked!

<comment><USER3> This was a feature of the GameShark for Nintendo 64 as well for finding new codes beyond what they published.

For example, if you had 100 rounds of ammo left, you would press a button on the cartridge, and have it search the ram for the value 100. Drop back into the game, fire off a shot, and hit the button again to search for which of those values changed to 99. Repeat until you found target area in memory and make a code for it.

The device also had a parallel port interface to talk to it via a pc, but I remember less about using that when I was a kid. Pretty basic technique, but as a kid interested in technology, it's stuck with me to this day!

</comment></comment><comment><USER4> "That's a surprise, considering how well this area has been studied by researchers"

Is it? We don't know much about the individual types of neurons at all - it's a sisyphean task, there are just too many.

We don't even know how a brain really functions, because it looks like it's not just neurons and there has to be much more to it. Considering the complexity, I'm almost certain there are many more mechanisms involved.

Remember: the brain doesn't come into existence with a fixed structure, it is built up from an over-connected state, synapses are pruned during development and after that it continues to change its structure over time depending on the input from the environment. It's not that simple and I don't think that we'll ever be able to understand it completely.

</comment><comment><AUTHOR> Try saying that title 3 times fast.

<comment><USER5> >> summons Egyptian fruit bat >>

</comment></comment><comment><USER6> Just 58 neurons? That sounds pretty ... Small.</comment>


China speeds ahead of U.S. as quantum race escalates, worrying scientists - <AUTHOR> http://www.mcclatchydc.com/news/nation-world/national/national-security/article179971861.html <comment><USER2> > They also can process algorithms that break all widely used encryption.

there's that science reporting we know and love

</comment><comment><USER3> "It doesn't necessarily mean that their scientists are better, it's just that when they say, 'We need a billion dollars to do this,' bam, the money comes." More than that, when their scientists approach the government they aren't treated with scorn, told they are 'fake news', and ignored.

</comment><comment><USER4> China's advances in AI are impressive as well. A ranking based on publications at top conferences from 2012 to present (2017) has both Beijing and Tsinghua University in the world's top 5.

[http://csrankings.org/#/index?ai&vision&mlmining&nlp](http://csrankings.org/#/index?ai&vision&mlmining&nlp)

(The starting year in the link needs to be changed to 2012.)

Many of the top researchers in US academia are mainland Chinese. I wonder if they will be enticed back home when the Chinese government has managed to reduce the pollution in their major cities down to healthy levels. It appears that the salary for top people there, especially those with experience at major Western institutions, is comparable to those in the US in nominal terms, and the research funding is easier to get.

<comment><USER5> My bet is that there is someone, or some group, at a very, very high level in the Chinese government, who understand that these (quantum science, AI) are superhot science and technology areas, and agree that investments _right now_ would pay off extremely well in the future.

Central planning has downsides - but apparently some advantages too.

<comment><USER4> Many of their top leaders have engineering background. Xi Jinping himself studied chemical engineering. Those who studied liberal arts often have very strong academic records or a PhD. Li Keqiang, the premier, is an economics PhD.

</comment></comment></comment><comment><USER6> I have a minor github repo for doing embedded image processing. At least half the people who reach out to me about of are from China, which surprised me.

</comment><comment><USER7> Sounds like a remake of the 1980s blockbuster "Give us money, the Japanese 5th gen computers are coming!"

</comment><comment><USER8> The US isn't some special nation that is guaranteed to succeed forever. The Romans believed it, the Classical Greeks also did, the Victorian British, etc. Every nation falls. The US is no different.

</comment><comment><USER9> The entire article does not mention qubit once.</comment>


Social icons in CSS3  - <AUTHOR> http://www.nikesh.me/blog/2010/04/social-icons-in-css3/

<comment><USER2> I don't understand this trend of making images in CSS3. Isn't that what SVG is for?

<comment><USER3> I'm guessing it's done as an experiment and proof-of-concept instead of being offered as a best practice.

<comment><AUTHOR> yes it is done as an experiment but don't you think by using CSS3 ... you don't have to regenerate images every time you change the text, pages will load much faster because you don't have to download separate images . i can say by css3 in some portion we can replace the images.

<comment><USER3> The browser has to render the CSS, which takes a non-zero amount of time. It's possible that the browser rendering time of some (very) complex CSS could surpass the time to fetch an image over the network and render that.

</comment></comment></comment></comment><comment><USER4> Putting these small images together into one file is a good way to speed up the load times of the page.

However, I think the the CSS file would have been smaller with the icons as PNGs in a data URI or by using a single CSS-Sprite. You wouldn't be able to scale the icons, though.

<comment><AUTHOR> CSS-Sprite is one way to speed up the load time but even though this css file is still much smaller than the size of images used in CSS-Sprite. And on the other hand the programmer could change icon property(like gradient , radius etc) very easily.

</comment></comment><comment><USER5> Maybe a nice photoshop plugin would be a converter for images (small images, icon like) to css (like adobe with flash to ipod)

</comment><comment><USER6> Nice ... may be later on some work of photoshop guys will come on to Web Developers</comment>


We haven't forgotten how to code – JS just needs to become a better language - <AUTHOR> http://blog.christoffer.me/no-we-havent-forgotten-how-to-code-javascript-just-needs-to-become-a-better-language/ <comment><USER2> I think you're missing two major points (which the original 'left pad' post partially noted):

1\. There should be one or several libraries (like lodash), where the maintainer provides a high level of quality across many core utilities that are needed, rather than all these functions singly collected across many different users which can lead to variable quality - and a maintenance nightmare over time (plus the potential security risks)

2\. You should minimize dependencies when it doesn't provide great value (the bar's especially high if many others could/will depend on your library); there are functions like 'is-positive-integer' that should have been written without external dependencies (but had 3 dependencies); realize that dependencies inject cost into your system (and benefits as well), and weigh one vs the other for your use case, rather than blindly defaulting to a mindset that micro libraries are always the best approach

<comment><USER3> Regarding #1, I strongly think that the JS community should come together and build out a library that fills the same role as Boost does for the C++ community. Sort of a collection of things that are missing from the standard library.

I suppose lodash and others aim for a similar purpose, but clearly left-pad- gate has shown us that they're not quite complete enough.

<comment><USER4> This ignores the fact that js libraries need to be downloaded on every run. Even if there were a great general-purpose string module that included the functionality, a micro-package like left-pad would be less to download if you didn't need the other stuff so I imagine some developers would still use it.

It's almost ironic really, that js has the worst standard library situation of any popular language yet it would benefit the most from having a good one since it would save everyone bandwidth and page load time.

Maybe someone can write an amazing replacement stdlib and we can all agree to include it from the same CDN so it'll be cached on every browser in the world...

EDIT: I see from other comments that lodash functions can be required individually which I hadn't thought about. But the point still stands, every function that you use in a big project that could have been in the standard library is more to download.

<comment><USER2> You seem to be optimizing size of download as the critical issue, when I think there are a few other optimization points that this controversy highlighted (e.g., quality of external codebase, security risk, maintainer risk, dependency management challenges).

A main issue with the current system is that you're pulling in micro dependencies from a variety of different sources, instead of a few potentially highly reputable sources (fairly or not, I'd feel more comfortable with dependencies from the lodash maintainer, than from 50 different people). One solution obviously is a better standard library, but often to get there, the process is for devs to create common libraries - which over time are (partially) absorbed in language standards.

</comment></comment></comment></comment><comment><USER5> The problem is A, but everyone is attacking B.

The issue: developer pulled their package off NPM, which many packages depended on.

The solution: keep all packages in NPM. If the software is open sourced, we can legally continue to redistribute the software even though author may not want us to.

Ecosystems with this issue: Python, Ruby, Go (google it)

Ecosystems without this issue: Maven, Haskell

I respect someone wanting to pull embarrassing or private data, or even just out of spite. In that case the package can be made undiscoverable, but still accessible from direct download.

Non relevant issues: laziness; micro vs standard vs kitchen sink libraries; package security; package quality; package maintainer coordination; ... but the color of the bike shed is just so interesting.

<comment><USER6> "If the software is open sourced, we can legally continue to redistribute the software even though author may not want us to."

Right, you can legally redistribute the software, but can you _ethically_ do so? Some people have complained about the bad precedent set for allowing left- pad to be reuploaded again after it was deleted, and the reason they complained is because the developer has lost control over the fate of his own package.

These people can't complain too loudly, as the author in question did indicate that he was willing to give ownership of his npm packages over to someone else. But you could easily see a situation where a developer would want his stuff deleted and not be accessed, period. Why should this request be refused?

The idea that the developer has lost all moral rights whatsoever to his/her work just because they attached a LICENSE text document feels wrong to me. Just because a license says you can 'do whatever you want' doesn't mean you _should_ do whatever you want.

<comment><USER5> See my second to last paragraph for my response.

<comment><USER6> And I think that's a pretty good compromise that I'll accept. I could also suggest a manual deletion process as well in case you accidentally released security credentials or something very private that really shouldn't be open source. (Manual in the sense that you have to send an email to tech support and wait for them to respond...)

<comment><USER7> iirc packagist.org (for php libs) allows deletions for packages that have been downloaded < 100 times, which covers the situations where something was published accidentally and needed to be reverted.

</comment></comment></comment></comment></comment><comment><USER8> Congratulations, you've just met someone who legitimately likes JavaScript as a language, as well as its libraries.

That's just never, ever a credible assertion, "I've never met anyone who likes X"....then you must not talk to many people. There's a lot of people in the world and a lot of JS developers and PLENTY of them like it.

<comment><USER9> Seconded. I really enjoy coding in JS, and don't mind the various hacks that have to happen for browser incompatability.

I do, however, object to the massive amounts of dependency in the Nodejs ecosystem. It's as if no-one learned the lessons of DLL Hell. We _already know_ that dependencies are bad, people!

<comment><USER10> If dependencies are bad, then it seems to follow that every project should reinvent all the wheels.

<comment><USER11> No. Reinventing wheels is also bad. Which one is worse depends on context.

</comment></comment></comment></comment><comment><USER12> So what exactly is the connection with JavaScript's deficiencies as a language and the existence and prevalence of micro-libraries like left-pad? There is the whole issue of cross-browser compatibility, but how does something like left-pad even relate to that? I doubt there are many languages with core library support or language level support for that type of string padding functionality. I feel like the problem in this case has more to do with the way package publishing currently works than any features/warts in the language.

<comment><USER13> It's because there are so many of these warts and gaps that a Javascript dev has two options: write their own left-pad (and array.includes, and range iterator like I did yesterday, and so on...) every 5 minutes, or use the one you can reasonably assume already works without bugs.

<comment><USER14> I don't think that explains it at all.

If Javascript string manipulation sucks, there should be a single string manipulation library that fills in the gaps, not 50 different libraries to work around 50 different gaps. Ditto every other class of deficiency.

<comment><USER15> There's really only lodash now that individual functions can be imported without bringing the rest in.

</comment></comment></comment></comment><comment><USER16> This is making a lot of excuses. Bad design and poor coordination between package owners and consumers is the problem (in this case).

I am a JavaScript developer and I see this as an opportunity for the community to learn and grow.

</comment><comment><USER17> How much of this is the fault of Node culture? Javascript on clients may be a necessary evil, but relatively good languages actually exist for servers. Writing a server these days in Java makes little sense; writing one in Javascript is sheer lunacy.

<comment><USER18> How is it lunatic to use the same language for client and server?

<comment><USER19> The problem isn't using the same language for client and server it's the monopoly on code executed on the client.

</comment></comment></comment><comment><USER20> This is ridiculous. You don't need a module for a function that returns false ([https://github.com/mde/false](https://github.com/mde/false)), and you sure as hell don't need a dependency for a function that prepends N spaces to a string. It takes more keystrokes to add the dependency than it does to write the damn function. Not to mention it spares the NPM server additional requests, etc, etc.

If you can't trust yourself to write such a simple function, how confident are you about writing something a little more complicated? Or very complicated? Doesn't it bother you that you feel more confident in 10 simple lines of code written by a complete stranger than you are in yourself?

<comment><USER21> Hell! just copy-paste it raher than adding a dependency.

<comment><USER22> I spent many years programming Perl, which had no trim / strip funtcion to get rid of whitespace. The Perl cookbook has a recipe for one using a regxeg, and I have cut and pasted that into many other places. It always felt wrong cutting and pasting the same thing over and over, but it was never large enough for me to consider putting it in a package either.

<comment><USER23> > but it was never large enough for me to consider putting it in a package > either.

That's OK, someone did it for you:

[https://metacpan.org/pod/Text::Trim](https://metacpan.org/pod/Text::Trim)

CPAN to the rescue!

</comment></comment></comment></comment><comment><USER24> Bad idea: left-pad. Good idea: polyfill library for ECMAScript 6. Specifically: [https://developer.mozilla.org/en- US/docs/Web/JavaScript/Refe...](https://developer.mozilla.org/en- US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat)

</comment><comment><USER25> > since our single written source code is often executed on different > environments and browsers

That's still a _lot_ easier than writing portable C has to support variations in environment, compiler (w/ varying interpretations of the C standard over several decades), linker, make/build tools, CPU architecture and byte-sex (big-endian vs little-endian vs middle-endian), pointer sizes and alignment rules, integer sizes and alignment rules, incomplete and occasionally broken "standard" headers, and many more inconsistencies.

And that's just for a simple system daemon or command-line tool. If you want a GUI, that's another giant mess for potability.

> it's silly that we web developers should spend time to recreating basic > wheels

Of course. There are many solutions to that problem that don't require builds that depend on network resources controlled by 3rd parties.

> JavaScript language itself is fundamentally flawed and the core APIs is a > mess

While that's debatable (worse platforms exist), it also misses the entire point. Nobody is saying that sharing the code for left-pad is a bad idea. Wrap it up properly into an extended-standard-library and distribute it with node/etc.

What is conspicuously missing is any discussion at all about the costs of depending on 3rd party libraries. Adding a network, 3rd-party dependency to your build or deploy process is a huge risk that _at the very least_ needs to be justified.

Note that I'm not saying that using 3rd party libraries is _bad_ ; I'm saying it has a _cost_ paid in additional _risk_. You can decide if that cost is a fair exchange for the benefits you gain from the library. Just remember that humans are _terrible_ at evaluating risk, so it might be a good idea to _limit_ how much risk you take on.

</comment><comment><USER26> Look, I don't disagree that Javascript itself creates some of the problems in its ecosystem, but complaining about 8 whole extra keystrokes to support IE9 doesn't really help.

<comment><USER13> To fully get the point, extrapolate that example out over _every single task you might want to accomplish_. As someone who used to do a lot of Javascript for side projects but works daily in Python, returning to Javascript for a new side project this week has been very annoying and frustrating.

<comment><USER25> > extrapolate

So what - every language has places with extra verbosity, unfortunate function names, or other minor annoyances. The correct solution to this type of problem is either 1) just type it the compatible way and move on to a real problem, or 2) use an editor macro such as TextMate's snippet[1] feature or the emacs variant yasnippet[2]. Code templates have been a solved problem for a long time.

[1] [http://manual.macromates.com/en/snippets](http://manual.macromates.com/en/snippets)

[2] [https://www.emacswiki.org/emacs/Yasnippet](https://www.emacswiki.org/emacs/Yasnippet)

</comment></comment></comment><comment><USER27> Sorry no - you're missing the point of the grievances that were aired.

The problem is Javascript culture itself. It's culture has directly influenced the way NPM packages are made.

</comment><comment><USER28> If "JavaScript just needs to become a better language" is it wise at this point to really be trying to use it for every possible thing? JavaScript has its place and building a web app without it today is very rare but I don't understand why so many are trying to depend on it for so many things that it's not intended for or at least ready for.

"I see us JavaScript developers as hurdle-runners where every 30 seconds we need to jump over a new obstacle."

That's not a good thing imo.

<comment><USER29> When you want to build web apps, you have to stich together HTML and CSS. That's intrinsically text processing.

To not have a check if one string includes another and/or to not have functions for padding is strange in 2016. Fine, let's not have it inside the language. But the dev community should at least agree to use one good package like lodash instead of playing "mine is better than yours" like in the damned highschool. This is a job where people make money and business decisions are made. The tech bros need to learn some professionalism.

ES6 has a bunch of "modern" features 1/3 of which I won't ever use but hell, the committee be damned if they allow string padding functions! :D Or God forbid they make a good use of "use strict" to make the language more predictable and eliminate most of its quirks in it.

</comment></comment><comment><USER30> The more I work with JS the more sad I am Dart isn't taken seriously.

</comment><comment><USER31> It's all because of the don't-override-native objects religion. If only mootools had won instead if jQuery. It would have shown a goal API that browsers would have slowly implemented. Those libs need update at each major browser version, anyway.

</comment><comment><USER32> I don't doubt that JS development is helped via such packages, but pulling in an external dependency to solely to pad a string seems like a bad idea. Introducing cascading chains of dependencies that you have no control of (left-pad was republished by someone who was not the original publisher, and AFAICT the original could have been replaced by the original author at any time with a malicious version) strikes me as a great way to create brittle code, both from a security and a stability perspective.

<comment><USER5> NPM restricts the developer from being able to push to the same version of a package twice.

<comment><USER33> Unless you unpublish then republish over it.

<comment><USER34> This was possible before but no longer true. A version X will either return the original version X or a does not exist (if you unpublish)

</comment></comment></comment></comment><comment><USER35> I ask this with genuine curiosity. I'm an outsider when it comes to js development really. A while ago a lot of discussion was made regarding libraries like jquery and frameworks made to solve common problems. Much of the argument went along as "why are you using such a big library when you are using just a tiny part of it?? Don't be lazy!"

Now in the wake of leftpad issues, the most common argument I've personally observed, has been "why are you using a library that solves just this one problem? Use a library that provides the full utility around this problem area (strings)".

It feels strangely contradictory but I'm most likely missing some context here. Just wondering what it is :)

<comment><USER36> In general you're just seeing different people make different arguments, and the proposals which solve the most recent problem are the ones being suggested loudest right now.

</comment></comment><comment><USER37> Perhaps. In my view, inferior programmers will always blame the language. Every language has its shortcomings, and server side languages have, in my view, far more shortcomings than client-side javascript. I program in angular, so the experience is pretty good. As long as I can debug and have a comprehensive framework I'm fine.

ES6 should get us there, and I for one really like coding in javascript.

</comment><comment><USER38> I really like JavaScript as a language - Better than any other language. I agree though, we needs more utility functions as part of the core lib.

<comment><USER39> I like JavaScript a lot too, but "better than any other language" ?

</comment></comment><comment><USER18> JS is just a scapegoat here.

Giving away a perfect valid package to a company without a legal order was lame. Unpublishing many packages without taking into consideration all dependents was lame. I can't help but think the people involved wouldn't repeat the very same decisions.

Despite any amount of blame tossed around, this is a micro hickup in the thriving ecosystem around npm / Node / Javascript. This statement is backed by data [http://npm- stat.com/charts.html?package=clone&author=&from=2...](http://npm- stat.com/charts.html?package=clone&author=&from=2014-03-28&to=2016-02-27)

Thanks to node, npm and amazing OSS devs, we can count on modular packages to get the job done faster on the client and server, and that's really valuable.

</comment><comment><USER40> Next time, please use a smaller font and leave out all the silly images. It took a long time to get to the bottom of the article, only to find out there was no real content.

</comment><comment><USER41> Existence of micro-packages and the recent development saying that twitter as a host for micro-packages seems weird to me.

<comment><USER42> Twitter as a host was a joke. The zealousness for these micro packages, though, is all too real.

</comment></comment><comment><USER43> man i didn't even know about "includes" \-- i always use indexOf

</comment><comment><USER44> Are you really truly placing jquery in the same category as left-pad?</comment>


It Looks Like Sendible Just Got Hacked And Compromised Some Huge Facebook Pages - <AUTHOR> http://techcrunch.com/2010/11/09/sendible-facebook-hack/

<comment><AUTHOR> The company (Sendible) is claiming they weren't hacked - "Just to clarify, Sendible was not hacked. One of our users has discovered a major flaw in Facebook's security."

<http://twitter.com/Sendible/status/2111569047588865></comment>


Is Amazon Making a Loss on Its 99-Cent Downloads to Counteract Apple's Rentals? - <AUTHOR> http://gizmodo.com/5628226/is-amazon-making-a-loss-on-its-99+cent-downloads-to-counteract-apples-rentals <comment><USER2> I just did the math, and at 99 cents I would save money over having cable.

Unfortunately, only the older shows are 99c, never the current show. And only for some channels. New HD episodes are $3 each.

Most shows I will never watch again, and I generally know which ones they are by halfway through the first season. I generally buy the DVD or Bluray of these.

If Amazon was offering rentals for half the price of purchases, I'd probably go for it. It'd cost a little more than cable, but I wouldn't have to run a DVR or worry about whether I marked my favorite shows or deal with the times when the DVR fails to record for various reasons.

But paying 3x as much isn't in the cards for shows I'll never watch again. And for shows I will, how do I know they won't kill this service in a year... Right when I want to re-watch my purchases.</comment>