Erlang-in-Haskell: an Erlang-like distributed computing framework for Haskell - <AUTHOR> http://hackage.haskell.org/trac/ghc/wiki/ErlangInHaskell

<comment><USER2> Here is a related paper. [http://research.microsoft.com/en- us/um/people/simonpj/papers...](http://research.microsoft.com/en- us/um/people/simonpj/papers/parallel/)

<comment><USER3> CHP's relevant also (go back to ~mar 2010 for intro-ish posts)

<http://chplib.wordpress.com/>

</comment></comment><comment><USER2> Does anyone have an ideas for practical applications for distributed haskell? It seems like a this would thrive in an application that combines multiple concurrency models.

<comment><USER4> Yeah, that's the idea I think. Multiscale parallelism: distributed parallelism across multiple nodes, shared-memory parallelism on each (multicore) node, all in one language.

<comment><USER5> Most of all done in library, as opposed to language or runtime feature.

<comment><USER6> You can do that in Haskell because it compiles to fast code the CPU can understand. Like Scala, this means you can get away with the library, but _unlike_ Scala, Haskell has a computation model which make library-based extensions feel as if they are part of the language.

Ocaml has had success in this area as well, but the base language is a bit less pliable compared to Haskell, so it does not feel as fluent.

What I don't like about the shared-local, message-pass-global approach is that you have two kinds of concurrency in the same application. I'd much rather go with one, and in that case it must be the latter.

<comment><USER7> If you don't mind me asking, what are the disadvantages of having this as a feature in the language/runtime (as opposed to providing it as a library). Is it that it keeps the language simple? Also, can you give a bit some examples of the advantages Haskell has over Scala/Ocaml for the library based approach?</comment></comment></comment></comment></comment>


Apply HN: Polymyr – Bring Your Product to Life - <AUTHOR> http://www.polymyr.com
Consumer reviews are preferred by a 3-to-1 margin over press reviews. Polymyr capitalizes on that and is a social product testing/launch platform that offers hardware startups valuable user experience insights by incentivizing our members, through rebates which you decide upon, to test and review your product. We aim to significantly improve the current launch process by giving new products superuser-level reviews right from the start.
For example, Product X is currently retailing for $199, our members will buy it for its full price, they'll see how much of a rebate they'll receive after they submit their product review, we collect and analyze all their reviews on our platform, send Company X all the reviews, and provide recommendations based on those reviews. For each unit sold, we only ask for a small commission.
In summary, we help you promote and sell your product, reach new audiences, collect valuable consumer insights, and give you recommendations. <comment><USER2> > Consumer reviews are preferred by a 3-to-1 margin over press reviews.

I strongly disagree with this premise. I would suspect real branding, PR, and marketing data would show that press reviews influence branding and sales 10-1 over consumer reviews.

(although consumer reviews can mean lots of things. It can mean a friend recommends, or a consumer does a deep video review online, or it could mean an anonymous person gives random feedback.)

I guess, I have two questions: 1\. Can you substantiate that original premise with more than a poll or survey, but actual market research? 2\. Do you think incentivized reviews will instantly remove any credibility those reviews may have carried in the first place?

<comment><USER3> Thank you for bringing up great points! We've definitely thought a lot about your first question because you're right, if companies don't care very much about consumer reviews then our product isn't going to be useful. As it turns out, all the startups we've talked to so far have told us that they would love to get more and better consumer feedback. In the end, makers are building products for consumers, so it makes sense that makers want reviews from people they are selling to. It's true that press reviews are valuable, but how a consumer sees a product may be different from how a professional product critic sees the product. There are also a couple articles online that help substantiate our point. But you're right, having a rock-solid market research report to prove our point would be a great asset!

For your second question, we don't think the incentive will hurt the credibility of the review - the incentive exists only to encourage consumers to provide an honest review that will help the makers improve their products.

Thanks again for commenting :)

Edit: Ninja'd by my partner above!

</comment></comment><comment><USER2> > For each unit sold, we only ask for a small commission.

Have you gotten any companies to agree to a royalty like this or is this just the initial monetization idea. I can see them paying 5 figures for a final report, but not a royalty on their bottom line sales.

<comment><USER3> Thank you for commenting! This is the initial idea at the moment. It makes sense to us because a commission on each unit means that companies pay more if they get more reviews. So far, none of the companies have brought up any problems with this scheme, but we will definitely be trying to solidify our monetization strategy as we partner with more companies.

<comment><USER2> I misunderstood this. I thought you meant on each unit sold in the future...not just to your reviewers.

</comment></comment></comment><comment><USER4> What makes you better than Amazon Vine?

<comment><AUTHOR> Great question!

Amazon Vine is an invite-only program that rewards Amazon reviewers through giving them access to review free pre-release and new products. From my understanding, it works similarly to the Yelp Elite program.

Polymyr tackles reviews in a completely different angle. We're not just a rewards program, we're a launch platform with a mission to accelerate product development. It's important to note that the reviews submitted on our platform are private by default. They're intended for your company to actually gain valuable insights to improve your product. As we grow, we hope to provide more data-driven user experience analytics for companies to use. In addition, we're planning to release a feature that will allow these reviews to be public, but for now, how companies use their reviews is completely up to them.

Let's start off with the consumer's perspective. By using Polymyr, you're able to see and participate in any current product launch. You have the freedom to explore different products from categories that you're personally interested in. Our review process is designed to make reviewing products fun and engaging. Furthermore, we're planning on launching our own social ranking program (similar to Amazon Vine and Yelp Elite) to incentivize our users to submit higher quality reviews. We care about quality over quantity, and we want the features we implement to embody such ideals.

From an enterprise perspective, Polymyr provides a much better service across the board. First and foremost, launching a product on Polymyr is completely free. In contrast, to use Amazon Vine, companies have to pay a substantial fee. Moreover, Polymyr's review process is more than just a five-star ranking and text box. We're building a process that makes it easy for companies to prioritize what aspects of their product they need to work on first. By launching your product on Polymyr, you're able to price test through our rebate model and use your launch page as a way to connect with our super- reviewers during and after your product launch.

This is just the beginning for Polymyr. As a two-sided marketplace, we're currently focused on giving the best possible experience to the companies that use our platform and service. We can't wait to add all the social features we have planned for our users down the road. That's where things get really exciting and what will eventually make us truly special and unique to both our makers and users.

I hope I answered your question!

</comment></comment><comment><USER5> Cool!

I'm curious about the "launch platform" part. (I did a "Apply HN" on that). What is your vision on that?

What do you mean with "superuser-level reviews"?

This is exciting:)

<comment><AUTHOR> We're just as excited as you are! :D

1) Our vision currently is to help any product at any stage succeed pre and post launch. We want our platform to be an incredible and on-demand resource for companies to gain insights that they only could have dreamed of.

2) Superusers are your product evangelists. They're the people that want to deep dive into your product and want to have domain knowledge over it. Big companies such as Apple or Google specifically look out for these users and reward them handsomely, as they are incredibly rare.

To put it simply, superuser-level reviews are the highest quality of reviews, where you get the most feedback because the user cares that much about the success of your product and is willing to go that extra-mile for your company.

At Polymyr, we hope to cultivate and attract a community of superusers that simply live and breathe your product.</comment></comment>


Microsoft Gives Up on Vista - <AUTHOR> http://www.eweek.com/c/a/Windows/Microsoft-gives-up-on-Vista/

<comment><USER2> The article fails to mention how Microsoft has so obviously given up Vista. Just because it's embracing multiple platforms shouldn't be indicative of anything.

</comment><comment><USER3> ^%#$ you and this type of overblown hype.</comment>


In Honor Of Steve Jobs Salesforce Will Match $500K In Donations To College Track - <AUTHOR> http://techcrunch.com/2011/10/11/in-honor-of-steve-jobs-salesforce-foundation-will-match-500k-in-donations-to-college-track/

<comment><USER2> Isn't this a little ironic, given that Steve dropped out of college in his first year? (Granted, he grew up in a very different environment than the targets of this program.)

<comment><USER3> Not everyone is Steve Jobs, and not everyone should skip or drop out of college.

(Argue all you want about effectiveness, cost and availability, but, it provides a service to some that is deemed worth the time, money and effort. And that is basically the bottom line.)

<comment><USER4> He isn't saying that. It just doesn't make a ton of sense to "honor" someone by doing something that is in no way reflective of their life choices.

</comment></comment></comment><comment><USER5> Why not just give them $500k outright?</comment>


JavaScript developers are incredible at problem solving, unfortunately - <AUTHOR> http://cube-drone.com/comics/c/relentless-persistence <comment><USER2> This is absolutely a NIGHTMARE for new developers. People come into the language, and there are what seems like an infinite number of "the _only_ right" ways to do something, all of vary degrees of complexity/usefulness, and _all_ claiming that they are god's gift to computer science.

That last part is the part that is most frustrating to me, and it isn't unique to javascript.

Google, facebook, yahoo, etc. have all gotten along pretty much just fine up until this point using existing web technologies. We should ALWAYS be trying to improve those technologies, and we should ALWAYS being trying to improve the workflows involved in using those technologies, but what comes across as ridiculous is the apple-style "this literally solves everything, and everything before it totally sucks and is useless and you are stupid for using it" marketing behind them.

I like javascript. A lot. I use it every single day, and it does a lot of useful things for me.

But my god the cognitive load involved in swimming through all of the "this library literally saves THE WORLD" marketing fluff is intense.

Javascripters, I get it, you're really excited. I am too. But maybe tone it down just a few notches.

Here's a thing I wrote about this topic a few years ago: [http://thingist.com/blog.html?id=21434](http://thingist.com/blog.html?id=21434)

<comment><USER3> I just use Knockout.js unless there is a really compelling reason not to, I just chose _one_ and learnt it decently well.

It supports IE (back to 6 believe it or not), is backwards compatible with itself, is relatively mature, very stable, performs fine, supports modern stuff like component orientated architectures and custom tags (if you want them), interops brilliant with lo-dash/jquery and grows with you, it's also way more of a library rather than a framework so there is very little koolaid, the devs answer on github and are active (if not a huge community).

