Google's "Edit Search results" experiment - <AUTHOR> http://justinhileman.info/blog/2008/07/googles-edit-search-results-experiment

<comment><USER2> I'd say this is a pretty big deal if they push it into normal SEO results. I'd welcome it. I'm tired of spammy grayhat results I get now. Just clicking [X] would feel good.

I think Google is finally realizing that the algorithms still have a way to go and that the massive amount of good stuff in human's heads is quite relevant.

<comment><USER3> A whole new game would begin of "X'ing" competitors search results. They need to tread very very lightly and put many checks and balances in place.

<comment><USER4> Yeah see Wikia for an example of this. Monitor any semi-high volume keyword and you'll witness a parade of buries/promotions until 1 side finally gives up.

</comment></comment></comment><comment><USER5> The newest "AI on the web" strategy seems to center around this stuff -- computers do 95% of the work and rely on actual people when the law of diminishing returns kicks in.

We have so many warm bodies on the internet with this marvelous (and mysterious) sense of intuition that we can't seem to make the computer machines replicate. Why not?

See also: the super cool reCAPTCHA project. Or the FoldIt! protein folding game.

</comment><comment><USER4> Isn't monitoring where people actually surf more accurate than allowing those same people to 'vote' on a search result's relevance?

I would think many people would vote one way, and surf another.

<comment><USER6> When I'm searching for a solution to a problem, I often have to click through to several results before finding it (assuming I find it at all). In that case, clicking through is not an endorsement; clicking through and then not clicking anywhere else might be, but it might mean I've given up, or it might mean I opened several results at once and found the solution in any one of them.

It might be more accurate in other search domains though.

</comment></comment><comment><USER7> as a wise man once said "everything that can be socially powered, will be"

</comment><comment><USER8> we were doing this stuff for a couple of years at a search company I worked for.

<comment><AUTHOR> If you're allowed to talk about it, the data you get back is sparse, right? So how useful does the user feedback end up being? It seems like one of those areas where owning search share actually means something.

<comment><USER9> There's a type of machine learning called semi-supervised learning that can make use of sparse datasets like you suggest.</comment></comment></comment>


Robot Melts Its Bones to Change How It Walks - <AUTHOR> https://spectrum.ieee.org/automaton/robotics/robotics-hardware/robot-melts-its-bones-to-change-how-it-walks <comment><USER2> thats pretty cool.

I wonder what the long term lifespan of that material is. lots and lots of potential for this concept.

</comment><comment><USER3> Wow this is such a cool sounding concept. I didn't quite catch if the robot had some reinforcement learning algo that enabled it to "evolve" based on distance traveled (correct me if it was mentioned). But I imagine thats where something like this would be headed next.

<comment><USER4> Headline made me think that it was an unintended emergent behaviour where the robot found out that melting its legs would make it better at achieving fitness scores, alas this is still pretty neat!

</comment></comment><comment><USER5> Headline in a few decades:

"Robot melts its creator ..."

<comment><USER6> I giggled.

