The Edge of Emulation - <AUTHOR> https://byuu.org/articles/edge-of-emulation <comment><USER2> > If we latch too late, after cycle 40, Full Throttle Racing will glitch. But > if we guess a value too soon, say on cycle 0, that might be too early, and > it might cause issues in another game.

> We would have to retest the entire SNES library to be sure such a change did > not cause any regressions, which just isn't practical with a library of > 3,500+ game titles.

Running automated regression-tests against a library of known-accurate titles actually sounds extremely practical. This sounds like standard software- engineering practice to me.

I'm surprised that a test-harness like this doesn't already exist by now given the relatively mature state of SNES emulation. It seems like it would be an extremely helpful tool to benchmark accuracy of new or existing emulators, prevent regressions from advanced optimizations, etc.

Automated testing could transform the 'blind guessing' approach on tweaking PPU timings from a game of 'whack a mole' to a structured, iterative linear algebra solver. Which could end up being quite a bit more feasible than acquiring 100x die scans of the chip and tracing the logic from the hardware directly.

<comment><USER3> You can't just start it up and run it for 5 seconds, though. A given game might be a hundred hours long and only exercise certain functionality at minutes 5, 37 and 60. It's non-trivial to automate the playback of the whole package and then verify the whole stream against a known good. So you'd need to identify the key points in each game that are important, and replay those with save states and hope that the save states aren't unintentionally encoding corrupted data that came from an existing bug in the emulator you used to run them.

Also, none of that automation you just did will work w/the actual hardware.

<comment><USER4> The input stream for an SNES isn't very complicated - just the state of a few buttons at every cycle, and the transition edges are quite sparse relative to the clock frequency. You could easily record human play sessions and replay them.

<comment><USER5> The SNES output is non-deterministic across runs.

Not only is there unitialized RAM and I/O registers, and some analog effects, the really big elephant in the room is that the system has _two_ oscillators. A ~21MHz CPU/PPU crystal oscillator, and a ~24MHz SMP/DSP ceramic oscillator.

Given that not only do these exact frequencies change between systems due to margins of error on clocks, they also change slightly as the system runs (and gets warmer, for example.)

Every SNES game has sound routines that synchronize the CPU to the SMP.

It wouldn't be possible to make a literal 1:1 play log unless you a) ran a custom register and memory initialization at system startup, and b) replaced the two oscillators with a much faster single oscillator and then used a clock dividier to drive both the CPU and APU off of it.

(You _can_ TAS certain SNES games anyway, of course. It really depends on how the game is programmed to react when the exact CPU<>SMP communications change. If it seeds a random number generator based around the PPU H/V counters that are polled after a CPU<>SMP sync for example, forget about it.)

<comment><USER6> > Given that not only do these exact frequencies change between systems due to > margins of error on clocks, they also change slightly as the system runs > (and gets warmer, for example.)

Maybe it'd be possible to modify some boards to use a CPLD (or an FPGA) for synthesizing those clocks from a common source. This could eliminate most (all?) uncertainty.

<comment><USER5> It would certainly help a lot. People have talked about doing this, but I don't think there's been enough interest to actually make it happen.

</comment></comment></comment></comment></comment></comment><comment><USER7> One of the later comments on the article offers custom PCB design to make a test harness for the PPUs. It seems like a perfect partner for a manually controllable clock for the whole SNES, e.g. as Ben Eater's 6502 demos use. If you can freeze the clock at will, you can more easily inspect the data and address lines. But this wouldn't work if the PPU latch timing depends on analog effects or the PPUs have an internal clock.

Combine the test harness with a USB logic analyzer and signal generator, and borrow some concepts from fuzzers like AFL, and it should be possible to automatically identify critical phases of the PPU operations.

Question: do the PPUs themselves generate analog video, or is there a separate DAC whose bus could be tapped to figure out what color the PPU is producing?

<comment><USER5> The PPUs use static logic and an external 21MHz oscillator (which also powers the CPU), so they're perfect for single-stepping in isolation from the rest of the SNES.

The PPUs themselves output only analog RGB, there's an analog pin for each color channel rather than a digital pin for each color bit.

On some level, I don't doubt it's possible to build a test harness that can automate things based on the analog RGB values with some fuzzy matching, but if we are going that far, it just makes more sense to snoop the bus traffic directly. That would reveal a lot more information and in digital form.

<comment><USER8> > it just makes more sense to snoop the bus traffic directly

It seems the bus traffic won't tell you everything. Just because the PPU reads a specific piece of a sprite from RAM, doesn't tell you which pixels of a scanline it'll get rendered on.

If I were approaching this problem, I would observe that the 'analog' output of a SNES is probably a bunch of discrete values with discrete timing intervals, and therefore can be perfectly captured with no error, especially if you can slow the clock down to eliminate signal reflections etc.

I would then make a test harness consisting of a PPU chip, the ability to read and write registers (either with the rest of the SNES, or some other microcontroller, whichever is easier) and the ability to capture complete frame outputs from the 'analog' outputs without error.

I would then do the same with an emulator, and run code on both which pokes random registers at random (clock accurate) times, and whenever a difference in output appears, debug it.

<comment><USER9> I think you could use a NN to attempt to replicate the circuit under test, perhaps generating verilog, programming a chip and then running it against a set of autogenerated test vectors.

A generalized system for duplicating the functionality of a boolean circuit. If can use its own axioms and generalities, once it "understands" flip-flops and nand gates, can start to directly synthesize more complex logic.

<comment><USER10> That sounds like a great idea, but you today we can't even synthesize arbitrary VHDL/Verilog code efficiently. The author needs an understanding of hardware architecture to write something that synthesizes versus just a test harness not intended to be synthesized.

</comment></comment></comment></comment></comment><comment><USER11> I love that there are people whose hobby is preserving things. SNES was an important part of so many 80s and 90s kids' childhoods! But how many of them have digital logic experience, especially at the reverse engineering level? And actually want to do it outside of compensated labor?

<comment><USER5> > how many of them have digital logic experience, especially at the reverse > engineering level?

Like programming and reverse-engineering, I taught myself the basics of electrical engineering.

The Neo Geo Pocket's SoC is basically nothing _but_ raw logic circuits for explanations of how things work. Imagine 200 pages of diagrams like this: [https://i.imgur.com/2LZ2UWY.png](https://i.imgur.com/2LZ2UWY.png)

(oh and as a bonus, the diagrams often contain errors.)

If you're only looking to create a basic emulator, you can mostly get away without knowing all of this stuff by reading tech docs and the source code of other emulators. But if you really want to get low-level and get things clock- cycle accurate, or want to work on a system that's not been well-emulated to date, digital logic pretty much a hard requirement.

> And actually want to do it outside of compensated labor?

From 2004 - 2018 for the SNES, it was mostly only me. As of today, three people.

In general only one person is really needed. I couldn't say if someone else would have taken my place had I not been around. I suspect so, given how popular the SNES continues to be. Whether they would have done a better job of it than I have is a question that often keeps me up at night.

In any case, the answer is certainly "not nearly enough."