I also rather like it's <button data-bind="click: someFunction">Do The Thing</button> binding syntax (not least because with phpstorm and pycharm you can create custom language injections on XML attributes meaning I can do jump to definition near perfectly).

<comment><USER4> Yeah, Knockout has also served us well: has been flexible as our architecture has shifted, and has progressed steadily without forcing us to pay a "framework churn" tax. It's become a mature, stable, pragmatic option, IMO.

</comment></comment></comment><comment><USER5> > _the ecosystem around Javascript is so densely layered and frequently > changing that maintenance of any project over any significant period of time > is going to be a nightmare_

I hear this sentiment often, but don't really see any truth in it. Nobody is forcing you to update your code to be in line with the latest JS trends. If it ain't broken, don't fix it, and if it is broken, it was _always_ broken and that fact has nothing to do with how rapidly the JS ecosystem is evolving.

Oh, but you want to leverage the latest and greatest that the ecosystem has to offer... well, that's _your_ problem, not the ecosystem's and this is true no matter which ecosystem you're referring to. JS developers are just spoiled rotten because JS is so easy to refactor relative to every other part of the system. When the NoSQL hype train came barreling through the developer community a few years back, most of us didn't rush out to rebuild our applications on a NoSQL back-end because the database is _too critical_ to mess around with.

If you want the latest and greatest you have to pay for it, but don't imply that there is something _wrong_ with the ecosystem for giving you _more_ options. Choosing the best tool is part of the job, and if you get hypnotized by every shiny new toy that debuts on the front page of HN, that's a professional flaw that only you can fix.

<comment><USER6> > _I hear this sentiment often, but don 't really see any truth in it. Nobody > is forcing you to update your code to be in line with the latest JS trends. > If it ain't broken, don't fix it, and if it is broken, it was always broken > and that fact has nothing to do with how rapidly the JS ecosystem is > evolving._

This is a really shortsighted viewpoint. Cue 1 year later where all your libraries have fallen behind and you want to integrate a new library which has dependancies on newer version of your outdated libraries.

<comment><USER5> > _Cue 1 year later where all your libraries have fallen behind and you want > to integrate a new library which has dependancies on newer version of your > outdated libraries._

As I already stated, that's _your_ problem, not the ecosystem's. If everything has been working fine for a year, but now you want to introduce a new library into the code, it's up to you to rationalize the necessity of that addition with the technical burden of updating your dependencies. Nobody is forcing you to use this new library and the only reason you can even consider this library as a potential addition to your application is precisely because the fast moving ecosystem has managed to provide you with a must-have library that you didn't need a year prior.

That is simply the fundamental nature of dependencies and will be true no matter which ecosystem you're working with, hence the ubiquity of package managers like npm, rubygems, composer etc. Either way, just because something exists, doesn't mean you have to use it.

</comment></comment></comment><comment><USER7> I learned a while ago that it doesn't matter how broken something is if everyone is using it.

Humans are incredibly resourceful, if not also short-sighted.

Look at PHP, look at Javascript, look at Wordpress, look at email, look at the original jQuery etc...

<comment><USER8> qwerty keyboard is my favorite example. Designed to solve the key sticking problem when typing too fast but now we're all stuck with a layout designed to be inefficient.

[https://www.addedbytes.com/blog/dvorak-vs- qwerty/](https://www.addedbytes.com/blog/dvorak-vs-qwerty/)

<comment><USER9> For all the hype I hear about dvorak and other alternate keyboard layouts, I've never met anyone who could type significantly faster on it than I could on qwerty. This isn't objective in any way but from experience I can't say its any 'better'. As for ergonomics and other peripheral effects, I can't comment as I haven't looked into them.

<comment><USER10> Well objectively it's less finger travel and more home row use, so it has its merits. The issue is that qwerty is such a de facto standard that you'll run into many layout issues using dvorak.

<comment><USER11> I agree. I have a bit faster typing speed right now with dvorak. not sure if it is really super-better, but I definitely benefited from [http://www.typingstudy.com](http://www.typingstudy.com)

</comment></comment></comment></comment></comment><comment><USER12> "Let's put a weak language on a billion screens and see what happens." The browser is Arrakis, and JS devs are the Fremen, hardened and shaped by an environment that is just barely survivable. Let us hope our own Golden Path is less painful than in Dune.

<comment><USER13> Great analogy!

</comment></comment><comment><USER14> Problem: browsers are designed for documents, not rich applications

Solution: javascript

<comment><USER15> Problem: JavaScript is the only language that runs in all major browsers.

So far no solution.

</comment></comment><comment><USER16> When I write c# code, it's just that, code. When I write Rust code it's just code. When I write JavaScript...I'm making beautiful peices of art. Almost like an old school watchmaker...a million ways to do the same end result.

</comment><comment><USER17> I'm not sure how to interpret the last part...

"Where I am from, the point of digging is not freedom from digging."

Is it a statement that the point of digging is to reach further and learn more (positive)? Is it a statement more along the lines of "We dig because we must dig to survive." (negative)? Or possibly that digging is simply a way of life (negative)?

<comment><USER18> I take it to mean that if you keep digging, the hole will just be deeper. I.e. you cant dig yourself out of a hole.

<comment><USER17> What are you doing when you "dig into a problem"? :) I have a feeling the intent was supposed to be pessimistic/negative (as you stated). I decided to have some fun with the words. It leaves a few possibilities as to the meaning and speaks well of what the developers are typically doing in their "problem solving": digging deeper (for knowledge) rather than trying to get out of a hole.

"People who cannot dig themselves out of a hole have never tried digging sideways." \- JS Developer

<comment><USER19> The interpretation is left open to the reader. It could be a negative and cynical nod to the idea that we're doomed, and digging our way straight to hell, or possibly a coy wink at an absurd paradox of conflicting goals among participants.

</comment></comment></comment></comment><comment><USER20> One wonders how we get out of this mess. You'd have thought that Microsoft/Google/Apple/whomever would have at least tried to include a better alternative language in their browser by now. What stops them besides inertia?

<comment><USER21> X, Flash, Swing, JavaFX, SilverLight, AWT and more were all attempts to offer a GUI over TCP. The important question is why they all failed. This is a complex issue and many good essays have been written that address parts of the question. Still, I think most of it can be boiled down to 3 things:

1.) some were closed-source and proprietary

2.) some were needlessly verbose, or enforced a workflow that made it difficult to interact with designers

3.) some depended on HTTP for at least the initial handshake

What the world needs is an open-source GUI technology that is fun for designers to work with and which uses a protocol other than HTTP.

My own bet would be that when we finally get such a technology, it will come from the world of gaming, where they already do amazing GUIs, and where they often abandon both HTTP and TCP and use UDP instead.

<comment><USER22> One was killed by Apple.

<comment><USER23> If you are talking about flash let's be clear. Flash was killed by mobile (and being generally shitty).

It's not like Apple said "Flash is the worst" and everyone said "Hey, you know I never thought about it like that". In fact I'm sure battery was a major reason not allowing flash, IIRC that (plus general indifference) was what was the nail in coffin for even android phones flash.

</comment></comment></comment></comment><comment><USER24> JavaScript is both easy to get into, but difficult to master. There are places on your path to JavaScript mastery where you're literally like, "Did I make the right choices in my life?". Push a little harder, and like anything, the added effort to understand the choices put in front of others, and why something works the way it does, will be rewarding.

Illustrations/points like cube-drone has made here are popular because it's partly an over-exaggeration, and partly true. People on either side of the fence (JS mastery, or not), can find some kind of common ground of, "Right?? Isn't it painful??"

It's painful if you let it be. With the right mentors, and the right motivation, you can make JavaScript do wonderful things.

As a whole I think JavaScript has made the web a more fun and interesting place, no matter how much you want to bitch about the language or the ecosystem. We stand on the shoulders of giants, and I, for one, appreciate it. Thanks Brendan Eich! :)

<comment><USER25> > _JavaScript is both easy to get into, but difficult to master._

There's no such thing as "mastering Javascript", because a language includes it's ecosystem, and for JS this changes from day to day...

</comment></comment><comment><USER26> The thing I like about clojurescript is the fact that it has a linker and library system which makes sense.

</comment><comment><USER27> Just a little advice for newcomers ( like me ) that are scared but at the same time fascinated when it comes to use javascript. If you choose a framework to work with, stick to it for the entire project, and if you find an error that makes you struggle, don't immediately invent your own solution to patch it: for all the things that are said in this article, it always easy being attract to the fact that in every framework/code base you can put a simple piece of code that make things simpler for your and let you go ahead when you are stuck. But in my experience, most of the times, it only about being lazy and scared from and understood error. Behaving like this it let you behind, and don't make you improve your skills. And always break the entire logic of the tools you're using.

JS is a scripting language, so it easy 'script' your solution and postpone a problem. But it this way, you will never be able to improve, and your life with JS will remain frustrating and hard.

</comment><comment><USER28> "Prototypal inheritance is pants-on-head stupid."

Well, he's almost merely wrong, if he were to take out the "prototypal" part.

<comment><USER29> Prototypal inheritance works well, if you understand it. It's only "wrong" if you're of the Java/C++ OOP religion.

<comment><USER28> My comment is arguably overelliptical, so I'm going to 'splain:

1) I agree that the author sounds like a lot of developers who have a "What am I going to do without the exact class semantics I'm used to?" moment when they get to JS, and rather than learn to answer that question, they either decide that it's an inherent black mark on the language or go on a long quest trying to get something more like the semantics of another language in JS (often frustrating because it's almost possible).

2) More importantly, though... _implementation inheritance itself_ is something a lot of thoughtful developers look on with a skeptical eye. Hence Gosling's comment about "I'd leave out classes" if he were starting over with Java, or Golang's interfaces. I wouldn't go so far as to call it "pants-on- head stupid" (I'll reserve contempt on that level for JS linters that enforce a no-semicolon policy), because it _can_ be a nice mechanism for re-use, but it has its problems (fragile base class) and really only ever fits ideally to the extent that the portion of your domain you're modeling is actually a class hierarchy.

