Disqus: Scaling the World's Largest Django Application (2010) [video] - <AUTHOR> http://ontwik.com/python/disqus-scaling-the-world%E2%80%99s-largest-django-application/ <comment><USER2> As these slides are very old, here's some updates:

* We use Flask and nginx in various areas now (the main app is still Django). Our realtime app, for example, is powered off of uwsgi and Flask.

* There are nearly 1b monthly uniques across the network serviced by the platform.

* ~300 servers

* Still Postgres (with Slony, multiple clusters), Redis, Memcache, and some Cassandra for newer things (not comments).

Also mostly confident we're still the "largest Django app" in terms of traffic.

<comment><USER3> Virtual servers or bare metal? What do you use for herding them?

<comment><USER4> I second that. Would be interesting to know a bit more about the systems setup.

Also why the decision to use an ORM? To manage the partitions?

<comment><USER2> Eventually you need abstraction. Python is fast enough, as is Django, that the abstraction costs us less than the value it provides us.

That said, we do manage our partitions (currently) using an ORM layer (at the application level). We do want to break this out into a proxy middleware at some point though.

<comment><USER4> Right, just interested in the choose of such an anti pattern.

What proxies are you considering?

</comment></comment></comment></comment></comment><comment><USER5> Largest? Is Disqus really 'larger' than Instagram?

<comment><USER6> I think it was in 2010 when they gave this talk.

<comment><USER7> Yeah these figures are really outdated. This one from PyCon 2011 is newer: [http://www.slideshare.net/zeeg/pycon-2011-scaling- disqus-725...](http://www.slideshare.net/zeeg/pycon-2011-scaling- disqus-7251315)

<comment><USER8> Interesting : According to these slides [14] there is no difference between Apache + mod_wsgi and Nginx + uWSGI

</comment></comment></comment></comment><comment><USER9> All with apache and haproxy? No nginx or uwsgi/gunicorn or Redis? How old is this article?

<comment><USER10> In the newer (2011) slides they mention growth by ~100 Million comments in 6 months. Most comments are tiny, I'd be surprised if this whole dataset was much larger then ~100GB.

I don't really understand why Disqus and Reddit for that matter don't just switch to redis. There has got to be a good reason because I can't think of one. Sounds like you _could_ run the whole thing from just one box and only have slaves for redundancy.

Why isn't vertical scaling more in vogue?

<comment><USER11> If you really think that's the case then you don't understand Disqus/Reddit OR Redis.

<comment><USER10> Well I opened with "I don't understand". I'm not saying that they could, I'm saying I don't understand why they can't.

I'd love for you to elaborate. As far as I can tell they are not using PostgreSQL as a relational database, but rather, as a column store. So why not use Cassandra or even Redis (if the amount of data can totally fit into RAM easily, maybe it can't)?

In fact I think Reddit moved to Cassandra... anyway, I am not an expert, I'm asking.

<comment><USER11> I can't speak much to Reddit. I know they moved some things to Cassandra, but as a user I'll say I haven't been impressed with their latency and uptime since.

As a developer, I can speak a bit about Disqus. I don't speak on their behalf, but I did work there for two years (ironically I was also the first to use Redis there[1]) so I can at least explain why I think using Redis for the whole site is a terrible idea. I'll also note upfront that where I currently work we use a ton of Cassandra, Redis, and very little MySQL on the side, so hopefully I won't be pegged as some kind of "RDBMS only" guy.

Anyway, some reasons:

1) Relational data. Disqus really _is_ relational. You have users, user have posts, posts belong to a thread, threads belong to sites, sites belong to an account (imagine one account for the different CNN websites). And that's a very, very small subset of the number of tables and foreign keys involved. People don't realize how many features Disqus really has above and beyond "post a text blob to a thread."

Being able to write a query that uses joins is huge. The alternative in Redis/Cassandra is having to denormalize your data into every single possible way you may want to do a "query" on later. Oh, by the way, I promise you will forget a few ways and regret having to backfill/fix all the broken denormalizations.

Even if you don't forget to denormalize anything upfront, the biggest joke k/v and document stores ever played on the developer community was convincing them that they save development time by being "schema free". When Disqus wants to add a new feature it's often only a new JOIN/INDEX away. If you realize a year into your Redis deployment that you want to be able to tell a user how many comments they made per month in the year... what do you do? In Postgres you hit the datetime column index and call it a day.

