Show HN: Listmonk – Fast self-hosted newsletter and mailing list manager - <AUTHOR> https://github.com/knadh/listmonk <comment><USER2> Author here. To give some context on why listmonk was built, at work (regulated financial business), we have to deliver e-mails, mostly important updates, to 1.5mn+ customers regularly. We used phpList for the longest time and then tried MailTrain and Sendy before finally deciding to reinvent the wheel after running into a number of issues, of which, a few important ones are mentioned below.

\- Performance. Unreasonably long amounts of time to send out e-mails. phpList degraded to the point of taking several days to process a campaign. listmonk can spawn N goroutines (~threads) and push e-mails to multiple SMTP servers. On a commodity ec2 instance, we're able to send 1.5mn+ e-mails in a couple hours.

\- Subscriber imports were extremely slow. Direct integration to keep subscribers in sync with external CRMs was cumbersome. Direct DB inserts were complicated due to the complex table structures. listmonk imports 10k records/sec into a Postgres DB on a commidty ec2 instance.

\- Segmentation. Often, we have to rapidly segment users by custom attributes and conditions and relay an update to them. listmonk supports SQL expressions to segment users on their attributes that are defined as arbitrary JSON maps (thanks to Postgres JSONB type).

\- Unavailability of dynamic templates. listmonk templates support Go template expressions so it's possible to write logic in messages to make them dynamic.

I would like to add that listmonk is still work in progress and requires a number of essential features before it can come out of alpha.

<comment><USER3> Amazing work, congratulations! I'm gonna give it a try, we have been using Phplist so far (we send like 500k daily emails).

Are you guys using returnpath' senderscore or a similar certification to send that amount of emails ?

<comment><USER4> Could you please elaborate on how to use returnpath to deliver large quantities of emails? Isn't it solely informational service?

