Ask HN: Whats stopping Crypto widespread adoption? - <AUTHOR> What are the concerns related to the adoption? security? stability? infancy? <comment><USER2> Surely it is applications. When I think about my tech friends and family I can think of few applications of cryptocurrencies that appeal to their needs. When I think of my non-tech friends and family the existing applications are far far inferior to centralized applications that already exist.

Why would my grandmother use bitcoin or any of the other applications built on blockchains? Stability doesn't matter to her. What matters is that there is something that it can do that she wants and current solutions cannot do well. All bitcoin does for her is instantly destroy her money when she inevitably loses her private key.

</comment><comment><USER3> Because cryptocurrency sounds like a scam?

Seriously, from the outside, a bunch of people with no standing whatsoever created a bunch of numbers on their graphics cards and call it currency.

Now, compared to fiat currency, which in most cases is backed by a government with a long history, cryptocurrency sounds like a scam.

There is a vast difference between a government saying something has value vs. a bunch of random people and an obscure Japanese guy (who may or may not even exist) saying something has value.

Fiat currency has some measure of stability. If a gallon of milk costs around $4 today, it will probably cost around the same tomorrow. Can you say the same with cryptocurrencies? And which one?

</comment><comment><USER4> Just to clarify, what do you mean by "Crypto"? Is it Cryptocurrencies?

</comment><comment><USER5> Why would the average person trust a bunch of cyber-criminals versus a bank?

How do I know the crap I download isn't loaded with keyboard loggers, trojans, etc.

And before you say well, you just compile .... you lost the average person at....

<comment><USER5> BTW, I think crypto-tech will over take p2p movies as it's first killer app.

</comment></comment><comment><USER6> the best use case in the united states is as an alternative to gold, as in store of value. that is crypto's killer app. the payment system cannot compete with centralized ones, unless you're looking to buy black market goods.

financial products like ATM's, credit cards were very slow to achieve widespread adoption. like a decade each.

its possible consumers will start buying a bit of crypto instead of lottery tickets. thats the only way i see half the population using bitcoin/ether/etc.

</comment><comment><USER7> It is widely adopted. HTTPS, whatsapp, password hashing, etc.

There's a lot more crypto that could also be widely adopted, e.g. pgp, encrypted dropbox-like-things, encrypted filesystems, etc. Generally I think it's a combination of poor user interface, crypto sometimes results in undesirable tradeoffs (e.g. worse data deduplication for dropbox), and not enough perceived benefit.

<comment><USER8> I think s·he's talking about cryptocurrencies such as bitcoin, ethereum, etc...

</comment></comment><comment><USER9> What's stopping cryptocurrency's widespread adoption is what they call first- world problems.

1) Government that doesn't confiscate your wealth (more or less) 2) Dollar bills that don't go to zero 3) Banks that don't steal your money

Take away these and you'll see capital flight all over the place and some of it will end up in Bitcoin

</comment><comment><USER10> Usability. It's hard to use and even harder to use well.

</comment><comment><AUTHOR> Sorry for the ambiguity, I meant Crypto currencies

</comment><comment><USER11> I think the present culture of indulging in nearly unmitigated crypto- Utopianism is the more interesting concern. It's becoming difficult to argue against cryptocurrency in the tech industry without some form of rebuke enumerating the various potential applications (none of which are in dispute, generally) and/or incoherently equating cryptocurreny to the internet or other such developments (in this story, the future will render skeptics little more than 21st Century Luddites). For an industry so predicated on logic, it's kind of alarming to hear such blatantly shallow reasoning. The militant proselytization of cryptocurrencies often verges on absurd. We should be actively challenging and questioning our beliefs about something that has attracted so much attention and money.

All that said: cryptocurrencies might succeed. No one can outrightly deny the possibility. We should stick to arguing as to the likelihood or the extent of 'capture' it might achieve.

The forest for the trees that the more devoted crypto-Utopianists are missing is that cryptocurrencies, and perhaps the blockchain concept more generally, are at present an inferior or nearly inferior mechanism on almost all of the dimensions we should care about: speed, convenience, stability, cost. Put in short, a commercially-motivated centralized actor, backed and regulated by one or more government authorities, will always be able to perform as well or better on most of these dimensions than cryptocurrencies, no matter how many improvements are made to the system. We usually then end up asking if that system is problematic or should be challenged. In the first world, there aren't presently enough people of a subversive mindset to prefer cryptocurrencies to a centrally-regulated system solely on the basis of anonymity, complete transaction transparency, and decentralization (the principal advantages of cryptocurrencies). That could change, but it seems fairly unlikely. Importantly, I'm not taking a political stance here. I'm instead trying to account for human behavior.

Cryptocurriencies are nevertheless valid stores of value. People have relied upon all sorts of things throughout history to store value, because achieving the designation is as simple as getting some people to trust in a particular system. But the thing about stores of value is that they inevitably offer variable degrees of reliability and trustworthiness over sufficiently long time horizons. It would be foolish to argue, for instance, that the US dollar will remain the predominant global reserve currency in perpetuity. What we can argue with a higher degree of certainty is that the US dollar is unlikely to experience a catastrophic, abrupt decline in its trustworthiness. I would posit that the same cannot be said for cryptocurrencies and the primary reason for this is that some substantial proportion of their value is likely baked on purely speculative behavior (the volatility suggests as much). A secondary reason is, ironically, that there is no central authority to intervene in the event of a panic-induced selloff. And the real problem is that there will always be stores of value that are relatively more trustworthy, according to the public at large. The average person can see and feel gold. They understand that it's a store of value and history reaffirms their conviction. They don't have to comprehend very complicated technical and economic dynamics to believe in gold. Now you might argue that cryptocurrencies can remain stores of value without realizing broad adoption and I wouldn't contest that. But the risk exposure they present, relative to other available stores of value, seems at the very least problematic.</comment>


Will Your Job Be Done by a Machine? - <AUTHOR> http://www.npr.org/sections/money/2015/05/21/408234543/will-your-job-be-done-by-a-machine <comment><USER2> Mathematicians have a 4.7% chance of being automated. That's good to know and kinda disappointing. We need more abstract thinkers and mathematicians. I am guessing an ultimate AI machine will be invented by a high level thinker rather than an experimentalist.

<comment><USER3> Really, they are largely automated already. Used to be you needed one for all sorts of things that Matlab, Mathematica, Wolfram Alpha etc do now. Just like the rank and file of Lawyering got replaced with automated searches when computers/databases got cheaper.</comment></comment>


Show HN: Take Control of Mac OS X Notifications with Hush - <AUTHOR> http://coffitivity.com/hush <comment><USER2> I'm cringing right now, because it seems like the authors weren't aware that this feature is already part of OS X.

