Software Runs the World: How Scared Should We Be That So Much of It Is So Bad? - <AUTHOR> http://www.theatlantic.com/business/archive/2012/08/software-runs-the-world-how-scared-should-we-be-that-so-much-is-bad/260846/# <comment><USER2> How many of the business processes that software manages were _better_ before the software took over? MOST companies I've seen inside were a hodge-podge of bad/missing/sloppy paperwork and poorly documented or even understood guidelines and policies. Software amplifies everything about a business, both the good and the bad. The downside is that because so much is networked today, something "going wrong" can have much larger consequences (and faster) than a wrong decision carried out on paper 30 years ago.

<comment><USER3> While this is definitely true, the amount of damage those paper-based systems was limited. As the Knight Capital case showed, it is possible to lose millions of dollars a minute with poor software. That would not have been possible with human trades.

<comment><USER4> _That would not have been possible with human trades_

Tell this to Mizuho Securities, where a human sold 620,000 shares at 1 yen instead of 1 share at 620,000 yen. ~$300 million loss in a single botched trade. Humans at both Mizuho and the Tokyo Stock Exchange saw the trade and _all declined to intervene because they assumed they had insufficient authority to countermand the trader_.

</comment></comment></comment><comment><USER5> Holy crap, The Atlantic has gone down hill in the past few years. It feels like they try to become the next Huffington Post. A couple of years ago it felt like a serious competitor to magazines like The New Yorker or The Economist. Then they rebranded themselves from The Atlantic Monthly to The Atlantic and started their "social media revolution".

This is an incredibly shoddy article, it even closes with an absolutely brain- dead "what if"... the way average high school students close their essays.

<comment><USER6> You've hit the nail right on the head.

I'm a huge believer in the free market, but the economics of journalism really do seem to be pushing a lot of serious periodicals into a crappy direction. Salon was never excellent, but it was good at times. Now it's utter crap. Slate was pretty good, now it's sliding fast. The Atlantic? Yep, just as you say.

Most of these places are ditching the "serious researched journalism" and even the "serious political opinion pieces" and going with fluffy bloggy chit- chatty crap.

