The qmail security guarantee - <AUTHOR> https://cr.yp.to/qmail/guarantee.html <comment><USER2> For anyone considering QMail today, don't.

When QMail was initially conceived, Sendmail was king, and Sendmail was awful (from a security perspective). Today there are multiple very good alternatives to Sendmail (I've used Postfix for many years with no complaints), and QMail has seen very sparse development. While Postfix has a moderately less stellar security record, it's still pretty darned good, and still under active maintenance.

Many modern mail security features are either hacked onto QMail via patches from third parties (none of whom are as famous for their security chops as djb) or completely non-existent in QMail. The number of people running it today is extremely small, so you're going to find relatively few resources about it when you run into problems (and what resources you find will be very, very, very old, in most cases).

If you're wanting a similarly limited SMTP server that is under active maintenance, opensmtpd from the OpenBSD folks might be an option (though I've never used it). It, at least, has people looking at it regularly and supports basic features lacking in QMail, like encryption, without patches.

QMail has a tiny but rabid following (kinda like djb himself) who settled into their beliefs about the MTA landscape in 1998 and have ignored everything that's happened since. (Funny, or maybe just odd, story: When we removed qmail-ldap, an unmaintained patched version of QMail that adds LDAP authentication, from Virtualmin, I literally had someone bringing up companies that have been out of business for more than a decade as proof that it was still in active use and we should keep maintaining support for it, even though no one has asked a question about it in our forums in eight years. It was the most bizarre technical conversation I've had in a while. I was like, "But, umm...they have no website and every mention I can find of that company is from 2006. What makes you think they're still using qmail-ldap or would care that we're removing support for it?" Then again, they also wanted to rant for a couple dozen paragraphs about gay people oppressing them in our issue tracker and for an hour or so in our IRC channel, so he may not have been entirely connected to our reality.)

<comment><USER3> I'm surprise how long qmail lasted but it definitely has issues (some of them with patches, the patches definitely have much more flimsy security and realistically you can't run it without many feature patches these days)

I actually wrote a replacement for vpopmail called 'rmail' that stored the virtual user databases in cdb. I never liked requiring a central DB like MySQL for your mail receipt to work in real time in an otherwise relatively decentralised server protocol (despite literally working at MySQL for 9 years) and liked the idea of a file better. Powered 1000+ users for many many years. Now replaced with postfix for about 5 years :)

Still, it definitely has a surprisingly solid place in my historic heart.

<comment><USER2> Postfix has always (or, at least, as long as I can remember) used something very similar to that idea for all of its various user, alias, virtual, etc. tables. It's mostly transparent to the user, but when you run postmap, you're creating a key/value database (for those who don't know, cdb was djb's efficient key/value database implementation way back when) of the things in the map file.

