Source code of ASP.NET - <AUTHOR> https://github.com/aspnet <comment><USER2> Scott Guthrie is amazing. He's behind all the open source projects. Some of them are even taking pull requests. Entity Framework, MVC, ASP.NET, etc are all popular and open source.

<comment><USER3> Yep - he's the guy that got me into .NET mvc and alt.net... which turned out to be a gateway drug to Ruby on Rails then Scala. (Genuinely) Thanks Scott!

<comment><USER4> So because of .Net MVC you're now programming on the JVM?

</comment></comment></comment><comment><USER5> For those curious, Microsoft went with the Apache 2 license: [http://www.asp.net/open-source](http://www.asp.net/open-source)

</comment><comment><USER6> Folks, not much of this is new. Both Entity Framework and ASP.NET MVC were already open source for quite some time [0][1]. All the other repos are nearly empty.

The only real news here is that, indeed, ASP.NET vNext is going to be developed in the open, or at least to some extent. But right now, not a lot of code seems to be released that wasn't already out there (although I did not go through all the repos).

I don't think you should expect to find many current/legacy parts of ASP.NET that aren't open yet: this seems to be mostly for new stuff.

Finally, don't forget that "ASP.NET" doesn't seem to mean a lot (anymore): it's basically Microsoft actively shipping the org chart. Anything that's web related and from MS appears to get tacked "ASP.NET" on front of it. Cause really, what does ASP.NET MVC, basically a pretty uninspired Rails port to C# (and just an open source library like any other), have to do with "active server pages"?

[0] [https://aspnet.codeplex.com/wikipage?title=MVC](https://aspnet.codeplex.com/wikipage?title=MVC) [1] [https://entityframework.codeplex.com/](https://entityframework.codeplex.com/)

<comment><USER7> "Uninspired rails port" is a far cry from accurate. I've worked with both rails and asp.net mvc. I started with rails in the 1.x days but also had clients that used .net. I despised web forms for a variety of reasons so I jumped on the mvc bandwagon as soon as the fist community preview was released.

Hack, Connery, Hanselman, & Guthrie openly acknowledge that rails was a source of inspiration in their book [http://www.amazon.com/gp/product/0470384611?ie=UTF8&tag=scob...](http://www.amazon.com/gp/product/0470384611?ie=UTF8&tag=scoblo04-20&linkCode=xm2&camp=1789&creativeASIN=0470384611) but so was Spring, among others. Above all, I think the .net mvc framework was trying to capture the fasted-paced, fly-by-the-seat-of-your-pants essence of the rails way more than anything else. In doing so, they unearthed a lot of awesome concepts previously unknown to most .net developers like domain-driven design, tdd/bdd, dependency injection, scaffolding; old hats to Java and ruby guys.

The mvc .net team did an amazing job of breaking stride with the asp.net mentality of letting the framework do as much as possible. Yet .net was still very much confined by it's own structure, forcing the mvc framework to remain rigid. They opted for configuration over convention which, in my opinion, was by far the biggest differentiator in rails to the mvc frameworks that preceded it.

<comment><USER6> They also filled it up to the edge with Ruby-like magic all over the place.

ASP.NET MVC is the _only_ place I've ever seen in mainstream compiled languages where the code can break in untraceable ways if you change the _name_ of a method parameter (f.ex. for controller actions). Or where models suddenly don't get data because you forget to add "{get; set;}" to the code somewhere. Absolutely no way to find out why it went wrong. The data just isn't there.

Sure, you can learn this and then not make the mistake again, but the reason I don't use Ruby or Python much anymore is because I've had with with having to spend a full day going through a framework's source code to find out why my bug is a bug. In an ecosystem and language like C#, you expect things to either work or to get a pretty OK error message, preferably at compile time. The more magic, the more time I waste tracing bugs.

What's the point of using a compiled language if half your code is a dynamic viewbag of string keys and liberal JSON parsers that just ignore fields it doesn't expect or can't fill?

It's just Ruby, but then in Visual Studio.

<comment><USER8> > Sure, you can learn this and then not make the mistake again, but the reason > I don't use Ruby or Python much anymore is because I've had with with having > to spend a full day going through a framework's source code to find out why > my bug is a bug. In an ecosystem and language like C#, you expect things to > either work or to get a pretty OK error message, preferably at compile time.

No, that's what _you_ expect. I expect that the traits of frameworks you describe to be features of particular frameworks and to be largely independent of language, except that in languages that don't provide introspection/metaprogramming facilities that enable them, you probably won't find them (probably, because usually there may be elaborate ways of hacking around language limitations to do magic, and then even examining the source code will make the magic less obvious.)

You can easily have magic-free frameworks in Ruby or Python, and easily heavy- magic frameworks in most (mostly) statically-typed compiled languages like C# and friends as long as they have some introspection/metaprogramming facilities (and optional dynamic typing like C# makes this more viable, too.)

If you want to choose a language so as to avoid any need to examine the traits of particular frameworks so that you don't run into a heavy-magic one, you are going to need a much more limited language than C#.

> What's the point of using a compiled language if half your code is a dynamic > viewbag of string keys and liberal JSON parsers that just ignore fields it > doesn't expect or can't fill?

The point is the other half of the code. (The part that, in Python or Ruby you might be tempted to drop down to a C or Java [for JRuby] extension to do.)

</comment></comment></comment></comment><comment><USER9> One should note that this is the "new" ASP.NET. The old version, the one explicitly tied to IIS, is not and will probably never be open source software.

They're building a new stack from the ground up. Which is the only way, really, to make it "cross platform".

<comment><USER10> The old one was open sourced a couple months (years?) back and is on CodePlex. [http://aspnetwebstack.codeplex.com/](http://aspnetwebstack.codeplex.com/)

<comment><USER9> Not quite: that's "ASP.NET MVC", the razor view engine, "web pages", and some other libraries like Entity Framework and SignalR. Technically these are just libraries built on the closed-source ASP.NET stack, colloquially known as System.Web, which is essentially IIS.

<comment><USER11> It's at least available to view the source:

[http://referencesource.microsoft.com/System.Web/xsp/system/W...](http://referencesource.microsoft.com/System.Web/xsp/system/Web/UI/Page.cs.html#System.Web/xsp/system/Web/UI/Page.cs#a7e11608d83dac42)

<comment><USER12> That's not open-source.

</comment></comment></comment></comment></comment><comment><USER13> The URL of that link is a pretty surprising thing, in and of itself.

<comment><USER14> Parts of Microsoft have been using github for quite a while now:

[https://github.com/msopentech](https://github.com/msopentech) [https://github.com/Azure](https://github.com/Azure)

The Azure SDK has been there since 2012.

I agree that even now it still seems kind of odd when Microsoft embraces open source technologies, and the company is very big so their support tends to be oddly lumpy (generally better among the groups working on products that are directly related to networking like ASP.NET, Azure, etc) but they've been on this path for quite a while now.

<comment><USER15> Reactive extensions too: [https://github.com/Reactive- Extensions](https://github.com/Reactive-Extensions)

</comment></comment></comment><comment><USER16> Is this snippet of code bad? I was just randomly browsing [https://github.com/aspnet/KRuntime/blob/dev/src/Microsoft.Fr...](https://github.com/aspnet/KRuntime/blob/dev/src/Microsoft.Framework.DesignTimeHost/ApplicationContext.cs)

            private bool IsDifferent(ConfigurationsMessage local, ConfigurationsMessage remote)
            {
                return true;
            }

            private bool IsDifferent(ReferencesMessage local, ReferencesMessage remote)
            {
                return true;
            }

            private bool IsDifferent(DiagnosticsMessage local, DiagnosticsMessage remote)
            {
                return true;
            }

            private bool IsDifferent(SourcesMessage local, SourcesMessage remote)
            {
                return true;
            }

<comment><USER17> I should have put a TODO in there :)

<comment><USER18> It happens in the best families... :)

</comment></comment></comment><comment><USER19> Some clarification: This seems to be only for demos and samples, not really the home of source code to cooperate on.

"The Home repository is the starting point for people to learn about ASP.NET vNext, it contains samples and documentation to help folks get started and learn more about what we are doing." [0]

"The GitHub issue list is for bugs, not discussions. If you have a question or want to start a discussion you have several options:

\- Post a question on StackOverflow \- Start a discussion in our ASP.NET vNext forum or JabbR chat room [1]

ASP.NET vNext includes updated versions of MVC, Web API, Web Pages, SignalR and EF... Can run on Mono, on Mac and Linux. [2]

MVC, Web API, and Web Pages will be merged into one framework, called MVC 6. MVC 6 has no dependency on System.Web. [3]

[0] [https://github.com/aspnet/Home](https://github.com/aspnet/Home)

[1] [https://github.com/aspnet/Home/blob/master/CONTRIBUTING.md](https://github.com/aspnet/Home/blob/master/CONTRIBUTING.md)

[2] [http://blogs.msdn.com/b/dotnet/archive/2014/05/12/the- next-g...](http://blogs.msdn.com/b/dotnet/archive/2014/05/12/the-next- generation-of-net-asp-net-vnext.aspx)

[3] [http://blogs.msdn.com/b/webdev/archive/2014/05/13/asp-net- vn...](http://blogs.msdn.com/b/webdev/archive/2014/05/13/asp-net-vnext-the- future-of-net-on-the-server.aspx)

</comment><comment><USER20> Not all of ASP.NET though...notably absent: Web Forms.

<comment><USER21> Trust me; that's a good thing. Nasty, deeply misguided platform - whoever came up with the idea of PostBack and trying to make the web look like VB6 is _definitely_ not on my Christmas card list. Ties you in knots trying to make the web something it fundamentally isn't.

I'll be quiet now, and get back to working on my MVC code. The day when I can finally stop having to work on WebForms code too will be a happy one :-)

<comment><USER22> Not a rhetorical question: What's so wrong with Web Forms?

Postback? That's really part of HTTP. What the browsers send back to the server is as specified by HTTP, not Microsoft or Web Forms.

Viewstate? Okay, it's a bit of a tricky thing, but really can mostly ignore it. Else it provides a somewhat useful service.

Controls? Yes, for each HTML 'control', there is an ASP.NET class so to send the HTML for the control to the user, get an instance of the class corresponding to the control, assign values to the properties, attach the instance to a big tree that gets walked by the code in one of the ASP.NET 'events', maybe PAGE_PRERENDER, and move along. Why is this so bad?

Web Forms is my first and so far only way I've written Web pages. Explain what is wrong with Web Forms and what is much better and why?

<comment><USER23> IMO, there was nothing horribly wrong with WebForms itself when it was introduced -- So long as you were writing your HTML by hand and using HtmlControls rather than the drag-n-drop stuff.

ViewState was far better than other frameworks that shoved the client state into a server session object and _broke the Back button_. Plus the clients were saving state instead of wasting server memory. If it got too ugly, you didn't even have to use it, the http variables were still there.

Remember this was all designed back when Netscape 4 was a popular browser and any Javascript was considered exotic. Of course we have much better way to do things now, the WebForm approach broke down hard as soon as it encountered AJAX. But originally it was fine.

<comment><USER24> There are AJAX controls for webforms, so it hasn't really "broke[n] down hard"?

Drag an AJAX control on the form, and whatever is in there, that part of the page will be ajaxed.

<comment><USER23> I should have added a disclaimer that I haven't worked with web forms in many years, so my commentary is probably not the most infomred. The ajax controls always seemed a bit ugly to me.

</comment></comment></comment></comment></comment></comment><comment><USER25> Is this admission that codeplex is dead?

<comment><USER26> I don't think so, the ASP.NET team has been releasing code to github for while. same as azure, most of their SDK was released to github,

I don't think there is a mandate for all MS project to be on codeplex which is somewhat surprising.

</comment></comment><comment><USER27> But why are they looking if their code runs on Mono [1] ?

[1] [https://github.com/aspnet/FileSystem/blob/dev/src/Microsoft....](https://github.com/aspnet/FileSystem/blob/dev/src/Microsoft.AspNet.FileSystems/PlatformHelper.cs)

<comment><USER28> [http://www.hanselman.com/blog/IntroducingASPNETVNext.aspx](http://www.hanselman.com/blog/IntroducingASPNETVNext.aspx) "... Oh, and by the way

ASP.NET vNext (and Rosyln) runs on Mono, on both Mac and Linux today. While Mono isn't a project from Microsoft, we'll collaborate with the Mono team, plus Mono will be added to our test matrix. It's our aspiration that it 'just work.'"

Thanks for pointing that out though, I learned something new today! [http://msdn.microsoft.com/en- us/library/dd642331(v=vs.110).a...](http://msdn.microsoft.com/en- us/library/dd642331\(v=vs.110\).aspx)

</comment></comment><comment> V-2 ICanHasViewContext :) (Mvc / src / Microsoft.AspNet.Mvc.Core / Rendering / ICanHasViewContext.cs)

</comment><comment><USER29> Oh, whoever did this is gonna be in big trouble. Heads are gonna _roll_.

…Hmm? What do you mean "they meant to do that"?

</comment><comment><USER30> Too little, too late (imo). I'll think about it again once they have visual studio and all the good things running on *.nix.

It's too much of a pain to get anything to work with a .net project, and then deploy on anything other than IIS.

<comment><USER31> Too little? Biggest change for ASP.NET from release of ASP.NET! "Too much of pain" was the first (and last) thing I said when trying to configure ruby on ubuntu. Or tried to download some app and run it.

<comment><USER30> I guess all those thousands of Rails apps running on Ubuntu had some kind of magic or secret knowledge to get that working. Going open source and posting some libs on Github is 'Huge'? That's kind of funny considering how much is out there, top notch, and did it way before MS did, and yet, it wasn't "huge" for them.

<comment><USER32> Its huge because MS has never embraced open source like they are now.

Flying cars would be pretty huge even though planes have already been flying for a while...</comment></comment></comment></comment>


Free idea: candy aisle - <AUTHOR>

create an e-commerce widget that formats vertically for inclusion in blogs and on web sites. (leftnav, rightnav) a good place to sell you e-books, t-shirts, etc.<p>make it free to use and pick up a % + transaction fee. hook it up with amazon and others with affiliates programs for those without things to sell. <comment><USER2> there's amazon widgets and blinkcart

<http://widgets.amazon.com/> <http://www.blinkcart.com/>

<comment><AUTHOR> i'm still checking out amazon, but blinkcart is too, well, blinky for my tastes. i'm not a big fan of the lightbox effect and when the store pops up it's loud.

</comment></comment><comment><USER3> I think I saw something on TechCrunch over the summer about a company that does exactly this.

<comment><AUTHOR> market validation. you should be their competition.

</comment></comment><comment><USER4> this is kind of neat. if i could easily throw up something like this on the right side of my blog where visitors could purchase books that I'm recommending I would definitely do it.

<comment><AUTHOR> you should do it them. i don't have the time to do it myself, but would be a willing first customer.

</comment></comment><comment><USER5> check out <http://rightcart.com/>

<comment><AUTHOR> rightcart looks like it might work, but it's not apparent how the pricing model is structured. i assume i have to sign up to get that info. (and i'm not paying a buck for a "wink" - whatever that means.)</comment></comment>


Ask HN: Business Ideas, Profit Off Trump Presidency - <AUTHOR> With the new administration it seems that there is and will be tremendous upheaval as well opportunity over the next 4 years.
I am wondering what business ideas people have (whether they plan to implement them or not is not the issue) as a result of a change that is unlike any other we have seen. [1] . Thoughts? Ideas?
Not looking for a political discussion but startup ideas which take advantage of people's uncertainty and/or hope for the future.
[1] Iphone release in 2007 pales by comparison. <comment><USER2> Financial Tech companies are buiding apps to track DJT's twitter feed and based on his tweets, they may go long/short on stocks. For example, he talked about Pharmas "getting away with murder" and this happened:

[https://twitter.com/CNBCnow/status/819220410340405248/photo/...](https://twitter.com/CNBCnow/status/819220410340405248/photo/1?ref_src=twsrc%5Etfw)

<comment><USER3> This got me thinking - Would it be illegal for Twitter to institute a delay between when Trump's tweet was "Sent" and when it is actually published, and in the intervening time, do something with that information?

</comment></comment><comment><USER4> \- a platform to publicly present all business affiliations (and side- earnings) of any politician. (Probably not-for-profit / donations, If it something like this does not already exist) for more transparency

\- an autonomous wall-construction-bots business ;-)

\- anything which takes advantage of rising sea levels (like boats, waterproof housing on smaller areas, natural desaster warning and evacuation systems for private people or gvt) and something to handle the following mass migrations

<comment><USER5> \- Your business affiliations idea would be great, but people like Trump (and basically anyone rich and motivated to hide information) have so may strategies to employ to create multiple layers of opaque barriers that it would be nigh impossible to do this with provable accuracy. And besides, as we are seeing right now, "the people" can't be bothered with such concerns. Just let a guy be rich and do what he wants, right?

\- Your wall building idea is good though! Mix up some self driving AI with manufacturing robots that 3d print blocks out of whatever local resource they can grind and collect, follow some GPS waypoints, and you've got an anti-alien wall builder! You almost certainly could get that company funded, and you probably would secure some contracts. And if we're all lucky, your tech would get used by more mundane (and useful) projects like building low cost housing for poor people in desolate lands.

\- I forget where I read this recently, but I read a good expose about the people who profit from the global refugee crises. So if you just want money, then I'm sure there are opportunities to commercialize and scale the relocation of refugees. Maybe you could approach it like the doctors/lawyers who created the boom in scooters (or Rascals, if you're a SouthPark fan). They figured out how to work the disability or medicare system, and some of them operated legally while making a ton of money. Or take the US auto makers as example back when they pushed the business deduction loophole which essentially started the large SUV business. Suddenly you wanted your vehicle to be heavier than necessary so you could meet the loophole requirements for gross vehicle weight.

Now what I would do is try to combine fear, exclusivity, and disaster preparation into a product that would be attractive to rich people. I mean, they already have financial assets distributed offshore and in ways that provide relative security during volatile times, but their personal physical safety is still always a concern (unless they choose to live in a bunker.) I understand that they are flocking to New Zealand as a haven - it's far away from all the dangerous poor people, and it's just a beautiful place that is generally for sale. So maybe create an emergency evacuation insurance business. They pay a small monthly fee (say 10k), and when the local shit hits the fan you whisk them away to a nice safe place. It's probably best to actually work out the details of how this could be accomplished, but on the other hand you could just roll like big businesses and just apologize and take a small financial judgement when you fail to deliver on your promises.

</comment></comment><comment><USER6> Not nesseceraly more business ideas. I would say for sure, fewer taxes will lead to more opportunities and more money back in our pockets. Which means more investment opportunities for up coming ideas.

<comment><USER5> He said he wasn't looking for a political discussion. But since you insist on repeating the lower taxes = more opportunity, I would suggest you look at historical American tax rates relative to growth and income. Or you could research the last four years of California vs Kansas to see how taxes can affect economic performance.

<comment><USER6> Comparing California to Kansas is indeed a smart thing to do...

</comment></comment></comment><comment><USER7> A fact-checking platforms' checking platform?

</comment><comment><USER8> The Trump administration is giving bloggers and other online 'news outlets' previously unheard of press access and credentials. I would find these blogs and 'news' sources (I personally find their journalistic pedigree laughable) and aggressively track their headlines and content. Scrape all data and train neural networks on them to generate headlines and content. Either hire a cheap college student to do some quick once-over editing or do it yourself. Then, automate a publishing pipeline - it could be as simple as Lua script that samples from the NN and then pushes to a wordpress or blog. You can do all of this on a $750 dollar computer (just splurge on the GPU). The real trick is crafting the facebook posts. So I would watch to see what breaking news alerts happened and then tweak the generated content based on that and then dump a few dollars to promote the post that had a great headline + FB commentary, not to mention a catchy picture. Once you build an audience, ad money will roll in and I don't just mean AdWords. Focus on native content and tweak your generation algorithm for each brand sponsor you acquire (trust me, if you have a few thousand uniques a day you'll have people knocking on your door esp if its a conservative slant since more small business owners in America tend to lean that way). I've played around with generating Breitbart headlines and the results are sometimes scarily close to home. It's also key to generate "think pieces" and other opinion material so that way you can produce content that isn't necessarily "news" (and thus less reliant on 'timely' data which is expensive to acquire since it takes time to train the NN on new data) but are still able to propagate repeatable viewpoints/headlines i.e. 'facts' in our time, which is how you build your audience and revenue stream.

The genius part of this is that even if your cover is blown, you will be hailed as a thought leader because of your subversive enterprise. It has all the requisite crossover buzz: machine learning, fake news, alternative facts, 'bubbles', distrust of media etc. You can easily pick up some television and other media spots not to mention the tell-all piece for Vice or Esquire.

For inspiration and more information, read up on Vladislav Surkov. Also check out the latter half of the videogame Metal Gear Solid 2: Sons of Liberty, which not only predicted the rise of memes as political discourse, but also does an excellent job examining media disinformation techniques (in this case, the hysteria of Y2K) and the use of AI to control public conversation. Have fun.

</comment><comment><USER9> pro trump / anti trump t-shirts is first to come to mind.

<comment><USER10> He must have some sort of trademark on the name</comment></comment>


Infograph: The 80/20 Guide to Finding the Perfect Ecommerce Platform - <AUTHOR> http://ecommercerules.com/guide-to-finding-the-perfect-ecommerce-platform/

<comment><USER2> Awesome infograph. I was trying to figure out what would fit me best since I currently have a 9-5 and now that I see all the option, Shopify makes the most sense. Would love to see a side by side comparison of Shopify and Magento in a future infograph if you can!

</comment><comment><AUTHOR> Thanks for the comment. Yea, our goal was to approach it from the entrepreneur's angle. Instead of going through the pros and cons of each platform, I wanted to start with the entrepreneur in mind and what will work best for them.

I like the "innovator"

</comment><comment><USER3> I love the unique approach to the infograph. My favorite persona was the "Lifestyle Designer". It's something that I aspire to be, similar to my friends Cody and Sean Ogle.

EcommHub seems useful. I'll look into it.</comment>


$1M to build decentralized social networks - <AUTHOR> https://www.requestforsocialnetworks.com/ <comment><USER2> Why use blockchain? Doesn't that actually give you less control?

Isn't the point of a blockchain to keep a ledger of the changes? So how can you delete anything without rebuilding the entire chain? Being decentralized in this case just means that now everyone has my data. Sure, it is encrypted, but are we just going to say what is secure today will be secure tomorrow?

My understanding of blockchain is that it is meant to be tamper proof. Which is nice for things like tracking votes or ensuring the integrity of things, but with my personal data I WANT to have the power to tamper with it. These two ideas seem to be at odds.

If I'm misunderstanding, maybe somebody can educate me.

<comment><USER3> I had the same thoughts. I'm really getting sick of seeing applications move to the blockchain that have absolutely no business being there. Sure, a ledger makes sense...you never want to remove or change the records.

The blockchain is a really terrible medium for a social network. Maybe some kind of hybrid where the blockchain entries point/link to a centralized (or federated) location, but, then, why not just build your own protocol that doesn't use the blockchain? Just build it over Matrix or something.

What does the blockchain provide, other than a buzzword?

<comment><USER2> > Maybe some kind of hybrid where the blockchain entries point/link to a > centralized (or federated) location...

Well what makes me uncomfortable about this type of data being decentralized is that I want to guarantee a delete or edit. To do that on a decentralized network you need to have a way to guarantee that those edits propagate to machines that you do not control. Is there a way to ensure this?

<comment><USER4> You can't guarsntee that with any service. Even if you trust the website to delete it, it can still be cached elsewhere.

<comment><USER2> I'm not saying that the data can't exists anywhere. You can't prevent a state actor from caching the entire internet or a stalker from saving all your content. BUT you can prevent someone who has not done that already. Which is more common.

</comment></comment></comment></comment></comment><comment> a-dub So first I would suggest some sort of global service for translating user friendly names to internet addresses. Something that might have a bit of centralization at the top, but ultimately a decentralized network of authority of sub-namespaces and protocols for building servers that can translate these names to addresses. This system should also support attaching small bits of metadata to these names.

On top of this I propose building a protocol for store and forward messaging. Something where it is possible for anyone to develop a server that speaks this protocol. Instances of these servers can be registered in the namespace above and this is how these servers can find each other to push data around. Anyone should be able to run these servers, providing service just for themselves, small communities or even large organizations, businesses, institutions or resold commercial services.

Lastly I propose an application layer on top of this. This application layer has two components:

1) A suite of standard protocols for user agents to contact these servers and download user data 2) A suite of standard protocols for rich content, encryption or group distribution

From these pieces, it would be totally possible to build a giant decentralized social network that could present the same sort of data we see on social networks. While things could start with simple messaging, similar features to what we find on social networks could be built.

Of course there's the problem of bad actors and abuse, but it seems this could be solved by merely blocking all communication except for that from a list of known senders... We could call this the friends list.

It would be a lot of work to build and get right, it's a shame nothing like this exists today.

<comment><USER5> > So first I would suggest some sort of global service for translating user > friendly names to internet addresses.

You can't do this without having a central authority (which people don't want to be beholden to), making names cost money (or be otherwise difficult), or accepting squatters. People aren't going to pay for names and you've gained nothing if you centralize the name store. People aren't going to accept the immobility of federation like they do with email (and it still gravitates towards centralized authorities).

I think we're just going to have to accept large hard-to-gen and hard-to-read identities (e.g. base32'd pub keys like onion service names) and we each "tag" friendly names to them locally as we choose.

<comment><USER6> If you can share those tags (and why not?), now you have decentralized "authorities" for names. "Squatting" is only a problem if someone else can take an identity after I've used it within the service. Squatting on previously-unused-in-the-service IRL identities doesn't matter at all.

<comment><USER5> > If you can share those tags (and why not?), now you have decentralized > "authorities" for names.

Until an indexing service becomes a defacto standard, once again making it centralized. This is what I meant about federation (i.e. sharing your name lists) gravitating towards centralization.

> Squatting on previously-unused-in-the-service IRL identities doesn't matter > at all.

It does when I can register thousands and thousands of names. This is why it must be too difficult for squatters and not too difficult for users.

<comment><USER6> There isn't a point to generating thousands and thousands of UUIDs, but it's only the UUIDs that need to be reserved after use. The human-readable names needn't be universal. If too many of your tags point to squatters, then no one will want to share them.

</comment></comment></comment></comment></comment><comment><USER7> Nobody needs a social network anymore, whether it is decentralized (Mastodon, Diaspora) or centralized (Facebook, Twitter). I think the social media bubble burst a long time ago and we just didn't realize it. I also have a Mastodon account, but used it only for a short time. I speak now only for myself personally, social networks bore me quite and I have no more interest to sign up somewhere.

<comment><USER8> _Nobody needs a social network anymore_

This sort of comment is why people in tech are very often seen as being incredibly bad at solving non-trivial social problems by people outside of our industry. Somewhere between a third and a half of _all the people on Earth_ see enough value in social networks to use one regularly. There are plenty of problems with the way networks work, and what they do to our mental health, but the notion that no one should use them any more is plain stupid.

<comment><USER9> Somewhere between a third and a half of all the people on Earth see enough value in social networks to _have signed up for one at some point_.

Somewhere between a third and a half of all the people on Earth _use a product designed to addict them_.

I agree in general though - they can be useful, and they can fill a real purpose.

<comment><USER10> I think a better argument is that between a third and a half of all people on Earth see enough value in some elements of social networks to sign up for them.

A lot of people I know only use Facebook for messenger. Some only use it for private groups. Some for events. Some for the newsfeed. Those people use twitter, instagram, whatsapp, snapchat, or discord for the features they don't use on Facebook.

IMO instead of looking for a service which could distribute the back-end servers of a single social network we should be encouraging the distribution of features, and make sure they can interact with each other smoothly.

</comment></comment></comment></comment><comment><USER11> If I had the money, I'd pledge $1B to erase social networks from our lives.

<comment><USER12> If you feel that strongly, stop using them. I stopped using Facebook a year ago, and now my most social sites are YouTube and reddit. Neither are as toxic for me as Facebook was. You won't save others, but it's easy to save yourself.

<comment><USER11> I did stop using them, years ago. YouTube I tolerate because I disable comments. Reddit is a cesspool.

<comment><USER13> There are several valid places to draw the line between what is and isn't a social network, but aren't there enough similarities between Reddit and HN to not draw it between the two? Subreddits is the main difference I think, but that sort of thing can't be a requirement because Twitter doesn't have something similar.

<comment><USER11> Sure, but HN is civilized, Reddit is not.

</comment></comment></comment></comment></comment><comment><USER14> Just stop now and give your money to Beaker Browser

[https://beakerbrowser.com/](https://beakerbrowser.com/)

<comment><USER15> That's a really interesting project. Are there any plans to incorporate more human readable addresses? I can see how this could be misused by forking a financial institution website and imperceptibly change one letter.

<comment><USER16> The spec for using DNS is in the process of being written up. Beaker is already using the .well-known part of the spec. See [https://github.com/pfrazee/DEPs/blob/e391a04d9a96ddaf3e5a6fd...](https://github.com/pfrazee/DEPs/blob/e391a04d9a96ddaf3e5a6fdb894aff64a7f6e946/proposals/0000-dns.md)

</comment></comment></comment><comment><USER17> One of the questions is: "describe your social network in 50 _characters_ or less."

"Facebook but decentralised" is already 26 characters so that seems like a bit of a tight limit. I suppose it'll help find people who have any marketing nouse, which is the actual challenge for a project like this, not technology.

<comment><USER18> Last question:

"Please implement the social network in 5 weeks or less, GitHub link to code too please"

<comment><USER19> That's super ridiculous. You wouldn't want to use a decentralized social platform in a production environment that's only got 5 weeks of development work in it.

As an aside, do the submissions _have_ to use the Blockchain? There are already a ton of good decentralized social platforms that make no use of a blockchain whatsoever, and the majority of them inter-federate with one another.

<comment><USER18> Sorry if it wasn't clear that it was a joke.

A lot of these ICOs want developers to invest their money AND build the product for free.

I agree, there are a lot of good non-blockchain solutions to this... like most ICOs

</comment></comment></comment></comment><comment><USER20> Blockchains are good for one thing and one thing only. Censorship resistant money exchanges. That's it.

These guys launched the same concept last year. For $25m and they literly have nobody using the platform.

[https://bitcoinmagazine.com/articles/blockstack-partners- vcs...](https://bitcoinmagazine.com/articles/blockstack-partners-vcs- launch-25-million-blockstack-signature-fund/)

</comment><comment><USER21> How does blockstack compare to alternatives like Dat ([https://datproject.org/](https://datproject.org/)) and IPFS ([https://ipfs.io/](https://ipfs.io/))?

<comment><USER22> Dat and IPFS are decentralized file systems. Instead, blockstack is a network for decentralized application. It offers identity, storage and a way to transfer tokens. With blockstack you can easily create apps where users can sign-in in seconds and store all their data where they want.

<comment><USER23> Dat and IPFS can be used to build applications too -- checkout out e.g. [https://peerpad.net](https://peerpad.net) and the things on [https://hashbase.io](https://hashbase.io)

<comment><USER24> To add to that, here's a whole list of websites and apps built with Dat

[https://github.com/beakerbrowser/explore](https://github.com/beakerbrowser/explore)

<comment><USER25> Similar list for IPFS projects: [https://github.com/ipfs/awesome- ipfs](https://github.com/ipfs/awesome-ipfs)

</comment></comment></comment></comment></comment><comment><USER26> So why not just throw the $1M at Diaspora or Mastodon?

<comment><USER27> They use their own auth/storage systems. Browserstack is simply giving a tiny amount of the money they raised to build their own platform.

If I was browser stack I'd be offering a lot more than $1 million considering how important this is to their platform.

</comment></comment><comment><USER28> They want it built on their tech here: [https://blockstack.org/](https://blockstack.org/). "New Internet" aye? Is this an based on an episode of _Silicon Valley_?

<comment><AUTHOR> Muneeb Ali, Blockstack co-founder here. I'm a technical consultant to the Silicon Valley show (season 5) along with my co-founder Ryan. So yes there is a link to the show but the project is not based on the show :-)

Blockstack was in the R&D phase until early 2017 (building the core tech & infrastructure), we launched our browser last summer and now have decentralized apps built on the platform that are live. These apps can scale to millions of users today. We're excited about enabling developers to build new apps like decentralized social networks.

<comment><USER29> Quick question, do you really think $100k is enough money to build a social network? If so, how much time and people is needed for such task?

P.S. I'm convinced it's not enough money. It will take over a year just to have something working and usable and it will take more than 5 people to do that.

<comment><USER30> I built Mastodon alone for a year for like $600/mo until it got popular. Now I'm getting more ($3k/mo from Patreon) but I don't think I'm even anywhere close to hitting $100k. So it's possible :P

</comment></comment></comment></comment><comment><USER31> I still believe this approach is not optimal in the practical sense. I believe the issue is having a common and standard source of truth for user metadata. Social platforms are secondary to this problem.

I would suggest we come up with an authentication system that can scale across several small technical groups of people, perhaps something like OpenLDAP. Then lets put a few gateways in front of it like SAML2/OAuth/whatever. Set up replication between a few technical folks in a small circle of trust. If a friend leaves the circle, exclude their node from replication.

Now put whatever trendy web app, chat app, misc app in front of that authentication. The apps can come and go, but the authentication data, email contacts, phone numbers, all maintained in one authentication system and highly replicated.

Each application should be coded in such a way that users own their data and are prompted to download backups. Data retention policies should be very obvious to the end user and they should know this is not a long term archive for their binary data.

Each small group of technical folks share their platform with their circle of technical and non technical friends. Each geek pulls a copy of the backups in the even a friend wants to leave the circle. Different geeks in the circle can manage different pieces of the platform or different applications.

At least, that is how I would approach this problem. YMMV.

</comment><comment><USER5> Like everyone else, I'm building one. But I'm not hung up on distributed storage or any of that. It's just a simple way for people to host social network rooms from their always-on home computers if they want. The gist: app w/ statically compiled Tor (separate lib started at [0]), room config flexible enough to build different social network types, communicate via gRPC over Tor onion services (protos at [1]), and make it so dead simple that it just works (mobile remotes to home onion service).

I think people are worrying so much about network and storage and uptime for ephemeral machines that they are missing the forest for the trees here. Just get a decent platform and iterate from there. At first, you don't have to federate, conform to a protocol, distribute data, etc. But if you are building these things, why not at least offer anonymity?

0 - [https://github.com/cretz/bine](https://github.com/cretz/bine) 1 - [https://github.com/cretz/yukup/tree/master/yukup/pb/proto](https://github.com/cretz/yukup/tree/master/yukup/pb/proto)

</comment><comment><USER32> The big problems in social media are already decentralized. Tribalism (also termed as filter bubbles), the spread of false information, and outrage as a mechanism of virality all originate with people in a distributed fashion.

Facebook selling ads based on demographics is centralized but it seems to me like a small part of what's messed up about social networks.

</comment><comment><USER33> There is an interesting experiment in the Bitcoin (Cash) camp called Memo.cash, which mimics early Twitter using Bitcoin's blockchain. Posts need to spend a few satoshis to be posted and you cal also tip others. Pretty neat!

<comment><USER34> Didn't Siraj Raval make something like this in his book on dApps?

</comment></comment><comment><USER35> It exists now, today. Use it.

[https://www.youtube.com/watch?v=pZ1O_gmPneI](https://www.youtube.com/watch?v=pZ1O_gmPneI)

It is simply a platform on top of the Web same as Wordpress, that anyone can install. It can even run on local wireless mesh networks.

Oh and it's totally Free and Open Source and any community or startup can use it to build apps to put in the store.

[https://github.com/Qbix/Platform](https://github.com/Qbix/Platform)

Contact me if you're interested to be involved, or just have a question about how to get started. (Greg+hn, the at sign, then qbix.com)

</comment><comment><USER36> Is it public discourse or private discourse?. If public, then you have no right to anonymity or to be forgotten. Anyone can record what you say in public, and that is reasonable and expected. Myself, I would like to have both - just as I do in the non-digital world. I don't expect that one platform can serve both purposes.

Private communication is not possible. Humans have been striving to achieve it for all of history. I guess that the rich and powerful can achieve it to a certain degree. The analog hole is the problem. Why is there not more technical discussion about plugging the analog hole?

</comment><comment><USER37> I sound like a broken record, but in my humble view decentralized social network is even worse than centralized one.

Key feature of any social network should be 'right to be forgotten' (e.g. delete content), and ability of network to moderate and update content (due to legal requirements, or due to users requests for their own content or for other reasons).

How do you manage that in a system such as proposed here? How do you enforce content to be removed due to court order? How do you take down a revenge this or that after your account gets hijacked and your password/keys are gone?

<comment><USER38> > Key feature of any social network should be 'right to be forgotten'

I've said this before, the only data an user should have the right to remove should have no value to someone else. I absolutely hate reddit threads filled with "[deleted]", people deleting their Mediafire accounts, picture hosts removing infrequently fetched images and so on and on. It's so hard to avoid "digital Alzheimer's" it's infuriating and we should curb it rather than encourage it. I do myself want to delete old FB Messenger conversations, but I'd be seriously pissed seeing some old chat containing only my incoherent ramblings. I think one-sided deletion isn't the solution, fine-tuned privacy settings (and thus hiding and possible recovery) is.

It's important that we don't forget to deal with this before we actually do start to notice that "f __* shouldn 't have deleted that".

<comment><USER39> >I've said this before, the only data an user should have the right to remove should have no value to someone else. >I absolutely hate reddit threads filled with "[deleted]", people deleting their Mediafire accounts, picture hosts removing infrequently fetched images and so on and on.

I disagree - the right of users to assert control over their identity and data supersedes your desire to control or use that data for your own purposes, or your desire to have the web act as an immutable historical record, which it was never designed or intended to do.

I agree that Reddit threads with deleted content are annoying, but that's an implementation detail Reddit chooses to have and could likewise choose not to have (the way Hacker News chooses to make it impossible to delete user accounts, change usernames or delete comments after a certain time.) But the premise that people should be _allowed_ to delete content from the web at all shouldn't be up for debate.

>I think one-sided deletion isn't the solution, fine-tuned privacy settings (and thus hiding and possible recovery) is.

Both can be solutions, but I believe the former is a necessity.

<comment><USER38> > the right of users to assert control over their identity and data supersedes > your desire to control or use that data for your own purposes

The right of users to assert control over their identity is different from the control over all of the data the user put online. Your right to your data should end with my right to my data. As I said, data deletion is so often damaging it's ridiculous.

> or your desire to have the web act as an immutable historical record

Please don't twist my words, I never said that.

> But the premise that people should be allowed to delete content from the web > at all shouldn't be up for debate.

I think that exactly has to be up for debate, especially with "social networks", noone is social alone thus the data shouldn't belong to that one person. I'm not saying it should be new "Facebook" that should have the control, not at all, the users should get to decide. Over time I've accumulated access to various collections of images of for example events that have happened in the past. I made those pictures, I shared them, I have control over them, do you think it's right I now go around and wipe them?

<comment><USER39> >The right of users to assert control over their identity is different from the control over all of the data the user put online.

I don't believe it is - the data you put online _is_ your online identity, for better or worse. Control of one is control of the other, especially when it comes to social media, which often has the mediation and sale of that identity as part of its business model.

>Please don't twist my words, I never said that.

To me, that's implied in the belief that deletion is harmful and needs to be managed. If that misrepresents your views, I apologize.

But a lot of people do seem to have the concern lately that things like the "right to be forgotten" are a threat to data archiving and the public record, and they're right, but... that doesn't matter. That's the web working as intended, it's meant to be stateless and ephemeral by design. Link rot, unfortunate as it is, is a feature, not a bug.

>Over time I've accumulated access to various collections of images of for example events that have happened in the past. I made those pictures, I shared them, I have control over them, do you think it's right I now go around and wipe them?

Yes, if you want to, I think it's entirely your right. Why should you have the right to add data to a service, but not to delete it if you choose? Particularly when those services claim an arbitrary right to do so themselves?

Mind you, I'm not saying you have the right to delete it _everywhere,_ because that's infeasible, but you should have the right to delete what you published from whatever service you published to.

<comment><USER38> > Why should you have the right to add data to a service, but not to delete it > if you choose? Particularly when those services claim an arbitrary right to > do so themselves?

Why should I have the right to delete content that relates to other people, if I might even say important to other people? Simply because I was the first should mean that I get to say what happens to the content?

> Link rot, unfortunate as it is, is a feature, not a bug.

Really curious, how is it a feature, not a bug?

</comment></comment></comment></comment></comment></comment><comment><USER40> Users must own and control their data, using open standards, so that apps can come and go and people aren't locked into them.

The biggest obstacle to this is browsers. Browsers must implement decent identity and authentication with pluggable encrypted data storage. Without that there simply can't be a decentralized social network on the web.

Beaker browser is the only active project attempting to move in that direction, even though it might not be the right solution. They deserve the $1 million, not some idiot blockchain bikeshedders.

</comment><comment><USER41> Decentralized search please too.

<comment><USER41> And ecommerce while we're at it.

<comment><USER42> This is on producthunt today: [https://www.producthunt.com/posts/public- market](https://www.producthunt.com/posts/public-market)

</comment></comment></comment><comment><USER43> This blockstack architecture is pretty interesting, but I wish it didn't have a Token attached: [https://blockstack.org/whitepaper.pdf](https://blockstack.org/whitepaper.pdf)

Anyone know of a similar decentralized DNS platform and allows users to 'own' their personal data without an attached ICO?

<comment><USER44> Not sure if this is exactly what you are looking for but I just stumbled upon the Dat project myself.

[https://datproject.org/](https://datproject.org/)

<comment><USER43> Thanks! A system after my own heart, it even uses a Merkle tree instead of a blockchain <3

Does this have a system that allows users to keep ownership of their personal data?

<comment><USER14> Yes, the data is owned by you and signed for ownership attribution. AFAIK there is no "remove my data from the network", as it is a public network.

</comment></comment></comment></comment><comment><USER45> Lots of anti in this thread, so I don't mean to pile it on. But... a new browser is the wrong UX to develop an ecosystem of apps.

It needs to be an API, that developers can use existing platforms (current browsers, mobile and native apps) to build their apps. Users aren't going to care enough about decentralized data to change their behavior.

</comment><comment><USER46> It's unclear if they're giving the money without taking equity, or if they're expecting to get a cut.

</comment><comment><USER47> Decentralised social networks are a bad idea. Communication tools need to be inclusive and open to everyone, especially laypeople. Decentralised tools and blockchain turn off non-techies, and are overkill for the social networking problem.

<comment><USER13> People use decentralized things all the time without a problem. Email, for example. They can use a shim like Gmail, decide one day they hate it, switch to something else, and still email everyone in roughly the same way without convincing all those people to migrate somewhere simultaneously.

</comment></comment><comment><USER48> Can anyone show me a use case for the end user with a clearly defined benefit?

</comment><comment><USER49> how would this work? if users own their own data, do you have to query them for data every time? would this be horribly inefficient ? I mean this as a technical question about how blockstack works. if you start caching or storing users data, then there is nothing stopping you from mischief with it, right?

</comment><comment><USER50> Seems that 1 million to 1 group or even 333k to 3 groups would be more effective than 100k to 10 groups.

</comment><comment><USER29> Like $100k is enough to build social network, lol. You can't even hire 3 developers for that money.

</comment><comment><USER51> It's interesting to personally experience the rise of politically motivated technology like this.

</comment><comment><USER52> Best joke on hn today. Keep dreaming, dreamer.

</comment><comment><USER53> There is a documentary on HBO about this effort called "Silicon Valley". It is in the 5th season.

The basic challenge is that smart people keep making really poor choices which are very funny but also counter productive.

<comment><USER54> LOL

</comment></comment><comment><USER55> Holy shit, why? This "decentralized social network" concept has been around literally since the beginning of Facebook. Apparently, people are failing to grasp that centralization isn't the problem and will never be a selling point to 2 billion people.

The problem is making something as engaging and entertaining and interesting as Facebook. Good luck.

</comment><comment><USER56> If anyone is looking to learn how to build a DApp on a smart contract platform, check out Nebulas.

It uses Javascript or Typescript as its language.

You can learn to how to build a simple DApp in a day and get paid to do so (100 NAS for just submitting one or win up to 20,000 NAS for winning DApp of the month).

Check it out here: [https://incentive.nebulas.io/signup.html?invite=xDhnG](https://incentive.nebulas.io/signup.html?invite=xDhnG)</comment>


Ant Colony Optimization Algorithms - <AUTHOR> http://en.wikipedia.org/wiki/Ant_colony_optimization_algorithms

<comment><USER2> Back in 2001 I was working on an app used in planning optimal routes for city garbage trucks. We quickly found out that this was equivalent to the Traveling Salesman Problem and the initial brute force solution was not fast enough to get results in useful time.

A colleague stumbled upon a paper on Ant Colony Systems and gave it to me to try to implement it and to check if the results were as good as the paper promised.

It was amazing how the solutions were so close to optimal ( we checked the results from the ACS algorithm against the brute-force solutions that took hours to compute ) and how fast the algorithm stabilized on the solutions.

It was also the first time I had used an algorithm that does not really stop, it just converges to a solution and another heuristic decides when to accept a final result.

I learned a lot from it.

<comment><USER3> Garbage trucks have to visit every edge (street segment) once, not every vertex (intersection) once, correct? Can you use Eulerian Paths?

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

Or is the process to make a non-Eulerian graph Eulerian NP?

<comment><USER4> Once you have a mixed graph (One-way streets and two-way streets), the problem is known as the Mixed Chinese Postman Problem and is NP.

</comment></comment></comment><comment><USER5> The Clojure language was introduced with an ant Colony demo by Rich Hickey. He was using it to demonstrate concurrency primitives in Clojure.

You can see screenshots and read code here: [http://juliangamble.com/blog/2011/12/28/clojure-gui-demo- of-...](http://juliangamble.com/blog/2011/12/28/clojure-gui-demo-of-ants/)

</comment><comment><USER6> The inventor of the algorithm actually has a really good website with a good overview and history:

[http://www.aco-metaheuristic.org/](http://www.aco-metaheuristic.org/)

</comment><comment><USER7> That's why you may want to get a CS degree... if you are interested in things like this... well, this is just the tip of the iceberg.

</comment><comment><USER8> For those interested in algorithms and optimizations of paths, check out www.pathery.com/home for an NP complete longest path most vital node puzzle.

</comment><comment><USER9> Yep, so?

<comment><USER10> While I think you're getting downvoted due to the brevity (and perhaps attitude) of your comment, in large part I agree with the sentiment. I've been HN-ing for a year and change, now. The posts that just link to a wikipedia article about a topic that > 90% of the HN crowd is probably familiar with do get a little tiresome.

Check out ( [https://hn.algolia.com/?q=wikipedia#!/story/sort_by_date/0/w...](https://hn.algolia.com/?q=wikipedia#!/story/sort_by_date/0/wikipedia.org) ) to see recent wikipedia submissions. Just recently someone linked to the wikipedia article for "Code Golf". At didn't get any upvotes, which is great, but I just don't understand the mindset behind submitting it. I guess easy karma? I don't know.

I'd much rather see content like "Here is my solution to problem X using ant colony optimization". This is the first time I've made a comment like this, because usually I just flag and move on. I guess I just needed to vent a little.

<comment><USER11> I think a thing that has happened is that the community is actually full of people who have _not_ learned all the fun computer science stuff that people like you and me take for granted, and that's why they're voting it up.

On the one hand, it's frustrating because, damn it, if you don't already know how to _play_ with these concepts then why on earth are you calling yourself a "hacker", but then on the other hand [http://xkcd.com/1053/](http://xkcd.com/1053/)

<comment><USER10> I definitely agree with you. It's guess it's just difficult with the HN community growing every day, both in population and the diversity of backgrounds.

I think I'll write a little plugin that will hide all wikipedia links and I'll be happy. Maybe something like "hide all wikipedia links unless #comments > N" would work nicely.</comment></comment></comment></comment>


Your App Has One Feature - <AUTHOR> https://blog.benroux.me/your-app-has-one-feature/ <comment><USER2> As a user more than an engineer, most of the apps I use have 'one feature,' but the one feature that's important to me is different than the one feature that's important to other people. My 'one feature' may also be a unique combination of smaller features that, when brought together, solve one very important problem for me, and some different combination of smaller features in the same tool will solve a different problem for someone else.

<comment><USER3> Agreed. When I seek out a new program, I usually have some specific goal that my current software doesn't cover, which usually means that it's something fairly "out there", and not even necessarily a core feature of whichever software I find.

Still, a program needs a guiding light to its design. It has at least one purpose, and that purpose should be the central focus of its design. That doesn't mean there can't be ancillary features, of course.

</comment></comment><comment><USER4> This reminds me of this article by Joel Spolsky on Excel:

 _Over the next two weeks we visited dozens of Excel customers, and did not see anyone using Excel to actually perform what you would call "calculations." Almost all of them were using Excel because it was a convenient way to create a table._

[http://www.joelonsoftware.com/items/2012/01/06.html](http://www.joelonsoftware.com/items/2012/01/06.html)

<comment><USER5> Huh?

Okay, maybe a lot of people do use it for formatting tables.

But what do people who do tabular calculations use?

98% of the time, Excel.

</comment></comment><comment><USER6> > _What is the one thing that, when removed from your product, makes it fall > apart?_

A big block comment in common.h containing the Hail Mary intercession prayer.

</comment><comment><USER7> x

<comment><USER8> I actually think it does have one feature: the ability to edit text.

For all the other things (syntax highlighting, VCS integration, debugger, test framework, compiler shortcuts), you can take away two or three of them and still have a worthwhile program.

But if the text editing part is non-existent or painful to use (think only emacs bindings to a vim user, and vice versa)? It's game over.</comment></comment>


System76 on US Manufacturing and Open Hardware - <AUTHOR> https://blog.system76.com/post/179592732883/system76-on-us-manufacturing-and-open-hardware <comment><USER2> I'm very excited for this. I have a pretty nasty love/hate relationship with my personal Thinkpad P51. It's a fantastic device on paper, and the build quality is great to match, but... I try to boot Linux and I remember why Linus once gave Nvidia the finger all over again. Even on Thinkpad, issues you wouldn't see with nearly any Linux desktop system crop up when Optimus is thrown into the mix. Nouveau actually outperforms proprietary Nvidia drivers in certain circumstances, which had me extraordinarily confused.

It would be nice to boot into a laptop actually designed to use Linux from the ground up. And I don't mean what Dell does - I'm grateful for what they do, but I really want unmodified Linux to work as well on my laptop as it does on nearly any desktop I've built. System76, with both properties that they are going open with firmware and designs, AND building entirely for Linux, seems perfect to me.

I wonder a lot about their stated goal of a completely open compute platform. Sure, there's ISAs like RISC-V on the horizon, but I get the feeling many components like GPUs are quite far away from having open source equivalents that can act as drop-in replacements. There's a whole lot more than raw computation in modern CPUs and certainly more in the motherboard. Id still be moderately pleased with a "mostly" open platform, which is better than today where your choices are basically Lemote Yeeloong or something useful but nearly entirely closed off.

<comment><USER3> I don't understand your assertion that unmodified Linux does not work "as well as on any desktop" on Dell laptops. I'm typing this on an XPS 13 9343, running the mainline Linux kernel from the Arch Linux repositories, and everything works flawlessly out of the box (WiFi, Bluetooth, touchpad, audio, OpenGL, webcam, extremely low power consumption, etc). To be fair, kernel patches were necessary to fix some issues with the behaviour of the sound card when the laptop was new, but right now everything as reliable is as you can hope for. Granted, it only has Intel's built-in GPU, but that is more than enough for what I do on this machine.

Another thing I really like about Dell is that their products are designed to be repairable. The service manuals for their computers are freely available online[1] and even private customers can buy replacement parts directly from them. I've replaced the keyboard and the hinges on the screen before, and soon I will get a fresh battery to extend the life of this lovely machine even longer.

[1] e.g. for my laptop: [https://downloads.dell.com/manuals/all- products/esuprt_lapto...](https://downloads.dell.com/manuals/all- products/esuprt_laptop/esuprt_xps_laptop/xps-13-9343-laptop_service%20manual_de- de.pdf)

<comment><USER2> Mainline Linux eventually works on Dell laptops, like most vendors, but I've learned the hard way that this is far from guaranteed and out of the gate most laptops that come with Linux (not just Dell) are modified.

You can see the disclaimer that Ubuntu puts on all their certifications:

[https://certification.ubuntu.com/hardware/201410-15913/](https://certification.ubuntu.com/hardware/201410-15913/)

.. Which may well not apply to this laptop in particular, but it absolutely applies to laptops I've used.

Notably absent from the certification list is the XPS 15, which is sad because personally it's the one I'd want. From what I've seen of Linux running on XPS 15, it isn't great, though it is "functional."

<comment> sudo-i Typing from my dell xps 15... what "isn't great" about it?

<comment><USER4> I bought a 9343 XPS 13 on release and it was horrible. Overtime it got better, but on first boot here is a list of issues it had:

* Resume from suspend didn't work and often left machines in an usable state. Relatively simple workaround was to disable suspend but definitely caught you off guard the first couple times.

* Keyboard would insert multiple characters per key press. This made the machine unusable without an external keyboard.

* There was a null pointer issue in the WiFi driver so if you were connected to WiFi but tried to switch networks it would trigger a full blown kernel panic. Workaround was to buy a USB -> Ethernet adapter so you could line in your network.

* Track pad issues to the point that the laptop required an external mouse.

I don't know if I remember all of the issues, but you can dig through the Dell Sputnik forum to find all sorts of old forum posts about issues...here is one from my own post history:

[https://www.dell.com/community/Linux-Developer- Systems/Vario...](https://www.dell.com/community/Linux-Developer- Systems/Various-issues/m-p/4635242#M3989)

I spent a lot of time reporting, debugging, fixing, and helping other users try to fix issues in the early days.

In Dell's defense, they upstreamed the fixes so fixing a lot of the issues like resume from suspend and the keyboard was as simple as updating kernels. Additionally, the null pointer WiFi driver bug was fixed in a subsequent driver release.

But these changes didn't get included until several kernel releases later and the only way to unbrick/make the laptop usable was to hotfix/upgrade your kernel to an unstable version. But for a $1500+ laptop to come out of the box in an unusable state was extremely painful for early adopters. And I would say that my experience was far from perfect.

Sounds like they have improved greatly and I am still a tremendous supporter of the Sputnik effort at Dell (and overall fan)...but I (personally) wouldn't dismiss people's comments about it being imperfect.

<comment><USER5> that list reads like my typical woes with MS Windows... half the time or more they're caused by the hardware, not the software: ask anyone who does device driver programming.

back in the day (Windows XP era) i bought components and built a gaming computer, nothing extravagant but Windows, because games. there was a very narrow window between the newly installed vanilla OS booting up and BSODing. the problem disappeared once i managed to install drivers from the CD that came with the motherboard (had to act quick before the BSOD would hit).

hardware is crap.

        commit 277918494930ec3fb0c7fdbd4d35060a3bc6d181
        Author: imp <email@example.com>
        Date:   Thu Oct 25 17:17:11 2018 +0000

            Update comment for AMI00[12]0 override.

            The AML is even stupider than always returning 0. It will only return
            non-zero for an OS that reports itself as "Windows 2015", at least
            on the Threadripper board's AML that I've examined.

            Those AMLs also suggest we may need this quirk for AMI0030 as well.
            There may be other cases where we need to override the _STA in a
            generic way, so we should consider writing code to do that.

        diff --git a/sys/dev/acpica/acpi.c b/sys/dev/acpica/acpi.c
        index 515370d5584..bed7ecd411c 100644
        --- a/sys/dev/acpica/acpi.c
        +++ b/sys/dev/acpica/acpi.c
        @@ -2222,10 +2222,10 @@ acpi_DeviceIsPresent(device_t dev)
                status = acpi_GetInteger(h, "_STA", &s);

                /*
        -        * Onboard serial ports on certain AMD motherboards have an invalid _STA
        -        * method that always returns 0.  Force them to always be treated as present.
        -        *
        -        * This may solely be a quirk of a preproduction BIOS.
        +        * Certain Treadripper boards always returns 0 for FreeBSD because it
        +        * only returns non-zero for the OS string "Windows 2015". Otherwise it
        +        * will return zero. Force them to always be treated as present.
        +        * Beata versions were worse: they always returned 0.
                 */
                if (acpi_MatchHid(h, "AMDI0020") || acpi_MatchHid(h, "AMDI0010"))
                        return (TRUE);

</comment></comment></comment></comment></comment></comment><comment><USER6> > Then we tried finding factory space in Colorado. That was much harder than > expected and it took a full year.

This is amongst the things stacked against people trying to do business in the UK. I know a distributor that wanted a small warehouse with office space. They had the capital to buy and build. But in the ex- industrial that land of the UK no land could be found, despite the acres of tumble down old factories! There is a government controlled project for anyone wanting to build a huge factory, but nothing smaller.

One of the problems in the UK is land-banking and a tax system that encourages you to invest in land and leave it as wasteground.

<comment><USER7> I've experienced the same for office space in two countries. A kindly and clueful real-estate person eventually explained that small deals aren't worthwhile, sorry about that, no insult intended.

<comment><USER6> We are talking $70-80k a year in rent... But judging by the enormous warehouses down the road, only running a supermarket distribution hub is viable.

</comment></comment></comment><comment><USER8> > _We'll continue to open source more functionality. Eventually, all that will > be left are proprietary hardware initialization bits and convincing Intel > and AMD to open up there. We think there's reason for optimism. Intel > contributes lots of code to Linux and AMD graphics drivers are open source > already. Maybe open hardware is next for them. Let's keep pushing._

Even if AMD would like to, they probably could not because of cross-licensing.

[https://en.wikipedia.org/wiki/Cross- licensing](https://en.wikipedia.org/wiki/Cross-licensing)

[https://www.sec.gov/Archives/edgar/data/2488/000119312509236...](https://www.sec.gov/Archives/edgar/data/2488/000119312509236705/dex102.htm)

</comment><comment><USER9> _At our facility, we take in US-sourced sheet metal, aluminum extrusions, and other raw materials. ... We use components that we source outside the US, like the motherboard, memory, and drives._

So these guys just make the case.

What's the point? You're not going to get a more secure machine that way.

<comment><USER10> Over on Phoronix, folks seem to have been much more excited about the Talos II by Raptor Computing Systems. They come with IBM POWER9 CPUs.

"The Talos™ II mainboard is the first modern (post-2013), owner-controllable, workstation- and enterprise-class mainboard. Built around the brand-new IBM POWER9 processor, and leveraging Linux and OpenPOWER™ technology, Talos™ II allows you to secure your data without sacrificing performance. Designed with a fully owner-controlled CPU domain, you can audit and modify any portion of the open source firmware on the Talos™ II mainboard, all the way down to the CPU microcode. This is an unprecedented level of access for any modern workstation- or enterprise-class machine, and one that is increasingly needed to assure safety and compliance with new regulations, such as the EU's GDPR. "

[https://www.raptorcs.com/content/TL2WK2/intro.html](https://www.raptorcs.com/content/TL2WK2/intro.html)

While also not 100% open, it sounds like a lot more important bits are.

The Talos machines sure are pricey though.

<comment><USER11> People claim to want open hardware and the security you get from not being forced to trust a variety of companies. But then when it's time to put their money down suddenly freedom is too expensive. This is exactly why we've arrived in this position in the first place.

<comment><USER12> Talos is following the Tesla Master Plan. You can't afford a Tesla Roadster? That's fine, the people who can will buy it, that covers the R&D and the next model will be cheaper.

</comment></comment></comment></comment><comment><USER13> I may sound like a broken record, but I'm hoping for a laptop with NXP's iMX8M. The same SoC that will be in Purism Libre 5. Mainline kernel with open source GPU drivers. Etnaviv may need more work, but with more hardware available it will be easier, as more work could be shared.

<comment><USER14> I've not heard of Purism before. Have you ever owned any of their products and how was your experience?

<comment><USER15> I have their latest Librem 13.

I bought the base model and upgraded it with 16gb of RAM (wish I could have done 32gb), 1TB NVMe, and a 1TB SATA SSD.

So far it is great. I've been using it as my daily driver for about 6 months with Manjaro. I get about 8 hours of battery life unless I'm running my Windows VM needed for some work tasks. Otherwise it's just firefox, slack-cli, thunderbird, and webstorm.

</comment></comment></comment><comment><USER16> If anyone from System76 is reading this thread, I just want you to know that the Oryx Pro is my endgame -- I plan to buy it ASAP replace my desktop and laptop as soon as I can get my hands on one.

I am a stan of your business.

<comment><USER17> How well does it run non-Ubuntu distros? I only run Debian these days — been burnt too many times by Ubuntu.

<comment><USER16> I don't know because I haven't bought one, but I do know they run their own distro called Pop_OS[0] which is improved ubuntu (with likely impeccable support for their hardware).

That in-and-of-itself is a pretty impressive investment to me, but I would probably take it off and put arch on it. Honestly I am not too worried, it seems like I can actually call them for support/file bugs/ask for technical help if I actually came across an issue -- surely _someone_ over there knows something if they want to maintain their own distro.

[0]: [https://system76.com/pop](https://system76.com/pop)

<comment><USER18> I've been running Pop for about 6 months now and it's been fantastic.

It's the first Linux distro that I've been able to run full-time, after trying the main Ubuntu distro for 6+ years with VMs and dual-booting.

Beyond its stability and compatibility with Nvidia hardware, its design is pretty and touch-friendly.

<comment><USER19> Thanks for the comments on this, I'm generally skeptical with these things... my only linux desktop is currently running Elementary, which I've liked a lot, but nice hardware support will be great. Still running a late 2014 (iirc) rMBP for my laptop, may swap out late next year or the year after.

I'm tired of the stuff Apple pulls, so would be nice to see a good/supported linux distro for hardware. I've been bitten too many times trying to maintain Linux on a primary desktop/laptop (hackintosh has been easier for me).

</comment></comment></comment></comment></comment><comment><USER20> How are they not going to go out of business when cheap Chinese competitors copy their open source design?

<comment><USER21> I think this misunderstands System76's business. Today they are selling rebranded Clevo laptops so they are already facing cheap Chinese competitors... and yet they stay in business because what they are really selling is Linux certification, branding, support, warranty, etc.

<comment><USER22> Exactly this.

I bought one (an Oryx) to replace a macbook because it comes all set up and ready to go (no driver problems, no tinkering needed). I know it would have been cheaper to buy a machine and install linux on it but its a lot of extra work. I'd honestly just rather pay them to deal with it.

I'm using there OS (pop!) which is Ubuntu based, and works fine (although I'm not sure why they have there own OS, it gave me pause frankly, they have Ubuntu as well). It works well and seems to have updates quite frequently.

I really like the machine, its had no problems and has been easy to setup and use. There are some minor things I don't love, the battery life isn't great and I have to reboot to switch video cards (the laptop has 2 and only one supports external screens).

But jetbrains software works and the web works fine, so I'm pretty happy.

<comment><USER23> >although I'm not sure why they have there own OS.

I think this makes sense. Their core bussiness is producing an integrated Linux hardware/software package. When a compatability issue comes up, they probably don't want to have to wait on a third party to resolve it; especially when they can still leverage most of the work that said third party does (and; I presume, contribute back their work).

<comment><USER24> Anyone can hold any status in Ubuntu regardless of who they work for. This is explicitly stated in Ubuntu's code of conduct which doubles as a sort of constitution. They could be Ubuntu developers themselves; then they wouldn't have to "wait on a third party" to resolve anything.

<comment><USER25> Yes but anything that goes into Ubuntu needs to work on all systems, not just System 76 devices. This would like reduce the realistic rate of change, even if they were (co-)maintainers of all the relevant packages.

<comment><USER26> Not necessary to upstream packages to Ubuntu Repositories when they could set their own repositories (which I assume it's how they mantain their distro)

It's a matter of branding. Which is great too as long as they keep up to date with security updates and such.

<comment><USER25> I don't think Canonical would look kindly on someone shipping 'Ubuntu' with 3rd-party modifications to critical system-level packages, at least without participating in the Ubuntu Desktop certification program.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER27> I'm not a hardware design guy. I did work as a QA engineer at Transmeta, a 90s/00s CPU company for 2.5 years. My sense of things was the hardest part of delivering CPUs was the manufacturing, not the design. Building a chip took several weeks, debugging hardware was hard, and thr feedback loop was relatively long. The best designed chip could be damn slow if manufacturing was not optimal at every step. I'd guess there's not much risk in opening up the chip designs, and it might even make chip design cheaper, faster, and higher quality. Building a fab that can build chips sounds hard no matter what you do.

Am I speculating in the right direction?

<comment><USER28> It all depends. If you are using existing IP, then the design part might be shorter. Conversely if you are using a proven process from a contact fab, you just need to follow their design rules and they will do all the manufacturing work for you. But companies like Intel, AMD, Nvidia push the boundaries of everything. They have separate teams working in parallel on different aspects (design, fab, etc) and generations of products.

</comment></comment><comment><USER29> I bought a Gazelle Pro in 2011 and the thing still works great(paid 1600$ at the time). I only upgraded the RAM from 8 to 16 GB and put in an SSD. Last year I was considering buying the Oryx, but since the Gazelle works so great, I don't see any need for new purchases. I never had any issues. Only game I played was LoL, and it worked smoothly at highest settings.

</comment><comment><USER30> These systems still rely on closed, untrustworthy x86 hardware and mainboard implementations. I'd hardly call it more open than anything Purism provide, except perhaps for the custom case and backplane (which isn't much, in terms of the system design)

That said, it's a step forward. I look forward to seeing what System76 do next.

<comment><USER31> \- I agree that eliminating those closed components is a good goal

\- I think we should avoid setting the main bar for system76 at purism or vice versa. I say this as a big Purism fan, reading this post is very exciting for all fans of openness in computing.

<comment><USER30> Oh, I agree. The bar shouldn't be set any lower than completely open systems. Unfortunately, while they remain on x86 - and Intel and/or AMD refuse to manufacture chips without the Management Engine or the Platform Security Processor or provide documentation - they'll always be less open than alternative architecture implementations like RISC-V's SiFive or OpenPOWER's IBM POWER and their vendors/integrators like Raptor Computing Systems.

</comment></comment></comment><comment> rooam-dev Any chance to get a >= 15" model with a centered keyboard? In not so distant future maybe? :)

<comment><USER32> This would be amazing! Not a fan of the numpad on my laptop.

</comment></comment><comment><USER33> Pretty excited but part of me is kind of disappointed that the unit is a desktop rather than a laptop (from the teaser pics)

</comment><comment><USER34> system76.. i recently dropped 2600 on one; after a few months of use I can't say i'm that impressed, and running linux on it is still not that great.. I've since put windows 10 on for better performance and functionality..which i didn't think would be something i'd end up doing.. but here i am.. next time it's unlikely i'll go with them again;

one killer feature i bought this was for the nvidia card, and it's difficult to even type when that thing gets going because the keys get so hot my fingers are like touching hot coals

really i wish i could get my money back

</comment><comment><USER35> Electronics manufacturing is already some of the most automated industry around, second only to microelectronics. Human labour adds just few percents to the end product's value, it can easily be doubled and tripled without the market ever noticing.

The opinion that it never took of in USA because of Chinese undercut you on labour doesn't hold water. No, automation will not do nothing about America giving you 100 times more reasons to not to do manufacturing there other than the cost of labour.

</comment><comment><USER36> Does anyone have any detail about this device? From what I've read it seems really cool. Just wish there was something to chew on before the big reveal.

<comment><USER37> There's a little bit of info here: [https://www.phoronix.com/scan.php?page=news_item&px=System76...](https://www.phoronix.com/scan.php?page=news_item&px=System76-Thelio- Next-Week)

The marketing seems to hint at premium product / premium price.

</comment></comment><comment><USER38> How are the trackpad on the system76 laptops? Any as good as the MBP? or at least as good as the Dell XPS13?

</comment><comment><USER39> I'm pretty excited about system76 and purism, hoping for a linux based alternative to the macbook pro

</comment><comment><USER40> I would love to support them, but I need a trackpoint and 3 buttons.

<comment><USER41> The three physical buttons are an anti-feature for me personally, because they reduce the size of the trackpad. And the trackpoint is a net neutral. I've used ThinkPads on and off for years and I still feel like a trackpad is more efficient than a trackpoint.

<comment><USER42> I like the ThinkPads best where the size of the touchpad/trackpoint is reduced to the logical extreme. (It wasn't until I discovered ThinkPads, and specifically TrackPoints, that I could use a laptop as a "lap" top. I just unplug the touchpad on models which have 'em as I'll only ever touch it by mistake.)

</comment></comment></comment><comment><USER43> Weren't patents designed because they were beneficial to society (and to people who had ideas) ?

I think these days patents are mostly high resistance and very few social value.

<comment><USER44> Its because the old system prior to patents was the guild system.

The biggest problem with guilds was the massive amount of information lost. So the balance was "tell is how you did it clearly, and you get protections for 20 years-ish".

Turns out the description of what and how is easily games with horrendous legalese language.

<comment><USER43> This is why I believe that open hardware could be a solution nowadays. 100 years ago, a patent had lots of benefits. Today there's more side effects than social value. We could share, solve, enjoy more buy having a bit of reusable open parts and machines.

</comment></comment></comment><comment><USER45> And then the NSA intercepts your shiny new open hardware on the way to the customer, and inserts some nasty closed source spying device.

<comment><USER46> If you're _targeted_ by NSA you are going to lose anyway. Sanity, if nothing else.

</comment></comment><comment><USER47> I was having doubts on buying a System76 machine next, this lessened those doubts significantly.

</comment><comment><USER48> It's awesome that they're doing all this within the US but I tried to design an Oryx yesterday I just wanted a nice graphics card, 32gb of ram and the 1tb ssd and it quickly approached Apple prices. I understand the underlying components aren't cheap but I don't think companies that aren't operating at Apple's scale, who has some of the brightest engineering hardware and software minds in the world, have any business charging close to $3k for a laptop for similar specs.

I'm guessing the cost is due to being based in the US. I just want a nice laptop for a reasonable cost, I'm not concerned where it's built. Where a laptop was made doesn't make any difference to how I use it or what it does for me. If System76 is close to Apple prices for similar specs I might as well just buy a Macbook Pro.

<comment><USER49> Scale provides, well, economies of scale. If you want to buy from a smaller outfit, then expect to not get economies of scale.

</comment></comment><comment><USER21> In other words, the case is open and manufactured in the US while the part the matters—the motherboard—is proprietary and made in China.

<comment><USER50> But they've actually gone one step further than just manufacturing their own case: the "Thelio Io" board that they mention looks very much like a replacement for (part of) the motherboard's "embedded controller" (EC) functionality, and all of the design files and source code [1] certainly seems to meet the criteria to be called open hardware with open source firmware.

For some context, the EC in most laptops is usually a highly proprietary ASIC (good luck even finding a datasheet) running a blob of proprietary firmware on an 8051 core. It's responsible for handling the power and lid switches, sequencing the powering on and off of the main system CPU, controlling fan speed and temperature sensors, etc.

[1] [https://github.com/system76/thelio- io](https://github.com/system76/thelio-io)

</comment></comment><comment><USER51> I've been eyeing a Meerkat for awhile now. Is there going to be a Thelios equivalent?

</comment><comment><USER52> I hope they have a better battery this time around.

</comment><comment><USER53> As soon as I'm not a student anymore and have a career, I buy one. Before then, any laptop I buy will be under 450$ CAD.

<comment><USER54> I bought the Galago Pro in my last year of college from my CTF winnings. Worked out great.

<comment><USER55> How's the battery life on that?

<comment><USER54> The battery swelled just after the end of first year, so I had to replace it. The replacement still gives me around 2-3 hrs depending on usage.

This is the old Galago Pro (I reviewed it at [0]), not the new aluminium one.

[0]: [https://captnemo.in/blog/2014/07/04/galago-ultra-pro- review/](https://captnemo.in/blog/2014/07/04/galago-ultra-pro-review/)</comment></comment></comment></comment>


Visualizing Deletion Discussions on Wikipedia - <AUTHOR> http://notabilia.net/

<comment><USER2> Interesting to see that the top three categories appear to be Jews, Star Trek, and "naughty bits".

</comment><comment><USER3> One interesting entry that didn't make the cut: transreal number. It now redirects to "James Anderson (computer scientist)", who makes interesting performance claims about an extended arithmetic that seeks to legalize expressions that produce NaN:

[http://en.wikipedia.org/wiki/Transreal_arithmetic#Transreal_...](http://en.wikipedia.org/wiki/Transreal_arithmetic#Transreal_arithmetic)

[http://www.angletechnology.com/events/investorday/Dr%20James...](http://www.angletechnology.com/events/investorday/Dr%20James%20Anderson%20Transreal%20presentation.pdf)

<comment><USER4> Which is obviously bullshit, and it's good that it got deleted.

</comment></comment><comment><USER5> Wow! interesting visualizations</comment>


Ask HN: Would you build a startup from open source? - <AUTHOR>

People build sites and businesses around third-party APIs and often this is discouraged, so alternatively, what open source applications and codebases appeal to you as the basis for a startup, perhaps as a fork? Are there code licenses you seek out or avoid?<p>Are there any successful open source based startups that have inspired you? <comment><USER2> The vast majority of (web) startups leverage open source technology. Most use both an open source database as well as programming language(s). Beyond that, many use an open source framework on top of their language of choice.

Building around someone else's APIs isn't such a cardinal sin as you're implying. The big questions is what are you building? Owning and controlling your full stack is important if you're building something huge, but you can build something profitable leveraging someone else's APIs. There's a bias here towards building BIG businesses rather than lifestyle businesses, so advice about avoiding third-party APIs would come from that. If it works for the project you're doing, then do it. If not, then don't.

</comment><comment><USER3> Avoid Affero GPL.

Consider avoiding GPL if you are going to make modifications, want to redistribute your work, and cannot support a process for releasing that work.

Nearly all permissives licenses are good (Apache, MIT, most BSD, etc).

Nearly all licenses allow you to make modifications, it's just a question of whether you are re-distributing the work covered by the original license or not. That's when things get interesting and you should check the licenses carefully in advanced.

But if you have no plans to redistribute then nearly all permissive licenses are good.

BTW: This is a 30-second rule I use... it's not fact, IANAL.

</comment><comment><USER4> I co-founded an open source startup six years ago (based on a project that I also co-founded), and probably have a book or two in me on the subject.

In short, building around a third-party open source project is probably an easier win than building around a project that you founded and maintain. (Forking, on the other hand, is not something I'd recommend.) While not required, it's a really good idea to make friends with the community organizers and, ideally, find some way to contribute both code and funds upstream when you become successful - after all, your business is based on their continued existence.

That said, although it's certainly much harder to succeed under these terms, maintaining your own project is a valuable, rewarding experience, and gives you significantly more control over its direction.

Just remember that open source code has an accounting value of 0 - so any open source IP you create is not capturing value in the company, and unless you're careful, one-to-one professional services don't either. You'll have to figure out how to make your company valuable with valueless code another way. (Hosted services are a good example.)

</comment><comment><USER5> _Are there code licenses you seek out or avoid?_

Avoid Affero GPL (AGPL). Everything else is fine for commercial (closed close) startup based on open source software.

</comment><comment><USER6> How about RHT?

[http://finance.yahoo.com/echarts?s=RHT+Interactive#chart1:sy...](http://finance.yahoo.com/echarts?s=RHT+Interactive#chart1:symbol=rht;range=5y;indicator=volume;charttype=line;crosshair=on;ohlcvalues=0;logscale=on;source=undefined)

That's about as good a 5 year chart as you'll see in today's stock market. They represent one particular business model, and they've done exceptionally well, but they're just one example of a company that's taken open source all the way to the bank.

</comment><comment><USER7> We've built our business (a sort of carbonmade for restaurants) on top of WordPress ( <http://www.theme-force.com> ). It's been a very gratifying experience so far, as we're able to develop and deploy various features & functionality very quickly. Definitely makes sense to find open source resources where you're not reinventing the wheel, have good momentum and make sense for your idea.</comment>


20 years later, and still nobody's even come close to PHP's ease of deployment - ga-vu https://twitter.com/jacobian/status/1163453179499089921 <comment><AUTHOR> This is partially the reason why WordPress is still so popular; it's incredibly easy to deploy and works on pretty much every shared server known to man. It's also why, as nice as it is, stuff like Ghost is pretty much forever doomed to be less popular; it's just trickier to set up on shared hosting or for someone who doesn't know anything about server management.

It's also why the likes of Media Wiki (for wikis) and the old guard forum scripts (phpBB/MyBB/SMF/vBulletin/XenForo/IPB) haven't been dethroned in their markets too; using PHP means setting them up is basically trivial compared to competitors in other languages.

So if you're trying to compete with one of these scripts, maybe bite the bullet and just go with PHP like they did. It may not seem as 'cool' as going with a more modern language or tech stack, but it makes your script easy to deploy and gives it a lot more server support too, which likely outweighs those other factors if you're aiming for the wider market.

</comment><comment><USER2> Any collection of CGI scripts (like a Perl application) is as easy to deploy as PHP.

<comment><USER3> Interpreted CGI programs have comparably long startup times. FastCGI is an answer which is supported by all major scripting platforms.

The thing is: A FastCGI Python script still requires several lines of boilerplate to do the same thing a PHP script can do (i.e. statelessly answering a request). PHP makes that just damned easy.

<comment><USER2> Now that I think, a Python script (not CGI, but with embedded webserver) is even easier to deploy. For PHP you need container to run it (Apache HTTPD, etc.), the Python script you just execute and that's all.

<comment><USER3> That's right, there are a number of widespread/popular standalone we servers for Python. However, many folks already have some classical web server running and "only" want to add "a grain of" server side dynamics. That's still where PHP excels. Damned easy to get started with.

</comment></comment></comment></comment><comment><USER4> I've only done a little PHP, but the key feature is that your entry points are just template files, right? You spin up a daemon and someone "visits" your PHP file and it renders itself.

I wonder if you could achieve those ergonomics with Node/Express: you spin up a daemon and put JS files in a directory that just export HTML render- functions, and bam. People can just "visit" your JS templates.

</comment><comment><USER5> If the best language to use is the one you know and PHP is one of the easiest to learn.. then it makes sense!

</comment><comment><USER6> That's simply not true.

</comment><comment><USER7> PHP is good about that. Golang is better.</comment>


Houston's third "500-year" flood in the past three years - <AUTHOR> https://www.vox.com/science-and-health/2017/8/28/16211392/100-500-year-flood-meaning <comment><USER2> Here's an educational 7-minute video on how hydrologists try to calculate flood plains: [https://www.youtube.com/watch?v=EACkiMRT0pc](https://www.youtube.com/watch?v=EACkiMRT0pc)</comment>