"Round tables" are getting more an more popular, especially round tables that are just emotional reactions to lifestyle news. Four women discussing birth control. Five guys talking about Breaking Bad (Slate: I'm looking at you for BOTH of these).

And now the Atlantic is headed down the huffpo route.

All markets "clear" at some price and some volume. It may just be an unfortunate fact that in the Internet age the market for real journalism clears at $0 for 0 volume.

Again, my philosophical / political inclination is to deny this, to say that there's never a market failure, that everyone can always buy the magical pony they want at a price that sounds fair...but journalism seems to be giving me really good reasons to not say that.

<comment><USER7> > I'm a huge believer in the free market, but the economics of journalism > really do seem to be pushing a lot of serious periodicals into a crappy > direction.

To throw out a glib generalization, it seems that the free market is best at producing things people want, not necessarily things people need.

</comment></comment></comment><comment><USER8> > And perhaps the most mission-critical of all mission-critical applications > are the ones that underpin the securities markets where a large share of the > world's wealth is locked up.

Really? I don't even consider the stock market software as mission critical. I mean, Jane Street's software is written in _OCaml_...

Mission critical is software that controls lives. Airplane, spaceship, heart pacer, ...

<comment><USER9> You have your definitions confused.

 _Critical_ software leads to people's death when it goes wrong.

 _Mission critical_ software leads to the _mission_ 's death when it goes wrong.

Where the mission is usually "make money".

<comment><USER10> Unless of course ones mission is to fly an aircraft, control a power station, connect a phone call, keep someone's heart beating... Just words... The above commenter has a point. Mission critical is also about the effective control of a physical process just as much as it can be about smooth flow of money (which is just another process).

In some ways the article title is misleading as it touches on only a fraction of the software that actually runs the world - there is a shit load of software actually running the world (incl. making physical stuff go) and from what I can see most of it does a decent job, in general (of course there is always room for improvement). Disclosure: I'm a process control programmer so am biased in my view as to what actually 'runs the world' :). Taking nothing away from the money processing side of the business.

<comment><USER9> Intersect("Critical","Mission Critical") != "Mission Critical"

Intersect("Critical","Mission Critical") == "Critical"

</comment></comment></comment></comment><comment><USER11> So, here's the unpleasant, unspoken, often subliminal truth about lots of enterprise software. It's supposed to be about automation to increase efficiency. In reality, it's often largely about _control_. Software enforces a certain workflow and can be used to allow or disallow certain actions. It's a way to enforce the procedures in the 3 ring binder.

One recurring pattern I've seen in enterprise software projects is separation between users and the developers. Often, there is this game of "telephone" where the user's managers talk to a manager above them, then there might be another layer above before information can start heading back down to the devs. Often, one is strictly _forbidden_ to talk to users, except in exceptional situations. This is because the project is largely about _control_ , so restrictions on communication with the users is necessary, since many of the unstated goals have to do with the frustration of the user's wishes.

What's even worse is when this power of control is used in political infighting.

<comment><USER12> The trick is to find way to knife through a couple of those layers of management to the managers who actually know what should be done. You really can't ask most users or managers because they're just not helpful.

<comment><USER11> I found that's not so straightforward for consultants like me, because the manager that brings you in is embedded in the "layers," directly in the information path. People-skills were not my forté.

<comment><USER12> We got lucky. I got hired into a project that started out in research which had/has a very loose management. It's the only part of the org structure where shit flows uphill. That gave us quite a bit of leeway in terms of establishing a cross cutting team. We've since been transferred but so fair the culture seems to be holding.

</comment></comment></comment></comment><comment><USER13> People run the World: How scared should we be that so many of them [insert pet peeve].

Mine is: ...will vote for war and more spending.

</comment><comment><USER14> The article tries to make a point and then at the end evades the conclusion:

> The only real solution is to acknowledge that computer programs are going to > fail and try to minimize the damage they can cause in advance. [the best way > to do this is to not use the software in question at all]

No, the only real solution is to provide a meaningful warranty with software (rather than typical "no warranty" clauses). Regulation can enforce this and the price will have to be paid by the customer. We have put up with these crappy licenses for decades and the result is the buggy mess we have now and no way for customers to demand a working product. Mistakes will still be made, but they shouldn't harm the customer more than the vendor.

[http://mil-embedded.com/articles/software-warranties-new-era...](http://mil- embedded.com/articles/software-warranties-new-era/)

<comment><USER15> How often have you really encountered such buggy software that's cause you significant harm as a consumer? I've had annoyances and had to get refunds, though rarely and it's hardly ever caused any significant loss.

No way for customers to demand a working product? Which products don't work? How does consumer choice and refunds for completely broken software not take care of this?

The software referenced in this article was mostly built in house, perhaps some with enterprise licensing which you can be sure included negotiations covering reliability.

Regulation is not the answer. Software is just fine.

<comment><USER14> Vulnerabilities in widely-used software (e.g. Windows, MSIE) were often fixed much too late, so the customer was at a risk or had to use 3rd party software at an additional cost just to compensate for them. Botnets that exist only because of these vulnerabilities put every business on the web at risk.

Software is just as "fine" as any other product where no accountability exists.

<comment><USER16> How do you provide a warranty against someone actively trying to destroy something?

Doors don't have guarantees against someone kicking them in. Cars aren't covered against someone putting sugar in the gas tank.

What counts as a vulnerability?

How can a regulatory body possibly decide what was a "vulnerability" they should have known about and what was something unforeseeable? I guarantee you there isn't always clear line between the two.

What about when the vulnerability is exploited by a government who has greater resources than the software vendor?

Does Microsoft have to pay out on a claim when damage is caused because a certificate is forged by the US government?

<comment><USER14> > How do you provide a warranty against someone actively trying to destroy > something?

You provide a warranty that states exactly what is covered and what not (and suitability for a particular purpose, which software licenses often deny completely).

> Doors don't have guarantees against someone kicking them in

They do, at least here in the EU you get differently rated safety doors at different prices. You know exactly what kind of minimum resistance they offer.

> How can a regulatory body possibly decide what was a "vulnerability" they > should have known about and what was something unforeseeable? I guarantee > you there isn't always clear line between the two.

Stupid Word macro and buffer exploits are very obviously grave mistakes made by the manufacturer, who should be held accountable.

> What about when the vulnerability is exploited by a government who has > greater resources than the software vendor?

Why should that make a difference? If you cannot handle the responsibility you have as a vendor, then don't be one.

> Does Microsoft have to pay out on a claim when damage is caused because a > certificate is forged by the US government?

No, because Microsoft's stuff works as intended in that case, the CA should be held liable.

<comment><USER16> >You provide a warranty that states exactly what is covered and what not (and suitability for a particular purpose, which software licenses often deny completely).

So software vendors state in their warranties that running this software on an internet connected device voids the warranty, and they stop offering patches and support. All support moves to unofficial third parties.

>They do, at least here in the EU you get differently rated safety doors at different prices. You know exactly what kind of minimum resistance they offer.

And that's an objective quantifiable measurement. Levels of software vulnerability are not.

>Why should that make a difference? If you cannot handle the responsibility you have as a vendor, then don't be one.

That is stupid, no software vendor can harden consumer software meant to run on a desktop internet connected computer to the point that a large government agency can't find a vulnerability.

<comment><USER14> > That is stupid, no software vendor can harden consumer software meant to run > on a desktop internet connected computer to the point that a large > government agency can't find a vulnerability.

I don't buy this. If the vulnerability is in the OS or some other program, those parts are to blame. But it's perfectly possible to avoid the mistakes that are typically employed for such intrusions (usually they are in the OS anyway - you know, the OS with no warranty, no accountability, but a monopolist price). When they aren't, it was usually some mediocre C programmer's sloppy coding (there are safer languages for mediocre programmers). The whole point of such regulations would be to put some pressure on developers so they must choose proper tools, languages, methodologies to keep customers from harm, whereas now they simply do what they like with no consequences.

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> Recently I have been using SPARK and it's a pretty different development mindset than the embedded C that I had been used to. It makes me wonder if other development areas could benefit from adopting some of this mindset and discipline.

For example, just to take a random example of Java or Python, what would it look like to create a strict subset of language features which allowed for formally provable code and to create a static analysis tool which could achieve it. I realize that this sort of thing isn't for many developers or many sorts of projects. However, I would like to see more folks taking the best parts of High Integrity Software development and bringing it out to the wider world.

<comment><USER18> Link to SPARK programming language:

[https://en.wikipedia.org/wiki/SPARK_%28programming_language%...](https://en.wikipedia.org/wiki/SPARK_%28programming_language%29)

</comment></comment><comment><USER19> Steve Yegge wrote about this recently: <http://news.ycombinator.com/item?id=4365255>

</comment><comment><USER20> Humans are the resilience in any system. No system is ever perfect, and no system will ever be. I think we'll be fine.

<comment><USER21> Not necessarily. Part of Kwak's problem with software is that it is taking humans _out_ of the system. For example, the stock trading software that runs a modern exchange replaces the human traders who used to exchange physical slips of paper. A human trader can look at a particular trade, say, "Hmmm, that doesn't look right," and ask for confirmation. A computer can't (in the general case). So, if humans are the resilience in any system, what happens when you start taking humans out?

<comment><USER22> _A computer can't (in the general case)._

They do this all the time. There are quite a few pre and post-trade checks enforced by the exchanges. The net result is that if things go wildly wrong, trading will most likely stop.

This is part of the reason why Knight Capital's implosion had such a minimal effect on anything besides Knight's shareholders.

<comment><USER21> That's true, and the point that I was trying to make is that we need _more_ of these built-in checks and assertions, even if they mean that the system isn't running at its maximum potential efficiency. I think that software development practices (especially in the financial industry) have gravitated too far towards speed (in computing and executing actions) and not enough towards safety (e.g. doing some meta-analysis and determining if the computed actions make sense given higher level trends).

</comment></comment></comment></comment><comment><USER23> It's "bad" because of three factors: (1) complexity, (2) inadequate motivation, (3) lack of understanding.

First, complexity. Bridges aren't doing several million operations per second. They either bear the weight or they don't. They handle a known temperature range. If it can function at -50 F and 120 F, then it can handle the typical 65 F day. With a bridge, people put a lot of work into solving a simple problem extremely well and reliably. Software can be developed this way (Unix philosophy) but most software isn't. Small programs are written to solve problems well, but often invisibly; large-program methodologies exist to get promotions for higher-ups.

There are few things in the world like software, which is pure logic. We don't have the tools to understand the complexity, and what tools we do have are often used to write more complex software, not understand the software we have (see: IDEs and their "four wheel drive problem" of getting people stuck in more inaccessible places.)

Second, a lot of "software engineers" aren't very good and don't have the incentives and leeway to get better. That requires lifelong learning and professionalism in the true sense of the word. We're not a profession. Many things define a profession, but some salient traits of professions are: (1) an ethical ruleset that supersedes managerial authority-- not only are you allowed to refuse your manager on ethical grounds, but you have to do so; "I was just following orders" is not an excuse-- and (2) an expectation and allowance that the professional will dedicate half (~20 hours per week) her working time to continuing education, networking, and other varieties of "off- meter" work that will never occur in a typical manager/subordinate context because they benefit the professional's long-term development rather than the manager's parochial goals, (3) a very high degree of autonomy in work regarding social-bullshit protocols, but with very strong restrictions on the things that matter (i.e. no one sets working hours or vacation limits over a research professor, but if he steals another's work or publishes results he knows to be false, it's career-ending). None of these apply to software engineering. (1) If you disagree with your boss about how things should be done on ethical grounds related to software quality or intellectual honesty, you don't have an appeal process. You just get fired. (2) Most software engineers, if they want to keep learning, have to do it on their own time; hence, the stagnation that sets in for all but the most energetic and ambitious. (3) Nope. Here, the software industry looks more like middle-middle class white-collar culture (show up at certain times, take orders) than upper- middle-class professionalism. The salaries are often professional level, but work conditions are merely white-collar.

In a truly professional environment, manager-as-SPOF is avoided like the plague and people have genuine incentives to do good work, not just enough work to appease the manager. The manager still has some power and influence, but the role is more like a graduate advisor than an overseer. Also, professionals are encouraged to build lifelong reputations and seek visibility. (In a typical software company, trying to do this gets you the smear of a careerist and a "socialite".) Professional environments motivate people to do their best work. Merely white-collar environments don't.

The third issue is that we simply don't have a good understanding of software. This may be derived from the two above: complexity and lack of professionalism. Or it may result from something else entirely.

We know that, theoretically speaking, "it's impossible to reason about code" (cf. Halting Problem). Well, my response invariably is that that's correct: it's impossible to reason about _arbitrary_ code. But we shouldn't be writing arbitrary code. Ever. We should write simple code that doesn't rely on extremely high-level mathematical or conceptual insight (which we model as non-computational "genius", though I have no interest in getting sidetracked into the debate of whether we are or are not computers) to understand.

I think individual people are good at writing software. People don't usually set out to write "arbitrary code". There are many individual software engineers who (1) use only as much complexity as they can handle, and (2) act professionally in spite of the lack of incentives or requirements ensuring it. Which means that _small_ software can be good. What I like about the Unix philosophy and small-program philosophy is that it enables islands of quality to exist, and eventually bridges between those islands, which can lead to generally decent systems even though it's GRAI (generally recognized as impossible) to have high quality in an entire codebase. Systems design is all about accepting the possibility of failure amid complexity. It's about using small components that do one thing really well and interchangeable parts, not single-program mudballs. Engineers get this. Managers, who conflate bigness (cf. interview questions like "what's the largest team you've ever managed?" and metrics like kLoC) with success, generally don't.

The problem is that, once a program has a certain number of hands pass over it, it turns to shit. Even if the original code was good, entropy sets in at some point. One bad apple spoils the barrel, and a "bad apple" doesn't have to be a bad programmer. It could be a skilled programmer who hasn't had a promotion in 4 years and no longer gives a shit. The reason why big-program methodologies generally produce legacy mudballs is that it's just impossible to prevent the "one bad apple" problem from corrupting the whole program.</comment>


Ask HN: Why to ground Space Shuttles on Earth if they could 'retire' in space? - <AUTHOR>

Nasa Space Shuttle are planned to be ground soon, apart from the maintenance part, has someone thought about sending them retire in space?
It'd be a large additional space for the ISS, and some instruments could be loaded to make it more useful.
PS: there's probably a lot of background for not doing so, it's just a morning "why?" moment :) <comment><USER2> Cost. Well, besides the need to maintain something that was never designed to be in space for a long duration, I would guess it would be because launching a Space Shuttle mission costs roughly 1.5 billion dollars (according to Wikipedia). And while there would be costs associated with decommissioning a shuttle, it seems likely that it would be significantly less than 1.5 billion dollars.

</comment><comment><USER3> Docking them on the ISS uses the dock. Launching the shuttles for a goodbye costs millions of dollars for sentimental purposes.

Most important: Retiring them on earth lets us put them in museums for people to see.</comment>


Should businesses stop flying to fight climate change? - <AUTHOR> https://sloanreview.mit.edu/article/should-businesses-stop-flying-to-fight-climate-change/ <comment><USER2> Air travel is 2% of emissions.

Perhaps helping to build out green electricity would be more useful? Solar panels on buildings, warehouses, etc.

This will help drive down the costs, thus making it more affordable globally.

</comment><comment><USER3> flying, why is driving to work for office jobs still a thing?</comment>


Astronomers Peer Inside Stars, Finding Giant Magnets - <AUTHOR> http://www.caltech.edu/news/astronomers-peer-inside-stars-finding-giant-magnets-48498 <comment><USER2> Jim Fuller just gave a very nice colloquium at my department on this result! Measuring the magnetic fields at the surfaces of stars is generally a difficult task, and it was thought essentially impossible to measure the field strength inside the star. It was very unexpected that Jim and his collaborators figured out a way to do that, albeit with large error bars and only for a particular class of stars.

</comment><comment><USER3> Url changed from [http://phys.org/news/2015-10-astronomers-peer-stars-giant- ma...](http://phys.org/news/2015-10-astronomers-peer-stars-giant- magnets.html), which copies this but doesn't link to it.</comment>


LibreOffice 5.3 is now available - <AUTHOR> https://blog.documentfoundation.org/blog/2017/02/01/the-document-foundation-announces-feature-rich-libreoffice-5-3/ <comment><USER2> Features in-browser online editing

[https://hub.docker.com/r/libreoffice/online/](https://hub.docker.com/r/libreoffice/online/)

but there is sadly no demo available.</comment>


Lessons from Spotify - <AUTHOR> https://stratechery.com/2018/lessons-from-spotify/ <comment><USER2> I think this might understate the problems Spotify has. Their earnings reports are _public_ and they are, as the author says, at the mercy of the record labels. If Spotify has an unusually profitable quarter, the labels are simply going to take that as a sign that they set their fees too low, and they're going to rectify that mistake. It doesn't matter what costs they cut, it doesn't matter how they increase their profits, the labels are going to see themselves as entitled to that surplus.

<comment><USER3> Netflix has a similar issue, which is presumably why they started making their own content. Maybe Spotify should start it's own label

<comment><USER4> I don't think that's feasible for Spotify -- why would you subscribe to a paid monthly music streaming service if most of your music (the 85% produced by artists associated with the "big 4" labels) isn't on the service? Sounds like a good way to drive people back to piracy.

Honestly, Netflix's selection is poor enough that I know quite a few people who have gone back to piracy. Spotify is in an even worse position.

<comment><USER5> I think the labels are more reliant on spotify at this point. Maybe you buy publishing rights for a lot of artists to be a label as there is no need for promotions for cds or interacting with radio stations

</comment></comment></comment></comment><comment><USER6> The authors central point seems to be that Spoitify is at the mercy of the record labels. Because the labels have the music. And that Spotify can't cut them out because they don't have enough users to attract artists:

        Notice how little power Spotify and Apple Music
        have; neither has a sufficient user base to
        attract suppliers (artists)

But he does not explain his reasoning behind it. How big is their user base? Why is that not big enough? And how big would it have to be to attract artists?

<comment><USER7> People often use Netflix as a parallel to reason about Spotify and circumventing labels.

But it is a bad comparison. Start with the consumer and work back.

Consumers expect their music streaming service to have any song they are looking for. For video they don't have the same expectation.

Music has a greater element of "I want to listen to this particular song/album because it is my favorite". Video is more about "I want to find something new to watch".

That fundamentally changes the value of having a complete catalog in music and puts Spotify in a weaker spot relative to Netflix.

<comment><USER8> _For video they don't have the same expectation._

I think this has more to do with the economics of pirating movies versus music.

When Netflix started, people were not used to torrenting (or Napster-ing, or Kazaa-ing, etc) movies. They were already at the mercy of Blockbuster, so being at the mercy of Netflix instead wasn't that big a deal. Pirating movies is more popular today, but people are still generally OK with having a limited movie selection.

Whereas by the time iTunes Music rolled around, people were already comfortable with having the whole world of music at their fingertips. You can't undo something like that easily. So the only way forward has been to try to have everything.

Perhaps the most interesting part about all this is that there was never (to my knowledge) such a thing as a store where you could rent records, tapes, or CDs -- Blockbuster for music.

<comment><USER9> > Perhaps the most interesting part about all this is that there was never (to > my knowledge) such a thing as a store where you could rent records, tapes, > or CDs -- Blockbuster for music.

Not a store, but you can rent records, tapes and CDs at most libraries.

<comment><USER10> Theoretically, yes. But I've never seen anyone actually do it.

<comment><USER11> Maybe you should get out more?

</comment></comment></comment></comment></comment></comment><comment><USER12> Spotify vs netflix

\- People very very infrequently watch the same movie/tv show twice.

\- People very very frequently listen to the same song

therefore

\- The past is important for songs since at any point in time there are more songs in the past that you want to listen than new songs that have been just released

\- The future is more important for movies since you are looking fwd to watching something new

therefore

Netflix >>> Spotify

<comment><USER13> > People very very infrequently watch the same movie/tv show twice.

While probably true now, this will change over time. Most people I know (mid/low 20s) use netflix as a replacement for the radio - putting on The Office / parks and rec just as background noise while doing other things. Those shows have been on repeat in my house everyday for a few years.

</comment></comment><comment><USER14> Spotify's ad studio (and sales team) deserve more acknowledgement. I don't pay for a Premium account, but I'm a daily user. I find the ads tolerable, the voices relevant. And they dont interfere with my enjoyment of the platform.

In contrast, the ridiculous ads on Pandora is what sent me to Spotify. I can only assume Pandora has low inventory, because I'm getting ads for a tractor company 30 miles away. I'm a Sr dev, listening to Drake, and I don't have a lawn or a farm.

<comment><USER15> As far as I have understood, that's not how it works economically.

Spotify is trying hard to make free users upgrade to premium, while enlarging the user base. I don't think they have any interest in playing real ads (except some music-related ones that maybe keep the labels a bit more quiet); that's the reason you get tolerable ads. But in the longer term, Spotify might decide to kill the free service (or just make it a timed trial.)

<comment><USER16> > Spotify might decide to kill the free service (or just make it a timed > trial.)

I doubt this will happen. A lot of teenagers right now have only have a free spotify subscription because they don't have any money, and spotify probably wants to keep them as subscribers so in the future they do become customers.

<comment><USER17> Count me as a single data point for the example of a teenager switching to paid Spotify as a college student (albeit discounted to half-price). When I graduate I'll probably keep paying, at the full $10/month. Apple Music is tempting for Siri integration, and Amazon and Google are certainly alternatives, but I'd rather stick with the cross-platform "underdog" that doesn't lock me into using iTunes.

Also, screw Apple Music and Tidal for "exclusives."

<comment><USER16> Not disagreeing with your point, but just because spotify isn't tied to an already-huge company doesn't make them more of an underdog. They already have a much larger subsriber-base than all the other music services, and it's clear to me from seeing the way people act and their choices in what they do that, similar to netflix, it's bound to succeed despite all the armchair analysists pointing to graphs with lines pointing down.

Also, I'm curious, what issue do you take with exclusives? Do you also find fault in netflix, hulu, and amazon creating media and making it exclusive to their service?

</comment></comment></comment></comment></comment><comment><USER18> Ben Thompson delivers again. I love reading this guy's stuff. I'm not saying it's earth shattering, but it's accessible, well thought out, and leave feeling much more informed.

<comment><USER19> His exponent podcast is excellent as well. Just wish it was available on Google Play Music which it is not for some odd reason.

</comment></comment><comment><USER20> > Making matters worse, the U.S. Copyright Royalty Board just increased the > amount to be paid out to songwriters; Spotify said the change isn't > material, but it certainly isn't in the right direction either.

I can be wrong but wouldn't something like this affect Spotify's bottom line in short term already?

That said, the situation might be even worse. As pointed by the top post from an earlier Spotify IPO discussion, record companies might squeeze Spotify even more if it starts becoming profitable:

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

</comment><comment><USER21> It's an interesting article. I think it overplays the power of the record labels though. If Spotify increases its user base substantially enough, then bargaining power goes to them in the Long run. Record labels can't make money selling directly to the consumer anymore.

Secondly, I don't think the cost is a problem. if it IPOs, the proceeds will be used to fund (my guesss) customer acquisition which would be in line with their strategy of incurring larger costs now in return for future gain.

<comment><USER22> What can Spotify do if labels pull their catalog? It needs their music.

Labels on the other hand have other places to go. Labels have options, Spotify doesn't. It's not hard to see who has more bargaining power.

</comment></comment><comment><USER23> This is a little tangental, but tangental to a couple of the themes here...

One tangent is that I'm totally dissapointed with the dominant "content aggregators" like kindle, netflix, spotify, apple and such.

Amazon wrapped up the ebook market quick. But, even though it's a revolutionary change in medium, very little changed.

The book publishing industry was ripe for change. Physical publishing gradually got less expensive and less risky. From physical typesetting to short run modern printing. ebooks bring that capital cost down to $0. In response, publishers maintained their "venture capital" status with advances (money upfront to authors) and (supposedly) "marketing," the impression that a publisher can make a book sell.

The point on publishers' marketing importance is dubious, especially in the context of amazon & ebooks.

Advances, editing and the remaining jobs publishers do... The value/cost does not add up to 80-90% of the revenue. Typical royalty rates (5%-20%) are _absurd_. Amazon could have disrupted this, easily. It would have completeley changed the industry, and made writing a viable living for many more people, producing many more books.

Also, mediums. Magazines famously spawned whole new formats and genres. So did things like paperbacks, pamphlets and other medium changes. Serials and shorts stories. Comic books and gossip collumns. The internet gave us blogs, tweets, infographics and PG essays.

Ebooks gave us digital versions of paper books. The impact has been minimal.

It is as if amazon did their very best to revolutionize books, but change as little as possible.

Spotify did something similar, maintaining and reinforcing the norms of artist-label dynamics, even though they are completely unsuited to the modern industry.

My second tanget is a point on the cost that _does_ scale linearly: customer acquisition costs. This generally means FB & Google. They started as free _discovery_ (customer acquisition from the customers' perspective) and became paid customer acquisition tools.

Today, they are mostly paid customer acquisition tools. This means (a) that these guys charge a toll on certain sectors and (b) that ability to pay this toll is a major factor of success.

It sucks to be in a market with head-t-head competition. These markets are efficient (especially on adwords) and the price of acuiring a customer tends to stabilze near marginal revenue per customer. IE, whatever your margin is on customer, it goes mostly to google.

If you earn less per customer (per impression, more accurately) than the competition, these channels are closed to you. This results in a uniformity of business models. Examples are many, but think of all the subscription food delivery, maid services, laundry, etc.

If you are offering one-off housecleaning and your competition is selling subscriptions, they will probably outbid you on adwords. You will need to change to a subscription model to stay on adwords.

Free discovery channels (eg, HN) have (had?) a totally different dynamic then the paid ones. I think this is an important thing to realize, if you're starting a something these days.

<comment><USER24> > Ebooks gave us digital versions of paper books. The impact has been minimal.

Eh maybe. These days I read a fair number of what I assume are self-published- on-amazon ebooks, as recommended to me by amazon's system. I assume the publisher has been completely cut out, and the length expectations have certainly changed (serials of more shorter books). Maybe people are still figuring out the medium. If you look at the early days of television you'll see "television plays" which at first were literally theatrical actors performing a play to the camera, and these plays were limited to a maximum of one rebroadcast and destroyed after by agreement with the actors' union. Television only became its own distinct medium (with the corresponding economic changes) over time.

<comment><USER23> I was generalizing, of course. Your experience may be the exception or (hopefully) the vanguard.

Self-published books with non-traditional page counts, at wildly different price points, discovered via recomendation engines is exactly the kind of thing I was hoping to see.

From what I can tell though, this is still a marginal phenomynon, less impactful to the median author than twitter or blogging or somesuch. I don't think this is a coincidence. Amazon has allowed for it, but not really pushed on it, or gambled on it.

When kindles came out, I read a Seth Godin (blogger/writer) comment that eachone should have shipped with 1,000 books, including his. He'd have agreed, in order to get to readers (with his back-catalogue).

Maybe (hopefully) you're right on the timing. Maybe we're just discovering the medium. But, (a) I think things move faster these days, and 10 years should have been sufficient. (b) amazon controls most of the levers, and I think it won't happen unless they decide that it happens.

</comment></comment></comment><comment><USER25> Is there anyone similar to Thompson who has such an interesting take on business topics? I have been looking for a while but this is really hard to find!

<comment><USER4> More finance than business, but I really enjoy Matt Levine (he writes for Bloomberg). Even though his articles are technically finance there's enough tech and business analysis in there that you don't have to be a finance nerd to find good content. And he publishes Money Stuff most weekdays!

[https://www.bloomberg.com/view/topics/money- stuff](https://www.bloomberg.com/view/topics/money-stuff)

<comment><USER26> Matt Levine is also funny as hell, his columns are worth it for that alone.

</comment></comment></comment><comment><USER27> For another (less business, more aesthetic) perspective on Spotify's impact on how we listen to and make music, check out: [https://thebaffler.com/salvos/the-problem-with-muzak- pelly](https://thebaffler.com/salvos/the-problem-with-muzak-pelly)

</comment><comment><USER28> Ben Thompson is an original thinker, usually worth reading</comment>


Water and other liquid damage to iPhone or iPod isn't covered by warranty - <AUTHOR> https://support.apple.com/en-us/HT204104 <comment><USER2> Duh? How is this HN-worthy?

<comment><USER3> My thoughts exactly

<comment><AUTHOR> I thought it was useful and interesting. To me at least</comment></comment></comment>


Rust/WinRT Public Preview - <AUTHOR> https://blogs.windows.com/windowsdeveloper/2020/04/30/rust-winrt-public-preview/ <comment><USER3> [https://github.com/robmikh/minesweeper- rs](https://github.com/robmikh/minesweeper-rs) \- I just love how they brilliantly avoided mixing up C++/COM things into this. Tough one to pull when you're dealing with bindings for a foreign language. The code looks fairly standard Rust (except maybe for the winrt::import that looks like Go?).

> If you are familiar with Rust, you will notice this looks far more like Rust > than it looks like C++ or C#. Notice the snake_case on module and method > names and the ? operator for error propagation.

Developing on and now for Windows just keeps getting better.

<comment><USER4> It seems like they're doing all they can to get developers on their platform. Not to establish Windows developers like they have in the past, but to have others see Windows as just another platform.

We're reaching a revolution from moving from x86 to ARM and I think the more Microsoft positions themselves like this, the less likely they are to be left in some weird compatibility limbo.

As weird as this sounds, I feel more confident with Microsoft being able to do a successful transition to ARM than Apple at this point.

<comment><USER5> In fact, the _have_ transitioned to ARM, way back around the time of the first Surface tablet. Windows and Office have been running on ARM since at least, what, 2012?

<comment><USER6> Windows NT in 2000? I guess ARM was not a going concern at the time, but Windows was remarkably portable in 2000 before the dark decade of more or less exclusively Wintel.

<comment><USER7> [https://archive.org/details/Microsoft_Windows_NT_Server_Vers...](https://archive.org/details/Microsoft_Windows_NT_Server_Version_4.0_94373_Microsoft_1996)

"Disc contains code to run on Windows NT-compatible x86, Pentium, MIPS, R4x00, Alpha, PowerPC and Pentium Pro systems"

</comment></comment></comment></comment></comment><comment><USER8> I start to understand the Windows team desire for this WinRT. You can flow through time with these language bindings without being locked into a programming language. .NET, JS, C++ and now Rust. That is seriously cool.

<comment><USER9> It's been a reality on Windows for over 20 years, though. COM has made it possible to write applications on Windows and integrate with pretty much anything in it in any language with COM bindings.

Glad to see Rust is now one more such language.

<comment><USER10> Yeah though... pretty much any natively compiled language and many interpreted/VM-based languages can use the C ABI in any modern plaform anyway, so what COM provides isn't so much the ability to use the same API from many languages but a _dynamic_ object oriented approach for doing so.

After all it isn't like you can't use the Win32 API directly from Rust - <USER2> any other language, e.g. Python.

<comment><USER11> The type libraries are a big part of why it's so successful - you can take a typelib and auto-generate bindings, or manually generate your own bindings based on what you see. If you look at the typelibs for a given GUID, you are almost guaranteed that the API will match once you get a pointer back from a QueryInterface call (sometimes people are naughty). This is nice because you can compile all that in so the QueryInterface call is the only dynamic part of it - everything else at runtime is just regular calls through a vtable. The rigid nature of it means you can also reverse-engineer compiled code to figure out the shape of a given interface's vtable even without a typelib (I've done that a couple times).

This is why you were able to manipulate COM objects from VBScript and JScript even though they were dynamic languages, and in fact VBScript could _define new COM objects on the fly_ and then expose new methods and properties through a COM interface called IDispatch. It's all just vtables once you do your initial setup.

IIRC there was a Windows version of Python for a while that had built-in support for COM interop in both directions - you could define IDispatch-based COM objects in Python and implement interfaces while consuming COM libraries using their typelibs.

<comment><USER10> I wouldn't call it successful, COM is mainly used by Microsoft and pretty much nobody else uses it unless they want to interface with Microsoft's products (Office, etc).

In any case, yes, this is what i meant with the dynamic part. But the comment i replied to wrote that it made "possible to write applications on Windows and integrate with pretty much anything in it in any language with COM bindings", which - as i wrote - doesn't need COM.

</comment></comment></comment></comment></comment><comment> m-hilgendorf While we've been hacking on the vst3-sys crate [0], we wound up forking the mentioned com-rs crate to support COM APIs on non-win32 targets (notably, there's some stuff with endianness of the IIDs, the calling convention of the generated vtables) as well as usability (the com-rs crate only supports up to 5 interfaces implemented at once). We're still chasing down some issues with order mattering when implementing the interfaces. Even without those small changes, it's an impressive piece of macro programming that is very close to being usable for general purpose, ABI-stable rust crates.

As a little dose of irony, clippy doesn't like the com-rs crate too much.

[0] [https://github.com/RustAudio/vst3-sys.git](https://github.com/RustAudio/vst3-sys.git)

</comment><comment><USER12> Now I'd like some native Rust bindings for Cocoa/UIKit, perhaps as an "official"/higher-level alternative to [https://crates.io/crates/objc](https://crates.io/crates/objc). There are some crates already attempting to replicate all of Apple frameworks, but they are community-supported/require a bit of `unsafe`.

<comment><USER13> You won't get around the unsafe.

I've been hacking away at these for a few months now: [https://github.com/ryanmcgrath/cacao](https://github.com/ryanmcgrath/cacao)

Goal is to get a good-enough version to build apps with. I'm dogfooding it for my next product so there's some incentive to keep pushing.

</comment></comment><comment><USER14> Never really understood whether WinRT binds me to store apps, sandboxes, appx and so on.

Can I develop a single windows app with this that runs on Windows 10 desktop as a win32 app does (such as a plugin to another application where I can't can't decide the deployment model)?

<comment><USER15> WinRT, as in the API/ABI shape, at this point really isn't tied to any aspect of the UWP app model (other than that existing UWP-related APIs tend to be newer and more likely to use it). Third-party WinRT component activation used to depend on app packaging but that dependency was removed last year: [https://blogs.windows.com/windowsdeveloper/2019/04/30/enhanc...](https://blogs.windows.com/windowsdeveloper/2019/04/30/enhancing- non-packaged-desktop-apps-using-windows-runtime-components/)

In general what used to be various facets of the "monolithic" Win32 vs. UWP divide have been refactored to allow a la carte usage, so not only can you activate your WinRT components without a packaged app, but you can also register your app as "packaged" for runtime purposes without having to install in that format ( [https://blogs.windows.com/windowsdeveloper/2019/10/29/identi...](https://blogs.windows.com/windowsdeveloper/2019/10/29/identity- registration-and-activation-of-non-packaged-win32-apps/) ), can install in the packaged format without having to use the sandbox features ( [https://docs.microsoft.com/en- us/windows/msix/overview](https://docs.microsoft.com/en- us/windows/msix/overview) ) can distribute sandboxed apps outside the store ( [https://docs.microsoft.com/en-us/windows/msix/app- installer/...](https://docs.microsoft.com/en-us/windows/msix/app- installer/app-installer-root) ), etc.

The only remaining aspect I'm aware of where there's still a binary decision and coupling is in the windowing model and shell integration; a Win32 process's top-level windows can only be HWNDs and a UWP process's top-level windows can only be CoreWindows. Win32 HWNDs can host both Win32 and UWP UI, but UWP CoreWindows can only host UWP UI; on the other hand, only UWP CoreWindows can make use of UWP shell integration features like fullscreen and picture-in-picture. It would make sense to somehow decouple this facet as well but I'm not aware of any plans to do so.

<comment><USER14> Thanks this is informative. I think my confusion comes from that many things are introduced as walled-off vertical concepts but later backported at least partially. Also there is no lack of terminology confusion when things can be an API, an app-model or both.

I'm a full time windows desktop dev since 15 years now. And I still find these UI and app model frameworks extremely confusing (which is why I haven't gone near one after WPF).

<comment><USER15> Yeah, it's definitely confusing for anyone who hasn't been following all the twists and turns (i.e., the vast majority of developers)

</comment></comment></comment></comment><comment><USER16> I want to reply to many other comments but I want to make this more visible: Microsoft does not do Embrace-Extend-Extinguish anymore today (or at least, it does a lot lot less).

You know who does Embrace-Extend-Extinguish? Google.

</comment><comment><USER17> Well this really confused me as I thought Microsoft had discontinued the Windows RT operating system. It turns out that they also have a platform- agnostic application architecture, ingeniously named WinRT.

</comment><comment><USER18> Looks like async/await support isn't ready yet. I wonder how challenging it will be to integrate WinRT's async model with Rust's futures and tasks.

<comment><USER19> IAsyncOperation is pretty flexible. I don't think it will be technically hard, though perhaps picking the best fit model will be a time consuming process.

</comment></comment><comment><USER20> Coding in C++/WinRT (similaly, C++/CX) is in my experience a major mistake when targeting WinRT/UWP using C++. The primary use case for WinRT/UWP is making apps for the Microsoft Store, where most of the time you're going to be sharing code also targeting Google Play and the Apple Store given those markets are vastly larger (and have viable ad-platforms; Microsoft is shutting theirs down on June 1st).

The C++/WinRT and C++/CX language projections are incompatible with compilers that target Android and IOS due to WinRT reference specific syntax and keywords such as the '^' reference indicator.

As an alternative, it is possible to access all of the same WinRT/UWP platform functionality in pure C++ without the C++/WinRT syntactic sugar extensions, allowing you to cleanly abstract the WinRT/UWP platform APIs relative to Android and IOS. This is not well documented but by far a superior option for folks familiar with COM and Windows internals.

Furthermore, avoiding things like '^' reference operator syntax gives you tighter control over object lifetime as C++/WinRT and C++/CX hide to some degree the mechanics of COM object lifetime and gives a pseudo-environment much more like C# on .Net.

Microsoft does provide the WRL pure C++ template library, which is in many ways a spiritual successor to the ATL COM template library. WRL is in my experience the best way to interact with COM objects surrounding WinRT and UWP.

(Source: developer of several top 10 apps (at times) on Microsoft Store).

Glossary of Microsoft terms:

WinRT/UWP (WinRT (Windows Runtime) the old name used in Windows 8/8.1 for what later was renamed to UWP (Universal Windows Platform) in Windows 10). WinRT/UWP was originally intended to be an object-oriented replacement API for Win32 but hasn't lived up to its charter due to only being useful for Microsoft Store apps and being significantly less capable than Win32.

COM - Component Object Model; an object-oriented API style used by some Win32 APIs, this style was used near-exclusively as the basis for the WinRT APIs. COM can be unweildy to deal with so there are several C++ template libraries like WRL and ATL to make it easier.

C++/WinRT (and C++/CX) are Microsoft specific C++ extensions that require MSVC and hide the complexity of dealing with COM relative to WinRT/UWP APIs.

<comment><USER21> C++/WinRT and C++/CX are not the same; they are different enough that Microsoft Docs has a whole page explaining how to move from C++/CX to C++/WinRT: [https://docs.microsoft.com/en-us/windows/uwp/cpp-and- winrt-a...](https://docs.microsoft.com/en-us/windows/uwp/cpp-and-winrt- apis/move-to-winrt-from-cx)

In particular only the older C++/CX has ^ pointers or other Microsoft-specific C++ language extensions. C++/WinRT is standard C++.

Writing your code using WRL (Windows Runtime C++ template Library) is good if you want to learn enough about how the Windows Runtime extensions to COM work in order to debug effectively. However, its close relationship to the underlying COM and Windows Runtime APIs also makes it far too verbose to quickly write good API-consuming and -producing code, in my opinion.

<comment><USER20> Updated my post - I had forgotten C++/WinRT discarded the ^ syntax as we skipped C++/WinRT for our development as it suffers from many of the same problems of C++/CX.

<comment><USER22> > it suffers from many of the same problems of C++/CX

The whole point of C++/WinRT is to be 100% standards-compliant C++. The guy who created it didn't even work at Microsoft at the time.

<comment><USER23> And now he created the Rust bindings.

</comment></comment></comment></comment></comment><comment><USER24> I'm super excited for this! I do wish that they'd ressurect their JavaScript projection for the runtime though. Especially with their focus on React Native, it'd be awesome not to need a "native" module to call Windows APIs. That being said, I also hope Rust/WinRT becomes a valid native module format for React Native (though I suspect it won't since that would likely require React Native developers to have the Rust toolchain setup to compile the module).

<comment><USER25> Something like this already exists: [https://github.com/NodeRT/NodeRT](https://github.com/NodeRT/NodeRT)

<comment><USER24> This is neither an official language projection nor for React Native.

<comment><USER25> It's not official, but it was endorsed by MSFT on stage at last build. You're right about RN, I did not realize that.

</comment></comment></comment></comment><comment><USER26> You have to hand it to Microsoft: It may be the only large software company that doesn't seem susceptible to not-invented-here syndrome.

It's true that Microsoft historically has been an intensely competitive company, often trying to undermine competing technologies, e.g., with "embrace and extend" strategies.

But whenever a competing technology -- whether a language, or a framework, or an application -- _gains adoption_ with developers or users, Microsoft to its credit will follow along, sooner or later, and do the work necessary for making it a first-class citizen on Windows.

(For those who don't know, Rust is originally a Mozilla project.)

<comment><USER27> It's always easy to be an open source proponent when you are the underdog.

And Microsoft, as crazy as it sounds to me, kinda is when it comes to cool dev stuff.

We'll have to see if they have really changed or just waiting to regain ground and going back to the extinguish part.

But what I can confidently say is that, of all the BigCorps, Microsoft is the only one actively trying to make developer's life easier.

Apple is consumer first, so MacOS is getting harder and harder to hack on, for better and worse.

Chromebook was never a serious competitor. And Linux is Linux, hackable to a fault.

But Windows… which I have always despised, is, for the first time in my life, tantalizing… to some extent.

<comment><USER28> The Microsoft you remember is at a time when dev tools were "the future". They are now the past. Microsoft's ruthlessness is no doubt focused elsewhere now. For example, do they go out of their way to make your code portable b/w Azure and Google? Probably not.

<comment><USER29> Off the top of my head here are three different offerings from Microsoft that enable cross cloud applications: \- [https://azure.microsoft.com/en- us/services/azure-arc/](https://azure.microsoft.com/en-us/services/azure-arc/) \- [https://dapr.io/](https://dapr.io/) \- [https://keda.sh/](https://keda.sh/)

<comment><USER25> The runtime for their serverless functions is also open source and (I guess) fairly portable: [https://github.com/Azure/azure-functions- host](https://github.com/Azure/azure-functions-host)

</comment></comment></comment></comment></comment><comment><USER30> Would this be possible for Go too?

<comment><USER22> It is possible for any language, really. They already have 3 language projections for C++ (C++/WinRT being the newest, by the same person running this Rust projection), C#, VB, and JavaScript.

Under the hood they call out to (and potentially expose) COM interfaces which are C. So if your language has C interop, or if it could be added, something like this could be built.

<comment><USER31> C interop is slow in golang so I don't think it would be the best language for it. People do it with SDL though

</comment></comment></comment><comment><USER32> Sorry for the naive question, but how does this fit into WinUI 3.0?

<comment><USER31> Yes

</comment></comment><comment><USER33> How does this projection work with the borrow checker? UI frameworks typically allow you to have multiple mutable reference to the same element.

<comment><USER34> It works fine- Rust only forbids multiple `&mut T`s to the same object, but `&mut T` doesn't exist outside of Rust, so code in other languages doesn't have to care about that rule at all.

These bindings can just expose non-Rust pointers as (wrapped) raw pointers, leaving all the actual dereferencing and mutation to the other language. WinRT objects don't expose anything but virtual methods on opaque objects anyway, so this isn't even Rust-specific.

Outside of WinRT this sort of thing requires a bit more thought, but you can still use the usual tools- `Rc` and `Cell` or their variants, or raw pointers and `unsafe`.

You can think of `&T` and `&mut T`, and their associated "no shared mutability" rule, as a compiler-checked version of C's `restrict`. Stop using `restrict` and the rules go away.

<comment><USER33> Is the projection literally "wrapped raw pointers?" How are the raw pointers wrapped - for example is there interop between COM reference counting and Rust Arc? Or something else?

Here's a classic trap: you get a reference to something interior, and then the parent is deallocated. My event handler gets a ref to this button's label and then replaces the button. Is this possible with Rust/WinRT? (No judgement either way!)

<comment><USER35> Rust's borrow checker solves the problem of "get a reference to something interior, and the parent is deallocated". It knows (by static analysis) when an inner reference may be in use, and won't let the program compile if the parent could deallocate during that time.

This works well even with externally refcounted objects. You can give reference to an inner object without increasing its refcount, and rely on the borrow checker not to allow the parent to decrease the refcount. Or you bump the refcount of the inner object and give it out as an independently owned object.

<comment><USER33> WinRT is lousy with functions like Window.Current which provide global access to the current window. Any function may get access to any control at any time.

</comment></comment></comment></comment></comment><comment><USER23> As a former MFC/Winforms/WPF/Qt now turned Angular developer, this is really sparking my interest. I would love to back to writing great desktop applications. Problem is, most of my projects nowadays require a multiplatform GUI. Desktop is not enough, we also need web and mobile.

</comment><comment><USER36> This is so cool. I should brush up on my rust maybe I should make a python extension or something...

</comment><comment><USER37> With Windows 7 on its way out slowly, WinRT is becoming more palatable.

<comment><USER6> Slowly?! Hasn't Win7 been dead for years?

> Latest release Service Pack 1 (6.1.7601) / February 22, 2011; 9 years ago

> Mainstream support for Windows 7 ended on January 13, 2015.

There is:

> Extended support for Windows 7 ended on January 14, 2020.

But that is referring to very specific business contracts, not casual users pretending EOL never happened.

<comment><USER10> > Slowly?! Hasn't Win7 been dead for years?

No. Microsoft wants to kill it, but... even just checking Steam's hardware survey (users of which are more likely to upgrade so chances are overall PC usage of Win7 is higher) there is a combined ~7% of users on Win7.

With ~25M concurrent users the last 48 hours, that means there were more than 1.7M users running on Win7 just within the last two days.

FWIW these numbers are a bit lower than 10 times the Linux numbers of all distros combined.

</comment></comment></comment><comment><USER38> [https://github.com/retep998/winapi-rs](https://github.com/retep998/winapi-rs) they should work with this

<comment><AUTHOR> These are two different APIs, so it's not clear to me how they would.

<comment><USER38> I thought there was much overlap

<comment><AUTHOR> My understanding is that there's a lot of overlap but also stuff that only one or the other can do.

<comment><USER38> Would `#[cfg(..)]` be the right way to do this then?

</comment></comment></comment></comment></comment><comment><USER39> I stopped reading at "The Windows Runtime is based on Component Object Model (COM) APIs..."

Is that a bad choice on my part?

I see COM and think of OLE, CORBA and I remember that I'm old and going to die pretty soon (within the next 40-50 years almost assuredly).

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

<comment><USER40> Yes it is.

After the whole political disaster that was Longhorn, the Windows team decided to rebuilt Longhorn ideas, originally based on .NET, and redo them with COM.

So while many outside Windows have considered COM dead, actually since Vista all major Windows APIs have been provided as COM interfaces, the large majority of Win32 surface has been frozen since Windows XP.

With WinRT/UA/UAP/UWP they have gone back to the roots, while pursuing this idea one level up.

Basically they replaced COM type libraries with .NET Metadata, added support for generics, structured data types and implementation inheritance, bringing it to what .NET would have been like if they did not decided to copy Java.

So while the implementation of this reboot has been somewhat clusmy, COM is not going anywhere on Windows.

Also, this isn't a Windows only thing, Linux has gathered around DCOP, Android has AIDL, Fuchsia FIDL, macOS/iOS has XPC, then there is gRPC and plenty of other variants.

<comment><USER41> I think the most similar thing to WinRT on Linux would be GObject Introspection since the main point appears to be a way to somewhat automatically surface the platform API in multiple languages using language- specific idioms. D-Bus is instead for RPC and events, which I guess COM also gets used for?

<comment><USER40> I guess you are kind of right, then it would be a mix of GObject, KParts and D-BUS then.

As for COM, yes there are multiple models, in-process, external process and across the network (with DCOM).

GObject and KParts would be the in-process variant, with D-BUS for the other execution models.

</comment></comment></comment></comment><comment><USER42> Wish they'd open the source and let the Rust community do this kind of stuff instead. No need to waste Windows development time on niche stuff.

<comment><USER43> Open what source? Everyone has access to the winmd files necessary, the COM ABI is documented - there's been nothing stopping anyone from doing this.

All of the work MS has done on these bindings is MIT licensed as well.

<comment><USER15> In fact there were third-party bindings already which I worked on: [https://github.com/contextfree/winrt- rust](https://github.com/contextfree/winrt-rust)

the new first-party ones look to be more complete and polished but this is mainly due to time and skill limitations on my part. :)</comment></comment></comment>


HiQ Labs vs. LinkedIn – antitrust claims dismissed, interference claims allowed [pdf] - <AUTHOR> https://www.courtlistener.com/recap/gov.uscourts.cand.312704/gov.uscourts.cand.312704.158.0.pdf <comment><USER2> I have little-to-no understanding of law, so why is LinkedIn not considered anticompetitive when part of its product is people analytics?

Following are some references for my question

From page 15:

> Moreover, even if there were a voluntary course of dealing between LinkedIn > and hiQ, hiQ still must show that LinkedIn sacrificed a profitable course of > dealing in the short term in order to benefit long term from the exclusion > of competition

...and passing over Aspen references...:

> ....Thus, hiQ implies that LinkedIn lost business as a result of hiQ's being > excluded from access to information publicly available on LinkedIn's > website. But hiQ has not specifically alleged that, e.g., employers stopped > using LinkedIn's services (or discouraged employees from using LinkedIn's > services) after LinkedIn blocked hiQ from accessing its website. Its theory > of short-term sacrifice is far from obvious or even intuitive. Absent > specific factual allegations, it is speculative to assume that LinkedIn gave > up any short-term benefit by refusing to deal with hiQ

From page 17:

> In the instant case, hiQ has not explained how LinkedIn has exploited its > locked-in customers (i.e., users). Indeed, hiQ does not appear to claim any > exploitation of locked-in customers; instead, it suggests that LinkedIn has > used the lock-in to harm people analytics providers.

<comment><AUTHOR> Re page 15: refusal to deal is a very narrow doctrine. Usually companies are free to deal with whoever they want to.

Re the market analysis, HiQ didn't adequately allege the relevant product market. Even if LinkedIn participates in the market, it might be broader and include other analytic companies and that might mean antitrust would fail.</comment></comment>


Decentralized platform for photo sales and photo sharing, built on Ethereum - <AUTHOR> https://hack.ether.camp/idea/photobook-decentralized-getty-image--instagram--flickr <comment><USER2> What's your "lets not turn this into decentralized eBay for child porn" story?

<comment><USER3> That is a very big problem!! but [https://ipfs.pics/](https://ipfs.pics/) to some solves this by using "Votes"

<comment><USER2> The trouble is, this assumes people will vote CP down.

I do not feel that confident in mass moral behaviour. Observe Reddit.

</comment></comment></comment><comment><USER4> > Photos for sale are identified as rightfully owned by having RAW file > details published to the blockchain (actual High Res image is not stored on > chain)

Does anyone have a clue, how this should work? Eg, if I just 'steal' a pic and change slightly its brightness, color curve, crop, blurriness, etc. will the system still be able to identify the original?

Otherwise great idea.

<comment><USER5> I would imagine you're buying a copy of the photo in non-raw format, whether it be jpeg/png/whatever. If you don't have a RAW copy to post to the blockchain, it's impossible to steal it.

<comment><USER6> are you sure .PNG doesn't contain enough data to reconstruct a RAW file? I'm not...

<comment><USER7> Given that RAW can have 32 bits per channel and PNG only 16 bits per channel, it must be possible* to construct two different RAW files which render to the same PNG.

*Possible in the mathematical sense, it may not be practical.

</comment></comment></comment></comment><comment><USER8> While this is a great idea, I'm still not sure how we can find out (digitally) that a pixel was changed and a new copyright can be awarded.

<comment><USER9> I thinks it is pointed in:

-Photos for sale are identified as rightfully owned by having RAW file details published to the blockchain (actual High Res image is not stored on chain)

<comment><USER8> Call me a cynic, but can't I change a pixel and use the photo w/o the copyright?

<comment><USER10> Next feature to add, or deriving business to create: add an indexer/comparison service that checks the JPEGs and to see how similar any two given pictures are, and if one derived copy sells anything, the creator of the original picture gets notified.

<comment><USER11> This could work from buyer/client side. If I want to buy image, I will check it with some service to be sure that I don't pay to pirate(newer&lightly changed image). But what If buyer doesn't use it?

I don't see the way how this could be implemented to blockchain. If every blockchain node downloaded and compared all images It would create massive bandwith and need for cpu/gpu power. Or am I missing something?

<comment><USER10> You are right, I don't see this going to the blockchain as well. But I am thinking of a service that runs outside of it, whose main purpose would be to provide (1) some legal support in case you want to file a copyright violation claim and (2) the basis for a reputation system.

</comment></comment></comment></comment></comment></comment><comment><USER12> Why should people trust that the images are 'identified as rightfully owned by having RAW file details published to the blockchain' ? Who says that the data on the blockchain is correct, and what stops someone from registering other people's photos under their own name?

</comment><comment><USER13> One problem would be people _stealing_ others images for profit.

<comment><USER14> It is good to design systems with the assumption that most users will use them as intended. There will always be misuse, but that can be adressed later if the system is successful. Compare airbnb, uber, dropbox. They all have very bad use cases. The systems were designed for the vast majority of users being lawful and for the most part it works.

<comment><USER6> uber was never designed to be lawful, its the entire issue i have with it, it was designed with ignorance of the law and has gotten away with it through utility and popularity...

<comment><USER15> not universal and needs nuance for sure, but...if it's giving a lot of utility to a lot of people, then maybe there's something probably a bit wrong with the law in the first place. So there needs to be some give.

</comment></comment></comment></comment><comment><USER16> > Photos for sale are identified as rightfully owned by having RAW file > details published to the blockchain (actual High Res image is not stored on > chain)

If it's on the block chain and everyone has a copy can't I just copy it directly from the blockchain?

<comment><USER17> Hi sharemywin, no the photo itself is not on the blockchain, only the details about the photo & timestamp. the photo served on the website is not the full high res image. That is stored off chain

<comment><USER16> sorry about that. apparently I can't read things in parentheses even when I copy them.

</comment></comment></comment><comment><USER18> check out haystack.im we build exactly that, only no Flickr or instagram on it yet

</comment><comment><USER17> Thanks for the love guys! still looking for rockstar devs to join the hackathon team. front/back end + ethereum solidity. ping us on mark at stratagility dot com. Funding is incoming.

<comment><USER19> > looking for rockstar

For those who aren't into music that much, how about ninjas? :)

<comment><USER17> ninjas rock to ;-)

</comment></comment></comment><comment><USER20> Naive and doesn't actually solve any problems, but hey good luck, have fun.</comment>


Show HN: Zestoy – "YouTube" for Canvas - <AUTHOR> https://www.zestoy.com/upstella <comment><AUTHOR> Hi everyone, here's Zestoy - a place for animations, puzzles, games, live backgrounds, toys based on Canvas/WebGL, which you can embed, fork and customize.

You may play each game, embed them on your website by clicking the 6 small images under each game and getting the embed code. To customize and fork: Click the + sign at the bottom right of each game to fork and create your own version by customizing the fields in Settings and Advanced tabs.

We know we still have a lot to build and fix and currently have around two dozen game types but anyway we appreciate your feedback.</comment>


My summer project (AspireOS) - <AUTHOR> http://www.conceitedcode.com/2011/05/my-summer-project/

<comment><AUTHOR> I already have some more questions.

Would it be easier to make it 32bit or 64bit? I'd imagine 32bit, but if it isn't much harder than I would like to make it 64bit.

I plan on building AspireOS on my MacBook. I started to follow a bare bones tutorial, but I was running into issues with the assembly. Any advice or any articles explaining building assembly on a Mac?

How do I emulate Aspire?</comment>


Large-Scale Static Analysis at Mozilla - Galois Tech Talk: Video - <AUTHOR> http://www.galois.com/blog/2010/07/09/galois-tech-talk-video-large-scale-static-analysis-at-mozilla/?ftw

<comment><USER2> I submitted this yesterday, no discussion.

<http://news.ycombinator.com/item?id=1501842>

dons: Do you folks plan to post videos of all the future tech talks?

<comment><AUTHOR> Yes, indeed we do. At least the ones where we get approval from the speaker.

<comment><USER3> Excellent!

One thing I'd like to see is a website where tech talks are collected, with viewer ratings and tags. I've seen lots of good talks and a good number that weren't really worth my time, and it's hard to decide when they show up one at a time. (I like to watch things with mplayer, so easy access to the video URL would be a plus ... but that's putting the cart before the horse.)

</comment></comment></comment><comment><USER4> This is a decent summary of some of the high points of the talk.

<http://blog.ezyang.com/2010/06/static-analysis-mozilla/></comment>


Why we should give free money to everyone - <AUTHOR> https://decorrespondent.nl/541/Why-we-should-give-free-money-to-everyone/20798745-cb9fbb39

<comment><USER2> Worst idea ever.

<comment><USER3> Worst comment ever.

Why is it so hard to grasp that most people don't want to be homeless or out of s work and hang around all day? Why do we bail out banks and governments in order to bootstrap them but not people!?

<comment><USER2> Have you heard of the Weimar Republic? A little reading into history and economics would do you a lot of good. Giving people free stuff has never worked in the history of the world. It would be much better if the government stopped regulating wages so homeless people with low skills could actually get a job and develop skills that are employable.

After all, for the gov to give money to homeless people they have to forcibly take it from someone else. If they simply print the money then you're just indirectly stealing from everyone else through inflation. Not to mention, once people catch on that you don't have to work then no one will.

Actually, this is kind of what is happening today with social welfare programs all around the world. Things are progressively going to shit (pun intended) instead of continuing the growth the western world (especially the USA) experienced through the 18th and early 19th century.

Anyways, no matter what you say, there is simply no logical or historical case for what you propose.

Also, F __* the banks. They should not have been bailed out. That 's simply politicians doing favors and stuffing their own pockets.</comment></comment></comment>


Hey Geithner, Get Your Grubby Hands Off The Venture Capital Industry - <AUTHOR> http://www.techcrunch.com/2009/04/09/hey-geithner-get-your-grubby-hands-off-the-venture-capital-industry/ <comment><USER2> OK, I'll bite.

I should preface this by saying that I am looking for more information on why watching the sources of VC money is bad. So if there is a finance guy out here please let me know where my thinking is flawed.

Now treasury wants to watch the sources of certain asset classes so that, say, asset class A can't be a proxy for high risk asset class B. Now I assume, (and we all know what assuming does), this is to prevent the finance by proxy of high risk asset class B through low risk leverage via asset class A.

That seems, to me, to be imminently sensible given the education we've all received through the present crisis. Perhaps I have missed something. Any help from finance guys would be greatly appreciated.

<comment><USER3> The nature of VC is quite different from the nature of the forms of investing that caused the crisis. One of the culprits behind getting the crisis to such a massive scale is leverage. VC firms rarely leverage their funds due to the highly risky nature. Perhaps PG or someone else could elaborate on the behavior of VC or Angel investors because it's crucial to understanding this distinction.

Now contrast the nature of VC vs. what people are thinking about when they put money away for retirement. They're not trying to help get a company off the ground. They're usually just trying to beat inflation and, if possible, get a little more. These people lost money in a huge way. The people responsible lost money in such a huge way that the world is now struggling. The whole world. It is highly unlikely a VC could pull something like this off via their investments. Even the dotcom boom demonstrated how investing ones own money and taking on the risks involved will keep a crisis contained primarily (not exclusively) to those involved.

Let's also not forget the SEC has not proven it's abilities to catch bad behavior...

 _Edit: And, simply on principle, I back the notion that the Gov should generally stay out of my business._

<comment><USER4> >Let's also not forget the SEC has not proven it's abilities to catch bad behavior...

Given that it was warned about the Madoff fraud for 9 years and did nothing, I would say it proved the opposite. It's interesting to see Gheitner use the Madoff case as justification to expand the SEC's authority.

[http://www.usatoday.com/money/markets/2009-02-12-markopolos-...](http://www.usatoday.com/money/markets/2009-02-12-markopolos- madoff-ponzi_N.htm)

</comment></comment></comment><comment><USER5> If I had to guess I'd say vc oversight is part of a larger 'lets watch all the money in the system' initiative. Seeing as how the govt has pledged upwards of $12 trillion to bridge parts of the us financial system, I can understand why the government would want to keep an eye on everything to limit the chances of something in the shadows blowing up and requiring further govt bridging. Will it work, who knows ... personally, I don't agree with it, nor do I agree with any of the bailouts: banking, auto otherwise.

</comment><comment><USER6> It seems that VC doesn't really object to the actual regulation as much as the implication that VC is at all like hedge funds, private equity, or investment banking.</comment>


Full Shutdown of L Train to Be Halted by Cuomo - <AUTHOR> https://www.nytimes.com/2019/01/03/nyregion/l-train-shutdown.html <comment><USER2> The press conference had lots of details. Last I checked no recording has been posted.

The old plan called for replacing all of the bench walls along the length of both tunnels. Bench walls are the short concrete casements which house the cables needed to power the train and provide communications. Replacing them was necessary because of leakage to the cables which corrodes them. It would have been a total gut removal.

The new plan is to 'rack' the cables along the walls, which will improve access and be way cheaper. It's some kind of hanging cable system. Some of the bench walls are damaged, so they will be removed or patched on an as needed basis. Otherwise they are obsolete, so the important bit is that they don't fall onto the tracks. There will be sensors to monitor for problems with the remaining benchwall.

These techniques have been used in new tunnel construction outside the US, but never to rehabilitate an existing tunnel. It seems like a much needed improvement over the old plan which will have less costs and inconvenience.

<comment><USER3>
      It's some kind of hanging cable system.

Here's how cabling is done in some parts of the London Underground system: [https://www.alamy.com/stock-photo-cables-on-a-station- wall-o...](https://www.alamy.com/stock-photo-cables-on-a-station-wall-on-the- london-underground-136183537.html)

<comment><USER4> The Saint Petersburg metro does the same thing since they frequently deal with moist and wet conditions in the tunnels.

</comment></comment></comment><comment><USER5> this is classic example of how U. S. infrastructure projects are slower and more costly than other countries.

Other countries would shut this down and build then reopen, inconveniencing many. We will spend more and keep this going longer instead.

Another great example is on 101 freeway in california they just finished replacing a bridge in palo alto. They did not shut the freeway down while it was literally replaced from underneath the cars. It took 3 years and caused horrendous traffic daily. I wonder how fast it could have been done if they shut down 101 entirely on that stretch.

i know it's easy to complain about how long these things take, but what would you rather have?

<comment><USER6> If you're up for an additional dose of stupidity, consider the fact that London shuts down the Underground completely (with a few exceptions) _every single night_ for maintenance and repairs. Every inch is inspected each 48 hours.

Why the MTA can't do this kills me and partially explains why people screamed bloody murder about a complete shutdown. The signaling system alone is held together by the equivalent of tape and chewing gum.

[https://ny.curbed.com/2018/3/29/17176200/new-york-subway- sig...](https://ny.curbed.com/2018/3/29/17176200/new-york-subway-signal- repairs-timeline)

If I was in his shoes I would have just said, "Either deal with the loss of the L line, or agree to tolerate a less than 24/7/365 operating schedule." Alas, the L is the only line I know of which uses PTC, which is designed to alleviate some of these issues.

There is no third option.

<comment><USER7> MTA runs 24 hours. Lots of people take it at night. I do all the time. Shutting it down at night would be an incredible inconvenience.

<comment><USER8> You can avoid traffic at night so driving / busses are more viable replacements.

24/7 operation means higher costs and more random failures.

<comment><USER9> Driving is not a viable replacement in NYC. You would need a car. Most people don't have 'em, and even though traffic might be light there's still nowhere to park 'em.

<comment><USER8> I was more thinking Taxi / Lyft than just a personal car. That covers occasionally being out late, working the night shift means you can take the subway one way and just take a bus back.

<comment><USER9> Taxi/Lyft are _waaay_ more expensive than the subway. Unlimited subway/bus is $116.50 per month. Taxi/Lyft could easily be $50/day or more depending on how far out you live. This is not a viable alternative for most people.

<comment><USER10> Where can I get that rate? My 30-day pass is $121.

<comment><USER11> i think its because they are correcting for the commuter tax deduction. ask your HR folks about [https://www1.nyc.gov/site/dca/about/commuter-benefits- law.pa...](https://www1.nyc.gov/site/dca/about/commuter-benefits-law.page)

<comment><USER9> Nope, just out of date. $116.50 was the price prior to the increase to $121.

The commuter tax deduction lets you buy the cards with pre-tax money deducted from your paycheck, which is a substantial reduction up to 45% or so depending on your marginal tax rate. Of course, because it's using pre-tax money, it's giving a bigger discount to higher earners, which makes it the opposite of progressive, which seems opposite of what's intended.

Separately, seniors/disabled people pay half fare: [http://web.mta.info/nyct/fare/rfindex.htm](http://web.mta.info/nyct/fare/rfindex.htm)

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> It's crazy that the NYC transit system is controlled by the state government in Albany, a bunch of folks that pretty much don't use it at all.

<comment><USER13> You think that's crazy? Austin Texas has passed on, I think to date, since 2001-five transit improvement programs voted down by a majority of people who don't even use CapMetro to begin with ( _glares angrily at west Austin_ )-in addition to lots of other vitally needed city improvements like, new zoning ordinances-which the city punted on after five years of deliberation and planning, not to mention a good amount of money hiring 'consultants' to help City Council figure out how to write the plan they eventually abandoned (CodeNEXT)

 _Glares angrily again at West Austin_

But hey, we have "bendy"/rapid-transit-style buses as of a couple of years ago that don't even use protected lanes, so at least we can fit more people on a gridlocked Guadalupe St during rush hour than normal buses. OH! And a toll lane on Mopac now that charges you based on how congested the "loop" is and is guaranteed to be just as congested as the non-toll lanes.

Austin Texas: A cautionary tale in applying chaos engineering to city planning.

 _Grinds teeth into powder_

<comment><USER14> so are they voting it down because they are being taxed for something they cannot use or benefit from directly?

as for toll lanes, welcome to the the new means of permanent revenue extraction. Atlanta got them in spades including one near billion dollar installation that cannot be used if ice threatens because its nearly all bridges. people had to fight to remove tolls that were promised to be removed from GA400 years ago after it was paid off so now the state just switched to "express lanes" which is a PC way of saying toll lanes.

<comment><USER15> You say "revenue extraction" but why is it bad? Roads need to be paid for and having express lanes that convince some people to pay more voluntarily seems like a good thing.

Busses and trains aren't free (usually) so I don't see why highways should be free.

<comment><USER16> Nobody's saying highways should be free, but you're ignoring the fact that your federal tax dollars are supposed to be paying for the interstate highways, and the ad valorem tax, license plate fees, gas taxes and myriad of other vehicular fees you get hit with are supposed to pay for the local roads.

400 in particular was a dick move. They pitched a highway and said they'd fund it by making it a toll road, to be revoked once it paid for itself. It wasn't. Traffic backed up for miles so they could continue to collect a measly $.50 out of scope for years.

</comment></comment></comment></comment></comment><comment><USER17> I live in NYC but do not use the L, I assume this means the repairs are going to take 3 times as long as they are losing 5 days a week to work on them.

<comment><USER18> I use the L every day and I'm mixed about it. The L is already the fastest and most on time train in the city. It going down would be a massive inconvenience for me, but I want the city to take steps to improving the subway infrastructure. Backing down now just to get some votes is just kicking the can down the road to another generation to deal with

</comment></comment><comment><USER19> Who really knows what type of negotiations have been going on behind the scenes. I personally never fully believed a complete L train shutdown could ever possibly happen. You just can't re-route that many people without creating massive chaos. Brooklyn-Manhattan subway transit is already strained as is.

What we do know is that the MTA is controlled by the NYC construction mafia and is purposefully opaque. The MTA likes to give the appearance of losing lots of money so they can get federal aid. The money flows from residents and taxpayers into the pockets of union bosses and their construction company partners in the form of extremely lucrative construction contracts.

Bloomberg would probably have handled this crisis better. The proposed complete L train shutdown was unrealistic from the start.

<comment><USER20> >"What we do know is that the MTA is controlled by the NYC construction mafia and is purposefully opaque."

No the MTA is controlled by a political mafia in Albany - the MTA board appointees are made by the Governor and approved by the legislature.[1]

>"The MTA likes to give the appearance of losing lots of money so they can get federal aid."

No the MTA does actually lose lots of money though wastefulness, incompetence, corruption and bad decision making. This is distinct from the interference, underfunding and financial machinations of the MTA made by the state. See:

[https://www.empirecenter.org/publications/mta-overtime- jumpe...](https://www.empirecenter.org/publications/mta-overtime- jumped-84-million-in-2015/)

[https://www.politico.com/states/new-york/city- hall/story/201...](https://www.politico.com/states/new-york/city- hall/story/2015/03/where-the-transit-build-costs-are-unbelievable-000000)

[https://www.wsj.com/articles/mta-blames-uber-for-decline- in-...](https://www.wsj.com/articles/mta-blames-uber-for-decline-in-new-york- city-subway-bus-ridership-1532386865)

[1] [https://www.city-journal.org/html/who-runs- mta-15281.html](https://www.city-journal.org/html/who-runs-mta-15281.html)

</comment></comment><comment><USER21> How is it possible that a better and easier plan was never considered to rebuilding the tunnels? This had been in deliberation for years and they only just now decided they didn't have to? If anything this just highlights the incompetence of the city.

<comment><USER22> Because this isn't a real plan, it's Cuomo wanting to grandstand as a savior.

"Cuomo's tunnel experts spent just an hour evaluating damage" [https://nypost.com/2019/01/04/cuomos-tunnel-experts-have- spe...](https://nypost.com/2019/01/04/cuomos-tunnel-experts-have-spent-just- an-hour-evaluating-damage/)

</comment></comment><comment><USER22> This is a terrible idea, and Cuomo has been widely condemned by transit advocates in NYC. It's insane that a plan that has been in the works for years is changed at the last minute by fiat of the governor. Also that they did not coordinate with the president of the New York City Transit Authority, Andy Byford. [https://nypost.com/2019/01/04/cuomos-tunnel-experts-have- spe...](https://nypost.com/2019/01/04/cuomos-tunnel-experts-have-spent-just- an-hour-evaluating-damage/)

> The engineering team behind Gov. Cuomo's miracle L-train cure has little > experience working on transit projects — and spent a grand total of an hour > evaluating the damage firsthand in the subway line's tunnel

The new plan is to _patch_ the tunnel rather than rebuild, which will clearly be a shorter-term solution for infrastructure that the DOT claimed was severely degraded.

Cuomo has controlled the MTA for EIGHT YEARS and except for the 2nd Ave subway has been useless in addressing its issues. He seems to be more interested in photo opportunities than actually fixing the budget, labor, infrastructure, and service issues that plague the subway.

</comment><comment><USER20> I'm guessing the "experts" that floated this alternative plan weren't actually transit engineers but rather real-estate developers with very specific interests in Williamsburg.

In addition to securing financial commitments from these folks for his future Presidential run Cuomo relished the opportunity to portray himself as some kind of savior. Sadly for New Yorkers none of this is at all surprising.

</comment><comment><USER23> I wonder if this is what he got in exchange for signing the "lockbox" bill into law [0].

[0]: [https://www.masstransitmag.com/rail/news/21039311/transit- lo...](https://www.masstransitmag.com/rail/news/21039311/transit-lockbox-law- signed-by-cuomo-makes-raiding-subway-funding-more-difficult)

</comment><comment><USER24> So the plan is to leave the unused cabling in the tunnel and plaster some new stuff further up the wall?

I hope that there is a robust plan in place to deal with the old cabling which will continue to rot and at some point will detach leading to blocked tracks or possible train damage.

<comment><USER2> Apparently they will add sensors to continuously monitor the concrete for failures.

</comment></comment><comment><USER25> Presumably they will be scaling back the restrictions on low occupancy cars on 14th and Williamsburg Bridge. That was going to create mayhem above ground.

</comment><comment><USER26> If HackerNews had the funding to start its own city do you think it could/would be managed any better?

What about Google City, would you move there?

<comment><USER27> No: fritz Lang filmed both of these in "metropolis"

</comment></comment><comment><USER28> Huge relief.</comment>


Libc++ Has Landed - <AUTHOR> http://www.phoronix.com/scan.php?page=news_item&px=MTEwNjA <comment><USER2> Here's a video from the 2010 LLVM Developers' Meeting that introduces libc++ and shows how it builds upon new features introduced in C++11: <http://devimages.apple.com/llvm/videos/LibC++.mov> (16:36, 42MB)

Slides: <http://llvm.org/devmtg/2010-11/Hinnant-libcxx.pdf>

</comment><comment><USER3> Just to say, libc++ is already packaged with recent versions of xcode.

One reason I find this particularly exciting is that as Apple funds a lot of the clang and libc++ development, non-OSX support is not a top priority for them (although patches are greatfully received).

I wasn't sure if there would be the motivation to get libc++ running, and keep it running, on other OSes. I assume this move will ensure libc++ keeps moving. One advantage is that there aren't that many OS specific bits, and they tend not to change that much over time.</comment>


The rise of "retail blogs" - <AUTHOR> http://www.longtail.com/the_long_tail/2008/12/the-rise-of-ret.html

<comment><USER2> I think retail companies becoming more media oriented will be a big trend. Rather than buying ads on popular blogs, why not hire a talented writer and turn your own website into a media platform? For the cost one person's salary you could potentially develop a amazing community around your industry and product offerings. Makes a lot more sense than trying to buy attention one click at a time.

<comment><USER3> And THIS, I think, is the real problem facing newspapers.

Last month I sat for informational interviews with a handful of small business owners in a neighborhood I was thinking of starting a web site in. When I asked them if they were interested in advertising, their first response was sometimes, "but we have our own web site."

Gotta have something really special you can offer them.

That's why I like what Techmeme does, selling Feed space on the homepage. Clever.

</comment></comment><comment><USER4> It feels a lot less forceful, and if the information being provided is generally useful then they are more likely to have return visitors who will eventually evolve into customers.</comment>


Ask HN: How can I learn to listen and communicate effectively? - <AUTHOR> <comment><USER2> It depends on where you think your gaps are, but some of the soft skills of communication are discussed in these books that I've learned a bit from each: It's Not All About Me by Robin Dreeke an FBI Social Engineering expert, How to Win Friends and Influence People by Dale Carnegie, Crucial Conversations by Patterson et. al. Not to say you should change your techniques to be "convincing" or salesman-like, which some of these books seem like, but you may learn some of what you do today that can be altered to help with communication.

</comment><comment><USER3> I was going through a HN "best books" thread recently and found someone recommending "How to Speak How to Listen" by Mortimer J. Adler. I'm about halfway in and there are loads of great tips in it!</comment>