<comment><USER29> I come from games, which actually map to OO design better than most domains, from what I can tell. And while I was briefly of the OO religion, I've since recovered and appreciate all paradigms for what they can best accomplish. I'm "Post-OO". :)

I do still consider implementation inheritance to be useful. But it's certainly used poorly in a lot of circumstances (along with MOST of OO design, including most of Java), and it may encourage bad habits. And I agree that composition is often a better answer. Depends on what you're doing.

Aside: Do JS linters actually enforce a no-semicolon policy in real projects?! I started using jshint and jscs recently in part to enforce the use of semicolons (on the advice of "JavaScript: The Good Parts"). I see that jscs has a "disallowSemicolons" rule, but I didn't know stupidity went to such depths as to actually USE that rule...I thought it was there for completeness...

<comment><USER30> > Aside: Do JS linters actually enforce a no-semicolon policy in real > projects?

Yes, they do. See [https://github.com/feross/standard/](https://github.com/feross/standard/) as a preconfigured example.

> (on the advice of "JavaScript: The Good Parts")

To paraphrase The Dude: yeah, well, you know, that's just, like, Crockford's opinion, man; whether you want to use them or not, there's tooling to support you either way.

</comment></comment></comment></comment></comment><comment><USER31> This is a double edged sword. Yes, web technologies are sprawling, but they are also constantly improving, which is not always true of the more tightly controlled platforms. You can build on iOS for example, where there are generally only a few ways to do things. But then you're waiting on Apple to release new stuff.

There will always be platforms that are the Wild West, build-your-own- adventure decentralized toolkits and others that have a narrow political agenda and are more stable. Neither is better, it's just a question of what kind of frustration hurts you less.

</comment><comment><USER32> "Problem: asm.js is basically unwritable by humans."

I have no idea where this is coming from, but it's simply untrue. See [1] for a ton of examples of it being perfectly human read/writable.

All I can come up with is that people are looking at code compiled to asm.js, which is of course going to have all semantic meaning stripped from it, no different than code compiled to javascript.

[1] [http://asmjs.org/spec/latest/](http://asmjs.org/spec/latest/)

<comment><USER33> I wonder if people just say that now without actually looking. The last time I saw any asm.js code it looked like very boring old c++ code, nothing crazy. Probably more readable to a newcomer than closures or self calling anonymous function wrappers.

</comment></comment><comment><AUTHOR> While there's a lot of truth to this comic, I don't necessarily see it as a bad thing. I think it speaks to the flexibility of JavaScript. Sure, all of the tools and libraries can be hard to keep up with, but I'd rather have lots of community support than none.

I have to admit, I was a JavaScript hater for a long time, up until recently when I actually spent time to learn the language. Now its quickly becoming one of my favorite server-side languages. Isomorphic JS was too hard to resist :)

<comment><USER34> So, you're saying you've become the guy with the hat. :-)

<comment><AUTHOR> Haha yup, pretty much

</comment></comment></comment><comment><USER35> I actually think the "blame" is not so much Javascript's - after all it has existed since 1996 and it wasn't like that at all for many years.

I wonder how much the rise of Github's / npm have to do with it. In the last 5 years or so it has become so much easier to create and share projects. Not only so - it has become a requirement, people use Github as their CV, we are all _expected_ to have side projects and stuff.

</comment><comment><USER36> I wish I could upvote it more...

