Building a Startup - Defending .NET - <AUTHOR> http://www.nashcoding.com/2011/04/10/building-a-startup-part-2-defending-net/

<comment><USER2> .NET is great. It's fast, clean, and the framework libs are incredibly good. C#, IronPython, and F# are amazing.

I still haven't found an IDE that compares to VS in terms of productivity and usability.

Despite all the things going for it, it's decidely un-trendy and people hate on it. I'm guessing it's primarily because it's from Microsoft.

Software trends are silly.

<comment><USER3> It's true. .NET, and C# especially, is one of the few things Microsoft really got right. Anders H is a genius -- he showed it when he did Turbo Pascal, he showed it with Delphi, and he continues to show it with every new release of C#.

Did you know that C# has: lambdas, closures, optional duck typing, first-class functions, better generics than Java, and type inference that is sometimes spooky?

Really, the only flaw I see in C# (and clearly this is my own subjective opinion) is that I now believe dynamically (duck) typed languages are so much more empowering than strongly typed ones. To me, it seems you can get so much more done, faster, and _you_ choose where to expend your energy to get "automated correctness". But even there, C# has the new "dynamic" keyword that allows for duck typing, so it is moving in the right direction.

<comment><USER2> "Did you know that C# has: lambdas, closures, optional duck typing, first- class functions, better generics than Java, and type inference that is sometimes spooky?"

I did know that, and these things heavily factor into why I default to C# for most projects these days! .NET 4 is awesome.

C# is an excellent language. It has all these great things, yet doesn't feel polluted or bloated at all. I absolutely love lambdas, closures, and generics. They help write concise and clear code. Generic support in C# and F# and the CLR itself is brilliant.

Writing event-driven, asynchronous IO code in .NET code is a breeze. It seems like the current programming trend around these parts is focused on "iterating fast" and having async IO. C# gives me both of these things, with the bonus of having the compiler catch most of my errors.

I disagree with the general notion that duck-typed languages are more empowering or let you iterate faster than strongly typed languages.

If you think that a language that is lazy (or worse, unspecific) about types lets you write code faster, I think that you have some fundamental problems with how you approach development.

The whole dynamic languages = faster code production is an unsettling school of thought, in my opinion.

<comment><USER3> "If you think that a language that is lazy (or worse, unspecific) about types lets you write code faster, I think that you have some fundamental problems with how you approach development.

The whole dynamic languages = faster code production is an unsettling school of thought, in my opinion."

Well, that's what I used to think too. The million dollar question is ... have you _tried_ it?

I did a heavy Javascript project recently, and I was amazed at how much faster I could go from a vision of a complex solution to having that solution implemented.

</comment></comment></comment></comment><comment><USER4> As far as I can tell the author's reasons for deciding to use C# can be summed up as "I'm used to it from previous work, and some useful libraries related to my project are available."

Those are perfectly valid reasons, but they aren't really much use to anyone who doesn't share those circumstances, and don't really have anything to do with upsides and downsides of the language itself. That would have been far more relevant to us outsiders.

Also, "I'm buying a MBP" translates to "I'm serious about startups"? Who says image isn't everything? Besides, everyone knows serious hackers use IBM-era Thinkpads!

<comment><AUTHOR> > Also, "I'm buying a MBP" translates to "I'm serious about startups"?

Well, that was tongue in cheek.

But really, just the opposite-- I'm saying that I'm a total tool who's caved in to the trendy peer pressure of the startup culture. That culture shuns .NET on principal and there's lots of pressure to never use it for a startup.

And if you don't believe there's peer pressure to use a MBP, try going to Red Rock or the Dojo with an Acer laptop. You can just feel people judging you. ;)

<comment><USER5> _And if you don't believe there's peer pressure to use a MBP, try going to Red Rock or the Dojo with an Acer laptop. You can just feel people judging you._

And? Unless you're trying to sell them something, who gives a rats-ass what they think? :-)

<comment><AUTHOR> Again, tongue in cheek. :)

Though I am really buying a MBP tomorrow. I'm doing it because I need a new laptop and I like the new MBP-- but you can be sure I'll have it setup to do Windows 7 in dual boot from day 1.

<comment><USER5> _but you can be sure I'll have it setup to do Windows 7_

Eeeeeewwwwwwwwwwwww..... boo, hiss. Windows?!??

Sorry, when you mentioned a PC based laptop, I assumed it would have been running Linux (or BSD or Plan9 or Minix or some other proper operating system.) :-)

<comment><USER6> So his point about people judging him was not way off the mark ;)

<comment><USER5> Not at all... my point isn't that people won't be judging him, my point is that it doesn't matter. And my previous response was intended to be thoroughly TIC as well, FWIW.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> I see some of the .net hate starting to seep into the corporate world as well. I work as a .net developer for a very large corporation and there is more and more talk of re-implementing production applications in Python. The perceived problem is poor code quality. It is an uphill battle to convince people that this problem is not going to be fixed by switching to Ruby if we continue to produce code by lowest bid.

I think there is a difference in .net developers and Ruby or Python developers. There is a much higher demand for .net developers so many people who had some aptitude for computers picked it up to get a job. Seems to me, people who went through the effort and sought out Ruby or Python take extra pride in the craft of programming. I would say there are just as many .net developers who care about the code they produce, but they are background noise in the sea of mediocre talents. The prospect of finding them in that sea is pretty daunting.

<comment><AUTHOR> If both of those are true, then doesn't that mean a whole wave of sub-par Ruby and Python developers are coming our way in the next few years?

<comment><USER7> Yes, I'm pretty sure I will see the staffing firms send me back the same developers, but now they will be Ruby experts.

Maybe this is less about .net/other languages and more about what makes development so terrible in large corporations. But keep in mind most .net developers, of which I am one, are products or large corporate development .

</comment></comment></comment><comment><USER8> _Existing expertise_

If the goal is to get to a minimum viable product quickly (like most startups) then existing knowledge is a pretty good reason to go with a certain stack. He even mentions having the main algorithm already implemented in C# so at that point it's pretty much no contest. He can always go the route similar to StackExchange in using Linux & Open Source on utility servers (Caching/Load Balancing) and keeping the MS-centric App/Database server.

<comment><USER9> That's an interesting dilemna. I'm a Java web developer, I know the platform / libraries / tools really well, and know how to get things done with it. I've dabbled with more powerful languages in my spare time, but I've been using Java 8+ hours a day for the last 3 years.

If I were to launch a startup, should I go with the "cool shiny powerful" language, or should I stay with the boring verbose language that I know well? Would the fun factor of using Clojure / Scala / Ruby / Python / Blub++ be worth it? Would the language "power" offset the time "lost" gaining experience with a new platform? What about hiring? Hackers love powerful languages.

So many tradeoffs.

<comment><USER10> > If I were to launch a startup, should I go with the "cool shiny powerful" > language, or should I stay with the boring verbose language that I know > well?

I think the danger with this decision is that we tend to get a "grass is always greener across the street" mentality. I have yet to find a programming language that has no serious warts.

Certainly different languages have different warts, and thus suit different jobs better. However, just because we haven't used a language enough to appreciate its warts, that does not mean we will not discover them to our cost at exactly the wrong moment in our new project.

Moreover, with newer or more recently popularised languages, there is sometimes a tendency for the community to bury its head in the sand. Some defenders might claim that we "just don't understand" if we identify a serious shortcoming. Sometimes the individual or group that defines/specifies a language will have a blind spot and make seemingly arbitrary decisions that we don't agree with. In contrast, with longer-established languages, the shortcomings tend to be well-known and acknowledged, and the emphasis in the community is often on sharing the most effective workarounds or alternative techniques.

Obviously these generalisations aren't necessarily universal. We find helpful people in otherwise intransigent communities and awkward people in otherwise helpful communities. Still, I have seen the pattern repeat over the years for many different languages as they evolve from the Newer And Better Thing to a mainstream tool and ultimately to an older tool that is superceded by the next newer and better thing.

When I'm choosing the tools for a project, I usually favour the middle of that spectrum over either extreme. Out-of-date and underpowered is bad, but tried- and-tested is good. YMMV.

<comment><USER9> Very good points.

 _In contrast, with longer-established languages, the shortcomings tend to be well-known and acknowledged, and the emphasis in the community is often on sharing the most effective workarounds or alternative techniques._