2) Memory (and cost). The Disqus network is actually pretty huge. Storing the entire dataset in RAM (Redis) would cost a lot more than using an efficient DB like Postgres that is a pro at moving data between disk and RAM. Cassandra would work better than Redis here, but the other problems I list still hold.

Also, as soon as you have to break from one Redis instance to two (either to scale CPU or to live on another box to increase available RAM) you lose a lot of server-side functionality like being able to union sets, or use the embedded Lua to fake 'queries' because now you have keys that live on seperate systems. Before anyone says you should shard by "site", see my link below. I did just that, but you have to understand that Disqus is more than just "comments for my website". Say you shard by website, now how do I run a do a union across sets that involve a single user who has posted to 100 different websites? I can't. Back to backfilling and denormalizing tons of data that also needs to be resident in RAM and kept in sync.

\---

I could add more, but I just realized that the linked talk probably spoke about the big sharded Postgres K/V type store that they built. Here's the thing: all of the core stuff (like from point 1) isn't stored in there. It's used when it can be, for scalability, but the majority of the app is still in a behemoth Postgres instance that is replicated many times over. As to why not use Redis for _that_ part? I'd say because it's memory only and because Disqus has Postgres expertise. Also, it's not truly "key value" because it still has indexes for say, datetimes or post_id or site_id which make doing a lot of non-relational queries handy without having to denormalize. Now, why not use Cassandra for that? Well, I would. :)

[1] [https://github.com/bretthoerner/blog/blob/master/2011/2/21/r...](https://github.com/bretthoerner/blog/blob/master/2011/2/21/redis- at-disqus.rst)

<comment><USER10> Ah, terrific response, thanks very much. :)

So when I said switch to Redis I meant to replace the 'big sharded Postgres K/V type store that they use' not the part where they actually use relational features of the database.

I'm always curios about the idea of scaling UP versus OUT -- like you mention, going from one Redis instance to two mucks up the waters. So why do it at all? (Maybe a year from now Redis Cluster will finally come out and solve this)

1TB of RAM is going to dip below five figures soon, I guess if you can't fit into that it is moot.

"If you realize a year into your Redis deployment that you want to be able to tell a user how many comments they made per month in the year... what do you do? In Postgres you hit the datetime column index and call it a day."

I would do bloom filters, but point _very_ well taken. No silver bullets. Thanks again for the reply.

<comment><USER2> Disqus wouldn't fit into 1TB of memory as a denormalized data set.

It doesnt even fit (indexed, at least) into 1TB of memory as a normalized data set.

At the scale we're at, you're required to make tradeoffs and come up with less than standard solutions to problems. Our solution, as many others have done before us, is to shard datasets (both Redis and SQL).

<comment><USER10> Congrats on the growth, that's a lot of comments! What I really want to know is how you guys solved being google bot friendly -- I have a fogy memory of a blog post or HN comment from around the time of the new version coming out that said there was something interesting that will be shared about that in the future.

<comment><USER2> All I can really say (not being on the Google side of things) is: iframes

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> What struck me instantly was the use of Slony. I haven't listened to the whole thing yet but I am interested in their justification. Perhaps they just haven't moved to 9.2 yet.

<comment><USER13> slony offers some compelling advantages over streaming replication - even on new databases we setup, we still like slony for several reasons:

* Version upgrades (streaming replication requires the same PG version between master/slave, slony does not)

* Logical replication gives us finer-grained control over how data is replicated across the cluster

* Ability to create additional indexes on slaves

slony isn't perfect and it has caused us some headaches, but its flexibility makes it our go-to replication tool for postgres.

</comment></comment><comment><USER14> Using django for a distributed commenting system?

Hammer and screws.

