93% of 2006 AAA-rated subprime mortgage-backed securities now rated junk - <AUTHOR> http://www.nytimes.com/2010/04/26/opinion/26krugman.html

<comment><USER2> When people say they will act one way and have financial incentives to act another, expect them to follow the financial incentives.

Appropriate regulation can help for a bit. But unfortunately the regulated party has incentives to provide incentives (such as contributions to political campaigns) to gain control of the regulations. This leads to regulatory capture that then renders the regulations ineffective.

In a perfect world we'd be forcing the banks right now to write down securities that took a hit, forcing them to declare losses, which would mean that they wouldn't be paying out absurd bonuses. This would absorb the money we gave them from the bailout. In a slightly less perfect world we'd be enacting useful regulations that would avoid this problem returning for a few decades (such as happened during the Great Depression).

In the real world we gave the banks a big bailout, have let them mark securities to models of their choice, and they paid themselves big bonuses on their "profits". Of course they are still sitting on lots of toxic securities (like bad CMBS and the junk bonds issued by private equity) that they have not marked down yet. When that blows up we have good odds that they'll ask for another bailout. And the behavior of both parties says that the leadership will try to get it for them. They nearly didn't manage to deliver it last time, and given the public outrage since, they may not be able to deliver it next time.

This could lead to interesting times. Interesting times.

<comment><USER3> _which would mean that they wouldn't be paying out absurd bonuses_

No it wouldn't. Investment banks are huge and diverse businesses. If you're an FX trader, nothing whatsoever to do with mortgage-backed securities, and you've done your job well this year and made excellent profits (which for the bank as a whole offset their losses) then why _shouldn't_ you get a bonus as usual?

Of course the loss-making traders shouldn't get bonuses (that is after all the point of the bonus system) but lumping everyone in with them is both inaccurate and counter-productive.

<comment><USER4> I've wondered this too. As an employee of a small company, I _really_ wish I could use the same argument (and trust me, I've tried). "Hey boss, I'm doing the work of two people, at about a 40% discount to market rates for the average embedded engineer. You don't seem to think I'm average, and there's no question that you're more than happy with _my_ performance. I realize business is off right now and sales suck, but why shouldn't I get a bonus/raise?" "Cause we don't have any more money, and the government won't give us any."

I really like my job, but sometimes it's tough not to be jealous of the world of big money and government.

I guess my answer to your question might be: "because Joe two floors down blew up, and we wouldn't exist as a company anymore if not for the government bailouts".

<comment><USER5> Try asking for the bonus Wall St style: "Hey boss, you know I am worth a lot. Pay me more or I quit. "

Your boss may find the money, or your new job will pay more.

<comment><USER2> The better way to do this is to find the other job, get that offer, then go to your current employer and say, "Another company is gave me an offer for more salary elsewhere, but I don't want to go there for reasons X, Y and Z. However (name financial reason - spouses are convenient) is pushing me to take the money. Can you help me?"

The fact that you went to your employer first, and you made it clear that you didn't want to leave, both go a long way to mitigate the possibility of bad emotional reactions. (They don't eliminate it, but they mitigate it.) And they put you in a position to renegotiate your salary. Furthermore if it doesn't work, your fallback is a new job at higher pay.

Be warned, though, that this is a bullet you can only fire once. Having done it, you've burned some social capital. If you keep going back to that well, your employer is going to eventually cut you loose.

Also be warned that if you have actually accepted a job elsewhere, you should _never_ accept a counter-offer. In that situation your employer will be willing to offer a lot because they are desperate, but they know that it is just a question of time until they lose unhappy people. So they will work to replace you, and it is just a question of time until you are fired with no job offer in hand.

That's why if you try this it is critically important to go to your employer with the message that you want to stay, but (financial situation X) is a problem for you. (It helps, a lot, if the financial situation is both real and known to your employer.)

</comment></comment></comment></comment></comment><comment><USER6> Headline is inaccurate, it's 93% of subprime-backed mortgage securities.

<comment><USER7> Exactly - the majority of AAA bonds would be US/Euro/Sterling government bonds, which are still AAA rated.

<comment><USER8> Greek bonds aren't doing so hot right now:

"The ratings agency, Standard & Poor's, downgraded Greece's long-term and short-term debt to noninvestment-grade status and cautioned that investors who bought Greek bonds faced dwindling chances of getting their money back if Greece defaulted or went through a debt restructuring. Earlier, S.& P. reduced Portugal's credit rating and warned that more downgrades were possible."

