Translating Quake 3 into Rust - <AUTHOR> https://immunant.com/blog/2020/01/quake3/ <comment><USER2> One highlight of this post is their work exposing a memory safety error in the original source code:

> _The Rust compiler also flagged a similar but actually buggy example in > G_TryPushingEntity where the conditional is >, not >=. The out of bounds > pointer was then dereferenced after the conditional, which is an actual > memory safety bug._

<comment><USER3> Interestingly I've too found bugs in original source similar to this when rewriting in just TypeScript, so I suspect it's just someone taking a look that allows the bug to be discovered.

<comment><USER4> Sourcecode?

<comment><USER2> Linked from that paragraph in the article.

<comment><USER5> I think they are asking for the Typescript source

</comment></comment></comment></comment></comment><comment><USER6> Author here: I wanted to let everyone know we made some small edits to the text, and added two new branches to our repository: _transpiled_ containing the raw transpiler output [1], and _refactored_ containing the same code [2] after a few refactoring commands.

1\. [https://github.com/immunant/ioq3/tree/transpiled/quake3-rs](https://github.com/immunant/ioq3/tree/transpiled/quake3-rs)

2\. [https://github.com/immunant/ioq3/tree/refactored/quake3-rs](https://github.com/immunant/ioq3/tree/refactored/quake3-rs)

<comment><USER7> Is there any progress on C++ to Rust? I know the whole language is huge, so maybe even a little support could be opening a can of worms.

<comment><USER8> Most of the language probably isn't too far from C to be done, but I can't even guess at what would have to be done for C++'s templates.

<comment><USER9> The closest Rusty feature to C++ templates is most likely macros. I don't think even const generics, specialization etc. (which are WIP anyway at the moment) would be enough to replicate templates in the fully general case.

<comment><USER10> I most surely misunderstand something: why are templates not replaceable with Rust generics?

<comment><USER11> The simple answer is that C++ templates can do more than Rust generics can, including some things that in Rust you'd use the macro system for, and probably some things that you'd have to translate by expanding out the template and turning that result into Rust.

</comment></comment></comment></comment></comment></comment><comment><USER12> I recall seeing a presentation of c2rust by Andrei at a conference a while back. It's great to hear that it's making good progress. I'm curious at how good c2rust is at producing idiomatic rust code. It seems like that would be difficult and yet very valuable.

> we'd love to hear what you want to see translated next.

qemu [1] is all in C (probably C89 or "gnu89") and would make an interesting project, IMO.

[1] [https://github.com/qemu/qemu](https://github.com/qemu/qemu)

<comment><USER13> The long tail of patterns c2rust would need to recognize to reliably make _idiomatic_ code seems like a much larger problem. With that as the goal, it might make sense to build a separate rust-to-rust "idiomaticizer" that can recognize opportunities to reduce code complexity through refactoring, and apply idiomatic patterns without changing application behavior.

<comment><USER14> As I've already posted elsewhere on this thread, such a tool has been developed in parallel (and with the intent to consume the output of) c2rust. Development on that occurs here: [https://github.com/immunant/c2rust/tree/master/c2rust- refact...](https://github.com/immunant/c2rust/tree/master/c2rust-refactor).

<comment><USER13> Thanks, I hadn't seen this by the time I posted. Very cool.

</comment></comment></comment></comment><comment><USER15> Out of curiosity, how do compilation times look, for a fresh build and for the edit-compile cycle?

</comment><comment><USER16> Out of curiosity, has anyone here tried taking something like Quake 2 or 3 and porting it to run on the JVM?

This project kind of makes me want to try porting Quake 3 into Clojure, but I want to know the limitations in doing so.

<comment><USER17> I'd imagine the graphics libraries is where the JVM falls down.

<comment><USER18> Not that Minecraft runs well or is a marvel of graphical technology but at least it proves you can do FPS 3D with the JVM enough to the the most popular game around.

<comment><USER19> Minecraft uses [https://www.lwjgl.org/](https://www.lwjgl.org/)

</comment></comment></comment></comment><comment><USER20> I would love to see them translating the Linux kernel, but that might be a bit too ambitious.

</comment><comment><USER21> This is some awesome PR too! Didn't expect them to be a software security consultancy.

<comment><USER22> Some of this work was even funded by DARPA...

</comment></comment><comment><USER23> That's super cool!

What I'd really like to see is benchmarks that compare the rust version to C.

<comment><USER24> What is the realistic best-case scenario? Has anyone demonstrated that well- written Rust code should run _faster_ than C, or is the hope simply to get performance parity with C while maintaining memory safety?

<comment><USER25> Rust will outperform C consistently soon. It already does in some cases. It will also do so with safe idiomatic code in most cases. The reason behind my statement is simply more opportunity for the optimizer. Rusts rules allow for a more aggressive optimization. The reasons why it's not outperforming C yet are LLVM bugs and some missing Rust language features and fixes. LLVM in particular is driven by C needs so they rarely fix bugs present only Rustc generated IR.

<comment><USER26> This is grey, but shouldn't be. I assume people are downing it because it doesn't give examples of the optimization opportunities it claims. So here are two that I think are likely most significant.

1\. Rust's aliasing semantics are more powerful than C's unless you use the 'restrict' keyword everywhere, which most people don't. It's well recognized that FORTRAN continues to generally outperform C in many numeric applications because FORTRAN compilers are free to perform optimizations that C compilers cannot or don't, due to the fact that multi-aliasing memory is undefined behavior in FORTRAN. The rust compiler currently doesn't pass the relevant hints to the generated LLVM IR due to a long history of LLVM having bugs in 'noalias' handling, in large part due to the fact that those code paths are so rarely executed while compiling C code, itself due to the relatively low usage of the 'restrict' keyword.

2\. Implicit arena allocations. The Rust compiler has access to information about possible aliasing and overlapping lifetimes that it can use to replace multiple allocations with similar lifetimes with offsets into a single allocation that is then all freed together. This is a complicated topic, but work is ongoing to make this a reality.

<comment><USER27> 2 might sound overly optimistic like "Rust will eventually beat C" but V8 already has an allocation folding optimization which combines multiple objects into a single site. There's also run time profiling to try and figure out the allocation lifetime.

[https://static.googleusercontent.com/media/research.google.c...](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/42478.pdf) and [https://static.googleusercontent.com/media/research.google.c...](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43823.pdf)

</comment></comment></comment></comment></comment><comment><USER28> Is the final code readable/maintainable?

<comment><USER6> We added the transpiled code in a new branch at [https://github.com/immunant/ioq3/tree/transpiled/quake3-rs](https://github.com/immunant/ioq3/tree/transpiled/quake3-rs) and also a more cleaned up refactored code base at [https://github.com/immunant/ioq3/tree/refactored/quake3-rs](https://github.com/immunant/ioq3/tree/refactored/quake3-rs)

</comment></comment><comment><USER29> Would be interested in a performance comparison - c (using opengl1, etc etc) vs c2rust.

</comment><comment><USER30> It would be really cool to see snippets or even the whole original and transpiled code side-by-side.

When I was working on compilers I spent as much time making such a script in a web-browser with scrolling etc as I did studying the results.

<comment><USER6> We added the transpiled code in a new branch at [https://github.com/immunant/ioq3/tree/transpiled/quake3-rs](https://github.com/immunant/ioq3/tree/transpiled/quake3-rs) and also a more cleaned up refactored code base at [https://github.com/immunant/ioq3/tree/refactored/quake3-rs](https://github.com/immunant/ioq3/tree/refactored/quake3-rs)

</comment></comment><comment><USER31> Does it mean we could translate languages like Ruby and Python to Rust?

<comment><AUTHOR> While it might be possible my guess is it would be much more difficult than C. AFAIK Rust is more or less a superset of C whereas Python and Ruby have numerous advanced features that aren't present in Rust and would likely require a bespoke Rust runtime to emulate the behaviour. Types is also a whole can of worms here.

I think in relation to Ruby, Python and other languages like them Rust's best application is leveraging the support for C FFIs to replace hot paths. While Rust has a significant learning curve it's probably much simpler, for say a ruby programmer, to pick it up and write safe performant code than C.

<comment><USER27> There's an effort to write a Ruby implementation in Rust: [https://github.com/artichoke/artichoke](https://github.com/artichoke/artichoke)

At the moment it wraps the mruby VM, but I think Ryan's plan is to switch to the CRuby YARV VM and then replace it with a VM written in Rust.

I'm also working on a CRuby JIT compiler written in Rust using CraneLift (a new compiler written in Rust).

</comment></comment></comment><comment><USER32> Why is there such a push to use this new language that's so inaccessible to much of the world? Not everyone has a multi-gigahertz, multi-core, multi- gigabyte computer to develop in Rust. It seems like unnecessary stratification for nebulous gain.

Perhaps the Rust team should make their compiler work on reasonable resources, like 32 bit processors, before marching off to try to convert the world.

Or perhaps we should have rust2c instead, so people can take all this Rust code that everyone is pushing and compile it on modest machines.

<comment><USER33> > _Perhaps the Rust team should make their compiler work on reasonable > resources, like 32 bit processors_

Rust compiles for and runs on STM32, a 32-bit microcontroller:

[https://docs.rust-embedded.org/discovery/](https://docs.rust- embedded.org/discovery/)

And here's an index of supported embedded hardware:

[https://github.com/rust-embedded/awesome-embedded- rust#drive...](https://github.com/rust-embedded/awesome-embedded-rust#driver- crates)

<comment><USER34> _> Perhaps the Rust team should make their compiler work on reasonable resources, like 32 bit processors_

 _> Rust compiles for and runs on STM32, a 32-bit microcontroller_

Cool, but it can't run the _compiler,_ right? I think that's what GP meant.

<comment><USER35> I wouldn't call 32-bit processors reasonable anymore. Maybe a decade ago, yes. 64-bit is the norm now. It doesn't make sense to demand 32-bit support.</comment></comment></comment></comment>


Facebook's robots.txt - <AUTHOR> https://www.facebook.com/robots.txt

<comment><USER2> [http://disqus.com/humans.txt](http://disqus.com/humans.txt)

<comment><USER3> [http://www.last.fm/robots.txt](http://www.last.fm/robots.txt)

</comment></comment><comment><USER4> [http://www.google.com/robots.txt](http://www.google.com/robots.txt)

<comment><USER5> /* would have sufficed

<comment><USER6> [https://www.google.ca/search?q=google+search+domain&oq=googl...](https://www.google.ca/search?q=google+search+domain&oq=google+search+domain&aqs=chrome..69i57j0l5.2849j0j9&sourceid=chrome&espv=210&es_sm=93&ie=UTF-8#es_sm=93&espv=210&filter=0&q=site:www.google.com/search+meta)

</comment></comment></comment><comment><USER7> You don't scrape Facebook, Facebook scrapes you!

<comment><USER8> In the US, you catch a cold. In Soviet Russia, cold catches you!

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

</comment></comment><comment><USER9> So what does it mean by facebook whitelisting a scraping service? Do they actively block scrapers?

<comment><USER10> I could be wrong but I believe that the the default is that spiders are blocked and only the "User-Agents" listed are allowed to scrape (but not the disallow pages).

<comment><USER11> You are correct.

</comment></comment></comment><comment><USER12> Is there a way to replace this robots.txt with a null robots.txt? :)

<comment><USER13> You just ignore the robots.txt file, crawl slowly, and from distributed virtual machines.

Not that you should do that. Robots.txt is a nicety though, the client doesn't have to respect it, and the server doesn't have to allow your HTTP requests.

</comment></comment><comment><USER14> What is a User Agent: Yeti?

<comment><USER15> It's the crawler for Naver, a south Korean search engine.

</comment></comment><comment><USER16> Even Facebook's robots.txt has a hatred for my pseudo-anonymous browser settings. Facebook gives me this (for any page): "Sorry, something went wrong. We're working on getting this fixed as soon as we can."

<comment><USER17> robots.txt isn't enforced.

<comment><USER5> Maybe they should be. Gentleman's agreements do not apply to robots.

<comment><USER18> And how exactly do you propose verifying that the user agent purporting to be Googlebot or Firefox is actually who they are? They're inherently unenforceable.

robots.txt is basically a list of rules that lay out "This is how we'd like you to crawl us. We might stop serving you if you don't comply", rather than a hard-and-fast set of directives that specify how a webcrawler will be guaranteed to behave.

<comment><USER5> You can implement some strict enforcing in Apache using some crafty mod_rewrite stuff: [http://andthatsjazz.org/defeat.html](http://andthatsjazz.org/defeat.html)

User-agent is to easily spoofed, but we could check if the robots are indeed Google (whitelisted) and not some other crawler that just wants to scrape your content.

In the realm of mail servers we have something called SPF: [http://en.wikipedia.org/wiki/Sender_Policy_Framework](http://en.wikipedia.org/wiki/Sender_Policy_Framework)

Just thinking out of the box here, but other than checking IP ranges: Maybe a hash being sent as a header inside the GET request by the crawler to verify if they are who they say they are.</comment></comment></comment></comment></comment>


Ask HN: How popular is Python for web applications? - <AUTHOR> Python has seen crazy growth over the last 5 years:
https://trends.google.com/trends/explore?date=all&q=php,javascript,python,ruby
Is that because everyone and their dog are now writing AI software, or is it also widely used for other areas?
In particular, I would be interested how popular it is to write web applications in Python these days. <comment><USER2> Django is used widely for CRUD apps or any area you'd typically use Rails. Flask is also a popular option among developers and theres been a few new generation python microframeworks focused around ASGI popup in the last few years. I haven't used it for years but my girlfriend uses it heavily for scientific computing and data science which is I'd say where a big chunk of it's userbase is.</comment>


Ask HN: Any payment processing advice? - <AUTHOR>

I'm in the process of building a simple website for my grandmother to showcase her artwork online. Right now, if someone sees art they would like to purchase, they send her an email and arrange a check or money transfer. However, I'm concerned about the risk of accepting checks and am looking into credit card processing systems.
So my questions are:

  - Is there really a risk to accepting checks, or am I just being slightly paranoid?
  - Should I go with PayPal, or should I look into alternatives?
  - What information do I need to keep for each transaction?
 Thanks for your advice! <comment><USER2> 1) a safe policy would be to accept checks by mail, but hold shipping until the check clears the bank and you have funds in your account.

2) [http://www.gabrielweinberg.com/startupswiki/Ask_YC_Archive#t...](http://www.gabrielweinberg.com/startupswiki/Ask_YC_Archive#toc81)

3) depends. some of the things in the link above touch on that. for the most part, though, keep as much of the "safe" (non-CC, check, routing, etc. numbers) information that you feel like you need.</comment>


Peer-to-peer sports betting inside the Bitcoin blockchain - <AUTHOR> https://xbet.io <comment><USER2> > _Moreover, since the funds are held in escrow by the network and not by a > specific person or group, your funds can 't be stolen or seized by anyone._

But who adjudicates the event outcomes? In other words, who is the administrator that chooses the winning side of a bet when the event is over?

> _XBet.IO uses a one of a kind intervention mechanism to ensure that only > verified results are broadcasted to settle bets. After every match, the > results are displayed for the users to review and file an appeal if they > think the result is wrong. If a bet is reported, it would be manually > verified by an admin before settling the bet._

And who are the admins? An admin could steal all the funds placed on a winning bet by simply placing a small bet on the losing outcome, then settling the bet on that wrong outcome (and denying the appeal).

<comment><USER3> Instead of the service administrator determining who wins or not it should be a number of named and trusted outsiders who would make this decision.

Take 10 reputable sports journalists/well known figures. Pay them part of the 1% profit. In exchange for the money they would agree to provide a proof of the result (signed with their key). Craft the transactions so that for example 4 out of 10 confirmations are needed for the transaction to go through.

<comment><USER2> The problem here is that "trusted" is not intrinsic to the character of some third-party. I might trust someone with $100, but does that mean I would trust them with $1,000,000?

The better solution is to not to rely on trust or semi-trust (i.e. trust multiple parties not to collude) at all. Instead, incentivize people to act in their own self-interest (the same game-theoretic assumption underlying the blockchain). This is how TruthCoin incentivizes voters to adjudicate decisions (voters are analogous to miners): [https://github.com/psztorc/Truthcoin](https://github.com/psztorc/Truthcoin)

</comment></comment></comment><comment><USER4> I use the betfair 'betting exchange' API +crude algos to place bets on the final results of soccer leagues. My main risk, I think, is betfair going bust with all my capital locked into season-long bets (I make many small bets on unrelated markets).

They charge 5% commission on _net_ profits for a given event (would be reduced to 3% if I had very large volume). They are floated on the stock market, have a decent market cap and I think my funds are likely safe with them. That 5% is a lot, and really reduces my profit, BUT at least I am fairly sure my capital is safe. (Unlike e.g. intrade [0] who I really wanted to use (big arbs on US presidential election vs betfair) but did not trust (rightly so, as it turned out)).

The other positive thing is the market depth - many punters use betfair. This is self-reinforcing - people don't use eg betdaq because people don't use betdaq, even though their commission is currently 3%.

Another thing: I am happy having my capital tied up in bets because inflation and interest rates are low. That is not true of bitcoin. For bets on a given match, made and settled the same day, this might not be a big issue, but for longer-term bets ...

I'm interested to see how xbet does, good luck to them.

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

<comment><USER5> Oh, I didn't know betfair had an API, that's interesting. Do you know if there exists an open source implementation for any languages, or do you roll your own?

<comment><USER4> Maybe [https://github.com/betfair/API-NG-sample- code](https://github.com/betfair/API-NG-sample-code) is a good place to start?

Also: [https://developer.betfair.com/](https://developer.betfair.com/) [http://forum.bdp.betfair.com/](http://forum.bdp.betfair.com/)

I was careful about using someone else's code for handling my money! So I used basic example code that I understood (I no longer remember where I got it, sorry), then extended it.

From various forums etc, there seems to be a big pool of people doing this sort of thing. Also, from the betting market dynamics, you can see there are other algo traders - watching the in-play betting on soccer matches is quite amazing - the bettors work with such small margins and big volumes, 'predicting' the game in real-time. Most impressive.

<comment><USER5> Thank you very much. This looks like an interesting market to experiment with :)

</comment></comment></comment></comment><comment><USER6> beware: this site's session cookie is scoped to "/", and can be hijacked by any malicious page on their domain that you nav to.

also there's no httponly flag on the session cookie

gotta love bitcoin sites

<comment><USER7> > gotta love bitcoin sites

A good reason there is a lot of work being done to separate the two offerings from each other. I'm supporting all sorts of features, but to pay, you gotta send Bitcoin with a client - not my site. Safest that way. Also, see Counterparty.

Edit: From the site in question: "Nowhere do we store or request any personal information." [https://xbet.io/why_use_xbet](https://xbet.io/why_use_xbet)

Another thing: It's not a forgone conclusion that Bitcoin technologies will get better over time, but there is a large amount of pressure to make that a reality. People like their money, above all.

</comment></comment><comment><AUTHOR> XBet.io uses Counterparty, a protocol build on top of Bitcoin, to match and settle all bets: XBet never holds your funds (only you do).

<comment><USER8> Is XBet.io's commission programmed into Counterparty somehow?

<comment><USER9> Exactly. All bets are matched and all fees are handled by the Counterparty protocol. The only thing that XBet.io does is broadcast the results of the games (and provide a nice UI for making bets on those future broadcasts).

</comment></comment></comment><comment><USER10> No BTC site is complete w/o the trollbox

</comment><comment><USER11> If you're in the U.S. don't get your hopes up, it won't let you bet.

<comment><USER12> You can bet anonymously, no?

<comment><USER13> Also, have you ever heard of Tor?

</comment></comment></comment><comment><USER14> offering poor odds on England beating Costa Rica right now. I can get better elsewhere.

<comment><USER15> Somehow I get the feeling that this is primarily targeting people who, for whatever reason, don't have easy access to those better odds.

</comment></comment><comment><USER16> One of the best use cases of Bitcoin: illegal gambling... in addition to online-enabling other vices.

<comment><USER17> It might be illegal in your shitty country but not mine.

<comment><USER18> But the point is that we don't need bitcoin to gamble. Only those in illiberal countries countries need bitcoin to gamble online.

<comment><USER19> That's not true. Online gambling is legal in Canada but my bank has taken it upon themselves to block deposits to Betfair.</comment></comment></comment></comment>


Ask HN: Do you want an api to generate file preview images? - <AUTHOR>

I'm trying to come up with an idea for a hackathon (hackpr.eventbrite.com) and thought it might be cool to make a service that could generate a thumbnails of any kind of file.
You send the url of a file and the service will give you the url of an image preview of the contents of that file.
I have an idea on how to do it but was wondering if you guys were interested in using something like that. What is the point of building something nobody wants to use. <comment><USER2> If by preview you mean how OSX has is popup preview? Whenever I hit spacebar on a file it pops up a big window where I preview it's contents. If you have the right apps installed it works for presentations, excel sheets, and videos.

Would this product replicate that functionality for web?

</comment><comment><USER3> _Any_ kind of file?

</comment><comment><USER4> Sooo.... MS Office?</comment>


A Clarification - <AUTHOR> http://blog.samaltman.com/a-clarification <comment><USER2> He made his original point pretty clearly in my opinion.

As a result of his original post (which was totally harmless and not even slightly controversial), he's forced to write this mea culpa to avoid being labeled a heretic (which is literally the problem he's discussing in his original post), and has to end it with a dig at Donald Trump as if to say to the people threatening him with claims of heresy: "Hey guys, see, I'm on your side. Isn't Donald Trump the worst?"

The irony is just incredible. Nice try Sam, but you made the mistake of trying to reason with these people. You're not a person making arguments; to the people you're talking about in that original post, you're merely an embodiment of whatever ideology they think you're representing at the time.

Your critics aren't even concerned with what they think as individuals, they're purely concerned with the aggregate of what their contacts on social media will pretend to think publicly. Trying to debate them on an individual or intellectual level seems pointless, especially through any kind of broadcast medium. Your ideas will get through to some, but only the response labeling you a heretic will be shared.

There are jokes people will laugh at when they're in a dark room, but if the lights are on and their family is watching, they will shake their head disapprovingly instead. Politics is the joke, and social media is the light and family in that room.

<comment><USER3> Thing is: nobody threatened to murder him, no one called for a boycott of Y Combinator. Nobody did anything except disagree with him. Somehow an insignificant fraction of humanity disagreeing with him was too much for him to deal with though.

<comment><USER4> It is probably difficult to voice an unpopular opinion and have it be met with so much derision by people whose opinions on business matters you respect so deeply. Unfortunately it is quite common for a pragmatic and reasonable professionals to have less than reasonable personal beliefs. Sam cares about what people think about him which is healthy and separates him from the sociopaths of the world.

</comment></comment></comment><comment><USER5> One favorable interpretation is that he's trying to say something similar to what Richard Muller said here

[https://www.quora.com/What-is-your-opinion-on-the-UC- Berkele...](https://www.quora.com/What-is-your-opinion-on-the-UC-Berkeley- protest-against-Milo-Yiannopoulos-Feb-2017)

In the 60s and 70s UC Berkeley used to let controversial speakers present. The audience would listen patiently. And then take turns asking questions trying to catch the racist / bigot / Nazi / homophobe / whatever in the midst of logical failures. Now we just protest and shut down ideas via claims of political correctness. It's not nearly as effective.

<comment><USER6> It's incredibly absurd how this discussion is going in this site.

People are literally defending the idea that preventing currently unpopular ideas from finding expression, if necessary violently (and certainly through physical obstructions, which is of course violence), is moral and even good.

The obvious problems are, of course, left without any solution.

1) if this idea had been applied as little as 20 years ago, today's society would have been violently repressed.

2) we are not "right" on everything (on the moral front, and outside). We must allow for evolution of our opinions because of changes in our understanding, and because of changes in the real world surrounding us that our morality just doesn't consider at the moment.

3) the potential for abuse of this attitude is incredibly huge.

Generally we should consider that our attitude is right now violently repressing the morality of society as little as 20 years from now. We will fail in that, and will do a lot of damage in the process. It is as simple as that.

We should welcome speakers and friends and colleagues from wildly different viewpoints and environments and engage with them. Clearly, that's the way forward.

<comment><USER7> Some of these ideas aren't "unpopular", they're answered. They're "we had a world war about this"-answered.

</comment></comment></comment><comment><USER8> Still disagree vehemently. One "brilliant jerk" who isn't shy about saying that "gays shouldn't be allowed to marry" or "Jews kill and eat babies" or "all muslims are terrorists and we shouldn't allow them in the country" in an environment that is tolerant to his views can make an environment hostile for 50 non-jerks whom you'll never have a chance to discover are brilliant.

If you try to tell me I have an obligation for the sake of "progress" to tolerate people who condone or advocate either violence or the denial of rights towards myself or people I care about, I will laugh in your face and ask you (politely, the first time) to get out of my place of work.

<comment><USER9> Who decides what voices should be silent?

<comment><USER10> Voices that call for repression of rights for certain parties should be silenced.

Gay people are a subset of people who have been harassed because of something that a) they cannot control, b) harms nobody (As long as it is between two consenting adults, but that's the same for heterosexual relations).

Fascists are a subset of people who have been harassed because a) they call for non-whites to be exterminated, b) previous fascist movements have put into practice that goal.

The difference is: If I speak about death to gay people, historically this has led to gay people dying -- even if a gay person sat still, they would be attacked. If I speak about death to fascists, historically this has led to fascists dying -- but only after they have mobilized to take power andor spread their beliefs.

It doesn't take a genius to figure out which voices should be silent. That is, if one values equality among fellow humans, and keeps a gentle eye on history.

<comment><USER11> I can't be on board with this because the way it's treated currently is a one way street. As much as I hate the stuff you're mentioning specifically, I'm not going to call for those people to be silenced when it's acceptable and somewhat popular to say the same thing about whites, men, straight people, etc. And ultimately calling for silencing the far right while doing and saying nothing about equally abhorrent ideas on the far left only creates useful propaganda for the people you want to silence.

As for your specific example, it doesn't really fit into what's happening now. Violence towards people labelled as fascists is common, but not the other way around. And in parallel cases, things like "death to cops" has absolutely led to an increase in people murdering police officers. This whole thing is benefiting the far right from a propaganda standpoint.

<comment><USER10>
      when it's acceptable and somewhat popular to say the same thing about whites, men, straight people, etc.

You're ignoring the power dynamics. Take trans women for example. 46% will commit suicide, over 80% have experienced assault (and only a slightly lower statistic for sexual assault). Thus a cis person saying something of the sort like "trans women should be murdered" is propagating an idea that has very real effect on the world. Since it is already accepted that trans women are harmed as such, making such a statement propagates the harmful ideas further. It is very likely that after that person makes such a comment, a trans woman will die.

In contrast, cis white men are not being murdered by trans women. Thus for them to state that "cis should die" is a act of protest, and has very little effect on the real world. The difference is: Is this likely to happen, is this happening, and has this happened? In the former instance the case is yes, in the latter the case is no.

      Violence towards people labelled as fascists is common, but not the other way around.

On the contrary, fascists have murdered in recent years: 1 British politican (Joe Cox). 2 American Representatives. A number of American people[0][1]. I can bring up more examples but I'd like to get off this site sometime today :) Besides, it's trivial to google.

Indeed, White Supremacy is listed as one of the things that the US DHS is working to combat[2]

      "death to cops" has absolutely led to an increase in people murdering police officers.

Source please? All I've seen is more police killing unarmed and already restrained people.

[0]: James Fields was a fascist. [https://www.theguardian.com/us- news/2017/aug/13/charlottesvi...](https://www.theguardian.com/us- news/2017/aug/13/charlottesville-james-fields-charged-with-was-pictured-at- neo-nazi-rally-vanguard-america)

[1]: [https://www.theguardian.com/us-news/2017/may/27/portland- dou...](https://www.theguardian.com/us-news/2017/may/27/portland-double- murder-white-supremacist-muslim-hate-speech)

[2]: [https://www.dhs.gov/blog/2017/08/16/did-you-know-four- ways-d...](https://www.dhs.gov/blog/2017/08/16/did-you-know-four-ways-dhs- working-prevent-terrorism-home)

<comment><USER11> [http://www.newsweek.com/police-line-duty-deaths- increase-201...](http://www.newsweek.com/police-line-duty-deaths- increase-2017-636064)

And there have been specific instances of BLM activists killing police, this being the most high profile one: [https://en.wikipedia.org/wiki/2016_shooting_of_Dallas_police...](https://en.wikipedia.org/wiki/2016_shooting_of_Dallas_police_officers)

We also had a Bernie supporter shoot Steve Scalise, and the general social media response to Rand Paul being assaulted was celebratory and saying he deserved it for being a Republican.

Seems like the power dynamics doesn't necessarily mean what these people are saying won't lead to violence. There are certain things which no power imbalance excuses, and in my opinion this is one of them.

And what happened in Dallas is much more clear cut than what James Fields did in Charlottesville. He seemed to have snapped after someone hit his car with a bat. Seems more like road rage to me based on the video. I think they're going to have a hard time convicting him of 1st degree murder, honestly. Plus, had the police done their job that entire situation likely would have been avoided. The violence should not have been allowed to escalate like it was.

</comment></comment></comment></comment></comment></comment><comment><USER12> I may get downvoted for saying this but, anecdotally, people today seem way more sensitive and emotional about other people's viewpoints and actions, especially when they disagree with them.

Growing up, it was much easier to have conversations of differing opinions because people not only listened more, but they also listened better. (Perhaps that's in part due to the unique sense of curiosity that kids have.)

Today, it commonly feels like conversations involve hearing aids that have been turned off completely.

Einstein is quoted as half-jokingly saying that the greatest force in the universe is compound interest.

I think it's emotions.

<comment><USER13> People who had no voice have it now; people were angry and offended before, but lacked the freedom to tell you.

<comment><USER14> I agree. That is not to say that everyone getting upset nowadays is necessarily in the right. But I think what many people remember as calmer, more reasonable discussions of yesteryear are largely a reflection of greater hegemony.

<comment><USER13> More voices also means more noise, but I think this is a transitional period, and the noise will find its level again. The value of giving people a franchise based on what they have to say has to start somehwere, and it's an admittedly rough start. I feel like too often the value of the underlying process is ignored in favor of obsessive complaining sbout reasonable and expected cultural growing pains.

<comment><USER15> Ah yes, the growing pains of ruining people's lives for having the wrong opinions. Just reasonable growing pains!

<comment><USER16> Would you please do a better job of following the site guidelines? They include "Please respond to the strongest plausible interpretation of what someone says, not a weaker one that's easier to criticize." They also include "Snark is deprecated".

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

<comment><USER15> What is a more generous interpretation of what he said? I didn't misinterpret it, I used a rhetorical device to unwind his obfuscation of exactly what he was defending. If you only follow a dry analytic tone, then you deny yourself an essential tool for disarming sophistic contortions that defend things that are clearly indefensible when plainly stated.

<comment><USER15> Orwell gives a good example of these kinds of contortions in _Politics and the English Language_ :

 _'While freely conceding that the Soviet regime exhibits certain features which the humanitarian may be inclined to deplore, we must, I think, agree that a certain curtailment of the right to political opposition is an unavoidable concomitant of transitional periods, and that the rigors which the Russian people have been called upon to undergo have been amply justified in the sphere of concrete achievement.'_

To which the proper response is the ungenerous and sarcastic, "yes, of course it is right to murder your opponents when it benefits you". Because to engage otherwise is to give the sophistry more legitimacy than it deserves.

<comment><USER16> I'm fond of that essay too. But if you're going to play the Orwell card it's best to make sure that you're not playing it cheaply, i.e. to justify personal venting or sophistry of your own. Just because someone else is doing those things doesn't mean we aren't also.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER17> Statement: _" This is uncomfortable, but it's possible we have to allow people to say disparaging things about gay people if we want them to be able to say novel things about physics."_

Clarification: _" I didn't mean that we need to tolerate brilliant homophobic jerks in the lab so that we can have scientific progress."_

I can see how people might have misunderstood.

</comment><comment><USER18> We are survival machines for genes who evolved brains in order to predict which moves will improve the probability of the survival of our genes. The survival machines who evolve the better predictive models fastest are the ones who win. The best way that I know how to evolve my predictive model quickly is to argue with those who hold views that are different than my own. In the majority of these cases, both parties benefit by improving their predictive models. I'm not sure why, but hacker news seems to filter out a lot of unpopular opinions. This slows the rate by which we evolve our predictive models. This slows the rate of innovation. IMHO this leaves us all poorer both individually and collectively.

<comment><USER19> Humans progress involves consigning some models to the trashcan of history.

</comment></comment><comment><USER20> In my opinion, I think it is important that we maintain a belief that it is possible to distinguish between progressive controversial ideas and regressive ones.

Am I placing too much faith in reason?

An issue I take with Sam's initial argument is that it seemed to imply that it is not possible to tell the progressive and regressive apart.

<comment><USER11> That's not the point. The point is that freedom of speech should exist absolutely regardless. Weakening freedom of speech to attack regressive ideas still weakens freedom of speech.

<comment><USER20> What is the (purpose of / value in) defending regressive ideas?

<comment><USER21> You pretty much could have just said, "What is the (purpose of / value in) defending ideas I don't like?" Obviously people may disagree on what you feel is "regressive".

<comment><USER20> Since when is regressive defined that way?

If we can't agree that there exist regressive ideas, what are we even doing here?

I haven't stated what I believe to be progressive or regressive. You don't know what viewpoints I hold. I have withheld these viewpoints from the discussion precisely because I am trying to establish agreement regarding some basic, primitive notions.

<comment><USER21> > If we can't agree that there exist regressive ideas

And just what are those ideas? I'm guessing not everyone will agree to them.

> I haven't stated what I believe to be progressive or regressive. You don't > know what viewpoints I hold.

It doesn't matter. My point is not everyone will agree with your viewpoints.

<comment><USER20> What is your point?

How do you propose we move forward?

<comment><USER22> How does the stock market go up? In a straight line? No, it moves up and down, but mostly up. That's why index funds are better, no?

How do we move forward? Do we go straight ahead? Well, dictatorship is always moving straight ahead, because they can easily define what is progressive and what is regressive, by looking at the dictator. If progressiveness and regressiveness is so easy to define, what do we even need democracy for? Let's just find the most progressive person and appoint him our president/prime minister/chariman/king/chieftain, and let him lead us forward.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER23> Sam, I think the best clarification would be a big long list of examples of what you mean. For example take this list of claims:

       1. Women are inferior.
       2. Gays are evil.
       3. Whites are greedy.
       4. Children are valid sex objects.
       5. Hitler wasn't all bad.
       6. vi is the best editor
       7. Drug users should be killed.
       8. Islam is not compatible with western democracy.
       ...

Immediately on writing this I make a distinction on "ethically falsifiable". Some statements just aren't clear (1,2,3). The ethically falsifiable ones (4,5,7,8) are closest to what you're talking about, I think. If you can control your rising gorge then you could have a rational debate about them! The debate would be about connecting some set of principles to the claim. "Ethical falsifiability" then means that a claim is well-formed enough that a connection to some set of concrete principles can be made.

I also notice that I've instinctively not introduced "scientifically falsifiable" statements, such as these:

       1. Global warming is real.
       2. Vaccinations cause autism.
       3. The earth is flat
       4. Evolution is wrong
       5. Science is a scam.
       6. Putin helped Trump get elected.
       7. Light is a wave in luminferous ether.
       ...

To me, these claims are just not that interesting (the one exception is 5, a meta-assertion about the state of academic scientific inquiry itself). It would take a person with extraordinary credentials to get me to start talking about any of these.

</comment><comment><USER24> I think there's a subtle parse here that's being missed. There's an important difference between being a _jerk_ and having a reasonably articulated controversial opinion that you would like to discuss dispassionately and intellectually.

Just to take Altman's example, a jerk might say "I hate those dirty homosexuals, they're ruining marriage for us good heterosexuals Christians". A reasonably articulated opinion might be "What are the social consequences of prevalent homosexuality? Is it possible that some of them are negative? Why is it that the pre-modern civilizations that were hyper-tolerant of homosexuality died out (greece, rome) and were replaced by comparatively intolerant ones?"

IMO the former is not ok. That is venom, and it is unhelpful and should absolutely get you cast out of your job. But the latter is an intellectually expressed idea, an idea that is up for debate and the answer to which may be interesting/consequential. In a society that values technological progress, the latter form must _always_ be acceptable. _All_ ideas must always be open for discussion in that manner. That does not mean that we should tolerate venom, discrimination, or harassment, however.

<comment><USER25> Homosexuality is a scientific fact -- people don't choose it like they do a flavor of ice cream.

In this light, how do we reconcile the position that homosexuals should have less rights with the broadly accepted idea of basic human rights?

Edit: To be clear, I'm a strong supporter of free speech -- I think it is one of our most important cultural principles. It just seems to me that the gay rights issue is very clear cut and incredibly personal. Thus, its opponents receive very strong feedback, which isn't that surprising. I do think calm discussion with hard-hitting questions is the best way to address offensive beliefs, but I also realize there isn't always time for that.

<comment><USER24> To be clear, i'm not arguing that gays should have less rights. However, if I _were_ to put forward such an argument, it would look like this:

There are all kinds of classes of person who's rights we proscribe. Violent criminals, and those who are dangerously insane, come to mind. It's possible that some of those individuals were born that way - that they were predisposed to that behavior in a way that they cannot be 'blamed' for. Yet we feel no compunction about taking away their rights, because we feel that it's necessary to protect the safety of our civilization. So, in short, it's ok to take away a minority group's rights if the exercise of those rights is sufficiently harmful to society. Now, if you are a religious person, you may believe that Homosexuality contributes to moral decay, and the breakdown of sexual and social norms that serve to promote positive familial and social development. In light of that, you may rationally conclude that homosexuality is sufficiently harmful to society that the rights of homosexuals need to be limited.

Again, I cannot stress enough that this is _not_ what I personally believe. But IMO a person presenting their view in the way that I just did should not be censured for doing so. They should be argued with. We should attempt to convince them that our worldview is better. But they shouldn't lose their job, and they shouldn't be made afraid of expressing their view in public.

</comment></comment></comment><comment><USER26> _> I didn't mean that we need to tolerate brilliant homophobic jerks in the lab so that we can have scientific progress. _

Well, Sam, you didn't say that.

Rather, the totalitarian left, exactly who the article was criticizing, sensed heresy and pounced, without any goodwill or thoughtfulness.

They did exactly what you implied they would do, and now you are apologizing for them doing it.

2017, everybody.

<comment><USER27> We seem to have a totalitarian left that wants an intellectual monoculture vs. a totalitarian right that wants an ethnic and cultural monoculture.

I've been rediscovering libertarian ideas lately and realizing in the process just how profoundly and deeply the discourse has shifted toward authoritarianism across the whole political spectrum over the last 15 years. I really blame 9/11\. The West lost its collective mind after that event and still has not recovered. Apparently terrorism works.

Economics is probably the other factor. Stocks are up but the street has not recovered. Totalitarian ideas always grow when people feel economically stressed. I think it might even be instinct, sort of like how chimps get aggressive and raid when under stress. Totalitarianism is about preparing to raid the neighboring tribe.

</comment></comment><comment><USER28> Original post on HN:

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

<comment><USER29> And the counterargument to the original post on HN:

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

</comment></comment><comment><USER30> Political correctness is used to persecute and bully people. I'm surprised that many don't see it.

<comment><USER31> How so? Physical violence? Criminal charges?

<comment><USER3> Once a year some body gets fired, twice a year some body gets maligned on twitter. This is considered much worse than the times some one gets fired due to bigotry or murdered due to bigotry.

<comment><USER32> That it has become acceptable is seen as a regression of society. We should be eliminating bullying not debating who the victim should be today.

<comment><USER3> you're debating who the victim should be.

I am (via sarcasm) stating that being murdered is worse than being fired and if Side A's speech ends in firing and Side B's speech end in 11 black people in in a church being murdered: I'm Side A All-Day-Every-Day.

<comment><USER32> I don't see how I'm debating who the victim should be unless you've mistaken me for somebody else.

In any case murder vs bully is a false dichotomy.

</comment></comment></comment></comment></comment></comment><comment><USER33> I bet there is a positive correlation between being intelligent and being open minded.

</comment><comment><USER34> This time, at least, he lists some specific examples of topics he thinks others don't want discussed. An improvement over the last post

</comment><comment><USER35> Before startups, there was this concept of "professionalism".

The core idea of which was, you would be able to accomplish your goals in a wide variety of adverse conditions.

</comment><comment><USER36> I get confused reading this because I keep finding it difficult to reconcile the reasoning and logic between attitude, demeanor, and intellect.

<comment><USER37> What? The entire article is couched in terms of "people saying controversial things."

> I'm a straight white man so I have no clue really

OK, stop and have a think about what you're saying. Because "you're a [sexual preference][skin colour][gender]" you "have no clue really"? Do you honestly have an issue with the original article and yet somehow think that saying stuff like this is OK? Or worse, that it's OK _if you 're talking about a specific preference, skin colour, or gender?_

Edit: Updated parent post is much less incendiary and so I retract my vitriol. Leaving my original response here for reference.

<comment><USER36> I edited my original post to just my thought, not my feelings (to your point).

</comment></comment></comment><comment><USER38> Where do you draw the line between the jerk and his freedom of speech and the brilliant genius spouting unpopular, ahead of their time, ideas. How do you make the difference?

If we accept that we can't, shall we treat them all as jerks and deman a clean, PC world or shall we accept anything at all in the name of protecting freedom of speech?

</comment><comment><USER39> Again, Sam misses the point - saying today that 'gay people shouldn't have rights' is not the same as saying 'gay people should have rights' 20 years ago (or honestly probably even 5-10 years ago). Arguing to take rights away from people is in no way equivalent to arguing to treat people equally.

Controversy is not a measure of worth or consideration. Instead, we should be considering what impact our statements have on other people. LGBT rights do not negatively affect straight people. But homophobic ideas can and do hurt gay people.

<comment><USER40> I do not get the impression, from the previous post nor this one, that Sam is unaware of the distinction between the impact of/consequences of/hurt caused by one controversial stance 50 years ago ("gay people should have rights") and the opposite one today ("gay people shouldn't have rights").

If this distinction is something he understands (which, personally, I believe he does but hey, I could be wrong), could it be that it's not him missing the point?

<comment><USER41> Sam's argument seems to be that one of our major social problems is that we socially disallow controversial ideas, which makes him feel uncomfortable expressing himself and stifles social progress. Therefore, we should start allowing controversial ideas.

The parent comment asserts that Sam's premise is wrong: ideas aren't being rejected for their controversy, but rather for their harmfulness. Saying that "it's possible we have to allow people to say disparaging things about gay people" (see his previous post) implicitly draws a false equivalence between civil rights advocacy and bigotry as fair-game "controversial" ideas.

</comment></comment></comment><comment><USER13> Ah the pain and peril of being too wealthy for someone to take you aside and tell you to just stop digging.

<comment><USER42> The parent comment is a good representative of the non-communication sort of dismissive attack which Sam and others are rebelling against.

At a meta level it ignores the question of "Why is Sam pursuing this conversation?" (the stop digging part which refers to the adage, "If you find yourself in a hole, stop digging.") which implies that Sam is in a hole of his own making, in which 'hole' is considered a bad thing.

Coupled with the "too wealthy for someone to take you aside" which implies either that no one would risk offending Sam by disagreeing with him like the parent does, or that those who associate with Sam (and associates were clearly targeted in the various twitter tirades)

Combined, this is exactly the sort of dismissive comment that seeks to shut down conversation rather than encourage it.

Overall I see so little respect, and so much vitriol, that I wonder if maybe people are parodying the exact sort of behavior that Sam is complaining about or if they even recognize their own patterns.

When someone says something that sounds to the listener as wrong or stupid or elitist or any number of negative things, is that the speaker's issue or the listener's issue? And when the listener is dismissive they unilaterally give up their opportunity to understand do they not?

After Charlottesville there were a number of journalists that went out and talked with people in various groups who were espousing racist points of view. What I found interesting was that of all the people they talked with and I got a chance to see or read, only two 'types' seemed to be there, one was a follower type person who was feeling threatened in their own life and had externalized that fear/threat as as anger/hate against an identifiable group. And the other were the leader type people who really didn't seem to be invested on way or the other but they could use that fear to get people to do things that advanced their own agenda of acquiring power.

There was an article on HN recently that humans are wired to think in Us vs Them modalities. No doubt it helped us survive in tribes, but we have to set that aside if we want to address the core of the problem, and sometimes if we even want to know what the problem really is!

It is very enlightening to hear the stories of "former" racists for this reason. Many that I have heard started with someone listening to the rhetoric of an agitator 'leader type' person who would craft a narrative that this future follower's problems were the result of these 'others'. And call upon their membership in the group of 'Us' to help stop the influence of 'Them'.

We see this pattern raging rampant in national discourse and local discourse, whether it is races, political party, political ideology, or wealth disparity. And too often that rhetoric is portrayed as the conversation but it isn't. It is the _emotion_ , it is not the _issue_.

People who are unable to move ahead in their personal economic growth see people who appear to be effortlessly becoming wealthier and the _emotion_ is to hate those people. The _issue_ is structural barriers that maintain high levels of wealth inequality. People who feel their financial security is under attack by _the perception_ that those who would take it from them would give it to people unwilling to work as hard as they do. People use strong emotions to shut down conversations, sometimes intentionally and some times not, but the outcome is the same. Something along "We don't talk about that because it just gets everyone all upset."

And I think that is _exactly_ what Sam was trying to say, which was "getting everyone all upset" is not a useful reason for not talking about a particular topic. You need to look that emotion as a signal that the topic is important. If you ignore these important topics they fester and they explode. Whether it is in divorce or in elections where the very fabric of the government is challenged to respond. And by talking about the topic, you can search for the issue behind the emotion and address it.

<comment><USER13> If your sensitivity to anonymous criticism is really that severe, I'd suggest building a kind of emotional immune system and just getting on with your life. Certainly that kind of sensitivity to the speech of others shouldn't inspire you to wade into a cultural crossfire, _especially_ if you're in such an advantageous position as a Sam Altman.

<comment><USER42> I wasn't trying to communicate a sensitivity to anonymous criticism, rather I was trying to communicate that anonymous criticism only contributes heat and no progress to a discussion. And then I tried to tie together how that heat can lead to suppression.

I take it from your response that you disagree with that. I would be interested in hearing either how you hoped your original comment would contribute to the discussion or how you think I could have more clearly articulated my issue with it.

<comment><USER7> But free speech says that you shouldn't suppress ANY speech no matter what it is, so you shouldn't be trying to suppress QAPereo now.

<comment><USER42> Are you saying that I shouldn't ask QAPero questions (suppressing my speech) or are you saying that by asking questions QAPero is being suppressed? How is that supposed to work.

<comment><USER7> > anonymous criticism only contributes heat and no progress to a discussion

Is a direct attempt at suppression.

I'm saying you're being hypocritical.

</comment></comment></comment></comment></comment></comment></comment><comment><USER43> Wait what? San Francisco has introduced legislation outlawing the discussion of ideas? Or did someone just post something nasty about the author when he posted something they found nasty?

Nothing to see here except someone having the vapors over being told their ideas are shit.

<comment><USER3> according to the original article it wasn't even people telling Sam he's an idiot/asshole. He was just in Beijing being fawned over and thought it would be nice if he was in SF too.

</comment></comment><comment><USER44> Two questions, for anyone that cares engage in free discussion of ideas:

If someone were to make a disparaging remark about Christians, in general, in their workplace, should they be punished or fired for it?

If someone were to make a disparaging remark about Muslims, in general, in their workplace, should they be punished or fired for it?

<comment><USER45> Would you mind not posting blatantly off-topic religious flamebait?

> _Eschew flamebait. Don 't introduce flamewar topics unless you have > something genuinely new to say. Avoid unrelated controversies and generic > tangents._

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

<comment><USER44> Sorry, this was not intended as religious flamebait. It was to illustrate a point that is, I believe, quite pertinant to the issue sama is discussing. And I think it's worth noting that the discussion it engendered was completely civil by all participants, which is what I was hoping for, rather than getting flamed.

But I'll defer to your judgement, and not respond again on this thread.

</comment></comment></comment><comment><USER46> smart man goes to china, sees something he likes . comes back and apologizes for liking it to appease his crowd.

not a very smart man.</comment>


IT consultant paid £2,000 a day to cover civil servant's job - <AUTHOR> http://www.theguardian.com/uk-news/2014/feb/11/mod-it-consultant-paid-2000-day-cover-civil-servant-job <comment><USER2> This article is _highly_ misleading. Shoddy reporting from the Guardian there.

She's not on a £2k/day salary, that's just the rate paid to Capita, a consulting company. For a senior person (e.g. partner-level), £2k is actually on the cheap end. I went for £400/day 10 years ago as a Junior Software Engineer fresh out of uni, and by the time I left my day rate was about £1k/day.

(My rate was from Accenture - somewhat more high profile than Capita, but shows that £2k/day of chargeout rate is not so extraordinary).

In case this was not obvious, neither myself not Ms Ferguson take home anything close to the day rate - back when I was being sold at £400/day my own salary was a whopping £22k p.a.

<comment><USER3> > She's not on a £2k/day salary, that's just the rate paid to Capita, a > consulting company.

The point is that the state foots a £2000/day bill to replace a civil servant who'd be paid what, 10% of that? For a total cost of 20% including charges and the like? Which is an odd move if the goal is to reduce costs.

<comment><USER4> > The point is that the state foots a £2000/day bill to replace a civil > servant who'd be paid what, 10% of that?

30% (according to the article - 500k pa vs. 150k pa).

In any case, it's a new role that didn't exist before, so there's naturally a lot of set-up effort. It makes sense to get a more experienced person before hiring someone definitively.

<comment><USER5> You can't compare 500k pa on a short term contract with 150k pa on a permanent civil service contract.

That 150k comes with a fantastic pension (final salary!), they have to pay employer taxes, insurances etc. Not to mention that they're almost impossible to fire.

It's closer to a 300k vs 500k pa comparision.

<comment><USER6> It won't come with a final salary pension since that was reformed, but the contributions are still around the 20-25% mark, vs 6% in the real world.

<comment><USER7> It will if it ends up being an internal transfer.

<comment><USER5> Exactly, which is 95% assured - the top positions will go to experience people.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Do we really have to re-explain the difference between short-term costs of things like rentals and long-term costs of things like employees?

This lady is a rental. You need a rental to give you breathing room to find an employee. Very sorry, but there's nothing much to see here. This is just attention-seeking.

</comment><comment><USER9> Looks like a perfectly fair consulting rate for someone with the skill to be CIO of a large organization.

</comment><comment><USER10> So what's more expensive, hiring an expert at $4k/day who by herself in one month can accomplish what an entire team of complacent government employees probably can't in three years or keeping around a staff of employees who for the most part probably are grossly under-qualified to perform this kind of work?

This article reeks of a lazy financial assessment of this investment (ie, person A is really expensive in dollar terms so we should be appalled that the government laid off person B who was paid 1/100 of this sum).

</comment><comment><USER11> It's funny how brobdingnagian salaries have to get for people to feel shocked.

Would it be OK for only £1,000 a day? £200 a day? Seriously, where is the limit?

<comment><USER12> Who knows? But It´s easy to see how so much money is wasted...

<comment><USER13> According to the article, the recruitment was from the private sector and pays the market rate. If this was nepotism, then I would had agreed with the waste argument. But just because someone is being paid 10x the majority, doesn't make the decision to recruit them wrong.

<comment><USER12> It doesn´t make the decision wrong. It´s a supply and demand game isn´t it? It´s hard not to second guess in this matter, but you have to presume that the cost to replace them is much greater.

</comment></comment></comment></comment><comment><USER14> I have worked for various different companies where they pay developers up to 3 times less than contractor developers and in some cases I have seen companies have more contractors to developers for long periods of time. I understand contractors are useful but they are not worth 3 times more.

<comment><USER15> remember a number of things (in UK at least):

Employee hidden costs: Employers NI, PAYE, car allowance, holiday pay, sick pay, maternity pay, paternity pay, training, pension, healthcare

Contractors have to pay all of that from their turnover - along with professional indemnity insurance, public liability insurance, accountancy fees etc.

And note I said turnover. There seems to be this misconception that all contractor payments go straight into the contractor's pockets. They don't, they are business receipts that go into a company. That company then pays the contractor.

What contractors do get is the ability to shift things around as they see fit. Employees are stuck with whatever structure of payments to make up "the package" is decided by the higher ups.

</comment></comment><comment><USER16> It sounds like for the 2000 quid a day she's building systems that will replace the jobs of thousands of civil servants.

If this is true then the real outrage here is that it's a pretty good investment.</comment>


How to implement child protection firewall? - <AUTHOR> As a guardian, we wish to protect our family especially children from malicious websites.
We implemented the following technologies:
K9 Symantec client protection But it can be surpassed with ultra surf
We're too much worried on this. Can someone kindly advise on implementing a much secure firewall?
[https://security.stackexchange.com/q/158798/46219] <comment><USER2> Put the computer in a place where you can see it. Spend time with your child so you understand what they are doing on the computer. Don't assume software can fill in for parenting.

<comment><AUTHOR> @jareds This will not be feasible always. Can you please tell me what other levels of firewalls can be implemented?

</comment></comment><comment><USER3> [http://dansguardian.org/](http://dansguardian.org/)

It is Linux specific, but if you can find a willing relative/victim to build you a firewall Linux box, it can provide mostly any control surface you might have in mind. And do cool stuff like web caching to speed up browsing and anomalous browsing to keep your traffic safe. YMMV depends on victim</comment>


The Sega SC-3000 Personal Computer (2018) - <AUTHOR> https://dev.to/buntine/the-historical-obscurity-of-the-sega-sc-3000-personal-computer-1hac <comment><USER2> > I believe it's identical to the more well known Z80 CPU that saw massive use > during the 80s in scientific calculators and many arcade machines.

Interesting that the Z80 seems to be so relatively unknown (as home computer CPU) in some parts of the world. Apart from calculators and arcade machines it was in many home computers that were popular at least in Europe (the biggest being the ZX Spectrum, and Amstrad CPC), and Japan I believe because the MSX standard was popular there. And it could run CP/M which was the standard office software operating system before DOS, and was the reason why Commodore added a Z80 CPU to the C128 (in addition to the 6502).

CP/M was (most likely) also the reason why the Eastern Bloc choose the Z80 as its standard 8-bit CPU architecture. While 6502 clones were produced in Bulgaria, it was a complete underdog compared to the Z80 on the eastern side of the iron curtain.

Oh, and not to forget: the Nintendo Gameboy also has a Z80 CPU, although stripped of some instruction ranges.

</comment><comment><USER3> Ah, my first computer! I was gifted this for my sixth birthday back in NZ in a plastic bag full of games and old magazines and it set me on a lifetime of computer obsession.

The pictured Star Jacker game was amazing for the time.

Amongst the memories: * Finishing every level in Lode Runner bar one (and somehow discovering a cheat allowing you to change to any level) * spending hours typing out hundreds of lines of code from a magazine to make a basic dynamic curve "screensaver" * trying to hack into a bank (from a non-connected device, hey I was 7) after discovering the mem command * Coveting the better games my cousin had, like Sindbad and Yamato, on the SC-1000 * I feel like I finished Flicky at level 40. I can't remember the specifics but from the lens of a near-40 year old, the feeling on that run was the closest to perfect "flow" I could imagine at that age * So much blowing on the cartridge and other cargo cult behaviour on timings of off-on switches and first actions to not have things break * having the recorder (Sr-1000?) That never worked meaning everything was a sudden death knockout event. Stakes was high back then!

<comment><AUTHOR> Funny, this is actually how I stumbled upon the article. I was looking for lode runner on archive.org and found this version:

[https://archive.org/details/Lode_Runner_19xx_Sega_TW_en](https://archive.org/details/Lode_Runner_19xx_Sega_TW_en)

... and saw, "SG-1000", and was like, what the heck is that? :)

<comment><USER3> Ah that's great, thanks for that link. I had no idea this was available on an emulator online, my dad is going to be a happy man!

(Apologies to all for the terrible formatting in that last post too, didn't realise the app wasn't WYSIWYG)

<comment><AUTHOR> They have a nice collection in their sg-1000 console library as well: [https://archive.org/details/sg_1000_library](https://archive.org/details/sg_1000_library)

</comment></comment></comment></comment><comment><USER4> "In the bag there was a retro minicomputer"

That would be quite the accomplishment :-)

Looks like a fairly typical MSX system to me. All sorts of nifty Japanese machines were made in this style that never made it to our shores.

<comment><USER5> This one was a bit different because it had so little RAM. I don't think a real MSX would have less than 16KB plus the VRAM.

</comment></comment><comment><USER6> Unfortunately it doesn't appear that there was every any followup to this, at least on this site.</comment>


Ask HN: Can you help me develop a business model for this problem - <AUTHOR>

My college puts on a summer incubator program and in order to apply I need an idea with a valid business model. I thought about all the problems I encounter in order to think of a new product idea, and this is what I have so far.
I'm a subscriber to GQ Magazine because it makes clothes shopping a little simpler. I've found that the style of clothing they market is impeccable, but all of the clothing is extremely expensive.  I've talked to other subscribers who said they try to match what they see in the magazine to clothes they shop for at places like H&M, Express, etc.
My idea relieves this hassle: provide an electronic version of GQ's clothing section for people who can't afford $800 ties. I would follow a similar format GQ has: model new styles with information on where the consumer can purchase with the price. The clothes would instead be from more affordable retailers and possibly have a more casual feel than the mostly-formal GQ theme.
My issue with this idea is the business model. Right now I would rely on advertising revenue from clothing companies and other businesses who want to reach this market. Is this too risky of a business model for a student start-up?
Any advice would be greatly appreciated and will help me get into my school's incubator. <comment><USER2> Is it a print magazine or website? Website is less risky obviously. Going the print publication way will surely lead you to financial failure and starvation.

I say do it, but be okay with not having all the answers right now, but that other revenue opportunities related to your startup will likely manifest themselves.

</comment><comment><USER3> An idea I've been mulling the past several weeks: Netflix for clothes. If you can make the econ. work it could be a killer concept.</comment>


Show HN: SearchMage – Infinite Scrolling and Filtering - <AUTHOR> We just released SearchMage WebExtension that provides infinite scrolling for popular search engines, search result filtering, custom CSS support, dark themes, improved navigation elements for Google, keyboard shortcuts and much more.
For Firefox: https://addons.mozilla.org/firefox/addon/searchmage-search-e...
For Chrome/Vivaldi: https://chrome.google.com/webstore/detail/searchmage/oldjnha...
Feedback and improvement ideas are welcome. <comment><USER2> Is there a business intention with this plugin, or is it just a cool thing that you did? Who is "we"?

Does it impact only Google or will it attempt to auto-load other sites as well?

I'm curious who you see as your target user, and what problem you're solving for them. I don't mean that to sound negative; another way of asking is "what existing behaviour are you replacing"? (Given that most users apparently never read past the first few results...)

<comment><AUTHOR> SearchMage supports Google, Bing, Yahoo, DuckDuckGo, Yandex and Baidu. You can choose in options which search engines are enhanced.

The primary driver for this extension was the fact that especially when searching with Google and using "sort by date" there are A LOT of spam domain hits which lead to potentially malicious sites. It turns out that a simple regexp will catch most of them: \\.php\?\w{6,9}=

So I first implemented functionality to be able to block these spam domains (and to easily report them to Google as well).

Then I found myself clicking many times different menus when I wanted to search by date (try it on Google for example). Those clicks add up so I wanted to make it faster and simpler. So I implemented the popup based search and made the UI as simple as possible but still powerful (sort by, search category). I later added support for multiple search engines to unify the experience.

Then I found myself often searching for certain types of things which are provided by a handful of websites. So I figured that having "search profiles" would be good so I don't always have to write a long line of (site:foobar.com OR site:yeehaw.com OR ...) type things in the search box.

Then I got REALLY annoyed by the very small navigation buttons (next page mainly) in Google search. So I wanted to make them BIGGER so that I won't have to point and aim like in CS every time. After I implemented that, I thought that just scrolling with a mouse down should load new results (infinite scrolling) but it should be opt-in feature only. I want to find information fast and don't want to spend time aiming for UI elements.

Then during evenings the bright colors blind me so I implemented built-in dark mode for Google and Bing and created an option to use any custom CSS for search engines.

And the story goes on. So the features that are there were something I personally needed. And since most people need search every day, I figured that why not share the extension with others as well.

Currently there's no business intention and the code is not obfuscated in any way.

<comment><USER3> Good work

I tried it just for the removing of spam domains in the search results the rest is a bonus to me.

</comment></comment></comment><comment><USER4> I thought infinite scrolling is universally hated feature (at least on hn)

<comment><USER5> I really like infinite scrolling! But, unfortunatly, it's often so badly implemented that it's really annoying.

</comment></comment><comment><USER6> I don't like big buttons at the bottom can I remove it?

<comment><AUTHOR> Option to remove it will be available in the next version. Thanks for the feedback.

</comment></comment><comment><USER7> I really like it!</comment>


How to do Research (a student guide) - <AUTHOR> http://www.nonoscience.info/2008/02/27/how-to-do-research/#more-216

<comment><USER2> "How to do Research At the MIT AI Lab" is another nice resource: [http://www.cs.indiana.edu/mit.research.how.to/mit.research.h...](http://www.cs.indiana.edu/mit.research.how.to/mit.research.how.to.html)

I remember finding the parts not specific to the AI Lab applicable to my (academic) research.</comment>


Big Data can Define Morality - <AUTHOR> http://www.bernmedical.com/1/post/2013/02/big-data-can-define-morality.html

<comment><AUTHOR> Here is an article I have been working on. I am interested in hearing feedback from HN community.

Premise is we can measure effects of decisions and define morality on what happens. If outcomes are good: moral. If outcomes are bad: immoral.

<comment><USER2> We may be able to evaluate decisions based on the new regime of copious data, but it's a stretch to suggest a connection with morality.

The efficacy of a choice can easily be measured with great and copious data. But the morality of a choice is a different way of looking at decisions, and it's not obvious how morality be evaluated with a quantifier like massive amounts of data.

> If outcomes are good: moral. If outcomes are bad: immoral.

The words "good" and "bad" have the same problem as "moral" -- quantification is orthogonal to "goodness". Big data can only quantify, it can't judge something on moral grounds.

In 1600, everyone believed that astrology worked and was a personal asset. If we had had big data at that time, studies that only quantified would have revealed that nearly everyone believed that astrology was useful.

At that time, everyone thought astrology was factual, and everyone was wrong. No amount of data collection could have gotten around this structural problem.

Today, everyone seems to think antidepression drugs work, and if we judged the value of antidepression drugs using quantitative methods, we would have a clear winner. But as it turns out, antidepression drugs don't work, and a data-based, quantitative measure of their popularity is very misleading -- it only reveals the degree to which the placebo effect drives public beliefs.

It's the same with moral questions -- big data has a limited role if what's being measures is a mass delusion.

<comment><AUTHOR> I address some simple framing of how to define "good" and "bad" in the article. I think we can borrow from US Declaration of Independence- anything that helps preserve and promote the "self-evident, inalienable rights" is good.

Edit: my first comment above was a tl;dr - but I suggest reading the whole article.</comment></comment></comment>


Motorola Wins Europe-Wide Sales Ban Against iOS Devices - <AUTHOR> http://gizmodo.com/5866646/motorola-wins-europe+wide-sales-ban-against-ios-devices

<comment><AUTHOR> I personally don't think that Motorolla will enforce the ruling in case they lose the obvious appeal (and $134M).

However IF Motorolla decides to enforce the ruling, it is bad news for all the users in those markets. I personally don't have any problems with Apple products or Apple itself. I think that they have done a great job in what they have offered us (the end consumers) thus far, but also understand that the intellectual property has to be protected.

Still, either way you look at it, someone is going to end up losing big time. Whether this is the end users in Europe or Apple with a hefty licensing fee or replacement costs for devices that have to be adjusted to remove the infringing technology, it remains to be seen.</comment>


A brief tour of differential privacy [pdf] - <AUTHOR> https://www.cs.cmu.edu/~avrim/Randalgs11/lectures/lect0420.pdf <comment><USER2> Differential Privacy is definitely an intriguing security concept. However, another recent interesting negative is that there may be a smaller performance gap between Differential Privacy and the stronger security notion of Obliviousness ([https://en.wikipedia.org/wiki/Oblivious_data_structure](https://en.wikipedia.org/wiki/Oblivious_data_structure)) than previously thought.

Specifically, it was recently shown that the fastest implementations of ORAM ([https://en.wikipedia.org/wiki/Oblivious_RAM](https://en.wikipedia.org/wiki/Oblivious_RAM)) are actually in line with the lower bounds of theoretical Differentially Private RAM performance - meaning you gain zero performance advantage by using a weaker security model. Of course, it's unclear if this is true for other data structures and usages, but ORAM is a non-insignificant research area.

See [https://eprint.iacr.org/2018/1051](https://eprint.iacr.org/2018/1051) for more details.

<comment> Ar-Curunir Differential privacy is almost entirely unrelated to obliviousness; the context of the paper you're talking about is "hiding access patterns", and yes, in that case relaxing to differential privacy doesn't buy you any efficiency benefits.

However, DP is useful for much more than hiding access patterns, and was originally developed for hiding information in statistical analyses; obliviousness cannot help you in those use cases

</comment></comment><comment><USER3> Differential Privacy is not new. It's better than nothing but it dies NOT fix PII leaking to third party and for first party it's a matter of trust</comment>