<comment><USER15> Just wondering (I'm not necessarially objecting to your statement):

* what would you see as the right they of app for Django, if not this? Obviously Django is handling it, so what's the issue?

* what is the right tool to build a distributed comment system?

<comment><USER14> What is a distributed commenting system? An HTML script tag to load a static file that will ping an api that will serve you comments.

What is django? A framework with strong routing, OR-mapping, templates and admin modules.

You need none to build it. Your main concern shouldn't be a coding framework, but load balancing, caching, failover control, more sysadmin stuff than code.

Any language could do. Framework? not needed.

Now, for the backend system to control that monster, then yes, you may use django.

So, use django for complex apps that need routing, data management and UI presentation, plus a powerful admin module.

* I am a python/django developer.

<comment><USER16> > What is a distributed commenting system? An HTML script tag to load a static > file that will ping an api that will serve you comments.

This is how Disqus works. Something still has to power the API that serves the data for it and we happen to like Django a lot so that's what we use. There are also a lot of parts of Disqus that are not the embed (moderation panel, account management, etc.)

<comment><USER14> Exactly, that's my point. Not meant to demerit your great work.

The admin/crud stuff, moderation panel, account management, etc, that's what django was developed for. Great choice.

If you ask me to start Disqus from scratch again, I'd probably use django too, for the admin part, but for the API I'd go commando, closer to the metal, without framework at all. No need to load a 100MB routing/modeling/templating monster just to perform an invisible API call.

Highly optimized plain python scripts would work better.

Sometimes frameworks are more like handcuffs. Just sometimes.

<comment><USER2> We have never ever used the Django admin, and I would choose Django any day of the week for a project that is web on the web and using a database.

(In fact almost every single project I've ever built has used Django, and there's never been a limiting factor of that choice)

</comment></comment></comment></comment></comment></comment><comment><USER17> Painful spam in the disqus comments at the bottom of that page. Don't they have something in place against this?

<comment><USER18> "+1"s are hardly spam, they're just low quality comments. If they filtered those, the web would be a very commentless place

<comment><USER19> +1

</comment></comment></comment><comment><USER20> Great watch.</comment>


Ask HN: What can I do about bad professors?  - <AUTHOR> I've taken classes with some pretty rotten teachers in the past, but a couple of my profs this term were especially awful. I want to know what I can do about it. I have no interest in being unfair or revengeful, but I do want something to change.
It's my job to take responsibility for getting what I want out of my classes, and while I think that's generally a solid policy, I also think it's reasonable to hold professors to a certain standard. It would be ideal to just avoid the bad ones, but there's often little selection or information.
I'd appreciate some advice on what I can do about it. What can I do during the term? What can I do to complain now that classes are over? I was thinking about writing a letter to the dean, but I have a suspicion that won't have any effect. Has anyone worked in the university system? Is there a best way to do this? <comment><USER2> Writing a letter to the dean will work because in academics all those professors secretly or not so secretly don't like each other. The dean is looking for help to deny tenure and raises. One letter won't do it, but if there is a pattern it is strong evidence. One thing, though is you probably want to have some strong evidence of wrongdoing. People who are struggling with the material usually complain "the professor just doesn't know how to teach." I wouldn't consider this as something that is report-able.

You should deal with bad professors by over-enrolling and then dropping the bad classes after a the first week or so.

<comment><USER3> > Writing a letter to the dean will work because in academics all those > professors secretly or not so secretly don't like each other.

-1. There are some haters out there, but I object vehemently to the use of the word "all". I don't have a single colleague whom I dislike.

</comment></comment><comment><USER4> Seek out opinions and seek agreement from classmates with direct experience.

Report individually but en masse. (Don't go together as a mob, but do all file individual reports. Less threatening, and it lets the administration independently collect and collaborate details from different individual.)

Don't threaten. Just state the facts, and try to remain collected, clear, and focused on a productive resolution.

Quietly put the word out for future classmates. Pay it forward by helping them to avoid being screwed. It's an imperfect marketplace, but eventually the school will find interest in "resolving" the situation with an instructor/professor that students actively avoid. In this latter step, avoid situations that can open you to personal liability, if the attendant risk to you is significant (e.g. online reporting sites). In this modern age, "word of mouth" can still be tremendously effective and verbal communication continues to be used to avoid a record that can work against the communicator (in this case, given your analysis is correct, a form of "whistleblower"?).

P.S. If there isn't widespread agreement and support among your classmates and associates, then it may be time to revisit your own assessment.

Akin to this, it shouldn't turn into a witch hunt. Give specific reasons if/when you advise other people to avoid an instructor; if your argument is primarily emotional, reassess.

</comment><comment><USER5> 1) If you want to try I think the best place to start would be to sit down and talk to the professor. I get the feeling that a personal talk is more likely to lead to a change than an email or something. There's a notable chance he reconsiders his ways. It might be kinda awkward, but if you really care, then that should outweigh the awkwardness.

2) You could also talk to (or email) some dean or administrator. Like others have said, they probably do kinda care, it's just that most of the complaints they get are bad. If you have intelligent things to say, they'll probably listen.

