Gay marriage: a case study in conformism - <AUTHOR> http://www.spiked-online.com/site/article/13518/

<comment><USER2> Bit of a strange article, I think there's a whole bunch of shibboleths/dog- whistles in there that I don't know so it's sounds a bit like buzzwordy- gibberish to me.

But on the point about acceptance of gay marraige being a sudden and inexplicable change unlike anything ever seen, or indeed possible, in a free state, I was reminded of this article by Nate Silver who says that it's actually been gaining slowly in support for years and that at least half the change can be attributed to older folk dying and being replaced by a younger generation of voters:

[http://fivethirtyeight.blogs.nytimes.com/2013/03/26/how- opin...](http://fivethirtyeight.blogs.nytimes.com/2013/03/26/how-opinion-on- same-sex-marriage-is-changing-and-what-it-means/)

This has lots on interesting knock-on effects because some states are older than others, certain ages are more likely to vote etc.

Key conclusion:

"it's the steadiness of the trend that makes same-sex marriage virtually unique among all major public policy issues, and which might give its supporters more confidence that the numbers will continue to break their way".</comment>


10 Commandments of Computer-Related RSI - <AUTHOR> http://www.rsirescue.com/articles/TenCommandments.htm

<comment><USER2> All true. But, perhaps, not precisely the "10 commandments" I'd choose based my own RSI experience.

Tangential: notice how all RSI-related resources online are low quality and, in particular, look terrible? I've long wanted to start an attractive site with an attached Amazon astore. (If there are any similarly minded folks here, please get in touch.)</comment>


Microsoft Edge uses Linux for its build system - <AUTHOR> https://twitter.com/kylealden/status/1115307632124780545 <comment><USER2> Microsoft has embraced linux for a longtime already.</comment>


Ask HN: Why do MMORPG launches always go so wrong? - <AUTHOR>

It's by now a cliche that on the first day of an MMORPG game launch, the servers will fall over horribly and no-one will be able to play.
But why is that? I mean, it's not like TCP/IP or server technology is exactly bleeding-edge stuff, it's not that the companies deploying this stuff are cash-strapped (we're talking about Blizzard Entertainment as an example, for pity's sake), and it's not like they're not aware of the problem (Arena.net, whose game Guild Wars 2 is in login server hell as I write, have done months of stress-testing).
So what is it that means triple-A titles with hundreds of millions of dollars riding on them still always go pear-shaped on day 1? Can anyone enlighten me? <comment><USER2> You can't buy or build enough servers to handle a short term rush. It is not cost effective. There is much more to it and I don't really feel like writing an essay, but the above point is probably one of the biggest.

I have been wondering if you could build an mmo where the servers run on things like aws so you could add and drop servers as needed.

<comment><AUTHOR> Yeah, I'm surprised that the companies don't use something like a cloud service to handle the short term rush. It might be expensive to have the infrastructure in place to handle the rush, but surely protest reviews on Amazon and Metacritic - which are getting a lot of press for nigh-on killing some games - are more expensive?</comment></comment>


Video: the Digital Economy Bill may pass on Tuesday in UK. We need to stop it - <AUTHOR> http://www.youtube.com/watch?v=gOyg1GUY18U

<comment><USER2> The bill comes after discussions at a private dinner between the UK business secretary and billionaire media mogul of Dreamworks.

[http://technology.timesonline.co.uk/tol/news/tech_and_web/th...](http://technology.timesonline.co.uk/tol/news/tech_and_web/the_web/article6797844.ece)

Is this corruption?</comment>


Integral Calculus in Lambda Calculus (Lisp) - <AUTHOR> http://jng.imagine27.com/articles/2009-04-09-161839_integral_calculus_in_lambda_calculus_lisp.html <comment><USER2> One other thing. The Lisp is rather non-idiomatic. Here is how I'd write it:

        (defparameter small-dx 0.00001)

        (defun integrate (f a b &optional (dx small-dx))
          "integrate a function f from a to b"
          (loop for x from a to b by dx sum (* dx (funcall f x))))

Then you can use it like:

        (flet ((f1 (x) 1)
               (f2 (x) (expt x 2))
               (f3 (x) (* x (exp (expt x 2)))))
          (format t "f1: ~A, f2: ~A, f3: ~A~%"
                  (integrate #'f1 0 5)
                  (integrate #'f2 0 5)
                  (integrate #'f3 0 5)))

In conclusion, CL is not Scheme.

(Edit: Initially I said that the code doesn't compile. It does -- storing functions in the value slot of variables threw me off a bit. Very Scheme- like.)

<comment><AUTHOR> The code compiles and runs just fine on any CL compiler. Try SBCL or CLozure CL.

Actually the loop macro in CL can be a very contentious topic. I'd hardly refer to the loop macro as idiomatic. Imperative and functional styles in CL can both be idiomatic.

Anyway who said CL was Scheme ?

<comment><USER2> _Anyway who said CL was Scheme ?_

Your style strongly hints at a Scheme background. Nothing you do is wrong, but if you read a bunch of Lisp code, you wouldn't see many people doing things the way you did. OTOH, if you read a bunch of Scheme code, it would look exactly like yours.

Also, I don't think the use of loop is a point of contention. LOOP is in the CL spec, tail recursion isn't. (The ITERATE package is a nicer loop, but the idea is the same.)

<comment><AUTHOR> Interesting opinion regarding my style. Thanks for explaining. There are many things in the CL spec that are very contentious. Arguably too many. Dan Weinreb pointed this out earlier in the week(<http://ilc2009.scheming.org/node/7>) which inspired a response from me([http://jng.imagine27.com/articles/2009-04-07-135246_cl_hard_...](http://jng.imagine27.com/articles/2009-04-07-135246_cl_hard_to_compile_efficiently.html)) although not directly related to the "too many concepts, irregular" argument but then again this may effect how per formant/stable code can be written in a language.

Yes tail-recursion is not part of the spec along with many other implementation aspects that probably should be.

<comment><USER3> Good on you taking criticism so well jgrant27, testament to a mature mind.

Also, absence of tail-call elimination in the spec doesn't have to stop you from using it, if your compiler supports it. We all love Common Lisp, but usually not "warts and all"; we all end up using our personally "attractive" subset. I personally code in Dylan with s-exp notation that happens to compile under SBCL :-)

</comment></comment></comment></comment></comment><comment><USER4> I would really impressed by seeing some kind of wacky function paired with a fixed point combinator so that when a function is integrable, the combinator spits out as a fixed point the answer.

</comment><comment><USER5> There's a great bit about this in the first chapter of the SICP.

</comment><comment><USER2> A fancy title for what amounts to addition and function evaluation.

<comment><AUTHOR> What else does integration primarily entail ?

<comment><USER2> Symbolic integration would be much more interesting than Riemann sums.

<comment><AUTHOR> I'm not going to implement that for you. Sorry.

See Norvig's "Paradigms of Artificial Intelligence Programming - Case Studies in Common Lisp", Chapter 8 - Symbolic Mathematics : A Simplification Program, 8.6 - Integration, page 252.

<http://norvig.com/paip.html></comment></comment></comment></comment>


DARPA Crowd Sourced Formal Verifications for Weapons System Code - <AUTHOR> http://kotaku.com/5877913/the-pentagon-wants-you-to-play-video-games-that-will-improve-their-weapons

<comment><AUTHOR> For those interested who don't care to read the kotaku summary, the link to the FedBizOps page with the proposal is here: [https://www.fbo.gov/index?s=opportunity&mode=form&id...](https://www.fbo.gov/index?s=opportunity&mode=form&id=3b5cf23a978799579294399b33268c99&tab=core&_cview=0)</comment>


Microsoft emergency patch for 'crazy' zero day - <AUTHOR> http://www.zdnet.com/article/microsoft-releases-emergency-patch-for-crazy-bad-windows-zero-day-bug/ <comment><AUTHOR> summary is that you if a 'specially crafted file' exists on your system and Microsoft Malware defender scans it, it will exploit malware defender and install itself locally. This is particularly nasty in that if you sent the file as an attachment, typical 'spam' testing is to see if a malware file is attached so the attachment would be scanned. Everyone patch now please.</comment>


Stephen Hawking: 'There is no heaven' - <AUTHOR> http://cosmiclog.msnbc.msn.com/_news/2011/05/16/6654463-hawking-there-is-no-heaven <comment><USER2> He can only rely on his mental speculation and sense perception, which are not sufficient to deal in matters beyond this life.</comment>


The Engineered Century by Neil Armstrong (2000) [pdf] - <AUTHOR> http://www.greatachievements.org/Object.File/Master/4/254/na_speech.pdf

<comment><USER2> The emphasis on the risk-taking test pilot aspect of the whole thing makes it easy to gloss over the fact that guys like Armstrong were engineers first and foremost. He had an M.S. in Aerospace Engineering, and Buzz Aldrin an Sc.D (PhD) in Astronautics.

<comment><USER3> No necessarily; from Wikipedia on Armstrong:

" _He earned a student flight certificate on his 16th birthday, then soloed later in August; all before he had a driver 's license._"

And he got his MS 15 years after his Bachelors, although it was in aeronautical engineering. As for Aldrin:

" _Buzz Aldrin graduated third in his class at West Point in 1951, with a Bachelor of Science degree in mechanical engineering. He was commissioned as a Second Lieutenant in the United States Air Force...._ "

He got his Sc.D. in astronautics a dozen years later.

I think they had to be both serious pilots and engineers to succeed in the Apollo program, e.g. note Armstrong's diversion from a boulder strewn field during the descent.</comment></comment>


Fun programming in Roy with Turtle Graphics - <AUTHOR> http://turtle-roy.herokuapp.com/

<comment><AUTHOR> A bit of context: yesterday a link was posted to the Robot Turtles kickstarter, and I wondered whether anyone was teaching functional languages to kids instead of imperative ones... then today Brian McKenna mentioned the 'Girls Can't Code' blog [http://girlscantcode.blogspot.fi/2013_09_01_archive.html](http://girlscantcode.blogspot.fi/2013_09_01_archive.html)

... where Juha Paananen describes teaching his daughter to code.</comment>


Bad Security at Evite - <AUTHOR> http://fnord1.blog.ca/2008/06/30/bad-security-at-evite-4382575/

<comment><USER2> Use Anyvite.

<http://anyvite.com>

</comment><comment><USER3> Didn't we have this discussion about password hashing already a few weeks ago?

If someone's snooping on your email, I think you've got bigger problems than a lost password, tbh.

As for hashing, again, if someone can get on the server and download the whole database, you've got bigger problems than password hashing.

I'm not saying this is a good practice, but I just don't think it's as big a problem as this guy is making it out.

Also, there's a balance between security and usability. For some kinds of users, not being able to tell them their password is actually a problem. Sites that are able to do that will have a competitive edge in getting those users. So the question is one of balance between usability and security, not just one of security.

<comment><USER4> I disagree that not being able to tell someone their password is a usability problem. Having a password reset system is just as usable and significantly more secure than having to store passwords in plain text.

And both of your arguments about having bigger problems are fundamentally flawed. Sure, if someone does get your db, you have a big problem, but that doesn't mean you shouldn't take precautions so that if it somehow happens they can't read it like a book. It's kind of like you're saying cars shouldn't have airbags because it's harder to honk the horn and if you do get in an accident, you've got bigger problems.

And someone snooping on your email is as easy as you accessing your webmail on an unencrypted wifi connection. Do you think everyone in the world makes sure they use the ssl version of their webmail in public? Because if not, sniffing packets is trivially easy.

My point is that the situations you mentioned only become bigger problems when you make no effort to protect these things.

<comment><USER5> > Do you think everyone in the world makes sure they use the ssl version of > their webmail in public?

I know techies who don't use GMail who don't bother to explicitly using <https://mail.google.com> \- I don't know why.

<comment><USER6> I didn't realize until recently, but GMail now has an option to automatically use https. It is under <https://mail.google.com/mail/#settings> at the bottom, and is turned off by default.

<comment><USER7> And there was an automated tool released last year to mess with those who don't do that:

[http://www.google.com/search?hl=en&q=https+gmail+cookie+...](http://www.google.com/search?hl=en&q=https+gmail+cookie+hijacking)

</comment></comment></comment></comment></comment><comment><USER8> Evite is willing to sacrifice security for usability. Which makes sense, because it doesn't really matter if someone hacks your Evite account.

<comment><USER9> I don't think hacking the evite account is the problem. With many people using the same password across multiple accounts, getting their evite password may also be giving the password to countless other systems. So they are essentially sacrificing the security of their users, not just their own application.

<comment><USER6> I agree that people do that, and that ideally a website would would not email someone their password for the simple reason that people do recycle passwords.

But, the onus here should really be on the user. If they are careless enough to use the same password for everything, they are indicating that they are willing to trade some security for convenience. In my opinion, emailing users their password is just another security/convenience trade-off. I'd be upset to get my password sent in plantext from my bank, but not an invite website.

</comment></comment></comment><comment><USER10> Sending your password after signup doesn't necessarily mean they're storing it permanently.

<comment><AUTHOR> You're absolutely correct, but in evite's case they are storing them permanently. That's actually the reason I posted this was that I forgot my password and requested a reset (~5 years after signup) and they sent it to me in plain text.

</comment></comment><comment><USER11> Progressive postal-mailed me a letter with password on it when they sent my first insurance cards.

I think some health insurance sites do the same thing.</comment>


Blockchain takes us back to medieval times - <AUTHOR> https://ftalphaville.ft.com/2019/06/14/1560516935000/How-blockchain-takes-us-back-to-medieval-times/ <comment><USER2> This feels like promoted content for the paper, which is hidden behind an lead generation form.

The author is debating using distributed ledgers for security trading, which I don't think anyone is seriously considering. Even if they _are_ , the author is narrowly defining such a system and then attacking it based on it's narrow definition, without exploring the option of other financial instruments filling the gaps. I'm critical of blockchains/distributed ledgers/etc. in finance but this article just seems bizarre, until you try to see the original paper and hit a form wall.

<comment><USER3> Thanks for the summary. The egregious attempts to accrue data these days are getting annoying.

> They author is debating using distributed ledgers for security trading, > which I don't think anyone is seriously considering.

[https://www.tzero.com/](https://www.tzero.com/) You mean like this?

It's interesting the way commentators tend to take all pieces of some random slice of the blockchain space as "the way things are always will be and must be by definition", especially without even seeming to realise that's what they're doing as you say with the example of assuming that you can only possibly use credit rather than debit instruments on a DLT.

</comment></comment><comment><USER4> While I'm in general a blockchain & crypto skeptic- worth noting that FT Alphaville are not arguing in good faith, they are self-proclaimed contrarians who are fanatically anti-tech, anti-tech companies, and in particular anti-US tech companies. They are especially obsessed with blockchain and Tesla/Musk. They churn out 1-2 anti-crypto or anti-Musk or anti-Silicon Valley opinion pieces like this literally every day, apparently for a British finance industry audience. I used to enjoy the blog, but it's veered into anti-tech (and frankly, borderline anti-American tech) zealotry. (None of this is meant to be an endorsement of blockchain, but I can be skeptical while still examining the system in good faith)

<comment><USER5> FT have the same issue with Brexit - woah there! take your mouse of off of that down vote and hear me out!!!

Since the vote came back they have had a constant stream of negative articles both related to the current days events and repeats of what they have said on previous weeks.

Their authors are now at the point that if Brexit does happen, and it is anything less than a total economic apocalypse, they will look like they got it wrong.

</comment></comment><comment><USER6> [http://archive.is/fCr8o](http://archive.is/fCr8o) in case you get the register box like I did

<comment><USER2> Also reformatted at [https://outline.com/7NYFsJ](https://outline.com/7NYFsJ)

<comment><USER7> Outline is wholly inferior to the Internet Archive [1]?

Outline is a private site run by unknown people with unknown motivations. Its privacy policy [2] (a) names no actual person or responsible entity, (b) permits business transfers (implying it's a for-profit entity) and (c) permits changes at Outline's sole discretion.

The Internet Archive, on the other hand, is a nonprofit run by known, reputable people.

[1] [https://archive.org](https://archive.org)

[2] [https://outline.com/privacy.html](https://outline.com/privacy.html)

<comment><USER2> That may be true but they're not really competing for archiving. As an end- user, I prefer an easy-to-read format, and outline is superior in that regard.

<comment><USER8> >>As an end-user, I prefer an easy-to-read format, and outline is superior in that regard.

Quite possibly an alternative/new fundraising channel for the Internet Archive.

</comment></comment></comment></comment></comment><comment><USER9> I do think crypto will allow us to enter a new age feudalism. Companies are building houses on campus, they have cafeterias, they will have their own money. This will all be at the expense of the commons and the nation state. In the process of writing a well thought out piece (by my standards, I'm sure there will be haters) and I'll post in the coming weeks.

<comment><USER10> This is a really interesting line of thought which, coupled with current protections via this idea of corporate personhood, does begin to portray companies as being far above mere workers in power and status.

</comment></comment><comment><USER11> I don't get what this argument is.

Blockchain is software so you can just build layers on top of it that cover whatever business need you may have. If I look at the just the database layer of the current system, it'll also be "medieval" in certain respects.

Maybe blockchain isn't a viable technology, but this article doesn't make a particularly convincing argument against it.

</comment><comment><USER12> There are actually several outfits explicitly dedicated to trading equities (and even mortgages) on blockchain. One of the most advanced is Polymath.io.

The implementation is true blockchain it just isn't completely decentralized blockchain like bitcoin. Instead, trust authorities would establish client accounts after due diligence and KYC and AML requirements had been met. Then those accounts would leverage blockchain to facilitate transactions on a transparent and indelible ledger.

</comment><comment><USER13> 100% reserves on deposits doesn't prevent anyone from making loans. It only prevents them from doing so with demand deposits. For example, they are free to sell bonds - they just can't _force_ depositors to buy bonds unless they choose to.

</comment><comment><USER14> It takes us back because of pre-funding trades. I dont know what the author means...

<comment><USER15> I believe it's referring to the idea that because settlement of transactions happens instantly on blockchain, there is no lag time between a commitment to make a trade, and the trade itself, which means there is no credit, which means much less liquidity in markets.

I read this whitepaper: [http://perspectives.dtcc.com/articles/steampunk- settlement](http://perspectives.dtcc.com/articles/steampunk-settlement)

In it, they mention that there only needs to be deposited cash of something like $8 billion to enable like $250 billion (I may be getting the exact numbers wrong) worth of trades on the NYSE because they can offset trades against each other as they come in and settle the trades hours after they are entered without needing cash at the moment the trade is placed. If cash was required at the moment of placing the order, much, much more cash would be required than is currently required.

<comment><USER16> > _which means there is no credit_

Why not just have explicit credit instead of implicit credit?

<comment><USER15> I'm not really a finance guy, but just off the top of my head, explicit credit requires trust, which mostly defeats the purpose of the blockchain, where you're trying to transact without needing trust.

I also assume that explicit credit is more expensive administratively than the kind of liquidity provided by a clearinghouse. I guess technically the NYSE (or whoever the clearinghouse for the NYSE is) is extending traders credit in the sense that it must believe they are good for the trades they make without requiring them to post full collateral for every trade, so in a way, it is explicit, it's just not bilateral between each pair of traders.

But also, I'm in way over my head here.

<comment><USER17> Once you start to do transactions that involve transfer of anything off- blockchain (ie. any really useful transaction) you still have the same issues with trust and credit as without blockchain or whatever. What blockchain solves is somewhat fast settlement of monetary-ish transfers, which to me looks like a problem that does not really exist. (In my exerience SEPA transfers are mostly instantenuous and generally irreversible)

</comment></comment></comment></comment></comment><comment><USER18> To avoid the oracle problem you are forced to pre-fund you side of the contract with 'real' digital currency. But the financial system moves forward borrowing from the future and creating private money, neither of which is posible if you are forced to show upfront that you have the money to serve your financial obligations. Capitalism is not based on math, it is based on human trust, take that variable out and we are back into a pre-capitalist system, a medieval era.

<comment><USER19> And thus Chainlink! They aim to do just that: fixing the oracle problem

<comment><USER20> Blocknet is also another viable alternative

</comment></comment></comment><comment><USER21> A decentralized self-issued credit system will be the next major form of money after crypto.

<comment><USER22> You mean like IOUs, aka a step above barter?

<comment><USER21> IOU x Barter X Web of Trust X automated market making based on degree of trust in an individual

</comment></comment></comment><comment><USER23> TL;DR: Distributed ledgers don't allow enough circulating cash to make the economy go?

</comment><comment><USER24> Most forms of technolibertarianism are just feudalism with gizmos.</comment>


Tools of the Trade (sites & bookmarklets for web design) - <AUTHOR> http://sachagreif.com/tools-of-the-trade/

<comment><USER2> Thanks great round-up! Do you use all of them on a daily basis??

Wish there were screen captures for each ;)

<comment><AUTHOR> No, I don't really use them on a daily basis. It's more that it's useful to know that such things exist, so that when you do need them you don't waste time scouring the web :)

</comment></comment><comment><USER3> Great list! I would add <http://subtlepatterns.com/></comment>


On the foolishness of "natural language programming" (1979) - <AUTHOR> http://www.cs.utexas.edu/users/EWD/transcriptions/EWD06xx/EWD667.html <comment><USER2> I really like this quote:

> _some still seem to equate "the ease of programming" with the ease of making > undetected mistakes_

Conversely you could say that ease of programming is equal (or at least correlated) with ease of getting confidence of your programs correctness.

On the wider subject of the essay, I do note that languages like APL that really embraced symbolics for expression do not seem to have gained much ground, and on the other hand languages that are light on syntax and use more verbiage like for example Python have been massively popular.

Overall I think the essay also relates to the common idea that naming things is difficult. The names we give our elements of code imbue the "all sorts of nonsense that, when we use our native tongues, are almost impossible to avoid". And how many bugs stem from people making assumptions about things based on their names because the sort of linguistic ambiguity etc that Dijkstra is talking about here?

<comment><USER3> I don't think the concern is whether an operation is called "and" or "&". They are both symbols with unambiguous semantics in the language. Dijkstra is ranting against the idea of programming using natural languages, with all the redundancies and ambiguities this entails.

Perl was actually designed to be closer to the nature of natural languages (despite its reputation as "executable line noise"), and Python was in many ways a reaction _against_ this, by a having less ambiguities and implicit context. "Explicit is better than implicit".

I think Perl and AppleScript were valuable experiments in having programming languages closer to natural language. And what we learnt from the experiment was that we absolutely does _not_ want that.

<comment><USER4> <shudder> AppleScript was my first self-guided investigation into programming, and I gave up. Followed by scripting for web with PHP & JavaScript (which is its own mess). Only with Python was I able to pick up the practice, and then only because my worked moved into accounting—programming language and objectives are closely aligned.

<comment><USER5> On the subject of syntax...

</shudder> ;)

<comment><USER6> Probably should have been <shudder />

</comment></comment></comment></comment></comment><comment><USER7> Computers don't speak any language, they exexute machine code - instructions. From assembly, to C, to python, we never made computers understand any sort of language. We managed to help humans reason about machine code in a manner that is more convinient to us, that is some text that resembles our natural languages. But this is the important part, let me repeat this in a different way: Programming languages aren't stripped down natural languages repurposed for computer interpretation. Programming languages are abstract machine code resembling our natural languages.

The meaning of this is that all programming languages will inherently have features of machine code (even if they are hidden away), else they would be incomplete, unable to perform all the functions we expect a computer to do.

People now look at code as is today, seeing some english-speak that is not completely english and think: hmmm well this looks like english but has some extra syntactic garbage that non-technical people don't understand. What if we removed all these and made the computer understand pure english? Then everyone would be able to program.

And this is the moment that the man forgot he is actually looking at abstract machine code rather than handicapped english.

I find it very interesting that all languages (the ones I've seen at least) that claim to be for non-technical people achive their goal in a veeery limited set of applications. As soon as one needs variables and functions (and that is usually very soon) things get technical fast.

<comment><USER8> But a programming language has 2 purposes: to tell a computer what to do and also to tell a human what the computer does. That's why programming languages are between machine code and human language. Some weighted more one way or the other, but always some kind of balance.

<comment><USER9> No, that's why programming languages have syntax for comments.

<comment><USER10> For that to fulfil the second purpose, fixing a comment would fix the code itself. This obviously doesn't work, so we are back at the beginning: The programming language also has to be somewhat human-readable to be productive.

</comment></comment></comment></comment><comment><USER11> Natural language is adapted for many tens of thousands of years to be used by groups of hunter/gatherers working together on a common task -- which also includes arguing about related things like assumptions and priorities. In that context, physically pointing or showing things is important ("put it _there_ "). As is also non-verbal feedback from expressions on people's faces or by where their eyes are looking. Also, people in the group can ask clarifying questions, like "What did you mean by X?" or "Can you be more specific?". Or the speaker can ask, "Did you understand what I said?" When people try to explain how to do a task without getting immediate feedback on how the receiver is understanding the communication, one can expect that natural language instructions will be missing critical information -- or may also specify unneeded extra information. Ever since I worked in the IBM Speech Research Group circa 2000, I have felt natural speech could be useful in programming -- but it will take a different perspective on how to use natural language as conversation and related creative experimentation to provide a different experience compared to what people are used to doing with conventional programming languages. It might be more akin to some aspects of pair programming perhaps.

That said, a big feature of HyperTalk (used by HyperCard) was that is is closer to natural language than most programming languages. HyperTalk supported various alternate phrasings and also the use of the word "it". And the physical "card" metaphor provided an approachable metaphor for instructions about manipulating stacks. It is sad that Apple essentially killed off HyperCard for most users with various marketing decisions as it was an amazing platform that made programming approachable for many non- programmers. [https://en.wikipedia.org/wiki/HyperTalk](https://en.wikipedia.org/wiki/HyperTalk)

And Inform7 as mentioned by someone else here is another example. Although Inform7 feels more about being read as natural language (when you write is within strict limits) than about being written flexibly as natural language.

<comment><USER12> The HyperCard language, or a relative of it, still lives on in the form of AppleScript but honestly it's a pain to use. The verbosity gets annoying really fast.

HyperCard seems ok to get something basic up and running quickly, but variations on it have existed for decades and never proved popular. I think Excel took over that role as the gateway to programming for many non programmers.

<comment><USER13> The problem with AppleScript isn't the verbosity, it's the fact that the verbosity hides the API path model, which is actually quite brittle, obscure, and poorly documented - possibly because the features were added as an afterthought to the Accessibility framework, and there is no actual Automation API.

You spend a lot of time selecting objects or processes, and the syntax can appear painfully arbitrary with a lot of "Need to know the magic word" code that you can't improvise from scratch - because you don't know the magic word.

The fix would be to expose the API so users can click on any on-screen object, and AppleScript fills in the API path for the object.

There's a utility that sort-of does this, but it's very well-hidden and not at all easy to use.

</comment></comment></comment><comment><USER14> Ah, that's Dijkstra - programming is hard and programmers should _suffer_.

He's right, though. Natural language is for communicating, not describing. When we really need to describe something detailed, we need either visuals or formalism.

<comment><USER15> But there are things that can only be fully described using natural language. Emotions, for example. There aren't any visuals or formalism for those. (And no, emoticons don't count.) On the other hand, description is a form of communication anyway, so I fail to see the distinction that you are trying to make here.

<comment><USER16> Just curious why you suggest emoticons are glyphs insufficient for the communication of intelligence re emotions. They seem an almost incredibly insightful development in orthography. What earlier alphabetic cultures expressed so clearly via visuals interspersed among lithographs the essence of ineffable universal emotions?

<comment><USER15> Because a smile is not an emotion.

<comment><USER16> But are not emoticons smilies?

<comment><USER17> Emoticons are similes for smilies.

</comment></comment></comment></comment></comment></comment><comment><USER18> Google uses a config language called Borg Config Language (BCL). It is an extension of GCL ([https://research.tue.nl/en/studentTheses/gcl- viewer](https://research.tue.nl/en/studentTheses/gcl-viewer) ). GCL was built with ideas from natural language programming. It is extremely difficult to learn and use. Errors are very easy to make and hard to detect. Maintainability is poor.

Some lessons are still unlearned after 40 years.

<comment><USER19> Gherkin/Cucumber/Behave too. All the same problems.

</comment></comment><comment><USER20> For better or worst, reading Dijkstra always reminds of these funny (I think) comments that Alan Kay made in 1997...

"Arrogance in Computer Science is measured in nano-Dijkstras" \--Alan Kay

Video: [https://www.youtube.com/watch?v=9KivesLMncs](https://www.youtube.com/watch?v=9KivesLMncs)

<comment><USER17> [https://www.quora.com/Has-anyone-criticized-Alan- Kay](https://www.quora.com/Has-anyone-criticized-Alan-Kay)

>Has anyone criticized Alan Kay?

>Alan Kay, Had something to do with "Object-Oriented Programming". Answered May 3, 2016.

>As Mark Miller mentioned, Dijkstra once said that "Object-Oriented Programming was such a bad idea that it could only have come from California"! However, he and I were friendly, so I took that as a backhanded compliment. My research group at Xerox Parc was known as "The Lunatic Fringe", usually (I thought) affectionately. I don't count trolls on reddit and slashdot and elsewhere.

[...]

</comment></comment><comment><USER21> I feel Dijkstra kind of undermines himself with the curmudgeonly "kids these days" remark at the end. Still, he makes a very strong historical argument for a broader point than the title suggests--for not being in such a hurry to get rid of formal notation. For some of us, that's preaching to the choir, but I feel like it could be well aimed today at those who think "IT" has no need for "Computer Science".

<comment><USER22> > _I feel Dijkstra kind of undermines himself with the curmudgeonly "kids > these days" remark at the end_

Not necessarily. The idea that "kids" across generations are always either the same or improving across times and cultural changes is an even bigger cliche than "kids these days".

Dijkstra in this, as is made clear from the context, case doesn't even talk about kids (people) in general, but about a specific subset: educated people.

So, while more people get an education than ever, and you could find total illiterates in greater masses in e.g. 1900 than when Dijkstra wrote this, there's also a decline in many aspects between a university graduate of 1950 and a graduate of say 2020. Part of this is because in the 1950 university degrees where rarer, and thus more demanding and elite.

But it can be true even for graduates from colleges that remain highly selective (Yale/Harvard 1950 vs Yale/Harvard 2020).

One example might be a CS degree with C/Assembly or Lisp and SICP vs one with some Java "market-driven" introductions to programming... One makes computer scientists, the other is a glorified job training program...

<comment><USER23> I wouldn't be so sure that that 1950 university degrees were more demanding. More rare and elite, definitely. But it wasn't really intelligence or drive that made sure you could go to university. It was whether your social standing allowed it.

<comment><USER24> My dad borrowed a couple of my engineer books. He said they had more material and harder problems than his old college books did. Also my instructors said they fretted about trying to figure out what to teach out of the ever growing body of work. When my dad went everyone graduated in four years. When I went was more typical to graduate in 5 to 6 years. And they worried that they wouldn't have enough four year students to meet accreditation requirements. Same time I never heard my professor complain about the poor quality of students.

</comment></comment></comment></comment><comment><USER25> In the same sense that the data structures are generally more important than the code, I think the "quality"-axis is around some combination strictness, semantics, and safety rather than the syntax.

I may be outspoken in saying this, but I try to avoid Python wherever possible because - although I like the syntax - I am quite worried about having to trust other humans to enforce semantics rather than a compiler. If something ill-formed is in my program, I want to know about it before it starts running rather than 5 hours into execution. I have the same opinion of C, too.

In an ideal world where we could all sit around and plan our programs from scratch, I would love to program in a pure functional style - but this isn't really possible half the time: I try to minimize as much global (or even local) mutable state as possible, especially now that progress in execution speed is incremental and the growth is probably going to be in our ability to use concurrent execution.

Python is supposed to faster to get going, and maybe it is compared to C++, but even then C++ can express things that can only be done with writing tests in Python (for free). There is a trade-off in that I've spent years honing my skills now, but is it that hard (It's quite hard to be holistic when teaching programming, I'm slightly glad I figured most of it out myself)

</comment><comment><USER26> Maybe natural language should become more like programming languages instead of the other way around. I suppose this could be especially useful in e.g. legal circles, where ambiguities are problematic.

<comment><USER27> Maybe not this extreme, but we can use natural language as more like programming languages (by reducing vagueness).

Corollary of this: we should mandate that politicians and officials all learn programming language and speak rather like programmers, so that they can say less BS.

<comment><USER28> > we should mandate that politicians and officials all learn programming > language and speak rather like programmers, so that they can say less BS.

I've rarely met anyone who uses natural language as imprecisely as most programmers, so I'm not sure that you want what you literally describe.

Also, politicians (at least in the US) are disproportionately lawyers, who happen to be professionally trained in the precise use of natural language. They often use this, when they aren't outright lying, to say things that make very different commitments than casual listeners not themselves trained in the precise use and interpretation of natural language will initially interpret, so what you really need is to train their _audience_ in critical listening.

<comment><USER19> >I've rarely met anyone who uses natural language as imprecisely as most programmers

I've rarely met a good programmer that didn't communicate with precision.

Ive met lots of bad programmers who write unreadable code though, who couldnt communicate clearly by speech or writing either.

</comment></comment></comment></comment><comment><USER29> Natural language is so opaque term. You need to establish context (vocabulary, relations, rules) if you want to pass some information to another person. The same phrase could have different meanings in different context. And from this point programming language is just another context.

</comment><comment><USER30> If curious see also

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

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

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

</comment><comment><USER31> _> It may be illuminating to try to imagine what would have happened if, right from the start our native tongue would have been the only vehicle for the input into and the output from our information processing equipment. My considered guess is that history would, in a sense, have repeated itself, and that computer science would consist mainly of the indeed black art how to bootstrap from there to a sufficiently well-defined formal system. We would need all the intellect in the world to get the interface narrow enough to be usable, and, in view of the history of mankind, it may not be overly pessimistic to guess that to do the job well enough would require again a few thousand years._

This is highly relevant now that we have information processing systems that can be -- and are being -- programmed in our native tongue, or natural language, such as GPT-3.

</comment><comment><USER32> inform 7 is an example of programming in natural language. It specializes in solving a single problem and being more of a set of statements than a place to write algorithms. Even so, ambiguity problems in writing are complex and require constant consultations with the documentation to know which sentence is valid for which situation.

<comment><USER33> Inform 7 is a natural language DSL for a rather narrow domain (interactive fiction). Dijkstra's discussion in this letter is probably from the general (at the time and recurring) discussion of general purpose natural language programming. That is an important distinction to keep in mind.

</comment></comment><comment><USER34> Natural language is designed for describing state of natural objects and events. Traditional programming is so much more abstract. It's super hard to describe what is an array or dictionary. Two people can agree how heavy an apple may be but they could not agree what exactly is an array. We grow up interacting with apple and its what nature designed for us. We don't grow up talking about arrays, they are purely imaginary abstract concept. This is why it is very hard to write quickshort algorithm in English than it is in pseudocode.

But things are changin now. It is increasingly possible to take natural language constructs that can compose low level primitives through _program synthesis_. That is, AI can write lower level while we dictact higher level.

</comment><comment><USER35> Natural language is ambiguous, sure, but natural-language programming already exists. I suspect most readers of HN are already very familiar with it.

Dijkstra is of course right that you can't replace the precision of formal languages. Precision allows you to "one-shot" a spec. For simplicity, consider just machine code. A compiled program, given to the right machine, is a sort of message that can be delivered unidirectionally and understood perfectly. From the perspective of natural languages, that is nothing short of a miracle. Can you think of a case where you said something mildly complex and were understood perfectly, the first time, without questions and clarification?

To drop the need for formality and precision then, the tradeoff is this: we must program by conversation; the compiler must be able to talk back and collaborate with the programmer to "discover" the program spec. This is not talking back in the sense of waiting for input or mouse events--at that point we are already running the fully compiled program. Remember, this conversation is replacing the work of writing the program. We want something that substitutes for the information content of the compiled binary, that "single message" I can send to a computer to tell it unambiguously what to do.

Programming by conversation ends up being a kind of iterative programming by trial-and-correction. \- Programmer says, "I my windows to automatically close when it's raining, and open when the sky is blue." \- Compiler: "I can almost do that, but what about when it's both raining and the sky has patches of blue?" \- Programmer: "That can happen?" \- Compiler: "It's kind of counterintuitive, but it happens occasonally" \- Programmer: "Well when that happens just keep the windows closed" \- Compiler: "Ok, but what about-" \- Programmer interrupts: "Do the other edge cases happen often?" \- Compiler: "Maybe 0.1% of the time." \- Programmer: "Ignore them and just let the system crash and call for help--I can just come work the windows myself those days" \- Compiler: "Sure, I'll just need to ziptie a few motors to the windows like so, and-" \- Programmer: "Whoa whoa, can't we make it prettier?" \- Compiler: "I guess... gonna take a while though" \- Programmer: "Oh, well I'm in a hurry. Ziptied motors it is!" \- Compiler: "Ziptied motors it is!"

You've seen this conversation before. You've had this conversation before. You've met and interacted with programmers who use this "natural language programming language".

We call these programmers "Product Managers". You are deeply familiar with natural language programming, because you are the first compile-step in the build chain. You, the "programmer", are a very-high-level conversational code editor.

Joking aside, any "natural language programming language" would probably need to operate in some kind of conversation format. Still probably immensely complex to build, and Dijkstra's point about ease of expression stands strong --some things are much, much faster to say in formal language rather than by having a slow conversation that whittles away the ambiguities, and it increases the amount of work from both Programmer and Compiler (conversations take mental energy!). But whittle away ambiguities we nonetheless can. Building a synthetic programmer is certainly a very far away goal, but "foolish"? Maybe, maybe not.

</comment><comment><USER36> It's great how far English has come from this kind of terrible writing. It's indirect, condescending, and hard to follow. We've become more direct speakers and looking back at this is a great example of how not to write.

<comment><USER37> I wish more people wrote as clearly and directly as Dijkstra.

You must know a lot of literary geniuses, because I don't know many who come anywhere close to it.

</comment></comment><comment><USER38> This was a fascinating read

</comment><comment><USER39> > it has been proposed (to try) to design machines that we could instruct in > our native tongues. this would, admittedly, make the machines much more > complicated, but, it was argued, by letting the machine carry a larger share > of the burden, life would become easier for us.

> I suspect that machines to be programmed in our native tongues - be it > Dutch, English, American, French, German, or Swahili - are as damned > difficult to make as they would be to use.

Seems to me there's a intermediate step here that's worth mentioning: formal specification languages, such as _Z notation_ and _Event-B_ , which let us precisely describe our problem. [0] If you want a 'compiler' to be able to deal with a natural language request like _Give me a C function that sorts an array of uint32_t, of arbitrary length, in place_ , you have two challenges:

1\. Automatically map the natural language problem-description to a precise formal specification of the problem, in a language like Event-B.

2\. Automatically map the formal spec to an efficient and correct implementation in C. (This is called _refinement_. For an example, see [1].)

Formal specification languages are rarely used in today's software engineering, but it would make sense to use one in an automated system, to separate out these two very different challenges. (Needless to say, automating either of these stages is enormously challenging, and we're nowhere near accomplishing either of them.)

Ideally, stage 1 would warn or error about the ambiguity in the example request: most likely the user wants an ascending ordering, but this should be made explicit in the request.

Would such a system be _useful_? I think the answer is yes regardless of what precisely is meant. I don't share Dijkstra's concerns. We already know it's possible for _humans_ to do effective software engineering, and the question here is really one of what an automated system would have to do to compete with that. Managers already make software happen using natural language! I don't think a comparison to attempts at spoken-word mathematics are all that relevant.

A computer simulation of a skilled software engineer, including being a good conversationalist with requirements-engineering skills and the ability to absorb domain knowledge, would be useful by definition, and would put software engineers out of a job at a stroke. Would it be useful to have the weaker system Dijkstra describes, that 'compiles' a natural language specification? Seems clear enough that it would, as much human effort is currently spent doing this. Assuming the system works well, and isn't unworkably pedantic or obtuse, it would still be extremely valuable.

> As a result of the educational trend away from intellectual discipline, the > last decades have shown in the Western world a sharp decline of people's > mastery of their own language

Is this actually true, or is this one of those _back in my day children were respectful_ things?

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

[1] See chapter 7 of this large PDF: [https://eprints.soton.ac.uk/422225/1/Thesis.pdf](https://eprints.soton.ac.uk/422225/1/Thesis.pdf)

</comment><comment><USER40> I find that Dijkstra's essays often rub me the wrong way. He readily admits that high-level programming languages are a huge improvement over machine code, and then says (I'm paraphrasing) "BUT YOU MUST NOT TRY TO GO FURTHER". What?! That's just crass!

Here it's like he's buried his head in a bucket of sand ensconced safely in his ivory tower, never having to interact with real people who have real desires for real things that could be solved with real programs if only baking apple pies from scratch didn't first require inventing the universe.

The first two sentences show this well, where he conflates dreaming of a more interesting future with blaming the machine for being just a machine.

> _They blamed the mechanical slave for its strict obedience_

They just want a more forgiving interface that makes developing programs easier and they're probably frustrated that it doesn't exist. That's not the same as blaming the machine. Like, at all. That's blaming _us_ for making obscene devices that you can't program without a fuck ton of training and practice.

How has one of the fathers of modern computer programming forgotten about the value of layers of abstraction and interactive feedback?

He's dismissing the very same drive that causes us to write libraries and wizards and not just programs. It's the reason why we can now just magic up GUI windows and shit without having to think _at_ _all_ about what it actually means to construct blobs of pixels that can resize and move around and scroll and receive clicks and blink and marquee and and and. It's why we can now send an email to our friend Jeff in one line of new code and have it actually work, because there are thousands of other lines of code behind the scenes doing the work for us that we don't have to even think about most of the time.

Would it really be so bad to try to keep going further down that road? To add abstractions for using real human sentences as well?

Would it be so terrible if we could one day say "make a window called 'my window', and put a button in the lower left, and when I click on it play a trumpet sound" (with default behaviors for size and padding and fonts and stupid shit like that that normal people don't actually care about) instead of having to copypaste a thousand lines of greek from some website?

Is it really so hard to imagine that a billion people are newly able to satisfy a billion simple desires over night every time we remove a small piece of that _need_ for always using bullshit symbols with unhelpful machines? That "but it won't automatically be precisely X" is a stupid programmer thing that only programmers say?

Is it hard to do? Yes. Would it be bad if we did it? Wtf, no.

<comment><USER12> I think you're mischaracterising his argument. His problem isn't with further layers of abstraction, it's with people complaining that those layers of abstraction still need to be strictly and unambiguously defined.

<comment><USER40> Except that the higher up you get with your needs, regular person needs, where instead of constructing universes from subatomic particles you place pre-fab buildings, the less ambiguity matters. If I want, say, a window that adheres to the standards of the system and don't want to fuck about with fiddly shit that only programmers care about, the amount of acceptable ambiguity in the directive should be much higher.

Because, for one thing, if my cognitive requirement is transformed from a thousand directives to one higher order directive, I suddenly have energy and time for clarifying dialogue and exploration of presented options.

Like...right now I can google "email program" and be recommended an email program to download where I just click a button and suddenly I have a new email program installed. And that's even with google trying to organize literally everything being said online and being constantly bombarded by blogspammers and other malicious actors. It should not be horrifying to anyone to desire being able to program computers that way too.

</comment></comment></comment><comment><USER41> Bookmarking this to point rubyistas at.

</comment><comment><USER42> Ironically, natural language makes finding documentation extremely difficult. If you're SQL problem revolves around the keywords "USING", "HAVING", or "WHERE", Bing is going to really struggle to find you results. If, instead, you're looking for strcpy, nearly every result will be relevant with little effort.

<comment><USER43> I just went to bing.com and typed `sql using` into the search box. The results were relevant. I tried again with google and duckduckgo. Same. I wonder if perhaps you are overestimating the difficulty here.

<comment><USER42> Easy searches like that will work but you never need help on the easy queries. It's in the complex queries with keywords modifying keywords where the issue arises.

<comment><USER44> I have yet to succeed in getting my search engine to help me with debugging something like:

      colordiff -d -c3 <(wget -U "" -O /dev/stdout "https://www.microsoft.com/en-gb/servicesagreement/" | tidy) <(wget -U "" -O /dev/stdout "https://www.microsoft.com/en-gb/servicesagreement/upcoming.aspx" | tidy) | less -R

SQL statements have the same problem; it's not their use of English-like words, it's the fact that SQL statements are _programs_ and not mere _commands_.</comment></comment></comment></comment>


Big data natively on Kubernetes? Spark scheduled by k8s, Kafka on etcd without ZK - <AUTHOR> https://banzaicloud.com/blog/spark-k8s/ <comment><USER2> Is this compatible with Spark 2.2 version? What are the storage options if we don't want to use HDFS?

<comment><USER3> All the storage options supported by Spark are available when running on Kubernetes. You can use blob storage (S3, WASB, etc) or volumes (by k8spersistent volume claims for such as AWS EBS, GCE PD, Azure Disk, Cinder volume, etc). I've heard some folk use Minio or Rook

</comment></comment><comment> svetlana-palto We are running big data workloads on Kubernetes on GKE and love that we can reuse the same cluster for our other applications. We were waiting for YARN support for containers but it's immature and still more like a roadmap thus we have moved away and now schedule with k8s. It's a pity that EKS is not released yet, as we were running Spark on EMR but now we have moveinb to GKE. Anybody has experience with ACS?

<comment><AUTHOR> +1 for EKS. Is Azure ACS still there? We use AKS on Azure, though it's preview but apart from some limitations (and odd cluster delete stuck) it works well for us.</comment></comment>


40 Years of Zen - <AUTHOR> https://www.40yearsofzen.com/about <comment><USER2> "And now I'm offering the same gift to you."

At $15k, how does this constitute a "gift"?

</comment><comment><USER3> And coffee's included!</comment>


Fossil fuel subsidies reach US$87B in EU countries – and they're growing - <AUTHOR> https://theconversation.com/fossil-fuel-subsidies-reach-us-87-billion-in-eu-countries-and-theyre-growing-123733 <comment><USER2> And yet people complain about subsidies for renewable generators and electric cars/trucks :-/</comment>


NSA Storing Internet Data, Social Networking Data, on Pretty Much Everybody - <AUTHOR> https://www.schneier.com/blog/archives/2013/10/nsa_storing_int.html

<comment><USER2> The NSA probably is building profiles on many people. But so are Google, Facebook, etc. The real problem is not the NSA (well, not just the NSA) - it's the inherent design of the internet. We're trying to live private lives on public networks, and we're going to have to go through some serious growing pains before that is resolved.

<comment><USER3> Facebook might be just as black-hearted about your privacy, but thankfully they don't have the heads of the IRS or DEA on speed dial.

</comment></comment><comment><USER4> So this government shutdown seems to have no effect on the NSA.

[http://www.huffingtonpost.com/norman-solomon/the-nsa- deserve...](http://www.huffingtonpost.com/norman-solomon/the-nsa-deserves-a- perman_b_4017195.html)

<comment><USER5> Did it?

[http://www.northeastern.edu/research/raf/files/NSA-Govt- Shut...](http://www.northeastern.edu/research/raf/files/NSA-Govt-Shutdown.pdf)

<comment><USER6> Is there a mirror for this?

</comment></comment></comment><comment><USER7> Anybody looked at [http://www.dailydot.com/politics/flowchart-avoid-nsa- online/](http://www.dailydot.com/politics/flowchart-avoid-nsa-online/) (linked by Schneier in the blog post)?

Isn't that a little drastic? The fact that my 4096-bit-gpg-encrypted mail has been stored by them doesn't mean my communication is pwned: the idea with strong encryption is exactly you cannot trust the transmission channel! And besides it doesn't take in account OTR for chat.

<comment><USER8> > The fact that my 4096-bit-gpg-encrypted mail has been stored by them doesn't > mean my communication is pwned...

Maybe not today. Maybe not tomorrow. However, if they ever manage to get hold of your secret key (or crack the encryption scheme you're using), they'll be able to decrypt and read all your old email.

How safe is your secret key? Is it on a computer than you connect to the Internet with? How do you know it hasn't already been purloined by malware? Have you ever left it alone at home or in a hotel room? Or carried it through an international border?

As for GPG, how do you know the NSA haven't been multiplying every single number together with every other single number for the past forty years to build a gigantic rainbow table that they just have to grep through to find the factors of any number?

      $ grep 4294967296 products.txt | head -20
      65536 x 65536 = 4294967296
      131072 x 32768 = 4294967296
      262144 x 16384 = 4294967296
      524288 x 8192 = 4294967296
      1048576 x 4096 = 4294967296
      2097152 x 2048 = 4294967296
      4194304 x 1024 = 4294967296
      8388608 x 512 = 4294967296
      16777216 x 256 = 4294967296
      33554432 x 128 = 4294967296
      67108864 x 64 = 4294967296
      134217728 x 32 = 4294967296
      268435456 x 16 = 4294967296
      536870912 x 8 = 4294967296
      1073741824 x 4 = 4294967296
      2147483648 x 2 = 4294967296
      4294967296 x 2 = 8589934592
      4294967296 x 3 = 12884901888
      4294967296 x 4 = 17179869184
      4294967296 x 5 = 21474836480
      $

Are you paranoid yet? ;-)

PS: Yes, yes, I know... _sigh_

</comment></comment><comment><USER9> Alexander must be indicted immediately for anyone to regain ANY trust in the NSA.

Alexander is a criminal, however, so is Holder, Pelosi, Cheney, Bush, Powell, Obama, etc etc etc etc....

</comment><comment><USER9> The idea of Total Informational Awareness has been shouted about for ___years_ __. there is only __ _ONE_ __next step: stand up against the NSA in entirety. We must make a move that is truly going to force reform.

<comment><USER10> If people believed the NSA was running the free porn sites, there would be mutiny fo sho!

Edit - No one cares until they're hit where it hurts.

<comment><USER9> [http://www.scribd.com/doc/116008498/Cover- up-5200-Pentagon-P...](http://www.scribd.com/doc/116008498/Cover- up-5200-Pentagon-Pedophiles-Caught-Downloading-Kiddie-Porn)

</comment></comment></comment><comment><USER11> So, where is it stored?

</comment><comment><USER12> Thanks, captain!

</comment><comment><USER10> Some people owe me up-votes for all those down-votes they gave me six+ months ago when I stated one must assume a zero privacy environment when engaging technology today.

I'm just happy I knew what the Internet was like before mosaic and the www emerged. It seems so quaint now.

Edit - How long until people ditch their Black Amex cards and go back to cash for some privacy restored? A short decade ago it wasn't so uncommon to carry a few bucks. How many people really want banks and the government knowing all of their consumption habits in addition to the timing of their consumption?

All in the name of fraud prevention! Just carry a few bucks and no worries again!

<comment><USER13> Data Mining Guy won't put hamburgers on his CC, says insurance companies will eventually retaliate: [http://www.economist.com/node/21556263](http://www.economist.com/node/21556263)

<comment><USER14> Can't we turn the tables on them if we know what's going on?

1) Take out life insurance policy.

2) Pay with credit card at McDonald's and the bar.

3) Get a bunch of speeding tickets.

4) Sell policy to a data mining firm that hopes I die soon.

5) Profit!

</comment></comment></comment><comment><USER15> > We have to assume that the NSA has everyone who uses electronic > communications under constant surveillance.

We don't have to assume anything except that which is provided by evidence. If you have the evidence, then allow it to present itself. Assumption leads to conspiracy theory and inaccurate information. I really don't think that's what this cause really needs.

Is it just me or does Bruce Schneier's posts read more like propaganda than journalism? It's pretty awful and I'm surprised HN is eating it up. He tip toes on fear mongering through exaggeration, e.g. in OP getting people more hyped up and fearful of the NSA because they're tracking EVERYONE... except, it's only an assumption. Calls to action should not be based on assumptions.

<comment><USER16> Oh brother, its as if some people have learned nothing from the last 6 months (or are actively shilling... apparently you only comment on NSA stories).

When it comes to your personal privacy and security, you must assume that anything that is reasonably possible is being carried out by your adversaries. The recent leaks prove that the NSA will do absolutely anything within its power to further its goal of total information awareness.

All of the NSA revelations could have been predicted (and were predicted) by anyone with some technological skill and a little bit of foresight. If you wait until proof is presented to you, _you have already lost; your privacy and security have already been compromised_. The game is to think ahead and protect yourself from all possible current and future attacks. There are some people who's very freedom depends on such foresight.

<comment><USER17> In another context jonnybgood might instead be called a "skeptic" or perhaps even "capable of applying critical thinking skills" rather than dismissed as a "shill". Instead of mocking him for not paying attention over the last 6 months, you should go back and examine all of the leaked documents. You'll note that they speak quite a bit to the capabilities of the NSA, but don't reveal much about who they're targeting, why and what the ultimate goal of targeting would be. If you disagree, I challenge you to actual provide a leaked document that shows the NSA is specifically targeting ordinary citizens like the GP was calling for, rather than a secondary article from Greenwald, Schneier, etc., that makes broad assertions that because a spying agency with collecting foreign intelligence has the technical capability to conduct the most invasive possible infractions on the privacy of people it is not charged with collecting against, they must indeed be doing so. Your armed local police force has the technical capability of detaining citizens indiscriminately without regard to whether or not they violated the law, then summarily executing them without trial. That doesn't mean that's their job.

<comment><USER16> In another context skepticism would be warranted. This isn't such a context. The very nature of the problem of securing one's privacy demands the type of anticipatory thinking I describe. Skepticism that johnnybgood is advocating is a losing strategy from the start.

<comment><USER17> I agree - securing one's privacy is an incredibly important problem. That said, none of the leaks show any technology that wasn't publicly known beforehand (e.g.: packet sniffing, man-in-the-middle attacks, stored personal records obtained from internet/telecommunications companies, etc.). The fact that these are used on a much larger scale might be surprising to some, but not novel. We've known for a long time that large, well-funded intelligence organizations operate on a much larger scale than any lone or small group of hackers could. If you worry about your privacy on the internet, the solutions to these problems were known beforehand (e.g.: encrypt your traffic, authenticate those you communicate with, limit personal data stored in the cloud, etc.).

Claiming that the NSA is an active threat to the privacy of Americans without the evidence to back it up is counter-productive. Schneier himself has written quite a bit about the importance of properly identifying your threats in the process of establishing good security. I guarantee that spokeo.com and similar sites have more dossiers on Americans that the NSA does, and I'd be willing to bet that information from those sites have been used more frequently for nefarious purposes against ordinary citizens. The NSA has the capability to target you - this leads to overblown articles making the leap from "the NSA collects massive amounts of metadata" to "the NSA collects massive amounts of American's metadata", incendiary discussion forums calling for the immediate shutdown of the NSA, imprisonment of top NSA officials, fear mongering about the NSA brought up in situations that have nothing to do surveillance, etc. What they don't have is the motive (seeing as how they're an agency charged with the gathering of foreign intelligence) or legal authority to spy on Americans. The evidence stating that they are actively spying on Americans just isn't there. Until credible evidence shows that NSA is invading the privacy of ordinary people, I'm going to worry about the credible threats.

It creeps me out that I can Google my name and find 6 different websites willing to sell me my current and previous addresses, e-mail address, phone numbers, names of family members, etc. that they harvested from public records; it bothers me that anyone with a Pineapple device can trick my cell phone into connecting to actively hostile network if I forget to turn off the Wifi; it bothers me that I can turn on Collusion in Firefox and see that my browsing activity is reported to 40 different companies across every web page I surf to unless I turn off Javascript and frequently delete all of my cookies; it scares me that I get spam e-mail sent from the compromised accounts of people I know personally that tries to redirect me to malicious web sites; two years ago someone got my debit card number and pulled a little over $2000 out of a bank in Shenzhen - I worry about the security of sites I purchase from over the internet, which ATMs I draw from, what that waiter is doing when he disappears after I hand him my card. I consider myself a pretty paranoid person. At this point I don't feel threatened by the NSA (if I worked for a foreign government I would probably have a different opinion).

I'm going to continue using every reasonable means to protect the privacy and integrity of data. I'm not going to do it because of the NSA - I'm going to do it because the internet is a security nightmare, and there are lots of people out there who would do lots of things to my data without any regard to my well being.

<comment><USER16> Out of all the threats you mentioned, the NSA is the only one that can imprison me if it decides I've done something it doesn't like. The worst part is that the data they're collecting can be used retroactively X years down the line if the government so chooses to. And this herein lies the danger. You may trust your government _now_ to use the information they gather legitimately, but do you trust it indefinitely? You shouldn't _in principle_ , even ignoring all the practical reasons that the government has shown itself incapable of using such power only for good.

BTW, it has been revealed that the government stores information indiscriminately; but only through a court order or some other "probably cause" will they actively search the records of an American communicating with another American. This information is also stored for X amount of years (i've heard various years cited, from 2 to 10). Using encryption also flags your communication as "potentially foreign" and thus open to analysis. It was also unclear from the articles I've read whether internet metadata is covered under privacy laws. Massive amounts of information regarding individuals can be mined from just web addresses. So yes, Americans are targeted in the laymen sense of the word. Sure, the NSA has legalese that they use to justify how their actions don't target Americans, but its pretty transparent.

So yeah, go ahead and worry about the threat of someone finding an old address of yours. I'll continue to worry about the orwellian surveillance state that is being constructed right before our eyes.

<comment><USER17> The NSA is not a law-enforcement agency. Unless we find credible evidence otherwise, I'm going to continue operating under the assumption that there is no click-here-to-send-this-person-to-jail button at the NSA. To be handed a jail sentence as a result of NSA spying, the process looks more like this: \- NSA analyst stumbles across you, most likely in the course of pursuing a foreign intelligence target, but maybe as part of a vast domestic spying program as some believe (I haven't seen enough credible evidence to believe this)

\- NSA analyst finds credible evidence within that collection to suggest that you were engaged in criminal activity

\- NSA is able to convince the FBI (or other legitimate law enforcement agency) that you were engaged in criminal activty

\- The FBI opens an investigation into you; if preliminary investigation yields suspicion, they request a warrant from a judge to gather more information

\- If the FBI finds sufficient evidence of a crime, they obtain a warrant for your arrest and detain you for trial

\- Evidence independently obtained by the FBI is presented to a jury of your peers. As of yet, there's no precedent for admitting evidence by the NSA. To the court it's the equivalent of an anonymous tip, and the NSA has a history of not wanting to reveal its sources and methods anyways.

\- A jury of your peers decides whether or not you are guilty of a crime. A judge sentences you.

So yes, you can get sent to prison based on NSA spying. It's a long process with independent review by multiple parties. I'll be very concerned regarding this process if the first step is broken, which is what everyone is up in arms over. I don't see the evidence yet that this step is broken, or even applicable in most cases [1].

Why am I afraid of people getting my addresses, phone numbers, etc.? My wife testified to put a violent man in prison some years ago. As a result, I have more concern than most that there are people who would want to do my family harm. I don't like that $15 will tell you where my wife, kids and I sleep at night or give contact information to harass us. Old information would allow someone to take out a line of credit in my name, leaving me to sort out the financial mess. Other people I know in legal and law enforcement positions are accutely aware of the threat of being retaliated against outside the courts for perceived wrongs.

[1] I have to run to work, and I'd be insulting your argument if I just left it at that - I'll write up an explanation of my views on the Section 215 collect when I get home. I appreciate the discussion - thank you for actually giving thoughtful answer rather than just a snide remark dismissing me.</comment></comment></comment></comment></comment></comment></comment>


Show HN: AnnounceKit – Announce updates and news to your users - <AUTHOR> https://announcekit.app <comment><AUTHOR> Hi! I'm one of those who made AnnounceKit.

We have a couple of SaaS services. We'd have users ask if the services are actively developed, if we would abandon them etc. I guess a lot of people got bitten by things disappearing under their feet. Decided that having an easily accessible changelog / news section shows activity. Also makes it easier for users to keep up with new features etc. So we launched AnnounceKit.

I'd love to hear any criticism, ideas about the landing page and the service itself.</comment>


Snowflake macro photography (2013) - <AUTHOR> https://chaoticmind75.blogspot.com/2013/08/my-technique-for-snowflakes-shooting.html <comment><USER3> Feel free to see all of his photos at [https://www.flickr.com/photos/alexey_kljatov](https://www.flickr.com/photos/alexey_kljatov)

I'm more than mesmerized by his work; just stunning, I'm in complete awe!

<comment><USER4> I forget the name, but there's a great documentary about the man and methods who got it all started. Wilson 'Snowflake' Bentley was the man and, as I recall, he got some help from his wife and went to great lengths to take his pictures.

This was back in the 1860s and very difficult. The Smithsonian has some of his works on display. It is great how accessible this has become. I find them fascinating but I'm very biased. I have quite an extreme love of snow.

<comment><USER5> I found this short about him, did the job for me, fascinating person - <USER2> for the heads up.

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

</comment></comment></comment><comment><USER6> It's nice when people get simple tools to do great work. The PowerShot A650 is a decade old point-and-shoot. He's installed a custom OS to get RAW support, and averaged several photos together to reduce noise, and what a great result. An EOS 5D wouldn't do much better.

<comment><USER7> Is it possible that a high quality camera with a small sensor could actually be preferable to a full frame camera like a 5D in this particular case? My thinking is that it might be hard to get more than a sliver of the image in focus with a full frame camera. Does anyone with more experience know if this is true?

<comment><USER8> I don't really know about focus difficulty, but I calculated the 35mm equivalent of the PowerShot A650 at 6x and it's 200mm. That long of a lens could be pretty awkward to work with, for a start (I still want to try it, my APS-C camera would need only a 140mm lens to get the same zoom, besides the external optics of course).

<comment><USER9> I used to use a 200mm lens with a reversed 50mm on a Nikon D70, and the focus is difficult. It sounds like the photographer here is using a sort of "spray and pray" technique and using focus-stacking software later.

You actually don't need the telephoto, though. You can get a reversing ring that mounts a prime lens directly to the camera. I took this using a 50mm lens on a full frame body, no focus stacking: [https://c1.staticflickr.com/1/498/19387253482_cfdb183b3a_c.j...](https://c1.staticflickr.com/1/498/19387253482_cfdb183b3a_c.jpg)

If you use a shorter focal length lens, you'll get a higher magnification. I've used a 28mm in the past but wasn't very happy with the image quality.

</comment></comment></comment></comment><comment><USER10> Question: What makes snowflakes symmetrical?

<comment><USER11> I was wondering the same thing. Part of it may be selection bias, though.

<comment><USER12> Sexual selection favors the symmetrical ones?

<comment><USER11> ;)

Selection by the photographer might create the impression of a more prevalent, more perfect symmetry than appears in nature.

</comment></comment></comment></comment><comment><USER13> Beautiful.

Reminds me of Wilson Bentley's old photos: [https://en.wikipedia.org/wiki/Wilson_Bentley](https://en.wikipedia.org/wiki/Wilson_Bentley)

</comment><comment> blubb-fish It is incredible how complex water is. Chemically it is a super-simple molecule. For me this is a reminder that in nature even the most simple- seeming "things" will turn out to be unbelievably complex if researched or observed more closely. Like when physicists believed that they solved physics in the late 19th century - b/c it was just about solving some math problems revolving around Newton mechanics. Nature is consistently always being surprising - always.

</comment><comment><USER14> Wow! These images are perfect for a coffee table book. The thin film interference colors are amazing!

<comment><USER4> He does sell prints but, as far as I know, doesn't have a whole book out. I suppose you could email him and ask him to consider it?

In the meantime, you may be interested in this:

[https://www.amazon.com/Art-Snowflake-Photographic- Album/dp/0...](https://www.amazon.com/Art-Snowflake-Photographic- Album/dp/076034700X)

</comment></comment><comment><USER15> Such a relief to see the word in a headline with its actual meaning.

Plus, the pictures are sublime.

</comment><comment><USER16> I wonder if you could improve the pollen image using super-resolution techniques Shouldn't be too difficult, just requires a several images (stacks in this case) from slightly shifted viewpoints.

</comment><comment><USER17> Kenneth G. Libbrecht snowflake photo collection is another good one: [http://www.its.caltech.edu/~atomic/snowcrystals/photos3/phot...](http://www.its.caltech.edu/~atomic/snowcrystals/photos3/photos3-old.htm) ; [http://snowcrystals.com/](http://snowcrystals.com/)

</comment><comment><USER18> Incredible pictures, and fantastic to see the method documented so well.

I'd read about doing the reverse-lens thing but never seen a setup and couldn't imagine how it'd work.

Also, the description of his post-processing is revealing. Great to see how much work goes into pictures like that.

<comment><USER19> affirmative, i see it pass by about every year since 2013, i still look at them with as much amazement as i did in 2013.

A reverser ring for a e.g. 50mm to do macro is quite common in photography. Extender rings work quite nice too, though depth of field becomes mega- shallow, so for any significant object, you will need to resort to image stacking to get a properly focused subject.

</comment></comment><comment><USER20> I most impressed by the "less is more" category of photos he took. The clean lines, simplicity of shapes while maintaining enough contrast to be beautiful is just astounding. Had no idea that these kind of shapes happened with snowflakes.

</comment><comment><USER21> If nature had a logo, it must have hexagon.

<comment><USER22> Or "Enigma".

[https://farm8.staticflickr.com/7616/16857912678_239dc8dee5_o...](https://farm8.staticflickr.com/7616/16857912678_239dc8dee5_o.jpg)

</comment></comment><comment><USER23> It's nice when people get simple tools to do great work.

</comment><comment><USER24> No lie, this was a fantastic way to start my day.

</comment><comment><USER25> These are just the most beautiful pictures.

</comment><comment><USER26> I have achieved similar results photographing snowflakes w/ an iPhone 4S and a macro lense I bought for $5 at the Walmart checkout isle.

<comment><USER27> Show us then.

<comment><USER26> Here's one from a few years ago:

[https://m.imgur.com/a/0PZFM](https://m.imgur.com/a/0PZFM)

</comment></comment></comment><comment><USER28> Wow, beautiful nature.

</comment><comment><USER29> That is a horrific site to navigate on mobile.

<comment><USER30> Yeah, very flaky.

<comment> sid- very snowflaky :)

<comment><USER31> I see what you did there...

</comment></comment></comment></comment><comment><USER32> Needs a (2013)</comment>