<comment><USER37> Well, you could create another account... (I'm a javascript developer)

</comment></comment><comment><USER38> I'm lost as to why Grunt is a problem. I tried to put all of my build scripts in the package.json but moving to Grunt has been incredibly useful.

<comment><USER39> Because "code over configuration". Personally I'm not a fan of Grunt's API which requires huge json files where keys mean special things. It feels very ad hoc and ugly. Gulp's API is like 5 functions.

</comment></comment><comment><USER40> Problem: Javascript has almost no standard library. --> Why is this a problem? What does he mean by standard library? Like, "strings", regexes and hashes? Not needed.

Problem: Javascript won't run outside the browser. --> Fixed.

Problem: The DOM is too slow for video games. --> Fixed.

Problem: Javascript is single-thread by design. --> Why is this a bad thing?

Problem: Javascript is too slow for video games. --> [Citation needed]

Problem: Javascript has no packaging or a linker to tie these packages together. --> Linker's not needed, and there are many package managers that work pretty good. Also, since the beginning of javascript you could always <script src=""> whatever you need, pretty cool actually.

Problem: Callback Hell. --> This "problem" only bothers bad/lazy/naive coders.

Problem: asm.js is basically unwritable by humans. --> Nope, and also, you may not need to write asm.js at all.

Problem: Prototypal inheritance is just pants-on-head stupid. --> Clearly a joke to try to use this as an argument.

Problem: Web resources need to be minified and zipped for performance. --> Yeaaaaah right, because Javascript == Web.

Problem: Machine generated output is more difficult to debug. --> As compared to... another machine generated output from a compiled language? Yeah right...

Problem: Async is still a nightmare, huh? --> Same as callback hell.

Problem: Balloning project size and complexity. --> [Citation needed]

Problem: Javascript still doesn't do everything. --> Is this guy serious? Does he thinks this is a valid argument for anything?

Problem: Output runs very slowly on mobile devices. --> [Citation needed]

The guy's just a lazy coder. His favorite language would be one where he could just do: "include <what_my_boss_wants>; run();". Good luck waiting for that one.

<comment><USER41> I... somehow disagree with everything you are saying, sorry.

<comment><USER42> Maybe it's because of that attitude of forcing JavaScript upon everything, instead of simply using the appropriate tools. That's what I expect from people like this comment writer, and that's what causes that digging in the comic.</comment></comment></comment>


Complexity and Intelligence by Eliezer Yudkowsky - <AUTHOR> http://www.overcomingbias.com/2008/11/complexity-and.html

<comment><USER2> I hope that guy goes somewhere with all his talk, eventually.

</comment><comment><USER3> Talk about a straw man argument! He builds up an entire argument, then shoots it down, and manages to generate pages of text, all based on a flawed premise. I don't agree that you can ignore the size of the working set when defining complexity.

Quite frankly it's idiotic to do so. If you allow that, then why not just create every single possible permutation of every single possible thing? (Not randomly, start at 1 and start counting.)

The complexity of that is 1 bit.

So, basically everything, no matter what, has a complexity of 1 bit.

What a pointless way of defining complexity. (Pointless for talking about the universe anyway, maybe it's useful in more specific math.)

<comment><USER4> Everything does not have a complexity of one bit. The object you describe with a complexity of 1 bit doesn't specify the object you want. In the permutation, there may be a string that specifies some universe, but then you have to specify where in the permutation that string is and how long it is, thus increasing the complexity required to describe that particular universe object.

</comment></comment><comment><USER5> Wouldn't the 'Kolmogorov complexity of the universe' include initial conditions? How can we know that these aren't significant?

<comment><USER6> The way he defined for most of that essay, it is more proper to speak of the "Kolmogorov complexity of the _multiverse_ ". The infinite possible starting conditions of your brand of physics merely adds the K-complexity of the TM necessary to describe the possible initial states, likely quite small. (Eliezer believes that many-worlds is the only possibility for the universe we live in, I believe.)

The K-complexity of _this specific universe_ is much higher, because it would necessarily require a description of the multiverse _and_ some sort of identifier of how to pick out the universe of interest.

<comment><USER7> I don't understand this. If the multiverse is a system of a certain (appearantly low) complexity, it should not be allowed to have sub-systems like the "universe of interest" which have a higher complexity. Also, I don't see why the information which identifies a certain subsystem/universe should only be available from the point of view of that subsystem, increasing its complexity, but not the complexity of the system it's a part of.

<comment><USER6> It's the nature of K-complexity. If you don't understand, I'd suggest (in all humility and seriousness) pondering the nature of TMs and K-complexity further.

Some time spent surfing through the Mandelbrot set can be enlightening, as a more concrete example. Remember, no matter _what_ you see in Fractint (or your choice of fractal generator), the K-complexity of the Mandelbrot set is very, very low. (Not quite as small as the Mandelbrot-generation process alone because you also need to describe the coloring algorithm, but that's not that much either.) _But_ , to uniquely identify the image you are looking at to someone else, you must transmit not just the Mandelbrot generation routines, but also the coordinates you are looking at, or a description of the routine you used to get there. This can easily be larger than the rather small Mandelbrot algorithm. (It's easy to lose track of how deep you are in the M-set, without realizing that your computer is chugging away on computations involving thousands of significant digits...)

This is exponentially (super-exponentially?) more true to pick out a particular piece of a particular universe from a TM simulating all possible string theory universes. String theory may be simple (or may not be), by the time you're done identifying which of the 10^120 vacuum states you want to deal with (~400 bits right there), which initial conditions you want to deal with (no idea what that would take), and where in space and time you wish to point at (many thousands of bits minimum, no known upper limit), you can easily exceed the size of the part of the TM that describes the physics itself.

It might be helpful to try to forget everything you know about "complexity"; the English meaning of the word misleads your mathematical intuition. K-complexity is really something completely different (as is part of Elizier's point), and, frankly, it's much less useful than it seems at first blush. It's part of the wild world of Turing Machines, which can not be tamed or understood by any finite being. (And it doesn't really help that you can't prove if you have the optimal TM for a given result.)

It may also help to intuitively consider the difficulty of "pointing" at something, as in the essay. It is easy to gesticulate wildly at the Earth, from where you sit now. It is far, far harder to unambiguously specify which protozoan you are talking about right now. The part of the description that filters through the near-infinite possibilities to uniquely identify the topic of interest can be very, very large, and can easily exceed the size of the specification of "all possible topics of interest".

<comment><USER7> I think I do understand most of the technicalities, using Gregory Chaitin's ideas about the properties of self-delimiting programs as a bridge. What I don't get is what I percieve of as the insistence on "surprises" in the "universe of interest" that can't be seen "from outside". Zooming through a Mandelbrot set visualization, while it can be a great experience, ultimately offers you few surprises, and because there are few surprises, you know that the complexity - represented by the original equation - must be low. And Eliezer seems to be saying the opposite, namely that the are lots of surprises in a particular universe that cannot be known from the system as a whole, because the system as a whole only contains 400 bits of information. If you would write this multiverse program as self-delimiting, the way Chaitin does, where would all the extra complexity/information/surprises found in the "universe of interest" come from?

<comment><USER6> You keep saying "complexity". There's a reason I keep writing "K-complexity". The extra _K-complexity_ comes from the extra bits needed to narrow down the results. The whole multiverse does have _English-complexity_ (the conventional meaning of the word, not the measure of how many words it takes to describe something which would just be K-complexity again) greater than the part... but English-complexity is ill-defined.

Look at a word-processing document. A real one, sitting on your hard drive. The program to output all possible documents is very, very simple. The specification of how to get to the exact document you are looking it is the (compressed) size of the document itself. The English-complexity of "the set of all word processing documents" is high, but the K-complexity is low. The English-complexity of "one particular document" is low, but the K-complexity is quite high.

You might say, "Well, I simply tell you to simulate the multiverse, then hand you instructions on how to get to that document", but the instructions will be of a very non-trivial size. I think you intuitively see the instructions as very small, but they are actually huge. Starting with just "Simulate the multiverse" leaves me with, quite literally, a multiverse in hand. Now what? Now how do I find what you are talking about? I'm worse off than when I had nothing at all!

When you have a gigantic set, simply the act of indicating a member within it takes bits. K-complexity measures those bits. English-complexity says you're lowering the complexity. _Neither is wrong_... it's a definitional matter.</comment></comment></comment></comment></comment></comment>


Ask HN: Why doesn't MS open-source Edge instead of switching to Chromium? - <AUTHOR> <comment><USER2> They may have third-party code they aren't allowed to release.

Edge isn't very portable outside of Windows, it's just the cleaned up and refactored IE Trident engine. The same one we've technically been using for two decades.

<comment><USER3> > it's just the cleaned up and refactored IE Trident engine. The same one > we've technically been using for two decades.

Then why does IE still exist alongside Edge?

<comment><USER4> because IE is still being used in some places.

<comment><USER5> In some very wealthy places that don't want to change.

<comment><USER4> I heard NASA uses IE

</comment></comment></comment></comment></comment><comment><USER6> Open source contributions could ease development cost a bit, but cost isn't the main concern. The concern is compatibility, security, and performance which almost no amount of resources could get Edge up to par.

However, a radically new browser engine like Mozilla's Servo has a chance at performing so well, and reducing security vulnerabilities, that it seems like the only viable hail mary left for surpassing Chromium.

Also, these options aren't mutually exclusive. They could've decided to open source Edge but also switch to Chromium.

It would be interesting to have the code for Edge.

</comment><comment><USER7> Just read his news, horrible. Only Apple and Mozilla left to try to keep a counterbalance. If this trend keeps up, soon the web will require a Blink/Chromium OS to run. Google already has way too much influence on the web.

EDIT: Considering the relatively slow speed of Safari development, I would not be surprised if they also would switch their base to Blink.

<comment><USER8> While it's certainly not impossible, I would be pretty shocked if Apple dropped WebKit in favor of Blink. The entire reason Blink was forked in the first place was Apple and Google's differing ideas on which direction to take the project.

Where Google favors getting new features in at a breakneck pace and sees the browser as an OS-like platform where the developer rules supreme, Apple favors power efficiency and sees the browser as a content portal where developers can't be trusted to work in favor of users. These two models are fundamentally incompatible.

</comment></comment><comment><USER9> And then magically other people will start doing maintenance for free?

<comment><USER3> Perhaps, perhaps not, nevertheless why not opensource? I would just remove the word "instead" from the question.

</comment></comment><comment><USER10> They'd still need to invest a lot into it, to make it to the level that Blink is at, and they would still be fighting the Chromium/Blink network effects that brought us to the point we are at today. It would just be another (technically) inferior browser engine.

</comment><comment><USER11> Surely it's just far too OS dependent?</comment>


Best way to do Mac and Windows cross develoment? - <AUTHOR>

I am about to start a new project for a desktop GUI program, and am curious about what the best method for doing cross-development on Windows and Macs is these days.  Do .NET apps run on Macs; should I turn to Java; is there something better out there these days?  (Before you ask, making it be web-based is not an option.) <comment><USER2> I'd recommend the Qt framework. It makes writing C++ much less painful and you can style the interface via CSS. The Qt Creator IDE nice and you can use Xcode or Visual Studio. It also has a helpful and knowledgeable community.

<comment><AUTHOR> Thanks. I'll check out Qt.</comment></comment>


Replace PII in Unstructured Text – A Free Tool - <AUTHOR> https://www.tonic.ai/post/tonic-document-masker-find-and-replace-pii-in-any-document/ <comment><USER2> I'm one of the creators of the tool. Happy to answer questions about it. Cheers!

<comment><USER3> Any chance it could be configured to black out the PII instead of randomize it? What forms of PII does it detect?</comment></comment>


Verizon to charge $2 for paying your bill online or over the phone - <AUTHOR> http://www.geek.com/articles/mobile/verizon-to-charge-2-for-paying-your-bill-online-or-over-the-phone-20111229/ <comment><USER2> I am not sure why companies charge for online payments. If anything they should provide a discount!</comment>


Nocera: Does Windows Still Matter? - <AUTHOR> http://executivesuite.blogs.nytimes.com/2008/09/04/does-windows-still-matter/index.html?hp

<comment><USER2> Does being "dead" mean that you are large, highly successful, can afford to fund massive R&D, but have become too big and ossified to deliver on anything truly groundbreaking your R&D produces?

Maybe Microsoft is just in the same stage of life that Ma Bell and Xerox was in awhile back?

<comment><USER3> "Maybe Microsoft is just in the same stage of life that Ma Bell and Xerox was in awhile back?" => Not to mention Kodak, General Motors, Lotus, and many others.

</comment></comment><comment><USER4> _I'm convinced that iTunes and the iPhone are not the only reasons Mac is gaining market share. The other is that people have come to realize that they do not really need Windows anymore. Any ol' operating system will do._

If any ol' operating system will do, I'd expect people to choose the cheapest one they could find. Since Mac is gaining market share and is not the cheapest option, the operating system's contents must still matter.

<comment><USER5> Any operating system will do, in the sense that since the network effects of Windows client applications are no longer an overriding concern thanks to the web, consumers are free to choose an OS based on other considerations.

<comment><USER4> Yes, but the fact that people are choosing an OS based on other considerations indicates that Microsoft _could_ do something to win them back, which runs counter to the article's thesis.

</comment></comment></comment><comment><USER6> yes</comment>


You know the name, but just who were the Luddites? - <AUTHOR> http://arstechnica.com/tech-policy/news/2009/10/if-you-are-reading-this-post-you-are-not-a-luddite.ars?utm_source=rss&utm_medium=rss&utm_campaign=rss <comment><USER2> Surprised they didn't mention the most famous Luddite of all, Ted Kaczynski (unibomber).

</comment><comment><USER3> think that's where the phrase 'a spanner in the works' comes from too.

<comment><USER4> <vulcan>Sabotage - where they threw their 'sabo' or wooden clogs, into the machines to stop them working!</vulcan></comment></comment>


New startup - Epihu.com, Need your review. - <AUTHOR>

Hi guys, we fix bugs, added some new features.
And we need your feedback and suggestions.<p>http://epihu.com - new micro-blogging service, with a new way of posting and purposes. Epihu allows users to write down their most bright impressions day-by-day (we call this the slides) and helps to make this process really regular. It's a quite simple process : one day - one slide. The length of a message is limited, that helps to keep your mind on the main subject. <comment><USER2> From a college student:

For UI, Sign up and registration could be a lot easier. I would look at different UI patterns out there. <http://ui-patterns.com/> Maybe look here for some inspiration and facebook has a really easy sign up process.

Date of birth: Should maybe place description on top saying day, month, year. For most American users, they would think in month, day, year.

Password: I think it may be better to allow users to generate their own password from the signup.

If you're target audience is college students. I would definitely re-configure some of these simple things because I'm pretty sure after confirmation they're too lazy to go back and check their email twice. (I may be slightly generalizing) However, after we register, we just want to be able to use the site immediately.

For "create new slide" button, I may consider adding a cancel or something to exit out of the pop-up screen.

These are just some quick things that stuck out from just the beginning.

Hope this helps,

CC

<comment><AUTHOR> Thank for your advice! We will consider these points.

</comment></comment><comment><USER3> \- horizontal scrollbar on 1280x1024, (don't skip testing these things, it's important)

\- 'leave feedback' button overlaps the text on the left side for me, I cannot read it comfortably.

\- on <http://www.epihu.com/en/peoples> , sort based on the number of publicly available slides. No good if there are 100+ and all of them private.

\- get some help with the texts, "Why do I need this service when there is a simple blogs?" had wrong singular/plural alignment, you'll be losing customers due to this despite having a good technical product in place.

<comment><AUTHOR> thanks! will try to fix it very soon.

</comment></comment><comment><USER4> Typo at homepage:

By keeping a blog is easy to get carried away, when you describe your day. Again - ___no everyone_ __can do this every day.

It should be _not everyone_ I guess.

Are you planning to add a 'How was your day?' email service to this project? At the end of the day it can send me an email or maybe use notifo to remind me to write an entry.

<comment><AUTHOR> Thanks for correction, will fix it today ;) And we have "How was your day?" email, you must receive it at every evening... ok, we will check it too)

</comment></comment><comment><USER5> [http://jasonlbaptiste.com/startups/how-to-succeed-like- apple...](http://jasonlbaptiste.com/startups/how-to-succeed-like-apple/)

I have few suggestion to make but, I think Jason has explained it more clearly in his above blogpost.

\--Hope this helps!

<comment><AUTHOR> thanks for link ;)

</comment></comment><comment><AUTHOR> Click - <http://Epihu.com></comment>


Marissa Mayer: $1 Million Base, Up To $60 Million In Stock And Bonuses - <AUTHOR> http://techcrunch.com/2012/07/19/marissa-mayers-yahoo-salary-1-million-base-up-to-60-million-in-stock-and-bonuses/

<comment><USER2> Who cares?

</comment><comment><USER3> I would hire 61 awesome engineers with that kind of money.</comment>


Why Do We Sleep? - <AUTHOR> http://neuroskeptic.blogspot.com/2009/09/why-do-we-sleep.html <comment><USER2> Dolphins do sleep. But only with half of the brain.

One of the functions of sleep might be just inactivity but another much more important one must be associated with neurons.

I think sleep (namely REM phase) is needed for neural network to avoid overlearning. That's why sleep deprived persons hallucinate. Their neural network is overlearned to recognize stimuli from senses and it recognizes known patterns even if stimuli is week. Nothing better to avoid that is to disconnect neural network from muscles (to avoid hurting yourself) and discharge neurons randomly for some time.

</comment><comment><USER3> Like any long running system, it's the pause while the garbage gets collected and data is rearranged for more efficient access.

The animals that "never" sleep are actually just failing-over to the other processor while the GC happens.

</comment><comment><USER4> I could be over simplifying but this theory doesn't seem to stand up to basic scrutiny.

If Siegel's theory were true than people wouldn't die from lack of sleep. At least, not if they were given enough energy to sustain themselves without going dormant. But that doesn't work, people do die from lack of sleep. So how can someone make the argument that sleep isn't serving some vital purpose?

<comment><USER5> I think the place the article here goes wrong is "This theory stands in contrast to the idea that sleep has a restorative function...". I don't know if the original proponent is claiming this, as I find the post can be read either way.

Basic evolutionary theory would point out that even if sleep _started_ out as a totally optional thing that could be skipped with no loss, that evolution would rapidly start using the sleep period as a hook to load in other things that provided an adaptive advantage. For instance, as long as you're going to be sitting there doing little-to-nothing in a controlled, predictable manner, why _not_ load all your muscle repair into that time period, leaving your wakefulness period with muscles _not_ concerned about repair? Why _not_ load various cognitive batch processes into the sleep period, as long as it is there, leaving you with a brain that isn't worried about those things during the wakefulness period and therefore spending more energy on useful computation, or even just plain spending less?

I've actually directly observed this process in my evolutionary computation homework assignments. I choose that phrasing to indicate my not-extensive experience on the topic, and that even so, I've seen this, where chunks of useful code get loaded up with other stuff that bears some sort of relationship to the original. (And evolution has a strange idea of "relationship".) (I do sometimes think that evolutionary computation should be a required course for biologist PhDs; the hands-on experience is invaluable.)

I often wonder at "either/or" arguments in the context of evolution; to me it betrays a profound misunderstanding about the process. It is the very incarnation of a "both/and" process. Is sleep an optional resting period just to conserve energy, or a time for healing, recovery, and cognitive batch processes? Perhaps there was a brief time when the answer was one or the other, but today the answer is simply "Yes", in general. (Your Species' Mileage May Vary, I'm speaking to the general case.)

<comment><USER6> I agree. In the (pre)stone age, it was very dangerous to wander around in the night. So humans (and other such animals) that could keep still at night were at an competitive advantage. Sleeping is the ultimate keeping still. And evolution just improved on that, using the sleep for other stuff, which then became unskipable.

It seems for me that many of those who accept evolution, still thinks in creationist terms: that however the human body works today, must have been the original purpose. And that we are not the result of an evolutionary history filled with random input and short-sighted adjustments, thus ending up with something that could never have been conceived in the beginning.

Sometimes stuff "just came into existance" without an (initial) purpose. Purpose is not a pre-condition for existence.

</comment></comment></comment><comment><USER7> What about drowsiness? If sleep is just a behavior for keeping us out of harm's way, shouldn't we be able to just "switch back on" upon being awaken? Granted, sometimes we do just start awake. But still, staying out of harm's way and resting sounds like a good reason to develop _patience_ , but sleep.

Are there many species that sleep with their eyes and ears open?</comment>


Samsung Touchable Ink - <AUTHOR> http://theinspirationroom.com/daily/2016/samsung-touchable-ink/ <comment><USER2> Smart phone apps for the blind are great and important but from what I've read they don't seem to be having the impact on blind employment that Braille has had.

74% of the blind are unemployed [1] (there is another figure you will occasionally see of 13% unemployment for the blind, that's a US Government statistic that excludes anyone not considered in the list of potentially employed people).

Braille literacy is highly correlated with employment among the blind, and rates of Braille literacy are falling rapidly in the US, from a peak of around 50% in the 1950's to more like 12% today [1].

Hopefully someone here will know of a survey reporting measurable economic gains for the new generation of Braille-illiterate technologically assisted blind, thus far what I've heard anecdotally on that front has not been encouraging.

[1] [http://www.nbp.org/ic/nbp/braille/needforbraille.html](http://www.nbp.org/ic/nbp/braille/needforbraille.html)

<comment><USER3> I've always been curious about the impact of smartphones on blinds. A famous french singer said it was a bliss to be able to ask Siri for informations or having the phone vibrate to location or other kind of data. That said having a finer tactile interface is always a plus to me (and I'm not blind yet)

</comment></comment><comment><USER4> This is somewhat similar to swell paper that Ben Krasnow showed in one of his videos recently. The difference is that there the chemical is in the paper, not the ink.

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

<comment><USER5> I think swell paper is physics, not chemistry. The paper expands when heated.

</comment></comment><comment><USER6> "Touchable Ink, a project in which _laser_ printers are able to print braille- embossed documents. The Touchable Ink, still in its early days, involves a chemical process to adding embossing powder to the _laser printing ink_. Users just replace their _ink cartridge_ "

So is it ink or is it toner? That reminds me, early HP laser printers did put enough toner on the page that it could be clearly felt, although not as extreme as this.

<comment><USER7> Touchable Toner sounds kind of dumb, which is why they called it Touchable Ink, I'm guessing.

</comment></comment><comment> jay-saint This is great for the blind, but is their a broader use for simulated letter press in letterhead or business cards?

<comment><USER8> That might be its most common use. It can be surprising how few blind people actually read braille, it is particularly uncommon amongst those who have developed visual imparements after their youth.

<comment><USER5> It takes lots of effort to learn to read Braille at a later age, and you may have to do it at a very stressful time ("count on losing your mind for a year or two when you lose your eyesight", I've heard it described by a psychologist familiar with the matter)

Reading Braille also requires sensitive fingers. Cut your finger? Read a lot slower for a few weeks.

Nerve damage in your fingers? You may have to forget about reading Braille. And that's incredibly common among those losing their eyesight, as they predominantly are elderly and/or diabetic (neuropathy is a common side-effect of badly controlled blood sugar levels)

So, let's say you are sixty, diabetic, and losing your eye sight. Are you going to practice for a few hours a day without guarantee of decent results, or are you going to focus on all the other tasks to relearn, and try enjoying, say, the company of your grand children?

<comment><USER8> Exactly.

</comment></comment></comment></comment><comment><USER9> I wonder if the next generation of braille will be not just this, but in the smartphone with a taptic engine like that in the iPhone. I can imagine that the engine becomes sensitive enough to deliver minute changes as the user runs their finger across... In any case, it's really cool that things like this exist, because it makes being blind a little bit less bad; instead of a $15,000 printer, you can buy this ink for much cheaper.</comment>


TurboPFor: Fastest Integer Compression - <AUTHOR> https://github.com/powturbo/TurboPFor

<comment><AUTHOR> * Fastest Integer Compression \- 100% C, without inline assembly \- Fastest "Variable Byte" implementation \- Novel "Variable Simple" faster than simple16 and more compact than simple64 \- Scalar "Binary Packing" with bulk decoding as fast as SIMD FastPFor in realistic (No "pure cache") scenarios \- Binary Packing with Direct/Random Access without decompressing entire blocks \- Access any single binary packed entry with zero decompression \- Novel "TurboPFor" (Patched Frame-of-Reference) scheme with direct access or bulk decoding \- Several times faster than other libraries \- Usage as easy as memcpy \- Instant access to compressed frequency and position data in inverted index with zero decoding</comment>


'Alan Turing law': Thousands of gay men to be pardoned - <AUTHOR> http://www.bbc.com/news/uk-37711518 <comment><AUTHOR> _" In 2013, the posthumous royal pardoning of Turing led to calls for wider pardons, and the launch of a petition in 2015."_

In 2009 fellow HN @JGC organised the partition for Turing. [0] The wider partition has its roots in this effort resulting in the UK PM tweeting his recognition, later pardoning Turing. The original partition is gone but you see the tweet here [1] and read the call to action by John. [2]

[0] [http://www.jgc.org/blog/2009/06/alan-turing-deserves- apology...](http://www.jgc.org/blog/2009/06/alan-turing-deserves-apology- from.html)

[1] [https://www.flickr.com/photos/bootload/3909148598/](https://www.flickr.com/photos/bootload/3909148598/)

[2] _" Alan Turing deserves an apology from the British Government"_ [http://blog.jgc.org/2009/06/alan-turing-deserves-apology- fro...](http://blog.jgc.org/2009/06/alan-turing-deserves-apology-from.html)</comment>


Hackers turn back the clock with Telnet attacks - <AUTHOR> http://www.networkworld.com/news/2011/012711-hackers-turn-back-the-clock.html

<comment><USER2> SANS seems to think quite differently:

<http://isc.sans.edu/reports.html>

Only one of their 3 top ten ports even lists telnet, it doesn't show in the total volume one.

Top 10 Ports by Targets

      Port	Targets
      22	83923
      1433	69095
      445	44441
      1434	43076
      3389	30991
      80	17262
      139	12637
      137	8677
      4559	8246
      23	6562 <- telnet port, total: 0.02% of top ten

That 0.02% seems to jibe with what I expected based on seing my own deny logs. I'm not sure what's up with the akamai report because I didn't feel like giving them my email just to let me read something that sounds wildly inaccurate, but I'm calling BS.

Perhaps akamai themselves often leaves telnet open (on some network hardware they use?) and are being targeted specifically.

<comment><USER3> I had no idea what 1433 was. Turns out it's "Microsoft SQL Server", 1434 is "Microsoft SQL Monitor", 3389 is Remote Desktop.

4559 is apparently "hylafax", but I have no idea what that is.

(22 is of course ssh, 445 is SMB, 80 is HTTP, 137 and 139 are netbios name and session service, respectively.)

<comment><USER4> Hylafax is an open-source fax server. Ran it a long time ago, surprised to see its still around. People still use faxes?

<http://www.hylafax.org/content/Main_Page>

</comment></comment></comment><comment><USER5> Is anybody still running a telnet daemon then?

Man, I can't even remember when I last used telnet to actually access a host rather than to use it to test if some text protocol worked as expected.

What's next? rsh?

<comment><USER6> Loads of managed switches, home routers, power control devices, etc. have telnet turned on by default (not the new ones though) - maybe they are the target?

<comment><USER7> Yep. Telnet is standard in embedded devices where there is neither the CPU power nor the electrical current available to support encrypted protocols like SSH.

</comment></comment></comment><comment><USER8> For a moment I though this was an unusual attack that changes the system time.

</comment><comment><USER9> If they really want to turn back the clock, they'll bring back Telenet. <http://en.wikipedia.org/wiki/Telenet>

</comment><comment><USER10> _Administrators are generally advised to disable Telnet if the protocol is not used to prevent attacks targeting it, but some forget_

I'd like to know which OS in recent memory installed with telnetd running by default? None I'm familiar with.

</comment><comment><USER11> Interesting... so what's going on there, I wonder. Why do these corporate networks have port 23 open?</comment>


Ask HN: Why is there no Anti-Software-Patents organization? - <AUTHOR>

First, I want to recognize the EFF[1]. They do great work, but they've got a lot more on their plate than just patent reform. I won't reiterate the problem: we all know about the issues with the patent system. And besides, Fred Wilson just wrote up a great post about it[2]: "Enough is Enough."
A lot of people, including companies with deep pockets, like Google[3], have publicly called for reform of the patent system. If this is such an important issue for us, why are we not organized around it?
This is not a rhetorical question. I genuinely don't understand why there is no major organization dedicated to pushing for patent reform. Such an organization would stand a much greater chance of enacting reforms than everyone acting individually. And such an organization could do things like organize developers in opposition to specific attacks by the trolls.
Why does this not exist? If it is simply because nobody has had the time to do it, I'll gladly pitch in and do what I can to get something rolling. If it's a deeper problem, we need to figure out what it is. In any case, enough truly is enough. We need to end this thing.
[1] http://www.eff.org/
[2] http://www.avc.com/a_vc/2011/06/enough-is-enough.html
[3] http://googlepublicpolicy.blogspot.com/2009/03/patent-reform-needed-more-than-ever.html <comment><USER2> i think the EFF take the right approach here - software patents do actually make sense, sometimes.

patents are good at protecting individuals/small businesses from being crushed by larger companies (assuming they can secure patents for their ideas)

however, the system is nonsensical when large organizations have literally millions of patents, for the vaguest of concepts/ideas (google: patent for round transportation aid, or the like), which end up in legal action, the outcome of which is irrelevant because the fees involved for the smaller party are insurmountable.

then you have companies like ATI and nVidia, who's graphics drivers probably break an uncountably large number of each others patents - we're then in a position where open source is totally out of the question.

certainly, something must be done about patents, but the nullification of all software patents past present and future? that would stifle innovation as much, if not more, than the current system.</comment>


Uber CEO: ride hailing will be eclipsed by scooters, bikes and even flying taxis - <AUTHOR> https://techcrunch.com/2018/09/06/uber-ceo-ride-hailing-will-be-eclipsed-by-scooters-bikes-and-even-flying-taxis/ <comment><USER2> Scooters an bikes are right out for those of us not living in always-sunny California and anyone with a family. And if none of it can be done anonymously, it's a nightmare for privacy advocates. I'm sure at least some of the audience fits into one or more of those categories. Personally owned cars are going to be a thing for quite a while.</comment>


Ask HN: How can I help other small businesses stay productive during COVID-19? - <AUTHOR> I'm a small business owner and can already see the stresses COVID-19 are putting on other small businesses. We've already started deferring payments 6 months for customers to make the financial strain a little easier. What else can we do to help other small businesses make it through? <comment><AUTHOR> An additional thing we've come up with today is purchasing future services for businesses we'll be using. Getting some cash flow to businesses who might be struggling over the next few months might help them stay afloat.

We're prioritizing by critical services we interact with first, and then going down the list.</comment>


Show HN: Simpler alternative to WebEx and GoToWebinar, built with WebRTC - <AUTHOR> https://breakoutroom.co

<comment><AUTHOR> We think webinar software is generally outdated and overly complex. So, we decided to build webinar and broadcasting software we'd want to use. We only support Chrome right now and have lots of features we need to add, but would love any feedback. Thanks!

</comment><comment><USER2> Price? Can I host it on my own server? (please? pretty please?) If not, whats the $$ per # of simultaneous users per broadcast? Can broadcasts be recorded? In what format? Private (require password) broadcasts?

<comment><AUTHOR> Thanks for the questions! Price - TBD, but most likely a free tier + a pro tier (eventually).We are thinking something around $50 to a few hundred $ a month, based on the number of simultaneous attendees in the room. Right now, service is free as we need feedback.

What's your use case for hosting on your own server? Security? Really interested to learn more.

Recording isn't available currently, but we hope to have it out this week! We'll start with .mp4 format. Is there another format you'd like?

And yes, private and unlisted broadcasts are also on the roadmap!

<comment><USER2> Self hosting is of interest to avoid monthly fees / per event fees - I'd rather pay up front for software, run it myself and not have to pay hundreds / month - additionally, our (as most would) attendance would fluctuate - numerous times we paid for more seats at Webex only to have not as many attend as we anticipated, but the same conversely happens also - we paid for a low tier and more wanted to attend. Sometimes you don't know how many people will be interested in a specific topic, even though we try to gauge interest by forcing registration via our website.

Also - self hosting might lend itself to tighter integration. It would be awesome to embed the broadcast page directly into my events page, instead of emailing everyone a link to webex and maybe they got the email, maybe they didn't, maybe they missed it, etc...

.mp4 is fine - was just concerned it might be some proprietary format like Webex uses.

<comment><AUTHOR> Good feedback. Thanks! Agreed on the pricing model. We'd prefer to not have a bad pricing model be a reason you need to host yourself. Perhaps, it means some type of elastic pricing where you have a base plan and pay per additional attendee?

I believe the problem with WebEx and others is they have to know how many attendees you expect upfront so that they can put you on the right server. I think we can solve that.

Embedding on your events page is a great idea! We've talked about that. We've heard the reminder emails are notorious for not showing up in the inbox.

</comment></comment></comment></comment><comment><USER3> I tried this out and honestly can't believe how easy it is to start broadcasting. It's scary fast.</comment>


Ask HN: what to do in SF, as a nerd? - <AUTHOR>

Hey guys, I'm in town very briefly. I already checked out a bit of mtv and palo alto and bummed around SF two nights.
I have 10 hours left here before my flight. what should I do?
so far, my favourite thing was the computer history museum. <comment><USER2> Check out Noisebridge, a primarily hardware oriented hackerspace. The general fantasticness of whoever is there when you show up will blow your mind.

</comment><comment><AUTHOR> I was wondering why nobody's posting anything, then I remembered I'm still on EST. heh. nothing beats sleeping in and discovering its only 8am :D

</comment><comment><USER3> Come up with a brief idea and build a MVP of your startup, so you have something to pitch people about at the airport ;)

EDIT typo: our = your

<comment><AUTHOR> "our", or "your"? :)

I already have something past the mvp stage. that's taking up all of my mindspace. I was hoping for sightseeing stuff. gonna have some breakfast and going to walk around town, starting with blue bottle. I hear they make a good espresso.

</comment></comment><comment><USER4> The AT&T building where the company allowed the NSA to wiretap the country without a warrant is the windowless bronze cube at 2nd & Folsom.

</comment><comment><USER5> visit Fry's</comment>


Looking into 2020's Pull Requests: Part I - <AUTHOR> https://explore.dev/2020s-pull-requests-part-i/ <comment><USER2> Pretty interesting since we deal with this everyday!

<comment><USER3> Thanks! Let us know if you have any suggestion for the next posts!</comment></comment>


'I don't smell ' Meet the people who have stopped washing - <AUTHOR> https://www.theguardian.com/lifeandstyle/2019/aug/05/i-dont-smell-meet-the-people-who-have-stopped-washing <comment><USER2> I stopped using soap 6 years ago, but I usually don't tell people because there's still such a stigma attached to it. But the reaction of those I do tell is always the same "Wow, but you don't smell like anything at all!"

<comment><USER3> Agree! I do use soap occasionally (for "pits and pubes" or if I come back from a few weeks backpacking to get the deep grime out) but apart from that...no need, even after the gym.

I started out without shampoo about 20 years ago after reading a reference, just water and a vigorous scalp rub. My wife thought it was fine though I don't have long hair. And it seems absurd to put detergent in your hair followed by an additional product just to put back the oils removed by the detergent.

</comment></comment><comment><USER4> There was this Korean guy that I used to work with that told me that Koreans have a gene that prevents body odor. The thing was he basically smelled like a high school gym locker room 247. I really didn't know what to say to him.

<comment><USER5> 'body odor' was popularised in thee early 20th century as a way to sell deodorant.

[https://www.printmag.com/daily-heller/american- advertising-w...](https://www.printmag.com/daily-heller/american-advertising- when-body-odor-was-chic/)

As a regular gym goer, what smells is /bacteria/. Fresh sweat doesn't smell bad, old sweat does. Same thing goes for urine.

Wash your body and clothes regularly, you don't need deodorant and it won't save you if you haven't washed your body and clothes.

<comment><USER6> 8 hours of work in a day is enough to make your fresh sweat smell like shit.

<comment><USER5> No, past work does not change the smell of new sweat.

</comment></comment></comment></comment><comment> 1-6 Not exactly a message you want to spread around programmers who already lack basic hygiene.

<comment><USER7> I don't know where you have worked and I can only pity you for your bad experience but this kind of generalization does no good to anybody.

I have worked for almost 20 years and over that time I met only one individual who had "issues". Most people try their best to look and smell as good as possible.

<comment> blaser-waffle Ditto. Most of the IT and Dev folks I've dealt with are fairly well paid and rock several certs and degrees. They can afford houses, soap, showers, and other basic life accouterments.

Mind you, they're not always the best put together folks -- flabby 30 something dudes in ill-fitting shirts and cargo shorts, yes cargo shorts in 2019 -- but most of em clearly had a shower recently and brushed their teeth.

<comment><USER8> can you knock off insulting people for wearing ill-fitting clothes and cargo shorts?

That's just unnecessary.

<comment><USER9> It certainly doesn't help that my options for shorts seem to be: cargo shorts, "dress" shorts, jean shorts, and athletic shorts. Given those options, I'll take my cargos every single time. I don't look better in the other three, and I'm certainly not going to wear athletic shorts all the time. If I'm not wearing shorts, I just wear regular jeans.

I'm not trying to win a fashion show at work while sitting in my office _not_ talking to clients. I'm wearing clothing that's functional and comfortable. Only random people on the internet seems to actually care about this, and can never seem to explain why they care so much. It usually comes down to some spurious nonsense about "neckbeards."

</comment></comment></comment></comment></comment><comment><USER10> Body odor can be greatly affected by the foods you eat:

[https://www.allure.com/story/diet-body-odor- causes](https://www.allure.com/story/diet-body-odor-causes)

[https://nutritionfacts.org/2014/08/19/how-eggs-can-impact- bo...](https://nutritionfacts.org/2014/08/19/how-eggs-can-impact-body-odor/)

I learned about the effect of eggs when I tried a high protein, low carb diet where I ate 2 fried or scrambled eggs every morning. Within 3 days of starting the diet I developed an unpleasant fishy body odor, especially in my armpits. Normally I would eat 2 eggs once a week, at which level I did not develop the fishy smell. Even washing my armpits with soap did not eliminate the odor. I stopped eating eggs daily and within a couple of days the odor cleared again.

Similarly, I do a 10-12 day self supported pack hike most years. For lunch on these hikes I typically eat some form of processed meat (cacciatore sausage, salami etc) with processed cheese and dry biscuits. On these hikes I can usually swim or bathe in fresh water a few times each day without using any soap. I notice a slow increase in body odor, again mostly from my armpits over the course of the hike. I suspect the body odor may be caused by the garlic from the sausage. The other foods I eat are things I eat regularly without issue. Unlike with the eggs, this odor goes away with the first hot, soapy shower when I get back to civilisation.

Note that in the past I have had girlfriends comment that I had very low body odor compared to other guys they had dated.

So I suspect that successfully switching to a no or very low soap hygiene routine might be challenging for people whose diet and genetics mean they excrete odorous, non-water soluble compounds.

</comment><comment> blaser-waffle I remember at Carnegie Mellon's orientation for the CompSci majors they handed out soap. Perhaps premature?

</comment><comment><USER11> Had a colleague that stopped using shampoo. Fortunately he still bathes. He claims that he doesn't smell. I think he's just used to it.

<comment><USER12> Very similar to my experiences with people who claim they don't smell. They ALL smelled terrible, they just got used to it.

</comment></comment><comment><USER13> For me, and I assumed most others, the primary goal of washing is to not feel "icky", not smell.

<comment><USER14> I'm the same. I recently went on a camping trip and didn't shower for the three days we were gone. I changed my clothes and still wore deodorant every day. I didn't smell despite the fact that I had been sweating due to the heat, but I definitely -felt- disgusting and longed for the warm shower I'd be taking once I got home.

<comment><USER15> A skunk can't smell its own stink. Are you sure you didn't smell?

<comment><USER14> I confirmed with a third party while we were out. So either they were being polite (doubtful) or they also smelled the same and didn't notice it.

</comment></comment></comment></comment><comment><USER16> I'm pushing 50 and haven't washed my hair with shampoo or conditioner since I was around 20.

When I tell hairstylists, the reaction is shock/disgust followed by surprise when they can't help but do the smell test, and it doesn't smell, and then with the unprompted admission that I have "abnormally" thick and healthy hair.

I also just use unscented, clear, vegan, glycerin soap on the important bits, but I'm going to experiment with stopping that after reading this article.

</comment><comment><USER17> Click-baity title? Not using soap isn't the same as "not washing" (i.e. not showering) is it?

<comment><USER18> The first line of the article: "David Whitlock has not showered or bathed for 15 years, yet he does not have body odour."

<comment><USER19> Sounds like genetics. People from poorer countries where people don't bathe as often or have deodorant will tell you people can smell quite a bit without soap and deodorant.

<comment><USER18> Could be but again, from the article: "Whitlock had hoped that he would naturally acquire this type of bacteria simply by stopping washing. He didn't – and grew quite pongy. So, he harvested bacteria from the soil at a local farm and fed them with ammonia and minerals. When they turned the ammonia into nitrate, he knew he had what he wanted and started narrowing them down to a single strain that seemed happiest on human skin. After he applied the bacteria he had cultured – the stuff the horses were apparently after – he stopped smelling."

</comment></comment></comment></comment><comment><USER20> Anecdotally, the biggest change that made a difference for me was switching to a more natural deodorant (Dr. Schmidt's bergamot+lime) from some of the big brands. I used to be able to smell body odour by the end of the day or go into a panic if somehow I forgot to apply in the morning. The odour has drastically been cut down, even if I did not apply the deodorant.

Apparently, when switching to natural deodorant it's supposed to get worse before it gets better which didn't happen for me.

I've asked my partner who has a pretty sharp nose and she agrees with me.

</comment><comment><USER21> they still wash, they just stopped using soap</comment>


HK police are spraying protesters with blue-dye water to mark them for arrest - <AUTHOR> https://www.insider.com/hong-kong-police-fire-blue-dye-water-cannons-2019-8?1=2 <comment><USER2> it seems like the protesters should make some home made blue water dye and spray random people with it to create plausible deniability

<comment><USER3> I don't think the presumption of innocence applies like you think it would in this case.

<comment><USER2> I was thinking if you were getting a lot of false positives, especially with loyalists that could make it a problem

<comment><USER4> that's providing your expectation of "Justice" being fair...</comment></comment></comment></comment>


When the 'Right Thing' Is the Wrong Approach - <AUTHOR> https://www.linkedin.com/pulse/when-right-thing-wrong-approach-arne-sorenson?trk=tod-home-art-list-large_0

<comment><AUTHOR> So they're no longer going to block wifi, but they were right to do so and we are wrong to disagree.</comment>


Casio CQ-1 calculator and clock - <AUTHOR> http://www.vintagecalculators.com/html/casio_cq-1.html <comment><USER2> Anyone an expert on VFDs? LCDs became popular by the time I was into electronics. I've only seen calculator-sized or radio-sized VFDs. Is it possible to make one larger, like the size of a monitor? Is it an expensive process? I've got an idea for a hobby project but have no idea if it's feasible.

<comment><USER3> Getting a custom VFD made would be a very expensive process indeed.

If you need a very small number of segments then Dalibor Farny can make a custom Nixie tube, which is similar technology: [https://www.youtube.com/watch?v=1nHkhJ52iA4](https://www.youtube.com/watch?v=1nHkhJ52iA4) Also a good introduction to how they are made (making a VFD would be similar but more difficult): [https://www.youtube.com/watch?v=wxL4ElboiuA&t=32s](https://www.youtube.com/watch?v=wxL4ElboiuA&t=32s)

Otherwise Noritake itron still make VFD monitors for industrial applications (seems they have high temp advantages over LCDs): [https://www.noritake- itron.com/site2017/index.php?option=com...](https://www.noritake- itron.com/site2017/index.php?option=com_content&view=article&id=11&Itemid=341)

<comment> Nevada-Smith > (seems they have high temp advantages over LCDs)

According to Wikipedia [1], it's their low temperature advantage: "...unlike LCDs, VFDs are not limited by the response time of rearranging liquid crystals and are thus able to function normally in cold, even sub-zero, temperatures, making them ideal for outdoor devices in cold climates."

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

</comment></comment></comment><comment><USER4> For anyone who wants to take a look inside one: [https://www.youtube.com/watch?v=K4qiPhjW4us](https://www.youtube.com/watch?v=K4qiPhjW4us)

<comment><USER5> I love a good mystery!

</comment></comment><comment><USER6> Back in the 70's... everything seemed to be red LED. When I first saw the various VFD displays...well, that was _cool_. I thought they were dead...but here is an interesting take on VFD technology... amplification! [https://korgnutube.com/en/](https://korgnutube.com/en/)

<comment><USER7> Glad to be reminded of this.

I wonder how the Korg Nutube compares to Tripathi style amplifiers.

</comment></comment><comment><USER8> I'm a bit surprised at the display choices. I thought most hand-held calculators in the 70's used LED displays, which I assume would use less power than VFD's. Also I don't recall LCD's coming into widespread use until a good bit later, well into the 80's I would think.</comment>


Mongrel2 1.0 released. - ryan-allen http://sheddingbikes.com/posts/1283412933.html <comment><AUTHOR> I've put up a GH repository of mongrel2 with its dependencies included. Compiling and installing should be as simple as typing:

      make all install PREFIX=$HOME/opt/mongrel2

<http://github.com/bnoordhuis/mongrel2>

<comment><USER2> First, thanks!

From your commit log:

> Disable target install-py for now, it requires sudo.

Agreed: re: disabling app that needs root unnecessarily. I don't want anything fucking with my OS python.

Have you considered having it simply call pip instead, so it installs to the current virtualenv?

<comment><USER3> We should revist this. It's mostly for convenience since lots of people just put the m2sh stuff wherever everything else goes. Problem is that screws up virtualenv folks.

Any ideas on it other than disabling?

<comment><USER4> everything else goes into virtualenvs or user bin/pythonpath; python stuff is unfortunately too fragile to put everything in one place.

<comment><USER2> It's not so much about Python being fragile, it's more that the OS - Linux in particular - uses Python itself, and modules can modify the behavior and break it. (same things if you used Puppet to manage your configs and broke your OS Ruby).

Keeping everything in one dir also makes deployment way simpler.

</comment></comment></comment></comment></comment><comment><USER5> I am simply impressed at how much sh*t he gets done. I honestly want to be more like him

<comment><USER6> you should probably spend less time here ;)

<comment><USER7> I actually think it's fine to spend time on HN, you just can't also spend tons of time on tons of other sites as well.

Based on anecdotal evidence only, it seems the rate at which articles move up and down the HN frontpage pretty much ensures you'll see everything that hits the front page per day if you check HN twice - once in the morning and once in the late afternoon or evening.

I don't think that's too much HN browsing to prevent you from being uber productive, as long as you're not also browsing tons of other sites on the net too.

<comment><USER6> or having discussions in the comments

</comment></comment></comment></comment><comment><USER8> I've read the introduction and I still don't quite know what the fuss is all about.

Perhaps some examples of its benefits right in the introduction?

<comment><USER9> First of all, there's a fuss because it's written by zedshaw. Secondly, zedshaw also authored mongrel, a well-known web server that many people have taken the ragel-based parser from to build their own stuff. Third, everyone's been talking about this whole 'sqlite as configuration' thing, which could be awesome or horrible, the jury's still out. Finally, it's always interesting to see new projects in 'solved' areas. How long has Apache been around? How well is it tested? It obviously works, but could it be better? Zed's trying out new ideas, has a crazy amount of test coverage, and is starting out fresh.

I haven't tried it yet. But it's certainly interesting.

<comment><USER6> what your'e saying is that there isn't yet a compelling reason for most people to try it.

<comment><USER10> Sounds like there are a ton of compelling reasons to _try_ it.

<comment><USER6> As someone who runs multiple sites and who doesn't have a major problem with apache, what here should compel me to try it?

Ragel parser? Um, why should I care if I'm not going to dig into the code myself?

because zedshaw is so fucking awesome? Not a compelling reason to try a web server to me, is it to you?

sqlite configuration? Maybe, but that's not super compelling to me at the moment.

despite my sarcasm, my question is sincere. I'm curious how mongrel2 could be an improvement over what is currently used, which for me is mostly apache

Any other reasons?

<comment><USER3> I'm a firm believer that if it ain't broke don't fix it. If you've got multiple sites working with Apache and you know how to keep that going smooth, then stick with that. Especially if you're doing small to medium sites in say PHP. PHP and Apache are kind of the king and queen of the realm.

What Mongrel2 has over Apache is it's ability to run async jssockets, HTTP long poll style work, and regular HTTP at the same time. If you hit an application where you want to do some async socket type stuff, that's when you should look at Mongrel2.

Of course, that's not all it does, but if you already love your Apache and it's crazy config file format and weirdo 1995 style syntax, then Mongrel2's only addition is the extra protocols.

<comment><USER6> thanks, that makes perfect sense. No, I don't love apache's crazy config file format, but I don't update the config often and it's mostly copy and paste when I need to add something new. It's rails with passenger which is pretty easy.

I'll definitely check out the async stuff, that is compelling!

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> I saw a demo of Mongrel2, and it's really slick. Lots of new concepts to get behind, which is both scary and exciting.

There's no way I can use it for anything remotely close to production but I have some hobby ideas baking...

<comment><USER3> Thanks. Let me know what you do and shoot me bug reports on anything you find.

</comment></comment><comment><USER12> According to the Mongrel2 Book ([http://mongrel2.org/doc/tip/docs/manual/book.wiki#x1-560005....](http://mongrel2.org/doc/tip/docs/manual/book.wiki#x1-560005.1.1)), there is no pipelining of HTTP requests. Without testing anything for myself, I'm really surprised at this; are the perf gains from pipelining really as negligible as the book says they are?

<comment><USER13> That whole 'Note 8' sounds pretty stupid.

"In Mongrel2 we use a parser that rejects invalid requests from first basic principles using technology that's 30 years old and backed by solid mathematics."

The mind boggles... (Unless he's just being satirical here).

Personally, my advice to anyone thinking of using mongrel2 would be to write your own webserver. You'll learn far more than you ever dreamt. If a webserver isn't _that_ important to your success/failure, use a battle-worn webserver - apache etc

<comment><USER14> Well, it is true. He's validating it with a grammar, not some adhoc parser implementation.

<comment><USER13> Can you explain why 'validating it with grammar' is better than 'some adhoc parser'?

IMHO a webserver is one of the things you want to be relaxed, laid back, and basically not care if the client gets things wrong. Just serve up what they look like they wanted.

<comment><USER3> As long as you don't get into the algorithms it's pretty simple.

A hand written http parser is kind of like writing a "white-list" of what the server rejects. Since there's no algorithm backing it the only thing you can do is list out all the things you can think of or have run into that is "wrong".

Using a parser (well lexer really) like Ragel I can make something that's relaxed, but it's more of a white-list of what it _accepts_. The algorithm explictily says this particular set of characters in this grammar is all that I'll answer to.

If you then write the grammar so that it handles 99% of the requests you run into in the wild, you get the same relaxed quality as a hand written one, but it explicitly drops the 1% that are invalid or usually hacks.

This is also the same parser that's power a large number of web servers in multiple languages, so it's proven to work.

<comment><USER13> My mind is still boggling over how you make a simple HTTP request parser so complex sounding.

<comment><USER15> Take a look at the Mongrel/Mongrel2 Ragel grammar and compare it to a hand- written request parser. You might be surprised which is complex.

<comment><USER13> Yeah I just did. Mongrel2 looks overly complex. But then it is C...

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> I'm missing the boat on how it's more language agnostic than other web servers (I'm most familiar with Apache)?

EDIT: I see now that it's "language agnostic" based on using ZeroMQ to shuttle request/responses between Mongrel2 and a language with a ZeroMQ library. Sounds cool, but also makes me wonder exactly how that's different from someone writing, say, mod_zeromq for Apache, and attaching handlers to ZeroMQ in the same way Mongrel2 does? Am I missing something?

<comment><USER3> Apache's architecture is such that it's very bound to "files" and a strict request/response message pattern. That makes things like long polling, async sockets, and even streaming say ICY (check our mp3stream demo) really difficult.

In Mongrel2 it's kind of like every thing's long poll or an async socket. That let's you do a ton of very cool things you can't do easily in Apache or other web servers. Sure you could hack them in, but it's a nightmare.

<comment><USER16> I think I get it, thanks. Mongrel2 is better at being language agnostic, by virtue of intentional design. Looking forward to trying it out!

</comment></comment></comment><comment><USER17> Congrats on the release, Zed!

<comment><USER3> Thanks man. Can't wait to get to the next level with it.

</comment></comment><comment><USER18> I believe the potential of Mongrel2 lies in real-time web applications.

Want to write a backend in PHP for a real-time chat? That is very difficult with Apache and mod_php. With Mongrel2 and ZeroMQ, it is almost trivial.

Mongrel2's asynchronous pub/sub networking paradigm opens up possibilities for real-time communication to browsers. When websockets get real, Mongrel2 may very well be the way we all start using them.

Where Mongrel2 has some ground to cover is handling traditional server- generated pages. Want to run an existing PHP application with a framework like CodeIgniter? You can't do it from Mongrel2 without proxying to nginx or apache (yet). Hopefully this is something that will come along in Mongrel2 v2.0.

</comment><comment><USER19> I have an old idea regarding webservers: peer-to-peer file transfer. The server would not store the file on disk, only the last transferred block in memory. Rate control would be done at TCP level: while the block is not transferred by the receiver, the server would not read again from the sender.

I have written several HTTP servers myself, and I know it's doable, but the world does not need another webserver that only has this distinguishing feature.

My question is if all of this can be done with Mongrel2?

</comment><comment><USER20> If you're not immediately grokking the significance of Mongrel2 (as I did not), be sure to check out the documentation's Introduction:

<http://mongrel2.org/doc/tip/docs/manual/book.wiki#x1-40001>

The features sound cool and significantly evolved past current webservers. And the documentation is extensive and so far, an enjoyable read - now _that's_ impressive. :)

</comment><comment><USER21> So is this designed to replace apache/nginx, or should i throw it behind an nginx upstream still and let nginx serve the files?

<comment><USER22> it can do either, but i think it's designed to do the former.

</comment></comment><comment><USER23> Sweet stuff. Arnor's got a new toy! Good job Zed.

</comment><comment><USER24> Good work Zed!

</comment><comment><USER25> I have no doubt that for what it is this is a well designed piece of software, but, I'm gong to stick my neck out and say that purely for reasons of scalability a web server written in Ruby just doesn't seem like a sensible choice.

<comment><USER26> Twitter used to use Mongrel, but replaced it with Unicorn (uh, another Ruby based server :))

<http://engineering.twitter.com/2010/03/unicorn-power.html>

<comment><USER2> Well they're using Scala in production now, so if they wanted to use Mongrel2 messaging, they probably can.

<comment><USER9> They're using it for back end stuff, the front is still Ruby. To my understanding.</comment></comment></comment></comment>