Exactly. A good example of this is dependency injection. In Java, it was hard to mock dependencies, like you would do in a dynamic language. This forced the Java community to look into dependency injection / interface programming, to make the code testable. Dependency injection then lead to better componentization / modularity (some could say that one _shouldn't_ have to use dependency injection if one were using a "better" language, though ;) ).

I also like established languages, because there are also established best practices. You don't have to reinvent the wheel.

 _Certainly different languages have different warts, and thus suit different jobs better. However, just because we haven't used a language enough to appreciate its warts, that does not mean we will not discover them to our cost at exactly the wrong moment in our new project._

That's the reason why I'm leaning on using a JVM language. I know the platform and the tools, and I can always "fall back" to Java if needed (for performance critical code or whatever).

Maturity is important, but I don't want to miss out on the power and expressiveness of higher level languages ( <http://www.paulgraham.com/avg.html> ). Using powerful languages is also useful when hiring good hackers ( <http://www.paulgraham.com/pypar.html> ).

</comment></comment></comment></comment><comment><USER11> We've had our share of surprised faces when we told people our company is based on .Net as well. There were a lot of reasons for us to use the Microsoft stack. One of them was also _existing expertise_. My CoFounder and I previously worked as C# developers for years before working on IActionable.com full-time. And yes, Visual Studio is that awesome.

 _"AppHarbor - It's Heroku for .NET. You simply can't beat it."_

I agree with most things in the article except for this. Its definitely my personal opinion, but I don't think AppHarbor is quite 'there' yet for a lot of companies. At least it wasn't for our company's specific needs. The .Net community is very unique and has very different expectations from other service providers. We typically eat what Microsoft feeds us and trust it. Microsoft is definitely putting a lot of weight behind Azure and it made sense for us to use their platform. I saw the level of support behind Azure first hand when our company was invited to Redmond to meet the dev teams as part of an early adopter program.

<comment><AUTHOR> > was invited to Redmond to meet the dev teams as part of an early adopter > program.

I think that's the problem I see with Azure. AppHarbor needs no early adopter program. It's great for the same reason that Heroku and Rails were great for people: if you want to get an MVP up and running, it's almost instantaneous. I want to focus on my core product first and delay thinking about seriously scaling and the other major benefits of Azure over AppHarbor.

<comment><USER11> In their defense, Azure's target is not startups or 'hackers' with a toy app. In fact, it makes no sense at all pricing-wise if you only run a single webserver and database. Their pricing covers a large and growing set of features.

Microsoft's programs exist because of the insane amount of features and support that have to go into their products for their enterprise customers. And its those features that really make us stick with Azure for now. Specifically, I'm talking about TableStorage, Queues and AppFabric's Distributed Cache Service. I've already had a small chat with the AppHarbor guys before. I'd definitely love to move if it made sense.

Don't get me wrong though. I definitely have my gripes with Azure too.

<comment><USER12> Azure can make sense pricing wise for startups that have been accepted into their Bizspark program (which doesn't take much). Bizspark gives basically a single web server and database free and you can easily scale from there if you are willing to pay.

On the downside, deploying to Azure is a bit of a pain and its 15-20 minutes per deployment gets old, especially early on when you are deploying more often.

</comment></comment></comment></comment><comment><USER13> I do not even see the need for justification : After LINQ and Rx and the maturing of Mono, .NET is now far ahead of the Java ecosystem, even including Scala 2.9, in terms of developer productivity. The only reason I am having to learn Scala is that I am already quite familiar with the Java ecosystem (having used it at work for many years before I started doing something on my own) and do not wish to start from scratch in the .NET world.

<comment><USER14> I am also quite familiar with the Java (and Ruby and pre iPhone Objective-C) ecosystem and invested quite a lot time in getting proficient with Scala since 2007 but recently got hooked on F#.

My experience has been, that the available documentation on .Net (and F#) is so much better compared to the other stacks I know, that after three months or so of dabbling in my free time with .Net I already feel like having a much more solid base in .Net than the other platforms (where I have 4, 3 and 6 years experience).

Granted this might be due to me either suck at Java, Ruby and Objective-C or me not yet having real world experience with .Net and being oblivious to ugly corner cases, warts etc. you only come across on a big real world project.

But honestly my first contact with some of the books and online resources available for the .Net ecosystem and comparing that with what I was accustomed to was shocking.

</comment></comment><comment><USER15> I object the "VS" is the best IDE statement. For C#, maybe that is true. But I used Intellij IDEA and VS. VS still looks like glorified notepad against IDEA. I think most developers are living under their language bubble. Also, unlike ruby-python, C# and Java are IDE languages. You cannot program without one.

<comment><USER16> So very true, IntelliJ IDEA is miles ahead of any other IDE I've ever used (including VS). For Java development, I started out with NetBeans, then switched to Eclipse and finally to IntelliJ.

Recentely JetBrains has also released IDEs for Ruby/Rails (RubyMine) and Python/Django (PyCharm). It will be interesting to see if they gain any momentum within their respective communties.

</comment></comment><comment><USER17> ASP.net MVC is maybe quite similar to Rails (it actually is 'inspired by it' i.e. a rip off). But the difference between .NET and Ruby is that Ruby has a culture of hackers, and most of the innovative things re web dev are born in Ruby e.g. Haml, Capistrano etc,and then get ported to other langs e.g. { :Haml => 'PHaml', :Rails => ['many PHP frameworks', 'ASP.net MVC'], :Capistrano => 'Fabric' }

<comment><USER18> As a long time .NET developer converted to Ruby and Node.js, you hit the nail on the head. The innovators and creative types are on the open source side.

That is not to say I have not worked with talented .NET developers but for the most part the culture of .NET developers is to find a corporate job and wallow in an enterprise process. Don't do anything outside of Visual Studio and heaven forbid use anything not built by MS.

The same can be said about Java which needs to be redefined in the dictionary as THE language of over-engineering.

</comment></comment><comment><USER19> I think it's safe to say that .NET doesn't need defending. People who use it tend to continue using it whenever they have a choice in the matter, and quietly get good results from it every time.

It doesn't need defense because it's not being attacked. It's not being attacked because it just plain works. Granted it's a bit boring, but really that's one of its advantages.

</comment><comment><USER20> I don't think this should even be a discussion. If it covers costs well and your solutions work, discussing this doesn't matter.

I started with using .Net for a startup four years ago. Back then there were no Redis, NoSQL wasn't even a invented as a term, cloud servers were just a concept and scaling wasn't anybody's primary concern. In four years the only optimizations I ever did were done via SQL Server profiling or just by modifying a bit of code. I pretty much learnt .Net during this time and the sites I work for get pretty hammered at their peak times and handle well.

So yes from experience .Net is a good starting point. If you know the internals you can probably write and architect code that scales well too without falling back on NoSQL services. You won't need to go looking for complicated PHP cache solutions etc, you won't need to get in the trouble of selecting complicated frameworks. The whole setup gives you ease of mind.

No arguments against LAMP or other environments. Just that I always found .Net to be easier to work with!

</comment><comment><USER21> I don't think many people actually dislike the .Net family but it's more the parent company of .Net that causes a lot of dislike to filter down onto ASP.Net and C#.

I have this weird twisted hatred with Microsoft. I think .Net is great but as an iOS dev working inside a Microsoft based team I've founded solutions such as TFS to be just terrible lock ins.

I'd probably love Microsoft more if just this once they would of assessed the current source control versions, chosen a popular standard (Git) and then deeply integrated it into VS. What they instead did was give you TFS with a lack of client end Rest API documentation and wrote a terrible cross platform command line tool. You didn't see Apple creating XSourceControl.

<comment><USER22> _a Microsoft based team I've founded solutions such as TFS to be just terrible lock ins._

The majority of .net development that I have seen is not done on TFS. I've used many source control sustems for .Net code.

SVN is far more common. a ".Net dev shop" is far from being the same thing as "a Microsoft only" shop. Typically you see software in use like NUnut, SVN, jQuery, Castle Windsor, TeamCity, Resharper, etc. If you're lucky, you may even get Git or Mercurual.

MS could not have standardised on Git even if they'd wanted to - TFS pre-dates Git by a few years. The driver for MS making TFS was two-fold:

1) get people off MS's previous source control system, SourceSafe, which dates back to about 1995. And it shows. SourceSafe is one of the few version control systems that I do not hesitate to say "avoid! Run! Use anything else!" about. TFS is actually a large improvement.

2) To try to prevent them from going to SVN instead, which was the new thing then. Since SVN is lightweight and free, so TFS took the opposite route of being heavyweight, kitchen-sink, ALM, etc.

</comment></comment><comment><USER23> Same as most other posts defending one technology choice versus others. It's what I know best...I like the tools...can't we all get along...

The only interesting point is also the vaguest...The AI that's already available in .NET (and, by the way it's stated, apparently not in others).

I also have to counterpoint that ASP.NET MVC is "conceptually" the same as Rails/Django. Conceptual similarities are pretty meaningless. My RC plane is conceptually similar to a fighter jet because it relies on the same four forces. Actual coding-wise, ASP.NET MVC is closer to WebForms than Rails.

<comment><AUTHOR> > Actual coding-wise, ASP.NET MVC is closer to WebForms than Rails.

How so?

I've never worked with WebForms, but I have done a few Rails projects. I don't see any real differences except for ActiveRecord, which does have a .NET port: <http://www.castleproject.org/activerecord/>

Also, I wasn't trying to start a fight (really!). I just think that more .NET hackers should be motivated to do startups. IMHO, I think this is the year that .NET startups begin to take off. All the pieces are in place, it's just about motivating the community.

<comment><USER24> I have no problem with .net, but what od you mean about "all the pieces are in place"?

<comment><AUTHOR> I mean the barrier to entry has been lowered drastically. I used to do my projects in Rails because I didn't want to go through the hell of renting and setting up a server for ASP.NET. Also, MVC 3 has really flattened the learning curve and the expert community is finally putting together seriously good OSS and tutorials. Finally, MVC 3 development is also highly decoupled from a lot of the uglier MS attempts at making a totally proprietary stack (MS AJAX -> jQuery, Codeplex -> Github, Azure -> AppHarbor).

<comment><USER24> It's certainly much better than a few years ago, and an order of magnitude improved over webforms. In some respects, I think the OSS ecosystem has much room to grow to catch up with Rails and Django. Although Rails and Django could also learn some tricks from Microsoft.

</comment></comment></comment></comment></comment><comment><USER23> When did hacker become a synonym for programmer?

<comment><AUTHOR> Fair enough. I changed the link to the "don't hire .NET programmers" article.

I stand by the rest of the references, though. All the guys I mention in my last point are as much hackers as anyone I've ever met or worked with.