It can even use cdb as a backend, but realistically for the kinds of map tables one works with in a mail server, any of them are Good Enough(tm) because the entire data set will always fit in memory (even if you have an absurdly large mail server with 100,000 mail users on a single system, it'll still fit in RAM).

We used to get a _lot_ of people wanting MySQL support in our mail stack, which I actively have always discouraged. It's (orders of magnitude) slower, harder to maintain, and provides no benefit for the vast majority of deployments. For whatever reason (maybe just that fewer people want to host their own mail beyond sending mail from apps and notifications from the system itself), we get a lot fewer requests for it lately. Maybe I finally convinced everyone it was a bad idea.

<comment><USER4> I'm responsible for several mail servers and all are them are running postfix with the user data stored in SQL (including my own personal mail server). The primary reason is to simplify administration (management of user accounts and such, using various scripts and webapps).

<comment><USER2> There is an argument to be made for some sort of central backend store when you have multiple mail servers for the same domain(s) and users. SQL isn't terrible in that context (I would likely prefer LDAP for that, but SQL works, too).

Most of our users have one server, and lots of tutorials and stuff are about one mail server. It just makes no sense to add that huge amount of extra complexity for that simple use case.

</comment></comment></comment></comment></comment><comment><USER5> I started using qmail in 1996-ish, and was a pretty big fan for a while.

I wouldn't use it at this point though, it really has languished and is, IMHO, totally unusable without a lot of dicking around to get the right set of patches and the like.

He kind of lost me when AOL increased their MX record to be larger than UDP could handle in a single packet. He stood firm that AOL was doing it wrong, meanwhile my users didn't care about what the RFCs said, they just wanted to e-mail their grandma like all their friends could.

The qmail community collected a lot of people with similar personalities and I got tired of it.

These days, I'm pretty happy with Postfix, and it has things a modern e-mail servers needs, supported in the core rather than requiring a ton of patches that haven't been eyeballed by the author.

</comment><comment><USER6> According to this: [https://en.wikipedia.org/wiki/Comparison_of_mail_servers](https://en.wikipedia.org/wiki/Comparison_of_mail_servers)

qmail doesn't support SMTP over TLS or SSL. How is that "secure"?

<comment><USER7> Well, if you sent an email to `|program` it didn't execute program. Seriously[1]

[1]: [https://www.tenable.com/plugins/index.php?view=single&id=102...](https://www.tenable.com/plugins/index.php?view=single&id=10261)

Indeed, many sysadmins of the time lauded qmail's lack of supporting "standard features" in the name of "security" which sadly was still a new concept on the Internet.

Something to consider: SMTP over TLS offers some privacy and confidentiality between two mail servers that have established a trust relationship, but it offers no protection against an upstream network (who can simply fake some DNS records and get a letsencrypt certificate) or a state actor (who simply threatens the CA). I think referring to "SMTP over TLS" as "secure" is dangerous because it leads us to equate "more code" as providing security.

<comment><USER8> Truly, the only way to have security is to encrypt the message with the receiver's public key.

<comment><USER6> I find it discouraging that it's almost 2018 and this function of E-mail has not been made standard in all clients yet.

I understand the concerns about trust, but why not make trust the extra step for now, and make encryption the standard. And in time we can standardize trust as well. (I know it's pretty standard already but I'm thinking about 'the average user')

"Well I can't trust the source so why bother with encryption" is what we have presently, and that's just ridiculous.

<comment><USER7> "What's your email address" is about 90-120 bits of information -- a long way from the 2000-5000 bits that are in a public key. I figure if we solve this problem then we can make encrypting email the norm.

</comment></comment></comment></comment></comment><comment><USER5> "It's too bad DJB is so abrasive, because he has some good ideas and nobody will listen to him because of it." This came from someone fairly famous, but I didn't ask to quote him so I won't. His name is on a definitive book in his field.

Personality is important.

<comment><USER9> More important than aesthetics, competence and the code itself?

What if the user does not care "who" the author is, other than to identify what he has written?

For example, I have no idea "who" Arthur Whitney is, but I will not hesitate to spend time learning any software he writes. His work speaks for itself.

Same for djb.

In the context of how I choose software, personality is irrelevant.

I am unlikely to ever interact with these authors.

If people in forums and committees put these authors down or criticize their work then that tells me something about the people in forums and committees.

I am not sure I understand what bothers them about the few people who have rare ability to "push the envelope" in software and share their work over the internet, but I am aware that it bothers some people.

<comment><USER10> > More important than aesthetics, competence and the code itself?

Yes, if that personality results in "sexual harassment, bullying, blackmail, and physical harm" ([https://medium.com/@hdevalence/when-hell-kept-on-payroll- som...](https://medium.com/@hdevalence/when-hell-kept-on-payroll-somewhere-is- where-you-are-f419d3022d0)), then that personality is more important then "aesthetics".

Previous HN discussion: [https://news.ycombinator.com/item?id=13891513](https://news.ycombinator.com/item?id=13891513) I wonder if this has gone anywhere in the courts.

<comment><USER9> Many people use software everyday without being aware of the identity of its author(s) and certainly not the personal life of its author(s). Because I prefer open source software, I may know who are the authors of the software I use, but I have no need to know the personal lives of these authors.

At this time there is another item on the HN front page about a Linux distribution called "Void Linux". Several of the comments indicate it uses "runit". Runit is a copy of software called "daemontools", written by djb. I use daemontools. I would like to keep using it.

Do I need to cease using it because people in blogs and forums are discussing personal matters involving the author? Is it acceptable to use Void Linux?

To list all the popular software/websites that may include/use code/software from this author would be an exhausting exercise. It would probably include many well-known entries, such as major email providers, DuckDuckGo, OpenDNS and WhatsApp.

I can easily avoid those popular choices, but I still need to use daemontools, tinydns, clockadd, and other programs by this author. IMHO they have no equal.

For clarification, by "aesthetics" I mean software aesthetics. Namely, a preference for small program size, terse syntax, low resource requirements, and numerous other "aesthetic" qualities. These qualities are evident from the code itself and _I need not know anything about the life of the author_.

It may be better that I do not know. Consider an avid reader who grows to love the work of a particular author. Then one day she decides to meet the author. Unfortunately she is severely let down when she learns the author's personality is not what she expected. Does this reduce the quality of his art that she previously enjoyed? One can apply this idea to any form of art. The art itself vs the life of the artist. To me, software is a form of art.

<comment><USER10> > Is it acceptable to use Void Linux?

Yes, and it's disingenious to suggest that I suggested otherwise.

> These qualities are evident from the code itself

But you don't read the code of every single package on your system. Similarly, you probably don't have to research the personal background of every single developer.

> IMHO they have no equal.

Well, there you go then. That's a good reason to use them. I said personality can be more important than aesthetics, I did not say personality is more important than any other criterion you might think of.

> It may be better that I do not know.

It may, although now you _do_ know. Actively seeking out information to act on is different from acting on information that was communicated to you. But again, if you feel that I am saying you are a bad person for using tinydns, you feel wrong.

<comment><USER9> It is "disingeuous" to suggest I use binary packages or that I use third party software whose source that I have not edited or read.

As it happens, I am constantly reading the sources of the software I use: kernel, userland and third party. And I do pay attention to attributed authorship on that software.

But I am not evaulating any software based on "personalities" of its authors, as alleged by random people, often anonymous, in internet mailing lists, forums, blogs, etc.

I am going to continue to use the "best software available", as determined by me, for better or worse. I think I am not alone in that approach and I think it is reasonable. I will not be distracted by petty criticisms of what I know to be good software or "dirty laundry" about the authors on the internet that I may encounter in the process.

<comment><USER10> > or that I use third party software whose source that I have not edited or > read

I'm calling bullshit on the statement that you have read every single line of code for the software running on your system.

> I am going to continue to use the "best software available", as determined > by me

Good for you.

<comment><USER9> I'm calling bullshit on injecting an absurd dichotomy between choosing software based on the author's personality versus "reading every single line of code of the software running on your system". It is possible to choose software based on qualities inherent in the software and not know or care about the personality or personal matters of the author. And it is possible to do this without "reading every single line of code of the software running on your system".

Those qualities of the software and its design, what I call "software aesthetics" might include, among other things, the size of the program, its resource requirements, dependencies, configuration, and even, yes, the source code itself. Nowhere did I suggest that I read "every line" of every source code file comprising the operating system I use.

Where possible I do selectively read and sometimes edit some of these files. With respect to third party software, I often do read every file. I prefer software that is small enough where I can do this. But what does the idea of reading "every line of code" in an (operating) system have to do with my original comment? Nothing.

In any event, since you have shifted the discussion to (operating) systems, I can confirm I did not choose the (operating) system I use based on the "personality" of its authors. I chose it because of the "software aesthetics" reflected in the software itself. As I see it, this might include an appreciation for the command line and small program size, manual configuration by the user and having all options _off_ by default, documentation, portability and "clean code", among other things. People making comments in email or on the www on whether they like or dislike the authors of this software did not affect my decision to use it.

The point of my original comment was simple: someone may choose software based on the software itself, not the author's personality, whatever that may be. I thought this is worth considering in response to the parent comment that "Personality is important". But others may disagree.

I would like to end this exchange now. I appreciate your input.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> [http://cr.yp.to/qmail/qmailsec-20071101.pdf](http://cr.yp.to/qmail/qmailsec-20071101.pdf)

<comment><USER4> FYI: _" Some thoughts on security after ten years of qmail 1.0"_ (by DJB, of course).

Abstract:

The qmail software package is a widely used Internet-mail transfer agent that has been covered by a security guarantee since 1997. In this paper, the qmail author reviews the his- tory and security-relevant architecture of qmail; articulates partitioning standards that qmail fails to meet; analyzes the engineering that has allowed qmail to survive this failure; and draws various conclusions regarding the future of secure programming.

</comment></comment><comment><USER11> The qmail security guarantee was challenging. I made it a try and actually I found a bug

[http://adivo.se/qmail/qmail-1.03.qmail_local_c.patch](http://adivo.se/qmail/qmail-1.03.qmail_local_c.patch)

but it was no security bug. Unfortunately I can't find any mailing list archive of qmail where the bug was discussed.

<comment><USER12> You've been on [http://jdebp.eu./FGA/qmail- problems.html](http://jdebp.eu./FGA/qmail-problems.html) for about 14 years, and your patch was one of the ones that went into netqmail.

<comment><USER11> I'm glad that the patch came into use.

</comment></comment></comment><comment><USER13> Back in 2001 when I was investigating the dependencies I wanted to take on for a webmail service, qmail was on my list of possible candidates, also because of this security guarantee.

However, I quickly learned that while that security guarantee probably was a good thing and valid, practically nobody was actually running vanilla qmail because it also had a very limited feature set.

What people were running was a mixture of qmail with various patches of their own or downloaded from somewhere on the internet, none of them properly maintained and all of them likely full of security issues nobody was caring about.

However, if you asked them what they were running, they were still saying qmail and they were still quoting the security guarantee which at that point was completely worthless.

In my case I went with a "batteries included" solution that didn't provide a security guarantee but also came with all the features I needed built-in and which also got regular updates by its maintainer.

Not needing to add third-party patches was more important than the design and guarantees of the base-product because the moment you patch the thing yourself, you own it and all the possibly given guarantees and positive aspects of the underlying architecture were null and void.

The solution I went with in the end was exim and it still is the MTA on our central relay. It had more security issues than qmail or postfix over its history, but I also do not need to patch it for my solution with users-in-SQL. Meaning that whenever a security issues is found, I can rely on my distro to provide updates which will fix the issue.

qmail and postfix provided a better security picture out-of-the-box but both would have needed manual patching for my needs which I deemed too risky.

There is no question that the less functionality offered by a product, the more secure it is. If you don't need any features, then by all means go with a product that has no features and you'll automatically enjoy the best security: Features breed complexity. Complexity breeds security issues.

But if you absolutely need a list of features that is offered by a tool, be careful in weighing up the risks of manually adding those additional, things compared to going with the full solution where somebody else is taking care of the security picture.

<comment><USER7> > which at that point was completely worthless.

I disagree. qmail's design decisions meant that a lot of the patches were insulated even from themselves.

It also made me a better programmer and a better sysadmin.

</comment></comment><comment><USER14> I still run qmail (in addition to postfix and opensmtpd) for one thing: ezmlm- idx.

Is there something I can replace ezmlm-idx with, that would seamlessly import all the lists, subscribers and archives?

<comment><USER15> [http://mlmmj.org/](http://mlmmj.org/) claims to be heavily inspired by ezmlm. I haven't used either so I don't know how well it works as a replacement, but it might be worth a look.

</comment></comment><comment><USER16> Ah yes, the one that djb denied to somebody who found a resource exhaustion hole, from what I remember.

<comment> X-Istence > In May 2005, Georgi Guninski claimed that some potential 64-bit portability > problems allowed a ``remote exploit in qmail-smtpd.'' This claim is denied. > Nobody gives gigabytes of memory to each qmail-smtpd process, so there is no > problem with qmail's assumption that allocated array lengths fit comfortably > into 32 bits.

<comment><USER17> That's adorably quaint. I wonder if djb still believes that's the case?

<comment> X-Istence qmail-smtpd is a very small binary that is run per connection received through tcpserver.

There is no good reason to give it even a gigabyte of ram, let alone many multiple gigs.

I would say the notion that small binaries working together (the unix way) would still allow him to believe to be the case.

<comment><USER18> Nobody "gives" set amounts of memory to their processes at all, so this thinking is backwards to begin with. The vulnerability is legitimate.

<comment><USER19> I seem to remember that the installation directions included something to limit memory size, and trying to install without reading the directions would fail well before opening a listener port.

</comment></comment></comment></comment></comment></comment><comment><USER20> "write bug-free code"

There's no such a thing, specially when you decide it's a good idea to rewrite libc.

But yeah, the "stdio seem designed to encourage bugs" phrase seems pretty correct.

<comment><USER8> That's missing the point.

You can either learn from his techniques and improve your skill, or you can argue about definitions and not improve your skill.

There is no doubt that DJB has good coding skills.</comment></comment>


Ask HN: HIPAA complaint email providers for small businesses? - <AUTHOR> <comment><USER2> So that depends on how you define "HIPAA compliant". If you're thinking about sending PHI via email - Don't. End of story.

HIPAA stipulates that you must both transmit and store PHI in an encrypted fashion. If you force your emails to be sent via TLS (to consumers) it is very likely a large percentage of your emails will never send (yes, gmail supports TLS but other major providers done). You also cannot assure that the email is stored in an encrypted fashion upon receipt. In fact you can safely bet on it NOT being encrypted a fair amount of the time upon receipt because that takes a lot of work to do truly end-to-end encryption (one of many reasons why HIPAA is such a PITA).

So... How do you send emails in the world of health? You don't tell them anything other than they need to visit your site to read the message. You'll find many "secure email" providers and software (or build it yourself. The emails you send via whatever 3rd party qualify for the conduit exception because said 3rd party doesn't have access to the PHI.

None of the major providers like AWS SES, Sendgrid or Sparkpost will offer BAA's because of the previously mentioned reasons. You can still use them, just don't email PHI. Ever.

Now there is one major transnational email provider that I know of, that will sign BAA's. (Their name rhymes with "run" but I'm not going further because they are full of sh#t). Even with the BAA signed, if you read the fine print it still says you can't send PHI via their service. So its completely pointless.</comment>


Does socialism work? A classroom experiment - <AUTHOR> http://www.thecommentator.com/article/646/does_socialism_work_a_classroom_experiment <comment><USER2> What a rubbish article - there was no experiment - it's a right wing parable misrepresenting reality.

> That class had insisted that Obama's socialism worked and that no one would > be poor and no one would be rich

As if that was even a thing.

</comment><comment><USER3> The article describes something more akin to communism than socialism. Socialism and capitalism are not mutually exclusive . The (fictitious) professor's class room already ran much like the United States does before the (fictitious) experiment, that is, everyone is guaranteed at least the same lesson (socialism) and what you do with that lesson to benefit yourself is up to you (capitalism).

In reality and to follow the articles misguided analogy, most top universities curve (inflate) student grades much like the United States' overly capitalist system has established what is akin to corporate well-fair. In fact the U.S has gotten to the point where the only entities with rights are businesses and the wealthy - if you want rights and well-fair in the U.S. start a business its the only way. This is evidenced by the fact that only 2% of civilian legal issues in the U.S. ever see trial or legal mediation while the majority of all business legal situation get the full attention of the judiciary system.

More social programs in the U.S. in the U.S. apply to businesses not people.

<comment><USER2> I was thinking not even the hardline communist countries gave students the same result in exams.

</comment></comment><comment><USER4> Huh? Top universities have severe grade inflation, which is close to what is described here. And grads of these universities still rule the world. [http://www.thecrimson.com/article/2013/12/3/grade- inflation-...](http://www.thecrimson.com/article/2013/12/3/grade-inflation- mode-a/)

</comment><comment><USER5> Pretty simplistic because obviously this is an extreme case to average all scores. But if you took 10% of the top score and added to the bottom scores it's more like a tax and the people at the top probably don't mind as much. I think when it comes to things like universal basic income, the idea to pay people directly implies that there is a base level of money that results in people being somewhat satisfied. But in reality I don't think it would ever. In Seattle where I live, some homeless people live in tents below the freeway near downtown because that is the only place they can afford within the area they want to be at. So if they had a basic income that allowed them to afford a house 30 miles from downtown would they live there? Good chance some would but some would not. Basically socialism only works if people think they are getting a good deal. That's how most people feel in countries like Sweden. They feel like they have a really nice country and really nice doctors and schools and services. The taxes are high on the rich but even the rich are not complaining too much. I think capitalism is a good way to motivate people but it's kind of like a game theory thing.. Basically you have to come up with a way to benefit the group in order to help yourself. The lone rich guy might actually not be rich for long if the mob comes and takes it away.

The discussion about the middle class disappearing I think is code for "jobs that used to pay really well for doing not that hard of jobs are going away".. Like in an era when robots can move pallets back and forth in a warehouse 24/7 should a forklift driver make $30/hr? The basic point is that jobs that are easy to replace either with a robot, a foreign worker, or less people we should expect there will be less of them. So training our workforce needs to be tailored to suit that reality.

<comment><USER6> "Pretty simplistic because obviously this is an extreme case to average all scores."

It's simplistic because it assumes all that motivates people are scores and counters. In other words money.

Psychology shows that isn't the case. The very existence of open source software shows that isn't the case. I'm not sat here with an Elm program because I'm looking to get an A. I'm enjoying the act of creation.

</comment></comment><comment><USER6> The experiment should be to see how many logical fallacies you can find in this very silly response.

zero sum thinking is just the first.

</comment><comment><USER7> Clearly, this story is fictional. Let's say it is truthful. Then let's simply examining the very first sentence: "An economics professor at a local college made a statement that he had never failed a single student before, but had recently failed an entire class."

How did he never fail a single student before?

</comment><comment><USER8> How did something this intellectually bereft make it onto HN?

<comment><USER2> Guess you can submit anything and seven people have upvoted, quite likely of a certain political persuasion. It didn't really seem significant enough to even bother flagging though I guess you could.</comment></comment>


Why CEO's Without A Technical Background Need A Strong CTO - <AUTHOR> http://cemagnifique.com/2011/04/15/why-ceos-withouta-technical-background-need-a-strong-cto/ <comment><USER2> 'You don't want to hear from your CTO: "Sorry I can't work on Sunday – I've promised to take the kids to the Zoo…" so take all factors carefully into consideration.'

Yeh right...

CTOs need downtime too

Some of my best thinking happens when I'm not in the office e.g. driving to work, digging the garden or playing with the kids

<comment><AUTHOR> Agreed, however the point I'm trying to make here is that it's essential for startup founders to be able to dedicate more time on the company than they would being on payroll at some random company from 9 to 5 - Monday to Friday.</comment></comment>


Ask HN: If you are CEO of Microsoft, will you build a Microsoft branded PC? - <AUTHOR>

What is stopping MS from doing so? They already have MS branded phones and tons of experience building computing hardware (XBOX 360). <comment><USER2> Would it provoke existing PC manufacturers to ship PCs with a Linux-based OS instead of Windows? I think we'd find it easier to buy a PC without Windows --- not what Microsoft wants.

Some PC manufacturers would doubtless shout "monopoly" and could credibly threaten to drag Microsoft through the courts, or even into antitrust again.

That said, I can see a niche for them in selling PCs with high quality drivers (and thus a more stable Windows). But I don't think it would be profitable enough to be worth it for them.

</comment><comment><USER3> The margins on PC hardware are razor thin. It would take a major investment for little profit.

Also, Microsoft hasn't done a great job with the xbox 360. For example, the red ring of death problem on old models and the graphics flicker on the new slim models.</comment>


China closes WeChat account in crackdown on anti-American fake news - <AUTHOR> https://www.scmp.com/economy/china-economy/article/3086073/china-shuts-down-wechat-social-media-account-claiming-us <comment><USER2> So who exactly are the baddies?

<comment><USER3> The fake news. Or, to be precise, Internet-enabled populists (it doesn't automatically make the government of China or WeChat good, of course).

I think this is an interesting case that makes a point - on one hand, it's now a general consensus that a large volume of fact-free, manipulative posts online are harmful and many argue that responsible platforms should not host (or at least not to promote) them, but the very same countermeasures that governments and platforms took against them can be abused to suppress legitimate speech and social movements.

<comment><USER4> Which is why I'll accept the fake news omnipresence given widespread emphasis on research and corroboration skills over telling the government or companies to police it any day. It's like a new coming of age. The dawning of realization that people on the Internet are happy to lie to or manipulate you.</comment></comment></comment>


Ask HN: How Do We Know If an Acquisition Was a Financially Successful Exit? - <AUTHOR> <comment><USER2> Ask the founders</comment>


We tried really hard to beat Face ID – and failed (so far) - <AUTHOR> https://www.wired.com/story/tried-to-beat-face-id-and-failed-so-far/ <comment><USER2> It is puzzling that anyone thinks that Apple would introduce a security system so flawed that a mask could unlock a phone. Good on them for trying, but I imagine that for now it is a fools errand to try and beat Apple's Face ID with relatively primative methods.</comment>


4D Tesseract: Fourth Dimension Game - <AUTHOR> http://www.fourthdimensiongame.com <comment><USER2> If you think that us 3D people will never be able to wrap their heads around 4D, you have to read Charles Hinton's ([http://en.wikipedia.org/wiki/Charles_Howard_Hinton](http://en.wikipedia.org/wiki/Charles_Howard_Hinton)) _The Fourth Dimension_ ([https://archive.org/details/fourthdimension00hintarch](https://archive.org/details/fourthdimension00hintarch)). This is the guy who coined the terms _ana_ and _kata_ (from Greek) for the two additional 4D directions, analogous to up/down, etc. (he also invented a gunpowder baseball pitching machine that, some say, led to his dismissal from Princeton, due to player injuries).

Now that's interesting on its own, but his sister-in-law, Alicia Boole Scott ([http://en.wikipedia.org/wiki/Alicia_Boole_Stott](http://en.wikipedia.org/wiki/Alicia_Boole_Stott)) is also amazing. She was the daughter of the famous Boole, and made big contributions to higher dimensional mathematics, especially 4D, e.g. she proved there are exactly six regular polytopes in 4D. She "made beautiful cardboard models" of 3D cross sections of these. This, while she was working as a secretary in Liverpool (sad reality of early women scientists/mathematicians).

They don't make them like that anymore! It would be interesting to have documentary on 4D based on these interesting people.

EDIT: Also, in catastrophe theory, the Swallowtail catastrophe, which has 3 control and behavioral dimension was named by the French mathematician Bernard Morin ([http://en.wikipedia.org/wiki/Bernard_Morin](http://en.wikipedia.org/wiki/Bernard_Morin)), who is blind since he was 6!

</comment><comment><USER3> Another 4D game: Miegakure [http://marctenbosch.com/miegakure/](http://marctenbosch.com/miegakure/)

As referenced in a XKCD [http://xkcd.com/721/](http://xkcd.com/721/)

<comment><USER4> When you mention miegakure you should mention that it's been in development for about as long as DNF and might be done in 2020. :)

<comment><USER5> Well, experimental games take a long time to make! It's to be expected.

<comment><USER4> Of course. :)

I love every blog post you write and every image i see released of the game.

It's just that i've come to terms with the high possibility that i simply might not get to play this game at any point.

I'm simply trying to say that the path to the realization should be made easier for other people before they become enamored only to face the harsh reality of the last paragraph on the game's website. ;)

<comment><USER5> It's actually highly unlikely the game will not come out.

<comment><USER4> It's heartening to see this confidence. That makes me happy. :)

</comment></comment></comment></comment></comment></comment><comment><USER6> For those trying to wrap their heads around this ... I find this segment by Carl Sagan from the original Cosmos to be pretty well presented on the topic: [http://www.youtube.com/watch?v=UnURElCzGc0](http://www.youtube.com/watch?v=UnURElCzGc0)

<comment><USER7> His explanation is more or less adapted from "Flatland: A Romance of Many Dimensions"

[http://www.amazon.com/Flatland-Dover-Thrift-Editions- Abbott/...](http://www.amazon.com/Flatland-Dover-Thrift-Editions- Abbott/dp/048627263X)

<comment><USER8> I read that book in high school for extra credit in a math class, and really enjoyed it.

</comment></comment></comment><comment><USER9> Whee, looks like fun!

Adanaxis[1] is a 4 dimensional space shooter- only sort of playable but still fun.

[http://www.mushware.com/](http://www.mushware.com/)

</comment><comment><USER10> I'll just be the first to admit that I am indeed too dumb to grasp this concept. I've stared at it for a long time, but I do not get it.

<comment><USER11> I think of it this way: if you try to draw a 3D cube on a 2D screen, what you really have is a 2D image. If oriented correctly, and nobody told you anything about that cube, you might mistake it for a 2D hexagon. If instead that cube were rotating, you would see the change in the shape of the hexagon and realize that the image is supposed to be a cube.

But the reality is, it's still a 2D image. It's just a representation, and context and animation help you get back to the notion that it's a 3D image.

Now, think for a minute about how the screen works. There are rows and rows of pixels. Each of those rows is actually a 1-dimensional image, a slice of the whole. If you were to only see one row of pixels at a time, you'd not be able to figure out what the image is. Maybe if you knew certain parameters about the image, that it was of very low fidelity, simplistic shapes, you'd be able to analyze one row after another and figure it out. You'd have extreme difficulty just looking at a 1-dimensional image, or a serious of such, and figuring out it would be of a 3-dimensional object. To really see the image, you again need it animated. The rows are scanned out very quickly, and your brain blurs it all together.

So, when you're dropping from N to N-1 dimensions, you lose something, something that you can sort of get back if you add some motion in. When you drop from N to N-2 or more, you lose so much that you have a really hard time figuring it out.

Now we can finally come back to the tesseract. It's a 4D object. We're trying to display it on a 2D display. It's not going to work out too well. You've really got to stare at it, think about what is going on, understand that you're dealing only with a very low fidelity, simplistic shape. Analyze it, rotation after rotation, and you might be able to figure it out.

Or, in other words, it would be a lot easier if you had a real 3D display.

<comment><USER12> A 3D display doesn't help much; being able to take advantage of stereo effects helps a little, since you can see it from multiple slightly different angles at a time (one per eye). But your retina is still 2D- you can't perceive 3D objects directly through the visual system, just 2D projections of them.

A native 4D creature would presumably have a 3D retina that can directly perceive 3D projections of 4D objects and infer 4D structure from them like we infer 3D structure from 2D projections. Maybe a tactile display could improve things somewhat (though you'd still be lacking access to 3D-internal structure), but as long as you're going through the human visual system, it takes some significant effort to reconstruct the 3D projections and then go the extra step to inferring 4D structure, no matter how good your display technology is.

</comment></comment></comment><comment><USER13> Reminds me of the time that Sting sang "Message in a klein bottle". Of course, as soon as the bottle was thrown into the sea, the water seeped in destroying the message on the paper.

"Bollocks", said Sting. "There goes my proof of the Riemann Hypothesis."

</comment><comment><USER14> Cool idea, and it has potential, but it's missing fun!

Touching all surfaces != fun.

Maybe collecting an item(s) on some surfaces could be ok.

Or a "finish line" box to go through on some surface.

It's more fun, IMO, to have specific goals.

Uninstalled for now but am excited to see where you might take it.

</comment><comment><USER15> A few months ago I made a 4D puzzle console game in Python: [https://github.com/boppreh/anakata](https://github.com/boppreh/anakata)

It's an amazing experience to think of visualizations. I ended up with a grid of grids, like you see in the readme. Each smaller grid is a 2D slice of the world, each column a 3D stack, and the set of all columns the full 4D space.

</comment><comment><USER16> I've always thought a 4d first person game where you could toggle pairs of dimensions could be really interesting. At any point you could swap between wxy/wxz/xyz. The rendering would be standard 2d projections of the 3 dimensions you have toggled on...Add guns and you have the trippiest FPS I've ever heard of.

<comment><USER16> Teach me to post before reading. Looks like someone already posted this exact concept game...Although my idea always involved gravity somehow....

</comment></comment><comment><USER17> For a more in-depth discussion on 4 dimensional geometry, I highly recommend the Dimensions films[1], which are available for free download. It's a little bit mind-bending, so to speak.

[1] [http://www.dimensions-math.org/Dim_E.htm](http://www.dimensions- math.org/Dim_E.htm)

</comment><comment><USER18> If I give this to my kids ([http://en.wikipedia.org/wiki/Mimsy_Were_the_Borogoves](http://en.wikipedia.org/wiki/Mimsy_Were_the_Borogoves)) will they disappear?

</comment><comment><USER19> Another 4D game: 4D rubik's cube! [https://www.youtube.com/watch?v=Aonf34s0Bqg](https://www.youtube.com/watch?v=Aonf34s0Bqg)

</comment><comment><USER20> This could help... [https://www.youtube.com/watch?v=t-WyreE9ZkI](https://www.youtube.com/watch?v=t-WyreE9ZkI)

</comment><comment><USER21> It doesn't work well on my Nexus 5, the tutorial text was clipped off the edges, I can't seem to zoom out.

<comment><AUTHOR> I will look into that. Thank you for posting.

<comment><USER22> I'm getting the same behavior on a Motorola Photon 4g

</comment></comment></comment><comment><USER23> Anyone else think it's funny how he labels w as a dotted anomaly, even though z is just as anomalous?

</comment><comment><USER24> Please fix UI bugs like not being able to exit. :(</comment>


TiLDA MKe, the EMF 2014 camp badge - <AUTHOR> http://blog.emfcamp.org/post/94157161753/announcing-tilda-mke-the-incredible-emf-2014-camp

<comment><AUTHOR> A bit more info:

The badge is running FreeRTOS, and has a custom-written screen driver. It also has the ability to run tasks that have been built using the normal Arduino IDE with a special build target!

If everything goes to plan, we'll have OTA code loading and a really basic "App Store"...

<comment><USER2> "You can take it home afterwards and use it to experiment with programming. Or build a 3D printer. Or a spaceship."

Spaceship parts must be purchased separately...

Seriously though it looks like it's going to be a very dinky piece of kit.

</comment></comment><comment><USER3> Yay second installment of EMF.

I hope it's going to be as fun as the last one. :)

I really enjoyed myself at EMF 2012.

Any ideas what would be a good use for the badge after the event?

<comment><USER4> There is already someone working on building a quadcopter around the badge.

<comment><USER5> I'll bring my 250mm-sized quad copter to EMF; shouldn't be very difficult to replace the controller board with the MKe. If you don't mind not having stabilisation (horizon mode) you can put it together with four PWM outputs and one digital input.

<comment><AUTHOR> There's a gyro & accelerometer on board the badge, so you should be able to implement that too!

<comment><USER5> It's less implementing it, more porting it and "hmm, will this work? I think this will work. Well. Let's try anyway. Upload. Try it. Crash."</comment></comment></comment></comment></comment>


Israel to Get Electric Car Battery Swap Stations  - <AUTHOR> http://www.technologyreview.com/energy/37982/

<comment><USER2> There is a very informative overview (video presentation) of this model at Ted:

<http://www.ted.com/talks/shai_agassi_on_electric_cars.html>

by the Better Place CEO Shai Agassi.

</comment><comment><USER3> Excellent idea. And one I had thought about for many years.

Unlike gasoline where we own the fuel in our car, it actually makes better sense for the batteries in our car to be a service. Every "gas station" just acts as a dead battery replacement depot.

The only bottleneck I can see with this model is the depot's recharging units. If too many people show up at the same time, there may not be enough stock of charged batteries to go around.

On Top Gear UK a few years ago, Jay Leno was interviewed and he made a point about the viability of electric cars. Paraphrasing, he said that until electric cars can recharge as fast as a gasoline car (i.e.: 5 minutes to pump fuel into a car) the electric car is always going to lag behind fossil fuel vehicles.

BetterPlace is at least a step in the right direction.

<comment><USER4> > Paraphrasing, he said that until electric cars can recharge as fast as a > gasoline car (i.e.: 5 minutes to pump fuel into a car) the electric car is > always going to lag behind fossil fuel vehicles.

This could actually be a selling point for electric cars. Once standard battery specifications are agreed upon, there's no reason the engineering couldn't get good enough to swap batteries in under a minute.

<comment><USER5> My main worry about battery-swapping is that batteries die after a while. At some point, you're going to show up to the battery-swap station expecting a battery that goes 100 miles, and get a battery that only goes 50 miles. That won't be a problem most of the time, but for a few edge-cases, you can strand someone.

<comment><USER6> One would hope the batteries (or the station) would know how much energy is stored in each battery --maybe offering a discount (credit) on the subscription if the battery is below certain energy threshold. 10% discount on a battery with 80% energy store of a new one, for example.

</comment></comment></comment></comment><comment><USER7> I'm not sure how this model incorporates the demand for better batteries.

Blue Rhino works because propane is a commodity and no-one is really shopping for larger quantities of propane, or the ability to put the same amount of propane into smaller vessels. But batteries for electric cars are still undergoing massive innovation; not only in capacity, but in charge/discharge rates (for more-efficient capturing via regenerative braking and more- efficient transfer to the motors).

If Better Place is charging a flat-rate by the mile, what incentive do they have to offer better batteries? Their profit motive would seem to skew heavily toward freezing the characteristics of the launch-packs and running with that as long as possible; allowing improvements to feed their profit margin up until the moment of customer revolt (should that happen).

Allowing people to pay more to 'upgrade' to larger capacities or 'performance' packs would add to the inventory they need to keep on hand at their swap stations and complicate the process.

I guess my concern is that this plan reads as a bold bet that contemporary 100-mile pack performance is good enough.

And truly this isn't a question of servicing most people's daily commute, which I believe is under 30 miles for most everyone most everywhere. But when calculating the hassle involved in taking such a car on weekend trips or vacations, I don't know if 100-miles is going to cut it. Particularly as battery estimates tend to be fair-weather estimates, and the longer trips tend to be highway trips at speeds sub-optimal for efficiency.

Will people put up with stopping every sixty or seventy minutes for a 'swap'?

I know it seems silly to think about the annoyances of trips taken maybe a dozen times a year. But consumers are not always rational. In the end, 100 miles and recharging every hour may not wind up attracting more customers than the existing 40 to 50-mile range electrics.

<comment><USER8> They might not have a strong motive to improve - but if consumers are saving 30% pa, that will be enough to provide happiness for a while.

Competition is the thing that's supposed to encourage improvement - if Better Place can actually make it work, competitors will presumably get funded. It's not just actual competitors, but also potential competitors. A danger then is an oligopoly (where competitors work in concert; a virtual monopoly. Adam Smith has a saying that men of the same trade seldom meet without a scheme to defraud the public being hatched).

But they do have some motivation: more efficient batteries would use less electricity (cost) but give the same kilometers (revenue); fewer changeovers would increase consumer usage (more revenue), and make it attractive to the next segment of the population (more users) - and, perhaps especially, make it viable for larger cities/countries where a greater range is needed to attract even a sliver of early-adopters.

NOTE: Battery tech does improve, but _really_ slowly. It's the least of their problems. funfact: electric vehicles were actually in use about 100 years ago, and edison (for one) was involved in improving battery tech.

</comment></comment><comment><USER9> The article is from July.

I was surprised to hear Better Place described as a California startup: Shai Agassi is an Israeli entrepreneur; almost all Israelis can describe Better Place, but no one knows the company is incorporated in the states.

<comment><USER10> Wikipedia says that Shai lives in San Francisco. He also became wealthy in the valley.

Better Places is headquartered in Palo Alto.

I remember reading the story a while back and Isreal is just the first place they are running the experiment due to its size and government acceptance to the idea. But the goal is to deploy the cars in as many countries as possible:

"Better Place says it intends to expand into markets where the business model economics and investor returns are "optimized", citing Europe and Asia specifically. "

<comment><USER11> Israel might be a good place to trial this. It's fairly small so fewer 100mi trips, most commutes are relatively short.

They have more strategic reasons than most countries to minimize their dependence on oil.

You generally don't need lots of waste heat from the engine for 6months of the year.

</comment></comment></comment><comment><USER12> What depresses me most about this news is that the first thing I thought about after reading it was "I wonder if environmentalists can use this to sell electric cars to right-wingers.".

Very nice to see this sort of development, regardless of where it happens.

</comment><comment><USER8> They have some charge stations installed in Melbourne already [http://www.betterplace.com.au/drivers/charge-spot- locations....](http://www.betterplace.com.au/drivers/charge-spot- locations.html)

</comment><comment><USER13> The article from July talks about what will happen the rest of the year. Since it is November, anyone got a good link about the present situation?

</comment><comment><USER14> Been a long time since I read about Better Place in Wired way back in '07.</comment>


Trying to Translate Chinese Poetry - <AUTHOR> https://lareviewofbooks.org/article/good-way-translate-chinese-poetry/ <comment><USER2> When reading translated poems for enjoyment, not for language studying, I make an effort to regard them as _original_ creations in the second language to avoid being distracted by nitpicking translation issues.

</comment><comment> obj-g "The original is unfaithful to the translation." \--Jorge Luis Borges

</comment><comment><USER3> I am a member of an informal dilettante multilingual poetry group here in China and have been asked to translate quite a few Chinese poems and even write some myself, as well as to read translated poems at performances. I feel this article doesn't really raise many interesting points, rather it glosses over the broadly accepted realities and imperfections of the translation of any subject, not just poetry.</comment>


Except if you make it your job - <AUTHOR>

I'm a lucky guy.  I've chosen for myself the job of e-entrepreneur, and so when I'm navigating I'm actually working!  Be it e-mails, my feedreader, digg, paulgraham.com or whatever else, I'm actually always trying to improve my business and offer my customers a better service! Or am I fooling myself?  Time will tell. <comment><USER2> yay for you... um... can we help you? this almost reads like a blog entry, and a not so important one at that.

</comment><comment><USER3> Did you mistake this for twitter?</comment>


Spectral, Best Way to Validate Rest APIs - <AUTHOR> https://stoplight.io/blog/introducing-spectral/ <comment><USER2> Congrats to everyone on the Stoplight team! Happy to finally ship some open source projects. Check out the Github repo: [https://github.com/stoplightio/spectral](https://github.com/stoplightio/spectral)</comment>


Amazon's website sucks - <AUTHOR> https://www.buzzfeednews.com/article/katienotopoulos/amazon-website-sucks <comment><USER2> From some very basic research :

 _Katie Notopoulos is a senior editor for BuzzFeed News and is based in New York._

I really don't get it. She's based in New York. I don't know how many music speciality stores can be found in New York, but my guess is it must be in the dozens.

A bassoon strap sounds _exactly_ like an item you find in a speciality store. Probably in a few varieties and I'd wager a guess that they don't break in 4 month (or if they do a good store will replace it).

I understand the reflex to use Amazon for something more generic, say bass stings. I understand why you would use Amazon if you live somewhere in the sticks with a 200 mile drive to the next shop carrying a meager selection of bassoon straps.

But I really don't get it why you wouldn't use a physical store, with knowledgeable people, very much engaged in the same hobby as you, selling the very speciality item you're looking for when you live in fucking New York!

In addition. By ordering such an item at Amazon you kill exactly those shops on which you depend on when you have a slighly more esotheric hobby and you make the world a bit porer in the process.

<comment><USER3> Because going to stores sucks?

Beyond just the normal having to get to a store, it's below freezing in NYC atm, sometimes with rain, not exactly pleasant weather for a stroll.

There are some things which are hard to evaluate online and a physical presence is necessary, straps, even Bassoon straps, really shouldn't be one of them.

</comment></comment><comment><USER4> Pricing mistakes happen every day on ecommerce sites, the "bargains" websites are full of them.

Amazon really could do better with not allowing the fictitious discounts though. Listing 80-90% off RRP for an item which was never sold at that price is very common on all the daily deals, (and is illegal/unlawful in the UK/Europe from memory), along with all the drop-shipped trash from China (which you can usually get from Aliexpress/Gearbest/etc at a fraction of the price anyway) makes me largely ignore them and Black Friday specials anyway.

</comment><comment><USER5> Ads on their website are annoying but this is a terrible article.

</comment><comment><USER6> Author is annoyed with a website, thrilling read.

</comment><comment><USER7> Ok. Make a better one.</comment>


Django vs. Flask - <AUTHOR> https://www.git-pull.com/code_explorer/django-vs-flask.html <comment><USER2> So having used both, this is what I tend to say about them: some of Flask's commonly-used components _are_ better than django's (SQLAlchemy notably), but altogether, django is a better framework.

I _strongly_ disagree with the notion expressed by some that beginners should start with flask "to learn how things work". Making a sane and maintainable project layout is not a particularly easy thing to do, >90% of people (not just beginners) will generally fuck it up somehow and end up living with a really weird app initialization routine as a result. Django's project/app layout and initialization is really quite well considered and I would say appropriate for 99% of projects. That 1% would probably be better off with flask.

More broadly, this is the whole opinionated vs. non-opinionated debate, and I've come to the belief that the vast majority of programmers need the guidance that an opinionated framework gives. It is said that flask doesn't try to suggest any particular structure for your project, but I would say that the effect of that the majority of the time is to produce a project with _no_ structure. Don't get me started on the pattern of `helpers.py` files everywhere: I mean - what _isn 't_ a helper? What _doesn 't_ fall into that category? So yeah, just heap everything and god knows what in that file.

It shouldn't be a shock to you by this point if I say that I don't think flask is particularly well designed either, but I won't go into my interface-by- interface rant now...

<comment><USER3> I agree about Flash/Django. But SQLAlchemy is definitely not "better". It is more powerful, more correct, more proper, more flexible. But boy is it a fucking obtuse, verbose, difficult piece of bahoo to use. Django ORM follows Django's philosophy of pragmatism. Assume sane defaults/be opinionated. Make the easy, everyday shit easy! The hard stuff can be figured out later (or just drop to raw SQL). SQLAlchemy's philosophy is to be correct, like RDBMA academic correct and proper. Make the insanely rare and/or difficult stuff possible even if it means making the common stuff a PITA.

It's like the difference between an esoteric and powerful language like Haskell which is objectively more correct. And Python, which is "who cares purity, it lets me get shit done fast and easy."

There's also, I think, a huge divide in the way developers think/reason about problems. Cause I've never seen anyone like both ORMs. Everyone likes/tolerates one and hates the other. I'm guessing some devs "think" the way SQLAlchemy works and others "think" the way DjangoORM works.

So, I do think both ORMs have their place. Just wish SQLAlchemy's place was not in code I have to write/maintain.

<comment><USER4> Maybe I have programmer Stockholm syndrome, but SQLA is one of the best ORM in existence. Period. I have spent a lot of time with it.

I think in terms of Python style and SQL and I think SQLA fits it better than Django ORM. Django ORM fits Django better. SQLA makes it easy to do OO style SQL modeling in a very Pythonic way.

I don't hate Django ORM. If I used Django I would use the ORM it comes with. It is ok. I think data is so important I avoid Django because I think its ORM becomes the limiting factor for medium or large projects. For small projects, it hardly matters. Use what you know or has a path of least resistance for you.

An aside, Pyramid is actually in between Flask and Django, but people often think it has to be Flask or Django. Pyramid is beautiful and much less opinionated than Django, but still has some batteries, or rather it supports several different types of batteries.

Practical programmers don't hate tools IMO. Makes you too vulnerable to overvaluing your opinion.

<comment><USER5> To be honest, SQLAlchemy was the single reason I chose to dive more into Python. I learnt it first because of being curious about it. Then, when I found SqlAlchemy, I, having had long years of using Hibernate and NHibernate, thought "if the other Python packages are as good as this one, i should use Python for serious stuff". Which I did.

SQLAlchemy is damn easy to use.

</comment></comment></comment></comment><comment><USER6> I always saw it as Django is the lady with the 30 pound purse that has everything you could possibly need on a trip to disneyland and Flask was the guy who showed up to the camping trip wondering why everybody else brought a tent when it's so nice out.

<comment><USER7> Django is the camper with the U-Haul. Flask is the camper with the backpack. Bottle is the camper with the fanny pack.

<comment><USER8> I wonder how Falcon fits in here.

[http://klen.github.io/py-frameworks-bench/](http://klen.github.io/py- frameworks-bench/)

<comment><USER9> The focus seems to be on performance, so my guess is they're the camper with a fanny pack but it's already unzipped.

<comment><USER10> Haha, that cracked me up!

</comment></comment></comment></comment></comment><comment><USER11> I'm working with a large, 5 year old Django codebase. My humble opinion: Django itself is actively hindering our ability to deliver new features.

Some pain points:

\- Django's fat models approach is bad. By coupling model behaviour to database schema, it all but guarantees that you're gonna have a tough time modifying either.

\- Django's class-based views and its admin framework strongly encourages a sort of "one-view, one-model" approach. Just about nobody has requirements that neatly fit that worldview. If you need to interact with two models in a single view, working around it is painful.

\- Not Django specific, but Python is a bad choice to use at scale. The lack of a good default immutable data structure means we're stuck using mutable data structures everywhere. In a large codebase, the lack of guarantees around something as basic as the shape of a data structure is a huge problem. A notorious example is Django's HttpRequest, whose attributes may or may not be set by the middlewares.

There are more, but one thing's for sure, I probably won't be using Django for my next project.

<comment><USER12> What framework or language would you use to write the same codebase with from scratch?

<comment><USER13> Not OP, but as a Python developer with interests elsewhere, I'm very productive in modern C# with ASP.NET Core MVC. (And I can write it on a Mac and deploy on Linux, too!)

<comment><USER14> What are you using to host the app on linux? I've only worked with ASP.net in IIS windows hosts and havn't seen an alternative so far.

<comment><USER15> I've only done a few small sites, but just putting my app behind nginx has worked out fine for me so far.

[https://docs.microsoft.com/en- us/aspnet/core/publishing/linu...](https://docs.microsoft.com/en- us/aspnet/core/publishing/linuxproduction)

</comment></comment></comment></comment></comment><comment><USER16> Used both and off the bat found Flask breezy and Django bureaucratic. But then the next day with Flask you look up how to do something elementary like login (for fsck sakes) and find there's alternatives of various qualities and scopes, and the flask-security guy has disappeared. Found myself spending a full week up front wrangling tokens and other crap instead of the project at hand, sigh. Django starts to shine at that point.

Lately I've been yearning for a "Flango" distribution with flask and the top twenty extensions supported by a single dev team.

<comment><USER17> Checkout Keg ([https://github.com/level12/keg](https://github.com/level12/keg))

It could use some documentation and some community TLC, but Level 12 is a solid Python shop with a pragmatic approach to app development. There are libraries for auth, login, webgrids, SQLAlchemy, forms, etc etc.

Disclaimer: I used to work for Level 12 and wrote a large production app atop keg.

</comment></comment><comment><USER18> I feel like Django has too much magic. I agree that it is easier to get quick wins with Django, and if you're building a small hobby site or something, then it's great.

But if you're building something that you hope you'll have to rapidly scale, Django is going to hurt you. It's way harder to scale due to both its heavy reliance on hidden magic its tight integration with its data store.

When you want to rapidly scale, the easiest way to do that is if your data store and application aren't so tightly intertwined that you have to scale both to solve a bottleneck in either.

<comment><USER19> > _But if you 're building something that you hope you'll have to rapidly > scale, Django is going to hurt you. It's way harder to scale due to both its > heavy reliance on hidden magic its tight integration with its data store._

Considering that Django has 1/5th as much "magic" as Rails, and that Rails powers some of the biggest websites on the world, I'd say "citation needed".

<comment><USER6> What besides reddit?

<comment><USER20> There is a list at the bottom of this page: [https://www.djangoproject.com/start/overview/](https://www.djangoproject.com/start/overview/)

        Disqus
        Instagram
        Knight Foundation
        MacArthur Foundation
        Mozilla
        National Geographic
        Open Knowledge Foundation
        Pinterest
        Open Stack

<comment><USER11> If the answer here is to be believed, Pinterest has consciously moved _away_ from Django.

[https://www.quora.com/Would-Pinterest-consider-Flask-in- plac...](https://www.quora.com/Would-Pinterest-consider-Flask-in-place-of- Django-if-it-were-starting-today)

<comment><USER19> Yes, but that doesn't matter much, since they got to billion valuations just fine WITH Django.

</comment></comment></comment></comment></comment></comment><comment><USER21> Flask is still one of my favorites in web frameworks, mainly because it was from the Sinatra/microframework moment and still is a pleasure to work with. Just plugin other micro frameworks for the data, middleware, routing, templating as desired.

Express is similar in Node still because of the simplicity and micro size of it.

Micro frameworks don't dictate and grow with a product as needed rather than growing into a monolith and it dictating too much.

As far as Django, it is still one of the most desirable monoliths out there but you don't have to use it that way. However, it is meant to take over like Angular, Rails, MVC etc.

</comment><comment><USER22> Hmmm. OK. Read through most of this thread. Not sure I agree with some of what is being said about Django. In particular about this "magic" thing.

It took me a while to get comfortable with Django. I tried to learn it on and off for about four years. I finally decided the only way to do it was to focus, commit to it and not jump off into something else until I got it.

That probably took about six months. Much of it felt confusing and, yes, magical. Until I made one more decision: Read The Source Luke.

Seriously. I started to look things up in Django source code. Every single time I came across something I did not understand or that seemed magical I went to source. It was painful at first but it became easier as it turned into a habit.

And then it happened, one day it just clicked. What seemed like a confusing mess months earlier made complete sense. It almost felt like this happened overnight, which wasn't the case.

I now believe the best way to learn Django is to do it exactly this way. Have the source open on another monitor and look-up everything as you go through a tutorial or book. In the process you'll discover much more than what you were looking for originally.

<comment><USER23> I find myself doing this more and more often with python libraries, even with the well-documented ones like Django REST Framework - always keep a source browser open on the virtualenv dir so I can read library source. There's something about the style of python documentation that makes it difficult to really understand how the classes in a library fit together, so this is necessary for larger python frameworks.

(My personal gold standard for programmer reference documentation has been the Qt API docs for very, very long. They've varied in quality over the years but they're always an example of how to do it.)

<comment><USER24> Reading the source of libraries I'm using has been a real eye-opener for me. Even from very good documentation you can only learn how to _use_ it, not learn how to write something similar yourself.

PyCharm is amazing help for it as well. Control-click on a function or class, and you will jump into its definition in the library source.

<comment><USER22> I use PyCharm too. Love it.

</comment></comment></comment></comment><comment><USER25> I love and use both frameworks on a daily basis.

For tiny applications: go with Flask.

For medium and big applications: it depends.

Flask is great since you can mix and match different parts from the toolbox and build/use exactly what you want. But it is easy to end up at a point where you are just rewriting your own mini-Django on top of Flask.

Django on the other hand brings a full meal to the table. Using other toys from the toolbox is certainly possible, but it feels "wrong". And yes, Django certainly has some rough/not-so-shiny edges here and there, partly due to legacy code that cant be easily refactored due to compatibility. But overall it gets the job done and it gets polished more with every release.

At the end of the day, it comes down to personal preference.

</comment><comment><USER26> To paraphrase: "Whoever does not know Django, is doomed to reinvent it".

You can use Django with its "batteries included" philosophy. Or you can use Flask and start adding in lots of extra libraries (which may or may not play together nicely) to get an ORM, user models, admin site, etc. etc. So you end up reinventing a full web framework based on Flask.

</comment><comment><USER27> I've done trivial and non-trivial projects in both, and the general summary presented here feels correct. If you've got something with content, that matches most common situations (users, content related to users, content related to other content), Django will get you there quickly and efficiently.

But I still use Flask a lot more, because most of what I create are limited use web services that do interesting things behind the scenes. Caching proxies to improve performance of legacy services, script runners, report generation tools.

Most of the time, Flask feels like the de facto web server, like Requests is the de facto web client.

</comment><comment><USER28> For nearly a decade now, Python has been my web project language of choice. I started out working exclusively with Django, and I still applaud the rock- solidness and the convenience of Django. However, over the past few years I've shifted entirely to Flask, and I now code most new projects (no matter what size) in Flask, whenever I have a choice.

Flask's main strength over Django, in my opinion, is that it does things in a more modern and a more Pythonic way. The nice "app" object and nice import of settings in Flask, that lets you instantiate multiple app objects in a single process, vs the global app / settings in Django. The use of contexts for exposing requests, sessions, and the like in Flask, vs using arguments and globals in Django. The breakdown into separate, lightweight, independently- usable projects for WSGI toolkit, template engine, CLI toolkit, etc in Flask, vs the monolithic project that is Django.

I have always thought of Flask as the natural and the worthy successor to Django, in terms of being the gold standard among Python web frameworks.

Yes, Flask's ecosystem is sometimes hit-and-miss in terms of code being well- maintained and integrating together reliably. But, considering the number of disparate projects and authors involved, it is actually (in general) quite stable and it does all work nicely.

In terms of helping to enforce a good code structure, and in terms of bundling together popular third-party libraries for Flask, there are a number of utilities that can help. My personal favourite is [https://github.com/sloria/cookiecutter- flask](https://github.com/sloria/cookiecutter-flask) , but there are others.

</comment><comment><USER29> On my next side project will use pyramid next aiohttp or tornado. Python has a good ecosystem of libs. Pick one when you need it. Django is perhaps the less pythonic option. After some time doing go and js.. I prefer the lib approach.. on the end you don't need so many things to quickly respond to http requests ;)

<comment><USER30> Be careful with aiohttp, async io is great, but the actual http parser in aiohttp is super slow.

See [https://magic.io/blog/uvloop-blazing-fast-python- networking/](https://magic.io/blog/uvloop-blazing-fast-python-networking/) for a full write up.

I've been building stuff in sanic, which is built on uvloop and is super fast. I can recommend it if you're willing to sacrifice a bit of project maturity for a solid async webserver.

<comment><USER31> I think the most interesting bit about that is that with a re-working of the http header handling, python could be within spitting distance of "best of breed" more or less out of the box (using async, not wrapping uvloop).

And also, of course: benchmark first, optimize later.

</comment></comment></comment><comment><USER32> Django re-usable apps and admin is the killer feature, making it a breeze to do 99% of the work on most agencies websites and then the 1% is just tying it together.

But I'm missing a good abstraction over Django, with most websites features included (user registration, job runner, webpack integration). Also I've come to hate django templates DSL so much I'm now only using a non-DSL method[0] (but it's kinda painful when you want to use apps, making you appreciate standardization)

[0]: [https://github.com/mdamien/lys](https://github.com/mdamien/lys)

</comment><comment><USER33> Rule of thumb for Python web development:

Do you already know Django really well? Then use Django for small and big web projects.

Do you not know either? Then learn Flask for small, trivial applications and learn Django when you find yourself creating your own web framework on top of Flask.

</comment><comment><USER5> The difference is easy to explain;

You adapt yourself, and your requirements, to Django. Django is "convention over configuration" which means thar first you need to learn all conventions. This takes time.

You adapt Flask to your requirements and your preferences. You build Flask to your liking and needs. Flask is extremely easy to learn.

</comment><comment><USER34> I think both Django and Flask are good frameworks that solve different problems. Django has a batteries included philosophy that gets you up and running quickly without ever leaving Python (as the developer). Flask is drastically less opinionated and focuses on providing you web hooks to bring your project/logic to the web letting you do whatever you need behind the scenes.

Personally, I feel like Django is great for a "traditional" and straightforward web applications and Flask is better for projects that may require a bit more flexibility both in modeling and backing services.

I think this line from the article follows this perspective:

> Before long, projects will be dealing with forms, REST endpoints and other > things that are all best represented via a declarative model with types. The > exact stance Django's applications take from the beginning.

</comment><comment><USER35> The first application I worked in from the ground-up is a flask app; quite a learning experience, to put it lightly. Despite the amount of technical debt accumulated, however, I don't regret it. I grew a lot as a developer and became more knowledgeable about web development in general.

I picked flask then because I, rather dogmatically, distrusted Django and its batteries included approach. Nowadays, I think it's great and almost the perfect choice to prototype something quickly. That said, if I felt the application would grow in functionality too much, I'd use Flask. Django gets in one's way rather quickly.

</comment><comment><USER36> One of these things is not like the other. You don't have to choose and there will be cases for both where one is the vastly superior choice. For example: I'd go with Flask for microservices but django for a CMS. I'm sure some people will argue the more apposite. The nodejs thing is so fragmented and difficult by comparison. Flask's routes are better. django's admin absolutely rocks (still). I guess these face-offs are fun but I don't find them very informative, relevant or meaningful. A weird hybrid though - now that would be cool. Or a SAP killer in django.

<comment><USER30> My apprehension about using flask for microservices is that calls to another microservices are going to block. With NodeJS, the webserver and http libraries are async and mature. Python's really missing a solid async requests library (but async webservers like sanic are getting better).

<comment><USER36> [https://eng.paxos.com/write-fast-apps-using-async- python-3.6...](https://eng.paxos.com/write-fast-apps-using-async- python-3.6-and-redis)

What do you think?

</comment></comment></comment><comment><USER37> I worked with flask once. It was code made by an obviously gifted russian coder i worked with. Cleanest webcode i have seen. I never played with django, all i can say is flask can produce really clean code.

<comment><USER38> Python in general does this. Its designed to be readable first in most regards, something really valuable for other languages to learn - for every line written, it will probably be read dozens of times. Optimizing for the writing part with arcane or convoluted syntax at the expense of legibility only makes projects age poorly.

</comment></comment><comment><USER39> Once upon a time I made this short worksheet you can use when deciding to use Flask or Django:

[https://wakatime.com/django-vs-flask-worksheet](https://wakatime.com/django- vs-flask-worksheet)

With a comparison between the two:

[https://wakatime.com/blog/14-pirates-use-flask-the-navy- uses...](https://wakatime.com/blog/14-pirates-use-flask-the-navy-uses-django)

Your guide is way more comprehensive, so mind if I link to it?

</comment><comment><USER40> No mention of web sockets or asynchrony? Fifteen years ago I was coding against Zope. I've used Django a fair bit too. Both were heavyweight, blot- out-the-sun one-way-to-do-it. Now I use Tornado because it's lightweight, has good web socket support and embraces the async style. It's a joy to code Tornado coroutines with RethinkDB. If you thought Twisted was cool, but couldn't hack the learning curve, Tornado is the answer.

</comment><comment><USER41> One thing I'm surprised hasn't been mentioned much is the Django Rest Framework (DRF). If you're building a CRUD-heavy website with very separate back and frontend (no django templates) then the fact that DRF can give you a big hyperlinked REST API for free is something I've found extremely useful.

I tend to use Django for big websites and Flask for small websites/microservice APIs.

</comment><comment><USER42> I like both of them a lot for different reasons:

If I build a more generic web application that will include most of their typical features I'd go with Django. If it is more of an one purpose API type of project or solving a very domain specific problem it would be Flask.

Django gets your out of the door quickly and there are extensions for anything I've ever needed, but it can get in your way later on. If you have to go against its opinions or if you need to actually understand what it does under the hood. E.g. file upload goes trough several hundreds of lines of code if I remember correctly. Most of it probably doesn't apply to your project, but you need to understand it anyway.

Flask projects are also super quick for simple projects, but if it is something more elaborate you really have to spent the extra time setup the architecture accordingly from the get go, otherwise it very easily becomes a big unmaintainable mess.

My experience is mostly b2b products and projects, so scalability is less of an issue for me.

<comment><USER30> I've found falcon a real pleasure to work with building pure json APIs, super sane approach to hooks and middleware which makes handling auth and db pooling both explicit and simple. Plus it's pretty fast which is always nice for building a REST API.

</comment></comment><comment><USER43> Seems to me that an accurate analogy is Rails:Django::Sinatra:Flask

</comment><comment><USER44> I'm a big fan of flask, purely because there's no wrangling `request` objects down your stack, and you can just fish it out later when you need it.

My main complaint would be Flask's 'extensions'. I'm really not a fan of the

> app = Flask(__name__) > db = Database(app)

pattern. it makes getting your db back later a little trickier. It would be nice if the `Flask` instance held it for you, so you could get it back with `flask.current_app` later.

It further doesn't work when the plugin provides a sets of views (i.e. CRUD) e.g.

> app = Flask(__name__) > crud = CrudPlugin(app)

I've yet to see a case of why this isn't implemented as a blueprint.

<comment><USER45> Extensions can register themselves with the Flask application object, so you can look there: current_app.extensions['whatever']. However, it is not specified what exactly this dictionary contains, so eg. SQLAlchemy puts a custom State class there. You can still get the extension object out of it, it's just that there is no common convention.

[http://flask.pocoo.org/docs/0.12/api/#flask.Flask.extensions](http://flask.pocoo.org/docs/0.12/api/#flask.Flask.extensions)

[https://github.com/mitsuhiko/flask- sqlalchemy/blob/master/fl...](https://github.com/mitsuhiko/flask- sqlalchemy/blob/master/flask_sqlalchemy/__init__.py#L608)

</comment></comment><comment><USER46> For the python web folks, what web server do you tend to put in front of your Django/Flask apps and how do you typically deploy new updates with zero downtime?

<comment><USER47> Nginx + Gunicorn is what we use. It has worked great for us. We have also tried uWSGI, a waitress for our production and Nginx + Gunicorn have been sure shot winners in terms of scalability and performance.

This is our gunicorn.conf that ensures gunicorn does not cause memory leaks

        import multiprocessing
        import os
        import random
        from getenv import env

        def pre_fork(server, worker):
           f = '/tmp/app-initialized'
           open(f, 'w').close()

        bind = 'unix:///tmp/nginx.socket'
        workers = os.environ.get('WEB_CONCURRENCY',
        (multiprocessing.cpu_count() * 1 - 1))

        MAX_GUNICORN_REQUESTS = env('MAX_GUNICORN_REQUESTS', 100)

        if MAX_GUNICORN_REQUESTS:
           max_requests = MAX_GUNICORN_REQUESTS

        MAX_REQUESTS_JITTER = env('MAX_REQUESTS_JITTER', 25)

        if MAX_REQUESTS_JITTER:
            max_requests_jitter = env('MAX_REQUESTS_JITTER', 25)

</comment></comment><comment><USER48> And here they are some specific numbers on the topic of "Django" VS "Flask" [https://python.libhunt.com/project/django/vs/flask](https://python.libhunt.com/project/django/vs/flask) . Flask is supposed to have a better code base?

</comment><comment><USER49> Offtopic but does anyone know of a Django alternative in JavaScript with similar level of maturity?

<comment><USER35> If you mean in the frontend, AngularJS was going in that direction. Then react came along and the angular developers decided to copy it, in a different language and with even more boilerplate.

I believe nowadays it's ember the one that comes with batteries included, but I haven't used it nor read a lot about it so don't quote me on that.

If you meant the backend, the only one I always hear about is express, but I'm not sure about that one either.

</comment></comment><comment><USER50> If a newbie looks into this I would say this : Flask :- Magic Django :- More Magic

P.S. : Great work making a comparison of both, must have been >48 Hours of work. Take a bow sir.

</comment><comment><USER51> Use Pyramid.

</comment><comment><USER52> I'm surprised to see a Django vs Flask blog on the frontpage of HN in 2017. So many of us ditched Python for greener pastures as the dev team lost focus on the Zen of Python in recent iterations. I definitely wouldn't start a new webdev project in Python today, even though I used to love it. There are just faster, more convenient alternatives. I've moved all my projects to TypeScript and a lot of people moved to Go.

<comment><USER51> I am interested in your story. Concrete examples would be helpful. Did the team follow a performance improvement mandate, analyzing the Python system and then deciding how best to proceed, or was performance not the primary motivator?

<comment><USER52> Both. It was loss of faith in the Python BDFL and core dev team, and also an examination of performance and reliability. Running on V8 and having type safety is a sweet spot that I haven't found elsewhere. Primary motivator was that Python has been creaking along for a while now, with a precarious future and there was finally a clear spot of greener grass to move to.

</comment></comment></comment><comment><USER53> For the "keep it simple" camp, I wonder why Bottle isn't more popular.

</comment><comment><USER54> If you need user authentication use django. If it's for APIs use flask or gRPC.

<comment><USER55> I found Flask-user to be pain free. This is important because almost all applications need some form of persistent user data.

At this point I wouldn't use suggest Django for anything other than a straightforward server-rendered crud app, particularly if the developers are less skilled.</comment></comment>


Nuxt.js and Python Module - <AUTHOR> https://nuxt-python.surge.sh/ <comment><AUTHOR> Here's the Github link:

[https://github.com/nuxt-community/python-module](https://github.com/nuxt- community/python-module)

Might be yet another desktop software choice.

<comment><USER2> Hi, author here, thanks for submitting this :-)

It's meant for writing Nuxt.js apps, so mostly for the Web, generally not Desktop (unless you use a Electron style Webview).</comment></comment>


In-Browser Peer-to-Peer File Transfer - <AUTHOR> http://isendr.com/

<comment><USER2> Flash based, which is a major bummer.</comment>


Ask HN: Looking for a co-founder? - <AUTHOR>

Appliciations have opened for YC Winter 2014: http://ycombinator.com/apply.html#w2014<p>As per https://news.ycombinator.com/item?id=6341565, here's a thread for co-founder pitches.<p>"[Your pitch] should include what type of roles you can do as a founder, which roles your future co-founder should fulfill, and your location. Also a general description of your idea, what you've built so far, and your technology stack." <comment><USER2> How often are good startups born from co-founders who meet each other in this way?

I myself am looking for a good partner to work with, but am a bit hesitant about looking outside my immediate circle of friends and acquaintances for partners. How does one get over the initial hump of building rapport/trust?

Assuming this role-call is for the upcoming YC batch, have there ever been any teams that were accepted who were introduced this way?

<comment><USER3> View your co-founder as your first, permanent hire. A way to manage the risk of getting it wrong is to start by working with the person as a consultant. Then move to part-time and finally to a partner. If you cannot work together, its better to part ways when the person is a consultant than when they are a partner.

Communicate and document (in writing) your expectations clearly. You should also ask the other person for their expectations, and listen carefully. This is marriage, not dating, so you really should be clear about what you're looking for in a long term partner.

Define roles and responsibilities, expectations, growth goals, work styles, etc.

</comment></comment><comment><USER4> Building an app store for ruby on rails apps. Just like any other app store, we will define some design guidelines and we will have apps submission and acceptance process. We will provide hosting and take between 15% to 30% from app revenues.

Obviously there are details which need to be ironed out.

Technology: RoR

Currently we are two guys, one purely technical and one purely business.

We have a MVP out. Checkout at [http://hmpgr.com](http://hmpgr.com), Invite Code: HN

We are looking for 1 or 2 co-founders (mostly tech and partly business).

Current location: India (but we do not want to feel restricted by location)

Comments and suggestions are most welcome.

<comment><USER5> why will someone put a webapp on a appstore?

</comment></comment><comment><USER6> Octopus, an app market for marketers.

Finding and evaluating marketing apps is getting harder because there's simply far more out there. Likewise for the same reason, it's getting harder for vendors to market their apps.

Co-founder should be interested in marketing and community building.

</comment><comment><USER7> Co-founder candidate must have a formal scientific education and love animals. Email me if you're interested.</comment>


Don't listen to Le Corbusier or Jakob Nielsen - <AUTHOR> http://cheerfulsw.com/2010/dont-listen-to-le-corbusier—or-jakob-nielsen/

<comment><USER2> I can appreciate the author's plea against data being used as prescriptive recommendations for interface design, but I feel like her analogy to Le Corbusier is strained.

I'll admit to having gone through a "Bauhaus" phase many years ago (a single Le Corbusier lounge is all that remains from it), but I don't think that her criticisms of Le Corbusier's architecture are particularly well-suited to her thesis. I can buy that there has been a growing consensus since his death that his ideas for "new urbanism" are cold and uncomfortable, but they are not the result of "prescriptive data"; they are the result of his worldview and what he believed the purpose of architecture was.

I don't necessarily agree with his view in that regard, but it doesn't strike me as any different than a user interface designer arbitrarily deciding where buttons go based on what they think is correct.

</comment><comment><USER3> "Fuck usability testing, all your software needs is love."

Pointless yammering about how humans are irrational and therefore, things that humans use and/or make should be irrational too.

</comment><comment><USER4> Only someone of the software ilk could read Le Corbusier as a literal and relevant how-to guide. Le Corbusier is simply part of architecture culture. An architect who does not read Le Corbusier is illiterate. An engineer who does not read Thomas Edison just saved themselves a lot of time.

By read, I do not mean follow blindly.

Architecture is a cultural practice like music or poetry, or writing. Software design is different. Perhaps there is some mass of historically relevant cultural knowledge in interface design. In engineering, however, old ideas can be discarded.

All this cross disciplinary thinking will lead us to a new Dark Ages of spectacular confusion.

</comment><comment><USER5> Thoughtful piece, although it could have been delivered without calling out folks in the title. I assume the author, Le Corbusier and Neilsen all want the best for themselves and users.

Maybe I'm a sap.</comment>


Netbeez: Network monitoring with Raspberry Pi - <AUTHOR> https://netbeez.net/free-instance-signup/ <comment><USER2> Hi All, This is Stefano, NetBeez cofounder. We decided to build NetBeez because we felt the pain of supporting remote users without having proper data available to detect network and application performance issues. Users generally knew before us that this or that application was not working. The monitoring tools we were using only checked the status of routers and servers and were not good at detecting partial/performance failures that users experienced.

NetBeez agents monitor the network and applications from the user perspective. You can apt-get our software agent and install it on different linux boxes, then start running PING, DNS, HTTP, and Traceroute tests agains web applications. By doing so you catch two birds with one stone, because you validate (1) network connectivity and performance at the locations where the agents are installed and (2) detect problems with the web application itself. Also, you can understand if a problem is local (only affecting one location, thus most probably network related) or global (affecting all the locations, thus most probably web service related). We also have a Raspberry Pi image available on our website.

That's pretty much it, I hope you like it and please feel free to reach out to us anytime if you need help to setup or configure it.

</comment><comment><USER3> I've got multiple physical egress points and multiple upstream providers so I do most of our monitoring myself. My home office (I work remotely) and phone -- the two places I receive alerts -- are both "off-net" so I've been looking for something simple and lightweight to "monitor the monitor" (and perhaps another important host or two) from outside the network.

I went to the Product Overview page, scrolled down, saw the pricing, and closed the tab. Perhaps I didn't learn enough about the product's features in the short amount of time I was on the site but the pricing just seems outrageous to me.

 _Edited to add background info:_ I'm evaluating alternatives to my current monitoring application, Opsview, which runs entirely from a single internal server. I'm looking for something that can be split across multiple servers in multiple sites (directly connected) so that I can monitor the (primary) monitoring system and be alerted if it is having issues (e.g. "A" monitors "B", "B" monitors "A").

<comment><USER4> If you want to jump on a call to discuss send me an email to firstname.lastname@example.com

RE pricing: we just released a free tier that allows you to install a software agent on your own Debian Linux (including Raspberry Pi) and use the NetBeez dashboard for free. You can sign up here: [https://netbeez.net/free-instance- signup/](https://netbeez.net/free-instance-signup/)

If you have other questions shoot me an email.

<comment><USER3> Yeah, thanks anyways, both for the offer of a call and for the free tier. However...

Salespeople are one of my least favorite types of people to talk to, right under bill collectors [0].

I'm also not a big fan of "free" services that require external (i.e. "out of my control") resources. I'm specifically looking for something that can be managed completely by myself with no assistance or resources needed by an third-party. Otherwise, there's always a chance that you'll change things. Then, I'll just be looking for alternatives.

Ironically, this is exactly why I'm looking for something now. I used Pingdom's "free plan" [1] as a simple up/down monitor but recently got an e-mail from them letting me know that, "We will no longer provide your existing free plan after January 28, 2016." [2]. Thus, here I am.

Of course, this is just me and my specific situation. I'm sure you've built a great product and it'll fill the needs of many customers.

[0]: At least you _DO_ have pricing on your web site. I'll give you credit for that as a lot of companies don't. If I have to talk to someone on the phone just to get a price from you, though, I will _never_ be your customer.

[1]: [https://www.pingdom.com/](https://www.pingdom.com/)

[2]: [https://help.pingdom.com/hc/en- us/articles/206012222-Changes...](https://help.pingdom.com/hc/en- us/articles/206012222-Changes-to-the-Pingdom-Free-plan)

<comment><USER4> I am cofounder of the company, and an engineer by training.

<comment><USER5> I think jlgaddis assumed that you will get some sales-rep to speak to him.

</comment></comment></comment></comment></comment><comment><USER6> This is a great team with an awesome product! Happy to see fellow Pittsburgh locals getting the attention they deserve.

<comment><USER7> Pittsburgh represent!

<comment><USER8> Thanks for the support guys! Go burgh!

</comment></comment></comment><comment><USER9> >"Do all of the above form all your locations"<

C/P from webpage..."form" should likely be "from"...

<comment><USER2> Thank you, fixed!

</comment></comment><comment><USER10> Fellow 'burgh resident here :) Any plans to add other tests (ftp, smtp, random homebrew app port, etc) or is the focus going to stay on web applications?

<comment><USER4> The next in line is scheduled Iperf. Right now you can run Iperf manually between two agents or an agent and your own Iperf server. The scheduled Iperf will allow you to run the test periodically (e.g. every 2 hours), or specific times during the day(e.g. 8:00 AM, 2:00 PM, 10:00 PM).

Apart from bandwidth, Iperf will give you jitter and packet loss.

<comment><USER8> ...and by manually he means ad-hoc. Setting up the iperf client and server is automatic. :)

</comment></comment></comment><comment><USER11> Let's go Pittsburgh startup! I was ecstatic to see netbeez on the front page.

Also, with us opening remote offices, this might be something that comes in handy.</comment>