</comment></comment><comment><USER12> What's the barrier to getting the chip decapped and scanned at the needed resolution?

<comment><USER5> Really, just someone with the skill and interest in doing it. Money's no issue unless they want something crazy like $10,000+.

<comment><USER13> John D McMaster seems to have previously done 100x scans for some chips if I'm reading the site right e.g. the latest has a link for 20x and 100x [https://siliconpr0n.org/map/generalplus/gplb52a24a-049a/](https://siliconpr0n.org/map/generalplus/gplb52a24a-049a/). Is it as simple as seeing if he'll rescan the PPUs at 100x or are these not the quality that I was thinking?

<comment><USER5> He has a tremendous backlog of work to do at the moment.

I would prefer to not bother him unless it was a last resort, but that is indeed an option if my breadboard idea does not work out and no others are up to the task of decapping the PPUs.

</comment></comment></comment></comment><comment><USER14> Excerpt:

"If we could recruit a talented electrical engineer, I believe that a custom PPU breakout board could be designed that would aid us substantially in reverse engineering..."

Perhaps Andrew "Bunnie" Huang -- would be someone to go to, for this?:

[https://en.wikipedia.org/wiki/Andrew_Huang_(hacker)](https://en.wikipedia.org/wiki/Andrew_Huang_\(hacker\))

</comment><comment><USER15> Why are test roms too slow if there are at most 41 cases to try? Is getting a game on an snes cart arduous?

<comment><USER5> There are 52 registers comprising approximately 100 settings, there are probably close to twice that number if you include the internal register latches (some of which we know about, some of which we don't know exist yet.) The SNES PPUs are _heavily_ based around combinatorial logic. Changing the timing of one variable can alter the timing needed by other variables. Think of each setting as potentially doubling the number of tests needed (at least when it comes to a blind, brute-force approach.) There are more combinations of settings and pixel generation patterns than atoms in the universe.

The way we've gotten as far as we have is that not every combination needs to be tested. It is a ballpark estimate on my part, but I'd estimate us needing a few million tests to have a high degree of confidence our emulation is correct.

If we had to make those tests into visual patterns on a screen that had to be checked by eye each time, it would be overwhelming even if we only needed a few thousand tests made.

I can test code on a live SNES extremely easily with my 21fx board ( [https://github.com/defparam/21FX](https://github.com/defparam/21FX) ), but it's still far too much to do this by hand.

<comment><USER16> byuu I'm curious, is there some magical piece of documentation/schematic that would break open an entirely untapped area in your SNES research? Or are you at the point the hardware is almost entirely transparent, and it's just a matter of chipping away at the edge cases, or halo projects like a replacement clock for the dual oscillators?

It'd be interesting if some Nintendo engineer for the early 90s has a box in his garage with documents that could change the whole course of your current work.</comment></comment></comment>


Russia Plans Space Program Expansion And Moon Base By 2030 - <AUTHOR> http://www.huffingtonpost.com/2011/04/10/russia-space-program-expansion-_n_846702.html <comment><USER2> While I am very enthusiastic with Russia bringing Energia back from the dead, 20 years to a moon base is very optimistic.

And the He3 thing is plain delusional.

</comment><comment><USER3> I'd gladly settle for seeing any nation land a human on the moon in the 21st Century. Although I bet China will get there first...

</comment><comment><USER4> Given that we have so much data about the moon, is there a "Lunar Environmental Cheat Sheet" anywhere that delineates all the aspects of the lunar environment which could be used by aspiring engineers who have some ideas for moon-base structures?</comment>


Knuth on Sudoku - <AUTHOR> http://www-cs-faculty.stanford.edu/~uno/programs/sudoku.w

<comment><USER2> Trying to grok this. Seems like it's not producing a solution, but instead producing a set of possible digits that can be put into each of the 81 squares. This output is then piped to Dance, which is presumably an implementation of <http://en.wikipedia.org/wiki/Dancing_links> . Can someone confirm?

I love the idea of transforming Sudoku to another problem that already has a good solution instead of trying to attack it from scratch.

<comment><USER3> Sudoku is pretty clearly an "exact cover" problem, and there are loads of known ways to attack those; Knuth's DLX being a particularly elegant one.

As a general principal, it's always a good idea to see if the problem you are facing resembles other known, solved problems.

<comment><USER4> Linear integer programming approaches also work well.

</comment></comment></comment><comment><USER5> There is also a wonderful article by Peter Norvig <http://norvig.com/sudoku.html> with 100-line solver in Python.

<comment><USER6> The fact that it is in 100 lines really doesn't matter. The particular way that python made his implementation small is interesting though.

</comment></comment><comment><USER7> Here's a PDF version, via Google Docs: [https://docs.google.com/fileview?id=0B1njwImQ2AsFOGRjYmRmYWI...](https://docs.google.com/fileview?id=0B1njwImQ2AsFOGRjYmRmYWItMTJkMy00Yjc1LTkzMTgtNWRmOWJlMzY2YjM5&hl=en)

And a C version: <http://gist.github.com/319391>

<comment><USER8> > And a C version

I don't mean to be rude, or mean or anything, since you did take the time to extract it and make a gist out of it, but you could have kept the formatting.

</comment></comment><comment><USER9> The comp.lang.c FAQ (which is quite well respected as a good authorative source on C, I think) states:

Q: What's the correct declaration of main()?

A: There are two valid declarations:

        int main(void)
        int main(int argc, char **argv)

Yet, Knuth states:

        main()

This feels like Knuth has done a Chuck Norris on C.

<comment><USER10> Only problem - that ain't C. ;)

<comment> X-Istence Oh? What language is it? At first glance it looked like C.

<comment><USER11> It's CWEB (<http://www-cs-faculty.stanford.edu/~uno/cweb.html>) A language based on C devised by Knuth as a language for "Literate Programming" (<http://www.literateprogramming.com/>)

</comment></comment></comment></comment><comment> s-phi-nl For a tutorial on solving sudoku using Dancing Links, see this tutorial: <http://cgi.cse.unsw.edu.au/~xche635/dlx_sodoku/>

</comment><comment><USER12> I find this a bit hard to read. Can somebody render this CWEB(?) file to HTML or PDF for the lazier of us?

</comment><comment><USER13> That's so quaint that he uses the "register" storage class. Knuth is awesome</comment>


Mozilla employees tell Brendan Eich he needs to "step down" - <AUTHOR> http://arstechnica.com/business/2014/03/mozilla-employees-to-brendan-eich-step-down/ <comment><USER2> The fact that they can come out and say this demonstrates that these employees, the people best able to assess this, don't believe that Eich will retaliate. That Mozilla is and remains a place where any employee can express their views on political issues, even if they know they're contrary to the CEO's. And that destroys any argument for Eich's role as CEO creating a conflict with Mozilla's ability to welcome LGBTQ employees and community members.

You have a right to work for whom you choose, but not to demand that everyone above you in a company concurs with your political views. This is the social media witch hunts we've seen in last few years reaching into actual corporate boardrooms and tossing out a man's career because he holds a view that is not only mainstream, but that he has demonstrated he won't bring into the workplace.

Let me be clear: I believe Brendan Eich is wrong about gay marriage. But I don't think the price of his convictions should be his career at Mozilla, a company he's played a large role in building, when there is no documented instance of him ever disparaging or otherwise harming LGBTQ employees or community members.

<comment><USER3> I wouldn't call it a witch hunt. Now every Mozilla employee's work is contributing to Eich's paycheck. The paycheck with which he will (has) donate(d) to oppose gay marriage. If I was a Mozilla employee, this is not something I would want to be contributing to.

This argument can obviously be applied to any employee in the company, but it's severely exacerbated when it's applied to the CEO, who's getting a huge paycheck and is serving as the face of the company. It would be nice if we could separate his work from his personal life, but that separation does not actually exist. His personal endeavors are fueled by his professional life. (This is why we all work, really).

<comment><USER4> Do you support employees being fired for supporting gay marriage then?

I don't see any difference in the two positions (both are using their paychecks to advanced a political cause), except that you personally agree with one position and not the other.

<comment><USER5> Where did all of this moral relativism come from?

What Eich believes goes against basic human rights. This isn't some argument about tax rates.

<comment><USER6> I think free speech is a basic human right, too, but I wouldn't demand my CEO be fired if he gave a million dollars to try to get a Constitutional amendment passed to overturn _Citizens United_.

<comment><USER7> I'm sure there exists a political cause that if your CEO was funding it, would cause you to demand their resignation or make you leave the company.

Say they are funding a campaign calling for speech restrictions of a group of which you are a member, for instance. You presumably have a line somewhere.

<comment><USER8> You're positive about that? They could fund a campaign calling for speech restrictions for a group I'm a member of, and I'll probably feel peeved about it (or even stronger feelings), but so long as it doesn't affect the workplace, and the CEO is still doing their job, I wouldn't call for their resignation.

<comment><USER7> That's pretty lucky for them then, because you won't legally be able to after their bill goes through about speech in the workplace.

edit - that's a pretty unfair hypothetical, and it would be directly affecting your work then, but I still suspect you have a line, if only to avoid things ever getting a little bit too Kafka.

<comment><USER8> I suppose it's lucky for them, but I don't see removing them as CEO as an action helpful to the cause. It probably won't weaken their beliefs, and might even strengthen them. They might even want to retaliate against the group they see as booting them out.

I just don't think that stripping them of their lands and titles really helps anybody. Arguably they won't have a source of income, except that they probably would receive a fairly nice severance package, and could still look for more work elsewhere.

\----

I really like your last line of "things ever getting a little bit too Kafka".

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Just the CEO? Who else shall we burn at the stake? Mary, the office manager, goes to church every Sunday. How did she vote? John over in mobile dev is a devout Muslim, I'll bet he doesn't take kindly to such things as gay marriage. Time to start scanning through those campaign contribution records for Prop 8 and seeing if a JOIN on the employee database gives us any results.

I've always held to the idea that my job is to make my manager look good. I don't know that mouthing off on twitter such that Ars Technica picks it up is fitting to that philosophy.

<comment><USER10> There's a _huge_ difference between holding general religious beliefs and contributing financially to a political movement specifically pursuing institutional discrimination of a large class of Americans.

I'm a little troubled by the chilling effects that career and public opinion can have on political expression, but it's hard to generate sympathy for blatantly unconstitutional, horrendously discriminatory forms of political expression.

<comment><USER4> You're wrong on two points:

a) Contributing financially to many religious institutions is explicitly financing groups who opposed gay marriage, and is an activity than many religious people undertake.

b) Advocating for something that in some views is unconstitutional is a constitutionally protected activity. The practice itself may be unconstitutional (I certainly think so), however, the political advocacy itself is not.

<comment><USER10> a) When you fund "mormonism" or whatever, there is a _lot_ of plausible deniability that you're not a bigot, as this is a huge population of people doing a mix of things, mostly good. In contrast, when you specifically fund Prop 8, you need a _really_ good excuse.

b) Advocating for something that is purely prejudicial and hateful is deserving of censure.

