F# Versus Microsoft's Regex. A Lesson in Types - <AUTHOR> http://www.whattofix.com/blog/archives/2010/07/f-versus-micros.php

<comment><USER2> F# is one of the hidden jewels of the .NET platform, I really hope they give it first class support like C# and VB.NET.

</comment><comment><USER3> Wow, F#'s backwards function composition is confusing!

<comment><USER2> I didn't see the function composition operator in there, I saw a lot of use of the pipe operator (|>), F# does have backwards function composition but it is the << operator. Function composition is >>. You can also define new operators or redefine operators in F#.

The annoying upshot of this is that bitwise operations in F# use three character operators &&&, |||, ^^^, <<<, >>> which is weird coming from an imperative background.

They use this feature for dynamic invocation on the DLR (.NET 4.0), so to invoke foo() dynamically on bar you'd write bar?foo instead of bar.foo

Speaking of regexes and operators, if you're a fan of perl or ruby you can do the following:

let (=~) text pattern = Regex.IsMatch(text,pattern)

or for maximum F# goodness

let (=~) text pattern = Regex.Matches(text,pattern) |> (fun matches -> match matches.Length with 0 -> None | _ -> Some(matches))</comment></comment>


Opinionated secrets management that helps us sleep at night - <AUTHOR> https://betterment.engineering/shhhhh-its-a-secret-ba75ae001151 <comment><USER2> nice. thanks for sharing.</comment>


Stolen Uber Customer Accounts Are for Sale on the Dark Web for $1 - <AUTHOR> http://motherboard.vice.com/read/stolen-uber-customer-accounts-are-for-sale-on-the-dark-web-for-1

<comment><USER2> >implying they're actually worth anything</comment>


Why we chose prismic.io over wordpress/joomla/typo3 - <AUTHOR> http://www.elastic.io/blog/82796857416/why-we-chose-api-based-cms-system

<comment><USER2> I had to use WP professionally a lot of times, even though I didn't or don't like it.

Last year, I started using a Restful API WP plugin and find that Wordpress is actually really good. Specially because there's so many interesting plugins for it and I don't see any other CMS that have that amount of features available for free and specially being able to customize it quite easily and fast - by reading a few lines on the docs, etc.

I think that services like prismic.io are good, would solve my problems a few years ago, but now, Wordpress + Restful API Plugin + Angularjs and I'm done!

<comment><USER3> Care to share which plugin you were using? Theres more than a few out there and I'd be hesitant to seriously use any of them without a recommendation.

</comment></comment><comment><USER4> There is really a need for a simple cms out there. I really prefer the selft hosted open source solution. There is quite a market of client that need only minimal manageability, where wordpress/joomla/typo3 is way too much for what they need. I was reading about Cloud Cannon service too that offer something similar, but again the paid service, we own your data, is somewhat less interesting. Looking forward for a minimal self hosted open source node.js/json cms in the near future ;)</comment>


You're Doing It Wrong, Series 1, Work [audio] - <AUTHOR> https://www.bbc.co.uk/programmes/b09snrb7 <comment><USER2> Great to have him back on the radio!</comment>


A Case for the Pyret Programming Language - <AUTHOR> http://www.pyret.org/pyret-code/ <comment><USER2> I just realized something: The time investment in learning a programming language is so large, that when faced with the challenge of writing something that your language is not suited for, you set about in an effort to make the language you already know fit what you want to do, rather than learning a new language.

This leads to things like desktop apps in node.js (or server apps in node.js, amirite), or high-performance apps in Python/Ruby, or mobile apps in PHP. Given this trend, a language that is very easy to learn/teach will soon take over everything, and, if Pyret is that language, brace yourselves for the oncoming "put Pyret in all the things" revolution.

<comment><USER3> A large part of learning the language is learning the API. Is it possible to build a single common API ?