<comment><USER2> Wow, that article is full of all sorts of stupid. Someone should tell the author that .NET is not a language (not that it'll make a difference).

I find this part particularly hilarious:

"However, if you need to make a 1.7 oz burger, you simply can't. There's no button for it. The patties are pre-formed in the wrong size. They start out frozen so they can't be smushed up and reformed, and the thawing machine is so tightly integrated with the cooking machine that there's no way to intercept it between the two."

Pure silliness. Perfect example of an irrational language bias.

<comment><USER7> I had a lot of problems with that article as well. But I'd still like the give the author the benefit of the doubt. I assume he has very narrow experience with some framework like webforms or ran into some developers who did. With a lot of microsoft's frameworks it is easy to get stuck at a simple problem with no obvious solution, and conclude that there is no possible way to do it within that framework. Most of the time if you keep digging , you will find that there usually is a simple, elegant way to solve your problem but many people just give up, and decide that Microsoft just sucks.

<comment><USER25> I've had a lot of the problems of the sort that you describe (particularly with ASP.Net MVC), and I've found that while there are always solutions, the solutions are often very difficult to find. And even harder to find (at least for my company) are people who have the experience to already know what those solutions are.

</comment></comment></comment></comment></comment><comment><USER26> The problem with the Microsoft stack is not technical -- it is financial. Why pay M$ license fees when other platforms are free? Especially as you scale?

<comment><USER27> Please grow up and stop using 'M$'. It's not cool or clever anymore (if it ever was) and it undermines any good points you might be making.

<comment><USER26> Noted. Consider my point undermined.

</comment></comment></comment><comment><USER28> "Can't we all just get along?"

Beauty of it, you don't need to get along with anyone. People will remember your product not your technology stack.

</comment><comment><USER29> Ex .net dev here, keep learning python brother, the promised land is close!

</comment><comment><USER30> Do you need help picking up all those names you dropped?</comment>


Inside the Roc's Lair - <AUTHOR> http://aviationweek.com/blog/inside-rocs-lair

<comment><USER2> "'Roc' after the giant bird of prey in Middle East mythology"

Ah, so that's where the name of Roc's Feather in Zelda: Link's Awakening comes from!

</comment><comment><AUTHOR> Video - [http://www.kerngoldenempire.com/specialreports/story/d/story...](http://www.kerngoldenempire.com/specialreports/story/d/story/kget- special-report-mojave-air-and-spaceport/84740/3hrM3k6tfEyhH0EWMVkSIw)

</comment><comment><USER3> Six B-747 engines. That's really scaling up air launch.</comment>


Norway's PM admits she closed all schools and nurseries 'out of fear' - <AUTHOR> https://www.dailymail.co.uk/news/article-8373857/Norways-PM-admits-closed-schools-nurseries-fear.html <comment><USER2> OK so why the negative connotation as if this was a bad thing to do? It was a precautionary step like the rest of the countries of the world were doing. Would you want to have a leader who ignores to learn from the shit happening to your neighbours and eventually becomes the leader who let thousands die? Look at what's happening in Sweden and UK who reacted too late.

<comment><USER3> > OK so why the negative connotation ...

This is to be expected in the Daily Mail's treatment of any news item on a subject about which it has a political stance. It is a successful middle- market tabloid, but it is not aging well. Wikipedia's entry is, in my opinion, fairly accurate:

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

I was surprised to see a Daily Mail article linked from HN, the newspaper is not renowned for accuracy or considered reporting.

<comment><USER4> [https://news.ycombinator.com/from?site=dailymail.co.uk](https://news.ycombinator.com/from?site=dailymail.co.uk) shows links about once every other day.

<comment><USER3> Thank you - that was an eye-opener. I have been on HN a lot in the past couple of months, and not noticed DM articles.

Perhaps I tune them out. Perhaps, also, I read the link title in an HN list and skip over any with gratuitous capitalisation of words for shouty effect. I also dislike tabloid-style tone in titles. Only if the title catches my interest will I strain my eyes (should wear my reading glasses for some screen use, but don't) to see the source.

However, there's no way that I should have missed what you pointed out. Thank you again for that.</comment></comment></comment></comment>


Why do Macs need so much fixing? - <AUTHOR> http://blogs.zdnet.com/Bott/?p=446

<comment><USER2> Ladies and gentlemen, I give you... Philip Greenspun!

"Computers are the tools of the devil. It is as simple as that. There is no monotheism strong enough that it cannot be shaken by Unix or any Microsoft product. The devil is real. He lives inside C programs.

...

"Everything that I've learned about computers at MIT I have boiled down into three principles:

Unix: You think it won't work, but if you find the right guru, you can make it work.

Macintosh: You think it will work, but it won't.

PC/Windows: You think it won't work, and it won't."

\-- <http://philip.greenspun.com/wtr/servers.html>

\---

Notes:

\-- This was written before the Mac OS became Unix.

\-- It is possible that, given that this paragraph is the prelude to a sales pitch for Unix as the best of a bad lot... Greenspun is overselling the extent to which Unix will work. ;)

The corollary to all of this is that the web's primary function is to contain websites by Unix newbies looking for gurus, by Unix gurus looking for newbies, and by Windows users looking for stiff drinks.</comment>


Ask HN: API gateway - <AUTHOR> Hello HN,
I was considering putting my API behind a gateway to:
1) block malicious IPs, CORS headers, etc.
2) monitor the load from different users (a metric used to calculate their bill)
3) route requests from certain IPs to different application servers
I thought maybe I should use an API gateway instead of implementing those things on the application level because it would just add unnecessary bloat.
AWS[0], GCP[1], and Azure[2] all have API gateway offerings. I'm currently leaning towards using Kong[3] because it is open-source and wouldn't come with a vendor lock-in. I was wondering if anyone has experience with using any of those services or any other API gateways that would recommend?
0: https://aws.amazon.com/api-gateway/
1: https://cloud.google.com/endpoints/
2: https://azure.microsoft.com/en-us/services/api-management/
3: https://getkong.org
Thanks <comment><USER2> If you're familiar nodejs then [http://apiaxle.com/](http://apiaxle.com/) might be an option.

Redhat's offering is [https://www.3scale.net/](https://www.3scale.net/) which is expensive but comes with end-user registration and billing.