<comment><USER5> Return Path has a certification service that certain providers use as a signal to the "legitimacy" of the sender (don't know if that was the best phrasing...).

[https://returnpath.com/solutions/email-deliverability- optimi...](https://returnpath.com/solutions/email-deliverability- optimization/ip-certification/)

</comment></comment></comment></comment><comment><USER6> phpList CEO here. Listmonk looks awesome - great to see more freedom of choice for Open Source Marketers.

Not sure what SMTP setup you had with phpList, but sending 1.5m messages on a VPS should take less than a day with the right Postfix tweaks.

<comment><USER2> Hey, thanks for phpList! We were on it for the longest time, and personally, I first used it some 14 years ago.

We did try several things; Postfix tweaks, SES / Postal SMTPs, rate changes in the phpList config etc., but nothing seemed to work. This, along with the other factors (segmentation, dynamic templating), lead to listmonk.

</comment></comment><comment><USER7> This is relevant to my interests +1

This looks like the free/open-source version to Sendy based on more modern tech like Golang/Docker/etc I've been hoping for, congrats on your alpha release!

<comment><USER2> Thank you. It was a bit of a surprise to me that Sendy had no viable open source alternatives. phpList is okay, but is quite dated and has a number performance issues.

<comment><USER8> I've also been a Sendy user for a long time for non-critical applications, and I don't like the fact they hide their code so a tool like this is long overdue and much needed.

</comment></comment></comment><comment><USER9> Projects like this seem like a great idea, but deliverability seems like a big concern that is hard to measure unless you have a reasonable amount of experience.

What are best practices for using/selecting an ESP if you were to use a project like this and want to ensure reasonable deliverability?

<comment><USER2> Author here. We've been using listmonk in production at our company (regulated financial business) to deliver e-mail updates including regulatory ones for over 6 months. We host our own SMTP instances using Postal[1] on EC2 instances and have never had any issues with deliverability. If it's legitimate e-mail, I don't think it's much of an issue.

PS: Postal SMTP is awesome.

[1] [https://github.com/atech/postal](https://github.com/atech/postal)

<comment><USER10> > If it's legitimate e-mail, I don't think it's much of an issue.

starting to sound hopelessly naive

you deliver email updates to fund LPs that aren't unilaterally marking you as spam for no reason

<comment><USER11> >that aren't unilaterally marking you as spam for no reason

This sounds hopelessly naive to me. If the receiver marks it as spam, it's spam. By definition. Work harder to only send emails to people who want them.

<comment><USER12> Really?

Spam is unsolicited commercial email.

if I sign up on a site, click the 'yes email me' button, and then mark the email as spam when I get it, I am the one acting incorrectly, not the sender who is literally doing what I instructed them to do..

<comment><USER13> Actually, cold emails (without permission) aren't spam. What makes an email spam is: 1) misleading subject line 2) misleading message 3) lack of simple (not requiring login or extra steps) unsubscribe link, and a couple other factors.

People forget subscribing and hit "Spam", which has an impact on the sender reputation and affects future deliverability for that sender.

<comment><USER14> That's a very narrow definition of spam that you're only going to hear from spammers (your profile is utterly unsurprising after reading this comment). Unfortunately for you, end-users are going to mark as spam based on their own much more reasonable definition.

<comment><USER13> It's not my definition, that's how the CAN-SPAM Act of 2003 (applicable to US only) defines spam and most marketers are familiar with since it's been around for 15 years. Of course the laws are different in Europe and Canada.

One of the factors I didn't mention in previous comment is presence of physical mail address.

Not sure what "unfortunately for me" is in reference to - BigMailer isn't a platform for cold emails (there are plenty others that specialize in cold email campaigns) and Amazon SES doesn't give a free pass on the practice either.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> Looks great! Do you have any plans to support third-party sending APIs (e.g. SES)? I see the reference to SMTP.

I've been looking for a good solution for ad-hoc email campaigns (w/ templates) and for sending "systems" emails to an audience of _customers_.

I currently look after lists on both MailChimp and EmailOctopus and get frustrated by the flat pricing for the size of the list and not how you engage with the list (e.g. I'd love to see: store your list for $X/mo, or pay $X + (list size * $Y) in the months when you email the list).

<comment><USER2> You can use SES's SMTP interface with listmonk. With some added effort, you can self-host an SMTP server and achieve better throughput, and depending on the volume, cost reduction. We've been running our own Postal SMTP instances successfully.

<comment><USER16> Are you talking about hosting your own smtp server?

The issue is that you need to put lots of effort into getting off of blacklists, or your email won't be delivered.

</comment></comment></comment><comment><USER17> Does the AGPL licence mean that every email (the recipient being a 'network user') needs a 'sent with listmonk, source code is here' footer?

<comment><USER18> Why would it? That's not part of the license.

Besides, that an email is produced by an AGPL software does not make it covered by the AGPL. That should be exactly the same legal situation as with open source text editors.

<comment><USER17> That's what I'm trying to understand, it was an honest question.

So, who does need to be provided with a copy? Just the 'administrators', the people using it to send email?

What about if I modify it and repackage it as monklist or whatever, and charge people to use it. I must give them the source code for listmonk too, and, since another requirement is same licence, the source for my modified version? i.e. monklist couldn't be closed source, but myapp that happens to use listmonk unmodified for sending emails can be?

<comment><USER18> Okay. IANAL, but software licenses I had to research a lot, so let's see whether I can explain it and if my understanding is correct.

Maybe look at [https://tldrlegal.com/license/gnu-affero-general-public- lice...](https://tldrlegal.com/license/gnu-affero-general-public- license-v3-\(agpl-3.0\)) first. The AGPL GNU page [https://www.gnu.org/licenses/agpl-3.0.en.html](https://www.gnu.org/licenses/agpl-3.0.en.html) also covers questions and has an explanation. I think the summary covers it already:

> _It requires the operator of a network server to provide the source code of > the modified version running there to the users of that server. Therefore, > public use of a modified version, on a publicly accessible server, gives the > public access to the source code of the modified version._

So the license requirement is for the users of the software directly. They need to get access to the modified source.

> _So, who does need to be provided with a copy? Just the 'administrators', > the people using it to send email?_

If that is a closed group said group. If it's the public the public. So in your case yes, the administrators.

You could make the argument (it has been tried before with editors) that the email is part of listmonk, but reasonably it would not stand. At first look there is more weight behind the argument that accessing the email is a form of network access between the user and listmonk, vie email, but I don't think that would hold up either, given the implications with regards of what is a software and what is a product.

> _What about if I modify it and repackage it as monklist or whatever, and > charge people to use it. I must give them the source code for listmonk too, > and, since another requirement is same licence, the source for my modified > version?_

I don't think that you have to give the original source of listmonk, but you have to give users - including those who access the software on a server, like in a SaaS scenario - access to the source code of monklist, yes.

> _i.e. monklist couldn 't be closed source, but myapp that happens to use > listmonk unmodified for sending emails can be?_

There it gets murky. There are different understandings of when a software with different parts becomes one thing and thus the AGPL and GPL apply, and afaik that's not very well tested in court. That said, yes, if myapp just uses listmonk and is not a modified version of listmonk and listmonk is not an integral component of it, then myapp is not influenced at all by the AGPL. AGPL talks about "modified versions of software", myapp would be no such thing.

<comment><USER17> Thanks!

</comment></comment></comment></comment></comment><comment><USER13> Pretty cool. Does the tool process bounces, complaints, and unsubscribes, e.g. auto removes from future mailings?

Have you considered using a hosted platform that uses Amazon SES rather then hosting Sendy or other tools yourself? I own BigMailer and our clients with established SES accounts (high daily rate limits > high limit per sec) see 1m emails go out in a little over 1 hour.

I always wonder why people choose to host email software in house and it seems like the requirement for direct integration with in-house system(s) is one of the biggest considerations when choosing in-house vs. off-the-shelf solution.

<comment><USER2> listmonk does have unsubscription and blacklisting, although not bounce processing (yet. todo.)

listmonk is a replacement for Sendy. You can connect your SES account to it using the SES SMTP interface.

Integration with in-house DBs was a top reason for us.

<comment><USER13> Thanks for the answers.

Try to implement bounce processing soon - an average list decays at 2% per month (3% for B2B lists) so in a few months, the bounce rate can be high enough for mail box providers to start blocking your emails due to attempts to send to large number of invalid email addresses. Especially sensitive issue with your list size and sending volume.

There might be a couple more useful nuggets in this article on email deliverability best practices [https://www.bigmailer.io/blog/improve-email- deliverability-b...](https://www.bigmailer.io/blog/improve-email- deliverability-best-practices/)

</comment></comment></comment><comment> good-idea This looks great and is maybe exactly what I'm looking for! I have a couple questions:

I don't see anything in the docs about supplying an unsubscribe link. I don't see an endpoint in the API that could be used with an anchor tag in the footer of the email. Is this something that is supported?

And: my client is concerned about email/spam regulations, which I'm very unfamiliar with. Is there anything I'd need to look out for in this regard?

<comment><USER2> Thank you :) listmonk supports unsubscription and blacklisting. The default template that ships with it has an {{ UnsubscribeURL }} tag in the footer. I just realised that it's not in the documentation (work in progress). Will add.

</comment></comment><comment><USER19> This is pretty cool. I have been using a competitor's software, Mautic for quite some time. I am excited to see where this goes!

</comment><comment><USER20> Not much to add. Had a quick glance at the code and set it up. Nice work on the single binary install and UI!

</comment><comment><USER21> Upvote for AGPL v3.

</comment><comment><USER22> Totally random question: how did you pick the name?

<comment><USER2> I can't quite recollect, but I think the thought process was along the lines of "hassle free, peaceful list management".</comment></comment>


Pittsburgh Hackers: Want to meet Sat 11/14 8pm at the Church Brew Works? - <AUTHOR> http://www.churchbrewworks.com/

<comment><USER2> I like the idea, but just a heads up that Pitt plays Notre Dame at home that day too (an 8pm game)

</comment><comment><USER3> I'm interested but can't _commit_ to being there. If the meeting happens though, I may attend. Maybe it would be useful to setup a twitter list of HN users in Pittsburgh? My Twitter username is sjstrutt.

<comment><USER3> <http://twitter.com/sjstrutt/hn-pittsburgh>

</comment></comment><comment><USER4> I'll try and make it, but it seems unlikely, with the Pitt game and other family obligations that weekend. It would be nice to make it somewhat regular though, as I'm sure I could make others.

</comment><comment><USER5> How about some other place? That place gives me the creeps.

Sharp Edge?

(Being a church-goer, it feels blasphemous. (I know, I'll get downvoted wildly. It's OK, go ahead. ;-))

<comment><USER6> Considering the number of breweries founded or run by Roman Catholic religious orders, I can't think of a better purpose for a deconsecrated church.

On the other hand, upvoted for honesty in the face of certain derision.

<comment><USER5> (Brian, is that you? ;-)

Yes, you're probably right. Nothing wrong with breweries or beer from a Catholic perspective--in fact, much right with them--but the way they converted it is creepy, putting the big tanks right on the old altar.

<comment><USER7> I think it's supposed to be tounge-in-cheek.

</comment></comment></comment></comment><comment><USER8> If someone happens to be having a similar meeting around Christmastime, I'll be interested. I'd love to meet the hacker folk from my hometown (in Atlanta these days).

</comment><comment><USER9> I'm interested. I'm (stuck) in the Cranberry Twp area - in case anyone's there as well and wants to carpool.

<comment><USER10> i might be able to help you out.. would be coming in from cranberry as well. still trying to figure out if i can make it though. feel free to hit me up at [my HN username]@gmail.com

</comment></comment><comment><USER11> Sounds like fun. I'll be in for that.

How do we know where to find each other?

<comment><AUTHOR> If you see a table full of cool guys and hot women eating, drinking, laughing, and having a good old time, that won't be us. More likely, we'd be the table of 8 guys trying to figure out the best beer bargain on our iphones.

Seriously, we usually try to get one of the tall 8-seat tables near the front door. We probably won't be hard to find. Just in case, you can email me in advance and I'll give you my cell.

</comment></comment><comment><USER7> Glad I sold my Notre Dame ticket. See everyone there.

</comment><comment><USER12> I'd be there but I'm going to be at the Pitt game.

</comment><comment><USER13> I'll try to be there.

</comment><comment><USER14> I'm down.

</comment><comment><USER15> That place is so awesome.</comment>


A new study of rudeness in the workplace - <AUTHOR> https://hbr.org/2019/07/why-people-get-away-with-being-rude-at-work <comment><USER3> In 25 years of working in the software industry, I have never witnessed somebody's assholity defended by their performance. I have also never encountered... NEVER encountered... an asshole who was also a top performer.

In contrast, the top 7 performers I can think of off the top of my head were to a person kind, generous with their knowledge, patient with those less talented, and generally Good People, both to work with and to be around in general.

So there's my anecdote to counter yours.

I will note that although I have never met an asshole who was a top performer, I have met many who were convinced that they were.

<comment><USER4> To be clear there are under performing assholes just they usual get the ax quickly if management is competent.

How would those 7 top performers act if placed alone in a situation of failure? Where its obvious the company is failing and is clear is certain individuals? Is it not "rude" to point that out? Or are we defining being rude or assholity differently?

I personally seen many times people who push back or raise justified criticism of anything be labeled as "rude"/"toxic"/"assholish".

<comment><USER5> Save it for performance reviews. Be a professional.

<comment><USER6> Sometimes it's about being professional, but more often than not it is about taking and ignoring mountains of problems. You get called for being a whiner if you constructively point out problems, and a problem case of you try any solutions that are smarter than whatever your middle manager(s) comes up with. Worse, if they perceive you as a threat. Or fail to play office politics - <USER2> will be that guy who does most of the work, or hardest work with no renumeration. Favorite of all hiring teams until inevitably getting psychologically damaged if you're normal in any way. (Especially crude way is to give someone a problem insoluble by one person or overload a small team.)

</comment></comment></comment></comment><comment><USER4> How do you define being rude? From what I read and experienced in my career the real reason "rude" people get away with what they are doing is simple.

They tend to be top or above average performers who don't like when co-workers who are sub par are treated and rewarded as their equals.

I have met many sub-par workers who love to throw around the word "toxic" to define and attack such people. I have seen such "rude" or "toxic" people work fine along other exceptional and/or capable co-workers and reject those who cant perform.

"He/she is an #@$hole... but he/she is doing most the work and objectively in the end they are not wrong in anything they have said." Are words I have heard echoed across so many different leadership meetings at various companies.

The Pareto principle is very real in terms of workforce and what we should really discuss is how we can focus on honest constructive conversations that allow the successful to succeed and give critical feed back to those who arent.

<comment><USER7> My experience is very different. The rudest people I've had to work with are generally incompetent to mediocre at best, often believe themselves to be far more competent than the evidence suggests, and end up significant drains on the company as people go to significant inefficiencies in order to avoid having to deal with aforementioned rude incompetents. The actual best performers tended to be quietly polite and unobtrusively competent, getting on with their work smoothly; given that being rude to people causes problems, being rude isn't just a sign of incompetence - it _is_ incompetence.

<comment><USER4> From my experience rude + under-performing = termination, if those people who you work with are not performing why does your companies management keep the around?

 __I didn 't put it in my original post but incompetent managers who use "boasting" as a success metric instead of objective metrics can lead to such an issue as well.

<comment><USER8> _if those people who you work with are not performing why does your companies management keep the around?_

I'm asking this question presently as a team lead.

We have a contributor who is a drain on just about every aspect of our team's operations. They frequently miss meetings, they don't seem to take instruction well (example I brought up once to another team member, this person will ask for help, cut you off constantly, suggest their way is better, or do the direct opposite of whatever recommendation you offer and spend days on a problem set delaying sprints), have delayed multiple projects, caused numerous production outages so on and so forth.

All of this combined has made trying to train this person or help them improve difficult and frustrating--very few on the team wants to work with them anymore.

It's not a secret among the team that this person just is not the contributor we need, and it's pretty evident from his reactions a few times that our department head is not pleased either, but he doesn't seem interested in letting this person go--none of us are quite sure how to have that talk with our leader that we think this person should be cut loose and a replacement found.

Suggestions on broaching that topic?

<comment><USER4> As team lead are you the persons manager? If so you should have every right to go to hr to either terminate or start a performance improvement plan.

If your a team lead with no hire/fire power you need to go to your department head (and rally those whoa agree with you to do the same) and be blunt. "X is is not performing to expectations on top of that the way X is not performing is disrupting, impeding, and alienating other members of the team and its now become not just a performance issue but one of employee attrition".

This makes it about X vs the rest of the team/department and allows him to clearly see what is actually at risk. Its very unlikely 1 person is so valued that a manager would accept major turnover in their department.

</comment></comment></comment></comment></comment><comment><USER9> It doesn't make a lot of sense to discuss things that are totally subjective and can't be defined with a certain specifity.

\- What is the definition of rudeness?

\- How can rudeness be quantified and measured?

\- What did the interviewee perceive as rudeness?

\- Is the shown behavior correctly observed and classified as rudeness?

</comment><comment><USER10> _> Notably, those employees who reported being victims of rudeness were largely perceived by their managers as perpetrators of rude behavior._

The article and research abstract [0] doesn't appear to address the most interesting point. I want to know why the victim blaming persists.

[0] [https://www.ncbi.nlm.nih.gov/pubmed/30640491](https://www.ncbi.nlm.nih.gov/pubmed/30640491)

<comment><USER11> My guess is that it's related to the saying, "If you run into an asshole in the morning, you ran into an asshole. If you run into assholes all day, you are the asshole."

</comment></comment><comment><USER12> I'm generally friendly with people at work but I've noticed that there is a strange inverse in kindness to people's response to my kindness. When I'm more terse, they respond kinder. When I'm kind, they tend to be more terse.

For example, if they ask a question and I give a longer, more friendly response like, "No, I don't know the answer to that question. That's not really my department." They may just respond with, "Ok." But if I respond with something more terse like, "Don't know," they will respond with, "Ok, no problem. I'll figure it out."

<comment><USER13> Huh that's a cool observation. I think there might be more ambiguity there though. For example, I could (and in my case would probably) also interpret the second response as not being "friendly" exactly but as defensive and irritated. Only someone who is worried about being regarded as inferior or believes that you're acting superior would make that kind of overly demonstrative response. A peer would probably just echo your tone and just say "Ok". Not saying you should psychoanalyze too much or that your interpretation is wrong but be on the lookout (especially via written communication) for when kindness isn't actually kindness, but deference or defensiveness.

</comment></comment><comment><USER14> This study falls a bit short. Where does the rudeness come from? They've already identified that rudeness leads to lower engagement and more burn out. But does lower engagement or more burn out lead to mode rudeness? What happens if the leaders themselves know the environment they're creating leads to these things?

Context is key. I've seen fake, high-pressure environments created by management too often. It isn't a life-or-death situation, it's your shitty incentive structure.

I refuse to believe most people are intrinsically rude (in a workplace setting). Because almost nobody is rude directly after you hire them (if they are, your hiring process sucks). No, it's more likely the environment or team is dysfunctional and rudeness is a manifestation/poor coping mechanism.

In that way, it's unsurprising management is unable to gauge the performance of individuals accurately, rude or not. It could even be a root cause.

<comment><USER15> > Almost nobody is rude directly after you hire them ... No, it's more likely > the environment or team is dysfunctional and rudeness is a manifestation

I think this can be true, but new hires might just behave differently because they are new, and any changes are reversion to the mean. E.g. new hires are excited to start their new job, don't have responsibilities yet, are trying to impress their colleagues, etc.

<comment><USER14> What stops anybody from fostering that attitude further into their careers? People should be given opportunities for new project and be excited to do the work... unless they already know it's going to be a shit show (impossible deadlines, clueless management, etc). If switching jobs induces such good behaviours initially, what does that say about the previous job?

Again, not trying to defend people who are truly rude. But I'd like to think the vast majority of people aren't like that.

<comment><USER16> People can inhibit their negative behavior when they are trying to get people to like them and gain social status. If they feel empowered by having some status or a promotion, they may begin to "punch down".

</comment></comment></comment></comment><comment><USER17> Workplaces are a frappe of personality disorders and mental illness. People who were raised to be polite, people who weren't, and sprinkle in one psychopath and one or two sociopaths per one hundred people. Think about all the crazy people you've ever known? They all cause just as much trouble at work as in their personal lives, and they all have to work somewhere.

Even relatively well-intentioned people are usually insufferable. To say nothing of power politics, purposefully toxic environments, etc.

Politeness is the lubricant of social relationships, but rudeness is a powerful signaler.

I am normally polite, but unafraid to be rude or aggressive when politeness fails. Most often, rudeness indicates some portion of the social contract has not been upheld (treat me fairly, and I shall do so). Is it wrong for an employee to be rude to someone who is secretly undermining them? To a boss whose using them?

Rudeness is simply a social signal. I think it is more stressful to be polite all the time.

I could write a book on the crazy sh __s I 've had to work with.

<comment><USER18> This is fair. I don't think anyone can claim they have never been disrespectful towards anyone in their life. People are sometimes unbearable and sometimes you are too. Learning to deal with your own and others crazy bullshit is a part of life and how you grow as a person.

</comment></comment><comment><USER19> Question: I may not verbally greet people I don't directly work with or interact with. Is that considered rude? I am just not a good small talker,but I am not sure if my intention with small things like this will be misunderstood.

<comment><USER20> I'll answer your question, it's not rude. But developing communication between yourself and people outside your immediate work is helpful in getting a bigger picture about what's going on in your workplace.

Having a bigger picture can make you more effective and useful.

<comment><USER19> Thanks much for the advise.

</comment></comment></comment><comment><USER21> I'm interested that this article was posted by kungfudoi to Hacker News in the afternoon 18 days ago (not on a Saturday morning) and garnered 2 points and zero comments. This posting misrepresents the title/headline of the article and acquires 33 comments and 42 points. I bumped into the article today and was about to post it, but noticed that it had already been posted. Perhaps I should follow pseudolos's lead, and post it anyway. My earlier impression was "don't repost", and "don't rewrite titles or headlines."

</comment><comment> siddharth-v I've been working in a small team for a while now, and even in this small group I've encountered rudeness in a way that I've never seen before. I'm generally very friendly with people, but being at the receiving end of someones rude behavior takes a toll on you mentally. Combine this with the fact that the bosses don't know how to control their employees behavior, and you have a toxic workplace.

</comment><comment><USER22> Rude people suck plain and simple. I was once young and overbearing, and since then I've been on the receiving end of that and it's total bullshit.

I'm not saying we should coddle people in the professional world, but we sure as shit shouldn't have to deal with coworkers psychological and anger management issues.

</comment><comment><USER23> I'm quite often rude to others at work and I freely admit it.

Reason: ofc I feel I am justified to be so. Just like everybody else I feel I am right.

I am not rude to everybody. Just people who don't want to carry their weight but want an equal share of the pie.

I am rude to Project "Managers" who only assign story points in jira. To product owners who always side with the external client and dump the technical team under a bus for the smallest things. With managers that think we can maintain full speed all year round. With hiring people who only care about getting the head hunting fee. Etc.

I am also a 3x productivity wise. Have not been matched in any of my jobs. (Spoiler: never worked at google or anything like that). Always on the edge of burnout.

Am I toxic or am I just blunt? Depend on who you ask. Am I to be promoted or fired? The same. One thing more I should note: the same people who make HR complaints behind my back ask me to help them with things that are not in my job description nor are documented work.

<comment><USER16> There's really no excuse for being rude in the workplace. Please get help instead of trying to justify it.

If multiple people have made HR complaints "behind your back", you are not competently performing your job. (This directly affects your claimed 3X performance because you drag down your coworkers.)

<comment><USER23> Then why do those complaints get buried and I get a talk with management approx: "we couldn't find anybody else for that job, try to tolerate them as best as you can for the time being"?

My coworkers are the engineers by my side who never complain about me, quite the contrary, they cheer when I put down middle management leeches.</comment></comment></comment>


Guided in-process fuzzing of Chrome components - <AUTHOR> https://security.googleblog.com/2016/08/guided-in-process-fuzzing-of-chrome.html? <comment><USER2> Shame about the js touch event hijinx on that webpage that randomly loads random articles if you move slightly horizontally when scrolling, or dare try to pinch to zoom.</comment>


Google Plus will get your children murdered - <AUTHOR> http://brontecapital.blogspot.com/2013/11/google-plus-will-get-your-children.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+BronteCapital+%28Bronte+Capital%29 <comment><USER2> Linkbait much? The meat of the article:

      Today I was mapping out some mining operations controlled by people I
      believe to be fraudsters. I saved a Google map and by default Google
      made this public.

Note that this is a _static_ map. Google+ does _not_ broadcast one's current location. This article is pure attention-grabbing extrapolation.</comment>


Programming Languages as Boy Scouts - <AUTHOR> http://notes.willcrichton.net/programming-languages-as-boy-scouts/ <comment><USER2> Sorry to self-promote a little but, but I just published a dev diary [1] for Eve, where I talk about a lot of the same ideals described here. For instance, the author writes:

> For brownie points, your compiler should explain why the programmer has > encountered an error, and for the gold medal it should propose a solution.

This is exactly what we're trying to do with Eve. In one of the examples [2], I show an error that is met with a full explanation of what went wrong, a possible fix, and even a button that offers to fix the error.

On our philosophy toward errors, we've identified that they should be understandable (written in full plain English sentences), relevant (point to the root cause of the error, rather than incidental errors), and actionable (we provide the reason for the error, offer to automatically fix the error where possible, and teach the user why the error occurred and how to avoid it in the future.)

We're still in the early stages of handling errors, but this is at least how we're thinking about it.

[1] [http://incidentalcomplexity.com/2016/08/03/july/](http://incidentalcomplexity.com/2016/08/03/july/)

[2] [http://incidentalcomplexity.com/images/errorExample.gif](http://incidentalcomplexity.com/images/errorExample.gif)

<comment><USER3> One advantage of non-human-readable error messages is that they are easier to Google. Microsoft's compiler warning and error messages all have unique error codes like C1234, which make them easier to find on sites like MSDN or Stack Overflow.

[https://msdn.microsoft.com/en- us/library/aa249862(v=vs.60).a...](https://msdn.microsoft.com/en- us/library/aa249862\(v=vs.60\).aspx)

<comment><USER4> Well the 2 aren't mutually exclusive.

Throw a unique error code in there, as well as a description on how to fix it.

<comment><USER5> ERROR 832A: Line 42, missing semicolon, you probably won't a semicolon here:

      foo();
           ^

Or something of the like. If the compiler knows the error, it knows what things might be missing. In the case of limited options it could predict and continue parsing. Then, with a more complex error, that error code is actually useful for googling or reviewing the compiler documentation.

<comment><USER6> Or one could just apply semicolon inference and emit a warning, allowing the code to still run, at least.

<comment><USER7> That would probably be a step backwards. I'm all for a debug mode that can let bad code in a running environment. It should not pass a build, though.

<comment><USER6> Depends if you are compiling/executing the code continuously or not during development. Old-style batch programming environments are already plenty of steps backwards.

<comment><USER7> Fair. I actually loved the feature of Eclipse where bad code would pseudo compile. I just worry heavily about anything that emits warnings. Most warnings, it seems, either should have been failures, or needed more powerful tooling to know why it was ok.

<comment><USER8> Warnings are basically errors that don't halt compilation. You shouldn't have any of either in production code.

<comment><USER7> My point, exactly. I don't want more things that don't halt compilation.

If you have a special environment that can fake it, fine. But the general build run of compilation should fail much faster than it typically does.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> I sat down to learn Python a few years back to add another language to my tool belt. I ended up hating it in the first 10 minutes and haven't really had the need to use it since. Why? My sample program looked perfect. It was indented properly without braces - losing braces was the first concession the language asked me to make - but it wouldn't run because of one line which was indented several places. Three of those indents were 4 spaces each, but one of them was a tab. The interpreter chose not to tell me this fact. It merely said my program had illegal indentation or something. Looking at it I didn't see any problem. Solving this mystery was an unnecessary waste of 10 minutes of my life and I decided on the spot that Python was too opinionated for my tastes and not helpful at all. Then I read the designers of Python are forcing coders to change their "print" statement when upgrading Python 2 to Python 3 and think my first impression was right.

In terms of Boy Scouts, Python is the kid with strict dietary requirements who insists the other boys eat his crappy food, just because.

<comment><USER10> Admittedly, that part stinks. It's been 20 years and they still haven't fixed some of those basic things.

BUT - Python is a great language for scripting. If you need to parse some stuff, produce a result ... Python is it.

The documentation bytes, I'm not a big fan of how it scales, packages are clumsy, deployment can be clumsy, but if you can get past those things, script away.

As far as brackets: in the long run I think it's better. I was very resistant to it at first. But then I came to prefer it.

I actually wish Java had a bracket-less option.

If Java had that, plus simpler file access, plus amazing array and string access ... man, that would be great.

Even though those are 'small things' \- in reality, a lot of scripting code is filled with that, so it really adds up.

Going one step further ... maybe heretic - but having worked with a lot of Javascript ... I suggest that some loose data typing options would be great as well.

JSON in Java is a goddam pain. JSON and Javascript is seamless.

A lot of front-end programming is very data centric, but in the 'micro sense' i.e. passing around a lot of little bits of data. Also, it's highly event drive and async, which JS does well. So - also add more seamless async (Java Lambdas approach this) - and voila, Java could be better for UX type things as well.

But languages don't evolve very well, sadly :) it usually takes someone to come along and reinvent it using best practices and maybe a big company to support it, and it takes years to get to maturity.

Either that or to create a highly 'proprietary' version of something, a-la Microsoft.

<comment><USER11> Almost, but not quite would be [http://www.groovy- lang.org/](http://www.groovy-lang.org/)

<comment><USER12> > I actually wish Java had a bracket-less option

Jython is much older and more stable than Apache Groovy, and is bracket-less so there's no "almost but not quite" about it. It only exists for Python 2.x, not Python 3, which is a result of its stability.

</comment></comment></comment></comment><comment><USER13> It should be noted that Scout Law varies depending on what country you're in. For example, some countries have laws saying a scout should smile and whistle under all circumstances. I'm not sure how one would work that into a positive property of a programming language.

<comment><USER14> What is R2D2 written in?

<comment><USER15> ada

</comment></comment></comment><comment><USER16> Who's going to take this a step further, evaluate every programming language against this framework, and tell us who's the Eagle Scout of the group?

<comment><USER17> If you read between the lines, the author has already chosen the Eagle Scout ;) Although, I'd much appreciate the analysis of "every programming language" too!

</comment></comment><comment><USER18> Elm wins the gold medal for helpfulness. [http://elm-lang.org/blog/compiler- errors-for-humans](http://elm-lang.org/blog/compiler-errors-for-humans)

</comment><comment><USER10> Ha. I think Java is the best all round language. Oddly, it's usually not the best language for any specific thing :).

Paradox :)

<comment><USER19> I think Lisp is the best all-rounder. If it isn't the best at something, you can MAKE it the best.

<comment><USER10> Lisp as a 'language' maybe, but the problem is it's more than syntax and compiler. The advantage of JVM, garbage collection, relative platform neutrality, docs that are really consistent, libraries that are very easily shared, and the huge amount of things built into the lang package over time, the number of Q/A on Stack Overflow, resources available, support, 3rd part libraries - these are things that Lisp really lacks, making it not a very useful thing all around.

<comment><USER19> It depends on what lisp you pick. And while CL isn't my favorite, if you're a Common Lisp user, some of that stuff's already there for you.

But yeah, the JVM is a great platform. But Java is inseparable from it, and Java isn't a great language.

</comment></comment></comment></comment><comment><USER20> This is brilliant!

> Reverent. Whether you belong to the Kingdom of Nouns or the Church of > Lambda, be respectful of all faiths. Better yet, take the best of all worlds > when designing your language (see: my previous post). Don't force users to > pick one paradigm over the other, but rather be flexible enough to > accommodate all walks of life.

If only.

But, that being said, I think all languages are coming around to adding first class functions.

<comment><USER21> What's funny, is to me F# and JavaScript would rank pretty highly in my mind. Though JavaScript does allow for more varied paradigms of adoption, but not so friendly.

<comment><USER11> Comparing JS and F# is interesting... I would be very psyched if web browsers implemented F# rather than JS. Type safety, with inference, would be a big win.

</comment></comment></comment><comment><USER22> I saw trustworthy, loyal, and my mind immediately filled in the rest. I haven't had anything to do with Boy Scouts in over 20 years and I still remembered it flawlessly.

It's a shame the clean rule isn't found in programming languages more. I really like low noise syntax of Python, Coffeescript, and Elm but it seems like it is not really being adopted.

</comment><comment><USER23> > Such a language should have ASLR enabled

Or, you know, just be memory safe.

</comment><comment><USER24> All valid points. C# seems like it fits the criterias the best out of the languages I have used.</comment>


Samsung Decides Not to Backport Kernel Patches in Some S4 Smartphones - <AUTHOR> http://news.softpedia.com/news/samsung-decides-not-to-patch-kernel-vulnerabilities-in-some-s4-smartphones-493519.shtml <comment><USER2> That's not what the article says. It says that the fix won't be backported to KitKat and Jellybean. The GT-I9500 has a Lollipop build that Samsung patched.

<comment><USER3> Ok, we replaced "patch" with "backport" in the title.

<comment><USER4> I don't think you want to backport the vulnerabilities...

<comment><USER3> You have a point there :)

Attempted to fix.

<comment><USER5> Another name for fixing the vulnerability would be a mitigation.

</comment></comment></comment></comment></comment><comment><USER6> I am not surprised, what else were people expecting? They should suffer for supporting a company that just sells you hardware with a forgets about you.</comment>


A better way to encapsulate islet cells for diabetes treatment - <AUTHOR> http://news.mit.edu/2019/immune-response-supressant-diabetes-0624 <comment><AUTHOR> Here is the paper:

 _Long-term implant fibrosis prevention in rodents and non-human primates using crystallized drug formulations_ :

> > [https://www.nature.com/articles/s41563-019-0377-5](https://www.nature.com/articles/s41563-019-0377-5)</comment>


Hacker Rank - <AUTHOR> https://www.hackerrank.com/

<comment><USER2> My score is still 5.0 after two correct answers on first attempt ; according the instructions shouldn't it be 10.0?

I like your in-browser shell design, but the challenges themselves are boring. I'd rather keep coding on my projects, it's more fun and rewarding :(

</comment><comment><USER3> Heheh, a quick look at the page source reminds me of a web based testing tool I saw in high school. The teacher never figured out why we all aced that course.</comment>


UK Postcode coordinates on WikiLeaks - <AUTHOR> http://wikileaks.org/wiki/UK_government_database_of_all_1,841,177_post_codes_together_with_precise_geographic_coordinates_and_other_information,_8_Jul_2009

<comment><USER2> It's worth plugging all the ways in which UK citizens can contribute to independent reverse engineering this info in a clean room manner:

If you've got an iPhone, Android phone or other GPS device: <http://www.freethepostcode.org/>

If your house was built before 1940 then locate it on an out-of-copyright map: <http://www.npemap.org.uk/>

Just type in your streetname and postcode: <http://postcodedb.sourceforge.net/index.php?p=submit>

Identify the location of nearby postboxes: <http://www.dracos.co.uk/play/locating-postboxes/>

You can see the results here: <http://old- dev.openstreetmap.org/~random/postcodes/>

Click on the names of the three different sources in the top left to compare or use the + sign in the top right to switch the underlying map as well.

</comment><comment><USER3> I wonder if there's a 'canary' post code in this data that doesn't actually exist but could be used to prove where you got the data from. That's the sort of thing I'd do.

<comment><USER4> I'm fascinated by Mountweazels: <http://en.wikipedia.org/wiki/Fictitious_entry>

Anybody have any good examples they've seen on the computer side?

<comment><USER5> NAVTEQ's map of San Francisco has a street called "Submarine Bells Way" that doesn't exist in real life. Tele Atlas's map of Oakland, CA, includes a made- up street name "Del Norte Drive"

</comment></comment></comment><comment><USER6> Related: the Free the Postcode [1] campaign is a public-sourced database of postcode data.

[1] <http://www.freethepostcode.org/>

</comment><comment><USER7> This isn't the full database as far as I understand which maps postcodes to actual addresses. This leak only deals with coordinates.

<comment><USER8> The available columns are

Postcode, IntroductionDate, GridRefEast, GridRefNorth, County, District, Ward, UserType, GridStatus, Country, WardStatus, NHS_Code, NHS_Region, Long, Lat, OSRef, Update

You can already get the co-ordinates from a postcode using google maps. So I can't think of anything massively exciting you could do with this information. Maybe some sort of offline navigation app.

<comment><USER9> how about "what postcode am I in"? when out and about.

also "click on the map, what's the postcode?"

quite handy for getting the area code i.e N1

<comment><USER10> If those are the columns this isn't 'precise' postal code data. The log/lat is just the 'centroid' of the postal code. At least in the US, most -- if not all -- postal codes are irregularly shaped, so it's not like you can pull up precise GPS data on the perimeter of the postal code (i.e. in order to draw it on a map).

<comment><USER11> UK postcodes are equivalent to the 5+4 US zip codes. They list part of a street, typically 10-20 houses.

</comment></comment></comment></comment></comment><comment><USER12> Just FYI - this won't be much use unless they update it regularly - we have a churn of about 6000 postcodes a month in the UK (business specific addresses, new property etc).

</comment><comment><USER13> I completely fail to see what is so important about this. Don't you by definition need to know the postcode of whomever you need to send mail to? If so, what benefit do you get from this stuff?

<comment><USER14> The UK doesn't have the same kind of Freedom of Information Act as the US, or the same conceptual approach towards citizens being owners of the government.

A lot of stuff that is paid for by taxes in the UK is not automatically public domain, but copyright of the government (or technically, Her Majesty's Stationary Office, the govt. printing bureau) and only available on payment of a stiff fee. Basically the state _qua_ legal entity is much more 'selfish' than in the US, where pretty much anything it puts out is public domain by definition, and it's deeply annoying if you're the sort of UK resident with a presumption of that information wants to be free.

<comment><USER11> And is very expensive and restrictive in how you can use it.

We licensed the Postal Address File (the list of official correct addresses for each house) and we had to add encryption to our product to stop people being able to extract the raw data from the code.

The same applies to Ordnance Survey map data - there are a lot of apps that aren't possible/easy in the UK because of the cost and licensing of the maps that the taxpayer paid for.</comment></comment></comment>


Vienna Opera opened its archive for free streaming - <AUTHOR> https://www.staatsoperlive.com/ <comment><USER2> 'All of Bach' is the Netherlands Bach Society project to record the entire catalogue of Bach works. Check them out if you're in the mood for classical music.

[https://www.bachvereniging.nl/en/allofbach](https://www.bachvereniging.nl/en/allofbach)

<comment><USER3> Great project. My only nitpick is that their content is not permissively licenced. This is fine for the short-term, because the Bach Society has to earn its keep somehow, but it would be nice if there was some kind of licensing planned for the many decades between short and mid-term monetization and the eventual expiry of copyright on these recordings.

</comment></comment><comment><USER4> The Berlin Philharmonic is doing the same: [https://www.digitalconcerthall.com/en/home](https://www.digitalconcerthall.com/en/home)

<comment><USER5> I found about this yesterday. It is truly amazing. You get a Gutschein(groupon code?) for a month.

If you like Beethoven, you should check this out : [https://www.digitalconcerthall.com/de/concert/52428](https://www.digitalconcerthall.com/de/concert/52428)

Truly amazing especially the 2nd part(Molto vivace).

<comment><USER6> Thanks for the link. If I hear Beethoven or Schubert I know that I am not alone with those deep feelings in this tragic times. Music is a miracle.

</comment></comment></comment><comment><USER7> [EDITED]

The Met is doing free (beginning in the evening US East Coast) streams this week and available for about the next day: [https://operawire.com/metropolitan-opera-to-offer-up- nightly...](https://operawire.com/metropolitan-opera-to-offer-up-nightly-met- opera-streams/)

</comment><comment><USER8> maybe one good thing that comes out of this is that more people become conscious of how important it is to have access to high quality cultural goods.

With the virus circulating around now everyone is affected, but the overwhelming majority of people never has physical access to this sort of content. Some countries have well financed public broadcasters, but it would probably be worth expanding this stuff across national borders.

</comment><comment><USER9> The Royal Opera House YouTube channel also has extraordinary content with incredible production values [https://www.youtube.com/user/RoyalOperaHouse](https://www.youtube.com/user/RoyalOperaHouse)

</comment><comment><USER10> For anyone out there needing some way to respond - I find that music, and especially classical music performed live, speaks something incredibly profound to the soul. It finds strength inside of you that is buried deep. Yo- yo Ma released a short song today, take a listen if you have time: [https://youtu.be/rrBOkHfvNSY](https://youtu.be/rrBOkHfvNSY)

</comment><comment><USER11> The Melbourne Symphony Orchestra will be streaming their performances live on YouTube, starting from tonight's (in about 3 hours): [https://www.youtube.com/watch?v=MCBYvd5LKa4](https://www.youtube.com/watch?v=MCBYvd5LKa4)

</comment><comment><USER12> This is cool! Tickets to live shows are usually pretty pricey, and these are some of the best performances in the world.

<comment><USER13> Standing tickets (no seats) are still just 10€. (80 min before begin at the Stehplatzkasse in Operngasse).

</comment></comment><comment><USER14> I see no "free" on that page. The only thing, which is free, is the first month. Then it costs EUR 16.90/month.

<comment><USER15> You just have to create an account. They still push you to the subscription page but the content doesn't require it.

<comment><USER16> doesn't work for me. It says pay 16€ or 5€ :-(

</comment></comment></comment><comment><USER17> I basically spend my entire programming life on Israeli Kan classical radio station 24/7 of very versatile classical music: [https://www.kan.org.il/radio/player.aspx?stationId=7](https://www.kan.org.il/radio/player.aspx?stationId=7)

<comment><USER18> they used to run a lot of modern music, I'd wish they didn't do that.

<comment><USER19> Radio Swiss Classic plays older compositions; I dislike modern music as well and use their stream.

</comment></comment></comment><comment><USER20> Bavarian State Opera is offering some streams as well:

[https://www.staatsoper.de/tv.html?no_cache=1#c16663](https://www.staatsoper.de/tv.html?no_cache=1#c16663)

</comment><comment><USER21> Great stuff. We were had tickets for Thursday night but instead we are on the other side of the planet in 'strayla.

</comment><comment><USER22> In a similar vein, the Youtube channel for the DR Koncerthuset has about 20 playlists with recordings of several symphony concerts: [https://www.youtube.com/user/Koncerthuset/playlists](https://www.youtube.com/user/Koncerthuset/playlists)

</comment><comment><USER23> I only see the 'Buy' option. How do you get the free access?

<comment><USER24> You have to click on 'free', go to [https://www.culturall.com/ticket/ists/login.mc](https://www.culturall.com/ticket/ists/login.mc) , register an account (email/password), and then it plays in-browser. [https://www.culturall.com/ticket/ists/performance_schedule.m...](https://www.culturall.com/ticket/ists/performance_schedule.mc) lists at least 11 things to stream with '0,00 €', which I assume is how they're doing 'free'.

<comment><USER25> Hm, they should have made it without registration.

<comment><USER26> Yeah, and they should wash my dishes as well. I mean is it _really free_ if I still have to do domestic chores afterwards?

<comment><USER25> If it's free art, why the registration? I see no point. I didn't bother making an account.

</comment></comment></comment></comment></comment><comment><USER27> Seems to be free only on the web not in the Android app

</comment><comment><USER28> Is there a website or channel or radio , which plays these classsics from various websites randomly ? like a FM radio.

<comment><USER29> I listen to a stream of a Los Angeles station called KUSC all the time. It's a fantastic station (unless they're doing a pledge drive, but don't worry, they just did one) and it's comforting that it's the same hosts no matter where I travel.

Asking to play it works across all major devices and platforms.

<comment><USER19> I used to listen to KUSC until I got annoyed with the commercials and interruptions, of which there are quite a few. Now I recommend Radio Swiss Classic ([http://www.radioswissclassic.ch/](http://www.radioswissclassic.ch/)), which is better in this respect; the music may be of slightly less variety and with less scommentary.

</comment></comment></comment><comment><USER30> I only get the "Buy" option for everything

</comment><comment><USER31> Doesn't seem to be free on the Apple TV app.

</comment><comment><USER32> Oh I would be willing to pay to put this on Sonos.

Amazing...

</comment><comment><USER17> where is it I went to their website in the link but I don't see where the free streaming is...

</comment><comment><USER33> ok i like opera

</comment><comment><USER34> So cool!

</comment><comment><USER35> Can we stop advertising time-limited singup-requiring trials as "opened for free" ? Because for that matter - so did pornhub.

<comment><USER36> You know that how?

<comment><USER35> Because I saw them advertising that, on their site, which I browsed to, for the purpose of viewing pornography.

</comment></comment></comment><comment><USER37> Some might consider J.S. Bach to be "Baroque" not "Classical."

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

<comment><USER38> Even that link draws a distinction between the 'classical period' (what you linked to) and 'classical music' (a much broader range and the terminology parent commenter used)

<comment><USER37> Listen, if you want to call all Western Art music "classical" go right ahead. In fact, pop stuff like "Andrea Bocelli" and "The Piano Guys" gets lumped into "classical" too.

<comment><USER39> Sounds like a pointless hill to die on IMO, even if it is technically accurate. With language there's always plenty of context which humans are smart enough to make distinctions from.

I've never understood why people selectively allow broad context for most things, except for some pet subjects. The label programmers vs developers vs engineers is a good example, when the majority of people know what you're referring to. Making the distinction insignificant far more often than not.

Edit: Do you think Google really has 1700 "engineers" working on the coronavirus testing website? (probably not, that likely includes UX, designers, management, etc). Does it matter to the expected audience? (no).

<comment><USER40> It's difficult to imagine how any team of 1,700 could work on a new website whose spec isn't even fleshed out.

I read the project got 1,700 volunteer applications, not actual commitments.

</comment></comment></comment></comment></comment><comment><USER41> It's not free. They force you to register.

This is free advertisement at HN. Not HN.

<comment> crooked-v You have to create an account, but you don't need to sign up for a subscription, so yes, it's free.

<comment><USER41> The exchange of one service for the other has a somewhat different legal status & definition at many parts of the world. However, it's not "free" anywhere. Neither "free" as in "Free beer" or "Free" as in freedom.</comment></comment></comment>


TSMC 7nm ready for customer tape-outs in 2Q17, says report - <AUTHOR> http://www.digitimes.com/news/a20170103PB201.html <comment><USER2> Is this ahead of Intel? Kaby seems to be on 14nm and their NG seems to be on 10nm.

<comment><USER3> Kind of. TSMC's 7nm is basically Intel's 10nm. There is no exact standard for node processes, so marketing speak takes over.

<comment><USER4> The physical features may be 7nm, but the spacing is closer to Intel's 10nm. So you do get power reduction, but the die size doesn't shrink.</comment></comment></comment>


Edward Snowden sharply criticizes Putin in a series of tweets - <AUTHOR> https://mobile.twitter.com/Snowden/status/751019610258964480 <comment><USER2> Might not be the smartest decision to criticise the one who granted him asylum.

<comment><USER3> If Snowden was concerned about taking 'smartest' decisions in this sense, he'll still be a well-paid CIA analyst.</comment></comment>


Bitcoin Maximalists and the Futility of Memes - <AUTHOR> https://decrypt.co/8617/maximalists-cant-meme <comment><USER2> ~ a brave take on crypto tribalism</comment>


Use a Smartphone as a Dial Up Modem? - <AUTHOR> http://superuser.com/questions/748154/use-a-smartphone-as-a-dial-up-modem <comment><USER2> Heh, I used to use my first cellphone for dialup back in the early 2000's with T-Mobile USA. The setup was via bluetooth from a Sony Ericsson t68i (amazingly this phone still works) to a Palm Tungsten T. Then I could get a 9.6kbps connection to do IRC with it. TMUS never deployed HSCSD since it would have stressed capacity on the network (eating up more timeslots)

The reason I used this method over GPRS was that T-Mobile started to put in port blocking for their $2.99/mo T-Zones WAP plan so IRC wouldn't connect (I later on figured out I could run SSH on imap port 143 and forward through there).

I had unlimited nights and weekends and CSD used minutes, not data buckets. So what I did was connect to a free dialup provider in New England. It worked well except for dialup time and dropoffs if the signal got low.

EDIT: More recently I used a globalstar phone to mess around on IRC like the old days, also with a 9.6kbps connection BUT CONNECTED THROUGH SPACE! (pic: [https://farm9.staticflickr.com/8356/27784526013_bee94fd5dc_h...](https://farm9.staticflickr.com/8356/27784526013_bee94fd5dc_h.jpg) )

<comment><USER3> Well played! This is the same setup we used in early 00s for performing remote maintenance on our commercial hosting environments when we needed SSH or Symantec remote desktop access to Linux and Windows NT/2000 servers.

Folks don't know how terrible (#firstworldproblems) it used to be.

</comment></comment><comment><USER4> My first cell phone had a modem option. I used it on more than one occasion to deal with emergencies that came up while I was traveling. It did operate at about 9600 baud, and was painful for anything other than ssh sessions; which was fine for what I needed to do. I mean, simple web pages would load, but it wasn't particularly enjoyable. I could also walk away and let it download my email for 20-30 minutes.

I now use 3G/4G mobile broadband for my primary internet and sometimes wish I had the option fallback to the old way; because I travel a lot in out of the way places, sometimes I have no data connectivity but voice works.

</comment><comment><USER5> I guess that the low bandwidth is the cause of JackPair [0] silently failing on Kickstarter... Which is a pity, I really cheered for this project.

Does anyone know of any acoustic coupler implementations that actually let you smuggle data over voice?

</comment><comment><USER6> Reading the top answer has lost me.

It starts with "No." explaining why it doesn't work and then changes it into a to "Yes, but it's slow." further down.

<comment><USER2> I didn't get their writing style either.

Fun fact, early GPRS phones usually had the computer 'dial-up' (use a DUN) using:

      *99# or *99***n# where n was the stored profile number on the device.

This was a packet, not circuit-switched connection but the computer didn't see it any differently.

<comment><USER7> I clearly remember using this to connect to the Internet via EDGE/3G on a HTC Tytn II and later a HTC Magic directly from my laptop, instead of tethering (which was against ISP ToS).

I think I'm going crazy now because none of the Android phones I've tried to replicate this on support this :/

<comment><USER2> > I think I'm going crazy now because none of the Android phones I've tried to > replicate this on support this :/

They don't. Android uses usb cdc ethernet for connecting to network on devices that allow tethering. Feature phones (mostly) used PPP DUN over serial (bluetooth and I think IRDA gives rfcomm ports). A few of the later one also used the cdc_ethernet method (out of my old one.. only my K850i does)

</comment></comment></comment></comment><comment><USER8> Not dial-up, but around 2004 you could find tutorials for how to unlock your (Verizon) Razr for USB access and OS X would recognize it as a PPP modem out of the box. I think an OTA update stopped it eventually.

<comment><USER9> I wrote one of those! Fun to read through now, but highly obsolete. [https://www.mikeash.com/alltel_internet.html](https://www.mikeash.com/alltel_internet.html)

</comment></comment><comment><USER10> Anyone still uses dial-up modems? I thought I was a Luddite when I was using dial-up (56K) 15 years ago :)

Modem protocols are very robust to line quality so they should work fine over a cell phone connection though if the audio is aggressively compressed you'd get a correspondingly lower bandwidth connection. I'm not sure but I think even 56K modems would negotiate all the way down to 110bps if they had to and the newer protocols were also adaptive to line quality.

<comment><USER11> Security minded networks often use dial up to do out of band management</comment></comment>


Lessons learned from our recent switch to GitHub Enterprise - <AUTHOR> http://dev.hubspot.com/bid/88470/Warp-Speed-with-GitHub-Enterprise <comment><USER2> We used Github Enterprise at my last workplace, paying $5k/yr.

We could have easily paid $300/yr ($25/mo) instead if we just used the normal Github site and had a better experience (they were constantly shifting things around to avoid the 20 user cap), but the company IT was adamant on bringing anything in-house that could be brought in-house.

Github is great, but there are very few situations in which Github Enterprise really makes sense, IMO.

<comment><USER3> GE gives us far more control, far more logging and auditing (which is the real key), as well as nice things like LDAP authentication that make adding and removing users from the system far, far easier to manage. There are real reasons to use it besides just wanting things in house, although for a software company who needs to keep their software secure you shouldn't use anything except Github Enterprise. We all saw the bug that happened just a few months ago- who knows how many people were using that maliciously before it was made public.

I will say though, there have been a ton of improvements in Github Enterprise. We rejected it after getting a trial six months ago, and gave the sales team a huge list of problems (it was kind of disgusting, actually). Since then they've actually addressed the vast majority of our list (certainly all of the high priority things), which prompted us to look at it again. We're pretty happy with that decision.

That being said, if you're too cheap to buy licenses for all of your staff then you shouldn't use the thing. That's not a Github Enterprise specific issue though.

</comment></comment><comment><USER4> Looks very nice. Pretty pricy too. It seems for team <=20, always $5000 per year, I wonder why they are not making the pricing more flexible.

<comment><USER5> They do have licensing options for purchases of 1000+ seats.

I do agree that its quite expensive however, this is why the company I work for chose Gitorious instead of GH:E with 300+ seats.

<comment><USER6> We've used gitorious as well, but due to several problems we've now switched to a GitHub organization and Gitlab. Much more happy this way in general, but the team management options for GitHub are lacking. Purely going for the Gitlab route would've probably worked out better. (We have around 50 people with Github accounts now and some of them are changing teams frequently.)

</comment></comment></comment><comment><USER7> I believe the biggest complaint I keep hearing about GitHub:Enterprise is it's crappy search functionality. I think a lot of developers want to be able to search the code easily, and Github:E seems to be mediocre at it.

<comment><USER8> This; the search is beyond terrible.

<comment><USER9> They should seriously consider using OpenGrok. It's a fantastic open source code browser / searching tool that supports a variety of languages. It's also released under an OSI-approved open source license.</comment></comment></comment>


Ask HN: How do you backup your email? - <AUTHOR> I'm looking for a solution for email backup. Ideally, it would not run on my desktop, it would be server-based solution that connects to my IMAP-based email provider, and saves backup snapshots to cloud-based storage (e.g. Backblaze, S3, etc.) using de-duplication to save space. <comment><USER2> > _... server-based solution that connects to my IMAP-based email provider, > and saves backup snapshots to cloud-based storage (e.g. Backblaze, S3, etc.) > using de-duplication to save space._

You could rather quickly and easily write a shell script to:

\- use _offlineimap_ [0] or _imapsync_ [1] to perform a local sync of your mailbox to local mbox files or maildir directories,

\- (optionally) use tar or similar to create a single file out of your entire mailbox, and

\- use _tarsnap_ [1] to back it up (to AWS) or _s3cmd_ [2] or similar to back it up to wherever you want it.

I used to do exactly that with an additional step to encrypt the tarball (with GPG) before uploading it. It worked out quite well.

\---

[0]: [http://www.offlineimap.org](http://www.offlineimap.org)

[1]: [https://imapsync.lamiral.info](https://imapsync.lamiral.info)

[2]: [https://www.tarsnap.com](https://www.tarsnap.com)

[3]: [https://s3tools.org/s3cmd](https://s3tools.org/s3cmd)

<comment><USER3> Note that if you're using tarsnap there's no need to create a tarball from your mailbox (tarsnap does that for you) and there's no point encrypting your data with GPG (tarsnap encrypts your data for you too).

If you're using s3cmd to back up your mail then the "create a tarball" and "encrypt with GPG" steps are useful, of course.

</comment></comment><comment><USER4> Some email gets printed out, stuck in various binders, and kept for awhile. Then usually set on fire in a ritualised celebration of the impermanence of reality. This is also known as scheduled secure destruction.

The majority of serious email get copied (IMAP or for the email server we run, just sftp) to a pair of DVDs on periodic basis as an encrypted filesystem archive. We then stick it in a dvd swapper drive for offline access. The other copy gets put off site.

<comment><USER5> Dvd swapper drive? Does it work like a tape library? Do you have any pointers where to find these?

<comment><USER4> Commercial solutions can hold 60-300 disks or more. Expensive.

For home use just get a bunch of usb dvd drives and go nuts, or go full tape. Once you go tape you get addicted to capacity. But it gets pricey. Cost/density is interesting.

At home I just use a stripped down version. Literally a bunch of usb dvd drives hooked up to a raspi. I can insert a disk and poke around or have it auto copy the whole thing and auto-eject. I have 10 slim drives connected... ebay is kind. The raspi pipes to a different server full of ssd/hd/ram depending on what I'm doing.

</comment></comment></comment><comment><USER6> Gmail: download via takeout, keep it local, backblaze to backup from local to other server

</comment><comment><USER7> I just did a write-up on using imapgrab.py :)

[https://smalldata.tech/blog/2020/04/07/imap-email- backup](https://smalldata.tech/blog/2020/04/07/imap-email-backup)

<comment><AUTHOR> Hrm. This is very interesting. Your post made me think about using a couple of different software packages together. I could use IMAP Grab to pull all the email to disk on the server and then use [https://www.duplicati.com/](https://www.duplicati.com/) to push to the cloud storage of my choice. Sigh. Sounds like another project for me. Thanks! Your post was super helpful to get me thinking about how things might work.

</comment></comment><comment><USER8> I use getmail[0] on my rpi. Download everything from gmail and fastmail using IMAP (sync) overnight into a truecrypt container, and then offsite backup to rsync.net. It's also storing everything into an mbox so you can easily import that file anywhere.

[0] [http://pyropus.ca/software/getmail/](http://pyropus.ca/software/getmail/)

</comment><comment><USER9> I use gmvault to replicate my personal gmail to my local NAS server on a nightly basis. I also have offsite encrypted backups using restic, also done nightly.

</comment><comment><USER10> I wish I could back up to PUNCHED CARD still ;-)

<comment><USER11> Digital to paper backup:

[http://ollydbg.de/Paperbak/](http://ollydbg.de/Paperbak/)

</comment></comment><comment><USER10> check out [http://metallic.io/](http://metallic.io/) ASAP !!

they have an awesome free trial running right now..

</comment><comment><USER12> POP3 client

</comment><comment><USER13> isync and cron</comment>


Minimal task queue and module pattern for JavaScript (ES5) - <AUTHOR> https://medium.com/@ibowankenobi/queued-async-pseudo-modules-with-es5-812f99fed209 <comment><AUTHOR> Couple of days ago I had an idea about a minimal module pattern that does not need Babel>Browserify etc. It is implemented in ES5 without any dependency and seems to work as expected. Maybe I am missing something obvious (anti- pattern?) so feedback is appreciated. Github: [https://github.com/IbrahimTanyalcin/taskq](https://github.com/IbrahimTanyalcin/taskq)</comment>


Coding Horror: The Hardest Interview Puzzle Question Ever - <AUTHOR> http://www.codinghorror.com/blog/archives/001243.html <comment><USER2> This is a false dichotomy. Having the interviewee give a brief talk and following with a dialogue about something they've worked on in the past is absolutely vital. An interview consisting of that exclusively is probably better than an interview consisting solely of brain teasers. However, that's a silly comparison.

Way too many questions get labeled (on the internets) as "puzzles" and "brain teasers" when they are simply abstract algorithm questions. Crossing rivers with chickens and wolves, and/or figuring out the prisoners with the one room and the light-bulbs and all that crap are brain teasers and are totally useless. Impossible questions are not brain teasers. If I asked you how many tires are in the city of Chicago, and you said 1000, what should I think? What does that tell me?

Even still, way too many programmers decide to get intellectually offended (at least on the internet) when they hear about some problem that may involve, say, dropping light bulbs off a building to find the highest floor from which they can be safely dropped. This is nothing but an algorithm development question for a problem that doesn't have an off-the-shelf solution. This is testing your algorithmic thinking skills.

And as always I hear that phrasing such and such algorithm question "in real terms" is better than phrasing it abstractly. I've never seen a compelling argument that this is true except for this faux outrage that people have about puzzle questions. Phrasing it abstractly is quicker, simpler, and clearer. It removes all the hemming and hawing about implementation details. It removes answers like "doesn't intel have a library that does that?". It gets to the point, and quickly.

There is a second problem with that angst, and comments like: "I just can't muster any enthusiasm for completely random arbitrary puzzles in the face of so many actual, real world problems.". It is that we are computer scientists and abstract problem solving is something we should care about. Abstraction shouldn't be some barrier that makes it hard for you to think about a simple problem. Abstracting the real-world details away from you shouldn't get you emotional.

Besides, if I had an interview that was only a water cooler talk about something in the past, Jeff Atwood would smack that out of the park. And then I'd end up with a shop full of Jeff Atwoods. wink.

<comment><USER3> I think this is another "In theory, theory and practice are the same. In practice, they are not." issue.

In theory, theoretical questions are great. In practice, they are fidgety little things that must be asked precisely correctly to have the same "correct" answer that the interviewer has memorized and are frequently botched, almost invariably involve a "gotcha" answer in such a way that honestly I do not want to see a coder actually code, and have a laser-like focus on an aspect of the job that in most cases will involve less than 1% of your job, no exaggeration.

I've done some algorithms work at my job, but in all my years it has always been replacing O(n^2) or O(n^3) solutions with O(n) or O(n log n) in very straightforward ways. Had I chosen an O(n log log n) answer, it would have been wrong for being radically more complicated.

Basically, my problem with the puzzle questions is they show a misplaced priority. You _could_ be asking gotcha puzzle questions (that, by the way, I've probably already read and memorized the answer...), _or_ you could ask the interviewee to write a script in their favorite language to count the words or whatever, and learn _both_ everything the puzzle question would have taught you _and_ whether they can code.

This may be a side effect of the fact that I refuse to spend eight hours interviewing someone. I want it done in less than half an hour unless there's a good reason to make it go longer (which does happen). Puzzle questions are a waste of time in that context. I guess if you're planning on wasting a candidate's entire day, you can afford wasting time on puzzles. (I have read the science that says we make decisions on the hiring issue far faster than in eight hours, which matches my experience, so why sit there and fiddle around all day when the decision has been made?)

<comment><USER4> _I guess if you're planning on wasting a candidate's entire day, you can afford wasting time on puzzles. (I have read the science that says we make decisions on the hiring issue far faster than in eight hours, which matches my experience, so why sit there and fiddle around all day when the decision has been made?)_

I find it easy to believe that many people make a decision in far less than eight hours of interviewing, however I do not believe that all interview processes lasting eight hours are a waste of time for the candidate and for the interviewers.

To pick an example, what about a process involving twelve different interviewers, each of whom takes between a half hour and an hour, with the process spread over a certain amount of elapsed time? Can we really assert that we cannot make a better decision with this process than with having one interviewer spend thirty minutes with the candidate?

<comment><USER5> All the research I've seen seems to draw the conclusion that the only strong predictor of performance in a job -- is past performance.

Puzzles and psychometric testing are useful, but have a lot of limitations. However, you may have a job that involves a high level of responsibility (e.g. people's lives) and you want to assess their response to stress/crisis. Again, it's not perfect -- you don't truely know how someone will respond in a unique situation -- but in those circumstances you might want all the information possible.

References, by and large, are useless.

Cultural fit is incredibly important, but there are very few interviewers or interview techniques that do this adequately. There is so much bias in this it's hard to assess very well.

So what are the keys for me? Validating what they have on their CV. If they have experience with a particularly technology, I ask about it. I propose problems that they are likely to encounter every day in their job, and see how they go about fixing it. From what I've seen, abstract problems do not exercise this sufficiently.

What is it from there? Well, if what they have been doing is a fit for the job, then that's great. If there is a gap, there is an assessment on what it will take to bridge. How a person has conducted their career is a good indicator on how achievable this is.

<comment><USER6> _References, by and large, are useless._

Marissa Mayer says, in all their studies of the Google interviewing process, references are the best indicator of future performance.

<comment><USER5> Yeah. That's why I left it slightly qualified - references are only useful if there is a strong network that can recommend and validate people.

This was probably certainly the case for Google, but probably not for many others.

</comment></comment></comment></comment></comment></comment><comment><USER7> This kind of practice really irks me. I'm not sure what information these companies are going after, but what they're actually getting is "people who read lots of brain teaser books". Somehow I doubt that's what they're looking for.

<comment><AUTHOR> Brain teasers are kind of extreme problem solving. Being able to tackle apparently impossible problems is a useful skill to have in most business situations. Think of it as a way to see if you can "think outside the box (tm)"

<comment><USER8> I would say that being good at brainteaser problems only proves that you're good at brainteaser problems. Nothing else.

<comment><USER4> Yes. And no.

Take yourself back to 1989 or so when very few companies asked brain teaser questions so therefore there were very few people who studied brain teasers specifically to ace job interviews. The question for an interviewer was whether being good at brain teasers _correlated_ to being good at a programming job in a statistically significant manner. Now combine that with a number of other interview techniques, each of which correlates well and you may have had something.

If you must search for reasons and meanings, it was probably because the kind of people who studied brain teasers for fun also happened to have a certain knack for the math-y problem-solving part of programming. Or they actually enjoyed solving problems for fun. Or both. I am not suggesting that we need to prove that the skill of solving a brain teaser was an important programming skill, it could be there was a root talent which expressed itself in programming and brain teaser abilities simultaneously. Or that some event in their past opened them up to learning two different and unrelated skills. All that mattered was whether you could measure a correlation.

But that was then. Today, I avoid such questions entirely. However, that is because IMO it no longer correlates well. Mostly because it has become popular enough that interviewees game the system by swotting up on brain teasers, so being good at them no longer means you have innate talent for math-y problem solving, nor does it mean you enjoy solving problems for fun.

So in summary I say that being good at brainteaser problems in a job interview no longer even proves that you're good at brain teaser problems, or like solving them for fun, but I disagree that it has never conveyed useful information to an interviewer.

<comment><USER8> The post was primarily based on my (limited) experence with good hackers I know and their ability to solve brain teasers. Most of them, incidentally, are not very good at it. The sample base is small though, so it might be skewed.

Also, in my opinion a lot of them are "aha" questions - once you get them they're obvious. They don't require deductive thinking, but rather that you "get" this particular question. A good example of this might be "Why are manhole covers round?" The answer is that round covers are bigger than the hole no matter how you turn them, and thus can't fall in. It's hard to deduct your way to this conclusion, yet once you get it it's obvious.

Questions such as "how many pianos are there in New York?" require a bit more deductive thinking, but I'm sceptical as to how much they say about someones ability to code.

But, as you point out, if there's a correlation, hoowever small, and you get other loosely correlated data it adds up.

<comment><USER9> I agree that this type of question isn't helpful because it's so easy to memorize the 'tricks' instead of thinking about the solution, but I find it fairly simple to deduct the reason for manhole cover shapes:

First, determine the requirements of a manhole cover (strong enough for semis to roll over it, movable for access, big enough for most people to fit in the hole) and the possible issues (theft, wear/tear/destruction, falling into the hole).

With these requirements, it's pretty easy to design an acceptable manhole cover:

1\. The manhole cover must be at least 2' in diameter to allow people to go into the hole.

2\. The manhole cover should be thick metal, both to increase life and to prevent theft (some manhole covers weigh more than 80 lbs).

3\. The manhole cover should have a hole/catch mechanism in it to help open it.

4\. The manhole cover should not be able to fall into the hole, so should be a shape that can't fall into itself (circles are the only shape I know of that follow this).

In the real world, many manhole covers do not follow all of these requirements (I've seen triangle-shaped ones), but this design outline describes the manhole covers near me pretty accurately.

I would argue the 'spirit' of the question (determining whether or not the applicant can use deduction to find an answer to a tricky problem) is still extremely important--it's just that this type of problem (and especially the manhole cover example) has been gamed.

<comment><USER4> I love discussing the manhole question because the alleged answer is not the point. The point of such a question is for the candidate to think aloud and walk you through their problem exploration process. Such questions select for people who are a little meta about themselves, which is why they can think about something and talk about their thinking at the same time.

The infamous retort is this parody: <http://hebig.org/blogs/archives/main/000962.php>

But that really illustrates the trap of almost all interview questions. The interviewer is obsessed with the correct answer, when in reality it's the process of arriving at any answer that matters.

My personal beef with "Aha!" questions is that if given one that I actually solve on the spot, I can't tell you much about how I got it. It just came to me.

The only exception I can remember is a question about finding whether a linked list has a cycle in it. The "proper" answer involves a pair of cursors, one of which operates at double the speed of the other. I came up with a much less efficient but equivalent solution because the problem reminded me of something we did with Turing machines in college back in the 80s.

So in that particular case I could actually explain how I arrived at an answer. Now that I think about it, I think I'm a pattern-matching machine. My algorithm for solving problems is to perturb them until they resemble something I've seen before.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> This is a rough correlate with intelligence testing. There's nothing wrong with that. The problem most people keep bringing up with these things is that you will miss some good people that they have worked with who couldn't have done these problems. That may be so but the real fear should be of people you hire not of people you pass up. Hiring people is much easier than firing people. If you can get someone who's good at puzzles and is good in other ways you've only gained something not lost. I think the other reason people are offended is because they themselves are not good at these problems and take it as an insult.

On another point, you can't just get 'good at puzzles.' It's really not possible. Even if you are learning tricks and techniques for piercing these things that type of thinking can be applicable elsewhere. It doesn't even have to be algorithms. Working your brain is a reasonable thing to do. Just signaling that you are willing to do so can be of interest to an employer.

</comment><comment><USER11> It's too easy to fake skill if you let the interview candidate talk about whatever they want. A lot of PhDs who can't really program will sound great if you let them control the topic, but ask them to write code to find the most frequent word in a page of text and they will be stumped.

</comment><comment><USER12> The actual answer to the "hardest interview puzzle question ever" is 17, and the pirate starts from the left.

</comment><comment><USER5> Here is a hard interview question - "Here is a problem we encounter every day at X company. Have you encountered this before in a previous project? How would you go about solving it?"

<comment><USER13> I've had a hard time getting that prototype to work as a valid question because I've always found I'm leading candidates through the thought process. I have yet to find a way to ask it in an open ended manner and receive a satisfactory (meaning it has walked enough of the path to prove a candidate can engineer) answer.

<comment><USER5> Yeah, this is a confound - It's not unrealistic though - as working through a problem together is likely a part of your ongoing work relationship.

This is where you need to start injecting things like "Don't you think?..." or "I hadn't thought about it that way, tell me more...". That kind of interaction will be come critical day to day, it also helps test the depth of the candidate.

I guess that's why I don't like puzzles - it feels too much like a trick (also, I'm terrible at them). What I usually look for are teammates - people I can work together with to crack problems.

I guess it just comes down to picking something that draws that out - something realistic, but without too many preconceptions on the interviewer's part.

</comment></comment></comment><comment><USER14> I would walk out of the interview because, obviously, the interviewer (or crafter of the questions) is a special kind of douche bag.

</comment><comment><USER15> That's why Microsoft lost to Google

<comment><USER16> I think this is a bit premature and oversimplified...</comment></comment>