3) You could try to organize a bunch of students to complain, or to not take his class. This may be hard to organize, but would have a bigger effect.

\- From what I understand, having tenure doesn't mean that you can't fire a professor, just that you have to demonstrate in some sort of legal hearing that they aren't doing their job. So it really just makes firing bad professors more inconvenient. It's amazing how schools claim to care about providing students with a good education, and at the same time allow absolutely awful professors to continue to teach. At the very least accept them as sunk costs and find someone else to do a good job. It might be a good idea to politely mention to the dean/administrator that the inconvenience of firing a bad professor is less important than the benefit of providing future students with a better education.

\- Is it worth your time to do anything about it? The chances you have an impact might not be worth the time it'd take to try. Your time is valuable and I'm sure there's plenty of other stuff you could be doing. With that said, I'm sure it wouldn't take too long to set up a meeting or write an email.

</comment><comment><USER6> in my experience, there is not much you can do about it. You should try ratemyprofessor.com before taking a class. I decided not to take a particular class because the professor who taught did not have the approach I was looking for and he had bad reviews on the site. In retrospect, I think it was a good decision. I went against the advice this term and took a course where the adjunct had terrible reviews and I regret it greatly.

<comment><AUTHOR> What have you tried in the past that didn't work?

</comment></comment><comment><USER7> _"It's my job to take responsibility for getting what I want out of my classes, and while I think that's generally a solid policy..."_

You instead are looking for excuses. If you went on to say that you had one bad professor, and backed that up with some meaningful examples of how this person committed unconscionable sins of pedagogy and abused puppies and kittens, then perhaps, some venting might be understandable as an exception to a deeply practiced value of personal responsibility for your learning.

But when the bad professors are legion and the alleged offenses petty and trifling, the claim to virtue seems suspect.

To expect a professor to spend time twiddling their thumbs waiting for someone to drop by and complain that their grade was unfair and their life thereby ruined is a bit absurd. Office hours are times when appointments are available.

Out in the world of money, the answers aren't in the back of the book. When something is wrong a professional must figure it out, themselves. Learning how to struggle is important. Good professors take their students where they need to go. Some go with a smile. Others must be dragged.

</comment><comment><USER8> Most universities have a student representative council or some such body that represents students. You could submit your concerns to them. As @lutusp suggests you would need to be specific, the more specific the better in your submission.

Unfortunately the education system is going the way of corporations. Ever increasing prices and a constant chipping away at costs and thus reductions in quality.,

</comment><comment><USER9> I would say take to offensive. Its not the revenge I am talking about. Its the fact that its extremely important to not let those teachers ruin any more money and life/career (in some cases).

One possible path: Go talk to your college's administration (take evidences along like slides, etc.) and suggest your college to encourage this behavior among students.

An incompetent teacher has absolutely no rights to teach.

</comment><comment><USER3> I'm a professor in a math department. We have some pretty bad teachers. Every department does.

That said, "bad" is subjective. Here is my RateMyProfessors page:

<http://www.ratemyprofessors.com/ShowRatings.jsp?tid=1631570>

One complainer said of me that "He isn't able to understand and answer questions that students ask in class or in his office." Huh? I consider myself a good teacher and work hard to improve -- and at the same time, many students aren't happy and I'm not really sure what I might do about this. I suspect there is some mixture of cultural misunderstanding (I teach in the South, and am very much not a Southerner), bitterness that I ask my students to work hard, and probably some legitimate complaints which nevertheless students don't share with me.

Whatever excuses I might offer, I _did_ piss this student off, and I would like to understand how not to.

So I would advise you to do two things.

One, _talk to your professors_. E-mail them after grades are final, tell them you have some frustrations about the class, and ask them if they'd be willing to listen. They might surprise you. I, for one, don't get constructive criticism as often as I could probably use it. If your professors take you seriously, then you've accomplished your purpose.

If not, yes, by all means, write the dean, write the department chair, write anybody. Understand on one hand that it is their job to listen and they will probably be quite willing to listen, and on the other that even the best professors garner complaints, especially from lazy students. If you respect their natural skepticism, and make your points calmly, politely, and with evidence, I think you will find them willing to listen.

And BTW, I second everything dmlorenzetti said.

<comment><AUTHOR> Thank you! Again, this makes sense to me.

I have emailed one of them before and said I was frustrated with him. I was quite respectful and careful not to offend. I got back a couple lines that conceded nothing and basically said that what I thought didn't matter.