As I said, I'm not entirely sure how I feel about holding people accountable for their political views in general, but I do have some rationale for leaning toward censure in this particular case.

<comment><USER4> Yes, the solution to all the ills of the world is to censor people who (society|the majority|intortus) decides are purely "prejudicial and hateful", because that will clearly make politics better and less oppressive!

I don't even agree with these people, but people who express views like yours - that we should censor views we find distasteful so they can't even be discussed openly - make it really hard to comfortably take a stand against them.

I'm not for censorship, even of views I find extremely distasteful, and don't advocating punishing people merely for holding or articulating them.

Is there any evidence he's done anything besides be part of the political process, such as discriminate in the running of the nonprofit?

*Edit to fix typo.

</comment></comment></comment></comment></comment><comment><USER11> Should I be able to quit my job if I don't like my boss's politics? Yes (though your boss should never be able to force you to quit, and should never be able to use their position and authority to make you feel that you have no choice).

Should I be able to ask my boss to quit if I don't like his politics? Yes (though you should not expect him to agree to this).

Is it a good thing for the world in general if people are asked to quit their jobs because of their politics? My instinctive reaction is that it isn't a good idea, because we can't know what political views will be popular or unpopular in the future (in other words, it could be _your_ opinions that make you the object of some campaign in the future). I can't defend Eich's opinions, but the principle that "you are not your job" and that what you do outside of the job should remain outside is something that should protect everyone and I'd require some pretty strong arguments to convince me otherwise.

We should remember, however, that plenty of people don't have Eich's profile or history of positive contributions (he was contributing to what became Mozilla before Mozilla even existed). Political firings do happen, and people do get fired for stuff that they might reasonably expect should be part of their private sphere, and only sometimes does this result in a court case or compensation being paid. Anyone who defends Eich's right to his political views should remember that, the next time a colleague or acquaintance is on the wrong side of an inappropriate dismissal.

edit: typos

</comment><comment><USER12> It's his personal view. What does freedom mean if it's only about views that everyone likes?

<comment><USER13> How far does it go? Would you say the same about a nazi or KKK member?

<comment><USER14> Godwin's Law in 16 minutes. Not bad.

<comment><USER15> That's not a Godwin. Nazis were/are well known to promote hate based on differences between people and promote laws to keep certain groups oppressed. It's a perfectly valid comparison.

</comment></comment></comment></comment><comment><USER16> I have a huge level of mental conflict on this issue!

I am a supporter of equal rights and gay marriage. When I see comparisons made to other civil rights issues (i.e. "Would we accept this guy as CEO if he thought interracial marriage was wrong?" or "Would we accept this guy as CEO if he thought women deserved less pay?") it seems like a no brainer to me that, no, a person who held _those_ views would never be tolerated as a CEO. And gay marriage, gay rights are an important issue and should be held in the same regard. Using that logic, one could conclude he is not CEO material. Not to mention that as a representative of the company they are getting some unpleasant press over this, nor does he seem to have the confidence of his employees that a leader should have.

On the other hand, it seems distasteful to me that we say to people, "We don't like your views. You need to go away now." ... Shouldn't diversity of thought, diversity of social and cultural and religious views be considered a good thing in an organization? Shouldn't we be trying to build teams of people with whom we _aren 't_ always going to agree on things with?