[http://www.nytimes.com/2010/04/28/business/28markets.html?sr...](http://www.nytimes.com/2010/04/28/business/28markets.html?src=mv)

There was an NPR Planet Money podcast recently that said if Greece failed, others were likely to follow:

<http://en.wikipedia.org/wiki/PIIGS>

[http://www.npr.org/blogs/money/2010/02/podcast_yes_greece_co...](http://www.npr.org/blogs/money/2010/02/podcast_yes_greece_could_defau.html)

</comment></comment></comment><comment><USER9> It seems to me that rating agencies should be paid by the institutional investors that buy the bonds, not the banks trying to sell them. That might help the incentives line up better.

Am I crazy? Nobody suggests this, and I think I'm missing something crucial here.

<comment><USER10> Rating agencies seem like an absurd idea altogether. Have they never heard of the perils of having a single point of failure? Much less a single point of failure that's a government-created oligopoly? Yikes.

It seems that businesses are just running on an outdated model developed when information sharing was a lot harder, so only condensed forms like quarterly reports and press releases were feasible. But now that information sharing is a lot easier, shareholders should be demanding more openness from businesses -- yes, today a lot of that information is considered to be a trade secret, but at the same time shareholders need to stop allowing businesses to get away with what's equivalent to deceit through "creative" accounting (e.g. apportioning profits/debts amongst subsidiaries). That's just a textbook example of exploiting information asymmetry. Shareholders should expect more information about the business' books and transactions. There must be some natural equilibrium between being open about transactions and protecting strategic advantages, but right now we have the functional equivalent to price fixing, er, information fixing -- companies don't release relevant information because "no other company does" and shareholders don't expect real operating information either because that's not part of the status quo.

Wouldn't an investment bank that was so confident in the principles behind its analysis that it was willing to list all its transactions in a continuously- updated XML file, despite the risk of copy-cats, seem like a pretty damn good investment? They wouldn't have to divulge their proprietary methods of analysis, just make their holdings public. This would greatly improve the efficiency of markets as investors could use their own proprietary methods to estimate the risk of an entity's portfolio management strategy when deciding whether to invest in it.

And there's definitely historical precedent for this -- the fabled value investor Benjamin Graham didn't go to great lengths to hide his trades, instead he'd use them as examples in his classes, and yeah, people copied him. And he _still_ made boatloads of money.

<comment><USER3> Well, it's more subtle than that. The big ratings agencies are Fitch, S&P and Moody's. They are competitors for the business of issuers. So each one is incentivized to rate higher than the others, without blatantly being seen to take the piss.

The problem with complete openness is that it encourages short-termism. You see this even with quarterly results, companies that have recently gone public (and thus have minimal reputation) manage from quarter to quarter to quarter and are hugely volatile. Imagine working for a manager who only cares about the share price _tomorrow_.

The risk of your XML file is not copycats, it's front-running.

<comment><USER10> The short-term price motivation is a great point. I'll think about that some more.

But how does this scheme encourage front-running?

</comment></comment></comment></comment><comment><USER11> If anyone is interested in a very clear example of the story behind the stat, I highly recommend this podcast/radio episode: [http://www.thisamericanlife.org/radio- archives/episode/405/i...](http://www.thisamericanlife.org/radio- archives/episode/405/inside-job)

</comment><comment><USER12> Krugman fails to mention that this is the corrupt fallout from his cheerleading in 2002 for low interest rates in order to create a housing bubble to fill the void of the .com bubble !

"Alan Greenspan needs to create a housing bubble to replace the Nasdaq bubble." - Krugman 2002

[http://www.nytimes.com/2002/08/02/opinion/dubya-s-double- dip...](http://www.nytimes.com/2002/08/02/opinion/dubya-s-double-dip.html)

<comment><USER13> Now I don't understand what your motive is - but your quote is taken waaay out of context...

Original quote: "The basic point is that the recession of 2001 wasn't a typical postwar slump, brought on when an inflation-fighting Fed raises interest rates and easily ended by a snapback in housing and consumer spending when the Fed brings rates back down again. This was a prewar-style recession, a morning after brought on by irrational exuberance. To fight this recession the Fed needs more than a snapback; it needs soaring household spending to offset moribund business investment. And to do that, as Paul McCulley of Pimco put it, Alan Greenspan needs to create a housing bubble to replace the Nasdaq bubble."

Here Krugman basically quotes another source. The way I interpret this quote (and article) is not cheerleading for lower interest rates. The message to me is that whole system is unsustainable and that only move that will be able to perpetuate the lie is to replace one bubble with the next.

In this context Krugman's vision has proven prophetic.

The whole notion, nothing personal - I have noticed it more than once, that Krugman somehow argued that replacing one bubble with another is good for economy somehow is ridiculous.

<comment><USER5> The point of that editorial is that business investment won't end the recession, so the only hope is housing.

"To fight this recession the Fed needs more than a snapback; it needs soaring household spending to offset moribund business investment. "

Krugman is just repeating the same "insufficient demand" theory of recessions that Keynesian economists are using today.

<comment><USER14> And he was right. 7 years from 2001 to 2008 he was saying this and everyone dismissed his concerns by calling him a partisan bush-hater. Maybe so, but he was still right.

Keynesian economics brought us out of the great depression and the lack of their application led to deflation and the lost decade for Japan.

Supply-side economics, on the other hand, have been tried twice in the last 30 years and both times they ended with massive government deficit and collapsed asset bubbles.

Before casting aspersions on someone by virtue of their -isms, I'd check the record of the -isms in question.

<comment><USER5> I didn't cast aspersions on anyone. I simply summarized Krugmans column: to increase consumer demand, the fed should create a housing bubble, but even that is unlikely to work.

<comment><USER14> I don't think that's what he was intending to say. I remember a whole bunch of cautionary columns of his from that time period, some of which were very partisan and accused Greenspan of keeping interest rates low for political reasons.

</comment></comment></comment></comment></comment></comment><comment><USER15> 93% isn't bad luck. 93% is fraud.

<comment><USER16> Not that I think everything was above-board, but to be fair, these are hugely correlated instruments: it's not reporting 93% of all AAA debt tanked, but 93% of all AAA-rated derivatives of subprime mortgages. Given the subprime- mortgage crash, it's not surprising that everything tied to subprime mortgages uniformly tanked too.

The way an AAA-rated derivative of a subprime mortgage could exist to begin with was via "tranching", where debt was sliced up into different buckets of repayment priority, which heightened the correlation. In a minor crash, the AAA securities would do okay, because they'd get the payments from the non- defaulting loans, and the lower-rated tranches would take the losses. But once you go over the threshhold where there isn't enough money to even repay the top tranches, then everything tanks all together. So really, near-0% and near-100% default rates were the likely outcomes.

<comment><USER17> _but to be fair, these are hugely correlated instruments_

That makes them more risky, not so? How did they get the AAA rating then?

<comment><USER18> By recursion.

The initial iteration is that they pool a bunch of loans together to aggregate the risk. They know from history (short term history - a vulnerability that turned into a failure mode) that mortgage defaults are quite unlikely to happen in the first, say 5, years, so they can sell paper that matures in 5 years and be confident that it has a low failure rate from the (flawed) historical perspective. The longer term paper on the loans will historically have a higher probability of failure, so the longer term paper has lower ratings.

Then the recursion occurs.

1) Homeowners kept refinancing their houses (encouraged by the insatiable appetite for new mortgages to slice and dice into AAA-rated paper), so their loans never aged, they just kept getting reset.

2) The bankers took the remaining less-than-AAA-rated aggregated debt and used to create a _new_ debt vehicle and then claimed _all over again_ that the "new" debt (which was really old debt reheated) could be re-sliced into AAA- rated debt plus residual lower rated debt.

This quickly turns into a house of cards which inevitably failed when short term history (low failure rates based on long held mortgages and "perpetually" increasing house values) failed to model reality.

<comment><USER19> Trick is, the ratings agencies _knew_ 1 and 2 were happening; questions about the practice were raised.

That no-one _did anything_ when questions were raised is what brings us back to fraud. The ratings agencies were allowing a known-flawed system to apply known-incorrect ratings because it served their own financial interests.

</comment></comment></comment></comment></comment><comment><USER20> If anyone listened to the hearings, they quoted a part from the book, "The Big Short: Inside the Doomsday Machine" which discusses some of what the author thinks were the inner workings. I've been reading through it now and cannot recommend it enough.

[http://www.amazon.com/Big-Short-Inside-Doomsday- Machine/dp/0...](http://www.amazon.com/Big-Short-Inside-Doomsday- Machine/dp/0393072231)

</comment><comment><USER21> Let's not forget that Krugman was one of the chief advocates of the housing bubble (before it popped) and that his "berating of the raters" should begin with an apology.

[http://blog.mises.org/10153/krugman-did-cause-the-housing- bu...](http://blog.mises.org/10153/krugman-did-cause-the-housing-bubble/)

<comment><USER22> I'm not a big fan of Krugman, but let's also not forget that we were in a recession at the time of those remarks; when Krugman was saying the Fed should raise interest rates a few years later, and taht the US was addicted to Chinese treasury purchases, libertarians scoffed and called him an alarmist.

This 2005 example of libertarian economic thought is particularly ironic, arguing that measures of inflation like CPI give too much weight to housing and car prices while an adjacent advert promotes a book explaining how the crisis was caused by too much easy money: <http://www.cato.org/pub_display.php?pub_id=3752>

Other sparkling jewels of economic wisdom include his prediction at the beginning of 2008 that recession was a non-issue, or his comments from earlier in the decade (when the Fed had raised rates a bit) that the nation would achieve substantial long term benefits from the 'glorious housing boom' created by previously low rates, which had allowed many refinancers to invest and consume more.

Physician, heal thyself.

<comment><USER21> Point taken. However, Krugman's comments were a little stronger than what you suggest. He explicitly called for the creation of a housing bubble (see my other response below).

Please don't take the link as a blanket endorsement of libertarianism; it was just the first link that came up as a result of my google search. I remembered reading up on Krugman's predictive failures many months ago ...

Krugman stopped being an economist a long time ago and is now a political hack - regardless of whether or not he has a point in this particular instance. I imagine that you didn't need Krugman to tell you that the raters were issuing ridiculous ratings ...

<comment><USER22> _political hack_

no disagreement there. It's just I think the same is true of some of his loudest critics :)

<comment><USER21> Nice.

</comment></comment></comment></comment></comment><comment><USER23> Your title is wrong and misleading

</comment><comment><USER24> Can someone actually find the source for this 93% figure? I haven't been able to. I just keep seeing the link back to the NYT page. I'd be good to actually see real numbers - not just Krugman's opinion.

</comment><comment><USER25> Thank god that we have government regulated credit ranking agencies to protect us from this mess and having to use our own judgment when investing. Oh wait... hmmm...

</comment><comment><USER26> This rating agencies are making their money the same way the big business consultants does - by confirming client's illusions and narcissistic views. This is called corruption.

</comment><comment><USER27> what does this have to do with news.yc ? it's not even about startups!

<comment><USER28> From the FAQ:

"On-Topic: Anything that good hackers would find interesting. That includes more than hacking and startups. If you had to reduce it to a sentence, the answer might be: anything that gratifies one's intellectual curiosity.

Off-Topic: Most stories about politics, or crime, or sports, unless they're evidence of some interesting new phenomenon. Videos of pratfalls or disasters, or cute animal pictures. If they'd cover it on TV news, it's probably off- topic."

This one's a bit of a gray area, as it's heavily political in nature, but the mechanics of loan securities is of both intellectual and personal interest to what I'd imagine is a heck of a lot of HN readers.</comment></comment>


GNU ed 1.15 - <AUTHOR> http://lists.gnu.org/archive/html/info-gnu/2019-01/msg00003.html <comment><USER2> I'm sure most of us have seen this but for those who have not - ed is the standard editor!

[https://www.gnu.org/fun/jokes/ed-msg.html](https://www.gnu.org/fun/jokes/ed- msg.html)

<comment><USER3> I googled the author, Patrick J. LoPresti, trying to know more about him and what he is up to. I haven't looked deeply, but I found this easter egg on the game Wasteland 2 [1]:

      1992 M.I.T. Class Ring
      Description
      2 city skylines are etched along the edges of this gold ring.
      The face features a busy beaver. The name "Patrick J. LoPresti"
      is engraved in script on the interior.

I wonder if it's a tribute because of his joke.

[1]: [https://wasteland.gamepedia.com/1992_M.I.T_Class_Ring](https://wasteland.gamepedia.com/1992_M.I.T_Class_Ring)

<comment><USER4> In the kickstarter, $2,000 let you design a personalized item. Wasteland was released in 1988 so somebody who graduated in 1992 may have had fond collegiate memories.

</comment></comment></comment><comment><USER5> I maintain a lightly modified v6 ed[1] for people who want the real deal.

[1]: [https://github.com/geocar/ed-v6](https://github.com/geocar/ed-v6)

<comment><USER6> According to the page, that version of ed is the editor on which you learned Unix. What editor do you use on Unix these days?

<comment><USER5> I still use ed for a lot of small edits. I also use vi (not vim) a lot: having multiple screens means I can leave an editor open with code for a long time.

</comment></comment></comment><comment><USER7> It's interesting to see that `ed` is still going strong. I am curious: is anyone on HN using it (semi-)regularly? If so, what are its advantages over other editors (other than maybe the fact that it is probably the smallest editor you can get, unless you do all your editing on the shell)?

I have to admit that I _never_ encountered a situation where `ed` might have been my tool of choice.

<comment><USER8> I use it when I for some reason need to do something like "delete line 398". Just open ed and do "398d" and "wq". That's my habit for deleting stale entries in ~/.ssh/known_hosts.

For a while I maintained a .html blog using only ed, just for the fun of abstaining from conveniences and learning to use an ancient program. It's somehow nice to know that it's possible.

<comment><USER9> They recently added ssh-keygen -R to remove entries from the known_hosts file, it's been a big time saver for me. I wish more server providers would tell you the keys your server is using though so you don't have to play the TOFU (Trust-On-First-Use) game.

<comment><USER10> In this case, recently means 2005 when OpenSSH 4.0 was released so you can assume it exists even on things like Red Hat:

[https://www.openssh.com/txt/release-4.0](https://www.openssh.com/txt/release-4.0)

<comment><USER9> Interesting, I only learned of it recently, it seems a patch was added to Ubuntu called "mention-ssh-keygen-on-keychange.patch" which puts explicit mention of ssh-keygen -R into the error message, I had assumed it was part of openssh itself and arrived at the same time.

This patch was explicitly rejected in upstream openssh as they said it could lead people to copy and paste it without considering attacks - but ignored the fact that by just telling people what file it was in, many people just deleted the file in response and those who did it right, deleting just the relevant line in cases where a key change was expected like my situation, never discovered the easier ssh-keygen -R method.

Perhaps they shouldn't offer a copy and paste solution, but mentioning that ssh-keygen is capable of it and to see the docs would be nice at least...

<comment><USER10> This is a common problem with open source projects which don't have huge doc/PR teams — I've seen so many times where someone reinvented something because it was obscurely documented or used a different term than they thought to search for.

</comment></comment></comment></comment></comment></comment><comment><USER11> It's going strong enough to justify someone publishing a book on it [1] just last year.

[1] [https://www.amazon.com/Ed-Mastery-Standard-Unix-Editor- ebook...](https://www.amazon.com/Ed-Mastery-Standard-Unix-Editor- ebook/dp/B07BVBSDNZ)

<comment><USER12> " _Ed Mastery will help you:_

" _...._

" _•insert, remove, and mangle text_ "

Yep. That's ed.

</comment></comment><comment><USER8> Pretty interesting that there are to this day updates in the POSIX standard for ed...

<comment><USER13> Yes... That also caught my eye... I guess it is helpful to have a sensible implementation-neutral standard to prevent implementations from drifting too much. This could be something like the C updates that fix undefined behavior.

<comment><USER14> > This could be something like the C updates that fix undefined behavior.

Undefined behavior isn't necessarily something that should be fixed, in all cases. In some cases, it explicitly cannot be fixed, as it is undefined explicitly due to known differences in machines.

<comment><USER15> Undefined != implementation defined. The more stuff that gets moved to implementation defined the better.

<comment><USER13> If everything is implementation defined, why bother with a standard?

<comment><USER15> [https://stackoverflow.com/a/4105123](https://stackoverflow.com/a/4105123)

Why would you want undefined behavior?

<comment><USER14> To allow implementations slack to do things in the way that works best for them, in some cases of undefined behavior -- but not all of them.

If you have not read it before, you might find "The Value of Undefined Behavior" informative: [https://nullprogram.com/blog/2018/07/20/](https://nullprogram.com/blog/2018/07/20/)

<comment><USER15> The whole point of implementation defined behavior is to allow the individual implementations slack. I'm not saying C should be 100% UB free, just that implementation defined is preferable to undefined.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> It's amazing that such a long-lived, ubiquitous program would be only version 1.15.

<comment><USER17> It took over a decade to hit 1.0. But it's simple enough there's never been a whole lot that needs changed. Whole thing is around 3000 lines of code. There was a memory leak that took over 20 years to find and fix though.

I uploaded the whole changelog[1] if anyone wants to read it in a slightly more convenient way than downloading the source tarball.

[1] [https://pastebin.com/raw/6XkJCjsU](https://pastebin.com/raw/6XkJCjsU)

<comment><USER18> Does ed support Unicode? That would be one big change that the original designers could not foresee.

<comment><USER17> ed predates the existence of unicode and has made no changes to support it. So it does not "support" unicode but works fine with UTF-8 if your terminal supports it.

As far as ed is concerned some bytes are being pushed around between stdin/stdout/your file, and it does not mangle them so everything works.

</comment></comment></comment></comment><comment><USER19> For those who can't get enough ed, there's also edbrowse[0], an the ed-like web browser (and editor, and mail client, ...)

[0]: [http://edbrowse.org/](http://edbrowse.org/)

<comment><USER20> Ah, that page reminded me ("[Edbrowse] was originally written for blind users") of my blind friend from high school who used ed (if connected to unix remotely) or the similar DOS program, EDLIN (to edit locally). This was around 1992. He had a laptop with a fancy add on card and BIOS which would do text to speech of whatever was in the video cards text-mode character buffers. He could have it read character by character if needed. (He wrote most of the C code for a programming competition we were in. He never indented though...)

</comment></comment><comment><USER21> The following article got me interested in ed. It shows how to automate a seemingly difficult to automate operation in an elegant way.

[https://jvns.ca/blog/2018/05/11/batch-editing-files-with- ed/](https://jvns.ca/blog/2018/05/11/batch-editing-files-with-ed/)

</comment><comment><USER22> I had the pleasure of trying out ed(1) in its natural habitat last week at CCC, which was very nice [https://twitter.com/ProgrammerDude/status/107899350944788070...](https://twitter.com/ProgrammerDude/status/1078993509447880705?s=19)

</comment><comment><USER23> ?

<comment><USER23> Whoever downvoted has obviously never used ed!

</comment></comment><comment><USER24> Nice.

One thing that I miss and apparently is still not there is the ability to use '*' in place of '1,$' that was in the MWC Coherent version.

<comment><USER25> Off the top of my head, does '%' capture all the lines?

(It does that, or stands-in for the actual filename, or something else :/ )

<comment><USER24> Ha! Yes it does. Thanks.

</comment></comment></comment><comment><USER26> Where is GNU TECO (the editor I wrote my PhD thesis with in 1975)? (I'm very curious what my fingers remember 40+ years later.)

<comment><USER14> It's EMACS now, which started life as a collection of TECO macros.

In 1972, Carl Mikkelson produced the first collection of TECO Editor MACroS.

In 1976, Richard Stallman collected all publicly available TECO Editor MACroS into a single distribution, creating EMACS.

</comment></comment><comment><USER27> A video showing a guy with nc and bash adding clojure repl support to ed.

[https://lambdaisland.com/episodes/ultimate-dev- setup](https://lambdaisland.com/episodes/ultimate-dev-setup)

</comment><comment><USER28> > * The configure script now accepts appending options to CFLAGS using the > syntax 'CFLAGS+=OPTIONS'.

Was this due to an autotools version bump?

</comment><comment><USER29> Real Python programmers write all their code in ed

</comment><comment><USER30> This is the best news ever!

Really made my day!

</comment><comment><USER31> [https://firstname.lastname@example.com,-71.0046955,3a,15y,4...](https://firstname.lastname@example.com,-71.0046955,3a,15y,47.98h,89.35t/data=!3m6!1e1!3m4!1sRHRaSB4hFWoka6ZfXPGJjg!2e0!7i13312!8i6656)

<comment><USER32> It's a picture of a street sign saying "WYNOT RD", for those wondering.</comment></comment>


The Problem With Old People - <AUTHOR> http://www.ajkesslerblog.com/the-problem-with-old-people/

<comment><USER2> Nothing to do with old people - all my life I've known folks that hesitate to try something new. And for good reason mostly - stuff breaks, its expensive.

Agree that its death to get stuck there. Its a confidence thing I guess.</comment>


LFGo – Lisp-Flavoured Go - <AUTHOR> https://bitbucket.org/ktg/lfgo <comment><USER2> If this has macros it gives people "generic" programming in Go at the cost of having to write it all in a lisp dialect. I wouldn't personally mind it but some might :-p

<comment><USER3> "Macros are supported via Racket's macro system define-syntax, define-syntax- rule and defmacro."

So yes. :-)

</comment></comment><comment><USER4> As an aside, seeing more bitbucket hosted libraries on HN lately. This is a good thing. I am a fan of the github product, but I am bigger fan of not putting all your eggs in one basket.

<comment><USER5> I have repo's on github, bitbucket, and gitlab :)

</comment></comment><comment><USER6> I wish there were actual examples doing some I/O or http server where error handling comes into picture (which IMO the primary thing that messes up the Go code syntactically by repeating the "if err != nil {" block).

</comment><comment><USER7> So basically the crux of this is 100 lines of a macro[0]. Am I reading this right?

[https://bitbucket.org/ktg/lfgo/src/a7f71aec7d29d00100f2d21c2...](https://bitbucket.org/ktg/lfgo/src/a7f71aec7d29d00100f2d21c262e877082ec0155/lfgo.rkt?at=master&fileviewer=file- view-default#lfgo.rkt-52:147)

<comment><USER8> The macro is really a bunch of case statements, so they can be interpreted independently.

</comment></comment><comment><USER9> This and Lisp-flavored Erlang make me wonder how far one could take the idea of a Lisp syntax atop some other language. As a half-joke, I wonder if one could make a Lisp-flavored C work; should I fear or be slightly bemused at the idea of a Lisp-flavored COBOL?

<comment><USER10> Author here. L++ (Lisp-flavored C++) [https://bitbucket.org/ktg/l](https://bitbucket.org/ktg/l)

</comment></comment><comment><USER11> Does this racket-based transpiler provide a REPL?

<comment><USER12> I was wondering something similar, can I just use Dr Racket for this? :)

<comment><USER13> I would say yes since Racket is a Programming Language for making Programming Languages :)

</comment></comment></comment><comment><USER14> It looks similar to the oden language.

[https://github.com/oden-lang/oden](https://github.com/oden-lang/oden)

<comment><USER15> And Gisp.

[https://github.com/jcla1/gisp](https://github.com/jcla1/gisp)

</comment></comment><comment><USER12> I am surprised that I didn't think about this till now but Go has simple enough syntax to where Lisp could be translated into Go code, and I wonder why Haxe doesn't translate into Go with that same thought. Go definitely has plenty of libraries at it's disposal standard library wise.

</comment><comment><USER16> Is the name a pun on LFO (low frequency oscillator)?

<comment><USER17> More than likely along the same lines as Lisp Flavored Erlang - [http://lfe.io](http://lfe.io)

</comment></comment><comment><USER18> But.. why?

</comment><comment><USER19> Oh god. They basically just took Go and added unnecessary parenthesis. This is the worst way to make Go LISP-like.

<comment><USER20> In my opinion, people who complain about Lisp's parentheses are usually the ones that have absolutely no idea about Lisp, nor have they any experience with it. Once you get "into" Lisp, you do not see it as a bunch of parentheses anymore, so focusing on this aspect suggests that the person who does it, does not really have much previous experience with Lisp.

<comment><USER21> Plus the fact that a decent editor will handle the parentheses for you.

When programming in Lisp, I use Emacs with paredit (for inserting and manipulating parentheses, quotation marks, etc.) and have the default colour for parentheses be very similar to my background colour, so I can focus on the symbols and their indentation instead. The exception is when the cursor is next to an open/close parenthesis, in which case the matching parenthesis is highlighted.</comment></comment></comment>


Hidden in this picture: steganography - <AUTHOR> http://www.lastwordonnothing.com/2018/09/24/redux-hidden-in-this-picture/ <comment><USER2> So, if I understand correctly, the Silkwood shower involves randomly twiddling the least significant bits of the image's bytes? Seems like a good idea, but does it affect the ability of things like Content ID to do their job?

</comment><comment><USER3> Why does that article paint steganography as a bad thing?</comment>


You don't need to daemonize - vezzy-fnord http://homepage.ntlworld.com./jonathan.deboynepollard/FGA/systemd-house-of-horror/daemonize.html <comment><AUTHOR> We still run daemontools even in systemd systems. The OS packaged cruft runs in systemd. Everything important runs in daemontools. Still the best "services manager" out there.

<comment><USER2> Why? It's no longer necessary.

Also, daemontools suffers from the same problem as other non-systemd service managers; it can't manage processes that daemonize themselves for good reason (like nginx or Unicorn). systemd can handle it because it creates a unique cgroup for every service; if the service needs to be stopped, all processes in the cgroup are terminated.

<comment><AUTHOR> We run both nginx and unicorn through daemontools. Both have options to prevent daemonization.

Why run something terrible (systemd) when we already have something that works really well (daemontools)?

<comment><USER3> > Why run something terrible (systemd)

It is terrible only because you say it is. It's been a massive help for us in adopting it, and accepting the help it offers makes custom software systems a lot easier to write in a robust way.

It's only "terrible" if you have axe to grind about the "right" way and then define that as daemontools.

<comment><AUTHOR> I have an axe to grind about the way it was introduced. Fedora and Red Hat massively mis-managed it. Previously, they introduced various things in tech preview releases, and it either stayed or went with subsequent releases.

systemd was thrust upon us by an axe-grinding developer.

<comment><USER4> So, stupid politics rather than technical merit.

</comment></comment></comment></comment></comment></comment><comment><USER5> I've used the python package supervisord with good success. Out of the box it manages stdout & stderr, rotates log files, restarts crashed processes, and has plugins for things like REST APIs to restart the process (for example, during an automated deploy). Another plugin can monitor memory usage & take some action when thresholds are reached. I find it very easy to use. You can commit your configuration file for supervisor into your app's repo, and symlink it in to supervisor's conf.d directory. Other plugins add stuff like web based dash boards. Its great for everything from managing a single process on a single machine, or a large cluster of worker processes on multiple servers.

<comment><USER6> I like supervisord for these reasons too. It's really handy.

</comment></comment><comment> ah- Seeing then FQDN with the trailing dot I wonder how much software breaks when you use it. I bet the duplicate check here doesn't treat homepage.ntlworld.com. and homepage.ntlworld.com as equal.

<comment> vezzy-fnord JdeBP is famous for his ungodly pedantry, so it'd be blasphemous for me not to honor RFC 1738 [1].

[1] [http://homepage.ntlworld.com./jonathan.deboynepollard/FGA/we...](http://homepage.ntlworld.com./jonathan.deboynepollard/FGA/web- fully-qualified-domain-name.html)

<comment><USER7> He's also famous enough that whenever I see ntlworld.com [1] I immediately think, "Ah, must be JdBP - that'll be worth reading."

[1] It's actually slightly astonishing his hosting still works at that URL given that NTL was consumed by Virgin nearly a decade ago.

<comment><USER8> I must admit, I felt a pang of nostalgia seeing that domain name. Must have been nearly 15 years ago that we got our super-fast 64k connection with free ntlworld.com web hosting, and we could finally have always-on internet at home. Oh how things have changed..

</comment></comment></comment></comment><comment><USER9> The problem with automatic daemonization is that there is no way to indicate startup failure: you just fire and forget the process in the background. If the process dies, there's no clear way of knowing whether it was due to an error in startup conditions (possibly as simple as a configuration error) or a runtime failure at a later time. In the first case, restarting makes no sense. In the latter case it might be a reasonable option.

With manual daemonization, the process can delay forking until it has ensured that its configuration is sound and it has the resources it needs. This way the parent process can indicate with its exit status whether the service was successfully launched.

<comment><USER10> If the program exits with a special status to indicate non-restartable failure, you could, in principle, recognize that in the process manager and handle it differently, by not restarting. Is there any way to do this in systemd, or in any other process manager?

<comment><USER11> Yes, systemd has "RestartPreventExitStatus" to configure a list of exit codes which prevent the automatic restart.

<comment><USER12> Was there not a recent blog/article that mused about the likelihood of systemd spawning all manner of special case entries?

And now i ponder likening systemd with CISC...

</comment></comment></comment></comment><comment><USER13> For Rails apps I've been using god to manage unicorn and delayed_job/resque processes in recent years. I've been mildly skeptical of systemd---not really out of true knowledge but because keeping things simple matters to me, and that seems to be the gist of the criticisms. But if systemd would let me do away with god, that would be nice! I agree that pidfiles are a hack and often cause problems. It seems like I'm going to need to learn systemd soon anyway, so I'll be looking into whether it can do what I need for Rails apps.

</comment><comment><USER14> I don't understand. If I write a server app that listens for client connections, why not daemonize that? Is systemd doing all of the listening then invoking the server app if a client connects?

<comment><USER15> Run in the foreground and systemd will do the right thing.

Your app is still the one listening for connections, systemd just calls wait() until you exit, then launches you again.

There's no need for you to do a fork() or setsid() or whatever, that was a relic of the "just run all these init files as scripts" nature of sysv init.

<comment><USER16> How does that work with nginx or haproxy, which support zero-downtime restarts?

<comment><USER15> That's a really interesting question, actually. (This was posted a day ago so I'm not sure anyone will read this any more, but...)

If the job of a process "supervisor" is to launch you, wait(2), launch you again, repeat... who has the role of doing zero-downtime restarts?

I'll define a zero-downtime restart in this instance as: a new process must be launched while the old process is still running, so it can negotiate a handoff of responsibility (via migrating who owns the port and draining connections in the case of nginx or haproxy), and the old process only dies once the handoff is complete.

If you wanted this behavior with systemd/upstart/etc as a supervisor (where processes are foregrounded and monitored), the supervisor would require a special case for "restart" which would just start a new process and monitor that one instead, and not bother with killing the old one.

I have no idea if systemd can accommodate for this without switching to a non- supervised process management mode (which is definitely possible.) I don't have much familiarity with advanced systemd or upstart, although I have plenty of familiarity with mesos schedulers, which can be kind of a datacenter-level version of systemd, and in this instance we do "rolling restarts" where new instances are launched, we wait for them to pass health checks, and then we drain the old ones, while a load balancer is responsible for routing incoming connections to the healthy instances. It's an interesting notion for what a single machine's process supervisor should do in this case.

</comment></comment></comment></comment><comment><USER17> I wrote a Java server that blocks spam based on my criteria and set it to run like this:

[http://manpages.ubuntu.com/manpages/trusty/man8/update- rc.d....](http://manpages.ubuntu.com/manpages/trusty/man8/update-rc.d.8.html)

I didn't do any daemonzing like we used to do in the C days so I'm not sure that the systemd approach mentioned in the article does it better (not against the idea, maybe it's needed on non-Ubuntu systems?).

I just needed to write a simple shell script with the basics and this:

...

      case "$1" in
          start)
              startup
          ;;
          stop)
              shutdown
          ;;
          restart)
              restartit
          ;;
      esac

...

<comment><USER18> If all you're doing is start/stop/restart on Ubuntu you should take a look at Upstart[0]. See a simple example here: [http://askubuntu.com/a/251581](http://askubuntu.com/a/251581)

[0] [http://upstart.ubuntu.com/](http://upstart.ubuntu.com/)

<comment><USER19> upstart is deprecated.

<comment> vezzy-fnord Not that I know of. ChromeOS still uses it and though Ubuntu is phasing it out, they haven't completely gotten rid of it as a session manager yet AFAIK. They need to support it for a few more years anyway due to 14.04 LTS.

<comment><USER20> That's exactly the difference between deprecated an obsolete. The former means it's on it's way to the latter. Putting work into upstart just means you'll have work migrating to systemd in less than a year or two.

</comment></comment></comment></comment></comment><comment><USER21> I tend to always use daemonize to start a Java program because typically I need to pass several startup options (like Xms, Xmx, etc.) and systemd unit files cannot perform even the simplest variable interpolation needed [1].

Someday systemd will go beyond simple key-value substitution, and on that day I'll stop using daemonize.

[1]: [http://www.opsfordevelopers.com/2015/05/startup-scripts- for-...](http://www.opsfordevelopers.com/2015/05/startup-scripts-for-java- based-services/)

<comment><USER19> What's wrong with doing something like the following:

...

[Service]

Type=forking

EnvironmentFile=-/usr/local/myJavaConfig

ExecStart=/bin/sh -c '${JAVA_HOME} ${JAVA_OPTS}'

Or if you're after passing things in, use the other technique that lets you use systemctl myservice@your_sub.service

<comment><USER22> Two things are wrong, neither of which, however, make daemonize appropriate. First, and trivially, there's a missing /bin/java (-: Second, that's a potential readiness protocol and a main PID mismatch. See [http://unix.stackexchange.com/a/200365/5132](http://unix.stackexchange.com/a/200365/5132) for details. And then [http://askubuntu.com/a/624871/43344](http://askubuntu.com/a/624871/43344) . Remembering to exec is another lesson to bring along from the daemontools world.

</comment></comment></comment><comment><USER23> You can run a daemon-like process with its stdin/out firmly attached to a TTY: a virtual TTY inside a screen or tmux session that can be detached and reattached.

<comment><USER24> As was pointed out a few days ago, if the output stream exerts backpressure, write calls will stall. Stopping scrolling at the output end is enough to do that.

<comment><USER25> But that's the whole point of screen and tmux—It's always got a terminal to suck up stdout.

</comment></comment></comment><comment><USER25> I've been using daemon-manager for the past couple years—its most interesting point to me is that you can start and stop user daemons without require root privileges, which make it nice for non-root scripts/bots (for the paranoid age) and for multi-user systems (admittedly decreasingly common in the AWS and Docker age).

<comment><USER11> "systemd offers users the ability to manage services under the user's control with a per-user systemd instance, enabling users to start, stop, enable, and disable their own units."

[https://wiki.archlinux.org/index.php/Systemd/User](https://wiki.archlinux.org/index.php/Systemd/User)</comment></comment>


Ask HN: How Many of You Are Active on Quora? - <AUTHOR>

<comment><USER3> Every day.

</comment><comment><USER4> Me.

</comment><comment><USER5> I am - however I have real problems with UI.

I think the coloring and the font sizes they use are backwards (the light gray coloring, with the white and blue make it very hard to visually skim and see how many answers things have, for example) - the ability to identify topics / find topics is difficult to navigate. Keyboard shortcuts in the browser break. The nesting levels are too shallow to allow for deeper discussions - <USER2> limit it to mono-dimensional responses with one layer of comments on answers.

email addresses and links don't work in posting boxes.

And a number of other things.

The quality of the content is superb, however (although there is a bit too much grammar nazi-ism, which I feel actually detracts from the flow of information at times)

so, Yeah I like the site - but the UI makes it difficult for that use to be fluid and efficient.</comment>


The Microsoft Tanker Has Turned and You Ignore it at Your Own Peril  - <AUTHOR> http://newsgrange.com/the-microsoft-tanker-has-turned-and-you-ignore-it-at-your-own-peril/

<comment><USER2> > Windows Phone 7 is about to be released (and after seeing it in action > during a short trip to Redmond earlier this week, I'm convinced that it will > be a huge hit).

That's the first time I've heard someone positively speak about Windows Phone 7. Everyone I know (myself included) seems to think it will be a disaster. But as I've said before, I haven't actually seen it in person yet - the marketing videos online make me think I'll hate it, but perhaps I should reserve judgement until I can use one.

If the Microsoft Tanker is actually turning around, then why is Windows losing more and more of the consumer markets every single day? MS is about _three years late_ to the phone party, and they don't have a damn clue about tablets or anything mobile. Windows 7 is a "huge success" only because it works properly; that's no innovation, and that's not going anywhere for the future. MS is doing well with IE9, but you will still need Windows to run it! One of their main competitors is about to release an OS (I'm referring to Chrome OS), and Chrome (the browser) has been gaining and gaining market share while IE loses and loses.

I do not agree with the conclusions of this article at all. MS is still fumbling and bumbling about, with no clear path for the future. They're still mostly ignoring the web (sure, IE9 and Bing are great, but why are they so forcefully shoving Silverlight plugins everywhere?! That's not the web!) and they're ignoring the fact that consumers won't care what OS they're running in the next few years.

Microsoft will grip the business world for a very long time, but they haven't got long to live in the consumer market.

 _Edit_ TL;DR: Microsoft isn't turning around because they're still mostly ignoring the Internet.

<comment><USER3> Do you not read Engadget or ZDNet ever? Both have been pretty complimentary about WP7. But everyone is also waiting until release. There's just too much we don't know... in particular the strength of their app ecosystem.

Why is having a plugin incompatible with the web? Sure it's not THE web, but getting the web doesn't mean that you ignore all other methods of delivering experiences. It's like saying that Apple doesn't get computers, because they also make phones.

And I'm sure MS does get that the OS is becoming less relevant. They've probably known this for longer than most people here have been devs.

That statement you made is one of the naive statements I often see from kids who just got out of college. The issue isn't if they know that the OS is becoming less relevant, but the real question (the one that is actually hard to answer) is what do you do about it when you generate $30B/year revenue from it? I'm sure from your perspective they should just drop Windows and move everything to Linux starting yesterday. They'll make that $30B back on ads, right?

<comment><USER2> > Why is having a plugin incompatible with the web?

The very basis of the web is open protocols and open access: anyone running any networked computer can access any web content. That's how the web grew to be so big: it didn't matter if you were running UNIX or Windows or Mac, you could access the same information as anyone else, and you could contribute back.

Content that is produced with Silverlight is Microsoft-only, so if you are in an environment where you can't install closed plugins, or if you just don't want to, then you can't see the content. The same goes for Flash of course: the only reason it took off is because it could do things that the regular web couldn't. That's slowly becoming less and less true now, and Silverlight is just not needed.

However, Microsoft is pushing Silverlight because it locks people into their software: if enough people use it to build content, then everyone will _have_ to continue using Microsoft software. That is completely incompatible with The Web and all it stands for.

I don't know how Microsoft should make money. But the way they're aiming themselves into the future is doomed to fail. I get that they probably understand their space is dying, but the problem is that they're not looking for alternatives. They're just pushing the same products they have been for decades.

If they know that won't work, why are they trying it? Look, I haven't got the answer and if I did I'd be rich. But pushing your users into anti-Web, locked- in environments is going to fail in a web-driven world run by Google.

<comment><USER3> I think you misunderstood my post. My point was that Silverlight was NOT the web, but was not incompatible with it. By this I meant that having Silverlight doesn't destroy the web. The same way gay marriage doesn't effect your marriage. They can both coexist. And you can choose what you want to use.

I disagree about your reason why the web because so big. Frankly, I think what caused to become so big was ease and speed of deployment. If the web was PC only it would have grown on marginally slower.

I don't know how MS is trying to make money, but I think I see what they're doing:

1) Focus on Bing Search. Search revenue is a huge chunk of money and allows them to move to the web more easily.

2) Make IE the BEST browser experience. I think they've finally decided that the web can actually have differentiated experiences, and I think they want IE/Windows to be the best platform for it.

But at the same time they continue to also focus on business users. And the fact that a lot of consumers still need a desktop OS. I spend a fair bit of time editing movies, and while I'm sure there's a web app that will render BluRay movies from HD video, I've yet to find one as good as the desktop tools I have.

You don't leave money on the table when you're a business. Just like Google won't leave money when it comes to selling your eyeballs.

</comment></comment></comment></comment><comment><USER4> The last time I recall the metaphor of the slow, lumbering giant turning around to - at long last - deliver the dreaded fatal blow was when the internet appeared and they eventually responded by delivering enough versions of IE (culminating in version 7) to dominate the market for web browsers.

In order to do so, they had to leverage the ubiquity of their desktop operating system, which they then used to lock in web developers to a broken implementation (a pain that we're still feeling to day every time we need to ensure stuff works in IE6) so they they could further solidify the dominance of Windows, which has has always been their one, true, and unwavering goal: "Windows Everywhere".

How could they do this with phones & tablets? It's not like they can just bundle a phone or tablet with every desktop PC that gets sold, thereby leveraging their existing channel like they did with IE.

</comment><comment><USER5> "What's interesting is that most of these apps and services are only one or two iterations removed from really horrible products like Windows Mobile 6.5, Internet Explorer 7, Live Search."

Microsoft uses a 3-year release cycle for most of its products. Only 2 years ago did they switch to a 1 year release cycle for the internet services division.

One or two iterations is actually 4 to 6 years. That is a long time to make Messenger not slow. And they are still not there.

But I agree it's not a sinking ship. WM7 is pretty good interface and sdk wise. The licensing terms will have to convince device makers to adopt it instead of free android. That's where it gets interesting.

<comment><USER2> See, this is the thing about Microsoft and the Web. You can't release software that's web-based in cycles measured in _years_! Microsoft is still completely stuck in the '90s. Google is releasing Chrome on something like a 6-week development cycle. That's how it should be done. The web changes all the time, and Microsoft's products don't. That's the problem.

Also, from other comments on this story, I've discovered that Windows Phone 7 won't be HTML5-capable. If IE Mobile isn't even near IE9's level of sophistication, it seems unlikely that they'll ever update it to be compatible. Otherwise, why not ship something at least as good as IE8?!

In two to three years, much of the web will be HTML5. And Windows Phone 7 devices will be left in the dust.

<comment><USER3> I think you may be surprised at how fast MS revs the phone. They've already hinted that IE9 will be on the phone. One of the reasons why MS said no skins to the OEMs is that they want to be able to rapidly rev all phones.

I wouldn't be surprised if less than a year after launch they have IE9 on the phone.

</comment></comment></comment><comment><USER6> Despite the string of successes mentioned, MSFT is still in need of a breakaway hit to translate to shareholder value.

The successes mentioned (outside of Windows 7) barely show up on the MSFT revenue chart:

[http://www.businessinsider.com/chart-of-the-day-microsoft- op...](http://www.businessinsider.com/chart-of-the-day-microsoft-operating- income-by-division-2010-2)</comment>


Master Class in Systemic Racism: Learn to Identify Power Maintaining System - <AUTHOR> https://sharpiecomesinallcolors.substack.com/p/master-class-in-systemic-racism <comment><AUTHOR> Master Class in Systemic Racism : Learn to identify powerful people maintaining system

Case Study: US Democratic Senator Richard (Dick) Durbin</comment>


Rust 1.25 released - <AUTHOR> https://blog.rust-lang.org/2018/03/29/Rust-1.25.html <comment><USER2> The big thing in this one is the LLVM upgrade, which has been a _long_ time coming. :) We actually skipped LLVM 5 entirely due to some issues with emscripten. It'll be great to finally be able to experiment with LLD.

Looking forward, the next two releases, 1.26 and 1.27, are going to have some major features that we've been working on for a long, long time, such as "impl trait" (which should allow for improved performance, simpler syntax for the typical use of generics, and greatly improve error messages for extensive use of generics), more ergonomic matching when dealing with references, 128-bit integers, stable SIMD library support, and others. This whole year is going to see the continued stabilization of the ergonomics intiatives from last year, so stay tuned for lots of welcome tweaks to make Rust easier to write and read. :)

(I should also mention that this release happened live from the Rust All-Hands happening in Berlin, which has been a massively productive time so far; keep an eye out for the eventual workweek recap which will hopefully enumerate the tons of improvements (e.g. reducing Rust binary sizes by 10%) and future initiatives (e.g. forming an official Verification Team) that have happened this week.)

<comment><USER3> >stable SIMD library support

Oh, that's a huge one for me and I didn't even know it was in the pipeline, very happy to hear that. Now I'll have to complain about lack of stable inline ASM support instead!

<comment><USER4> You can check it out in nightly here [https://doc.rust- lang.org/nightly/std/arch/](https://doc.rust-lang.org/nightly/std/arch/)

> Now I'll have to complain about lack of stable inline ASM support instead!

This one is much, much harder.

<comment><USER3> >This one is much, much harder.

I'm curious why that is, intuitively I'd have assumed that SIMD support would be trickier to stabilize (since you need a generic interface over a wide range of implementations) while inline ASM is pretty much "just copy-paste this bit of assembly in the middle of this function" which I assume is already something LLVM can do easily since it needs that for C/C++. Since nobody expects inline ASM to be portable you don't have to worry about making one single generic interface to it.

What's the catch?

<comment><USER5> w.r.t. to SIMD, there are two prongs to it:

* Platform dependent functions that match an upstream vendor's API. (Think __m128i and friends.)

* Platform independent APIs that provide portable vector APIs.

The former is necessary because the latter cannot ever hope to cover all use cases supported by CPUs. The latter is necessary because it can hit many use cases, and finding the optimal implementation for every operation for every permutation of platform (and every permutation of CPU feature on each platform) is a non-trivial task.

So yeah, that is indeed a ton of work. However, LLVM does a lot of the heavy lifting for us, particularly with respect to the implementation of the portable API. "All" we have to do is define an API we're willing to stabilize in `std`. (Which is no easy task.)

I'm less in touch with the inline ASM feature, but like most things, I expect it is much more complex than you're suggesting. You can read more about it on the tracking issue for inline ASM[1]. Remember, if we're stabilizing something, then we need to make sure it continues to work. If LLVM's doesn't uphold that guarantee, that we must necessarily provide our own interface that is stable. "Just expose LLVM's internals" is not really an acceptable answer, and it was in fact a large part of the SIMD effort (building APIs we can stabilize on top of what LLVM supports).

I'd also like to note that the stabilization of the former piece above (platform dependent vendor intrinsics) eats into _many_ of the use cases for inline ASM. Not all of course, but many. :-)

[1] - [https://github.com/rust- lang/rust/issues/29722](https://github.com/rust-lang/rust/issues/29722)

<comment><USER4> Yes, the fact that we basically just do what LLVM does, and that that's not stable, is a huge blocker. There's also the broader question of "DSL" vs the way that LLVM does it...

</comment></comment></comment></comment></comment></comment><comment><USER6> Novice question: It says one step closer to support AVR, am I correct to assume the arduino is part of that family?

Because if so I have an amazing excuse to finally learn rust

<comment><USER7> If you want to get something done with microcontrollers, ARM Cortex-M tends to be much more powerful and is already great fun to write Rust for. It's a bit of work to get started--certainly a lot compared to Arduino which abstracts away even things that shouldn't be--but the code can be much more readable and portable than the corresponding C.

For example, get this $2 board [http://wiki.stm32duino.com/index.php?title=Blue_Pill](http://wiki.stm32duino.com/index.php?title=Blue_Pill) and use this library (see the examples!) [https://github.com/japaric/stm32f103xx- hal](https://github.com/japaric/stm32f103xx-hal)

There probably will eventually be AVR implementations of [https://github.com/japaric/embedded-hal](https://github.com/japaric/embedded- hal) so you could run mostly the same code on an Arduino board.

</comment></comment><comment><USER8> This llvm should have newgvn which allows better auto vectorization. I'm curious to see if panic=abort allows some of the nbody implementations at benchmark game to autovec. Might not have to wait on SIMD to beat c++. The fastest nobody entry is FORTRAN and it has no intrinsics, just autovec.

</comment><comment><USER9> > cargo doc, ... . It's getting a huge speed boost in this release, as now, it > uses cargo check, rather than a full cargo build

This is great. I often run cargo doc after adding new library dependencies or even for my own new interfaces to be able to click through the code. This is a wonderful tool, especially while IDEs are still coming up to speed.

Are IDEs using cargo doc? or are they reimplementing the markdown processing?

<comment><USER4> My understanding is that they use their own markdown processing, but I'm not actually sure. The RLS presents the raw text as far as I know; I'm not sure how the IntelliJ stuff works.

</comment></comment><comment><USER10> Instead to improve the "use" they had to remove it and enable only namespace renaming

</comment><comment><USER11> Does async/await have a slated release version yet? Also, is there a central resource to track progress on that topic?

<comment><USER4> There's sorta two possibilities here; the procedural macro based version and some sort of native keyword version. We don't have a target release number yet, but sometime in the first three quarters of the year is a vague sort of target.

The networking WG just started literally today, and will be shepherding the work. I'm not yet sure where the best tracking issue is; if I find out soon I'll leave another comment.

<comment><USER12> For whatever my two cents are worth, I would choose a macro over a keyword every day. Keyword clutter can be incredibly stifling once a language has any history at all.

</comment></comment></comment><comment><USER13> Does the LLVM version jump improve performance or doesn't really matter in that area?

<comment><USER4> As always, it depends on the exact code. I'm sure some stuff got faster, and some got slower; it really depends on the exact code being compiled.

</comment></comment><comment><USER14> Link is dead.

<comment><AUTHOR> It is now!

(we had some issues with GH pages)

<comment><USER2> Or rather, it _isn 't_ now. :)

<comment><USER15> The link is dead, long live the link!

</comment></comment></comment></comment><comment><USER16> > Nested import groups

man, they work really hard to keep their language ugly & confusing

<comment><USER17> Nested import groups will often be uglier, but there are definitely some cases where they lead to _much_ prettier code with no loss of obviousness, and nesting was a logical extension (in a "why don't we have this?" kind of way, in my opinion) of import grouping, making that feature more internally consistent.</comment></comment>


Show HN: Your best source to find & hire an A-list copywriter - <AUTHOR> https://copysamba.com/ <comment><USER2> Whats with the ciggy and ash tray? Neat but strange addition.</comment>


Please review my new application  - <AUTHOR> http://www.readevery.com

<comment><USER2> Interesting idea. Some things I've noticed:

1) It could use a description on the main page, so that new users know what they're in for.

2) Scrolling through the result page (using the mouse's scroll wheel) makes my browser stall for > 10 seconds before loading new entries. (Firefox 3.6.3 on Win7)

3) The 'beta' badge on the main page has a very light yellow color, which makes the white text hard to read. The label text could also use some letter spacing.

4) The 'y' in the ReadEvery logo is cropped a bit too much, making it look like a 'v'.

5) The results page could use some filter options, to focus on location or relevancy. It would also be nice to be able to remove users from the list on a case-by-case basis.

6) Retweet and reply buttons (per tweet) would be also be nice.

<comment><AUTHOR> Thanks for your time on this. Really appreciate it. I am working on the remove/unfollow user functionality already. The retweet/reply buttons is a very good idea :-) I had not seen the cropped 'y'. Will fix that too

<comment><USER2> Another thing that just occurred to me: since you're presenting the tweets out of their context, sorting them purely by user, perhaps it'd be better to remove replies from the flow? That way snippets of conversations wouldn't confuse the reader. I'm assuming this view is meant to find standalone tweets that contain insightful remarks or links/media?

Also, how about auto-converting links in tweets into embedded media? (images, YouTube, etc)

<comment><AUTHOR> auto-converting links.. didn't occur to me at all. Thanks to remove re-tweets, I should probably set that as the default option (removed) and yet provide the user a way to turn it on

</comment></comment></comment></comment><comment><USER3> \- remove the :: :: in the sites title

\- add a button next to the twitter username textbox so i can change names myself (if i have multiple accounts)

\- Y looks like a V in logo

\- BETA is hard (if not impossible to make out in the main application page)

\- add a margin on the bottom of the twitter pics - everything else has a nice margin except that and it runs on the hr

\- when you mouse over a url a small preview window should show up of the site or a small media player

\- theres too much space between the rows of twitter feeds

\- try to get rid of reply tweets as I cant see the full conversation the little bits i can see are useless

\- Track This Now at the bottom of the page does nothing - is it supposed to?

\- the number of retweets is above the retweet image while the numbers of facebook likes is on right, try to have some uniformity

\- add space above the faint hr below retweet/like images

\- in logo, shadow of EVERY is too faint... just because the font is a different color doesnt mean the shadow should be any different. thats like saying a black person should have a darker shadow than a white person =)

\- only 3 columns - i have a large display and it would be nice if I this could expand to fit my browser window

Overall, I like the idea and hope that you flesh it out some more

<comment><AUTHOR> I am glad you like the idea. I have a lot of work to do.

"- add a button next to the twitter username textbox so i can change names myself (if i have multiple accounts)" Interesting that you thought that. Right now you can just press enter but I see how this can be confusing to people. I will add the "Go" button

"- try to get rid of reply tweets as I cant see the full conversation the little bits i can see are useless" I think so too.. and so do some other members so will work on that

A lot of design input here. I lack the eye for it so this is extremely useful for me. Now, I just have to run through point by point. Thanks a lot

</comment></comment><comment><USER4> Cool spin on viewing tweets.

Since this shows multiple tweets from a single user, the ordering of the users becomes more important. I think its currently ordered by most recently followed. Some other orderings that might be interesting:

(1) Most recently tweeted

(2) Affinity - order by people I reply/RT the most

(3) List view - view users from a specific list

Also, would be nice if you could click on links in tweets directly.

<comment><AUTHOR> List view is coming up. The user has to login using Twitter OAuth though (Twitter API requirement). I think ordering by affinity is a very interesting idea to pursue. Thank you

</comment></comment><comment><AUTHOR> HN, Thanks a lot for all your comments/feedback

I have worked through many of them to make the site better.

here are some

Date/time of the tweet now appears next to retweet/reply options

Tweets are color coded based on their recency.

there is a quick profile view and follow/unfollow facility

The page used to hang because of load.. now there is only a pageful of tweets loaded on startup and then it auto-loads as the user scrolls down to see more making the experience significantly smoother.

The wanted the site to be a way of finding interesting people to follow. Now you can search for them by topics/keywords by clicking on the "Find tweeters for a topic" link. For example if you type in Google, it lists all the Google tweet accounts for you and you can follow the ones that interest you easily.

Again, thanks a lot for giving me a big list of sure fire improvements to work on

</comment><comment><USER5> It's interesting, I guess, _but_ the focus of Twitter is the tweets and the way this is presented makes me think they're not the main focus, surely they should be -- unless I missed the point of your application?

<comment><AUTHOR> You haven't missed it. The "additional" purpose is to be able to find interesting profiles by drilling down to see who people I follow are following but tweets and their readability is very important. Thanks

</comment></comment><comment><USER6> After spending eons reading twitter from Flipboard and Pulse, this layout reminded me of AllTop. It's a nice global view of finding out where's what but I personally had a hard time focusing on just one user because i have seen their older tweets. This would be a great non-intimidating way to catch up with twitter if you're out of the loop.

<comment><AUTHOR> Yes. That was the use case. I would find it difficult to quickly get an idea about what everyone is been up to individually so I made it. You are right in that this is especially useful when you are out of the loop.

</comment></comment><comment><USER7> I was curious about how it behaved with locked profiles. The authentication dialog that popped up was not very attractive, and I certainly didn't want to enter my password in it.

<comment><AUTHOR> I am still working on that. I didn't know if there would be any demand for that so I pushed it down in priority. Basically, the locked profiles can never be viewed by any other user. To view it, the user has to enter via OAuth. I am still working on it and what you see (the authentication dialog) is still unfinished. I will definitely update here once I am fully ready. Thanks for pointing it out

</comment></comment><comment><USER8> Interesting idea. You should add a timeline view that basically looks like what that user's Twitter timeline looks like.

<comment><AUTHOR> it is a good idea. It gives you an idea of what the user himself is looking at it. Got it. Thanks

</comment></comment><comment><USER9> 1) Change logo. Flickr style logos are not cool anymore. 2) Follow button seems to be broken, sometimes it doesn't work.

<comment><AUTHOR> A bug seems to crop up sometimes in the follow functionality. Will investigate

</comment></comment><comment><USER10> Nice app. Since you are grouping tweets by username, you can remove that username from each individual tweet.

<comment><AUTHOR> Wow! Thanks. I was so close to the project I never saw this. I just fixed it

</comment></comment><comment><USER11> Looks great. Biggest thing missing in my opinion is the date/time of the tweet.

Good work!

<comment><AUTHOR> I think so too

</comment></comment><comment><USER12> This is really nice, I'm going to use it.

<comment><AUTHOR> Thanks :-)

</comment></comment><comment><USER13> is it just me or? Oops! Google Chrome could not connect to www.readevery.com

<comment><AUTHOR> i just checked. The service is fine</comment></comment>