</comment></comment><comment><USER7> Lol the title immediately made me think of this [https://imgur.com/gallery/pux7Pn8](https://imgur.com/gallery/pux7Pn8)</comment>


Ubercamp pre launch promo - First 100 customers 50% off FOREVER - <AUTHOR> http://www.emadibrahim.com/2013/08/29/first-100-customers-get-50-off-forever/ <comment><AUTHOR> beta signup code = vip_reader 50% off coupon code = hn</comment>


Bypass Paywalls Clean for Chrome/Firefox - <AUTHOR> https://github.com/magnolia1234-new/bypass-paywalls-chrome-clean <comment><USER2> There is currently a really interesting paywall-bypass bug on NYTimes.com:

\- Take a paywall'ed URL: [https://www.nytimes.com/2013/05/05/magazine/y-combinator- sil...](https://www.nytimes.com/2013/05/05/magazine/y-combinator-silicon- valleys-start-up-machine.html)

\- Add a dot after the domain: [https://www.nytimes.com./2013/05/05/magazine/y-combinator- si...](https://www.nytimes.com./2013/05/05/magazine/y-combinator-silicon- valleys-start-up-machine.html)

voila, no paywall. Would love to hear an inside story about why this bug appeared.

<comment><USER3> I can't say for certain why this bug is exposed by NYTimes; however, I saw a comment on HN about trailing dots on domain names[1] being a browser implementation quirk.

The author of that article suggests that NYTimes may have misconfigured their Apache VirtualHost.

[1] [http://www.dns-sd.org/TrailingDotsInDomainNames.html](http://www.dns- sd.org/TrailingDotsInDomainNames.html)

<comment><USER4> It's simpler than that. I'd disagree that it's a site config bug. I think this is intended operation with respect to browsers.

Your browser won't allow access to cookies of "nytimes.com" to the "nytimes.com." domain, as because they are different. "nytimes.com" is ambiguous.

If you were on the "example.com." network , and you typed in nytimes.com , it could be nytimes.com. OR nytimes.com.example.com.

<comment><USER3> Based on what you are saying though, you lead me to believe that the NYTimes wants this behavior to occur, which I doubt.

If they want to paywall access to their site but adding a dot to the domain causes it to be bypassed, then it is misconfigured in some way, regardless of cookies.

<comment><USER4> > Based on what you are saying though, you lead me to believe that the NYTimes > wants this behavior to occur, which I doubt.

Not at all. We wouldn't expect reddit.com. to share cookies with news.ycombinator.com. The browser enforces that hard separation between the 2 domains with respect to access to cookies and such.

Thats the same split with nytimes.com and nytimes.com. . The browser sees them as 2 distinct domains, and will absolutely not let cookies cross.

> If they want to paywall access to their site but adding a dot to the domain > causes it to be bypassed, then it is misconfigured in some way, regardless > of cookies.

It's their choice (nytimes) to not do a paywall for a 'new potential customer'. And that data is stored in cookies. You can simulate that by purging all nytimes cookies and you can access as no initial paywall.

Going to their FQDN is a 'different domain' with respect to the browser and its cookie store. So its only logical that you start 'fresh' (aka: no cookie history). And there's nothing that I know of that can allow cookie sharing... Then again I do systems administration.

<comment><USER3> >It's their choice (nytimes) to not do a paywall for a 'new potential customer'. And that data is stored in cookies. You can simulate that by purging all nytimes cookies and you can access as no initial paywall.

Thank you for clarifying. I hadn't considered that NYTimes may not show paywall for a 'new potential customer' since I am all to familiar with their paywall.

</comment></comment></comment></comment></comment></comment><comment><USER5> How does this work?

<comment><USER6> It's a variety of techniques depending on the site. See [https://github.com/magnolia1234-new/bypass-paywalls- chrome-c...](https://github.com/magnolia1234-new/bypass-paywalls-chrome- clean/blob/master/background.js) and [https://github.com/magnolia1234-new/bypass-paywalls- chrome-c...](https://github.com/magnolia1234-new/bypass-paywalls-chrome- clean/blob/master/contentScript.js)

Techniques include blocking cookies, specific JS scripts, redirecting to a different URL, changing the user-agent to pretend to be Google's indexer, changing the referer to make it appear the user is coming from a Google search, and removing or hiding elements from the page that get in the way of reading the article.

</comment></comment><comment><USER7> There's so much content on the internet that, if I stub my toe on a paywall, I move on to the next link.

</comment><comment><USER8> Did this get manually bumped off the homepage?

</comment><comment><AUTHOR> Repo moved to BitBucket: [https://bitbucket.org/magnolia1234/bypass-paywalls- chrome-cl...](https://bitbucket.org/magnolia1234/bypass-paywalls-chrome-clean) [https://bitbucket.org/magnolia1234/bypass-paywalls-fixed- cle...](https://bitbucket.org/magnolia1234/bypass-paywalls-fixed-clean)

</comment><comment><AUTHOR> Repo moved to BitBucket (ff typo):

[https://bitbucket.org/magnolia1234/bypass-paywalls-chrome- cl...](https://bitbucket.org/magnolia1234/bypass-paywalls-chrome-clean)

[https://bitbucket.org/magnolia1234/bypass-paywalls- firefox-c...](https://bitbucket.org/magnolia1234/bypass-paywalls-firefox- clean)

</comment><comment><AUTHOR> Refactored extension/add-on with lots of new sites, bug-fixes, add custom sites and update-notification. [https://github.com/magnolia1234-new/bypass- paywalls-chrome-c...](https://github.com/magnolia1234-new/bypass-paywalls- chrome-clean) (no google analytics)

[https://github.com/magnolia1234-new/bypass-paywalls- firefox-...](https://github.com/magnolia1234-new/bypass-paywalls-firefox- clean)

<comment><USER9> Has the link been updated? It's what the story is pointing to.

Anyway, nice work.

<comment><AUTHOR> Old account was suspended after complaints of iamadamdev of spamming his repo (while he copied commits), I guess.</comment></comment></comment>


Why I Am a Bad Correspondent (2015) - <AUTHOR> https://www.nealstephenson.com/why-i-am-a-bad-correspondent.html <comment><USER2> "my books are bought by enough people to provide me with a sort of middle- class lifestyle, but not enough to hire employees"

This actually surprises me. With someone as thoroughly read and prolific as Stephenson I would have expected a much larger financial reward. Are the economics of publishing really that bad or is he just being modest?

<comment><USER3> It's that bad. Very few writers can make a living just off writing novels. I have a friend who wrote, six? seven? novels and just couldn't make it as a novel writer. There's just too much competition [1] these days.

[1] Not only with other people who are writers, but with the attention of potential customers (games, movies, surfing the web, etc).

<comment><USER4> Completely this. I'm currently working on a novel with a view to publishing, but under no illusions that it's going to make any worthwhile money. For that, I have my day job and technical books (Which as far as I can make out are far more profitable then novels on average).

The Society of Authors ([https://societyofauthors.org/](https://societyofauthors.org/)) do some excellent work on this front. Basically, to make money writing you have to either be a _machine_ and put out a lot of content, or get lucky and build a fan base that is willing to wait for infrequent releases but buy all the copies.

</comment></comment></comment><comment><USER5> In addition to being very humbly and respectfully written, I suspect that this is not unique to successful authors. That we'd all benefit similarly from this focused effort, but it's so foreign that we don't know what we're missing.

<comment><USER6> The same line of thinking applies to programming, of course.

In practice, however, the life of a programmer is usually split up into too many tiny async slices by email, chat, meetings, etc. to even attempt to enumerate here. It's so far the opposite extreme of what he describes here that it's like ironic comedy.

Makes me feel like I'm doing life all wrong.

<comment><USER7> I've been doing pretty much what he describes for three years now, except writing code and sharing it with the world for free [0].

After spending 13 years writing software professionally in everything from major established corporations to consulting and startups.

I don't have that many options for health-reasons, and I'm privileged to live with a partner who pulls most of the economic weight.

But I can't imagine doing it any other way anymore.

[0]

[https://github.com/codr7/g-fu/tree/master/v1](https://github.com/codr7/g-fu/tree/master/v1)

[https://gitlab.com/sifoo/snigl](https://gitlab.com/sifoo/snigl)

[https://github.com/codr4life/snabl](https://github.com/codr4life/snabl)

</comment></comment></comment><comment><USER8> This is really hard to read - dark grey on a black background.

<comment><USER9> [https://outline.com/https://www.nealstephenson.com/why-i- am-...](https://outline.com/https://www.nealstephenson.com/why-i-am-a-bad- correspondent.html)

<comment><USER10> Also- 'reader view' on Firefox.</comment></comment></comment>


Unfashionable pursuits (1983) [pdf] - bra-ket https://moscow.sci-hub.tw/1254/a812ddf37f1ed6d0df5467996e1a4cf4/dyson1983.pdf <comment><AUTHOR> Added pithier quotes to [https://github.com/globalcitizen/taoup](https://github.com/globalcitizen/taoup)

</comment><comment><USER2> I hope those who fund scientific research of all kinds read this paper and act on it.</comment>


Build your audience and grow your influence on WhatsApp - <AUTHOR> https://statfluence.com/ <comment><AUTHOR> As a WhatsApp Status Influencer I need to save all my subscribers' phone numbers in order for them to begin seeing my WhatsApp Statuses. I found myself manually saving thousands of WhatsApp phone numbers until my fingers became numb everyday. This is why I have launched Statfluence. Now you can save thousands of contacts in a few seconds.

I also added the ability to post new WhatsApp Status messages directly from the web eliminating the need to use your phone.

I am working on developing tools to help businesses and influencers build an audience and grow their influence on WhatsApp.

If you have any feedback, please let me know.</comment>


Some thoughts on simple state machines using x86_64 / assembly - <AUTHOR> https://ecc-comp.blogspot.com/2020/03/some-thoughts-on-simple-state-machines.html <comment><USER2> Would love to see the source of those macros</comment>


Ask HN:What would be the skills required for Developers in the next 10 years? - <AUTHOR>

What would be required in the market for the following years for hackers/developers? <comment><USER2> Java is the 21st century COBOL, a must have for all offshore developers. Stay away from it. Learn Python/Ruby and Django or Rails. They will keep you way ahead on the productivity curve. If you are doing web development, learn the full stack, html and js all the way through to SQL. If not the web, find something interesting and dig deep into it. Think about what is not out there. Don't do social networking or mobile games, they are too crowded. Enterprise solutions, however, have barely been tapped.

The biggest skill is networking and not just with HN types. A socially active SO who collects people is a wonderful person to have, better than a VC. Who you know is better than what you know.

</comment><comment><USER3> Same as always -- a grounding in fundamentals, strong experience with a couple choice technologies that aren't too out of date, at least vague familiarity with the new new thing, and the ability to assimilate the new new thing quickly when you need to (probably implied by the previous points).

EDIT: oh, and business smarts wouldn't hurt.

</comment><comment><USER4> Multi-disciplinary.

This goes not just for hackers, but any type of engineer. Companies are increasingly looking for people who are not just distinguished in one area, but have multiple areas of expertise. Thus the hacker in the year 2019 (crazy!) will not just have to be good at programming, but knowledgeable about many domains.

How can you best apply a given skill set to new problems? Can you use lessons learned in other disciplines to address looming challenges in the current project? In the last 10 years, did you become any better at predicting trends and customer needs?

</comment><comment><USER5> As always, demand for developers will be greatest in those markets experiencing the most vigorous growth. Much of the growth in the past decade has been in new markets for advertising and online stuff "as a service".

This will probably continue for another decade or two until the next "big thing", which is anybody's guess. Beyond that my bet is that applications involving robotics, AI and nanotech will start to become mainstream.

</comment><comment><USER6> Ability to learn, listen, and imagine.</comment>


Font Parsing Vulnerabilities - <AUTHOR> http://yahoo-security.tumblr.com/post/123981052855

<comment><USER2> I worked on font parsing at one point. Indeed, the font rendering libraries are fragile and the formats complex and poorly documented.

This is a case of something being initially designed without security in mind, because fonts were something you bought and installed on your computer like applications. Suddenly, fonts were being automatically downloaded and rendered on web pages.

Auditing font libraries is hard, because you need combined expertise in security and font rendering (which is deeply intricate, especially with full non-Western writing system support.) I expect to see more vulnerabilities here.

<comment><USER3> Indeed, font parsing has been a focal point for browser security for awhile too; Chris and John (both of whom worked at Matasano, #shameless) have been hunting for bugs in them for years. It's good of Yahoo to pay them to do it publicly like this.

<comment><USER4> This was %100 Johns work.

</comment></comment></comment><comment><USER5> Do these vulnerabilities suggest that attackers can gain access to your machine by sending an evil font to your browser? I wish this was getting more press/discussion.

<comment><USER6> Yes. But without icon fonts, the web would look like it did in 2008. And you don't want that, do you?

</comment></comment><comment><USER7> Browser vendors / web standards continue to expand the set of functionality that a browser provides. Each time they do so, they increase the attack surface.</comment>


Introducing Mongoose to Your Node.js and Restify API - <AUTHOR> https://medium.com/@nparsons08/introducing-mongoose-to-your-node-js-and-restify-api-9c16a93c8d87 <comment><AUTHOR> Nick here, author of the post. Would love to hear your thoughts on this subject matter. I'll do my best to respond to all questions and comments. Cheers!</comment>


What's new in Systemd – 2015 edition - <AUTHOR> http://ma.ttias.be/whats-new-systemd-2015-edition/

<comment><USER2> I hope that the bit about containers being able to view the logs of the host was a transcription error, and actually the other way around.</comment>


Did Mark Zuckerberg's Inspiration for Facebook Come Before Harvard? - <AUTHOR> http://www.readwriteweb.com/archives/mark_zuckerberg_inspiration_for_facebook_before_harvard.php <comment><USER2> Seriously, I still can't understand what 'inspiration' has to do with Facebook's success at all. There were dozens of already popular social networks when it arrived - apart from timing/market positioning (read: luck), what's the big deal?

Please enlighten me...

<comment><USER3> Nope you've got it spot on.

Facebook is like Google: it rocks and is extremely popular, but at its roots it doesn't really have much of a story to tell — it's not that revolutionary, if Facebook didn't become popular, another social network would.

<comment><USER4> Exactly; the point is not that Zuckerberg came up with something no one else had. The point is that he did it better. Just as Google didn't invent search; they just really focused on it and did it better.

</comment></comment></comment><comment><USER5> Social anthropologist my arse. Mark's inspiration was Ryze, Friendster and Myspace (the initial feature lists are near identical). The brilliant insight was making each network 'private' by email domain and maintaining that ability to remain mostly walled off when they opened up the network to outsiders. The author seems to be confusing the origin of the name with the origin of the feature set.

</comment><comment><USER6> Regardless of the fact that the general idea of a social network was nothing new, the article hinges heavily on the fact that there was something called "the facebook" at Exeter. But I'm pretty sure the reason he called it the facebook was because the same thing at Harvard (a directory of students with photos that eventually went online) is called the undergraduate facebook, and he wanted students to immediately realize that his facebook was this, but more.

</comment><comment><USER7> It's a clean Friendster and MySpace that is now copying Twitter. I would not call that innovative!

It's strength is everyone, including your mom is on Facebook. From grade school, to high school, to family & friends, etc .... MySpace never provided that!

<comment><USER8> I sometimes think and feel like the fact that everyone is on there is a weakness of the site. Turning down friend requests from work acquaintances and family members is a bad move socially, but accepting those requests has forced me to censor a lot of my posting to the site in the last year.

<comment><USER9> I think that's assuring the quality (not that it is very high). People start to realize that you shouldn't do/say something on the web that shouldn't be public.

If every public forum was with real names we wouldn't read so much rubbish.

</comment></comment></comment><comment><USER10> Oh come on, enough already. Who wasn't thinking about Facebook before Facebook came out?

<comment><USER11> In middle school I built a system based on hacked message boards and content management systems for students to share notes and study online (mostly the night before tests).

Before it got 'big', I was working on it during lunch when a media specialist saw the web page and logo and asked what it was. I thought I was screwed.

But I was at a small private school and next thing I knew, the head of the middle school was telling my entire grade about it. Then it grew. I learned a ton in middle school, I had my best study skills ever because I was preparing content for the web, interacting about the content, and managing the site. At one point I had a science teacher logging on before tests and helping students. Eventually I won first place at a state technology fair.

But the site was always confined to my middle school.

The following summer I wrote pages upon pages of planning, figuring out how we could convince schools to buy licensing, how we (2 friends and I) would monetize it, grow it. But we all went to different high schools and my public high school instantly gave me signals it would not be tolerated.

I could get into a big long debate about my views on the "honor code" but my point about this story is that I am sure there were lots of localized "Facebook"s around. What Mark did well in my view is that he took it beyond his local, beyond Harvard, and he did so exceptionally well. At least better than I, a high school freshman did.

<comment><USER12> every geek in school built some kind of forum and cms mix for students. However, few of them really get big and go out of their own school. That is nothing revolutionary, all about execution...

</comment></comment></comment><comment><USER13> the tone is unfair - he was the one who got his act together and got it done. one could make a similar argument/"investigation" about any creation.</comment>


VCs & Tech Lawyers: Innovate, Automate, Simplify - <AUTHOR> http://500hats.typepad.com/500blogs/2007/09/vcs-tech-lawyer.html

<comment><USER2> Funding deals are only as complex and formal as the parties choose to make them.

The world of VC fundings, for example, is almost surreal in its complexity and formality. A typical deal starts with a term sheet from the VC's lawyers that tells the company it will have to slog through the standard range of (typically) preferred stock issues and will need, by the way, to reimburse the VC for its lawyer fees along the way (a typical price tag: $25K to $35K). This is then followed by "definitive documentation" that is fairly stacked against the company and from which the company needs to have its own lawyers work backwards to bring it to a more balanced state. This in turn causes the company to incur its own set of lawyer fees, often amounting to something akin to the amount it is reimbursing to the VCs. The net result: a small startup raises a few million dollars and spends $60K or $70K in processing costs for the privilege of having it properly documented. Of course, this is for a standard Series A-style funding. It only gets worse in later rounds, where potentially intricate rights may need to be adjusted among different classes of preferred shares or where downrounds may be involved or where internecine fights among disparate company factions may color large aspects of the terms finally negotiated. In such cases, when it comes to complexity and cost, we arrive at a stage that might even be called byzantine.

Now that is the working model that is so often criticized and about which so many ask, "Isn't there a better way?"

The answer is yes and no.

With VC deals proper, simplicity will never become the norm because the investor goals will always be animated by a strong desire to impose control and formality upon the target startup. There is a reason why all those seemingly oppressive terms are in the deal in the first place. And such terms do require elaborate documentation and lots of back and forth to sort through.

Given that simplicity in deal terms is not really achievable in this sort of deal, the answer often sought at this level is to push for the widespread use of "standard" documentation in hopes of streamlining these deals and limiting their costs. The model legal documents of the National Venture Capital Association represent this sort of effort. These are well-drafted documents that are highly useful in their own way.

Model forms, however, only go so far. In the working model described above, after all, the VC lawyers _begin_ every such deal with the equivalent of model forms used by the particular law firm and those deals go down a path where they invariably generate much process and attendant large fees. Anyone who has been around awhile in such situations knows that a lot is gained by having skillfully drafted paperwork with which to begin a deal. But this does not in itself lessen the costs in any material way. Such model forms are in effect already part of the standard process, then, and it is no answer to the issues of complexity and cost to say that adopting such forms in some super- standardized way and putting them in some central online location will materially reduce costs by standardizing the deals. All this is another way of saying that high levels of complexity, and costs, are an _inherent_ part of such deals.

Of course, it is theoretically possible to simply have companies sign "standard" paperwork prepared by the VC groups in its unaltered form and this might give us a sort of LegalZoom for funding documentation. But to view this sort of deal in this fashion is to ignore reality. When presented with such paperwork, companies do need to negotiate to bring balance to the documentation and, if they don't, they will find themselves often signing on to highly unfavorable terms.

As with every deal, there is really no such thing as "standard" paperwork unless one wants to accept potentially loaded terms.

In my judgment, when it comes to VC deals, some improvements can be made in terms of process but inherent complexity will always remain. There is too much money at stake, and too many varied interests, for the parties simply to sit down and sign without slogging though a whole variety of issues, many of them inherently complex. Yes, by all means, use graphs when it will help explain things. Use standard forms to start the process. Make them widely available for all parties to use. Put them online so people can log in to see and manipulate them in one location. Yes, do all this and more, and in the end you will still wind up with a complex process that cannot be automated beyond the superficial process level.

When one gets beyond the VC deal, and turns to angel-style funding, then the potential to simplify funding documents (and the funding process) is very real. It is possible to do a simple funding round for up to $1M or so with processing costs that do not exceed $5K or so. Series A or Series AA fundings can be documented with pretty vanilla terms (standard 1x liquidation preference, balanced anti-dilution protection, a few basic protective provisions, some investor participation in management such as one Board seat). The key to such simplified terms is having "friendly" investors who are content to accept basic protections but who also do not want to push for control.

Of course, only early-stage deals will fit this category but that is my point: the complexity of a deal is directly tied to what the parties are trying to accomplish - if you have simple, friendly terms, you can have simple, friendly process and paperwork and, if you don't, you can't. None of this will change by calls to "automate" or to "get with it" concerning modern technology. It is not a technology issue. It is a people issue. If there is a will toward simplicity by friendly parties, there is a way. If there is an inherent adversity, and a lot of money involved, simplicity will only exist in idealized discussions having little to do with real-world deals.

</comment><comment><USER3> I think McClure is pointing out an opportunity for law firms that exists for both startup and established customers. One of the major barriers to lower the friction in the process is defining the value based on billable hours. What you really want from your attorney is a risk assessment and recommendations. The value of which is proportional to the size of the opportunity you are contemplating and the likely effect of the risk mitigation strategies offered. You have to change the business model to effect a transition to some of the technologies that McClure is talking about.

Some suggestions:

o Subscription models for legal services and cloud storage of all of the relevant documents might convert much of the due diligence process into a "configuration management" problem where you are always ready for a transaction because you maintain your relevant agreements and contracts in a known (and hopefully good) state to minimize the need for a fire drill before a transaction.

o Subscription models for advisory services would encourage attorneys to use more secure IM, document generators, cloud storage...We need to move beyond a billable hour model.

o for public agreements like privacy policies and terms of services there is an opportunity for a subscription service to monitor changes in posted policies, and perhaps for an additional fee provide customized interpretation of the significance. I had suggested this to the Legal River folks for their <http://privacy-policy-generator.legalriver.com/> and <http://terms-of- service-generator.legalriver.com/> that it might be as useful to classify the existing agreements already posted on the net. This would extend what EFF is doing with <http://www.tosback.org/> (in itself a valuable service).

There is an event coming up Wed-Mar-3 at Churchill Club on "Innovation & Change, a "New Normal" for the Legal Industry?" (see <http://www.churchillclub.org/eventDetail.jsp?EVT_ID=853> ) that explores what Cisco has done to leverage current technology and new business models in managing legal work (internal and outsourced). Hopefully some of these techniques trickle down to the startup world as they gain more acceptance in Fortune 500 / AmLaw 100 relationships.

George Grellas makes some excellent points in <http://news.ycombinator.com/item?id=1090615> that the more adversarial the negotiation the less impact technology can have on cutting costs.

</comment><comment><USER4> someone needs to build a web app that asks a few basic questions, gives you some check boxes to click and then generates all the standard PDFs you need for seed funding, employee agreements, etc.

<comment><USER5> You probably don't want it totally turnkey - I mean, you can - LegalZoom is the most well-known, but Wilson will incorporate you and give you the whole kit and caboodle for just $5k. Plus, if they like you, they'll make intros to angels and VCs for you when you're ready.

That said, there are some reputable forms and sample documents; here are some:

Wilson's Term Sheet Generator: [http://www.wsgr.com/WSGR/Display.aspx?SectionName=practice/t...](http://www.wsgr.com/WSGR/Display.aspx?SectionName=practice/termsheet.htm)

YC's Series AA documents (also by Wilson): <http://ycombinator.com/seriesaa.html>

Yokum's walkthrough of the Series AA docs (he's the Wilson partner responsible): [http://www.startupcompanylawyer.com/2008/08/23/how-do-the- sa...](http://www.startupcompanylawyer.com/2008/08/23/how-do-the-sample-y- combinator-series-aa-financing-documents-differ-from-typical-series-a- financing-documents-or-whats-the-difference-between-seed-and-venture- financing-terms/)

The incorporation docs for Founders Fund companies were once available on TheFunded.com, but I can't seem to find them in my thirty seconds of poking around.

<comment><USER4> I guess I just object to paying Wilson $5k to run search-and-replace for me. And I certainly wouldn't trust LegalZoom to actually have documents written by people who understand startups.

And the other sources don't seem to provide offer letters, NDA/invention rights docs, board motions, option grants and all the other boiler plate stuff that's needed.

That all said, I suppose making it too turn-key risks entrepreneurs not really understanding the legal issues involved and getting nasty surprises later on.

<comment><USER5> I'm pretty sure Wilson's $5K includes all those other docs you list. At least that was my understanding when I spoke to Yokum a while ago.

I did request that Wilson make a full list of what you get as part of an incorporation "package" and post the list and plain vanilla price publicly on their site. The non-transparency of legal fees is only matched by the non- transparency of health care prices.

</comment></comment></comment></comment><comment><USER6> Note: 2007 - not much has happened in 3 years, has it...</comment>


Show your work: The new terms for trust in journalism - <AUTHOR> http://pressthink.org/2017/12/show-work-new-terms-trust-journalism/ <comment><USER2> I'd love to see more linking to primary sources in news stories. Academic writing normally has lots of references that allow you to follow things for yourself. It's understandable that newspapers wouldn't want their stories to be 30% references, and it seems that many major news sources write their online stories in the same way they would write newspaper stories, but on the internet it's actually quite possible to provide all kinds of extra detail, such as notes from the fact checkers, external references that corroborate or contest, relevant reference material, documents, perhaps even links to summaries of digested information where it wouldn't be ok to publish the raw details.

On the web, stories can still be quick and easy to read for those that want that, while providing a huge wealth of information for those that want more background or a better understanding of where a story came from.

I like the slogan 'show your working', I just think that it can be done in an even more radical way online than even this article suggests (and might also make people more prepared to pay for the work, when they can see what they're getting for their money).

</comment><comment><USER3> Not sure I agree with the general premise that what the vast majority of consumers of journalism want is proven transparency versus reinforcement of what they already agree with and tribalism.

The article seems to completely ignore many real world factors of human psychology present in people's relationship to consuming news as well as the complex financial forces involved, or propagandist motivations of some state controlled media.

Also doesn't account for news sources shifting dramatically to being mediated by social media gatekeepers rather than direct relations between publisher and consumer so it doesn't account for pervasive filtering and how well researched and transparent journalism is pushed out for tribalist click bait anyway.

Nice utopian vision but too far removed from key real world factors to be practical I think.

<comment><USER4> These points are valid, though I feel what's more dangerous than social media filters reinforcing existing beliefs is those sites and their algorithms putting such a high focus on speed rather than quality. Face it, doing a lot of careful research and producing a well written article does worse in a lot of cases than just kicking crap stories out the door as quickly as possible to show 'consistency' and ride hype trains. The technical setup meant to provide 'relevant' content seconds after something happens discourages anything more thoughtful by design.

<comment><USER3> Agreed. I think fast food vs eating healthy is a good comparison. The message in this type or article strikes me as sugesting better labeling for healthy food assuming that's what people want while discounting the fact that fast food is cheap and easy and people buy it most often to satisfy a subjective feeling of hunger (while they have a ton of other stuff to focus on) rather than treating each meal as an objective assessment.

A lot of articles with suggestions posted here (HN) for making "things" better often focus on the mechanics of the thing and technical or procedural changes but a lot of the time ignore the reality of human behaviour and motivations. I think that relates to engineering/programming culture and focus on STEM with a lot less value placed on humanities which is then reflected in products and opinion pieces and people being frustrated that things can't just be "fixed" through clever changes to objective mechanics and approach.

That's drifting into other bigger topics but it's a frustrating trend.

<comment><USER5> I wholeheartedly agree that focusing on lower level mechanics is the way to solutions and am at times frustrated by their dismissal in preference for some higher level debate across a seemingly arbitrary division. In my case health debate terms are basically down to gut flora and conditions that cause me to crave french fries. Well, I don't crave french fries anymore (or meat, and decreasingly dairy except the Super burritos :).

I've had this particular OP debate about journalism with a coworker, that maybe such a publication doesn't need mass appeal if the thought leaders would be willing to pay more for it. I throw money at thought leaders whenever I can, eg. "this album on Soundcloud is good, I'll send a dollar per track. CRAP it's 25 tracks..." and still send it all. (in retrospect, they must know people behave like this... or at least, I do now :). BUT... if it weren't authentic work, I wouldn't get that impulse, so it's not really a secret that can be exploited.

It's not the most popular thinking mode. Put the body into a healthy state, and it will crave healthy things. Like math class or starting strength training, you might just have to endure it for a little bit. But to myself, perhaps many, salad was iceberg lettuce and veganism was boca burgers. Couldn't be farther from the truth, in reality. There's even bigger money in some food industry sectors than green/vegan, I wonder who might have incentive to say being healthy is sooo expensive when the alternative is lots of their own products.

</comment></comment></comment></comment><comment><USER6> Journalisms biggest Achilles Heel is its insistence on the concept of quality journalism and the idea that normal people care and especially care enough to pay for it.

Let's not forget that fundamentally, journalism is little more than verified gossip (Have you heard that the UN Secretary is involved in a scandal) and its primary value is not in how it's written but the revelation of the piece of information in itself.

Sure we have investigative journalism, but most people aren't going to pay for that.

So at the end of the day, the only people who really care about journalism are journalists themselves.

The biggest change in journalism IMO is that it's finally become clear that the postmodernist was correct.

Context and perspective define truth. And so all transparency in journalism will ever do is attract the people who already agree with the context and perspective of the individual journalist as loyal readers.

Helping journalism it wont.

<comment><USER7> We generally perceive peer-reviewed science as being capable of approaching objectivity. Why can this not be true for the reporting of events as they occur as well?

<comment><USER8> The goal of science is for experiments to be repeatable. If I were to build a copy of the LHC under my house, presumably I would be able to verify any of CERN's results.

But I can't verify anything in journalism. If two reporters watched something happen and their accounts differ, who is right? No one knows, and both will be accused of bias.

<comment><USER9> Is water wet?

Maybe!

The point being that there are plenty of journalistic enterprises that are not especially sensitive to bias.

<comment><USER6> Yes when they are void of anything to do with journalism (Plane goes down)

The second you add journalism to the mix you are getting into bias land no matter how you turn it around.

<comment><USER10> I think when you say 'journalism' what you mean 'analysis' vs 'reportage'.

<comment><USER6> No,

"Journalism is the production and distribution of reports on the interaction of events, facts, ideas, and people that are the "news of the day" and that impacts society to at least some degree. The word applies to the occupation (professional or not), the methods of gathering information, and the organizing literary styles. Journalistic media include: print, television, radio, Internet, and, in the past, newsreels."

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

<comment><USER10> This seems at odds with your earlier statement: _Yes when they are void of anything to do with journalism (Plane goes down)_

I can't really figure out what point you're trying to make but that's OK, doubtless it will be clearer in some other context.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> One cost would be that this would make a special case out of investigation journalism, where the journalists often cannot reveal their sources. Especially in cases where retribution against the source could end in death.

Since that is probably the most important and consequential type of journalism, I'd expect facile attacks claiming investigative journalism "isn't transparent" if this takes off.

The obvious and easy protection against such an attack is to critically read multiple sources and be familiar with journalists' track records over time. So I'm afraid we don't have workable protections against this attack atm. :)

<comment><USER12> Why would they need to claim it? The way you've set it up it's vacuously true. The difference between Pizzagate and investigative journalism as you've defined it is reputation. And when trust in the press is lost what separates the curds and the whey is evidence which a fabricated story cannot provide.

The protection you offer even in the ideal case is worthless when there isn't trust that a journalist will bend to political pressure, financial incentives, threats, or to push their own or their publisher's agenda.

Saying that people need to "crtitically read" is just intellectual grandstanding.

<comment><USER11> > The difference between Pizzagate and investigative journalism as you've > defined it is reputation.

Not with the example you've given. Investigative journalism is one form of journalism. I won't attempt to define journalism except to say the forms its stories take do not include posting a tweet in reference to someone's sentence fragment from a Facebook status. That may be a part of the "raw material" of a story that covers how conspiracy theories begin and spread. But neither that raw material nor the journalistic stories which essentially just tracked the effect of a wild conspiracy theory on a national election are examples of investigative journalism. (There may be pieces of actual investigative journalism wrt Pizzagate, but I haven't read them.)

But let's say we compare Seymour Hersh's story on the killing of Bin Laden and some random Facebook fake news story pretending to be a piece of investigative journalism. At least at present we're not at a point where a fake news artist can do a good enough job mimicking a piece of serious investigative journalism. But disregarding that, the main difference there would be reputation.

But that isn't a small difference. "Reputation" covers a lot of ground-- it includes the publication and the journalist. It also includes the age of the publication, its intended audience, its business model, and even whether the name of the publication appears to have been chosen to be similar to the name of a more reputable publication.

That certainly doesn't mean I reflexively accept all of Hersh's claims-- I do like other non-experts on the subject and withhold judgment until other experts begin to assess the veracity of his story over time. But it _does_ mean that I can reject out of hand the viral Facebook link to some url that looks like "cbsnews.com" if you squint. I can save time and not read it at all based on reputation alone.

> And when trust in the press is lost what separates the curds and the whey is > evidence which a fabricated story cannot provide.

It depends on why the trust was lost. If it was because a critical mass of journalists' track records got worse over time, then you're right.

On the other hand, if it is because a critical mass of readers can't tell the difference between a Pulitzer prize-winning investigation of media corruption and a click-bait website on Facebook, asking them to "weigh the evidence we're showing you for yourselves" isn't going to solve anything.

</comment></comment></comment><comment><USER13> Former news editor here. When I was working for a daily metro paper, we had toyed around with ways to expose some of this "show your work" information as metadata in the online editions. Sort of like EXIF data for a photo, but for a news story. If a story mentioned an event at a particular location, the metadata might include coordinates for that location. The benefit of the metadata approach is that it's much more easily consumable by machines, but we can still use it ourselves on the frontend (e.g. show a map of the location).

Google tried getting publishers to do the same thing, but I think it eventually realized that they weren't going to get buy-in if it meant reporters and editors had to do the extra work of compiling the metadata, so they decided to just automate everything and use natural language processing to extract the metadata.

</comment><comment><USER4> For all the talk about transparency, there's not much about actually providing a source for your claims. That's something a lot of media outlets are failing at, with both offline sources and online often lacking proper source links or references and those that do have them preferring to link to secondary and tertiary sources rather than the original.

Still, transparency is getting better, and both source links and the other things mentioned in the article (like claims for comment, disclosing financial ties/free products, and talks about what they know/don't know) are becoming more common now.

<comment><USER7> A problem with this is regarding anonymous sources, in which it's often necessary to protect the identity of the source.

Perhaps some sort of verification network, in which one news outlet is randomly assigned another outlet who must also independently verify the anonymous source?

<comment><USER4> True, never thought about anonymous sources. In that case, some sort of verification network could work okay, though it's always going to be tradeoffs regardless of what route is taken.

However, there's no excuse for stories based on public sources not to link to or provide a reference for those sources. If your source is another news site, blog, wiki page, forum post, video, etc... then you should damn well be linking to the original. Doing otherwise is like taking ownership of someone else's work, especially if you do what some sleazy sites do and rehost the original work as well.

</comment></comment></comment><comment><USER14> It's a new model of journalism in search of a rare breed of news consumer: one who cares to read reporters' profiles, source documents, and descriptions of how reports are gathered.

Lofty goal, to say the least.

</comment><comment><USER15> Good writeup and I agree with the sentiment that news sources need to disclosure their sources & biases.

However, we are entering into a strange age where information can be fabricated so well that we won't be able to reliably trust any information on a screen, especially as the timestamp exceeds what a Desktop computer would take to generate such data.

On AI Generated fake porn - video editing with face swapping. [https://news.ycombinator.com/item?id=16040463](https://news.ycombinator.com/item?id=16040463)

[https://medium.com/@samim/obama-rnn-machine-generated- politi...](https://medium.com/@samim/obama-rnn-machine-generated-political- speeches-c8abd18a2ea0) \-- Audio & Visual imitation of Obama according to a script.

[http://www.bbc.com/news/technology-37899902](http://www.bbc.com/news/technology-37899902) \- Adobe Voco 'Photoshop-for-voice' causes concern

Now tell me, why should I trust anything on this screen? I shouldn't and I won't.

</comment><comment><USER16> Journalism by peer review and open access and open data.

</comment><comment><USER17> Would a project like Po.et work for establishing "trust" in content.

I use that term loosely, because trust means different things in different contexts. For example can you trust the movie you downloaded was licensed?</comment>


Clang-format for JavaScript, awesome code autoformatter - <AUTHOR> http://probst.io/blog/2015/01/15/clang-format-for-javascript/

<comment><USER2> Too bad, it fails to handle properly non semicolon terminated code...</comment>


When and Why to Learn to Program - <AUTHOR> http://spencerfry.com/why-and-when-to-learn-to-program

<comment><USER2> Another business guy turned programmer here. It's good to see that there are more of us out there and that I'm not the only crazy one. Some advice I would give to anybody who wants to learn to code from scratch:

\- Focus. Don't do it on the side, it would take too long. Treat learning to code as if it was your regular job(I tried to do 40-60hrs per week, I did about 2000hrs of coding in my first year)

\- Don't hurry. Don't obsess about efficiency and how you use your time. You will waste tons of time on stupid bugs and knowledge you don't really need, that's just part of the learning process. Focus on putting in those hours week after week and you will see results.

\- Work on a project. The only way to truely understand how things work is to actually use them. Don't hide yourself behind books, try to apply everything you learn asap.

\- Give yourself permission to suck. This is really hard if you're older (I was 30 when I started to code). If you already have a career, you're not accustomed to be utterly clueless anymore. I had already forgotten how slow and painful it is to learn something from scratch. So give yourself a break and judge yourself the same way you would judge a stranger. Don't expect to become stellar in a matter of months just because you're smart. Hint: so is everybody else who is coding for a living.

</comment><comment><USER3> This was great to read - I'm the same age as you and changed majors away from CS about 10 years ago because of similar reasons to what you described. Being young and not knowing much about the world meant that I didn't have any passion for what I was building, and after getting some real life experiences under my belt, I've come back to learn programming again because, well, I just can't help myself.

I've thought about trying to learn programming again for the past few years, but gave up on the idea by telling myself it was too late and that I could never really succeed without a structured learning environment. But once I started looking into it, I'm dumbfounded by the amount of resources out there that not having access to knowledge is simply not a valid excuse. These massive open online courses out there are revolutionary and having just finished one, I felt much more passionate, thirsty, and focused than I ever was as an undergraduate.

And to echo the point in your article, what has kept me learning is a project I want to build. Learning backwards by figuring out what I want to do then researching how to do it works great for me. But, what's been challenging is staying grounded to the task of building the product rather than letting my mind wander off into a daydreamy state of wondering how I'm going to manage/promote/monetize the product once it's finished. Baby steps...

<comment><USER4> We have similar life experiences it seems. I'd suggest putting off all thoughts of managing, promotion and monetization when you're learning to code by building your first project. If that stuff happens. Great. If it doesn't happen, then you'll at least come away with an awesome understanding of programming and then the next time around you can focus on the other stuff. It's a win-win.

</comment></comment><comment><USER5> This is very good advice: "My opinion is that if you're fortunate to have friends that know how to program then you should learn to program in the language they're best in."

</comment><comment><USER6> Couldn't agree more - you absolutely need an idea that you are passionate about enough to turn into a project, loads of drive, and long chunks of time to yourself.

I taught myself the basics of rails in about 2 months using Lynda.com because after numerous failed attempts I realised I would struggle to get anything off the ground - mostly because it is extremely difficult to transfer passion to another party.

I tried what I believed was a good idea with my one and only developer friend, but he just didn't have the drive that I did, and months slipped by with little or no progress (I gave him 50% share of the company, I wasn't paying him - a mistake with hindsight).

The challenge was I couldn't outsource the build on Elance (etc) because I had no idea what to ask for - and mocked up screenshots simply don't portray a vision of where you see your product going, and I didn't have the technical nous to judge whether I would be getting good value for money.

After "learning" Rails my first creation is still going strong, it's a free site but one that has taught me so much and I'm super proud of it.

Moving forward my basic skills in Rails can mostly get me to MVP for testing my second project, and if it's successful I'll source a developer for short projects via Elance until I can afford a full time dev.

So in a nutshell, you either have to be completely cashed up, or you have to get your hands dirty to MVP status by cutting code, even if you consider yourself primarily a biz dev guy like I do. I prefer the latter solution - it's just too difficult for me to predict everything you need to build until you start building.

</comment><comment><USER7> I recommend any new programmer interested in developing web applications or an internet startup should learn JavaScript first. Here is a blog post on How to Learn JavaScript Properly: [http://javascriptissexy.com/how-to-learn- javascript-properly...](http://javascriptissexy.com/how-to-learn-javascript- properly/)

</comment><comment><USER8> What about the suggestion to learn Ruby? I've been trying to decide which language to start on... I thought JavaScript, since I know nothing about Ruby on Rails.

I definitely also have a project in mind, but I don't know where to start aside from the HTML and CSS I've learned.

<comment><USER9> I think that python is the easiest and best for random english speaker to learn. The syntax is presented in a way that is extremely intuitive i.e. english everywhere -- not brackets everywhere, and the fact that you are force to write with proper indentions creates good habits. (full disclosure: i learned with python and really only know javascript well, and some ruby)

</comment></comment><comment><USER10> I'm of the belief that while not everyone may be able to code in a way that contributes to their startup's codebase, knowing the _point_ and _power_ of programming can vastly help the direction you pour your resources in.

For example, understanding how loops and iterative tasks work will help you understand why changing the text on one specific product page (out of a 1000) isn't as easy as popping open the text-editor and changing that page's text. It helps you figure out a sensible data-model on the back-end (so that your frustrated coder isn't writing a special if-statement that breaks on the next iteration of the site)

<comment><USER4> This is so true. I've only been programming for around a year, but I now have a much better understanding of what goes on under the hood. In the last few months, I've gone from doing 100% to 20% of the coding as I'm now working with a better developer than myself, but the understanding alone has given me a huge leg up on other CEOs/product people who have no experience programming.

</comment></comment><comment><USER11> The rivers of nonsense questions coming into stackoverflow from well meaning people who are not able to describe the difference between a variable and a browser and who don't have the capabilities to care unless it solves their immediate problem at hand leads me to believe that not everyone should program. in fact, many people who do program should be politely asked not to.

Stackoverflow needs a "entrence barrier" test where if you can't communicate or have no ability to think rationally about the words being typed there to solve problems, your question goes to the "dumb" section of the site.

point is, stop encouraging everyone to be programmers. You're slowing progress by doing so.

we've got 4.4 million questions, 90% of it from novices that should be asked not to program. you can go take a look at them, they are little better than "how is babby formed" type questions. These people are trying to program when they should be told that it's too hard.

<comment><USER12> You must be kidding. The _worst_ thing about stackoverflow is not the naive questions but the obnoxious answers. Ask a question on SO, and the first priority of the Red Guards isn't to find an answer for you but to find a reason why your question doesn't even deserve an answer.

I've made good money over the decades as a programmer, but the technologies come and go like presidential administrations. I'm always a newbie at something. That's part of the fun. I'm always the guy who "doesn't know the difference between a variable and a browser" in something despite simultaneously serving on an "experts committee" in something else. I've lost count of the number of times I've spotted a "related question" on the SO sidebar while grazing for useful info, thought, Oh, yeah, what IS the answer to that one?, clicked it, and been informed by SO that they won't allow it to be answered because the question is "not constructive". Hunh?? The answer would have been constructive. Stopping people from answering a question that others are wondering about: THAT's what's not constructive.

Oh, but what if people are allowed to ask dumb questions, where dumb means questions that you already know the answer to? Well, then, it might be hard for you to find answers to your "smart" questions, right?

It sounds to me as though the solution is to worry less about dumb questions and more about the dumb search technology they have for matching incoming questions to their answers. With better technology than a bunch of tags and a 1980s-quality search engine, they wouldn't have to put so much effort into blocking questions and could put that effort into providing more answers.

</comment></comment><comment><USER13> Good article about finding out how to get motivated to learn something, but this has very little to do with coding aside from the context of the goal.

Aside from that, stuff like:

"Here's why I finally learned to code: I've been a web entrepreneur since I was eleven years old — for over sixteen years now..."

Makes me discount just about everything that was written. I just have a bitter taste left over from this massive ego leak.

<comment><USER4> Wasn't meant as an "ego leak" as you say. It was only meant to emphasize that I've been doing this for a long time and had many stops and starts. I was only really able to start learning when I figured out the when and why for me.</comment></comment>


How do you reason about a probabilistic distributed system? - <AUTHOR> https://ahelwer.ca/post/2020-04-15-probabilistic-distsys/ <comment><USER2> Statistics was one of the first classes I really struggled with in school.

When something grabs your attention, you start to suffer from Frequency Bias (like 'all of a sudden' everyone has the same car you bought or are going to buy). But in this case, everyone _really_ does suck at statistics. Which probably explains why when I learned what an actuary was and that they made about the same as an anesthesiologist, I wasn't that surprised.

The ironic part for me is that I kept thinking dependent variables were independent, whereas most of the people I observe think independent variables are dependent (gambler's fallacy, etc), and so vastly underestimate the potential for a 'bad run' of events.

When I still played WoW they posted an article about how they tweaked probabilities a bit to avoid frustrating people. Much of the questing in WoW is based on succeeding at an action a set number of times that has a probability of failure, which turns it into a normal distribution. Your buddy might have gotten lucky and finished a quest in two minutes. Meanwhile, there's a 1 in a million chance that you could still be working on that quest 5 hours later. And there are 10 million users...

So to prevent rage quitting, they made the success rate dependent. Which they can do because the scenario is fictitious. You can't do the same thing in the real world.

I'm not sure if there's a way through this or around it (except maybe "always hire a professional"). More likely in 10 years we will discuss how we should have just backed away slowly from these probabilistic situations and done something else.

<comment><USER3> My favorite version of this is that shuffle mode is _really_ hard to implement for music . You can't use random sort because it leads to too many repetitions of songs close together. When that happens people complain that your shuffle isn't random enough.

<comment><USER4> This, but spotify's shuffle is actually horrendous. It only plays songs within something like 50 of the one it's on. If you have a multi-hundred playlist you'll only hear the same 50 songs if you put it on shuffle and click the first song until it's finished with all 50 of those songs. Then it'll go to the next 50.

<comment><USER5> I am amazed that it has remained so bad for so long! I find it very frustrating and have resorted to copying playlists into a text line shuffler and re-adding the songs...

</comment></comment></comment></comment><comment><USER6> Very cool post. I like this point particularly:

> In this case we can't assume, in general, that the thread scheduler will > assign each thread processor time with uniform probability. That assumption > makes even less sense in a fully distributed system with processes running > on separate computers connected by a network.

I would love to see tools in this space mature some more. TLA+ has had a huge influence on how I approach distributed and concurrency problems, and a large influence on the industry in general. Modelling non-determinism (beyond the 'try all paths' approach), and assigning probabilities to outcomes, seems like the large missing piece needed to model real-world systems and protocols.

In systems with limited redundancy, for example, there's always a "transition to a failure state" path which tends to get ignored in modelling with tools like TLA+. That's because these tools can tell you that the whole thing _might_ fail (which is useful), but not the probability that the whole thing would fail (which is significantly more useful).

</comment><comment><USER7> Anyone with a software engineering background interested probabilistic model checking and learning automata should check out the work from ICSAS led by Prof. Lijun Zhang, Yong Li and Andrea Turrini. In particular their work on ePMC and ROLL are really excellent:

[https://github.com/ISCAS-PMC/ePMC](https://github.com/ISCAS-PMC/ePMC)

[https://github.com/ISCAS-PMC/roll-library](https://github.com/ISCAS-PMC/roll- library)

Storm is another probabilistic model checker from RWTH Aachen, developed Christian Hensel, Sebastian Junges, Tim Quatmann, Matthias Volk et al. at , which has a nice Python API:

[https://www.stormchecker.org](https://www.stormchecker.org)

</comment><comment><USER8> One thing I've started doing with my PRISM models that helps a lot is using formulas as a poor man's strings. Like instead of

         // Not-yet-flipped: 0, heads: 1, tails: 2

I'd do

        formula unflipped = 0;
        formula heads = 1;
        formula tails = 2;

Another thing that helps a lot is writing templates and then writing scripts that write out the spec for you. I'm doing this with a queueing problem and it's godsent.

</comment><comment><USER2> One of the interesting things about Raft that doesn't get focused on much is that strictly speaking Raft does not require that all nodes be able to see each other, just that some nodes can see all of the other nodes.

One of the reasons we use consensus protocols is because with enough hardware involved, the machines cannot even agree about which machines are up and responding to traffic.

In Raft, a leader has to be able to communicate with more than half of the cluster. But the followers don't strictly have to be able to see each other (and if I understand the election protocol correctly, not even during election). The leader is the hub of a wheel, not a member of a star-connected graph, and as long as the 'spokes' are all working, there is no partition. Even if individual links keep disappearing.

Is that true of the snowflake protocols mentioned here? Or do they require a star topology to mostly be intact?

<comment><USER6> > One of the interesting things about Raft that doesn't get focused on much is > that strictly speaking Raft does not require that all nodes be able to see > each other, just that some nodes can see all of the other nodes.

The same is true of Paxos. If you have a common view of participant health, then consensus is much easier than in the general async model, so Raft and Paxos (and Viewstamped Replication, etc) are like this for a reason.

I don't know about SnowFlake, but there is a very interesting tradeoff here between graph connectedness and resilience to the failure of masters (e.g. if the topology is really a star, then you have no real redundancy and you may as well have a single master rather than using consensus).

</comment></comment><comment><USER9> I found this paper helpful _"Debugging Distributed Systems with Why-Across- Time Provenance"_

[https://mwhittaker.github.io/publications/wat_SOCC18.pdf](https://mwhittaker.github.io/publications/wat_SOCC18.pdf)

</comment><comment><USER10> Couldn't message you on linkedin for some reason (looks like they've locked the messaging feature to premium now??) - but just FYI, looks like the twitter account linked on your blog in the footer is owned by someone else.

<comment><AUTHOR> Oh thanks! Looks like another Helwer reclaimed it. I think you can message people on linkedin as part of a connect request maybe?

</comment></comment><comment><USER11> That's a worthy idea to learn. I've actually found it quite trivial, which means I'm either too smart or too dumb to understand it. That MDP diagram reminded me of the Feynman's path integral model of electrons: the double slit experiment looks as if electrons take all possible, within constraints, paths and the interference image is the sum of them. Except that in the MDP diagram, parameters of the two slits can vary, within some boundaries, and that varying changes the interference image, so the question that MDP answers is "how the interference image can change if we vary the slits parameters within these boundaries"?

<comment><USER8> > That's a worthy idea to learn. I've actually found it quite trivial, which > means I'm either too smart or too dumb to understand it.

 _Or_ that Andrew is very good at explaining things :)</comment></comment>