</comment><comment><USER17> This is in a perverse way a Great test for Mozilla's stated commitment to inclusiveness. Will they buckle under this pressure to have one of their Employees (CEO) leave because of a Personal Stated opinion, (Barring any evidence to the contrary) solely because of persecution for those views?

Watching this with great interest - how will it play out? Will Brendan Succumb to the pressure and quit to avoid this issue becoming a distraction?

Will he ride it out? Provide clear guidance that it was a personal issue and emphasize personally that this does not reflect Mozilla policy? Something else..?

</comment><comment><USER18> I haven't followed that particular drama, are they asking him to step down solely because of his anti-gay activism? Or are there other reasons as well?

Assuming it's the former and as long as he's not pushing his agenda through Mozilla (discriminating against gay employees or whatnot) I'm not sure it's a good reason to "fire" a CEO.

<comment><USER19> Does making a one time donation to a political organisation really constitute "anti gay activism"?

<comment><USER15> When the political organization in question exists solely to promote anti-gay laws, then yes. Yes it does.

</comment></comment></comment><comment><USER20> Some very strange reactions in this thread. The idea that this somehow validates the notion that Eich's politics don't affect Mozilla as a workplace seems particularly bizarre, to me.

My read on this is that there are employees at Mozilla who feel strongly enough about this to speak publicly, and the most likely reason is because they believe that Eich as CEO _will_ affect their workplace.

<comment><USER21> He's been CTO since 2005. Now his views will suddenly begin to "affect their workplace"?

<comment><USER22> CTO is a technical role. CEO is boss of everybody, and organizational figurehead. So yeah, it's very different.

</comment></comment></comment><comment><USER23> This is a bad idea. Your personal views - religious, political, whatever - should have nothing to do with your job as long as you don't bring them to work. If it is acceptable to demote or fire someone because of their political views or activity outside of work, we are opening a huge can of worms. I hope everyone can understand this.

<comment><USER22> In general I agree with your theory. But I think it's different when you want to be the figurehead and ultimate authority over thousands of people. Especially you've helped to strip civil rights from some of those people.

</comment></comment><comment><USER24> How can "@mozilla stands for openness" if you restrict who can run the company?

<comment><USER25> So you'd be ok if he was a racist? Brendan is entitled to express his views, but it doesn't mean they come without consequences.

<comment><USER6> By that logic, I'm sure no one working at Mozilla voted for Barack Obama in 2008 when he publicly held a position you now consider in the same ethical category as that a "racist" would hold.

This is not so far removed from saying Mary Jones shouldn't be CEO of Mozilla because she donated to a campaign against CO2 emission restrictions: Again by analogy with a settled political issue, "She's denying Global Warming. You'd be OK if she denied the Holocaust?"

<comment><USER26> Sometimes you have to vote for the lesser evil. It's pragmatism. Choose between the person who will try and stop gay marriage from happening by enshrining it in law or the person who won't actively stop it (or someone who has no chance of getting in). Seems quite obvious.

<comment><USER6> So you'd vote for a Barack Obama who professed support for racial segregation as long as the other major party candidate did, too?

I'm not arguing against voting pragmatically, I'm arguing that calling opposition to same sex marriage akin to racism _today_ is a nonsensical comparison. Maybe it will look that way in hindsight, but it's not fair to hold anybody to hypothetical future standards.

</comment></comment></comment></comment></comment><comment><USER27> >"McAvoy added that he feels fortunate to work at a company >like Mozilla, 'where I can say that without fear of >retribution.'"

May only be true because of how many eyes are on this. Regardless on how enlightened a company is I don't think you'll have a good time of things for very long if you're calling out your boss to quit his job.

</comment><comment><USER28> This is exactly the same as asking a person to resign because they're gay. Personal politics do not belong in the workplace, and shame on anyone who would take away someone's position because of who they are or what they support in their private life.

</comment><comment><USER29> If Eich had given 1000 bucks to stopping the abilities of lets say hispanics to marry. He would have never been allowed to be CEO; because we do not accept that type of bigotry. Sadly however bigotry against LGBTQ is still allowed.

For me it is clear and simple. He can not say he will be inclusive if he at a low level doesn't believe in it. In his blog post he only apologized he hurt anyone.. not that his views are outdated, and has changed his mind on the topic.

</comment><comment><USER30> CEO is inherently a political role - a CEO is the face of the company. If the CEOs political views are at odds with most of the employees of the company as well as the company's product's userbase, it's hardly surprising that there would be a movement to get him out. He's the face of the company. If that face is ugly / mean, then he's probably the wrong choice for CEO.

</comment><comment><USER31> For those of you defending Eich, what if he monetarily supported white supermacy instead? Would you still feel comfortable about his position?

<comment><USER32> In my personal life no I would find it reprehensible, but in my professional life that would depend. If an employee wants to go burn crosses on the weekend with the KKK but comes into work every Monday, and keeps his personal life separate and still continues generate revenue for the company then that's their business and not my concern.

</comment></comment><comment><USER33> Those who demand tolerance for themselves should also extend it to others...

</comment><comment><USER34> Is it legal for Mozilla to fire Eich because of his political affiliations? Is it legal to ask a prospective CEO hire his or her political views? What I found from a quick search indicates that it isn't legal. [1] I can kind of understand how a member of the LGBT community could be disappointed by Eich's promotion, but I don't understand what they think Mozilla could have legally done differently.