We ([https://geocoder.opencagedata.com/](https://geocoder.opencagedata.com/)) went with kong and I know others in the 100s of million requests/day who use it. Hardware requirements are tiny. You will have to take care of redundancy yourself though (Postgres multimaster or Cassandra data store). Kong doesn't give you per-user metrics: in its datastore it keeps a count that resets every period (e.g. every day). So you will have to use one the logging plugins (can be text-file even) and query a separate system. We don't like the error pages: The HTTP codes and content are fine, but you can't for example return a XML data structure, so it lacks customization. That said with apiaxle and kong open source we could change it if we want. Support was great and the lua code is well written and documented.</comment>


Privacy Badger – Block spying ads and invisible trackers - <AUTHOR> https://www.eff.org/pb <comment><USER3> Nice. It works well with other extensions i.e. adblockers - Privacy Badger can significantly increase your privacy online because Adblock does not block invisible trackers by default; via FAQ.

Another fantastic extension from the EFF team with collaboration from The Tor Project, is HTTPS Everywhere, get it here [https://www.eff.org/https- everywhere](https://www.eff.org/https-everywhere)

<comment><USER4> Is Privacy Badger still necessary for people that already use ublock and its own tracking filters?

<comment><USER5> You can use Privacy Badger on sites that you want to support with ad views (as long as those adds don't track you).

A good example of this is many of the webcomics I read. Many of the adds on those sites are for other webcomics, I've found a couple of good new webcomics that way.

<comment><USER6> Much better to simply buy their merchandise instead.

</comment></comment></comment></comment><comment><USER7> According to EFF's Panopticlick[0], the biggest thing making my browser unique is the list of plugins that I am running. Short of disabling JavaScript, I don't know of a way to prevent that. Can this hypothetically be solved with Privacy Badger and are there plans to do so?

[0] [https://panopticlick.eff.org/](https://panopticlick.eff.org/)

<comment><USER8> This is yet another benefit to whitelisting JavaScript. Faster page load, more lightweight pages, less advertising and spying and crapware, less information going out.

And if you like a site you can enable it.

Go ahead, call me crazy like most people do.

<comment><USER7> I agree that this is better. Unfortunately, whitelisting is tedious so I often resort to enabling all JS when I quickly need to use a site or five that require it. Many don't have the patience to keep doing this, so disabling plugin enumeration might be a nice middle ground for them.

Security/privacy doesn't have to be all-or-nothing.

<comment><USER8> We should be able to make "Security Groups" where we can apply less- restrictive settings (JS on, cookies) to trusted sites.

The Internet Explorer security model has 4 levels (Internet, Local Intranet, Trusted Sites, Restricted Sites) and you can choose a preset security settings package, or build your own, for each level.

Maybe Chrome/FF/Safari need something more similar to that, where we can specify different groups or levels, and then assign those to websites we visit.

The biggest problem with the IE method is that the UI is more tedious to add a site to a zone in IE11, than to add a site to the JS whitelist on Mobile Chrome.

</comment></comment></comment></comment><comment><USER9> This may be exactly what I want. I don't actually mind ads that respect my privacy and my attention. If ads didn't track my every move and didn't disrupt my workflow by making noises without permission or otherwise stealing my attention and time, I would have zero use for an ad blocking tool.

Of course, this doesn't say anything about stopping those invasive noisy ads or ads that block content, so I may still have to keep using uBlock. Maybe in some future ideal world, advertisers will learn that if they want me to see their ads, at all, they have to respect my privacy, my time, and my attention.

Maybe someone needs to make a "show only ads from people who aren't assholes" plugin.

<comment><USER10> The "show only ads from people who aren't assholes" is basically what AdblockPlus does.

<comment><USER11> Good point. I know EFF has a mission versus the one-man show that is ABP, but isn't this mostly identical otherwise? Is Privacy Badger just APP with a political statement attached?

Maybe there's something to be said for that...put your money where your browser is and support the web you want. You could also just donate to the EFF, I guess.

<comment> glass- ABP is not a one-man show, it's now developed by a company (Eyeo GmbH) that makes a lot of money getting companies like Google to buy into their "acceptable ads" scheme.

ABP also considers ads that track people (such as Google's) to be acceptable and whitelists them by default.

<comment><USER11> Thanks -- I did not know this. Is there an available list of what ABP considers "acceptable ads?"

<comment><USER12> The "acceptable ads" criteria are here:

[https://adblockplus.org/en/acceptable- ads#criteria](https://adblockplus.org/en/acceptable-ads#criteria)

If you make a modern-looking long-scrolling article that has an ad somewhere in the middle, it's not "acceptable". If you get a crappy CMS that splits every article into 9 pages with an ad at top and bottom, then it is.

The main weird thing is that 3rd-party tracking is "acceptable" (!)

(I recently added some details on the problem to the Aloodo tracking test, because users have started to assume that ad blockers fix everything. [http://blog.aloodo.org/posts/adblockers-myths- facts/](http://blog.aloodo.org/posts/adblockers-myths-facts/) )

</comment></comment></comment></comment></comment></comment><comment><USER13> Nice addition to my list

      - uBlock Origin
      - Self-Destructing Cookies
      - <USER2>
      - HTTPS-Everywhere
      - Privacy Badger

<comment><USER5> How much overhead to does running all of those incur?

<comment><USER14> Far, FAR less than the page- and cpu- weight of the crap they block. As in, it's a hugely transformative experience for web browsing, even for many "normal" sites that aren't merely social media click-farms.

I'll add to the list: Uninstall Flash completely. For much of the crowd here, that's probably a no-brainer after the recent spate of Flash zero-days, but still.

<comment><USER5> I suspect that depends entirely on the site you are visiting. This one for example loads almost nothing so running additional plugins will indeed add overhead.

Many of the sites that I use the most load very little unneeded resources and I tend to leave lots of tabs open while working.

Granted, I am not a "normal" web user, but so far all of the responses to my question have brushed it off as unimportant. My suspicion is then that they don't know the answer, which makes the brush off unconvincing.

<comment><USER14> > I suspect that depends entirely on the site you are visiting.

Yes, that's obviously true. But for my part, whatever overhead these tools do add is low enough that, even for no-crap sites like HN, if I can notice it at all it's within the page-load-latency noise threshold. Moveover, the increased browser stability, laptop battery life, etc. is an overwhelming win.

FWIW, I just fired up Chrome on HN and messed around with the dev tools a bit to see if there was any obvious overhead. Without taking the time for anything like rigorous analysis, loading HN with all extensions disabled vs. uBlock Origin and Privacy Badger had no immediately obvious effect on page load+render times. The superficial results agreed with my intuition: I'd have to collect data and run an analysis to uncover any added page load latency.

</comment></comment></comment></comment></comment><comment><USER15> I was using Privacy Badger, Ghostery, Disconnect, AdBlock Edge or uBlock. Nowadays I just use uMatrix[0] & Self-Destructing Cookies to have a whitelist browsing experience rather than a blacklist experience.

Perhaps when Privacy Badger does more for detection of first party stuff, then I'll add it back again.

      [0]: https://addons.mozilla.org/en-US/firefox/addon/umatrix/

</comment><comment><USER16> I would be interested in an easy-to-use local packet sniffer that attempted to give me hints on what I was leaking - what isn't via https from all apps on my machine, for example.

Obviously wireshark would get you 50% of the way there - to add to that then, a pretty UI focussed on scaring users with what information is being leaked - hostnames for SSL sites they're visiting for example.

<comment><USER17> This is a great project idea. A challenge is in classifying all of the elements of every protocol dissector as interesting or uninteresting. For example, TCP sequence numbers are high-entropy but low-consequence. MAC addresses are high-severity but normally not propagated to an ISP or a remote site operator.

There are also tensions between trying to identify leaks to a network eavesdropper and trying to identify leaks to a remote site (or ad network). In many people's analysis, the network eavesdropper is worse because you didn't mean to communicate with them at all, so any information they derive whatsoever is a pure loss of communications security. But for projects like Tor Browser and Privacy Badger, it counts as a loss of privacy if different sites can recognize you as the same user, even if you intentionally communicated with those sites.

Using HTTPS will prevent a sniffer from recognizing that some tracking cookies or identifiers are being sent, so you simultaneously get a true improvement against the network adversary and a false negative measuring privacy against the ad networks.

<comment><USER18> Considering that digital electric meters have been compromised, and that the one I studied had dual-band radios including WiFi spectrum, it may be best to assume that there may be unexpected data pathways that could use a MAC address. Note that the WiFi of many routers broadcasts the wired MAC addresses on the LAN as well as the wireless clients.

You're right about false-negatives with sniffers. If you read the source on pages you visit, you'll see https analytics data mining, so don't assume that every outgoing https connection is okay. (and some browsers don't use your normal DNS / hosts settings, so sites you think are blocked may not be)

</comment></comment></comment><comment><USER19> > in fact Privacy Badger is based on the ABP code!

This makes me sad. They should have based it on uBlock. ABP is very bloated, and really caused issues for my browsing experience. Not sure if I want to try it after reading that.

<comment><USER20> Privacy Badger is older than uBlock, it existed before uBlock, so they couldn't have based it on uBlock.

The bigger question today is whether Privacy Badger has value in light of uBlock… I don't know… anyone?

<comment><USER21> PB has value for people who only want to block trackers and not non-tracking ads. Believe it or not, some people like supporting sites through ads. They just don't like being tracked.

Personally I use uBlock and Privacy Badger. I'm not sure if it's entirely redundant, but I have not had any bad experiences with using both.

<comment><USER20> "supporting sites through ads" is like supporting your local grocery store through buying bottled water there.

Blocking ads and using reusable water bottles are socially responsible, positive behaviors. Anyone encouraging ads or encouraging bottled water (or _worst_ : encouraging bottled water ads) should be ashamed of the harm they're doing to the world.

</comment></comment></comment></comment><comment><USER22> I've been using this plugin since it's beta days and it's an excellent approach to privacy issues online and 3rd party entities.

<comment><USER23> I've also been using it for about a year and am generally happy with it. One caveat is that it does sometimes end up breaking site functionality when it blocks a script from loading, occasionally in confusing ways. Usually you can fix this by overriding a few of the blocked things in the dropdown list, but it takes a little bit of technical savvy to figure out what needs to be allowed. I had to disable it on my parents' computer because they got frustrated by sites breaking.

This is mostly with an earlier version; I just upgraded to 1.0 today.

<comment><USER5> Some sites do absolutely horrible. The worst I've seen set has been rdio. I'm boing to put that down to bad developer priorities.

</comment></comment></comment><comment><USER24> You have to enable JavaScript on that page just to read the text in a sane manor, otherwise it's mostly white on a light gray background and barely legible. (Firefox / OS X)

<comment><USER25> _barely legible_

That's exactly what I thought. Interesting that they're so hostile to non-JS people.

There's another trick that works on many sites, including this one. Keep JS disabled but do View/Page Style/No Style. IMO the site looks _better_ that way than with JS enabled.

Edit: one other trick I use frequently in Firefox for sites with poor contrast. Preferences/Content/Colors/Override the colors .../Always. Kind of a hassle to traverse so many menus. I'm sure there are ways to make that easier to do, but I'm a muggle when it comes to this stuff.

</comment></comment><comment><USER26> I got the following Chrome warning about the extension:

 _This extension is slowing down Google Chrome. You should disable it to restore Google Chrome 's performance._

Any other users with this issue?

<comment><USER27> Just peeked into the extensions tab to uninstall ghostery and saw this, hopefully it'll get fixed soon.

</comment></comment><comment><USER28> EFF team. Grats on having this out for almost a year now. Any stats from this that you're willing to share? Like for instance have any advertisers noticed this yet and stopped tracking people so ads can be displayed? I've got widgets on my website for disqus, twitter, facebook, etc and each of these are blocked by PB. This upsets me as the website owner that content I want my user to see is being blocked. Any word from them about this?

</comment><comment><USER29> Is not simply turning off cookies for external domains a fairly effective way of cutting a lot of tracking?

What's the downside to doing this?

<comment><USER30> Privacy Badger is for people who want to use someone else's curated list of what to block. You can accomplish the same manually by using other extensions to block by default third-party requests and third-party cookies.

</comment></comment><comment><USER31> Does anyone know if this includes a database of tracking hosts or if its self learning? Because for me on Reddit it counts all the CDN's as tracking domains and the actual tracking domains as the non-tracking ones [1].

[1] [http://i.imgur.com/7aw6rHo.jpg](http://i.imgur.com/7aw6rHo.jpg)

<comment><USER17> One of the developers answers:

"It's self learning! Things above the that divider are things that are reading or writing cookie, html5 local storage, or canvas data. Below are third parties that are not. You can manually change any of them, and if one of those domains is blacklisted via another site it will appear above that divider in the future."

</comment></comment><comment><USER32> Question to EFF:

Does Privacy Badger itself track me?

I know I could read through the source-code, but it would be quicker for myself (and others) to know if any tracking is done by EFF itself.

<comment><USER33> The FAQ site has this sentence:

 _Privacy Badger is governed by EFF 's Privacy Policy for Software._

In the privacy policy you have this:

 _Software Downloads: If you download and install software from EFF 's web site, we may collect information about your visit to our site. Once installed, our software may also connect automatically to our site to attempt to determine if updated versions are available. As a result, our site may log information related to the software downloads, such as your computer's IP address. Our collection, anonymization, and use of that data is described our web site privacy policy._

Web site privacy policy has this to say about the collected information:

 _Disclosure of Your Information

While EFF endeavors to provide the highest level of protection for your information, we may disclose personally identifiable information about you to third parties in limited circumstances, including: (1) with your consent; or (2) when we have a good faith belief it is required by law, such as pursuant to a subpoena or other judicial or administrative order._

So as a start you might want to disable automatic updates

</comment></comment><comment><USER34> Safari already has a setting, Cookies and Website data: Allow from websites I visit.

Is Privacy Badger the functional equivalent of that Safari feature?

<comment><USER22> Privacy Badger inspects the target domain and then pulls out requests to 3rd party domains. If you go to cnn.com and it makes additional request from your browser for resources at say facebook.com. Those 3rd party requests can be allowed, block cookies from the 3rd party or blocked entirely (so the request is not made). The really nice bit, is if Privacy Badger see's requests to the same 3rd party across multiple places, it'll filter it down automatically.

</comment></comment><comment><USER35> How much money will EFF negotiate from Google to enable Ads? AdBlock got 500 Mil, you can go for a Billion. Go Go Go.

</comment><comment><USER36> Badger is based on ABP code, so I suspect it would affect the performance gains I got by switching to uBlock Origin.

</comment><comment><USER37> Would be great to see Safari support for this, was a happy Privacy Badger user on FF for some time.

</comment><comment><USER38> The back and forward browser buttons appear to break the status reported by this extension.

</comment><comment><USER39> Is their hand-crafted 'yellow list' of allowed trackers viewable online?

<comment><USER40> [https://raw.githubusercontent.com/EFForg/privacybadgerchrome...](https://raw.githubusercontent.com/EFForg/privacybadgerchrome/master/doc/sample_cookieblocklist.txt)

<comment><USER39> Thanks!

Some of the entries seem suspect, e.g. YouTube.com - why do they think that Google won't track you through pages with YouTube embedded items?

<comment><USER17> The entries there are things that seemed especially important for sites' functionality; they are supposed to be there as a result of these criteria:

[https://github.com/EFForg/privacybadgerfirefox/blob/master/y...](https://github.com/EFForg/privacybadgerfirefox/blob/master/yellowlist- criteria.txt)

If you don't want something to be on the list, you can also override it in your own copy of Privacy Badger.

<comment><USER39> It still seems odd. Most users who install the extension aren't going to carefully read an obscure GitHub page, they will wrongly assume that they are now protected, while the 'yellow' list of very common sites is still allowing many big companies to continue to track them. That seems wrong to me.

</comment></comment></comment></comment></comment><comment><USER41> I'm a decent fan of this because it doesn't block ads that behave themselves. And ad blocking is still morally corrupt.

</comment><comment><USER35> I've sent "Do Not Charge" signal to the cashier on my way out of the store. He said I need Charge Badger, but it's not available until 2017. I've tried also "Do Not Track", but he refused to close his eyes. He charged me. Damn.</comment>


Build Tools for iOS - <AUTHOR> http://www.objc.io/issue-6/

<comment><USER2> This is actually "[a] periodical about best practices and advanced techniques in Objective-C." It turned out to be more interesting than the HN title made it seem.

<comment><USER3> You have to admin that it doesn't happen too often :D

</comment></comment><comment><USER4> They also now have a Newsstand app, which is predictably lovely. One of the best programming resources I'm subscribed too, the articles are always interesting and I always learn something new from them.

<comment><USER5> I subscribe to this and NSHipster. What other Obj-C resources do you follow?

<comment><USER6> Mike Ash's articles are the most in-depth I've seen.

[http://mikeash.com/pyblog/](http://mikeash.com/pyblog/)

<comment><USER7> Yikes, that index page is incredibly hard to read, the actual content pages are much easier to read though. Looks like a solid resource, thanks.

<comment><USER8> It's worth it to go through the archives of Friday Q&A on Mike Ash's site.

</comment></comment></comment></comment></comment><comment><USER9> > There are a lot of other analyses that clang does for you. If you clone the > clang repository and go to lib/StaticAnalyzer/Checkers, you'll see all the > static checkers.

You can get a list of these from clang with `clang -cc1 -analyzer-checker- help`

Looks like this [http://pastie.org/pastes/8466312/text](http://pastie.org/pastes/8466312/text)

</comment><comment><USER10> Love objc.io and their consistent quality iOS articles. I learn at least a few new things with every newsletter.

</comment><comment><USER11> Love objc.io Best iOS articles ever

</comment><comment><USER12> How does Travis CI stack up against the builtin continuous integration new to Xcode 5?

<comment><USER13> Travis CI (for now) is stuck on iOS 6, so you're out of luck if you're targeting 7. They expect to resolve this soon. You must also subscribe to a paid plan if you want Travis to build your private repo. That said, I use Travis for _all_ of my iOS 6-compatible public cocoapods on Github.

Xcode 5's built-in Xcode bots require OS X Mavericks Server ($20) and, in my experience, has a very brittle setup if you're using Cocoapods. It's probably fine for simpler projects.

I've personally been running Jenkins locally. My build script:

      - Downloads provisioning profiles from Apple's dev center using Cupertino[0]
      - Builds and codesigns my app using Xctool[1]
      - Archives the app with xcrun
      - Builds my app again with the Testflight library, then uploads the result to TF

[0] [https://github.com/nomad/cupertino](https://github.com/nomad/cupertino)

[1] [https://github.com/facebook/xctool](https://github.com/facebook/xctool) \-- the only Facebook product I use!

Edit: Jenkins has an Xcode plugin, though I don't use it (I use xctool instead). I do use Jenkins' Testflight plugin, which makes it very easy to upload your build to testflight and include the build's changelog in your release notes.

<comment><USER14> Thanks for the Jenkins info. If you have an iOS Developer account, OS X Mavericks Server is available at no additional cost.

</comment></comment></comment><comment><USER15> Maven integration - [https://github.com/sap-production/xcode-maven- plugin](https://github.com/sap-production/xcode-maven-plugin)

</comment><comment><USER16> I'd be interested in hearing what other devs are using for iOS builds. All the options I've tried have been pretty terrible.</comment>


An amphibian fungus has become "the most deadly pathogen known" - <AUTHOR> https://www.nytimes.com/2019/03/28/science/frogs-fungus-bd.html <comment><USER2> Fun factoid: in the 1930s, it was discovered that you could inject human urine into African clawed frogs; if the frogs subsequently ovulated, the human was pregnant, and for something like 2 decades this became the universal standard test for human pregnancy. It's thought by some that the circulation of those African clawed frogs introduced chytrid pathogens to habitats around the world, since the first recorded pathological chytrid specimens were from South Africa.

<comment><USER3> How on Earth does someone discover that? What possible series of events or hypotheses would lead someone to perform such an experiment?

<comment><USER4> I don't know why, but this conversation reminds me of a guy I used to work with.

The guy had studied animal husbandry and he told my co-workers and me that if you inserted a foreign object (about the size of a quarter) up into the reproductive area of a hen at _just the right time_, the hen would often lay an egg with the foreign object trapped inside.[1]

Our business plan:

* get a bunch of hens

* have guys mail $500 + engagement rings to us.

* insert engagement ring into hen

* ship back ring-encased egg to the dudes.

* dudes ask girlfriends to cook an omelette...

I still wonder how anyone figured that out.

[1] There might have been surgery involved. Can't remember.

<comment><USER5> Is that how they manufacture kinder eggs?

<comment><USER6> Proper kinder eggs are illegal in the USA so there's a sizable portion of this readership that won't get that joke.

<comment><USER7> I like how the USA is willing to ban something so silly to protect children but gun control is offlimits. Like what.

<comment><USER8> Putting aside the bait, the whole story with a Kinder Eggs has become a tale told to illustrate a point, but the story itself is nonsense. The US didn't specifically ban them, they simply fall under a (sensible) pre-existing law and no one gives enough of a crap to change it. Simply put it's banned to sell candy with something inedible inside of it. This law goes back to the 1930's and frankly, makes a lot of sense in the general case.

Besides, slightly modified kinder eggs _are_ sold in the US.

<comment><USER9> Non-US version: [https://en.m.wikipedia.org/wiki/Kinder_Surprise](https://en.m.wikipedia.org/wiki/Kinder_Surprise)

US version: [https://en.m.wikipedia.org/wiki/Kinder_Joy](https://en.m.wikipedia.org/wiki/Kinder_Joy)

"Kinder Surprise eggs are legal in Canada and Mexico, but are illegal to import into the US. In January 2011, the US Customs and Border Protection (CBP) threatened a Manitoba resident with a $300 (Canadian dollars) fine for carrying one egg across the US border into Minnesota.[43] In June 2012, CBP held two Seattle men for two and a half hours after discovering six Kinder Surprise eggs in their car upon returning to the US from a trip to Vancouver. According to one of the men detained, a border guard quoted the potential fine as US $2,500 per egg.[44]"

<comment><USER10> Like sure, ban the sale, but why the ownership or importation without intention to sell? That seems to overstep the actual usefulness of the law. Like I can put toys in candy in my home and presumably if I don't try to sell it, it's legal.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> Just thinking about how much work and research from organizations like the CDC put in to preventing another Spanish flu-like pandemic for humans, it seems shockingly obvious that pandemics would be occurring for other species where technology and quarantine are not as strictly used. Its only through observations like this that I've realized how devastating the impact of contaminated ecosystems must be. I suppose that's why I've needed to check all those boxes about visiting farms/smuggling produce whenever I go through customs.

Since this article is specifically about frogs, I can't help but wonder if the drastic reduction of insect biomass isn't contributing to their decline. With numbers as drastic as a 75% decline in certain areas[0], it's hard to imagine frogs/birds/etc. aren't suffering from population decline due to reduced food availability.

[0] [https://www.scientificamerican.com/article/as-insect- populat...](https://www.scientificamerican.com/article/as-insect-populations- decline-scientists-are-trying-to-understand-why/)

<comment><USER12> Also makes you realize how BS the common refrain that "the circle of life/pyramid is super fragile" is.

Diseases have wiped out huge portions of species for millennia but life somehow carried on just fine.

<comment><USER13> If we weren't at the top of the house of cards, we'd have nothing to worry about. But unless you can stomach eating nothing but genetically enhanced yeast, it might be worth trying to keep some other species down the food chain around.

</comment></comment></comment><comment><USER14> FYI: [http://science.sciencemag.org/content/363/6434/1459](http://science.sciencemag.org/content/363/6434/1459)

> _Anthropogenic trade and development_ have broken down dispersal barriers, > facilitating the spread of diseases that threaten Earth's biodiversity. We > present a global, quantitative assessment of the amphibian chytridiomycosis > panzootic, one of the most impactful examples of disease spread, and > demonstrate its role in the decline of at least 501 amphibian species over > the past half-century, including 90 presumed extinctions. The effects of > chytridiomycosis have been greatest in large-bodied, range-restricted > anurans in wet climates in the Americas and Australia. Declines peaked in > the 1980s, and only 12% of declined species show signs of recovery, whereas > 39% are experiencing ongoing decline. There is risk of further > chytridiomycosis outbreaks in new areas. The chytridiomycosis panzootic > represents the greatest recorded loss of biodiversity attributable to a > disease. [emphasis added]

Damn. I mean, I hate those Asian stink bugs, but at least they aren't killing me.

<comment><USER15> So many specied affected by single pathogen. I wonder if there was something like that in history of homo species.

Some virus that wiped all homo species, except homo sapiens that gets just runny nose for few days because of it.

</comment></comment><comment><USER16> Interesting, I had always been told it was pollution... I used to live next to a river and we always had tons of frogs. Then after a few years, almost all of them disappeared. I heard people claim pollution, but we were still getting our drinking water from the same source, so I had my doubts.

This makes way more sense and I'm surprised I had no idea.

<comment><USER17> Global warming was the scientific consensus a few years ago. It was thought that increased temperatures and radiation adversely affected amphibian eggs causing a failure to hatch.

I guess it could be multifactorial

<comment><USER18> User devoply just posted this paper linking climate change to the spread of this fungus. It's not just trade and travel.

[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1685858/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1685858/)

<comment><USER14> > Our analysis shows a significant association between change in local > climatic variables and the occurrence of chytridiomycosis within this > region. Specifically, we show that rising temperature is linked to the > occurrence of chytrid-related disease, consistent with the chytrid-thermal- > optimum hypothesis. We show that these local variables are driven by general > circulation patterns, principally the North Atlantic Oscillation. Given that > B. dendrobatidis is known to be broadly distributed across Europe, there is > now an urgent need to assess the generality of our finding and determine > whether climate-driven epidemics may be expected to impact on amphibian > species across the wider region.

So yes, trade and travel spread the fungus. And increasing temperature decreases resistance to it. Very succinct: "chytrid-thermal-optimum hypothesis".

</comment></comment></comment></comment><comment><USER19> "The fungus turned up in other countries, but studies of its DNA suggest that Bd originated on the Korean Peninsula. In Asia, amphibians seem impervious to Bd, but when it got to other parts of the world — probably via the international trade in pet amphibians — the pathogen reached hundreds of vulnerable species."

How long will it be before we realize that perhaps the globe wasn't designed for globalization?

Note: I'm not a Luddite. I'm simply doing the analysis and stating the obvious.

<comment><USER6> The globe wasn't designed, and those animals didn't choose immunity. It was developed via evolution. And evolution will similarly wipe out massive numbers of species due to global exposure of pathogens. We are in the midst of the greatest extinction event this world has ever seen. Keep your head down and may the antigens be in your favor.

<comment><USER19> That's my point. Evolution was a long, slow, and often isolated process. When you begin to jet things from one side of the planet to the other you're doing things that are entirely atypical of evolution.

The point being, any species that developed and survived via evolution is unfit for speed and breadth of the current human + technology modern version of "evolution".

</comment></comment></comment><comment><USER20> maybe this is because i am no longer a kid and not spending as much time outside or due to location, but i can't remember the last time i saw a frog, worm, toad, or turtle in the wild.

<comment><USER21> Toads and turtles are everwhere around my house in the summer (US Midwest). Hear frogs all night too. I accidentally ran over a turtle with my lawn mower last summer. Felt pretty bad about it and I really try to watch for them now.

<comment><USER22> In my childhood regions, amphibians and reptiles were at least 4x in the 60s. They tend to be more tightly clustered now. The clusters are more distant from each other, and the spaces between more sparsely populated. Not in any danger of extinction just yet, at least for the common species. Perhaps many minor species are gone - I wouldn't be able to tell. Just about the only things to thrive have been feral cats, birds, bats, squirrels, mice, rabbits and deer. They are an absolute infestation.

</comment></comment></comment><comment><USER23> I approve of both the general encouragement to use the original headline and rewriting the headline in this case.

Maybe we could have a general rejection headlines that include the words "worse than" and "thought"?

The Gray Lady coloring with clickbait. _sigh_

</comment><comment><USER24> Paper (pdf) — [http://science.sciencemag.org/content/sci/363/6434/1459.full...](http://science.sciencemag.org/content/sci/363/6434/1459.full.pdf)

</comment><comment><USER25> Does anybody know if this is related to the fungus killing Fire Salamanders in Europe? [https://en.wikipedia.org/wiki/Fire_salamander#Confirmed_host...](https://en.wikipedia.org/wiki/Fire_salamander#Confirmed_hosts_of_Batrachochytrium_salamandrivorans)

<comment><USER26> From the article:

> _In 2013, researchers discovered that a related fungus was attacking fire > salamanders in Belgium. Called Batrachochytrium salamandrivorans (Bsal for > short), it seemed poised to do to salamanders what Bd has done to frogs._

> _But this time, things are playing out differently._

> _Researchers discovered the outbreak and identified Bsal quickly. They > immediately began running experiments to understand the threat it posed. > Thanks to barriers to trade now in place, Bsal has yet to threaten another > species anywhere._ [...]

</comment></comment><comment><USER27> I wonder if there is a good way to test for this, and if it affects humans.

Kambo[0] is a medicine extracted from the South American Phyllomedusa Bicolour[1] tree frog that is used by humans, I believe without any processing. (As if it weren't dangerous enough already...!). I hope practitioners (e.g. the IAKP[2] take note) can come up with a way to test before using it.

[0] [https://www.erowid.org/experiences/subs/exp_Phyllomedusa_bic...](https://www.erowid.org/experiences/subs/exp_Phyllomedusa_bicolor.shtml)

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

[2] [https://iakp.org/](https://iakp.org/)

</comment><comment><USER28> I have an idea. Frogs are used in labs since a long, long time. We know a lot about their embryology and genetics. They have big eggs with easily accessible cells and lay plenty of them.

If we can make a transgenic tomato adding genes for frost resistance, we probably could make a transgenic frog adding korean frog genes for fungus resistance. Then release then in a safely enclosed area. If both kinds of frogs keep vanishing at the same pace, then fungus is a symptom and not a cause (or we did it wrong). If not, we would have discovered a last try to gain a precious time and save thousands of species in captiviy even if the zoos are in areas contaminated by the fungus.

</comment><comment><USER29> Not that this makes it a non-problem, but I recall that endothermic species are _relatively_ fungus-resistant given that most fungi prefer cooler temperatures.

I'm wondering if any epidemiologists could weigh in wrt the risk of spread to humans or other animals.

<comment><USER18> This study explores exactly this question. In short, climate change moderated the temp of one climate which would normally kill off the fungus, while amphibians seek cool shelter during the hottest days thus keeping the fungus alive and also speeding transmission.

Key passages:

 _"In this region, global warming is moderating the naturally severe cool conditions, and among other consequences, as Harvell et al. (2002) pointed out, shorter, milder winters are expected to increase the incidence of disease."_

 _"...However, this recent warming has not increased the number of days where the maximum temperatures exceed 28°C, the critical threshold for successful persistence of B. dendrobatidis. In addition, even if this limit could be achieved in the area, survival and persistence of the pathogen may occur as a consequence of the active avoidance of high temperatures by the metamorphs preferential selection of damp and cool habitats within which to hide."_

 _"...On the other hand, the sixth climatic factor, relating to the abundance of mist and dewfall, presents the highest values during May, when the breeding period of the amphibians takes place. Therefore, as may occur with the temperature scenario discussed earlier, a value of 100% relative humidity provided by overnight dewfall and mists during the breeding period could be a key determinant in facilitating the transmission of fungus..."_ [1]

This is why climate change is so dangerous. We don't understand how interconnected and complex ecosystems are to truly predict its effects.

Credit to devoply for posting the paper.

[1] [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1685858/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1685858/)

</comment></comment><comment><USER30> a fungus is also responsible for a serious disease killing millions of North American bats.

[https://en.wikipedia.org/wiki/White- nose_syndrome](https://en.wikipedia.org/wiki/White-nose_syndrome)

<comment><USER28> It is still suspicious that many insectivorous are being killed in mass by fungus epidemies. No rodents, no carnivores... frogs, bats, salamanders...

Are in decline insects eating other insects and spiders? It seems that not. Maybe not studied really. Less predators would help also.

</comment></comment><comment><USER31> Would we make an antifungal and spread it throughout the world? Seems like that could somehow backfire on us.

</comment><comment><USER32> Another leak in the mother-ship we call earth.

[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1685858/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1685858/)

</comment><comment><USER33> Hope this doesn't mutate to affect humans.</comment>


Real time dutch speeder map - <AUTHOR> http://www.bestwelsnel.nl

<comment><USER2> It's great how much data has been made open by the Dutch government. I was planning to mess around with some of their open data sets in the near future.

Http://data.overheid.nl

<comment><AUTHOR> that's interesting indeed :) our king costs 40 million a year :/</comment></comment>


Querulous, Twitter's Scala library for SQL databases - <AUTHOR> http://github.com/nkallen/querulous

<comment><USER2> "Handles all the JDBC bullshit so you don't have to." Music to my Java-addled ears!

<comment><AUTHOR> Yeah that's really the best part. The other thing I really like is that it doesn't try to make you use some sort of DSL in place of SQL like other libraries do.

</comment></comment><comment><USER3> Here is some documentation with examples,

[http://github.com/nkallen/querulous/blob/master/README.markd...](http://github.com/nkallen/querulous/blob/master/README.markdown)

</comment><comment><USER4> Looks like a worse than Hibernate orm (nih). And twitter dropped mysql for cassandra.</comment>


Watch as over 5,000 Eve Online pilots destroy a fully operational Death Star - <AUTHOR> http://www.pcgamer.com/watch-as-over-5000-eve-online-pilots-destroy-a-fully-operational-death-star/ <comment><USER2> This is probably reading way too much into things, but the videos made me wonder what viewing modern battles might be like with drone flights with cameras, ground troops with cameras, and everyone with the occasional tracer round, or some similar technology. Would it eventually become a real life _Ender 's game_?

</comment><comment><USER3> Play the video at 1000x if you want to make it interesting.</comment>


Amzi Prolog becomes open source - <AUTHOR> http://www.amzi.com <comment><USER2> Prolog + Logic Server source repository: [https://github.com/AmziLS/apls](https://github.com/AmziLS/apls)

Binaries: [https://github.com/AmziLS/distribution](https://github.com/AmziLS/distribution)

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

</comment><comment><USER3> MIT license [edit: for v10]: [https://github.com/AmziLS/apls/blob/master/license.txt](https://github.com/AmziLS/apls/blob/master/license.txt)

[edit: for v9] Not too sure how that fits with the restrictions in the download page, [http://www.amzi.com/AmziPrologLogicServer/store.php](http://www.amzi.com/AmziPrologLogicServer/store.php)

But I do get a small itch to try the [http://www.amzi.com/AdventureInProlog/advtop.php](http://www.amzi.com/AdventureInProlog/advtop.php)

""" Adventure in Prolog ™ — Prolog Tutorial

A full tutorial for learning Prolog, using an interactive fiction game for it's basic example. In the course of the tutorial you will also build an expert system and a business application. """

<comment><AUTHOR> I think the downloads are v9 which is still a commercial product.

      The very stable 9.x release of the software will remain as a supported commercial version.

<comment><USER4> I hate to pick nits too much, but I kinda dislike when people use this kind of phrasing. "Open source" and "commercial" are not antonyms. Something can be both open source and commercial at the same time. RHEL is a good example.

I mean, I get the point they're trying to make (I think) but I wish people would be a little more precise when talking about this topic.

<comment><USER5> I agree. I posted an essay on Schneier's blog countering the false dilemma between open source and proprietary. I'm modifying next version to say "shared source" as "open source" has specific meanings. Yet, many needs can be met with shared-source, proprietary software that are thought to be OSS-only.

[https://www.schneier.com/blog/archives/2014/05/friday_squid_...](https://www.schneier.com/blog/archives/2014/05/friday_squid_bl_424.html#c6051639)

<comment><USER6> Proprietary and free software are a dichotomy. It's commercial and free software that's a false dichotomy. It doesn't matter if you can "see the source" if you don't have the four freedoms when using the software.

<comment><USER5> You can have all of the key freedoms with the restriction that they're paid for. This continues development, maintenance, and support. I'm not speculating as there's software with source available developed through commercial licensing.

So, "free as in Stallman" software might be a dichotomy with proprietary but not "free as in free enough for many people." That exists and can flourish further with right mix of organizations, charters, licenses and so on. Just little work in it.

<comment><USER6> > You can have all of the key freedoms with the restriction that they're paid > for.

None of the four essential freedoms mention price. I work for a free software company which sells that software. I don't know what you're referring to. I clearly said that "free and commercial software are a __FALSE __dichotomy " \-- meaning that you can have commercial free software.

> So, "free as in Stallman" software might be a dichotomy with proprietary but > not "free as in free enough for many people."

Again "free as in Stallman" doesn't have anything to do with whether you pay for the software (in fact, he used to sell copies of GNU Emacs for $100). Proprietary software is software that takes away your freedom to use, modify and distribute the software. You can pay for free software and you can pay for proprietary software. But you can't get proprietary software that respects your freedom. That is a dichotomy.

Free doesn't refer to price it refers to freedom. Please stop spreading misinformation.

<comment><USER5> "I clearly said that "free and commercial software are a FALSE dichotomy" \-- meaning that you can have commercial free software."

Oh, I apologize. I clearly misread that exact statement. I bet it's because free, commercial, and false in same sentence almost always are arguing against what you said. That the two can't be combined. Whereas, we're arguing in different ways that they can. I must have skimmed it with my brain jumping right past the actual words to its intuitive guess of what they meant. At least I see how I failed. :)

"Proprietary software is software that takes away your freedom to use, modify and distribute the software. You can pay for free software and you can pay for proprietary software"

What firms are bringing in billions licensing or selling free software? I need a list of successful companies longer than Red Hat that can compete in both investment and lawsuits with big, proprietary firms. You can sell truly free software but almost nobody will buy it w/ you being super-niche in revenue. Whereas, useful and proprietary software can bring in significant money from customers esp in enterprise or government scenes. The proprietary ones just tend to scheme on customers, disappear, and other stuff. The free ones often aren't developed much, maintained, and so on.

My concept is to give you all the freedoms except for free distribution for a given project. You can use, modify, whatever the software as long as you pay the non-profit that develops, maintains, and supports it. You can also re- distribute that to other paying customers of the project. If non-profit stop supporting or distributing it, it goes BSD or Apache immediately per terms of the license or charter.

What are you missing other than widespread, free distribution in this model? As in, the availability of freeloaders that rarely contribute crap back. Do note that the project can give free copies in exchange for testing/feedback to get many eyeballs effect. Can also give discounts or free copies to academics to get their improvements.

What's left? Seriously, as I'm trying to see how close proprietary, shared source can get to FOSS without loosing the "sustainable, cash flow" part.

<comment><USER6> > What firms are bringing in billions licensing or selling free software?

I work for SUSE, which is a free software company. Red Hat is another, as you mentioned. I found a list on Wikipedia[1] which has quite a few entries (though quite a few of those companies either no longer exist or were bought out by companies that don't exclusively work on free software).

> You can sell truly free software but almost nobody will buy it w/ you being > super-niche in revenue.

That depends on your business model. The SUSE (and Red Hat) business model is to sell you a complete operating system which you are guaranteed to have support for. This is paid for by license costs for the base system and "modules" which are other pieces of software. If a user decides to install software which they didn't pay for, we don't support such a configuration if it breaks. Support in this case is not just support in setting up the system, it's also security updates and bug fixes (which are sometimes written by us and contributed back to the community). This sort of business model allows you to sell completely free software, because you're not selling the actual software you're selling licenses and support.

> My concept is to give you all the freedoms except for free distribution for > a given project.

That would then be considered proprietary software in the strict sense of the word. It's better than nothing, but you have no practical freedom in that case because you cannot share your improvements to create a community -- one of the goals of the free software movement. The main thing to know is that free software is meant to mean that you cannot become entirely dependent on a company to support you. If you don't have the freedom to distribute modified and unmodified copies then you're (practically) at the mercy of the company that gave you the software.

> Seriously, as I'm trying to see how close proprietary, shared source can get > to FOSS without loosing the "sustainable, cash flow" part.

Personally, I would never buy such software. I understand why it seems to be valuable to you to remove the free distribution freedoms of your users, but I don't agree with the logic. The problem is that you're still trying to "just sell the damn code", which doesn't guarantee you revenue with free software licenses (you can still sell it, but it's possible for a user to share the code with others without you knowing about it). Now, it's not very likely that many users would actually share the code (unfortunately), but it is possible. So, now you have to ask the question "what should I be selling". If you sell support (clients pay for you to develop new features for them, providing security fixes, bug fixes, etc) then you can make money selling completely free software. If you're scared of someone making money from your code, make it GPL and then you can take their changes back into your software.

Free software and proprietary software have only one difference which is how their distributed. Proprietary software is distributed in binary form only. Free software is usually distributed in binary and source form, but you can also distribute it in binary form with a link to where the source code is (and you can make it only be available to your customers -- that's still free software).

[1]: [https://en.wikipedia.org/wiki/Category:Free_software_compani...](https://en.wikipedia.org/wiki/Category:Free_software_companies)

<comment><USER5> Thanks for a thorough reply. I'll try to address the concerns.

"I found a list on Wikipedia[1] which has quite a few entries (though quite a few of those companies either no longer exist or were bought out by companies that don't exclusively work on free software)."

Appreciate the list. A bunch of those, including yours, are proprietary software companies that also GPL stuff. Or hybrids were a huge chunk of the revenue is support or GPL-component consulting instead of licensing proprietary addons. Still worth considering but not a "free software" company if issuing paid licenses.

" it's also security updates and bug fixes (which are sometimes written by us and contributed back to the community). This sort of business model allows you to sell completely free software, because you're not selling the actual software you're selling licenses and support."

That's true. It's also the model that rarely makes any real money. Red Hat and SUSE are exceptions to the rule, esp Red Hat. That they both license proprietary software on top of that model clouds the issue further. We'd have to have companies with only FOSS offerings plus support and services matching those or proprietary revenues to make the argument. I'll look at your link to see if I find those plus if there's financial data on app/feature vs support licensing to see what split of the revenue/profit they make.

"but you have no practical freedom in that case because you cannot share your improvements to create a community -- one of the goals of the free software movement."

You can do that exactly how I described. You underestimate how powerful of communities that can develop around proprietary software. Microsoft and IBM are extreme examples that had more to do with monopolistic practices. So, maybe Borland's Delphi or even early Solaris are better examples. The community is just limited to those that are willing to pay. That's FOSS's advantage.

" If you don't have the freedom to distribute modified and unmodified copies then you're (practically) at the mercy of the company that gave you the software."

This is a huge problem. It's why I'm working to eliminate it but FOSS has clear advantage here. We saw this with Oracle dropping OpenSolaris followed by others picking it up.

"Proprietary software is distributed in binary form only."

That's not true at all. MCP, the villain in Tron & brilliant OS for Burroughs, was distributed in source form to clients in the 60's with their modifications/fixes often going into new releases. Many proprietary software since were similarly shared source. The high-assurance security kernels even mandated vendors supplying source so you could meet A1-class requirement of inspecting and building it yourself. Even Windows source is available to some partners. There's also dual-licensed model where free software is a byproduct of licensing proprietary, shared-source software. So, proprietary and source available are not contradictory in any way. It's just distribution part as you said where distinctions must be made.

"If you sell support (clients pay for you to develop new features for them, providing security fixes, bug fixes, etc) then you can make money selling completely free software."

This is true. The question is "Do I make the same money at same market share as if I license it for low pricing?" I can imagine a database that cost even $5,000 per organization that's competitive with popular RDBMS on common usage with better reliability or security will probably break even on its development cost after first few dozen or so customers. That's plenty for development with enough left for support and administrative stuff. A $1,000/yr support agreement will take substantially more customers to cover all costs, especially development. Only exception I could see is if the developers were the admins and support people as well with obvious productivity issues.

So, that's the key difference. If it's paid, I can put more into _the product_ to benefit my _users_ while making some good profit along the way. Or hardly any at all depending on my goals. A support-driven organization can't compete unless they have crazy market share. I can also afford better talent, 3rd party solutions to tough problems (eg enterprise integrations), and patents for leverage in suits. Worst case, I can [L]GPL a specific product after a certain number of years to ensure minimum amount of investment recovered with it going to support contracts from there on.

Quite a few possibilities. I contend the only advantage FOSS has... maybe temporarily or maybe inevitably... is network effects of spreading as other benefits can be had in shared-source, paid agreements. Even isolation of risk of company with its charter or license terms.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> So, PROLOG people, how excited should anyone be about this? This vs SWI, Visual Prolog, Prolog in a LISP like Allegro, or alternatives like Mercury. Is this significant in general or just for their community of users?

<comment><USER7> I'm first of all excited by the fact that this made first page on HN. I didn't realise there was that much interest in Prolog news (as in more than two or three people).

Also, having more open-source Prolog engines is a very good thing, both for the language and for the project itself. For the project, it's good because it makes it easier for a community to grow around it. Swi has benefited enormously from its popularity (Jan Wielemaker has commented on this occasionally). For the language, it's good because the more healthy Prolog communities we have, the more we can hope to get new people interested in the language.

Comparing to other Prologs (and Prologs-ish'es) the problem with having closed-source and only for-pay Prolog engines is mainly one of portability, which in the Prolog world is a bit shit (and that's a vast understatement).

Frex, I wrote my degree dissertation using Win-LPA Prolog in 2010-11. LPA is commercial and I don't have a licence anymore (I had a student one) so now I can't run my dissertation. I tried (and tried (and tried)) to make it work on Swi but failed (and failed (and failed))[1].

The problem is there are subtle differences between implementations that bite you in ways you never thought possible, and it's just aaaargh hard to get the same program running in the same way on two different Prologs.

Apparently the exception to this portability hell is Yap and Swi, who have worked together to maintain some compatibility with each other. I don't have experience of this myself (after getting burned I've stuck to Swi) but if Amzi open-sourcing their stuff also means they'll be more open to this sort of working with others, then that's really, really amazing news.

____________________________

[1] It's here: [https://github.com/stassa/Gleemin](https://github.com/stassa/Gleemin) But it will hurt you.

Also, graduate dissertation, 5 years ago: _embarrassing_.

<comment><USER8> _The problem is there are subtle differences between implementations that bite you in ways you never thought possible, and it 's just aaaargh hard to get the same program running in the same way on two different Prologs._

Or even between versions of the same implementation. E.g., I know of one project that sticks with SICStus 3, because in SICStus 4 _findall /3_ removes blocked goals from copied variables. This system relies quite heavily on blocked goals and working around this change turned out to be too expensive.

(If I recall correctly ;).)

Another example is SWI Prolog diverging from the ISO standard in version 7 (e.g. double quoted strings are now a type on their own, rather than a list of character codes). Luckily, there is a _\--traditional_ flag for older code.

In both cases, there are good reasons for the changes, but it makes portability hard.

Edit: wanted to add that this is not intended to be a critique of these particular (great) implementations of Prolog.

<comment><USER7> >> Or even between versions of the same implementation. E.g., I know of one project that sticks with SICStus 3, because in SICStus 4 findall/3 removes blocked goals from copied variables. This system relies quite heavily on blocked goals and working around this change turned out to be too expensive.

When you say "blocked goals" do you mean it like:

:-block(a_block). % ... stuff ... :-end_block(a_block).

That sort of thing? Anyway yeah, sounds typical :/

With Swi I hurt a little recently when an update screwed up some of my stuff but then that was my fault for doing hacky tricks and trying to use modules as they're not meant to be.

>> In both cases, there are good reasons for the changes, but it makes portability hard.

Oh indeed. I started using 7.x the moment it was out pretty much, knowing that it means I'm tied to Swi for good and bad, but there's much more good than bad and so far I haven't regretted it.

<comment><USER8> _When you say "blocked goals" do you mean it like:_

These:

[https://sicstus.sics.se/sicstus/docs/latest4/html/sicstus.ht...](https://sicstus.sics.se/sicstus/docs/latest4/html/sicstus.html/mpg_002dref_002dwhen.html#mpg_002dref_002dwhen)

[https://sicstus.sics.se/sicstus/docs/4.0.7/html/sicstus/Bloc...](https://sicstus.sics.se/sicstus/docs/4.0.7/html/sicstus/Block- Declarations.html)

<comment><USER7> Ah, OK, when/2 -cheers :)

</comment></comment></comment></comment></comment></comment><comment> valm- Does anyone have knowledge of how this compares to swi-prolog?

[http://www.swi-prolog.org/](http://www.swi-prolog.org/)

</comment><comment><USER9> A superficial inspection of the engine files seems to say most of them have not changed since 2006-2009 timeframe. Did they run out of ideas, or enthusiasm, or money, I wonder?

</comment><comment><USER10> Prolog was the AI language two decades ago, that might be too early then, but does it have a future these days? just curious.

<comment><USER11> I'm not an AI specialist, but to my limited understanding: AI today is mostly machine learning, which means letting an algorithm build classifications from data, and deducting (more like just matching) things from the data that was gained from the learning (basically statistically). Prolog is about writing rules/matches/classifications manually, and then deducting logically from these (not statistically, but precisely). Prolog and other logic languages aren't playing in the same area, and their approach will remain relevant in the future in the areas where they already fit (e.g. expert systems with rules written by humans, writing machine checked mathematical proofs).

Now I should probably recommend you to play a bit with both approaches and do the same myself.

<comment><USER10> Very helpful. Prolog is more of an expert system(my classmate used that for smart navigation for big city traffic when GPS was not available then, not sure how that can be done though). AI is more of neural network nowadays that is learning from some sample data set and then make decisions out of that.

</comment></comment></comment><comment><USER12> Slightly off topic... How does Prolog compare to Erlang, which was written in Prolog (at least the initial implementation was).

<comment><USER13> Very late response, and only cursory, but:

Prolog and erlang are _not_ the same, or even particularly similar. Some features (such as unification, which is what erlang uses, not assignment, with the = symbol) are present, and inspired by, prolog. But the underlying computational models aren't the same. Erlang is functional/concurrent/procedural (procedural meaning you write an explicit sequence of steps). Prolog is functional/declarative. You don't (normally) write explicit steps. Rather, you describe the solution you want to find, describe the configuration of a system (essentially propositions and axioms), and let prolog search for your solution. You can do a lot more than that with the operators (declaring order of execution, terminating early, etc.), but the underlying computational model is this search. You would not use them for the same domain.

You _can_ because they're both turing complete and thus capable of expressing the same computations. You _won 't_ because erlang excels in its concurrency model (and performance with many concurrent processes), and prolog excels in its declarative/search model. I believe there are some other languages (Oz/Mozart?) that might be suitable if you want a hybrid of erlang's concurrency and prolog's declarative model.</comment></comment>