[http://cl.ly/image/1u0S0H330v1D](http://cl.ly/image/1u0S0H330v1D)

<comment><AUTHOR> We are absolutely aware, we don't like the "Do Not Disturb" function. It automatically comes back on in the morning and you can't set a timer. This is in response to our dislike of the DND switch.

<comment><USER3> I don't really see the added benefit of the timer.

<comment><USER4> You (don't have remember/will not forget/will not click the button twice) to turn notifications back on.

</comment></comment></comment></comment><comment><USER5> Does this have the ability to filter by application? In particular, can it turn off the incredibly irritating "please update software now" that is perpetually posted when you have outstanding updates that you don't want to ignore but also don't want to install right now (perhaps they require a restart)

<comment><USER6> Yes, I'd love this. All of my other notifications are ones I've opted into receiving and am fine with. The Software Update one is impossible to get rid of.

<comment><USER7> You can just tell it to remind you at a later time. Only on Mavericks I think.

</comment></comment></comment><comment><AUTHOR> User 5vForest has pointed something out I meant to make the first comment: There IS a "Do Not Disturb" function on Mac, but we didn't like the level of control it gave us. You can't set a timer, you can't turn it off for longer than a day, and it's hidden in OS X Mavericks, you have to pull down the notification center to see it.

This is in response to that - we want more control. Maybe some of you feel the same way!

</comment><comment><USER8> This is why I still run Leopard. No unwanted social networking crap: all I need for notifications are icon badges. Really, who would need any more than that? Once the universal binary restriction gets too great for me to do my work, I'm just going to upgrade to Snow Leopard. And hopefully stay there for another couple of years; it's Apple's Windows XP right now.

There's this thing I loved about older OS X releases, and really older operating system releases in general: everything felt more _raw_ , more accessible. 10.5.8 is just so pleasant to use. There's nothing getting the way of my work. It seems that newer releases always try to make diving down into your files, folders, and work much harder and more difficult. GNOME 3; Mavericks; and Windows 8... they all just have too many abstractions between you and the software.

<comment><USER9> This is very evident in Apple's marketing slogans

Snow Leopard: "The world's most advanced operating system. Finely tuned."

Lion: "The power of Mac OS X. The magic of iPad."

[http://en.wikipedia.org/wiki/List_of_Apple_Inc._slogans#Mac_...](http://en.wikipedia.org/wiki/List_of_Apple_Inc._slogans#Mac_OS_X)

<comment><USER8> I really like Mavericks': "Power to the desktop."

It's like a return to form after Jobs started lusting after the consumer market.

</comment></comment></comment><comment><USER10> Does this silence the relentless "Software Update" notifications?

<comment><AUTHOR> Yes! Yes it does! I'm getting feedback that people want those specifically to be able to be targeted, and I've immediately started working on it.

</comment></comment><comment><USER11> On first run it complained that I didn't have permission to <do something>, then quit with "could not initialize data store". A reboot fixed it (and hence the reason I don't have the exact error message).

I'll give it a whirl. It seems like Mavericks is all too frequently popping something in my face and my magpie tendency is to go see what it is. (Yes, I know how to turn it off in stock Mavericks; I don't like how that works, either.)

</comment><comment><USER12> Isn't this what "Do Not Disturb" does?

</comment><comment><USER13> Very nice app. I would recommend it to anyone who gets tons of notifications.

I want to suggest a design like Degrees app[1] if you want to do a redesign.

[1] [https://itunes.apple.com/us/app/degrees/id430173763?mt=12](https://itunes.apple.com/us/app/degrees/id430173763?mt=12)

<comment><AUTHOR> Psh, like our design isn't flawl.... no you've got a really good point. Thanks man!

</comment></comment><comment><USER14> These notifications are straight up pissing me off. It's like Windows ME all over again! They dont even have the option to never show up again, you can only select to be notified later. Some applications are in the notification center, but some apps have separate preferences that you need to find to turn them off. It makes me want to vomit any time I see a notification and cringe because I thought I had turned them off and it just brings me back to 2001 and Windows ME. Quit with the goddamn popups, especially without 'x''s to close them and options to NEVER see them again.

With that, I will happily install your application to ensure that these popups don't get by the preferences I may have already missed.

<comment><USER15> If you want to disable it entirely: [http://osxdaily.com/2012/08/06/disable- notification-center-r...](http://osxdaily.com/2012/08/06/disable-notification- center-remove-menu-bar-icon-os-x/)

</comment></comment><comment><USER16> What would be really great is if we had control to put notifications back in the center of the screen. On a 27" screen, notifications for calendar events often go missed.

</comment><comment><USER17> What does 'Continue without timer' mean?

Is this turning the timer (and therefore Hush) off or is this hushing notifications indefinitely?

<comment><AUTHOR> Yes - it just turns it off forever until you turn it back on. The timer is optional, just an added benefit!

<comment><USER17> I didn't make myself clear before: I think you should reconsider the button text.

</comment></comment></comment><comment><USER18> Maybe I just have no friends, but I don't get enough notifications to seek out a tool that will silence them :)

<comment><USER19> You are not alone. I have zero notifications. Only updates, and those are now done automatically.

The only notifications I get are calendar reminders, and I want them... otherwise I would miss all my meetings.

</comment></comment><comment><USER20> What would be more useful to me, is a global hotkey that hides notifications.

<comment><USER21> Guarantee you that you can do it with Keyboard Maestro somehow... [http://www.keyboardmaestro.com/main/](http://www.keyboardmaestro.com/main/)

Best program I have bought for OS X in a long time! Amazingly useful and I know I have barely scratched the surface.

</comment></comment><comment><USER22> i like it thanks for doing this and giving it for free.</comment>


Understand 1,700 Mechanical Linkages with These Helpful Animations - <AUTHOR> http://makezine.com/2015/04/20/understand-1700-mechanical-linkages-helpful-animations/ <comment><USER3> For those interested in these kind of mechanical things, Dover has republished some 19th and early 20th century public domain books that collected together mechanical movements. Some examples:

"507 Mechanical Movements: Mechanisms and Devices" by Henry T. Brown, from 1868: [http://www.amazon.com/507-Mechanical-Movements-Mechanisms- De...](http://www.amazon.com/507-Mechanical-Movements-Mechanisms- Devices/dp/0486443604)

"1800 Mechanical Movements, Devices and Appliances" by Gardner D. Hiscox, first published in 1899. This is the 16th edition from 1921: [http://www.amazon.com/Mechanical-Movements-Devices- Appliance...](http://www.amazon.com/Mechanical-Movements-Devices-Appliances- Science/dp/0486457435/ref=pd_bxgy_14_text_z)

There is also a website that has all the illustrations and text from the Brown book, and has added animated versions of many of them: [http://507movements.com/about.html](http://507movements.com/about.html)

<comment><USER4> Since both of these are in the public domain, you can legally print your own copy, which is more convenient for some people.

Google Books has scanned the 507 Mechanical Movements book, although their search engine is terrible at finding things like that on their own site; one copy is available from [http://www.pdnotebook.com/wp- content/themes/thesis_16/custom...](http://www.pdnotebook.com/wp- content/themes/thesis_16/custom/images/Five_hundred_and_seven_mechanical_moveme.pdf). The other, longer book is harder to find via HTTP, although Libgen has a scan of the 2007 reprint. Timothy Schmidt scanned the original 1899 edition in 2008 and uploaded it to The Pirate Bay, which seems to not have it now: [http://builders.reprap.org/2008/12/1800-mechanical- movements...](http://builders.reprap.org/2008/12/1800-mechanical-movements- devices-and.html).

US patents are also a wonderful source of public-domain diagrams of machinery, and they are generally better explained (especially before about the 1980s, at which point their writing quality took a nosedive and they descended into nearly-unreadable jargon) but I'm not aware of an easily downloadable repository of scanned patents.

<comment><USER5> Looks like you can get "1800 Mechanical Movements, Devices and Appliances" by Gardner D. Hiscox at:

[http://www.pdfarchive.info/pdf/H/Hi/Hiscox_Gardner_Dexter_-_...](http://www.pdfarchive.info/pdf/H/Hi/Hiscox_Gardner_Dexter_-_1800_Mechanical_movements.pdf)

<comment><USER4> Thank you very much! What search engines do you use?

<comment><USER5> Just found it using Google. I think I had to end up quoting various parts of the title, adding "PDF" as part of the search, and going past the first couple of pages of search results.

</comment></comment></comment></comment></comment><comment><USER6> Or, if you want, you can go straight to Prof. Nguyễn's youtube channel: [https://www.youtube.com/user/thang010146/videos?sort=p&view=...](https://www.youtube.com/user/thang010146/videos?sort=p&view=0&flow=grid)

</comment><comment><USER7> Amazing. Now I'm left to wonder what all these contraptions are good for. For example, why would one use something like this "Persian joint": [https://www.youtube.com/watch?v=mFoiSRWdW5E](https://www.youtube.com/watch?v=mFoiSRWdW5E) ?

<comment><USER8> Some time ago i talked with a machine designer - and he told me that the industry is moving away from complex mechanical contraptions , into microcontrolers coupled with smart motors(servo - either linear or rotary) which allow exact controlled positioning.

<comment><USER9> This is certainly true in general. I see a niche for the mechanical solution if reliability is a primary goal and there is a (not too complex) gear that can solve your problem.

About ten year ago I worked in project that designed a solar tracker. These trackers need to be cheap and reliable. Every hour an mechanic spends in a remote location is incredibly expensive and cuts into your yield very fast.

Interestingly there is a gear that can follow the path of the sun very well while being driven by motor with constant speed [1].

[1] [https://www.youtube.com/watch?v=2NGSL-- PmGY](https://www.youtube.com/watch?v=2NGSL--PmGY)

<comment><USER8> Why are mechanical solutions more reliable than a servo ? Aren't mechanical and moving parts less reliable than electronics , in general ?

<comment><USER9>
        Aren't mechanical and moving parts less reliable than
        electronics, in general?

I don't dare to answer this in general, maybe someone more knowledgeable can offer his or her opinion. In our case the alternatives were:

      1. Simple gear and constant velocity three-phase motor[1]
      2. Two axis mounting and two stepper motors.

First option has less parts and should be more reliable in theory. That being said: I only know of commercially available solutions of the second kind. Maybe this has changed in the last ten years, but our solution never made it to market.

[1] Industrial three-phase motors are real workhorses, produced in large quantities since ages, relatively cheap and incredibly reliable.

</comment></comment></comment></comment></comment><comment><USER10> Transmission like this looks really good in a simulation, but I wonder how much lubrication would this require to operate in the real world.

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

<comment><USER11> A lot of those solutions have been around for centuries but are quite impractical. The problems are often the required operational tolerances, wear rate, poor torque characteristics and other real life issues.

They are utterly fascinating to watch though.

</comment></comment><comment><USER12> Mechanical linkages are fun. There's a nice collection of them at the Museum of Science and Industry in Chicago, left over from the 1933 Century of Progress Exhibition. I used to have a Russian textbook on mechanism design with over a thousand of them. It was all drawings; you didn't really need a translation.

This guy must _really_ like spending time in Autodesk Inventor. (I just spent an evening getting some robot parts to fit in there. I'll machine them on a CNC mill on Monday, and they will fit. Which is the whole point of Inventor.)

<comment><USER13> Do you remember the name of the Russian book?

</comment></comment><comment><USER14> Is there a name for the field of computer science that classifies these linkages by their topological proporties other than just general CAD stuff? It would be awesome to say I have linkage A and linkage C, what kind of linkage B can I put in the middle?

<comment><USER15> Yes, there is: "kinematic synthesis." It is not typically considered a "computer science" topic; it is instead taught in various forms in mechanical engineering curriculums.

<comment><USER5> Can you recommend any good books on kinematic synthesis?

</comment></comment></comment><comment><USER16> These are amazing !

I already have a use for the limited space door at home, and I want to build the Archimedian Drive just because it is beautiful.

This also says something to me about the value of human determination - <USER2> retired professor in Vietnam must be old enough to have been an adult during the American involvement in their wars, and crushing poverty their state was left in, still a professorship and a desire to teach the world is left.

Hats off indeed

<comment><USER17> I really don't want this comment to go somewhere weird, but... I think the experience of war sharpens the desire to see the world made a better place. Most people come out of the darkness of war and see the value of life, and this often permeates their attitude in how they want to leave the world. I think war brings out the altruism in people.

<comment><USER18> Let's hope education about previous wars can have the same effect. War docos make me feel very fortunate and grateful and not at all complacent. A good war doco takes you to a dark place, some have left me shaking my head in disbelief and reflecting a lot.

But anyway, how about that rack and pinion animation! Finally I get why it's so effective at safely pulling an old steam train up a steep slope. I honestly was foggy on how the continuous engine motion translated into alternating cycles of locking and linear motion. So simple though.

<comment><USER19> > Let's hope education about previous wars can have the same effect. War docos > make me feel very fortunate and grateful and not at all complacent. A good > war doco takes you to a dark place, some have left me shaking my head in > disbelief and reflecting a lot.

Not a war docu, but still eye opening. A 1969 documentary about a boy leaving his hair-dressing apprenticeship to join the British army.

[http://www.bbc.co.uk/programmes/p00jrhv0](http://www.bbc.co.uk/programmes/p00jrhv0)

> First transmitted in 1968, documentary following Martin May, an apprentice > ladies hairdresser, who decides to join 'a man's world' \- the Junior > Leaders Regiment of the Royal Armoured Corps. The programme follows him as > he begins his training with a group of recruits.

This boy, Martin May, is only 15 when he joins.

(I have no idea if BBC iPlayer programmes are viewable outside the UK. There's probably some method to do so).

<comment><USER18> Thx for link. Yes anyone who gives in to geo-blocking these days is a bit behind the times!

</comment></comment></comment></comment></comment><comment><USER20> Very cool. I have been building animatronics and mechanisms for years until the last 5 years or so. Typically I relied on old classics of mechanisms, and then I would model it in Inventor (now Fusion 360 or FreeCAD lately), to see how it worked. These are brilliant and so numerous! My hat off to Prof. Nguyễn!

</comment><comment><USER21> This is amazing, like a code repo for mechanical programming. You have a number of common libraries here such as planetary clutches, along with a variety of solutions to common problems like how to convert between straight and circular motion.

In fact just like in coding where you have common issues like how to do an associative array, you have common issues in mech like how do I keep something pointing the same direction.

<comment><USER4> Unfortunately this isn't the code repo, or even a compiled executable, just screenshots of the executables.

</comment></comment><comment><USER22> Incredible timing. Just yesterday while looking at a door opening mechanism, I was just wondering where I could find something like this.

</comment><comment><USER5> Also of potential interest is Chebyshev's "paradoxical" 6-bar linkage:

[http://www.etudes.ru/en/etudes/paradox/](http://www.etudes.ru/en/etudes/paradox/)

<comment><USER4> If I remember the catalog correctly, there are a number of Chebyshev linkages among Prof. Nguyen's videos, such as [https://www.youtube.com/watch?v=xPVcL0fMBCk](https://www.youtube.com/watch?v=xPVcL0fMBCk). I haven't found the paradoxical 6-bar linkage, though.

</comment></comment><comment><USER23> My guess is that basic linkages like this are not patentable, even if you invent a "new" one. That could be an argument in support of not allowing patents for at least the fundamentals of computer science and programming.

<comment><USER24> Do you have any evidence to support this or is it just your reckons?

<comment><USER23> Just my reckons.

</comment></comment></comment><comment><USER25> I would have preferred if these were looping GIFs, or if there was a way to watch these videos on loop without interruptions. There was a similar site that had looped animation for a lot of these.

<comment><USER26> On the youtube page if you're using the HTML5 player, you can make them loop at least in chrome. Just right click the video, which should bring up the youtube menu. Just right-click again in the video area (not on their popup menu, but while it's still up), and "Loop" should be an option.

</comment></comment><comment><USER27> I wonder how much time he spent on these. Incredible dedication!

</comment><comment><USER28> Very cool, no Theo Jansen linkage in it however.

</comment><comment><USER29> Pay attention. If you ever get sent back in time, this information will be important. You can make a fortune with this and the ability to create a solar oven to boil sea salt for salt (that's the seed money right there).

<comment><AUTHOR> Wouldn't it be easier to make the fortune with the time machine I already have in this hypothetical scenario :-)?

<comment><USER30> It would actually be a time-space machine if you didn't plan on suffocating.

[http://i.imgur.com/o4CJS2w.png](http://i.imgur.com/o4CJS2w.png)

<comment><USER10> The Sun is the center of the Universe. Interesting.

<comment><USER23> Everywhere is the center of the Universe.

</comment></comment></comment></comment></comment><comment><USER31> Ok...That's pretty cool. Thx :)

</comment><comment><USER32> Seeing this leaves me incredibly dissatisfied with the state of Wikipedia. This is what it should be about. Using rich media to explain and fascinate. Instead we get 10.000 words on the history of Anime.

<comment><AUTHOR> You have to remember that anyone can write (maybe not write well, but can write). Not too many people can use AutoCAD and ever fewer have enough knowledge to be pumping out one a day like this guy.

<comment><USER32> Imagine if wiki spent their money on building tools to allow people to create multimedia content for the site.

AutoCAD models are an extreme case, but how about a tool to make quick vector drawings, or a tool to make flow charts to explain complex concepts. All right there in the wiki interface. All super easy to use. 10x-ing content creation.

<comment><USER18> Your Anime example presents a problem. Anime can't be whipped up quickly with such tools, or it would be low quality.

And to get past the rights issues with including fine examples of Anime on Wikipedia, would be an uphill battle.

I sort of understand what you're saying, but Wikipedia is only part of the puzzle of information. That's why we have the "Internet"!

It's perfectly fine to link out to Youtube videos or channels from a Wikipedia page about mechanical systems or CAD specific topics.</comment></comment></comment></comment>


How Facebook Makes Identity Theft Easier  - <AUTHOR> http://www.25hoursaday.com/weblog/2007/09/19/HowFacebookMakesIdentityTheftEasier.aspx

<comment><USER2> Back when "TheFacebook" was limited to whatever universities were added that week, there was a guy at my school living on campus and pretending to be a student for at least 3 months. He didn't get caught until one of his friends got suspicious about him using someone else's e-mail address to get a Facebook account. The fact that he never seemed to do any actual work didn't help either.</comment>


Ask HN: What did you do with your PhD in Math? - <AUTHOR> I earned a bachelor's in Math at a well-known Canadian school and after a few years working as a software developer, I'm finding I miss doing math on a daily basis. I'm considering going back for grad school in Math purely out of interest, not for some increase in hireability or earning potential.<p>On that note, if you got a PhD in Math at some point, I'm curious to hear about what you did afterwards. I hear a career in academia is getting harder and harder these days. If you have a PhD in Math, where do you work today? <comment><USER2> I didn't do a PhD, I was accepted to one though, but I turned it down last minute. If you plan to go back to the industry after, it can be at very least a waste of time.

Don't do a PhD 'for the fun', it's not.</comment>


Heavy Metal and Natural Language Processing - <AUTHOR> http://www.degeneratestate.org/posts/2016/Apr/20/heavy-metal-and-natural-language-processing-part-1/ <comment><USER2> The "least metal words" almost seems like a challenge. I now feel strangely compelled to write metal songs with those words, and I haven't written a metal song in 20 years. I may not be particularly metal, anymore.

<comment><USER3> It surprisingly holds together.

[The] academic chairman noted [the] secretary['s] considerable measurements. /

University employee[']s attorney indicated [the] administrative committee. /

Literary agencies particularly fiscal. /

<comment><USER4> Which Bad Religion album is this off?

</comment></comment></comment><comment><USER5> > In the face of this complexity, it is not surprising that understanding > natural language, in the same way humans do, with computers is still a > unsolved problem.

I have the feeling it is not just an unsolved problem, but also an undefined problem.

</comment><comment><USER6> I noticed there was song data errors in places - for example, in this chart ([http://www.degeneratestate.org/static/metal_lyrics/clusters....](http://www.degeneratestate.org/static/metal_lyrics/clusters.html)), in the most representative songs for Tiamat, it lists White Pearl, Black Oceans. That is a song by Sonata Arctica. It also lists 3 versions of the same song for Nightwish in most representative songs (Elan). Similar mistakes are made for various bands in that chart (Symphony X, Hammerfall, Therion, Sabaton, Stratovarius, Helloween, Within Temptation, etc.).

This was interesting to read in general though, especially as someone who listens to metal quite frequently (mostly of the power metal variety).

<comment><USER7> He mentioned that in the article: > What's interesting is that while the most representative songs for each band are mostly their own songs, occasionally other bands songs creep in. For example, "Wrathchild", is an Iron Maiden song, not a Diamondhead song.

I don't think it's a problem with the song data. When the algorithm picks a song it considers most lyrically representative of a band, it chooses from _all_ the songs in the dataset, and it doesn't always pick a song by that band.

</comment></comment><comment><USER8> People interested in ML and heavy metal may appreciate:

LSTMetallica: Generation drum tracks by learning the drum tracks of 60 Metallica songs [https://keunwoochoi.wordpress.com/2016/02/23/lstmetallica/](https://keunwoochoi.wordpress.com/2016/02/23/lstmetallica/)

Keunwoo is also the translator of Deeplearning4j's Korean site: [http://deeplearning4j.org/kr-index](http://deeplearning4j.org/kr-index)

</comment><comment><USER9> That list of most and least metal words, if I didn't know where they were from, I'd have guessed was the 19th-C. Romantic reaction to the Enlightenment (except for a few anachronisms like 'gonna'). How metal was Edgar Allan Poe?

<comment><USER10> Pretty Metal I know at least 3 bands who have set his words to music: Arcturus, Green Carnation (Both did 'Alone') Carpathian Forest ('The Raven').

<comment><USER11> There's also Ahab, who based a fantastic album on the narrative of Arthur Gordon Pym[0]. It's sort of halfway between funeral doom and your Isis/Neurosis style stuff.

[0] [https://en.m.wikipedia.org/wiki/The_Giant_(Ahab_album)](https://en.m.wikipedia.org/wiki/The_Giant_\(Ahab_album\))

</comment></comment></comment><comment><USER12> Regarding the non-metalness of long words, it's just that you are not trying hard enough: [http://www.invisibleoranges.com/death-metal- english/](http://www.invisibleoranges.com/death-metal-english/)

</comment><comment><USER13> There is something to be said about song structure. Most songs will have a chorus, which is repeated throughout the song. Choruses will generally have higher 'readability' because they are meant to be more memorable. If you don't pre-process your corpus by removing repeating paragraphs, then your comparisons to the brown corpus are not as valid, since brown doesn't use repetition.

<comment><USER14> I believe that the convention on darklyrics is to either elide or replace with "[chorus]" all repetitions of the chorus after the first. A few spot checks seem to confirm this, but I can't find an official policy on it.

</comment></comment><comment><USER15> This made me wonder how "metal" a given text is. Wrote a small toy here: [https://lucb1e.com/rp/crapware/metalness.htm](https://lucb1e.com/rp/crapware/metalness.htm)

Given a text it will split each word, add up the metalness score and divide it by the number of words.

<comment><USER16> You need to strip |,.?!| from the text because it won't recognize words with a punctuation mark at the end.

</comment></comment><comment><USER17> My favorite example of "least metal words" is Iron Maiden's use of the word "cuddle" in their song "Drifter"

</comment><comment><USER18> This is really cool! Is this on github or anything? I'm having my friends and myself search for lyrics of different genres to compare this to.

<comment><USER19> The author specifically mentions that he is not releasing the lyrics dataset.

</comment></comment><comment><USER20> I'm suprised no difference between american and european metal was found. I feel like they are quite different, but it seems this is not supported by this data.

I found it amusing that Venom and Running Wild are grouped together in the first step. But well, by the lyrics it fits. The rest matches my expectations surprisingly well.

</comment><comment><USER21> I originally assumed this was about how heavy metal contamination affects natural language processing.

<comment><USER22> In a roundabout way it is :)

</comment></comment><comment><USER23> Reminds me of of the Power Metal Lyric Generator[1]. Although obviously that was done more as a joke instead of actual analysis on metal lyrics.

[1] [https://youtu.be/wpe8eNdpAiM?t=307](https://youtu.be/wpe8eNdpAiM?t=307)

</comment><comment><USER24> Lol. "Least Metal Words"

<comment><USER25> Reminds me of Dethklok's song about tax receipts... [https://www.youtube.com/watch?v=2zMQtXP7F5k](https://www.youtube.com/watch?v=2zMQtXP7F5k)

</comment></comment><comment><USER26> Fantastic article.

I wonder if the clustering method can be used/is used by apps like Spotify to create a list of "related bands", as the graph at the end was fairly accurate.

<comment><USER18> I thought the same thing, but this method seems like it actually works. Could this be expanded to not just analyse words but frequency makeup also?

</comment></comment><comment><USER27> Enjoying the article so far, but the graphs are unreadable. You should either embed dynamic ones or use bigger fonts.</comment>


One billion Android devices at risk of hacking - <AUTHOR> https://www.bbc.com/news/technology-51751950 <comment><USER2> Not even spending several hundreds or even going beyond a thousand bucks will save you from this on Android, and this is the reason why I try to avoid it whenever possible. At least iPhones are expensive but you do have years and years of updates (and no, not willing to change my phone every year or two).

<comment><USER3> I'm not super familiar with how Android does it's versioning, so I may be off base here.

The article mentions the S6 being vulnerable, but it had its last update 6 months ago. It also says versions below 7.0 are vulnerable, but the S6 supports 7.1. It also says the most vulnerable are phones from 2012.

I don't think it's unreasonable to say an 8 year old phone may have some security vulnerabilities. I personally don't know anyone with an 8 year old phone. I'm sure they exist, but I don't think this is an Android exclusive issue.

Further, Android is the defacto default OS for phones. Every shovelware burner sitting in a bin at the convenience store is running some version of Android. Saying "1 billion are vulernable" is surprising in that it's only 1 billion.

These include the phones that cops hack into by placing the phone in a machine that tries every pin combo between 0000 and 9999 until it unlocks.

<comment><USER4> Android (the project) may release updates, but it's useless if the phone manufacturers don't distribute them.

The article says

> According to the Android security bulletin, there were no security patches > issued for the Android system in 2019 for versions below 7.0

But this doesn't really matter. The only way the vast majority of Android users will get an update is if there's an "over the air" (OTA) update. Which most device manufacturers don't provide. I've seen Samsung phones from 2016 which are stuck on Android 6, no security updates. I don't actively use Android personally, but I suspect there are more recent phones in a similar situation.

This is the crux of Android's problems re security updates.

The only consumer-grade phone I'm aware of that does a decent job of security updates is Google's Pixel. Interestingly Samsung do provide security updates fairly promptly for some models -- possibly because they're widely used as corporate Android devices and their purchasers made security updates a requirement.

<comment> death-by-ppt From [https://support.google.com/pixelphone/answer/4457705](https://support.google.com/pixelphone/answer/4457705)

"Pixel phones get Android version updates for at least 3 years from when the device first became available on the Google Store".

My Pixel (1st gen) no longer gets updates as of a few months ago. I might flash an open source Android ROM, such as LineageOS.

</comment></comment></comment></comment><comment><USER5> Project zero remains oddly silent.

<comment><USER6> Interesting, isn't it? Paging Ian Beer...</comment></comment>


Retina Mac External display problem - <AUTHOR> https://github.com/oyiptong/retinadisplayproblem <comment><USER2> Just a guess:

The patterns in the examples seem to be horizontal, meaning the raw (pre 'cable encoding', usually 8b/10b) bit pattern of the display output would be repetitive . It wouldn't be out of the question that a slightly improperly electrically balanced or terminated output could cause signal integrity issues, including ringing (voltage exceeds spec on rising / falling edges) which could trigger safeguard circuitry in a display (shut it off).

<comment><AUTHOR> I don't have any electrical knowledge. care to elaborate?

Is that a problem with the cable, terminals on the devices, the mini- displayport dongle or either?

The problem also only seems to occur on Retina Macbook Pro's

<comment><USER2> If my guess is correct, it would be a problem in the design of the output transceiver circuit on the RMP's motherboard, assuming the cable and receiver in the display are built to spec.

Could be an IC issue, could be the impedance control of the connector, could be the impedance control of the traces on the circuit board, could be poorly chosen passives, could be interference from nearby circuits, etc.

I wish I could give you a better answer but high speed signal integrity is one of the most obtuse and most black art aspects of electronics design, there's a fair amount of non-intuitive physics going on, e.g. signals going down a wire don't just go, they 'ricochet' off impedance differences. It's far too large a topic to treat in a HN comment and its whole system encompassing so 'what it could be' is a large set.

These types of things are not uncommon in hardware development, especially with high speed signaling. The interactivity of such systems can be high and hard to predict fully at times.

EDIT: Simply put - display outputs scan top to bottom, left to right. The fact that the pattern that triggers the issue appears to be horizontal means it would occur in the raw bit stream of the output in a periodic way. That means there is some low order frequency in the system caused by this pattern (maybe it repeats every 500khz or something like that). If there is something in the electronics of the output of the RMBp that resonates at that frequency (easier than you think), then it could possibly cause the described failure.

<comment><USER3> > It's far too large a topic to treat in a HN comment and its whole system > encompassing so 'what it could be' is a large set.

This is a good start:

[http://en.wikipedia.org/wiki/Transmission_line](http://en.wikipedia.org/wiki/Transmission_line)

</comment></comment></comment></comment><comment><USER4> This works for me with my first gen 15" Retina. This also happened to me at [https://optin.stopwatching.us/](https://optin.stopwatching.us/), and I assumed it was exploiting some kind of bug with fullscreen for an intentional effect. I am using an external 20" older generation Apple display.

<comment><AUTHOR> It wasn't intentional. I'm not on the team working on stopwatching.us, but I had the issue and wanted to get to the bottom of this.

If you've got the bandwidth, could you please post your monitor model and/or snap a video?

<comment><USER4> Apple Cinema Display 23-inch DVI (1920 x 1200) connected through a DVI/DP converter. It doesn't happen when I open the image in photoshop.

</comment></comment></comment><comment><USER5> Not experiencing this with a mid-2012 Mac Book Pro Retina hooked up to an external display via an HDMI/DVI adapter.

I wonder if this is some strange prank designed to get people to look at a screenshot of [https://optin.stopwatching.us/](https://optin.stopwatching.us/), esp. given the '1px reproduction' of this is entitled 'We are watching you!' If so, I really, really don't get it :-S

<comment><AUTHOR> Not a troll. Actually, let me host another version of the page.

The reason it's got the "We are watching you!" is because i noticed the problem while viewing [https://optin.stopwatching.us/](https://optin.stopwatching.us/)

Edit: hosted here: [https://people.mozilla.com/~oyiptong/retinadisplayproblem/](https://people.mozilla.com/~oyiptong/retinadisplayproblem/)

<comment><USER5> Ah fair enough, that made me suspicious in particular as that title seemed unrelated to the bug :-)

I wonder whether my HDMI -> DVI adapter is making a difference somehow?

</comment></comment></comment><comment><USER6> How long before it takes effect? I don't see anything on my Retina MacBook Pro with Thunderbolt Display.

      Model Name:	MacBook Pro
      Model Identifier:	MacBookPro10,1
      Processor Name:	Intel Core i7
      Processor Speed:	2.6 GHz
      Number of Processors:	1
      Total Number of Cores:	4
      L2 Cache (per Core):	256 KB
      L3 Cache:	6 MB
      Memory:	16 GB
      Boot ROM Version:	MBP101.00EE.B02
      SMC Version (system):	2.3f35

Thunderbolt Display:

      Vendor Name:	Apple Inc.
      Device Name:	Thunderbolt Display
      Vendor ID:	0x1
      Device ID:	0x8002
      Device Revision:	0x1
      UID:	0x0001000100508120
      Route String:	3
      Firmware Version:	22.2
      Port:
      Status:	Device connected
      Link Status:	0x2
      Port Micro Firmware Version:	0.0.21
      Cable Firmware Version:	0.1.18
      Cable Serial Number:	C4M2263005QDNWFAX
      Port:
      Status:	No device connected
      Link Status:	0x7
      Port Micro Firmware Version:	0.0.21

<comment><USER7> I also can't reproduce it with the Thunderbolt Display.

Are the original reproducers of this all using minidisplayport adapters? Or are some able to reproduce using the native HDMI port?

</comment></comment><comment><USER8> off-topic: how does he/she get those vertical tabs in Firefox in that screenshot?

[https://raw.github.com/oyiptong/retinadisplayproblem/master/...](https://raw.github.com/oyiptong/retinadisplayproblem/master/display_problem.png)

(warning: that is the picture that apparently breaks certain displays)

<comment><AUTHOR> That's Tree Style Tab, great for tab hoarders like me [https://addons.mozilla.org/en-US/firefox/addon/tree-style- ta...](https://addons.mozilla.org/en-US/firefox/addon/tree-style-tab/)

<comment><USER8> awesome, thanks!

</comment></comment></comment><comment><USER9> This must be exclusive to the Retina MacBook Pro, then, because my MacBook Air doesn't show the same symptoms.

<comment><AUTHOR> So far, I've only been able to reproduce it on first-gen 15" Retina MacbookPro's

<comment><USER10> For what little it is worth, it doesn't repro on chromebook pixels.

</comment></comment></comment><comment><USER11> I can't seem to reproduce, but I've got two monitors (VGA + HDMI)

<comment><USER12> Same here. MacBookPro10,1 with two monitors connected (VGA + HDMI) and I can't reproduce.

</comment></comment><comment><USER13> I can't reproduce it using the latest update to the Retina 15" MBP and an iMac in target display mode, connected via Thunderbolt.

</comment><comment><USER14> I can't reproduce the issue on a first-gen MacBookPro10,1 2.3GHz connected to an Apple Cinema Display 27" (over mini-DP)

Apple recently swapped my LG LCD panel to a new Samsung one for ghosting but I'm in clamshell mode.

</comment><comment><USER15> Can't reproduce. mid-2012 MBP Retina + Cinema Display 24"

</comment><comment><USER16> Unable to reproduce this on my first-gen rMBP 15" with an LG TV connected via HDMI. Will try my external displays (Dell/HDMI; LG/VGA) tomorrow.

</comment><comment><USER17> Can't reproduce with MacBookPro10,1 + 2x Mini-DP->Dual-Link DVI + 2x Dell 3007WFP on 10.8.4

</comment><comment><USER18> Can't Reproduce on my 15" retina with neither a dell nor a vizio tv over hdmi.

</comment><comment><USER19> can reproduce with all examples incl. stopwatching.us with mid 2012 rmbp and LG 23EN43 which is connected via thunderbolt to DVI adapter.

display shuts off immediately.

Was quite confused when opening stopwatching.us yesterday, thanks for pointing it our here :)

</comment><comment><USER20> No problems for me.

      Retina, 13-inch, Late 2012 HDMI Out

</comment><comment><USER21> It's funny to see how many Hacker News writers use Mac, the most closed hardware+OS, most anti-hackish.

How about renaming HN to stand for Hipster News?

<comment><USER22> A Mac is the only computer on which you can legally develop for all major operating systems, including mobile.

How is that closed?

<comment><USER3> Apple puts artificial restrictions on what tools you can use to write iPhone apps, and Macs are that allowed tool, so OS X isn't closed?

That is literally the dumbest argument I've ever read on HN.</comment></comment></comment>


Comparing the general static analysis in Visual Studio 2010 and PVS-Studio - <AUTHOR> http://www.viva64.com/en/a/0073/

<comment><AUTHOR> Abstract. The article demonstrates errors detected with the static code analyzer integrated into Visual Studio 2010. The research was performed on five open source projects. The same projects were also checked with PVS- Studio. Results of comparing these two tools are presented at the end of the article.</comment>


Nick Brown Smelled Bull - <AUTHOR> http://narrative.ly/pieces-of-mind/nick-brown-smelled-bull/?ftcamp=crm/email/20131017/nbe/AlphavilleHongKong/product

<comment><USER2> This was posted a few days earlier:

[https://news.ycombinator.com/item?id=6576231](https://news.ycombinator.com/item?id=6576231)</comment>


APM Agentuur (Advertising Pays Me) - <AUTHOR> https://www.adpays.me/

<comment><AUTHOR> APM Agentuur is the first ad agent worldwide who strives to build a just relationship between a customer and a business advertiser without resellers. The APM Agentuur is your personal agent in advertisements. They want to establish fairness in relationships between you and advertisings.

</comment><comment><AUTHOR> It's free to get your own ad board. You receive 90% of each banner display on your board. APM Agentuur have 10% to maintain the operation. You set priority of ads you'll see on your board. No unsolicited advertising guaranteed.

</comment><comment><AUTHOR> No referrals. No pyramids. No fake clicks gathering. It really works.</comment>


UN issues dire economic report as WHO warns coronavirus "may never go away" - <AUTHOR> https://www.axios.com/who-un-coronavirus-economy-102be46c-fe7c-40c0-b642-242982b36271.html <comment><AUTHOR> _Against the backdrop of the raging COVID-19 pandemic, the world economy in 2020 is projected to shrink by 3.2 per cent, racking up some $8.5 trillion in overall losses – wiping out nearly four years of output gains, according to a mid-year economic analysis by the United Nations._ [0]

[0]-[https://news.un.org/en/story/2020/05/1064032](https://news.un.org/en/story/2020/05/1064032)

</comment><comment><USER2> I don't mean to be naive, but wasn't it always the case that this wouldn't go away? I was under the impression from the beginning that eventually it would be out there and seasonal like the flu.</comment>


Ancient Buddhist statue discovered by Nazis is made from meteorite - <AUTHOR> http://www.bbc.co.uk/news/science-environment-19735959

<comment><AUTHOR> Had a look for some pictures of this Chinga metorite and see that there are bits for sale still these days <http://www.meteorites-for- sale.com/chinga.html> pictures there probably best for a quick contrast to see why they suspect it, also thought meterites were more expensive so this is probably one of the more common/larger ones about indicating it is not as rare perhaps.

</comment><comment><AUTHOR> I will add that this is legit and upon the bbc and not theonion.com, which is were a story like this would not be out of place.</comment>


Myths About Women Entrepreneurs (2007) - <AUTHOR> http://www.more.com/more/printableStory.jsp?catref=cat4260086&storyid=/templatedata/more/story/data/1181746621847.xml

<comment><USER2> Aren't these myths for _all_ entrepreneurs, and not just women?

</comment><comment><USER3> Fascinating thoughts, though most of the points seem to be justified using anecdotes. I think many of these points should be encouraging to _all_ entrepreneurs.

I also think the tech industry is missing out by not having more women participate.

</comment><comment><USER4> These "myths" (which I don't think are even myths anymore) apply to male and female.

I hate the way people still insist on seperation via gender</comment>


Why Uber and Other Tech Companies Are Spreading Across the Bay to Oakland - <AUTHOR> http://www.bloomberg.com/news/articles/2015-09-23/why-uber-and-other-tech-companies-are-spreading-across-the-bay-to-oakland <comment><USER2> Is there a safety factor in Oakland? From what I understand, there are way higher crime in Oakland compared to San Francisco which explains the price differential in square feet.

</comment><comment><USER3> In what way is Uber a "tech company"? Is every company with an app tech now? Like Pizza Hut?</comment>


This Guy Is Launching 12 Startups in 12 Months - <AUTHOR> http://www.wired.com/2014/08/12-startups-in-12-months/

<comment><USER2> Wait, really? I clicked this fully expecting it to be an article from The Onion.</comment>


Not everyone in Y Combinator's latest batch could fundraise - <AUTHOR> https://twitter.com/AdamDraper/status/1265393382798454784 <comment><AUTHOR> Full tweet:

"Not everyone in @ycombinator's latest batch could fundraise.

I was fortunate enough to invest in @coinbase @Amplitude_HQ & @benchling when none of them could raise their full seed rounds after YC.

@BoostVC is looking to write 2 $500k checks into YC companies from the last batch." \- @AdamDraper</comment>


Data scientists develop tool to exterminate spammers and trolls - <AUTHOR> http://venturebeat.com/2012/10/21/impermium/

<comment><USER2> This article is pure hype from top top bottom. It begins by discussing spam, then it segues into a discussion of profanity and hate speech as though they're the same thing. But conspicuous for its absence is any discussion of freedom of speech, the usual limiting factor in removing content some may find offensive, including hate speech.

I think the article was actually written by an automated content generator that read a bunch of similar articles and created a simulation, but without any deep understanding of the topic it's supposedly about.</comment>


Ask HN: How do you do internationalization in your apps? - <AUTHOR> I worked on several projects with i18n (from the frontend prospective), and all the time collaboration with translators always took a lot of time. We've used external solutions (which was pretty low-level JSON storage), our own internal solution, but still, this friction was really hard.<p>How do you tackle such problems, so translators could easily change text on their own with the confidence, that they will change only needed parts? <comment><USER2> I've helped several times now with transitioning English only projects to supporting multiple languages and it's always going to be messy to be honest. There's never one way to do it, the text to translate is always stored in several different places (e.g. in web page text, URLs, common strings, documents, images) and the tools the translators need to use will differ (e.g. maybe a WordPress plugin, spreadsheets, gettext app or web interface). It's going to vary project to project is what I mean and it's very dependent on how your project is coded.

This post about localising the game Papers, Please has lots of good examples of project specific issues: [http://dukope.tumblr.com/post/83177288060/localizing- papers-...](http://dukope.tumblr.com/post/83177288060/localizing-papers- please-papers-please-was)

</comment><comment><USER3> I always use the "best practice" way in a project to generate translations. Most programming languages or frameworks have a translation practice or library that is widely used.

I always build my apps first in English. Often you can create an export of all strings that need to be translated. I translate them myself or send the file to a translation agency.

</comment><comment><USER4> I'm also wondering about this.

I have seen some service where you can list very thing you need translations as a list. And hire others to translate them for you. And generate code to embed the translations into your app.

but I don't remember the name of the service.</comment>


Google One Today Shutting Down - <AUTHOR> Email contents:
"Hello, We have an important update to share with you.
We launched Google One Today seven years ago to help people donate to causes they care about. In the last few years, we have seen donors choose other products to fundraise for their favorite nonprofits.
As a result, we will shut down One Today on February 6th, 2020.
New nonprofits will no longer be able to sign up for One Today. The Google One Today app will be turned off, and any open projects will be deleted. We will ensure that 100% of funds donated on One Today prior to February 6th are disbursed to the relevant nonprofits.
If you have any questions, please feel free to contact the One Today team.
Thank you for your donations and partnership.
The Google One Today team" <comment><USER2> Well, I didn't have that on my Google Deathwatch Bingo Card.</comment>


Run your tests in a JSDOM based browser (chrome, FF coming soon), fast and cheap - <AUTHOR> http://fasttest.io/ <comment><AUTHOR> Suggestions welcome!

<comment><USER2> Nice toy, but...

If this is JSDOM based browser then how is this better then actually using JSDOM with a regular testing framework (or a BDD-like one)?

How is this better than running puppeteer with headless chrome?

> You get to choose what region you want to run your tests from.

How is this better than running headless puppeteer (or JSDOM for that matter) in an AWS lambda in selected region?

<comment><AUTHOR> This would be the same. But the target market here is people who use remote services. For example with saucelabs, tests are slow because you send each request from your computer to saucelabs, which then goes to your site. With this, the tests run on Lambda (which is super cheap) and they do requests directly to your server.

Other things we want to do include creating more API methods, like fillIn (which would take an object and fill in a form using the object keys as selectors and submit) and allow for direct access to the document easily. When we have firefox and chrome, we'll be able to do this quite fast, and without typing async/await in your test function.</comment></comment></comment>


Google Just Revealed the Secret of Its Quantum Computers - <AUTHOR> https://www.inverse.com/article/37188-google-quantum-computer <comment><USER2> This could cause the next computer revolution. We would suddenly and abruptly increase our computational power exponentially. No, asymptotically. The ability to create a stable, functional, and enduring trinary computational system will make everything we have accomplished in the last 50 years appear laughably small minded.</comment>


Blink: Eye Care Through TrueDepth - <AUTHOR> https://apps.apple.com/app/apple-store/id1472574128?mt=8 <comment><AUTHOR> Blink is an iOS app that cares for your eyes. It's a daily eyesight trainer with a number of effective exercises that helps your eyes to relief tense and strengthen eyesight. Blink uses eye tracking to guide your exercise technique.</comment>


Ask HN: What Are The Best Open Source Codebases to Study to Improve? - <AUTHOR>

I'm familiar with Rails and have built a few simple applications. I'm proficient to the point where basic tutorials no longer add value to my learning, but I have no formal CS background and would like to explore what good rails structure/code looks like.<p>Though I'm looking for Rails specific suggestions, I made the question nonspecific as i'm sure a cross-platform list would be beneficial for many of us. <comment><USER3> Im not a Rails guy... but

If you want good source code, find the most popular Rails project that interests you. Popular projects usually have a high level of refinement and it being something that interests you will make it a bit more interesting.

As real4real points out, actual coding is important too, make sure to dabble with things you learned and/or if you think of a novel way to handle something try it out on your own and see how it all works.

</comment><comment><USER4> i also came out of a non-CS background. I don't recommend just looking at open source code. That would be like watching someone skiing to try to become a better skier. The only way to get better at coding is by writing code. You want to get into a situation with a more experienced programmer who can mentor you when you get stuck and review your code.

<comment><AUTHOR> I definitely agree about diving into development as the best source of mastering programming, and it's obviously my main method of learning; my question was not intended to come off as an avoidance of hands-on learning, but rather a way to find additional means to accelerate my learning. I have found extensive tutorials online, but they are both redundant and typically aimed at the fundamentals of rails. I constantly run into the advice of "read through code/documentation" but rarely am pointed in the direction of useful repositories to do this. After sifting through github for a bit, I found no easy way to figure out good codebases to read through.

I think reading through code is a really valuable supplement to the learning process, especially when dealing with a framework like rails which is so heavily convention based. I find reading through code to be the quickest way of exposing myself to the standard idioms of rails based development.

<comment><USER5> This is a great question. I'm in basically the same position as you - <USER2> formal cs background but learning RoR and looking for resources to help me take it to the next level in terms of my coding and development skills.

Have you heard of jumpstartlabs? They have an awesome series of tutorials on their site covering stuff like common design patterns to use and how to use workers for background jobs etc.

Also, the project is open source so you can contribute to help improve the tutorials: <http://tutorials.jumpstartlab.com>

</comment></comment></comment><comment><USER6> If you wanted something in PHP, I would have suggested Wordpress. Its the largest and the most popular CMS out there today. I learned a lot by their methodologies and the way they do things or the they the theme architecture is built etc.

<comment><USER7> Anything but this! WordPress is an example how NOT to do things!</comment></comment>


CoinTouch.com shuts down, citing EU GDPR regulations - <AUTHOR> https://www.cointouch.com/ <comment><USER2> I just want to point out that is the same creator as StreetLend[0] who has previously posted the same thing but under their other startup.

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

<comment><USER3> Really, it's just more FUD.

> _GDPR threatens website owners with fines of 4% of turnover or €20 million > (whichever is higher) if they do not jump through a number of ambiguously- > defined hoops._

...No. GDPR certainly doesn't. The often quoted "4% of revenue" fines are upper bound of fines for the serious _intentional_ and continuous violations.[1] Spreading information like this is almost certainly the textbook definition of FUD.

GDPR is, largely, 'common sense' regulation. At the gist of it is "be responsible with users data". If you want to store personally identifiable information, that comes with it a set of responsibilities that you have to keep on top of. Delete data when users ask for it. Inform users about what you do with their data. I really think that's the minimum you could ask for.

 _Edited fines to align closer to the language used in the actual regulation_

[1]: [https://en.wikipedia.org/wiki/General_Data_Protection_Regula...](https://en.wikipedia.org/wiki/General_Data_Protection_Regulation#Sanctions)

<comment><AUTHOR> > The often quoted "4% of revenue" fines are the last step after warnings and > smaller fines.

Are you making a legally binding guarantee there?

<comment><USER4> This comment right here is a _perfect_ example of FUD.

</comment></comment></comment></comment><comment><USER5> > Young websites and non-profits cannot afford legal teams. Therefore the risk > posed by GDPR is unacceptably high.

I was going to post something on the previous post (re: StreetLend), but I guess I'll say it here: this is a bunch of nonsense. There are _plenty_ of other regulations that can land a young startup in hot water (DMCA, for one, which, by the way, carries a 5-year potential jail sentence as a penalty) and yet we're seeing _more_ tech startups in 2018 than we did in 1998, not less.

This whole hoopla is just posturing.

<comment><USER6> DMCA is trivial to comply with compared to GDPR. The two aren't even remotely comparable.

PCI is more comparable and it would take roughly speaking 16 years of negligence to rack up the MINIMUM fine for GDPR.

As people pointed out you are unlikely to actually get fined. They say only egregious violations will get fined but the risk is huge in comparison so even if there is a 0.01% chance that may be too risky for many businesses.

<comment><USER7> Is it really trivial though? You can be jailed as an accessory under DMCA for not filtering user content or not responding to takedown notices. (Even if it just was a mail server malfunction.)

Compared to this, GDPR is walk in the park mostly identical to current privacy laws in the more aggressively private countries in EU.

</comment></comment></comment><comment><USER8> I keep seeing this sort of claim:

> The law, combined with parasitic no-win-no-fee legal firms, puts website > owners at risk of vindictive reporting. Young websites and non-profits > cannot afford legal teams. Therefore the risk posed by GDPR is unacceptably > high.

Perhaps there is a legal difference in the UK/EU that I'm missing, but surely you could be operating this business under a limited liability entity, in which case the worst-case situation is you get a GDPR lawsuit, and fold your entity at no personal cost.

In the best case, you don't get a GDPR lawsuit because i) it's actually not as bad as the FUD is making out, or ii) you get lucky. Either way, you didn't need to shut down your website.

If you can't/won't spend the money to set up a limited liability vehicle, that's a different matter entirely than you "cannot afford [a] legal team". The former is O($100), the latter is O($10k) or higher. So yes, a new barrier for hobbyists, but not in a different order of magnitude than server costs.

</comment><comment><USER9> Many independent developers / geeks are afraid of any regulation, regardless of its merits or whether they are potentially compliant or not. They only want to write code, not to investigate/fear compliance. GDPR is a hammer that hit very small start-up landscape pretty hard.

<comment><USER3> Eh. Cost of 'doing business'. I saw the analogy last time when the same author posted their last "I'm shutting this down because of GDPR" post - chefs still have to follow food safety regulations, even if they just want to cook food.

You want to write code? Deploy it to localhost:8000.

You want to launch something online and collect user data? Be responsible with it. reply

<comment><USER10> > Eh. Cost of 'doing business'.

For fun, let's say I visited one of your personal projects websites, say something like a tax estimator, and it uses Google Analytics, maybe some web fonts, and let's say you're serving ads on that website so that you can make it support its own web hosting fee. It's also hosted on your own server. Therefore you are storing and processing my data, for someone else, and perhaps for your own internal usage as well to determine if your tax estimator project is worth pursuing or keeping online.

Unfortunately when I visited your theoretical side project, you did not inform me that you are storing or processing my personal information!

What are you doing with my personal information, like my IP address?

I'd like to request a copy of my personal information from your side project.

I'd also like to update my personal information as stored on your side project, so that it is kept accurate.

I'd also like to request a copy of my personal data be delivered to a third party of my choosing.

Have you appointed at data protector officer for this side-project yet?

Have you appointed a representative within the EU yet?

Can I get a copy of all the contracts you have in place with data processors you may be using?

Finally, I'd like to request my personal data from your personal project website, and I'd like you to delete it from your servers and all services that were accessed via your website.

Sound good? How's your side project going? Is this onerous yet? This is just a "cost of doing business" with your side project, right?

<comment><USER3> Heh. Unsure if you got this on a fluke or you know me/looked me up - do you mean my site [https://austax.money](https://austax.money)? I don't have ads though.

Look - to be honest, that's probably something I need to think about some time soon. A very realistic probability might be that I can't be bothered looking too much in depth and I'll just shut it down, but I won't be too upset about that.

Only think is that I won't go spreading some diatribe around the internet about how EU regulation is killing me. I will acknowledge that it was my own laziness that lead to me shutting down the hobby tool I built a few years ago and no longer have a need for.

<comment><USER10> Hypothetically, though it looks like you also have side projects that are relevant to the topic. I would assume nearly everyone on HackerNews has or had side projects that are using similar third party data processing, analytics, ads, and perhaps even their own linode hosting such projects, all gathering what GPDR determines is "personal data" like IP addresses, or maybe email addresses and names for signups and so forth. Now do you see why this is a hassle?

But really, how do you plan on complying with GPDR for your side projects?

> I will acknowledge that it was my own laziness that lead to me shutting down > the hobby tool I built a few years ago and no longer have a need for.

What if that hobby was ramen profitable? Same decision?

</comment></comment></comment></comment></comment><comment><USER11> > The law, combined with parasitic no-win-no-fee legal firms, puts website > owners at risk of vindictive reporting.

OP has misunderstood how the law operates.

It's not possible for an individual to take legal action. The regulator does this. The fines are fines, and they're imposed by the regulator and paid to the regulator. They're not compensation paid to the victim.

This means there's no payout for lawyers.

OP got this badly wrong, which makes me think they know very little about GDPR and are just making some political point about regulation.

</comment><comment><USER4> I guess you're based in the UK, were you previously compliant with the Data Protection act of 1998?

If not, this seems rather stupid.

</comment><comment><USER10> Any US lawyers want to comment on how GDPR, a EU regulation, impacts US-based business, startups, hobbyists, etc?

If it's an EU law, if they're based in the USA can they simply ignore the EU law? Or move to the USA?

<comment><USER4> IANAL but this depends entirely on how much exposure you have in the EU. If you have none, then you can safely ignore GDPR.

</comment></comment><comment><USER12> Good, one less website owned by irresponsible people in existence. :-)</comment>


Ask HN: How to represent your dev shop when most of your work is not public? - <AUTHOR> I continuously struggle to create a website for my dev shop that has been in business since 2013. Our work is often internal or otherwise not public facing, and it's hard to come up with a way that communicates our abilities without looking too hand-wavey. Do any of you know of portfolios/consulting sites that work well under similar constraints? <comment><USER2> I went through this when I built up my consultancies. Both times I was focused in areas where people weren't keen on letting me just advertise the products we built for them. A few things I figured out along the way though:

1\. Rarely did I ever get leads from my website, I mean seriously it was super rare. Almost all leads came from recommendations and me getting out and talking to people.

2\. Visitors to my website were there to get basic data, so I put things like who some of my key clients, largest clients as well as I listed some of the more interesting technologies and projects we had worked on.

3\. I worked with a few clients that would act as references for me, so they would talk to potential clients about what we did, how we did it, etc.

All this because honestly as a consulting/dev shop your website will get you almost 0 business, so don't waste a ton of time here. Your sales team, founders and existing clients are who get you the business. The website is just a way for people to find out a little history and background on the company and the team. So that is where I put the focus.

Where I did spend quite a bit of time was on the blog component of the website, writing about things and becoming known for some niche areas which helped generate leads. But the main website wasn't key for this.

If you have specific questions let me know, I am also happy to take a look at your website and give you my 2 cents for what that is worth. Personally, I'd ask a few people you know to do the same, but I'd make sure these people aren't "friends" who know you really well. You want people who don't know what you do really well so it helps see if they can frame your company and capabilities.</comment>


Inside Facebook's plan to eat another $350B IT market - <AUTHOR> http://www.businessinsider.com/inside-facebooks-telecom-infrastructure-project-2017-5 <comment><USER2> Amazon's already done this and replaced expensive Cisco Nexus routers with their home grown in house creations. Big hardware networking equipment vendors are going to continue to see this type of encroachment from large IT companies IMO.

<comment><USER3> If I recall correctly Google built its own network gear long time ago. Completely makes sense. Looking at Cisco product with regard to security & the recent NSA leaks you really don't want your network gear from them.

<comment><USER4> What makes you think they can do it better in terms of security? In my opinion it is a matter of costs and trying to solve a specific problem.

<comment><USER5> Google can better control their designs and supply chain than Cisco.

Cisco's priorities are more directly profits. Google's are often more security related, though they can profit from being more secure.

<comment><USER6> They can better control their supply chain maybe, but still not good enough if/when they're up against state sponsored espionage.

<comment><USER7> The big difference here is that states can simply buy access to, e.g., a Cisco Nexus and attack it from inside and out until they find a vulnerability in NX- OS, let's say, a malformed CLI-via-HTTP call.

Whereas, what software does a Google switch even run? What's the architecture, the APIs? You basically need someone inside Google, or for one of these things to fall off a truck. Way more involved and expensive than the 10k you might spend on a Nexus to throw it your lab and set your hackers on it.

<comment><USER8> Actually, Google has published papers and have presented talks (many of which are available on Youtube) on the type of gear they have developed. I don't know what their latest versions are, but recently they were using OpenFlow style infrastructure to provided fine-grained control (security, balancing, analysis) over flows through out their network. OpenFlow style constructs also provide a micro-segmentation style control (ie distributed firewall) over ingress/egress of traffic at the individual container/vm port level.

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> This is what RIM/Blackberry should have done when they were the most trusted name in telecom. They could've bought Nortel and made a juggernaut.

<comment><USER9> Does this not also somewhat mean this is what Nortel should have done? What did RIM bring to the table that Nortel didn't have, or was this related to the timing, where Nortel was already in the gutter and RIM was still flying high?

<comment><USER5> Timing related. Nortel over-extended themselves in the 1990s by making a bunch of acquisitions related to networking. RIM could've bailed them out or acquired the company outright since they were very strong financially until just after 2008.

Remember, when the iPhone launched RIM was at their peak strength and Nortel was a forgotten husk.

</comment></comment></comment><comment><USER10> Has OCP been really that successful? How many data centers are actually using their design?

<comment><USER8> Facebook was the one who started the OCP (Open Compute Platform) concept. Quite a number of companies have climbed on board. And there is a yearly conference in the March time frame in where quite a number of companies get together and show hardware based upon the open standards and concepts developed through OCP.

</comment></comment><comment><USER11> this is essentially an apache model or how it came to be. some of internet providers created and funded apache foundation to make a decent webserver that was flexible and reasonably fast, in terms of how fast a C based webserver can be.

<comment><USER12> I'm not too familiar with the design of apache but I believe nginx is also written in C. I'm curious about your comment because generally C is regarded as being the wrong choice for any given project for several reasons but speed is not one of them.

Are there other languages that are enabling faster web servers?

</comment></comment><comment><USER13> Actually what's stopping switch and router configuration from being something a local shop does for other local shops? At this point both the software and hardware aspects appear to be generic enough to be do-able. It also buys a local company really good local service. (Or,at least the potential for it.)

My thinking is if many companies can do it internally above a large enough scale then it may be a service opportunity for smaller entities.

</comment><comment><USER14> > Plus, German telecom equipment maker ADVA Optical Networking is > manufacturing the device and, as of a few weeks ago had nine customers > trying it out for their telecom needs, a mix of big telecom companies and > enterprises, it said.

That actually sounds a lot better, as it means Facebook isn't actually manufacturing it, and it's harder for a security agency to inject into it (although there will obviously still be spies)

<comment><USER15> What are you saying, that security agencies can infiltrate Facebook but not ADVA's supply chain?

<comment><USER14> I'm saying that it's easier to infiltrate something that isn't 6000km away.</comment></comment></comment>


Ask HN: what tool do you use to manage your todo list? - <AUTHOR> <comment><USER2> I have a file called TODO.diff, which leverages my editor's syntax highlighting.

An example would be:

      ! A header (PURPLE)
      *** Important *** (SOLID BLUE BACKGROUND)
      Text (WHITE)
      + A finished task (GREEN)
      - An unfinished task (RED)
      --- (HORIZONTAL RULER)

</comment><comment><USER3> As someone who's gone from to-do list tool to todo list tool, I have now settled on paper and pencil. I have a little notebook I carry around with me. Every evening I jot down my "shippables" for the next day into a new page. I have a separate page for long term goals like "get a gardener over" that I review constantly. And that just works really. Kind of gtd and part of another method I can't recall :D

</comment><comment><USER4> I asked a question relating to tools for a number of things, including to-do lists earlier this week, and a lot of people gave some very very useful answers:

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

Myself: Currently any.do and/or a notebook, but looking to move to a wiki, or org-mode.

</comment><comment><USER5> I have never found a better to do list app than [http://dynalist.io](http://dynalist.io)

Before that I used Workflowy for ~4 years. Dynalist improves on Workflowy in virtually every way, and its creators listen to their userbase closely.[1]

1\. [https://trello.com/b/z0HxDPNo/dynalist- roadmap](https://trello.com/b/z0HxDPNo/dynalist-roadmap)

</comment><comment><USER6> Things.app (macOS / iOS)

[https://culturedcode.com/](https://culturedcode.com/)

The word "simple" gets thrown around a lot in software marketing and GitHub readmes. That said, having used Things extensively, it truly strikes me as having the perfect balance of simplicity vs features for a todo/GTD system.

</comment><comment><USER7> For personal to-do lists, I use [http://www.toodledo.com/](http://www.toodledo.com/) which is great for having many options (occur every month, every 2 weeks, last Wednesday of the month, etc.), and syncs between mobile and web.

For work, I basically use pen and paper or slack reminders or self chat.

</comment><comment><USER8> Surprisingly, no one here seems to be using white board and marker or just sticky note on desk.

While I do use todo.txt or Task (CLI) but I also rely on sticky notes or whiteboard for keeping my Todo list always in front of me.

</comment><comment><USER9> I've settled on Todoist. It's not awesome but does the job especially for recurring tasks. But more and more for work I've found myself using a little notebook or a small stack of index cards.

<comment><USER10> I also use this. I mostly like how you can set up "projects" and invite people to the list. So I have work projects but also things like "Shopping list" which I share with my partner and we both use the phone app.

</comment></comment><comment><USER11> I made tasklater.com to keep long-term tasks off my day-to-day list.

And I made tuduli.com to manage day-to-day todos, since I was emailing myself todos anyway. So this keeps them all in one email.

</comment><comment><USER12> todo.txt

</comment><comment><USER13> I use Trello's kanban-style board

</comment><comment><USER14> Taskwarrior.

</comment><comment><USER15> Google Keep

</comment><comment><USER16> Trello! :)

</comment><comment><USER17> Orgmode

</comment><comment><USER18> Wunderlist

</comment><comment><USER19> Wunderlist

</comment><comment><USER20> Omnifocus</comment>


Bell data collection part of 'disturbing trend' - <AUTHOR> http://www.cbc.ca/news/technology/bell-data-collection-part-of-disturbing-trend-1.2223949?cmp=rss <comment><USER2> > _In the case of Bell, its website advises customers that their information > can be shared without their knowledge or consent._

What level of privacy is left to be breached!?!

</comment><comment><USER3> This underscores the need for individuals to have access to software which not only supports encrypted communication, but encrypts their communications by default. It's not enough that governments and corporations shouldn't be spying on us--they shouldn't be _able_ to spy on us.</comment>


HTML emails reduce open rates - <AUTHOR> https://blog.hubspot.com/marketing/plain-text-vs-html-emails-data <comment><USER2> Simpler is always better.</comment>


Untyped Programs Don't Exist - <AUTHOR> https://www.williamjbowman.com/blog/2018/01/19/untyped-programs-don-t-exist/ <comment><USER2> A couple of points.

Javascript, Racket, etc that he listed aren't "untyped" languages. They are typed. Weakly/dynamically typed. Although I guess some people equate the two. So lets go with that.

Also, division by zero is an runtime operation error, it is not really a type error. The division operation doesn't fail because it violated the type system, it fails because you can't mathematically divide by zero.

Finally, x86 assembly doesn't really have what we call a type system in the general sense.

But assuming his premises and logic, the conclusion should be "Typed Programs Don't Exist". If x86 checks its type at runtime ( division by zero ), then it is a dynamic language. Dynamic languages are untyped languages like javascript and racket. And since all programs are ultimately assembly programs and all assembly programs are created by dynamic languages then it must mean that all programs are untyped. Hence, no typed programs exist.

Ultimately, the author's argument is that runtime division by zero error is proof of x86 type system. But if that is true, x86 assembly is a dynamic ( aka untyped ) language. And his conclusion is wrong.

<comment><USER3> > They are typed. Weakly/dynamically typed.

Unityped, as in, they have only one type. You can assign any type to any variable, so all values have a single type.

> Also, division by zero is an runtime operation error, it is not really a > type error. The division operation doesn't fail because it violated the type > system, it fails because you can't mathematically divide by zero.

That is a type error in some type systems. The general notion of a type is a logical proposition. "Non-zero number" is a proposition and so you can represent this with types. The type of division is then `Num -> (Num != 0) -> Num`.

> Dynamic languages are untyped languages like javascript and racket.

This is not true. All languages are typed, either with rich types, or they are unityped (like the lambda calculus or JS).

Machine language is typed, and the fundamental types are (roughly) word and double. These are the registers of machine language, which you can roughly think of as variables in programming languages.

<comment><USER4> Values in JS still have different types (as evidenced by their different behavior). _Variables_ could all be argued to have one type in JS, which is the root type (which everything else subtypes).

So no, JS is still not untyped, merely dynamically typed. An example of a language that also has only one data type for _value_ would be something like Tcl, where the only type is a string - and everything else is just an optimized way to store certain kinds of strings, that could be removed without affecting semantics of any program.

<comment><USER3> > Values in JS still have different types (as evidenced by their different > behavior).

Behaviour is based on values, not types. 1+2 will print out a different value than 1+1, but these expressions have the same type (typically).

> So no, JS is still not untyped, merely dynamically typed.

I said JS was unityped, not untyped.

<comment><USER4> Values also have types, it's not something that's exclusive to expressions and bindings.

</comment></comment></comment></comment></comment><comment><USER5> I'm going to be a little nitpicky here:

> Definition. An expression is a symbol of sequence of symbols given some > interpretation. > Definition. A language is collection of expressions.

I immediately reject these definition. A language is a subset of the free monoid over some alphabet [1]. This definition is _widely_ used and the author changing the definition here is significant. Next, because the author requires that each expression be given an interpretation, the author conflates language (e.g. valid strings) with semantics (e.g. the interpretation of strings).

> The result of this sequence of symbols is undefined in C.

...

> Definition. Undefined behavior is the result of interpreting a non- > expression.

The author is mixing around a few definitions of "undefined behavior". Of course, C compilers will _gladly_ compile programs containing expressions that are total nonsense. The resulting behavior of the program has no meaningful semantics but the program itself consists _only of valid expressions._ Because a program may contain expressions that exhibit UB when operating with _standard definitions_ (e.g. the definitions of "expression" and "language" ubiquitously used when discussing programming languages and compilers) the proof is incorrect.

The immediate implication of this result is that technically a C program with UB is free to modify itself non-deterministically and thereby prevent any existing proof system from predicting its behavior.

However, definitions aren't really "right" or "wrong." The proof is otherwise sound. My critique is that real systems aren't built using the definitions the author uses and therefore the resulting theorem isn't really applicable in any practical circumstance.

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

</comment><comment><USER6> I find it a bit of a strawman. "Untyped" is not a very common term for programming languages. "Dynamically typed" is much more common in my experience. I'd call something like CSV untyped.

<comment><USER7> Certain subsets of the statically typed functional programming research crowd (i.e., Haskell/OCaml/ML aficionados) do like to refer to dynamically typed languages as "untyped". For them it is a common term of derision. Unfortunately they do not know or care that the rest of the world uses the term differently.

<comment><USER8> Derision is generally worryingly common among these people.

This is of course anecdotal on my part but as someone working with JS on a daily basis I've received more than my share of insults based on my choice of career.

<comment><USER9> I've seen the same.

Yet good user interfaces are typically warty behind the scenes and full of exceptions, exactly the kind of thing where spending a lot of time on specifications/typing offers little reward. Au contraire, it can put you into a mindset where you'd rather fight the users than put in another difficult-to- handle-typewise exception.

Some time ago I had a look at old Visual Basic which I've never personally used, and lo and behold, if you squint it's not actually that far from Javascript.

<comment><USER8> Ha! I remember when _VBScript_ was still a thing. What a different world we would be living in had Microsoft had its way.

</comment></comment></comment></comment></comment><comment><USER10> And most type systems don't actually reflect the subtyping relation inherent in the topos correspondent to their logic. As a result, there is a massive disconnect between type systems, which let us catch errors in programs without running them, and type theory, an essential and unavoidable part of doing maths.

I think that we should take "typed", "untyped", etc. away from the dynamic- language haters and force them to justify their positions without this needlessly-perjorative attitude. "Types lend themselves to strong automated reasoning, automatically eliminate large classes of errors, and simplify the job of whoever is reasoning about the programs," writes the author, ignoring that there are piles of similar features in the language design space, like highlighting, typesetting, brace-matching, whitespace, capitalization conventions, docstrings, named variables, named procedures, 2D/spatial layout, ASCII/JIS/Unicode art, and the list goes on and on and on.

<comment><USER11> > most type systems don't actually reflect the subtyping relation inherent in > the topos correspondent to their logic

Would you mind elaborating? With examples if possible.

> ignoring that there are piles of similar features in the language design > space, like highlighting, typesetting, brace-matching, whitespace, > capitalization conventions, docstrings, named variables, named procedures, > 2D/spatial layout, ASCII/JIS/Unicode art, and the list goes on and on and > on.

I am interested to see how any of these would protect against bugs that say a type system with dependent types would protect against.

<comment><USER10> The most infamous example is that of Haskell. Reasoning in Haskell is not the same as reasoning in the category Hask [1], whose objects and arrows purport to be Haskell types and functions; many folks are actually reasoning in an idealized, simplified Hask. Papers like "Fast and Loose Reasoning is Morally Correct" [0] justify this stance. (There is, to be fair, work on determining Haskell's actual categorical properties. [2]) This attitude is popular across the ML family, but spikes in the Haskell community for some reason.

I don't have a good citation for categorical subtypes, but it is well-known category-theory folklore that often objects have subobjects and that a given arrow `f : X -> Y` has fixed source object X and target object Y, and therefore that f likely embodies not just categorical structure but also subobject structure inside X. There may be many distinct arrows of type `X -> Y`, each with different subobject behavior. This is where concepts like dependent typing shine, right?

I'm going to take the other branch of your implicit dilemma. Let's protect against the same bugs that dependent types protect against, but without dependent types. This is valid E [3] or Monte [4], and languages in the E family are what Haskellers would call "unityped" or "untyped". The specification is that `y >= x` and also that the return value `rv >= y`. The compiler is not obligated to infer corollaries like `x >= 0`.

        def f(x :Int, y :(Int >= x)) :(Int >= y) { return x + y }

It is not accidental that Monte has a categorical semantics [5] at the level of values and not types. It seems to be the case that, even if the category of types is trivial, the category of values is rich. At the same time, studying only the category of types and never examining the values is insufficient! Ponder this Haskell REPL session:

        $ nix run nixpkgs.ghc -c ghci
        GHCi, version 8.2.2: http://www.haskell.org/ghc/  :? for help
        Prelude> :t reverse
        reverse :: [a] -> [a]
        Prelude> :t const [] :: [a] -> [a]
        const [] :: [a] -> [a] :: [a] -> [a]
        Prelude> :t cycle
        cycle :: [a] -> [a]
        Prelude> :t map id
        map id :: [b] -> [b]
        Prelude> :t tail
        tail :: [a] -> [a]

Studying the types alone, we are helpless. We need to know something of the values as well.

[0] [http://www.cse.chalmers.se/~nad/publications/danielsson- et-a...](http://www.cse.chalmers.se/~nad/publications/danielsson-et-al- popl2006.pdf)

[1] [https://wiki.haskell.org/Hask](https://wiki.haskell.org/Hask)

[2] [http://www.cs.gunma-u.ac.jp/~hamana/Papers/cpo.pdf](http://www.cs.gunma-u.ac.jp/~hamana/Papers/cpo.pdf)

[3] [http://erights.org/](http://erights.org/)

[4] [https://monte.readthedocs.io/](https://monte.readthedocs.io/)

[5] [https://monte.readthedocs.io/en/latest/category.html](https://monte.readthedocs.io/en/latest/category.html)

</comment></comment></comment><comment><USER12> On C2-dot-com there used to be a long running debate about "tag based" dynamic typing versus tag-free dynamic typing. Tag-free is similar to "untyped", but that may depend heavily on which definitions are used. This debate included whether tag-free is "good", and how to define it, since "tag" implies an implementation and not really behavior. One may also use tags for compression and speed "under the hood" even under "tag-free", but the programmer may not otherwise have to care as a language user (outside of performance issues). Thus, how does one know as a language user that the language is "tag free"?

I lean toward tag-free; it makes life simpler in my opinion. Interesting but thready debate. A battle of philosophy and definitions.

</comment><comment><USER13> This is totally backwards. _Typed_ programming languages don't exist, as in at runtime it's just instructions applied to sequences of bits. A type is just a convention about an agreed interpretation of those bits. It's a temporary fiction that doesn't exist at runtime.

<comment><USER14> There's some inconsistency in that argument. If a type is just a convention about an agreed interpretation of bits, then isn't it equally true that bits are just a convention about an agreed interpretation of voltages, charges, and magnetic domains? But worse yet, voltages, charges, and magnetic domains are just interpretations of the physical world, and they don't really "exist" either...

<comment><USER8> The difference with bits is that it's a convention realised in the hardware.

0 and 1 are _physically_ different from each other. A 64-bit float could easily be seen as an array of bytes without any change to the information it contains.

Bottom line: types are external to the information something contains.

<comment><USER14> Whether a particular voltage represents an 0 or a 1 is an interpretation external to the device. Internally, there are just voltages. Whether a particular voltage represents an 0 or 1 will not in general be consistent, even within a device, and whether a particular piece of the device represents a bit or not is a matter of interpretation.

What tells you that a particular location in a chip represents a bit and what voltages correspond to 0 and 1? You have to bring external knowledge of the particular device.

<comment><USER8> Entropy. I can measure the number of steady states of the device and discover the actual, real, physical information contained within.

Also through this I can discover which voltage corresponds to the high and low state.

Meanwhile a series of bytes can be a float, a string, a table of numbers or even a function pointer - you can't tell which without external information.

<comment><USER14> It's a bit frustrating to see a comment that starts with a single, incomprehensible, verbless statement like "entropy." I know what entropy is, and I could give you three different senses for the word, but it's not a particularly illuminating thing to think about here and I'm clueless about how this connects to the rest of the comment.

I think what you're doing is taking your existing understanding of how a processor works, and saying that you could figure it out, given an actual processor. But that's begging the question. You have a definition for what a "bit" is, and what a "byte" is, and since you know what they are you can go on a hunt within a physical system and label things as "bit" and "byte". But I could come in and start labeling certain things "function pointer" or "float", and I don't see a particularly compelling reason why that's not allowed, but labeling things as "bit" or "byte" is allowed.

Or in other words, why is, "I know how synchronous digital circuits work and I can figure out a processor" acceptable, but "I know how compilers work and I can reverse engineer a program" prohibited?

And I'll still say that the statement that, "Typed programming languages don't exist," is not even wrong. It's just a cute thing that you can say, to demonstrate that you can choose a definition for "exist" or "typed programming languages" that makes it needlessly difficult to have a conversation.</comment></comment></comment></comment></comment></comment>