[1] [http://www.nolo.com/legal-encyclopedia/california- employment...](http://www.nolo.com/legal-encyclopedia/california-employment- discrimination-31690.html)

</comment><comment><USER35> If these are the kind of people working at Mozilla it's no surprise Firefox has been continuously losing market share to both Chrome and IE over the past 3 years.

<comment><USER26> I don't think one person criticising another is going to cause a massive drop in market share.

You really are being a little silly

<comment><USER35> Did you read my entire comment? Notice how I said "over the past 3 years".

<comment><USER26> I did. Perhaps I should have phrased my reply a bit better:

People who criticise another person for an act which is contentious is not going to produce a drop in market share.

Perhaps even this is not obvious enough for you. You're probably being deliberate obtuse though. The simple point is that you can't infer a technical ability from their belief on whether gay marriage is right or not.

In addition, even if these people were proven to be bad at their jobs, I doubt that would cause the drop in market share either. Three people who are not at the very top of the company are unlikely to have that effect.

</comment></comment></comment></comment><comment><USER36> I wonder how history would have remembered Eich if he never got CEO.

The thought has not fully crystallized, and possibly not quite the same, but Nikola Tesla was a Eugenisist. But we LOVE him.

[https://en.wikipedia.org/wiki/Nikola_Tesla#Societal_views](https://en.wikipedia.org/wiki/Nikola_Tesla#Societal_views)

</comment><comment><USER37> When you consider how quickly opinions have shifted on this issue. Prop 8 was relatively a long time ago.

<comment><USER38> He was asked in 2012(?) if he still held those views. He declined to answer.

</comment></comment><comment><USER39> So the LGBTQ community wants to dictate that the Mozilla CEO be a gay marriage supporter. They also seem to have trouble separating software from politics.

</comment><comment><USER40> Intolerant! As someone put it, toleration is not toleration unless you put up with that with which you will not put.

</comment><comment><USER41> What you hate in yourself you hate in others, and it really shows with this.

</comment><comment><USER42> Huh. Wasn't exactly expecting that.</comment>


SpaceX Rocket launch aborted in final second due to technical problems - <AUTHOR> http://abcnews.go.com/US/wireStory/spacex-rocket-launch-aborted-final-liftoff-due-technical-16384466#.T7dh6HkthOE <comment><USER2> I've been anticipating this launch for a while now. I stayed up till 4:55 to watch it; I even made popcorn.

Listening to the countdown 10...3 2 1 ignition...sputtering flame...and... _nothing_...

You could hear the disappointment in his voice for a split second, but only a second. Then right back to professional composure. Calling out commands, putting the rocket back into safe mode.

Impressive even for a failure. Guess I'll be up late again on the 22nd.

<comment><USER3> Same here with the popcorn. And cranking the speakers up in anticipation of a good roar.

It's a little dissapointing, but the most important thing is that the launch be successful, no matter the layers of safeguards and tests that need to happen. It's fascinating to see just how precise a level of control and automation that exists over all aspects of the system.

Well, to truly butcher a saying of our former rulers across the pond, "The launch is dead, long live the launch!"

Deepest, deepest apologies for that one.

<comment><USER4> In honour of those across the pond - here's their last attempt at a rocket launch ;-) Worth watching the whole thing, but go to about 7:15 for the business end... <http://www.youtube.com/watch?v=_b4WzWFKQ20>

<comment><USER5> "The United Kingdom remains the only country to have successfully developed and then abandoned a satellite launch capability."

<http://en.wikipedia.org/wiki/Blue_Streak_%28missile%29>

:-(

<comment><USER6> That's not entirely true. South Africa developed the RSA-series of ICBMs and space rockets in the late 1980s along with a concurrent satellite program. The RSA-3 was successfully tested in a number of launches from the Overberg Test Range in the Southern Cape of South Africa.

With the end of the Cold War, the abandonment of Apartheid and the unbanning of the ANC in 1990 both the defence budget and the rocket program budget were slashed and the RSA program and Greensat satellite were put on hold as a result.

An attempt was made to drum up international orders for RSA-3 launches and the development of an even larger variant, the RSA-4, but nothing ever came of it and the entire program was shut down forever around 1994. The sole remaining RSA-3 rocket is on display at the South African Air Force Museum at Zwartkop Air Force Base.

Nowadays South Africa is slowly rebuilding its satellite capability and built two micro-satellites on a shoestring budget, both of which had reasonable service lives in orbit, but it has some way to go to rebuild the capability it lost.

<comment><USER7> I feel horrible for saying this, but in many areas of science and engineering, RSA under sanctions was more interesting to outsiders, in that it was a relatively rich, industrialized country which produced technology (due to being isolated) which most other countries wouldn't have (since they didn't need it, with global supply sources). Synthetic fuels, some amazing defense tech (G5 howitzer, funding Gerald Bull, etc.), a credible nuclear program, space, ... I guess the isolation wasn't as complete as North Korea, and had a much better industrial base to begin with, because aside from superbills, a huge abandoned hotel, novel money laundering techniques, and some industrial scale meth production, North Korea hasn't done anything interesting.

(It was of course immoral, a horrible human tragedy and was objectively worse for 90% of the population, etc.)

Is it an accurate perception that RSA is less of an interesting science/engineering power now than it was in the 1980s? Will this reverse itself?

<comment><USER6> Sure, it's undoubtedly true that in certain industrial and technological spheres South Africa produced far more impressive and interesting projects during Apartheid. Even though there was some outside assistance, the developments produced in the country during this period were extraordinarily innovative and advanced in relative terms.

Acknowledging that interesting developments came about in that period does necessarily justify Apartheid or lessen its immoral nature. Just as (not to invoke Godwin, the systems were totally different) we can acknowledge the amazing technology that German engineers and scientists invented during the Second World War without endorsing Nazi ideology.

With regards to the question of whether RSA is a less interesting science and engineering power, it's complex. Certainly, when it comes to state-funded R&D, especially in defence and space, then yes it's true. The defence industry, while still innovative and very advanced in certain niche areas, has shrunk significantly since Apartheid, shedding many skills and leaving many defence industry companies in precarious financial positions. This is a result of the huge cuts in defence spending since 1990, which gutted the industry. That level of funding would never have been sustainable in a democracy with a universal franchise and serious socio-economic problems though.

To some extent the non-defence private sector suffered too as state R&D dried up almost entirely. It's important to understand that with the trade sanctions of the late 1980s it was state funding and the mining industry which drove most R&D and many companies weren't able to transition to a market-based approach when that stopped. Imagine the impact on the US high-technology scene were US government research funding to be yanked almost overnight from universities and private companies.

Yet there are some encouraging developments, with private companies continuing to try to innovate using private capital. The satellite design and construction industry has re-established itself and is growing fairly well, as are other space-based industries especially astronomy where South Africa is one of the world leaders. Similarly there is small but rapidly-growing tech scene that's creating some interesting things, with two prominent examples being the development of Amazon's EC2 system and Mark Shuttleworth's Thawte Consulting. Mobile telecoms are another interesting area, while there are some aerospace firms doing well, such as Aerosud which is a single-source supplier for both Airbus and Boeing on safety-critical parts.

R&D spending still remains low compared to other countries at South Africa's level but there are signs that that, too is changing. So we'll have to see what the future brings.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Read from an article on CNN (<http://www.cnn.com/2012/05/19/tech/us- spacex/index.html>):

"This is not a failure," Shotwell (SpaceEx President) told reporters. "We aborted with purpose. It would have been a failure if we lifted off with an engine trending in this direction."

Perhaps that's PR spin, but I think that it comes from a very responsible position. Well said.

<comment><USER9> It's true. This is a brand new vehicle, and you want to start with tight limits and gradually expand them as you know they are safe. Otherwise stuff fails and you don't know why.

This is a _test flight_.

</comment></comment><comment><USER10> I'm kind of blown away that the engines don't have to be torn-down and rebuilt or something after being ignited and shut down like this.

I assumed that since the booster stages are not re-usable, the design would be more optimized for "one use". And the controlled explosion of a rocket igniting seems to count as "one use".

Clearly I'm wrong. I guess they are so robust (for saftey & redundancy reasons) that a few seconds of burn don't do any irreversible damage.

<comment><USER9> Merlin is designed to be reusable. It's ultimately designed to power a fully reusable rocket.

</comment></comment><comment><USER11> I'm fascinated. I didn't even know that rocket engines could simply be shut down like this. I guess that's because they don't use solid fuel engines?

<comment><USER12> The space shuttle engines could do (and did on I think 5 occasions) the same thing. That is why they turned on before the solid boosters were lit, to be checked out by the avionics. Example: <http://www.youtube.com/watch?v=3VELYTzUrjc>

[Edit: I must apologise to the commenter below for just repeating him 10 minutes later - accidental]

<comment><USER13> Technically, it was the orbiter's engines that could be shut down. "Space shuttle" is used to refer to the whole assemblage of orbiter, solid rocket boosters (which cannot be shut down), and external fuel tank.

<comment><USER12> Quite right, I should have said Space Shuttle Main Engines, as that is what they were actually called. Apologies for the ambiguity.

</comment></comment></comment></comment><comment><USER14> So what happens next?

<comment><USER15> <http://www.spaceflightnow.com/falcon9/003/status.html>

1040 GMT (6:40 a.m. EDT)

Gwynne Shotwell, president of SpaceX, says technicians will inspect Engine No. 5 on the Falcon 9's first stage beginning at around 12 p.m. EDT (1600 GMT). Further data analysis of readings from the engine during the ignition prompted SpaceX to order hands-on inspections before clearing the rocket for liftoff. The next launch opportunity is still Tuesday at 3:44 a.m. EDT (0744 GMT), but that is pending the outcome of today's inspection. Shotwell said the abort was triggered one-half second before liftoff after all nine engines were ignited. Alan Lindenmoyer, NASA's commercial crew and cargo manager, said there should be another launch opportunity May 23 at 3:22 a.m. EDT (0722 GMT).

0940 GMT (5:40 a.m. EDT) The target launch time for Tuesday is 3:44:34 a.m. EDT (0744:34 GMT).

0926 GMT (5:26 a.m. EDT) The rocket is being drained of propellant as the launch team backs out of this morning's countdown following an abort moments before liftoff at 4:55 a.m. EDT (0855 GMT).

0915 GMT (5:15 a.m. EDT) NASA plans a post-scrub news conference at 6:30 a.m. EDT (1030 GMT). We'll carry it live.

0905 GMT (5:05 a.m. EDT) The strongback has been returned to a position next to the Falcon 9.

0901 GMT (5:01 a.m. EDT) SpaceX reports the problem triggering the abort was a high chamber pressure reading on Engine No. 5 of the first stage. Aborts are common in Falcon 9 countdowns when computers recognize a limit out of a predefined range. Sometimes the fix is as simple as adjusting the acceptable range in the computer, but with a one-second launch window this morning, there will no opportunity to resolve the issue today.

0858 GMT (4:58 a.m. EDT) The launch team is safing the rocket and Dragon spacecraft after this morning's abort. The next launch opportunity is Tuesday morning at 3:44 a.m. EDT (0744 GMT), assuming whatever issue caused the abort is resolved in time.

0856 GMT (4:56 a.m. EDT) It's not clear what caused the abort just before liftoff, but this will mean Falcon 9 will not launch today. The rocket had a near-instantaneous launch window in which it could fly today.

0855 GMT (4:55 a.m. EDT) ABORT. The ignition sequence started, but there was a countdown cutoff before launch.

<comment><USER16> I think it's pretty amazing that this kind of thing can be co-ordinated down to a 1 second launch window.

<comment><USER17> It's less that is _can_ and more that it _has to_ in order to be optimal.

The launch window pretty much guarantees that if the rocket launches, and stays on a course that is designed to get it outside of earth's atmosphere using as little fuel as possible, it will meet up with the orbiting space station "by chance". Launching outside of this window means that it would have to spend fuel to realign itself and go find the space station on it's own.

<comment><USER18> Probably one of their many hacks at getting the launch cost down as much as possible.

</comment></comment></comment></comment></comment><comment><USER19> I can't imagine being in the rocket and what's going through your head as your about to take off, the rush of it all, and then at the last second it's like nope. That feeling must have been incredibly interesting.

</comment><comment><USER20> Now everyone has time to use www.hipmunk.com to book flights to Florida for possibly weeks long stays at your favorite Eastern Orlando resort.

<comment><USER21> Because missing launch windows hasn't de riegeur since spaceflight's beginnings?</comment></comment>


Must Every YA Action Heroine Be Petite? - <AUTHOR> http://www.theatlantic.com/entertainment/archive/2014/03/must-every-ya-action-heroine-be-petite/284568/

<comment><USER2> Go check out the Kindle Store. Look in the sci-fi category. There are over 67500 titles, 2500 of them having been released in the last month!

Sort by price: lowest first. 75 pages, over a thousand books--just in the sci- fi category--listed for $0. Incidentally, Amazon doesn't let you go past the 400th page. An addition 5000 books listed at the minimum Kindle Store price of $0.99.

Poorly Photoshopped covers. Absurd titles, splitting into fractals of subtitles, "series" this, "saga" that. I picked 10 at random, the page-length estimates average out to be about 50 "printed pages"; one in particular was only 12 pages.

Download a try reading a few of them. 50 pages is 50 too many. Now read the reviews. Glowing expositions of "couldn't put it down until I finished it in one sitting". No shit! I should hope you could read 50 pages in one sitting.

In contrast, I packed up my poorly-maintained blog into a Word document and it was 150 pages for the last three years. With no change in my writing habits, I could be releasing a Kindle Book every year.

Now, swap the sort: go highest to lowest. THIRTEEN books listed at $200. That little bit of absurdity aside, the general fare isn't much better than the bottom of the price list. A few notable exceptions, but on the whole, it's clear people will probably prefer to take their chances on a $1 book that will probably suck than a $30 book that will probably suck. On the 400th page, all of the titles are $3.99. They average around 250 pages, but there are still some 50 page titles in the mix.

As far as the average consumer is concerned, books are a plentiful commodity. EBooks opened the door to allow anyone to publish. And then everyone _did_.

But even scarier, the readers bought in. Readers love their niche categories, and will consume anything in it. Is it any surprise that serious authors-- looking to make a living, who also have the barest modicum of writing skill that can set them completely apart from the massive piles of garbage in the market--will optimize for what readers want?</comment>


Tetuan Valley Startup School Spring 2010 - <AUTHOR> http://blog.tetuanvalley.com/2010/02/tetuan-valley-startup-school-spring.html

<comment><USER2> As a participant in the previous edition, I can only recommend going through this experience!

</comment><comment><USER3> Big fan of what the Tetuan team has done in Madrid!

<comment><AUTHOR> Thanks a lot!! :D We're thrilled to have a 2nd edition, this time in Madrid & Barcelona too!</comment></comment>


TinyVM – A small and easy to understand virtual machine in C - <AUTHOR> https://github.com/jakogut/tinyvm/ <comment><USER2> After seeing C4[1], everything else doesn't seem tiny at all... and maybe it's just me, but this is another one of those projects where I found the directory layout rather confusing, especially for something that claims to be "small and easy to understand." bin/ is empty, there's only a single nearly-empty file in src/, lib/ is also empty, include/tvm is two levels but one is empty, and all the interesting stuff actually appears to be in libtvm/ .

More importantly, even after going through all the files in libtvm/ , I still haven't managed to find the main instruction execution loop nor the decoding switch. Sorry, but I don't think "small and easy to understand" applies, and I've had experience with VMs and interpreters and the like for many years. Compare with this, for example:

[https://github.com/tjmerritt/z80](https://github.com/tjmerritt/z80)

A rule-of-thumb when investigating the source code of a project for the first time: if I have to go more than 2 directories deep to get to the "meat" of the code, my desire to explore further drops significantly.

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

<comment><USER3> I've found that switch fast, in a few clicks, reading this on my phone:

[https://github.com/jakogut/tinyvm/blob/master/include/tvm/tv...](https://github.com/jakogut/tinyvm/blob/master/include/tvm/tvm.h)

I've used the info you provided as the start, of course.

<comment><USER4> In a .h file?

Have to agree with userbinator.

</comment></comment></comment><comment><USER5> Another good simple one is NekoVM (though not sure how they compare size wise) which is one of the target platforms that Haxe compiles to:

[https://github.com/HaxeFoundation/neko](https://github.com/HaxeFoundation/neko)

Being interested in wanting to write my own languages (though never finding the time with other pet projects) I always wanted to write something that would ultimately be usable with NekoVM as one of my side goals for a language. Neko also has a module for Apache.

</comment><comment><USER6> I like an elegant VM, but the ones I find the most interesting are the ones you can actually employ as a compilation target.

For example, there's a C-like language for SUBLEQ machines: [http://mazonka.com/subleq/hsq.html](http://mazonka.com/subleq/hsq.html)

</comment><comment><USER7> Here's the switch statement, if you're looking for it: [https://github.com/jakogut/tinyvm/blob/master/include/tvm/tv...](https://github.com/jakogut/tinyvm/blob/master/include/tvm/tvm.h)

</comment><comment><USER8> rather recently I remembered [0], which I then rebuilt in C using the same memory layout and tried to approximate the functionality of the original thing [1]...

[0] [https://www.randelshofer.ch/fhw/gri/holzi.html](https://www.randelshofer.ch/fhw/gri/holzi.html)

[1] [https://gist.github.com/mar77i/46bd25504dd9e81d0ca7778efcee4...](https://gist.github.com/mar77i/46bd25504dd9e81d0ca7778efcee497f)

</comment><comment><USER9> Hmm,

Scanning the syntax, is there an operation for addressing memory? I see an operation for moving one value to another and that's it. I don't see any method of addressing a variable position in memory (or a variable position in an array if one wants to be more managed about it).

I suppose you could handle all operations from the stack.

But I think a lot of things require memory reads and writes, at least to do efficiently.

<comment><USER10> I was also looking for it and couldn't find it. You can't do much with the stack if you can't load/store.

</comment></comment><comment><USER11> I'm kind of worried about usage of strcmp here:

[https://github.com/jakogut/tinyvm/search?q=strcmp](https://github.com/jakogut/tinyvm/search?q=strcmp)

It's also very easy to crash the thing, either with a malformed input file or afl-fuzz. Are you sure C was the right choice here?

<comment><USER12> For the actual emulation, I would say C is okay. For the assembler? I can think of half a dozen other languages better suited for that.

</comment></comment><comment><USER13> There is also the Java based "PC emulator":

[https://github.com/ianopolous/JPC](https://github.com/ianopolous/JPC)

However, development seems to have slowed down drastically.

</comment><comment><USER14> Great work. After scanning the source tree with my eyes, I have yet to find the implementation of the instruction set. Therefore, I wouldn't say this is small.

<comment><USER2> Because it has been hidden in a .h file: [https://news.ycombinator.com/item?id=16608174](https://news.ycombinator.com/item?id=16608174)</comment></comment>


Spain approves national minimum income scheme - <AUTHOR> https://www.independent.co.uk/news/world/europe/spain-national-minimum-income-universal-basic-coronavirus-ubi-economy-a9538606.html <comment><USER2> A warning: this is not a Universal Income for everyone type of thing. This is a monetary help for the poorest people to be able to live with some dignity.

I'm not criticising, just clearing things up because the headlines (here and elsewhere) make it sound like something that it isn't.

<comment><USER3> I don't understand why they wouldn't just call it an unemployment benefit.

<comment><USER4> It also applies to the underemployed or underpaid, they will top up earnings you might already have.

<comment><USER5> I wonder how many people will see their employers cut their wages since "the government will make up the rest".

<comment><USER4> Anyone with such an employer would hopefully quit, now that they have the security of the guaranteed minimal income. Which means that this is to some extent a worker protection scheme: Employers will have to make menial, badly paid jobs more attractive since they will now be competing against "no work for the same money". In theory, at least. In practice things might devolve into more unreported employment, so workers could get both the full state minimum income and an unreported income on top of it.

This is one of the crucial differences to a proper universal basic income: The UBI does not discourage taking a job that _adds_ income to the UBI. This kind of minimal income scheme _does_ discourage taking badly paid jobs, since the total money you receive remains the same whether you work or not.

</comment></comment></comment></comment></comment><comment><USER6> I'm reminded of the quote, "It always seems impossible until it's done." \- Nelson Mandela

</comment><comment><USER7> They will likely face consequences from the United States and other places for this, both from international finance (They will withdraw capital) and maybe other avenues, (covert funding of opposition parties, threats of sanctions) but they're not in Latin America so at least there won't be a coup.

<comment><USER8> Why do you think so? Why does the US care about essentially poor-people benefits in Spain?</comment></comment>


Splash of Color: Instance Segmentation with Mask R-CNN and TensorFlow - <AUTHOR> https://engineering.matterport.com/splash-of-color-instance-segmentation-with-mask-r-cnn-and-tensorflow-7c761e238b46 <comment><USER2> For people familiar with Mask R-CNN, how might this model be used to detect clouds (in the sky) in all-sky imager data? An all-sky imager is basically a camera with a fisheye lens, mounted on the ground, and facing the sky. Assume training data is available on a pixel-by-pixel basis and is classified as either: (sky, cloud)

Since clouds are amorphous, it seems there would be problems trying to feed training data to the model. Could one simply use the entire training image by specifying the bounding box to the cloud to be the entire image bounds?

I'm exploring new models, having already tried Fully Convolutional DenseNet with semi-satisfactory results (but with very large GPU memory footprint).

<comment><AUTHOR> I'm very curious about the use of such cloud finder. But, to answer your question, the Mask RCNN model would be useful if you want to identify individual clouds. As in, find clouds surrounded by empty sky. Or, for example, you want to find clouds that look like a puppy or or a sheep. On the other hand, if you don't care for identifying individual clouds and only want to find the pixels that belong to the 'cloud' class, then a semantic segmentation model would likely do better.

Also, while I don't know much about your use case, using DenseNet seems like it might be an overkill since you only have two classes, cloud and sky. A lighter network might give you better results, especially if you don't have a lot of training data.

</comment></comment><comment><USER3> Magic results but R-CNN (and other similar architectures with large number of forward passes per frame) is pretty darn slow, which severely limits its applicability.

<comment><USER4> It really depends on the application. If you're comparing to classical instance segmentation methods like a distance-based watershed, Mask RCNN (e.g. using the Keras-RCNN package) has nearly identical performance. However, if you're looking for real-time performance, you'll need to look elsewhere (and likely reframe your problem as an object detection rather than instance segmentation problem).</comment></comment>


Ask HN: Books to improve my English. - <AUTHOR> I am a German living in Germany. I am dealing with english literature, websites, podcasts and videos on a daily basis. It almost feels like I was living abroad. The problem is that I often have the feeling that I am not good at writing english texts. I want to improve my style. Reading lots of information helps a little over time, but I want to actively work on it.<p>What books or websites would you recommend to really get into the subject? <comment><USER2> The traditional answer here would probably be to recommend the book "Elements of Style" by Strunk and White, so I'll do that in case you're not already aware of it. It's short, easy to read, and focuses on good style and common grammar mistakes. It's common as a high school or college text here (USA). From your question you seem pretty fluent already (your intro feels native or very near) so it should be well-suited for you.

<comment><USER3> As gdl notes, your written English is very good: there's two non-idiomatic usages (was in "was living abroad" and texts in "writing english texts") and in your previous comment (<http://news.ycombinator.com/item?id=1683335>) I simply can't tell your not an native English speaker (well, "landmark" is probably an incorrect usage since by definition it doesn't sound like you have been or can be very influential).

 _Elements of Style_ is the first book everyone suggests, although I didn't find it all that useful when I got around to buying it. I'd suggest checking it out and then later getting more prescriptive books.

While I'm not sure I'd recommend it as a second or even a fourth book, I'm rather fond of the rather old fashioned (OK, it's a century old...) and most certainly not American _The King's English_ : <http://en.wikipedia.org/wiki/The_King%27s_English>

There's an on-line copy of the 2nd edition linked in the above that should give you an idea of if and when you want to try it; at the very least you should try this bit right now: <http://www.bartleby.com/116/101.html> (well, I love it...).

My copy is this recent printing of the 3rd edition: [http://www.amazon.com/Kings-English-3rd-H- Fowler/dp/B0015NYN...](http://www.amazon.com/Kings-English-3rd-H- Fowler/dp/B0015NYNQI/)</comment></comment>


Microsoft Flight Simulator – Pre-Order Launch Trailer - <AUTHOR> https://www.youtube.com/watch?v=TYqJALPVn0Y <comment><USER2> This looks incredible! I remember getting Flight Simulator X for Christmas when I was ~10 years old. I had a very simple setup, with a 3-axis joystick, but had many hours of fun, exploration, and learning.

Out of curiosity, I tried installing it on a Win10 PC last year. It did install and I got to having an airplane on the runway, though I didn't have a joystick and didn't have the patience to figure out flying without.

</comment><comment><USER3> Looks amazing! Based on my experience, I have the feeling that we can judge how well Microsoft is doing as a company based on the quality of Microsoft flight simulator</comment>


How Backpage.com Peddles Prostitution. - <AUTHOR> http://www.nytimes.com/2012/03/18/opinion/sunday/kristof-where-pimps-peddle-their-goods.html?_r=2&hp

<comment><USER2> "About 100 advertisers have dropped Rush Limbaugh's radio show because of his demeaning remarks about women."

Lets be honest, Rush Lumbaugh wasn't dropped because of that remark. He was dropped because liberals hate him for the majority of his political views and needed an excuse to get him kicked off the air.

The same people that wanted him kicked most likely believe prostitution should be legalized and/or don't care about this situation.</comment>


Kevin Rose shutters Oink - <AUTHOR> http://thenextweb.com/apps/2012/03/14/kevin-roses-milk-shutters-its-first-app-oink-after-just-over-3-months/

<comment><USER2> This doesn't exactly help their credibility with me as a user. Why should I invest time in their next "experiment" if they're just going to give up a few months after launch?

<comment> k-mcgrady Milk always made it pretty clear that anything that didn't gain traction would get killed. They are going to launch 2-3 products a year and kill anything that doesn't get good uptake.

<comment><USER3> Doesn't really answer the question... Following the good old logic, we should all stay away from Milk's products until any of them "gains traction".

</comment></comment></comment><comment><USER4> I interviewed for a developer position with Kevin and he told me that Oink was an experiment long before it launched. I didn't take the job because I personally would rather work towards long term shipping products. He's also clearly more of a product guy than he is a tech guy, so that makes sense. He's got a bunch of money to last him many years to try different things. If it doesn't stick or go big, he's now got code, developers and data to move onto the next project. No big deal, I'm actually a bit jealous of that position as it sounds like a lot of fun to be in his shoes. My prediction (without any basis) is that we should expect to see another announcement from him about some new experiment in the near future. =)

</comment><comment><USER5> Ouch. Kevin Rose had good timing with Digg, but I think this is a great lesson that the ability to churn out idea apps with no long-term vision is a road to nowhere.

</comment><comment><USER6> I feel bad for Kevin Rose, I used to lookup for him as a role model in the entrepreneurial and startup world a few years ago.

However, I think the only good thing he did recently was the Foundation podcast, and even that seems to be dying.

<comment><USER7> do you count Digg as a success?

<comment><USER6> I do, I just think Kevin Rose get's tired of things pretty fast

</comment></comment></comment><comment><USER8> Damn, should have read "Dear Landlord" from raganwald

<http://raganwald.posterous.com/dear-landlord>

</comment><comment><USER9> "This is an interesting case. It seems like the group designed, built and shipped a pretty slick ratings app all in a bid to gather data."

Well, that's one way to spin it.

Gotta hand it to Kevin, he knows how to handle PR.

<comment><USER10> more like TNW is just especially useless. of course oink was a bid to gather data, that's what all the rate-things apps are. except oink failed, nobody used it. if it was successful at gathering data, it would still be running.

<comment><USER11> Thanks, always wondered whether I was just useless or 'especially useless'. Remember that writing an article like this means explaining things that may not be as evident to the general public as they are to you. Thank you for reading though, I appreciate it.

</comment></comment></comment><comment><USER12> With all of these companies shutting their doors, I think it would be fun to make some sort of data graveyard. A place where you can visualize your dead interactions.

</comment><comment><USER13> Random aside: the article says "just over three months." Then links to an article from November 3, 2011. Can nobody in this industry do basic arithmetic? I realize that four months is just over three months, but argggh.

<comment><USER11> Yep, my fault. I'm crap at dates. I've updated the article.

</comment></comment><comment><USER14> Kevin,

Thanks for continuing the throw shit at the wall. Looking forward to what you do next!

</comment><comment><USER15> perhaps kevin rose is joining the bandwagon of SoLoMo to compete with the likes of Highlight, <http://LetsLunch.com>, Glancee etc</comment>


A decade on: Google's internet economy  - <AUTHOR> http://news.bbc.co.uk/1/hi/business/7597599.stm

<comment><USER2> Does Google really need another PR-fluff piece? It would be like another article on how good Exxon-Mobile is at making money. We get it, move on please.

</comment><comment><USER3> It will be interesting to see how Google will celebrate it's anniversary in 2 days time.

I guess it would have been a much better time to launch chrome from a marketing standpoint (wouldn't have made much difference though). But i guess the decision makers at google thought about this more than any of us.</comment>