Whatever, I'm happy to try again, I think it's a good idea. If he doesn't take me seriously then that's something I can tell the dean. If he does, no problems.

</comment></comment><comment><USER10> > What can I do about bad professors?

You haven't provided a critical piece of information -- what you think constitutes "bad". Without this information, any advice must be based on guesswork.

Does "bad" mean ignorant of the topic they're teaching, or unskilled in teaching, or unwilling to communicate clearly, or what?

<comment><AUTHOR> There were two, and they were 'bad' in different ways. Neither had any talent for teaching, both were unwilling to lift a finger to help outside of class. One was a typical powerpoint jockey, and consistently had incorrect statements on his slides. Anything from popular misquotes (Bill Gates saying no one will need more than 64 mb of memory) to downright misinformation. Brutal grammatical errors and typos in EVERYTHING he wrote. Gee, it's almost like he didn't care. Though it's less relevant, I found both obnoxiously holier-than- thou; very much the condescending academics.

Anyway, I just want to know where to direct my complaint. What's the most effective way to be heard?

<comment><USER3> > both were unwilling to lift a finger to help outside of class.

> I found both obnoxiously holier-than-thou; very much the condescending > academics.

I'm not saying you're wrong, but I would urge you to be slower to judgement.

I have developed at least a little bit of a reputation for being unapproachable and reluctant to help students. Which I find very unfortunate, because I am quite happy to help students and indeed wish more would seek help.

In my case I suspect there are two factors at work.

(1) I am always annoyed for an instant when I'm interrupted from my other work. I do my best to recover and welcome the student warmly, but people pick up on my very first reaction, and that's not the part I can change readily.

(2) I am teaching in the South, which is culturally unfamiliar. It is considered polite to chitchat about the weather or whatever before getting down to business, but I can never think of anything to say about the weather and typically ask students what's on their mind right away. Unfortunately, this probably makes a few people uneasy.

In short, there is probably another side to this story. If you endeavor to understand it, you will have enormously more leverage if and when you complain.

<comment><AUTHOR> Gotchya

</comment></comment></comment></comment><comment><USER11> Doesn't your university have an online/anonymous course evaluation system? If it does, fill it out! If it doesn't, every university should have one. No one will give a shit if you're just complaining to be a bitch, but if there are serious problems to be found and you're not a single data point, they will take action, whether it be they remove him from teaching the class or otherwise. Sometimes action will be taken and you won't know about it. The best you can do is make sure you back up everything you say with intellectual comments and actual facts. No one will do anything about a bitter student who didn't get the A he desperately wanted but didn't deserve.

</comment><comment><USER12> You might be able to change your grade, but you won't be able to move the professor. The professor has at least one of the following:

1\. Tenure.

2\. Credentials not easily replaced.

3\. A lawsuit against the school with threat of more (this was the case with my worst professor in college.)

You will want to talk to the department chair, and then the student dean or ombudsman, then the provost or president. They will all have heard it before, and they may be able to guide you through a specific dispute, but none of them will bad-mouth the professor in front of you, a student.

</comment><comment><USER13> In undergrad, I had the worst teacher I've ever had in my life. No apparent sense of how to convey the material, no apparent viewpoint beyond that he was paid to administer tests and to grade them.

In addition to being a bad teacher, he was a jerk. He took great delight in the fact that he failed 30-50% of his class every year (as he gleefully announced first day of class, "I've seen most of you before, and I'll see most of you again"). He assigned problem sets, but just assigned a grade, so you couldn't figure out what you had done wrong. He was famous for turning his office light off during supposed office hours, not answering your knock, and then skulking out when he thought you had left. He once took points off an exam because I switched from pen to pencil to do a side-derivation of an integral.

And now we come to my point. There was no point in doing anything about it. The powers that be knew he was a terrible teacher. How could they not? Other teachers would openly joke about it, or listen with knowing smiles if you told one on "Rusty". For whatever reason-- probably tenure-- he was allowed to stay. Or maybe they liked the fact that somebody was doing the hard job of winnowing out each incoming freshman class to a more manageable size by junior year.

But since it was widely understood he was a terrible teacher, it didn't really matter. Nobody cared if you flunked his class two or three times before making it through. And there was a great instant camaraderie to be found with fellow- students across all the years, just swapping stories about "Rusty".