<comment><USER4> No. I think the best illustration is the continuation-based Web programming work we did several years ago: [http://cs.brown.edu/~sk/Publications/Papers/Published/khmgpf...](http://cs.brown.edu/~sk/Publications/Papers/Published/khmgpf- impl-use-plt-web-server-journal/) If you don't have the right underlying language (in this case, with continuations), you _can't_ have a similar API. Similarly, the reactive APIs we had in Flapjax [[http://cs.brown.edu/~sk/Publications/Papers/Published/mgbcgb...](http://cs.brown.edu/~sk/Publications/Papers/Published/mgbcgbk- flapjax/)] enabled entirely new kinds of primitive "library" operations; see, for instance, the drag-and-drop example in that paper.

</comment></comment></comment><comment><USER5> So, a question: last time I talked to one of the Brown PLT profs making this on HN (GH contributor log makes me think ... shriram?) this worked well in Chrome, but not well or not performant enough in Firefox. Has that changed?

(Here it is: [https://news.ycombinator.com/item?id=9262770](https://news.ycombinator.com/item?id=9262770))

An admiring comment: the fact you encoded into the language unit tests close to functions, which is a style choice for some in Python but not mandatory, was very cool to me.

An admiring comment: you talk about multimedia-centric must be awesome. I am language major and failed programmer many times over. I started with C++ on Solaries boxes compiling with g++ over SSH; I was one of the few who started using Linux, not Unix mind you, in Poli Sci school so it was not so bad for me as everyone who would use VS and msvcc, forget to check g++ builds, and lose points (I still did miserably). When I saw samples where you have stdlib tools for integrating into things like Google Docs and Dropbox, I thought wow; these kids are going to learn to make stuff so early, and that is so liberating.

And finally, an obnoxious comment: as a Lisp wheeny, I wish Racket and its toolkit was fast enough, as one of the few who bought Conrad's book and never got around to really amazing Scheme usage.

Still, this is wonderful work. The idea of people building such full environments in JS, stacked on top of transpilers and compilers, is amazing to me as a novice. Not that it's possible, but that it works at all. Every time Pyret comes up, I smile.

Aaarr, keep hacking matey!

UPDATE: Add my previous Q&A and with shriram. You Brown PLT and Racket people are so approachable and smart, damn you !(He says ironically while shaking his fist.)

<comment><USER6> Thanks for the kind words!

Firefox performs better than it did, because the whole language has gradually increased performance, but still the worst of the major browsers. It's worth writing down a bit about that here, just for others to see and comment on.

We have some ideas that we suspect will mitigate the main issue in Firefox, which is that Firefox stack frames seem to be very large for compiled Pyret functions. This matters because Pyret's execution control works by (a) figuring out how many "typical-sized" stack frames fit before a stack overflow; this is a little tricky [1], (b) leaving breadcrumbs of metadata on each stack frame, and collecting them on an exception thrown when the limit is reached, restarting after yielding control to the browser's event loop. The issue is that the "typical" frame size for a Pyret function in Firefox means we only get a few hundred frames, and most idiomatic Pyret is implemented recursively, hence lots of pausing and collecting the stack.

It's clear that good support for safe-for-space tail calls is a simple way to mitigate a lot of the issue. We have a version of safe-for-space tail calls that avoids using unbounded space, but doesn't help (much) with speed.

Upcoming safe-for-space tail calls in JS provides one avenue for this that we'll be trying to take advantage of.

Actually compiling instances of Pyret tail recursion to JS loops is something we want to get working. It's a mildly nontrivial engineering challenge in the presence of dynamic annotation checks for return values (which muddy the definition of "tail call", especially since annotations can contain refinement predicates -- more function calls!), the desire to report faithful error information to students, and wanting to yield to the event loop often enough to not lock the page and get "busy script" errors. It's not extremely difficult, there's just enough tricky bits that it's on a branch right now and we're not totally satisfied with it yet.

Since we've largely focused on design of language features rather than performance for a long time now, there's somewhat of a backlog of these kinds of straightforward performance ideas that aren't in the system yet.

[1] [http://stackoverflow.com/a/28730491](http://stackoverflow.com/a/28730491)

<comment><USER5> So, novice question: will Web Assembly help TCO? I know nothing of it really, but it seems like a long-term goal, not shortterm for the WA design team.

[https://github.com/WebAssembly/design/issues/189](https://github.com/WebAssembly/design/issues/189)

As an aside, I am a weak programmer, but I love what you guys have done with Racket, especially with incremental language building with #lang directives. I know you could not do that so seamlessly in Pyret, but I love your progessive lang building, progressive type addition. You get the practicalities of pedagogy in language learning by breaking it down into pieces; I wish more people got that and could have succeeded into steering me into double majoring in Arabic and CS. Ironically I was so weak at it after two semesters of C++ only for major intro courses, the enticement of crazy USG machine translation gigs my profs promised me scared me away with my impostor syndrome.

So why say this? How can people like me help with Pyret? I think its web browser JS transpilation are very interesting, and in this age of data visualization and rich multimedia interactivity, I think these tools are the future of language learning, university or not, whether people think it.

I see you guys went so deep with Racket for building blocks of abstract language building blocks, but the Racket people involved in Pyret are sweetening the deal with the notion of tools for practical incentivization with the wep API and media integration.

So, yeah ... sorry to brain dump there. Really enjoyed this post and the work of your lot over there.

<comment><USER4> Good question re. Web Assembly. The problem is we need much more than tail calls. Just as important is deep stacks, to enable a _functional_ style of "functional programming". And that has definitely been a headache. Our current (clever) implementation strategy actually gives us tail calls as a consequence of the deep stacks, using a variant of Henry Baker's "Cheney on the MTA" (for those old enough to remember that) combined with the "stack reconstitution" technique we published in ICFP a decade ago [[http://cs.brown.edu/~sk/Publications/Papers/Published/pcmkf-...](http://cs.brown.edu/~sk/Publications/Papers/Published/pcmkf- cont-from-gen-stack-insp/)] and a few other things. But tail calls by themselves wouldn't be enough.

What _could_ we use help with? Obviously, we could use infrastructure help or porting to "platforms" (e.g., a REPL on top of Node), but those are huge commitments and require a lot of special knowledge. But I think a person with only a little time can still help.

Right now, I feel the language is still a bit impoverished. We want to make it really easy to get working with data, and that's still too hard. But pretty soon we're going to be putting out better support for tabular data manipulation. Actually use it to do some fun things with data; share your successes (when things work) and your experiences (when they don't)!

</comment></comment></comment></comment><comment><USER7> How strongly is Pyret committed to the JavaScript runtime? I read jpolitz's recent comment about the contortions that you have to go through to support recursion while not overflowing the stack or blocking the UI thread, and I wonder if it would really be so bad to require people to install a programming environment on their computers. How common is it really for students to be limited to what they can run in a browser? Anyway, have you considered a non- JS runtime of some kind?

<comment><USER4> We started out as a Racket `#lang`. That is in principle always an option. However: the in-browser support is non-negotiable. We have many users in schools, which have very locked-down machines. Many of them cannot install new software. This is a real obstacle for many curricula, and our ability to run just off the browser has been a huge prerequisite for adoption of Bootstrap's [[http://www.bootstrapworld.org/](http://www.bootstrapworld.org/)] curricula.

</comment></comment><comment><USER8> Interesting, the language re-purposes the 'where' clause to declare unit tests within function scope. In general, I like the idea of putting testing front and center for a language targeted at teaching programming.

<comment><USER9> Conversely this is what I like least about it. It works nicely for small functions, and even reads like documentation.

But past that it will balloon and just bloat the program you're trying to understand. Tests are better left in their own file. That's not to mention test infrastructure (mocks etc) should you need it.

<comment><USER10> It seems like the obvious thing is to allow both tests in the source file and separate test file.

I like the idea of short functions with doctest-like tests, but written with the real language, syntax-highlighted, etc. In addition to education, it's good for quick prototyping. It's also nice to see at a glance which functions don't have tests!

But I can also see it getting a bit unwieldy for complicated stuff, so in that case you can put it in another file, perhaps with a pointer.

I'm guessing you can't _stop_ people from writing tests in separate files, so I suppose Pyret allows that.

I guess you could write a unit test framework in Python that does this with a tiny amount of metaprogramming.

        def Foo():
          return 5

        def testFoo(t):
          t.assertEqual(Foo(), 5)

So you could just look for all the functions in the file named "testFoo" where Foo is also a function, and then run them with the "t" param. Hm.

<comment><USER11> In Python nose can do that for you: [http://nose.readthedocs.io/en/latest/](http://nose.readthedocs.io/en/latest/)

In D there is even a keyword for that. It allows to embed the tests into the documentation as examples. This has the nice side effect that your examples are actually tested. [https://dlang.org/spec/unittest.html](https://dlang.org/spec/unittest.html)

</comment></comment></comment></comment><comment><USER12> " _Pyret is already fully-fledged enough to self-host its compiler, which is a non-trivial and realistic challenge._ "

Has it been used for anything else than its compiler?

\--Traditional Computer Science question

<comment><USER4> Good question!

The compiler is definitely the main application that's been written. We're not aware of any standalone Pyret applications on the order of more than a few KLOC, but those are quite different in flavor, like course infrastructure.

The next largest chunk of Pyret code out there is assignments for various courses and curricula, which are our major users and macro-scale test cases. In fact, this is a useful perspective on what we get feedback from: a broad and shallow set of use cases in education. This leads us to focus on the first-time use cases, especially on the first time seeing an error message, the first time writing a test, the English vocabulary that lines up with explaining code to a number of different audiences (especially at different age levels), and the snags and inconsistencies in syntax in even extremely short programs.

Of course, it's been _used_ by plenty of students and their teachers, who have written now thousands of their own interpreters and video games and graph algorithms and image-generation programs and type-checkers and data structures in Pyret.

Finally, the design of Pyret is intentionally conservative. Pyret is not a research experiment in some particular new and untested language feature; in fact, such features are almost by definition kept out of the language. Therefore, we believe we're building on a long tradition of crisp, clear language definitions inspired by the lambda-calculus, with little by way of weirdness or frippery.

</comment></comment><comment><USER13> I'm not sure I agree with the premise that a beginning programming language needs to be all that accessible or easy.

My boss (I'm a developer on a Data Science team. And my boss doesn't suck as a developer. But I do the heavy lifting for the team) just put his 6 year old girl in a google code camp for young girls. They started out with assembly, for crying out loud.

That young girl is as engaged and excited as you could ever expect.

I think that we might find over time that involvement in the nerdy things of life really comes down to environment more than it does aptitude.

Could be entirely wrong. But, you know, I'd like to see a theory that was testable before we toss that out completely.

<comment><USER4> I'm really delighted to hear your boss's daughter is having so much fun. That's a great outcome.

I don't expect everyone using Pyret to turn into a professional programmer. In fact, I don't want everyone to do so, because the world also needs electrical engineers and materials scientists and poets and painters and plumbers and everything else. So I'm not out to create a planet full of nothing but nerds (in your sense).

But I do think computing is a fundamentally different way of approaching problems. It is not universal, and even where it applies, it is not the only approach. But it's a powerful and new one. I still think nobody has put it better than Abelson and Sussman, who called this "procedural epistemology". I would like as many people as possible to have access to this epistemology.

Bringing computing to a wide population requires designing something that works for them. I don't claim we have the perfect answer; maybe assembly would work well too, though I have serious doubts (but hey, there's an easy way to prove me wrong: I'm not standing in anyone's way…).

Over a decade ago, long before "big data" was a thing, I created a course called "Introduction to Computing for Humanities and Social Sciences" that was essentially an intro to big data. It's been a very successful course at Brown, and part of its successes, I believe, was my stubborn adherence to teaching the first month entirely in Excel. That attracted, retained, and empowered a whole group of students who by their own admission did not dream of taking computing.

So, the tool does make a difference. Pyret is a tool to tackle our goals. We as a discipline are in the midst of a huge explosion of computing education interest in many countries. A lot of these are _losing track_ of who they are for and what it takes to get there [[http://cacm.acm.org/blogs/blog- cacm/200936-qualify-your-quan...](http://cacm.acm.org/blogs/blog- cacm/200936-qualify-your-quantifiersor-exactly-who-all-is-cs4/fulltext)]. That's a problem we're deep in the midst of trying to address, and Pyret is central to how we are going about it. Others who think they can get to "all" [modulo the above article] can and will take other bets. It's all good so long as they are actually clear about their goals and then honestly evaluate them later.</comment></comment>


Current State of "Digital India" Initiative (Sorry wrong link can't delete)) - <AUTHOR> http://scroll.in/article/809351/we-as-a-nation-clearly-do-not-understand-the-concept-of-freedom-of-expression <comment><AUTHOR> This is my First ever post on HN.

I am not complaining, but If India to compete on global stage, needs to address it's Internet Infrastructure.

I am all for Internet for the masses, but in today's world Speed & Cost is also important.</comment>


Ask HN: What's a good browser if I want privacy above all else? - <AUTHOR> Meaning my passwords/browser history/settings etc aren't uploaded to the cloud anywhere.
I'm thoroughly creeped out by https://myactivity.google.com/myactivity
I want to go back to 2001 where the browser was just the browser and not tied to everything you do and who you are. <comment><USER2> Pale Moon.

</comment><comment><USER3> wget</comment>


Urinal sticker uses male nature to reduce costs at airports - <AUTHOR> http://www.npr.org/templates/story/story.php?storyId=121310977

<comment><USER2> _Kempel is about to launch glow-in-the-dark fly decals for the adult male market because, he says, "men, evidently, hate to turn on the light at night because it blinds them," and they'd rather navigate to a soft glow in the bowl._

Smart thinking. I'd rather sit down than turn on the light; too many lumens and my brain thinks its morning, losing at least an hour of my sleep time.</comment>


How to evaluate open source E-commerce Platform? - <AUTHOR>

I am trying to create a E-commerce site for my business Idea (B2B2C type). Can someone provide me with some tips on how to evaluate open source platform? <comment><AUTHOR> [http://www.webappers.com/2010/07/09/15-best-free-open- source...](http://www.webappers.com/2010/07/09/15-best-free-open-source- ecommerce-platforms/)

Few Platforms which I know about.</comment>


Facebook finally hands over leave campaign Brexit ads - <AUTHOR> https://techcrunch.com/2018/07/26/facebook-finally-hands-over-leave-campaign-brexit-ads/ <comment><USER2> Starting reading an article on some info handed over, ended up reading a politicized article. Can someone link me the source this article is using for the new news? I'm having a hard time finding it in the inline links of the text.

EDIT: Via [0], I found the docs at [1]. Tech Crunch is a shameful, op-ed joke of a site.

0 - [https://twitter.com/DamianCollins/status/1022437025667014656](https://twitter.com/DamianCollins/status/1022437025667014656) 1 - [https://www.parliament.uk/documents/commons- committees/cultu...](https://www.parliament.uk/documents/commons- committees/culture-media-and-sport/Fake_news_evidence/Ads-supplied-by- Facebook-to-the-DCMS-Committee.pdf)

<comment><USER3> Wow, quite a few of these are very xenophobic. Very much playing off of an anti Middle East sentiment.

I'd specifically like to highlight these ads in this document: [https://www.parliament.uk/documents/commons- committees/cultu...](https://www.parliament.uk/documents/commons- committees/culture-media-and-sport/Fake_news_evidence/Vote-Leave-50-Million- Ads.pdf).

2924.jpg

2966.jpg

2968.jpg

<comment><USER4> What is "xenophobic" about those three images? Turkey is currently undergoing a very public internal war between western secularism and Islamic fundamentalism. Why would a western country want to enter into democratic union with such a country at this stage?

Not every judgment regarding other countries is "xenophobic." Imagine if Alabama or Mississippi were trying to join the U.S. today. Would it be "xenophobic" of Californians to be skeptical of the impact that would have on shared democratic institutions?

<comment><USER5> Getting people to vote leave because they don't like some foreigners (Turkey or Syria) is quite literally the definition of xenophobia. This is especially true when Turkey is not even close to joining the EU.

<comment><USER4> But the ads are not about "not liking foreigners." They are about a country with very different beliefs and attitudes joining a bloc where they will have voting rights in bodies that have legislative power over people in the UK. That is a completely different thing. And Turkey applied to the EU in 1987, has been a full candidate EU member since 1999, and since then has been in active negotiations to join.

<comment><USER6> That's a process the UK, as a member state, used to have veto over. Not sure if they have lost it yet, but now or in the near future they'll just have to live with whatever the rest decide. That is, unless they want to leave the single market, which doesn't look very likely.

</comment></comment></comment></comment></comment></comment><comment><USER7> This isn't the only shenanigans surrounding the leave campaign. Here's another example of dodgy Leave Campaign funding - [https://www.bbc.com/news/uk- northern-ireland-44624299](https://www.bbc.com/news/uk-northern- ireland-44624299) \- where the DUP, a Northern Irish party, was given $600,000 to campaign for Leave by a shell company and spent most of it on advertisements in media that wasn't even available in Northern Ireland.

But it's not surprising really. There has been a persistent anti-EU propaganda campaign running in the UK for years if not decades. I really like this site - [https://blogs.ec.europa.eu/ECintheUK/euromyths-a-z- index/](https://blogs.ec.europa.eu/ECintheUK/euromyths-a-z-index/) \- as it contains links to the original "fake news" stories along with references which refute them.

<comment><USER8> Why do you think these stories have traction in the UK? Do you think the UK has no legitimate grounds to question EU membership?

<comment><USER7> To answer your second question, of course it has.

I don't understand your first question? Those anti-EU stories were lies pure and simple - all the references are provided on the linked site. Are you in favour of the media publishing lies in order to advance a political viewpoint?

<comment><USER8> If the EU were not already loathed by some the stories would find no audience, is my belief. For example, I met a plasterer who said that immigrants were destroying his livelihood by working for peanuts. If I were him I'd probably blame the EU also. But I also think the result was seen as an opportunity to send a general two fingered FU to the establishment, both UK and EU - I don't think the coordinated FUD and Obama etc did Remain any favours whatsoever. Surely better to take the high ground and rhapsodise our fantastic future in the EU? Remain chose not to do that.

<comment><USER9> Outside of regular hit pieces in the Daily Mail and Telegraph there's little real awareness of the EU in the UK. The EU haven't been especially good at getting the message about their successes out. The little we do see is an occasional news piece about a joint venture or a little EU flag on some region's signage because they received development funding.

The irony that some of the most resounding leave votes were in regions heavily supported by EU funds was not lost on me. Clearly the UK governments hadn't been doing enough for the people in those regions or they'd not have have been eligible for that support. Clearly the message that the EU was trying to help didn't get to the people concerned.

 _Both_ sides lied, both sides ran terrible negative campaigns. No one anywhere seemed to promote the EU as being good in any respect - just it's least worst. Only leave chose to pander to xenophobics, closet racists and suggest a FU to the establishment at every opportunity.

<comment><USER8> To an extent I think the whole thing is borderline unknowable and inseparable from political leanings, so I bid you goodnight Sir.

</comment></comment></comment></comment></comment></comment><comment><USER10> Can someone please explain the argument against passing laws forcing all adverts on advertising platforms like Facebook and Google to be searchable and transparent so we can see who is purchasing them, the parameters used for targeting the advert and what they are publishing? I can't see a downside for the majority of people.

<comment><USER11> Perhaps because 1st Amendment gives right to anonymous speech: [https://www.eff.org/issues/anonymity](https://www.eff.org/issues/anonymity)

Perhaps because it gives established players a big leg up in terms of compliance costs (imagine being a small news site having to create this searchable system etc)

<comment><USER12> The 1st Amendment is just US law. What would be the argument elsewhere?

<comment><USER13> Retaliation by employers for funding certain speech. Violent retaliation for funding certain speech.

</comment></comment></comment></comment><comment><USER14> I'm trying to understand the article's premise. Is all political advertising immoral? Is it something about the way the ads were distributed that make them immoral? Is it just immoral because the politics itself was "wrong"?

<comment><USER15> The leave campaigns were recently found to be in violation of election law, so no, this isn't just a "moral" issue:

> the Electoral Commission found that the youth-focused campaign, BeLeave, had > been joint-working with the official Vote Leave campaign — yet the pair had > not jointly declared spending thereby enabling the official campaign to > overspend by almost half a million pounds. And that overspend went straight > to Aggregate IQ to run targeted Facebook ads.

More broadly, we're in a new era of political advertising that we haven't fully grappled with yet. It used to be that all of your advertising was public, so it was possible to see what promises are being made, what kind of terminology is being used, etc. etc. In the Facebook era you can hyper-target your ads to only show to a small subsection of people, without anyone knowing what you're saying. Facebook's recent moves have meant that advertisers have to publicly disclose all the ads they are showing to avoid this issue, but it wasn't retroactive. This data is from before Facebook disclosed that information.

<comment><USER16> > It used to be that all of your advertising was public, so it was possible to > see what promises are being made, what kind of terminology is being used, > etc. etc. In the Facebook era you can hyper-target your ads to only show to > a small subsection of people, without anyone knowing what you're saying.

If say, before the 1990s, a national candidate sent out targeted mailers to some little town in flyover country, no one would have ever seen them.

We're in a similar but imo potentially not much worse situation because if anything it's easier to publicize that it happens.

It seems strange to you because the person getting a targeted ad is in the next room over instead of next voting district, but it's the same principle.

<comment><USER17> No, I don't suppose we're in a similar situation. In your example, the mailer would leave a paper trail or more importantly one would expect such a mailer to disclose who's sending them.

Secondly, the scale and efficiency with which one could target was rather limited. Specifically, the candidate would have a hard time not only "targeting" the right audience but also find it rather impossible to customize the content of the mailer to individual recipient.

It is not based on the same principle - one involves human actors and associated inefficiencies and "unscalability" while other involves mindless robots over zealously bombarding "targeted" audience with deception and lies.

</comment></comment></comment></comment><comment><USER18> Can someone parse this sentence?

<comment><USER19> "Leave" was the slogan and the name of the "Let's leave the EU" group who advocated (and still do) for voting for leaving the EU.

</comment></comment><comment><USER20> These laws, though well intentioned, seem to sometimes struggle in the modern context.

In this case, President Obama flew over to London in April 2016 and advocated very publicly, that Britain should remain in the EU. This act by a foreign leader was converted into headlines, videos, tweets, etc. which were shared roughly a bajillion times.

President Obama is an extremely popular man. In any list of the world's most popular and influential leaders he ranks in the top 10, probably the top 5. His endorsement, if equated to USD or GBP, would equal roughly several bajillions.

As far as I am aware, existing campaign finance laws do not address this kind of "free media", and that is a problem. Sometimes you need to be able to muster the resources to advocate your position with equal reach to that of your opponent, and that costs money.

<comment><USER21> Except it's really easy to discount his statement if you're so inclined, because you know who it's coming from.

A lot of these Facebook ads had no information about the source.

<comment><USER20> An ad is by default the same kind of statement. The source is necessarily someone who has a vested interest, like President Obama. Why will a neutral person pay for an ad?

There are plenty of mega corporations whose interest span the entire world, so those are all technically foreign agents.

</comment></comment></comment><comment><USER22> They all seem pretty manipulative to me & not in a subtle way

</comment><comment><USER23> Nothing like being down a quarter of your value to shake things up.

<comment><USER24> 18% is not a quarter.

<comment><USER25> Looks like 20.02% currently. [1]

[1] - [https://finance.yahoo.com/quote/FB](https://finance.yahoo.com/quote/FB)

<comment><USER26> Still only a fifth...

<comment><USER27> But when you're down to the bottom of the fifth...

Sorry, I'll get my coat...

</comment></comment></comment></comment></comment><comment><USER28> What about the effect Obama had, when he supported UK remaining in the EU? How many percent did his endorsement move?

<comment><USER29> AFAIK Obama didn't break the law so his contribution is not under question

I think your questions could be seen as whataboutism[0], but as an answer I do know somebody who was furious that Obama was "telling us what to do" and subsequently voted leave. I don't know anybody who voted remain but was obviously swayed by Obama. Sample size is small but thats what I know.

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

<comment><USER20> Justice is about equality before the law. It is unjust for one party to do something and be punished, while another party does something that is principly the same, and is not punished.

Citing "whataboutism" does not make this go away, it is the essence of the argument.

If Joe is disqualified from his hockey tournament for throwing his stick, but Mike receives an eye-roll from the same referee, it should not be criticized as whataboutism to say "What about Mike?" \- it is a legitimate complaint, because there is injustice in the way both incidents are dealt with.

<comment><USER15> The situation you just described is one where two people do the same thing, one is punished and one is not. Justifiable to question that.

The situation the OP was describing compared illegal, unreported campaign overspending with a foreign politician expressing an opinion. They're not in any way similar.

<comment><USER20> The reason I used the word principly is because they are the same thing in principle, the current law is insufficient to treat the issue appropriately, which is what makes it unjust.

A foreign politician who is popular will generate free advertising showcasing the merits of his endorsed position through news media coverage of his statements.

Take money out of the equation entirely. I am a rich filthy corrupt CEO who owns a giant media corporation. I contribute 0 dollars to your campaign, but my TV channel has reporters singing your praises daily. My newspapers write about you in positive terms. My interns spend time on social media defending you from critics.

Everything I have done for you has helped get you elected. My news channel and publications are read by millions. You now owe me.

Similarly, a politician from another place who is very popular in your constituency shows up and campaigns for you. You pay nothing for it, but thousands show up to listen to him. His speech is aired to millions in your constituency.

Eventually you are elected, now you owe him.

Not accounting for some money is principly the same as not accounting for an endorsement by the President of the United States. The same negative outcomes that are associated with money in politics can be applied to endorsements too.

Existing laws do not address this, and are thus unjust because they are outdated in the context of how news and discourse works in 2018

</comment></comment></comment></comment></comment><comment><USER30> It's really interesting coming to HN and watching the indignant 'stabbed in the back' theories about why the establishment lost the Brexit referendum and 2016 US presidential election. 2 years on and it still stings that the people didn't vote the way they were supposed to. There is _definitely_ a classist, privileged undertone to the discourse as well - ironic but not surprising coming from many self-described socialists.

<comment><USER31> With the hindsight of these 2 years, do you believe that this was a good thing? (Genuine question. I'm European so from my perspective those were two terrible election results, and events since then have amply confirmed this fact, but I'm wondering if this is so clear-cut for other sensibilities)

<comment><USER30> I don't know. It's really hard to imagine what a Hilary Clinton presidency would have been like. She might have been impeached at this point. Likewise, it's really hard to tell what the _long term_ effects of Brexit will be. I think history will be in a better position to judge it 10 years down the line.

But I really think people need to get over both results. It's been two years now. The remoaners are much worse than their american equivalents. But on the other hand - how many variations on the same joke are Stephen Colbert and Trevor Noah going to do? And - more to the point - how many post mortems is Hacker News going to have? No to mention the constant "I'm so woke gaiz" quips about it. Imagine if between 2008-2016 HN had been full of one liners about how Obama had no birth certificate. It would get so tiresome.

<comment><USER32> > She might have been impeached at this point

Why?

> need to get over both results

The results deliver real harm to real people. The separated immigrant children are probably never going to get over it, for example. And I'm not going to get over a result while I'm still worrying about stockpiling food. [https://www.independent.co.uk/news/uk/politics/no-deal- brexi...](https://www.independent.co.uk/news/uk/politics/no-deal-brexit-blood- medicine-stockpile-nhs-health-secretary-matt-hancock-a8462531.html)

> Imagine if between 2008-2016 HN had been full of one liners about how Obama > had no birth certificate

Those were obviously false and therefore often flagged to oblivion or deleted by the mods, but they did turn up when he was mentioned.

<comment><USER30> _She might have been impeached at this point_

Because she was incredibly corrupt. Seems likely that foreign intelligence agencies had even more information they could leak.

 _The separated immigrant children are probably never going to get over it, for example._

It's unfortunate their parents decided to break the laws of the United States and enter the country illegally. Maybe their plight will discourage others from doing the same.

 _And I 'm not going to get over a result while I'm still worrying about stockpiling food._

That seems like more of an issue with paranoia, then anything happening in reality.

<comment><USER32> > incredibly corrupt

Compared to the _Trump administration?_

</comment></comment></comment></comment></comment></comment><comment><USER33> What about Remain Campaign ads?

<comment><USER15> The Remain campaigns weren't found to be in violation of election law.

<comment><USER34> Remain campaigners were found to have violated laws as well, and they were fined.

[http://www.cityam.com/277767/electoral-commission-has- fined-...](http://www.cityam.com/277767/electoral-commission-has-fined-lib- dems-and-remain-campaign)

<comment><USER15> I stand corrected.

But still, "massively overspending" and "failing to report correct levels of spending correctly" are quite different rule breaches. It's not difficult to see why Leave ads are being examined and Remain ones aren't.

<comment><USER35> Remain massively overspent but simply did it in a way that exploited loopholes in the law. The advertising mailshot alone cost more than their entire allowed budget. They also had the entire civil service working for them, the cost of which is essentially incalculable it's so high.

The idea that Remain spent less than Leave is clearly ludicrous if you simply look at what happened. Funding wise there was no competition. The fact that parts of the government are trying to argue otherwise is just another aspect of their attempts to undo the vote by any means possible.

</comment></comment></comment></comment></comment><comment><USER36> It's disappointing, but not surprising, that the focus seems to be entirely on the "wrong" side of the "desired" outcome.

At this point it amounts to fighting very hard to find _any_ reason to undo a democratically determined result.

<comment> dane-pgp If just 1% of the population of the UK changed their voting intention (from Remain to Leave) because of illegally bought or misleading advertising, then undoing that effect would mean that Remain would have won.

Invoking the "democratically determined result" is begging the question, since we don't really know whether the result would have been the same if the Leave campaign hadn't broken the rules:

[https://www.theguardian.com/commentisfree/2018/jul/04/vote-l...](https://www.theguardian.com/commentisfree/2018/jul/04/vote- leave-cheated-will-people-mps-electoral-commission)

When someone wins a sporting competition, and is found to have cheated by using banned substances, they don't get to keep their title by claiming "Well I still would have won even if I didn't cheat".

<comment><USER37> I think the overriding point is that a simple majority is completely the wrong format for descisions like this. I'd have suggested a two thirds majority requires for change. There is also the argument about them stifling debate.

There is an intersting criticism of the format in the below link from Chris Patten

"I think referendums are awful. The late and great Julian Critchley used to say that, not very surprisingly, they were the favourite form of plebiscitary democracy of Mussolini and Hitler. They undermine Westminster. What they ensure, as we saw in the last election, is that if you have a referendum on an issue, politicians during an election campaign say: "Oh, we're not going to talk about that, we don't need to talk about that, that's all for the referendum." So during the last election campaign, the euro was hardly debated. I think referendums are fundamentally anti-democratic in our system, and I wouldn't have anything to do with them. On the whole, governments only concede them when governments are weak."

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

<comment><USER38> And there is a LOT of uk case law /precedent on this ie 2/3 or even 75% to make changes to the rules or organisation or to pass some types of motions at company AGM's is common.

Personally I think the CBI and Directors Institute lost the plot and let a few "bad apples" fuck the economy up - should have done what the TUC did in the 50's

<comment><USER39> I don't think there's any precedent for requiring such a supermajority in this case. Actually joining the EU required the support of 0% of the population in a referendum - there was no referendum on joining, the 1975 referendum was merely on whether we should remain in. The same arguments against leaving were made back then too, and if leave had won there'd probably have been exactly the same kind of pressure against following through on it.

<comment><USER38> Citrine and any parliamentary based system (even the local allotment society ) plus the fact that every listed UK company AGM follows the same 2/3 /3/4 rule for major votes</comment></comment></comment></comment></comment></comment>


Peter Thiel - The Education of a Libertarian - <AUTHOR> http://www.cato-unbound.org/2009/04/13/peter-thiel/the-education-of-a-libertarian/ <comment><USER2> Hmm while I can totally understand what he's saying to some extent, it does reek of "I'm a billionaire and here are the kinds of fantasies I focus on"

<comment><USER3> Yeah, the part where he wants to form some kind of Randian society in space and this part:

"Since 1920, the vast increase in welfare beneficiaries and the extension of the franchise to women — two constituencies that are notoriously tough for libertarians"

seem to be pretty good indicators that the article is completely terrible.

<comment><USER4> I'm no libertarian, but I don't see why those statements make the article terrible. After all, are they not true, and do they not underscore his point-- that both of those constituencies benefit from government intervention in society as it is and was in the 20's, and therefore would not theoretically be amenable to principles of less government?

If there's anything that makes the article terrible--which I don't think it is, it's well-argued for the point it's making--it's the blind assumption underlying it that _less government is always better_. I think that's a silly principle to argue for, but then I haven't read anything else he's written; for all I know he's made efforts to defend it in the past, so I can't assume he considers it a matter of faith.

</comment></comment></comment><comment><USER5> _In the late 1990s, the founding vision of PayPal centered on the creation of a new world currency, free from all government control and dilution — the end of monetary sovereignty, as it were._

...what resulted was ugly, oppressive and pretty much universally despised as far as I can tell. Much how I imagine a "libertarian state" would turn out.

</comment><comment><USER6> What an asshole, no wonder paypal is such a piece of shit.

<comment><USER7> That's a really repulsive, and disrespectful comment. It adds nothing to the discussion and just serves to make the environment on HN really unpleasant.</comment></comment>


Ask HN: My company provides yearly bonus for self-education. What should I buy? - <AUTHOR> There is a yearly bonus (600$) my employer provides for self-education. Usually, we spend it to attend some conference, but this is pretty difficult time, you know :) Also we have monthly bonus on books and access to online resources: O'Reilly Media and Udemy.
I am a Full-stack/Cloud software engineer so it should be related to my position, but not strictly. Let's say it can be iOS/Android/Web development, Back-end development, Machine Learning, Cloud Architectures, Theoretical Computer Science, Cybersecurity, etc.
After some research, I have found most of the resources are already free. I have had an idea to buy several classical CS texts (specifically related to Math Logic and Complexity) or purchase some online courses, but I can miss something valuable. Maybe it can be useful for somebody to suggest decent resources I can spend this bonus. <comment><USER2> A lot of resources are free, but I still find plenty of value in the printed word.

For example, I bought Practical Common Lisp despite it also being available electronically for free, because I tend to write a lot of margin notes and highlight things that I know I'll want to see again. It is so much quicker for me to pick that book up and get to the info I want than it is for me to scroll through a PDF for the same info (besides lacking my personal notes). I have multiple random electronic copies I don't bother looking at, and one printed one that I refer back to quite often.

If you want to take some courses in complexity, check out complexityexplorer.org. They are run by the Santa Fe institute, so you know they're top of the line. You can generally take the courses for free since they are offered through grants, but of course you can donate and/or buy some schwag to support more of their (incredible) course and tutorial offerings. I just finished a course with them today, actually, and am working on completing a third from them.

<comment><AUTHOR> Thank you, very valuable answer.

</comment></comment><comment><USER3> >Also we have monthly bonus on books and access to online resources: O'Reilly Media and Udemy.

Is it restricted to only those? And there's plenty of self-published books on leanpub/gumroad (usually with sample chapters provided).

</comment><comment><USER4> On the question. Is this something you need to show a receipt for? Or is this just given. If just given id use it to found my own self study or to do a project where i could learn something along with maybe gain wealth or ease of life.

<comment><AUTHOR> Yeah we need approve for the given resource.

</comment></comment><comment><USER5> If you already got all you need maybe you can save the company some money :)

<comment><USER6> Why should (s)he care about saving the company some money?

<comment><USER7> Because their paycheck doesn't come from fairies. It comes from the money the company earns (that is, income minus expenses). If they don't need it, why spend it? Why not leave the company a few more dollars?

<comment><AUTHOR> They do not come from fairies, but from mostly creative people like developers and designers. They provide this education bonus because they see value in highly motivated and educated personnel.

</comment></comment></comment></comment><comment><USER8> buddy up with a teammate and buy each other's self-published courses

<comment><USER2> This works. I used to teach penetration testing at a particular big blue TLA, and instead of reinventing the wheel, I teamed up with someone who had made a "General" version of the "Advanced" course I was teaching. We did a pretty good job of keeping each other's classes full.

<comment><USER9> I think the person you're replying to was suggesting OP embezzle their self- education budget into their pocket.

<comment><USER2> Upon re-reading, I think you're right. Pretty obvious the second time around.</comment></comment></comment></comment>


OpenBSD: pledge - <AUTHOR> https://man.openbsd.org/pledge <comment><USER2> Interesting! Does anyone know if it can be used to execute some remote code from non-trusted authors?

<comment><USER3> No, it's a system call, not a wrapper utility. This is for developers, not users or sysadmins.</comment></comment>