And you know, a few years later, after I was able to let go of my anger about it, it at least turned into some good stories. Five years on, it didn't matter to me, anymore. And 30 years on, my only regret is that I didn't learn the material better.

In the big picture, you might think about it this way. You go to college to prepare for your future. An obvious part of that is mastering the class material. But part of it is learning to encounter people who are terrible at what they do, figuring out how to step around them, and figuring out whether you have any power to move them out of the way for other people.

To be more specific, I would start by having an off-the-record conversation with another professor you trust and like (if there aren't any, then either you're in the wrong place, or you're doing it wrong). Try to get a sense whether there's a broad understanding among the faculty that the malefactor is a bad teacher. If there is, but it's accepted, then just give up. But if there's some process under way, you may be given the name of a particular person to whom you should speak-- somebody may be developing a case against him, and ask you for specific information.

Oh yes, and a lot of universities have an ombudsperson, who is there to help students navigate the administration. That person generally should be isolated, organizationally, from the teachers, so that you don't have to worry about confidences being revealed, or personal politics coming into play.

Good luck!

<comment><USER14> > For whatever reason-- probably tenure-- he was allowed to stay.

I attended a very good university (by various rankings), and even there were a few terrible lecturers.

They are allowed to stay not because of tenure (they could stop lecturing and do research instead) or departmental indifference (the board of studies takes feedback seriously, and sometimes does "fire" lecturers from teaching particular classes). The reason is instead that there is nobody else to replace them.

The great professors teach a class in their specialty which they are most knowledgeable and enthusiastic about. But after that, there are many small undergraduate classes left over, which nobody wants to teach, but someone has to. Given that the other option would be to throw the class out of the syllabus, bad lecturers still stay as teachers.

One of the deeper reasons is that grant funding and academic careers depend only on the number of articles published. Being a good teacher (or teaching at all) is only a "distraction" done out of good-will or enthusiasm for the topic.

</comment></comment><comment><USER15> do they have tenure?

<comment><AUTHOR> One does, the other doesn't.

<comment><USER16> The trick is to get them when they're on academic probation. My school had the "4 horsemen of the math department" and overall their GPA averages tended to be in the "square root club" (sqrt of the GPA is higher than the actual GPA). However, when they were on academic probation it was all A's and B's.

Through a combination of dropped classes, complaints, and bad course surveys, the school eventually picked up that these guys were horrible.

<comment><USER11> haha, only at tech.</comment></comment></comment></comment>


Never use the company's name in your naming convention - <AUTHOR> http://www.itistrivial.com/2011/07/never-use-companys-name-in-your-naming.html

<comment><USER2> I think the more appropriate advice is don't hard code strings anywhere in your source. Sometimes using such strings is unavoidable and the most practical thing to do (e.g bundle IDs in iOS apps). But if you have to use such strings, define them ONCE in one header file, plist file, or similar and use the reference everywhere else. I've used this successfully through several ownership changes of several apps across several platforms, and always found it to be a minimal, trivial problem - as long as the strings are cleanly #defined in one place.

</comment><comment><USER3> The Java naming convention is one of the best things introduced with it, neatly preventing package collisions with the creative misuse of DNS. If you fear your company will change, invent an internal convention. For anything you intend to release outside (and want to exist beyond the borders of your company) you should acquire a domain for it.

Having said that, I always smile inside, thinking of black magnesium cubes, when I extend NSObject...

<comment><AUTHOR> Good point about external api, thank you</comment></comment>


The MSRD3X40 patch debacle - <AUTHOR> https://blog.0patch.com/2018/10/patching-re-patching-and-meta-patching.html <comment><AUTHOR> If you don't use old Jet 2.x/3.x databases, there is probably a way to disable MSRD2X40/MSRD3X40 via the registry.</comment>


Sweden's Internet Broken by DNS Mistake - <AUTHOR> http://royal.pingdom.com/2009/10/13/sweden%25E2%2580%2599s-internet-broken-by-dns-mistake/

<comment><USER2> See the løveli lakes, then.

</comment><comment><USER3> [http://www.kurtis.pp.se/blog/2009/10/crisis_information_in_t...](http://www.kurtis.pp.se/blog/2009/10/crisis_information_in_the_mode.html)

More information from the CEO of Autonomica, the organisation that runs some (all?) of the .se infrastructure.

<comment><USER4> Autonomica == Netnod, which runs most of Sweden's Internet infrastructure as well as i.root-servers.net (one of the 13 root DNS servers).

</comment></comment><comment><USER5> The Internet still worked, however domain names didn't. You can use the IP addresses directly still, ja? Also, alternative DNS servers could be used still, no?

</comment><comment><USER6> I certainly hope there's a more robust process for ".com".</comment>


Dark Patterns are designed to trick you (and they're all over the Web) - <AUTHOR> http://arstechnica.co.uk/security/2016/07/dark-patterns-what-are-they/ <comment><USER2> Recent discussion: [https://news.ycombinator.com/item?id=12180072](https://news.ycombinator.com/item?id=12180072)

<comment><AUTHOR> Huh, missed that and 'past' didn't show anything up. Thanks.

<comment><USER2> The 'past' link uses Algolia and Algolia runs on its servers on its own metal for performance. For the same reason, Algolia distributes its servers and data. I suspect that Hacker News is tuned toward availability over consistency in regard to search, I mean a dupe probably isn't the end of the world.

By which I mean that a dupe isn't the end of the world.</comment></comment></comment>


The Tech Industry's Psychological War on Kids - <AUTHOR> https://medium.com/s/story/the-tech-industrys-psychological-war-on-kids-c452870464ce <comment><USER2> > "We called the police because she wrecked her room and hit her mom… all > because we took her phone," Kelly's father explained. He said that when the > police arrived that evening, Kelly was distraught and told an officer that > she wanted to kill herself. So an ambulance was called, and the 15-year-old > was strapped to a gurney, taken to a psychiatric hospital, and monitored for > safety before being released. Days after being hospitalized, Kelly was > brought to my office by her parents who wanted to get help for their > troubled girl.

For whatever reason I'm leaning less towards "Evil Tech Executive Boogeyman" and more towards "Bad/Negligent Parenting."</comment>


Ask HN: Not getting Jobs, Should I switch Technology? - <AUTHOR> I am very good developer in my technology. For Past 2 months I am trying to switch the Jobs but I am not getting enough Calls from recuiters. The market of my current technology seems to stagnant.
Most of my company friends working in frontend are able to switch in good companies and easily. Should I start learning frontend my own. I have no production experience in the frontend. But I know some of JS and react.
Should I start looking job in my current technology or start leaning frontend technologies? I am very depressed for the same reason. Please give some advice
Thanks <comment><USER2> Your technical skills are not your only skills. You have problems solving skills, learning skills, and so on. You don't have to necessarily know a technology to get a job using it, you just need to convince the company that you can pick it up quickly.

If you build a 1-week frontend project and say "I know React!" that's unconvincing. If you say "I can learn new tech quickly, here's a thing I built after having just learned React, and at my last job I did X quickly with Y"... that's more convincing.

More here: [https://codewithoutrules.com/2017/07/16/which-programming- sk...](https://codewithoutrules.com/2017/07/16/which-programming-skills-are- in-demand/)

<comment><AUTHOR> Thanks a lot for the suggestion. It is very easy to say companies just need problem-solving and should not look for technologies. It might be right for freshers.

But current in situation and interviews are totally different.

1) After some experience companies expectation changes and they want you to be proficient in the requirement they have else they hire some other guy who might have experience in that area.

2) After some experience, it gets hard to find jobs. I am getting good salary in my current job but do not know how switch the job as my company is very unstable and might get bankrupt in few months.

I might be wrong but its my opinion. I do not know how to get out of this trap and switch technologies. Any help would be appreciated.

<comment><USER2> I just got a job with a technology stack I knew very little of (scientific computing and image processing). It's definitely possible.

I'm not saying companies don't want people to know specific technologies, nor am I saying you shouldn't learn them. Just that most programmers undervalue a whole bunch of skills that companies actually do need... and if you present yourself right the company will say "oh huh that sounds useful" even if they didn't think about in the first place.

Good template: "I identified problem X, solved it with technology Z, and saved the company Y money/year". Demonstrates not just doing what you're told, but a specific skill (identifying problems) and resulting consequences.

Another good template: "I identified problem X, investigated, chose technology X, with result Y." Demonstrates you're a quick learner, identify problems, not limited to current tech stack.

</comment></comment></comment><comment><USER3> I would definitely recommend that you give new technologies a try but not for sole reason of getting a job. Build something that you might find useful and do it for the pleasure of learning.

You can share your experience through a blog and who knows it might even end up on the first page HN.

Also don't forget to get some exercise to get your spirits up!</comment>