* Cookies for the root domain get sent to all subdomains, so a subdomain for static content still gets flooded with cookies, slowing down requests. Now subdomains will get cookies you may not want them getting, complicating site design. You can end up sending dozens of kilobytes of cookies with each request due to the www-less cookies. The way around this is buying whole new domain names just for static content, and then duplicating SSL and all the other requirements for this new domain. Or hoping RFC 2965/6265 won't break anything using your site.
* There is a security boost by the same-origin not allowing a subdomain to hijack cookies for the root domain ("forums.foobar.com" could be made to set a cookie that "foobar.com" interprets, which can be used to hijack user sessions; this would not happen on www). This problem affected Github and they had to implement complicated workarounds.
* It is easier and more flexible to configure a round robin of frontend hosts with a CNAME (on www) than by A records on the root domain. If your cloud hosting provider's IP changes, they can change their hostname records without needing to modify your DNS records - less work for you and them. And if you think a single static anycast address could never have a routing problem, think again.
* Google will (or did in the past) ding you for duplicate content. The same content on foobar.com/ and www.foobar.com/ will appear as duplicate. Providing the content only on www separates it from other content and makes it easier to search subdomain-specific content. (This won't happen if one of them is 301 redirected to the other, however)
Reasons not to use www:
* "It looks cleaner."
People, you can 301 redirect your www-less site to www, gain all the advantages of using www, and the only "hassle" will be in how the address bar looks.
When I graduated college, I spent 3 months as a programmer with my econ friend trying to build exactly this. I started off creating a system to paper trade stocks retroactively. So you imagine you go back in time and pretend it's January 1st, 1982 then have an algorithm look at the stocks then, then move it a day forward, and let it trade for the past 40 years and see how it does.
We tried linear models, SVMs, neural networks, RNNs, ensembles, genetic algorithms, anything with stock data, news sentiment data, classic quant structures, and everything in-between. Basically, 3 solid months of coding before I started working.
Anyway, I found out a lot of stuff the hard way, because I didn't have an econ degree.
First off, you try enough methods, you end up p hacking or hill climbing the past anyway, and it's no good.
Second off, historical clean data is hard to get. It may or may not have splits in it or other things, so you may inadvertantly supply information from the future when playing back from the past. It's hard to get this right.
Third off, for many of the models we used, they were almost always competitive in the 80s (even a linear regression), but in the oughts or 2010's, they stopped being competitive. We thought computer based trading was becoming more competitive in hedge funds.
Fourth, simple models tended to work better. So for instance we may have trained the model on data from 70s-80s, then starting in the 80s, we did online (continuous) training as we moved the model forward in time. There's just not enough data. You can train on all historical stocks or all stocks or related data streams in the industry up to that point, but I think we probably didn't have enough data and the market is competitive.
Fifth, I wish I read a Random Walk Down Wall Street earlier, or all of Taleb's stuff. These are books that have deep mistrust of quants.
Sixth, I think to be competitive, you need to have money in the game, many heuristics, and industry experience. Big firms have this and equipment, but it's hard to get in as an individual.
Seventh, I put several hundred hours into this project and learned a bunch about machine learning and economics. In every way I loved the experience, and I'd encourage you to try it. Probably I'm a n00b here, but I hope some of my notes can help you.
Blis M18 and K12 strains. There are many brands using these. I prefer pills straight from Blis or Life Extension.
If your mouth has an unhealthy microbiome, you might need to place a lot of emphasis on killing bad bacteria initially. For this purpose, salt water or mild antibiotics (chlorhexidine) for 2 weeks combined with double dose of probiotics should do the trick.
Obviously, sugars feed bad bacteria, which metabolize it into acids to erode your enamel. Avoid entirely.
This is a good question. We did, and they are very different databases.
CRDB:
Pros: natively distributed so HA and scalability are built-in, simple deployment and configuration, can run on Kubernetes for automated HA operations. Scaling tables is automatic and single-key and small-range OLTP performance is very good. Supports JSON and most data types for compatibility with most things that use Postgres.
Cons: Still maturing and has bugs like `select unnest(some_array_col)` not working. Obviously cant run any Postgres extensions so SQL w/JSON is all you get. Performance on large scans is slow, they're working on this but the distributed consensus required for queries means they will never match the latency of a single-node Postgres. Advanced queries are either very slow or unsupported or every slow.
CITUS:
Pros: pure Postgres including extensions so you have access to advanced functionality. If you use shard key for queries, lack of distributed consensus gives low-latency performance just like single-node, but distributed transactions are still possible. Citus scales queries across all CPUs (on nodes holding the accessed data) so greatly improves query performance.
Cons: only distributes data in "distributed" tables (sharded) or "reference" tables (full replicas on all nodes). All other data just sits on single master node. HA uses Postgres streaming replication, requiring an inefficient 2x increase in costs, and is not seamless with failovers. Generally requires much more maintenance because it is still Postgres. Sharding does not accept multiple columns. No columnstores so large scans can still be slow, but they have ZFS in beta.
--
Summary:
CRDB for simpler OLTP with very low ops overhead and great availability, scaling, and durability.
Citus for advanced OLTP or OLAP, low-latency sharded access, and full access to all Postgres features.
Vitess is a software suite that runs outside of MySQL while Citus runs within Postgres as an extension, so Vitess as more moving parts, but it also is better at handling more connections which has been a continual problem with PG in general.
Vitess supports more complicated sharding management (and requires more configuration) while Citus is simpler and lets you use all the flexibility of Postgres. Vitess has a more streamlined installation process (especially with Kubernetes) while Citus leaves it up to you to install the Postgres nodes.
Also note TiDB for a natively scalable MySQL-compatible database and CockroachDB for Postgres-compatible version.
Anti-aging is a hard problem, Rapamycin is most certainly not the most powerful anti-aging drug from my best understanding, it just targets 1 of 7 or 8 critical areas that are implicated in the aging formula.
If you want to start down the rabbithole (SENS talks can be trusted and are good, well-backed by science, etc etc. Have been derailed by some drama recently, but still, they've really done a lot) then you can start by going to the rejuvenation roadmap: https://www.lifespan.io/road-maps/the-rejuvenation-roadmap/
If you want to lose 4-5+ hours (minimum -- think TVTropes level of rabbithole addiction here), then here is your next free joyride. It's a fun one, I've been pretty interested in it as it's continued to have developed. Have fun reading the saga: https://www.reddit.com/r/sleephackers/comments/ohfetn/turnbu...
The community reflects the larger society, which is divided on social issues. Don't forget that users come from many countries and regions. That's a hidden source of conflict, because people frequently misinterpret a conventional comment coming from a different region for an extreme comment coming from nearby.
The biggest factor, though, is that HN is a non-siloed site (https://hn.algolia.com/?dateRange=all&page=0&prefix=true&sor...), meaning that everyone is in everyone's presence. This is uncommon in internet communities and it leads to a lot of misunderstanding.
(Edit: I mean internet communities of HN's size and scope, or larger. The problems are different at smaller size or narrower scope, but those aren't the problems we have.)
People on opposite sides of political/ideological/cultural/national divides tend to self-segregate on the internet, exchanging support with like-minded peers. When they get into conflicts with opponents, it's usually in a context where conflict is expected, e.g. a disagreeable tweet that one of their friends has already responded to. The HN community isn't like that—here we're all in the same boat, whether we like it or not. People frequently experience unwelcome shocks when they realize that other HN users—probably a lot of other users, if the topic is divisive—hold views hostile to their own. Suddenly a person whose views on (say) C++ you might enjoy reading and find knowledgeable, turns out to be a foe about something else—something more important.
This shock is in a way traumatic, if one can speak of trauma on the internet. Many readers bond with HN, come here every day and feel like it's 'their' community—their home, almost—and suddenly it turns out that their home has been invaded by hostile forces, spewing rhetoric that they're mostly insulated from in other places in their life. If they try to reply and defend the home front, they get nasty, forceful pushback that can be just as intelligent as the technical discussions, but now it feels like that intelligence is being used for evil. I know that sounds dramatic, but this really is how it feels, and it's a shock. We get emails from users who have been wounded by this and basically want to cry out: why is HN not what I thought it was?
Different internet communities grow from different initial conditions. Each one replicates in self-similar ways as it grows—Reddit factored into subreddits, Twitter and Facebook have their social graphs, and so on. HN's initial condition was to be a single community that is the same for everybody. That has its wonderful side and its horrible side. The horrible side is that there's no escaping each other: when it comes to divisive topics, we're a bunch of scorpions trapped in a single bottle.
This "non-siloed" nature of HN causes a deep misunderstanding. Because of the shock I mentioned—the shock of discovering that your neighbor is an enemy, someone whose views are hostile when you thought you were surrounded by peers—it can feel like HN is a worse community than the others. When I read what people write about HN on other sites, I frequently encounter narration of this experience. It isn't always framed that way, but if you understand the dynamic you will recognize it unmistakeably, and this is one key to understanding what people say about HN. If you read the profile the New Yorker published about HN last year, you'll find the author's own shock experience of HN encoded into that article. It's something of a miracle of openness and intelligence that she was able to get past that—the shock experience is that bad.
But this is a misunderstanding—it misses a more important truth. The remarkable thing about HN, when it comes to social issues, is not that ugly and offensive comments appear here, though they certainly do. Rather, it's that we're all able to stay in one room without destroying it. Because no other site is even trying to do this, HN seems unusually conflictual, when in reality it's unusually coexistent. Every other place broke into fragments long ago and would never dream of putting everyone together [1].
It's easy to miss, but the important thing about HN is that it remains a single community—one which somehow has managed to withstand the forces that blow the rest of the internet apart. I think that is a genuine social achievement. The conflicts are inevitable—they govern the internet. Just look at how people talk about, and to, each other on Twitter: it's vicious and emotionally violent. I spend my days on HN, and when I look into arguments on Twitter I feel sucker-punched and have to remember to breathe. What's not inevitable is people staying in the same room and somehow still managing to relate to each other, however partially. That actually happens on HN—probably because the site is focused on having other interesting things to talk about.
Unfortunately this social achievement of the HN community, that we manage to coexist in one room and still function despite vehemently disagreeing, ends up feeling like the opposite. Internet users are so unused to being in one big space together that we don't even notice when we are, and so it feels like the orange site sucks.
I'd like to reflect a more accurate picture of this community back to itself. What's actually happening on HN is the opposite of how it feels: what's happening is a rare opportunity to work out how to coexist despite divisions. Other places on the internet don't offer that opportunity because the silos prevent it. On HN we have no silos, so the only options are to modulate the pressure or explode.
HN, fractious and frustrating as it is, turns out to be an experiment in the practice of peace. The word 'peace' may sound like John Lennon's 'Imagine', but in reality peace is uncomfortable. Peace is managing to coexist despite provocation. It is the ability to bear the unpleasant manifestations of others, including on the internet. Peace is not so far from war. Because a non-siloed community brings warring parties together, it gives us an opportunity to become different.
I know it sounds strange and is grandiose to say, but if the above is true, then HN is a step closer to real peace than elsewhere on the internet that I'm aware of—which is the very thing that can make it seem like the opposite. The task facing this community is to move further into coexistence. Becoming conscious of this dynamic is probably a key, which is why I say it's time to reflect a more accurate picture of the HN community back to itself.
[1] Is there another internet community of HN's size (millions of users, 10-20k posts a day), where divisive topics routinely appear, that has managed to stay one whole community instead of ripping itself apart? If so, I'd love to know about it.
This pathetic point always gets brought up when talking about China's IP theft, but it should be telling that it is literally one individual from 200+ years ago who is always mentioned.
What did he do? He worked in a factory and memorized details about the machines, and then went to America and rebuilt them.
Is that what Chinese companies are doing? Do they get someone hired at the company, who then memorizes things, and then goes back to China and rebuilds them?
No one would care if China was operating the way Slater operated. That is common even with Americans moving from one American company to another. What is not common is directly stealing designs and schematics and billions of bits of other information through nefarious means, by breaching a company's cyber security or infiltrating their supply line.
Colleges live and die by who they admit. The elite admission process is designed to give them the largest selection pool possible and total control over who gets in out of it. They hold all cards and will never give that up.
There are great advantages to this. If you need 5 viola players one year. You can take 5 viola players. No sweat. Those five kids will never find out that's why they got in, but that might have been the case. Certainly, these are awesome kids. But in a pool of 12,000 awesome kids, sometimes the viola swings the committee's vote.
If you need some kids from Western Michigan, you can take some kids from Western Michigan. Maybe there's a donor there. Or an influential alum who's mad that no one from that part of the state has been admitted in years. Who knows? These kids are jokingly called "area adds." Again, these are great kids. But their point of origin and perspective on it might just be the thing that swings the vote in a sea of 12,000 awesome kids. I'm fairly certain that's why I was admitted and I only think this because I spent two years admitting thousands of kids. I was a strong applicant able to talk interestingly about my origins. My grades and scores sure didn't show the firepower that the kids out east had, but they've gotta take someone from podunk Michigan now and then.
The top colleges are skeptical of all the standardized tests and most of the high school curriculums. This is both because of arrogance but also because they have data that the public doesn't. Every year we'd get a very sophisticated, confidential briefing from the folks at one of the big companies that showed the latest trends in their data. This was always somewhat shocking and fascinating, too. I can't say much about it other than this: the kids you think would do well on the tests do incredibly well. The kids you think will do badly, do very, very badly. Across the board. Everywhere. No matter what.
The things that I couldn't handle, personally, were the minority admissions and the elite prep school admissions. This is not because anything particularly underhanded or amoral or unethical was happening, but because the debates and arguments about how these cases should be handled simply required intellectual bandwidth that I didn't have. I couldn't plot a course that would carry me through how to deal with these kids and didn't much feel like making the effort it seemed I'd have to make to do so. There were times when it just seemed so unfair to admit a student with crummy grades and crummy test scores (relative to our applicant pool) because of her racial background. But there were other times when I was so impressed by other qualities in a student's application that I fought for them harder than anyone.
I visited some scary high schools in Philadelphia one year and met a kid who'd been corresponding with the foremost authority on Bram Stoker's Dracula via e-mail, on his own. I told him I wrote my senior thesis about the novel and his face lit up. I think mine did a bit, too. It's not often you get to talk about your specialty with someone else.
This was an African American student at an inner city school. All the teachers had been telling me all day that he was "the one" I needed to talk to, because it was so ridiculously apparent to them that he was sincerely, legitimately, maybe desperately trying to transcend his circumstances. And now he's able to talk about the plot structure of Dracula with someone.
Sure enough, his credentials were average for the applicant pool, but he was as easy a case as any. To speak to the audience here, he was hacking his social circumstances and we were interested in that.
So yes, it's very byzantine. It's a mess. You'd read applications for 7 days a week for 4 months all winter, annotating them, scribbling in the margins, knowing that very, very few of these kids were getting in.
Then you block out a whole month of sitting around a table eating catered food, sweeping across whole states worth of applicants in 15-hour days, debating, discussing, arguing, fighting over kid after kid after kid in committees of 5-6 people. I always enjoyed that part, but we had one officer who would cry at some point almost every day during committee. She believed we were slamming the door on a lot of these kids.
Personally, I believe they'll do fine wherever they end up if they/re as good as they say are. It'd be great to dump a bunch of resources on them so they can live "the life" for 4 years, but you can't celebrate every kid.
P.S. While I've got the floor and your ears about college admissions, I run the web's only independent directory of College Admissions Consultants at http://CollegeConsultantReviews.com. I created this many moons ago and there's a lot of interest in it from consultants who find it appearing for searches for their names. I think there's a business in there somewhere but don't have the time or technical skills to build the killer directory site that would be needed. Hit me up if you're interested.
>1) Believe prices constantly rising is good for poor people.
Inflation isn't meant to cause rising prices. It's a shitty approximation for negative interest rates. What inflation is doing is letting money rust so that it is flexible enough to represent the real world. Logically speaking income earned in 2010 should be losing value because of the opportunity cost of not employing people. Imagine an economy with two people and you decide to spend your money ten years later. The other party has to spend 10 years unemployed. Even though you lost 10 years of potential employment you still insist that your money from 10 years ago is still worth the same amount. Inflation adds enough flexibility to represent this loss and makes the holder of money realize the loss in the real economy, which encourages him to minimize the loss in the real world. With deflation you deny its existence by making the money system rigid and incapable of representing this potential state of the economy.
Say's law postulates that aggregate demand and supply are always in balance in a barter economy. Money as an intermediary allows short term mismatch between the two and deflation allows an almost permanent mismatch. Since inflation erodes past income any surplus is eroded which encourages people to utilize their surplus and let aggregate supply and demand match again.
>2) Advocate that governments can spend potentially an infinite amount without consequences because they control a printing press. And looking at the actions of, e.g. the US government, it is easy to suspect that the people who understand the nuance there aren't the ones in control of the money supply.
Maybe you like to think that other people think like that but reality is quite boring. What people have recognized is that the real world matters, not the financial world. If you see an unemployed person you can hire that person and at the end of the day customers are happy because that person provided goods and services and the worker is happy because he got paid. If granting credit and promising debt lets that person work, then it's better than trusting on some financial bean counter that tells you that employing people and providing goods and services is bad for the economy.
Literally every shoe that I have bought in the past 10 years has been made in the USA: Allen Edmonds dress shoes, Red Wing (Heritage series) work boots, New Balance (USA 990 series) running shoes, Rainbow (USA series) flip-flops.
These are all high quality, well made, durable products that cover all my needs and are a better value for me than cheap imported products.
When I was very young, I remember feeling trapped in life. It wasn't a particularly terrible life, but not a particularly great one either. There were times when I just didn't want it. As I got older, I spent a lot of time mildly depressed. There were expectations I couldn't live up to, it seemed my family wanted me to be perfect, and the repercussions for not being so were pretty emotionally damaging. Somehow I internalized this expectation, and it only worsened all of it. There were a lot of things that I didn't know how to do well: make close friends, talk to girls, ask for help. A lot of this was probably BS at first, and in retrospect everyone went through it. I know that for me there was a weird feedback loop tho, reinforced by craziness in my family, where they would push away my friends, and would ridicule me for needing help.
Anyway, all that led to this scenario where I felt even more alone an trapped. As others were working through this stuff, I couldn't figure out how to even start going with it. I wasn't a "forever alone" kind of guy, I stuttered through this stuff, but not in a particularly meaningful way. Not existing sounded amazing. I contemplated it off and on. At one point I had a serious sit-down with myself about the topic of suicide. I went over the pros, the cons, ways to do it, the consequences to others and so on. I decided, this was an option. I also realized, I only get to choose it once.
I found this realization very comforting.
Ever since, I have been slightly annoyed at the "suicide is not the answer" stuff I read. I get pissed at the people who deride it. I hate the people who talk about it as not an option. It is an option, but a pretty drastic one. (Raganwald: I like your stuff usually, but your blog post kind of annoyed me, even tho it's not terrible advice... it just doesn't work for me - nothing personal)
Since this realization, I have gone through some pretty down times. As I mention above, I'm a bit socially/emotionally challenged, and sometimes I just feel like I'm getting nowhere in the world of people. I see them over there doing their thing, and I just don't understand how it works. I occasionally even see them not as people, but the same way I would see a group of dogs or other animals interacting -- I notice their behaviours, I try to figure out WTF it is all about, but I just can't relate. This really bothers me when it happens. Other times I get really down over messing up with people, or not being a top 50 programmer, or not being 4 hr marathoner, or whatever else my perfectionism is going on about. In all these cases, if it's bad enough, I get this thought:
"You can just give up. You can stop existing."
I don't shy away from it, I don't push it down, that seems to make it worse. I'm not scared of it, I welcome it. Like I said above, it is a comforting thought to me. It reminds me I have some power in the world, no matter how fucked up things are at the moment. Afterwards, the next thought comes:
"You only get to do this once. Is this the time?"
And I get to decide if it makes sense. And I only need to decide for today. Do I want to do this today? Sure things are fucked up, but I sure would exit in a pretty shitty situation: things undone, house a mess, porn not properly deleted from the computer, finances not in order, etc. So I won't do it today. Maybe I'll start getting ready to do it. Tomorrow I can decide again.
Sometimes this goes on for a day. Sometimes it goes on for a week. But the very act of contemplating it seems to have a healing power for me. Now that I know I can at least do this, and I'm going to do it right, it reminds me that I can maybe do stuff. Getting ready for it, reminds me more that maybe I'm not so trapped, and there is a path forward, paradoxically getting me to the point where I usually put aside the silliness after a while, with a freshly organized set of life surroundings. Sometimes it's more than a while, but for me, this works.
I'm putting this out here, for the people who are contemplating suicide, and somehow reading these comments. Contemplate away, I won't begrudge you that. I'd like to remind you that this is a one-time deal tho, so if you're going to do it, make sure this is the right answer for you. If you are unsure, wait a while, see what else you can do also - the option doesn't go away, in fact this basic option is the greatest power you have, don't squander it.
Also: after this article leaves the front page, I'm going to delete this post, because while I think it is important, I don't know that having these words public for posterity is a wise decision.
Another thing Tik Tok does is get rid of people who are obese, queer, or otherwise the target of harassment. Their stance is it's easier to get rid of the person being made fun of or limit who can see their videos rather than the 10k people harassing them.
> According to Netzpolitik, the social media company instructed moderators to find users who are “susceptible to harassment or cyberbullying based on their physical or mental condition.” These creators would then be marked with a “Risk 4” designation, meaning their videos would only be available to view in the country where it was uploaded. Company documents obtained by Netzpolitik explain TikTok’s reasoning for the ban, pointing to the fact that “bullying has been proven to cause severe emotional and physical distress, especially in minors.”
> TikTok also kept a separate list of “special users” who were considered to be “particularly vulnerable.” Many of the creators on this list, Netzpolitik discovered, made videos with the hashtags #fatwoman or #disabled, or had rainbow flags and other LGBTQ+ markers in their profile. TikTok moderators marked these creators with an “Auto R,” which meant that their videos, after hitting a certain amount of views, would be banned from TikTok’s algorithm of suggested videos that appear in every user’s “For You” feed. As a result, these creators’s videos would reach a much smaller audience than the average user. For many, dreams of going “TikTok viral” and gaining notability on the platform would be squashed by the policies.
> Social video network TikTok apparently limited the reach of people with disabilities, including facial disfigurement and Down syndrome. According to Netzpolitik.org, which spoke with a source inside the company, the policy was supposed to protect users with a high risk of bullying. In practice, however, it apparently amounted to discrimination — and the problem was compounded by moderators who needed to make snap decisions about users’ physical and mental traits.
> Like that paradox for self-help groups: anyone in the forum who was actually successful in self-help wouldn't be on the forum anymore.
This is exactly the view of Canadian woman "Alana" who initially coined the respectful, non-perjorative term "incel" as part of a self help group for people who had reached college+ age but, for one reason or another, not entered the dating world. They were not "losers" or "virgins"; they were "involuntarily celibate".
The term started off as "invcel" (for Alana's Involuntary Celibacy Project) but was shortened to "incel" for aesthetic reasons. She was a closted, queer, academic, socially-awkward woman who eventually made the transition from "awkwardly not dating, to awkwardly dating", and having made that transition, identified with others who had not, and wanted to help others still in that situation. It wasn't until later that the whole thing got taken over by weird misogynist extremists.
Alana says the big mistake she made, back when she started a movement in her 20s, was that she overlooked what she now calls the "student government problem": You can’t build a movement of people whose whole reason for joining the movement is to leave it. It’s not just that the people who find love then go disappear. It’s that you don’t get to have what every other movement takes for granted — the old guard.
Instead, the people who stayed in Incel were the ones who got stuck — the people who felt the most bitter, the most abandoned. When young people showed up with questions, the people who should’ve been there to give them hope they’d moved on. Even, eventually, Alana.
"a direct reflection of the lack of empathy people have from cities have for rural America"
When I was young, in the 1990s, I thought it was crucial to understand what was going on the Red states. I grew up in New Jersey, but I spent several years trying to help the Red states. I joined a voter registration drive and spent a year of my life in Louisiana, going door to door, talking to people about their beliefs, religion and politics. I sat in people's kitchens while they gave me coffee, and I listened to their concerns. Many of my friends did something similar. Later, I was briefly active with a labor union in North Carolina, trying to help the poorest workers unite and fight for a living wage. I felt strongly that anyone who was willing to work hard for 40 hours a week should be paid enough to rise above poverty.
At the same time, I was disheartened by the deep racism that I ran into everywhere. The white workers were loath to create an alliance with the black workers, and this racism undermined every political coalition that might have raised wages and ended poverty in the South.
Nowadays, I see things very differently. Nowadays, I ask myself, why is it always the idealists from the Blue States going to the Red States and trying to understand their concerns? Why isn't it ever the other way around? Why don't the best-and-the-brightest people from the Red States travel to the Blue States and try to understand our concerns? There is something paternalistic about thinking that the Blue States always need to figure out what the Red State folk are worried about. The whole attitude, of us Blue State people going to help the Red States -- it's as if the people of the Red states are spoiled children and those of us in the Blue states need to cater to their whims. There is no rational basis for this ongoing deference of the Blue States to the Red States.
And in electing Trump, I feel that the Red States have declared a quiet war on the Blue States. So my attitude now is far less compassionate than it used to be. Nowadays, I no longer wonder how we might better understand the needs of the Red states. Nowadays, I only wonder how their political power can be destroyed, so that their effect on national politics can be nullified as much as possible.
How is suicide "unreasonable"? Albert Camus wrote in "Le mythe de Sysiphe":
> Il n'y a qu'un problème philosophique vraiment sérieux: c'est le suicide. Juger que la vie vaut ou ne vaut pas la peine d'être vécue, c'est répondre à la question fondamentale de la philosophie.
(There is only one really serious philosophical question, and that's suicide. Deciding whether or not life is worth living is answering the fundamental question of all of philosophy.)
If you arrive at the conclusion that there is no point to any of it, why not end your life on your own terms? We will all die eventually; it seems to me more courageous to decide of the moment.
We regard suicide as the ultimate failure; but isn't it, rather, the ultimate choice? And isn't that the problem?
Suicide in a way is an insult to the living, that's what makes us hate it so much.
Of course, not all suicides are equal; teenage suicide is especially tragic, for the exact reasons given in the article (I had a cousin who killed himself at 24; for everybody who survived him, and esp. his brothers and sisters, and his parents, it's an incredible ordeal, a wound that will probably never heal).
But we should respect the decision of a middle-aged man who had a wonderful and very successful career, and maybe came to the conclusion that he's done. We're not him, we'll never know how he felt anyway.
> I know how an IDE works. All an IDE really needs to do is (a) let you edit a text buffer, (b) parse your source files, and (c) build an understanding of your code and provide you with intellisense. What's hard about that? Why is my IDE slow?
...
> The IDE is very much unfinished. ... it freezes when opening super huge directories.
So here's what's likely to happen:
1. To fix that freeze, you realize that you need to do file loading asynchronously in the background.
2. That in turn means you need to have your parsing/analysis run asynchronously so that it can analyze files as they come in.
3. But the UI that is reading analysis results is still running on the main thread. So now you need to add locking and other concurrency stuff everywhere. This takes a year of your life. At the end, your IDE is now twice as slow.
4. Also, the user still wants to be able to edit code while all this asynchrony is going on. (Otherwise, you'd just freeze like you were before.) So now your analysis engine needs to handle both concurrent reads and writes while also doing file IO.
5. At this point (especially with all that locking and other concurrency stuff), it's so complex that "re-analyze the entire program from scratch every time" is too slow. You need to be able to maintain a persistent analysis state and incrementally update as the user changes code or files get reloaded. You build a complex dependency graph system so that you can determine which analysis state must be invalidated when a line of code in one file is changed. This is another year of your life.
6. Now your analysis engine is so complex that the limiting factor for making your IDE better is developer productivity. It is incredibly hard to touch this giant ball of mutable concurrent incrementally updated state without breaking something and/or losing your sanity.
7. You eventually realize you need to architect it at a higher level. Instead of low-level threading and locking and carefully hand-authored incremental updating code (which few humans can maintain), you replace it all with a bunch of more coarse-grained persistent data structures. This takes a couple more years of your life. At the end, you get an analysis engine that you can maintain, which is good, because in the meantime, three new major versions of Go have come out and users asking you to support 17 other programming languages. But your new coarse-grained analysis engine is five times slower than the old ball of spaghetti...
8. A user files a bug saying that the IDE crashes when they try to open their 20-million line Go program. It turns out your implementation assumed you could always fit the full AST for every source file in memory. OK, time to start working on a compressed code representation....
9. Meanwhile, another user files an innocuous little bug asking why the editor doesn't support full-width characters, right-to-left languages, or emoji. You open up your beautiful, 200-line hand-written fixed-width text renderer in one tab. Then you open the Unicode spec in the other and start reading about "extended grapheme clusters", "combining characters", etc. In a third, you start reading about OpenType "multi-colored glyphs"...
I agree that IDEs could be faster than they are. There is a lot of cruft. But it's very hard to fix that by starting with OpenGL Notepad and hacking your way to IntelliJ one Git commit at a time without ever monotonically regressing perf. That's like trying to solve climate change by taking a tricycle and incrementally welding your way to a carbon-neutral container ship.
Writing a real-time code analysis engine for large-scale programs is hard. It's a big complex piece of code. Comparing it to a text editor is like comparing Tetris to World of Warcraft because they're both "games".
That being said, I completely applaud the author for making a go at it. It's hard, but not impossible, and history is written by people who had the courage to do hard things.
Although I consider myself a hack, my family and friends think I have some God Given drawing talent. Not true I tell them, anyone can draw well. You just need this book and practice.
Drawing on the Right Side of the Brain: The Definitive, 4th Edition
- Sometimes Promise returned by page.close() never resolves so it's good to call Promise.race() on that together with a Promise that resolves after some timeout period (30s?)
- Sometimes Chrome process doesn't get killed so we are also manually killing remaining Chrome process after browser.close()
A friend of mine made https://guide.mlz.me/ "The Complete Idiot's Guide to Correctly Validating Customer's Email Addresses". He doesn't send it to everyone who typos an email address, but for businesses - especially ones that send him financial data unsolicited - the level of snark is appropriate.
I generally say yes. The fixed timer is for the delayed ACK. That was a terrible idea. Both Linux and Windows now have a way to turn delayed ACKs off, but they're still on by default.
TCP_QUICKACK, which turns off delayed ACKs, is in Linux, but the manual page is very confused about what it actually does. Apparently it turns itself off after a while. I wish someone would get that right. I'd disable delayed ACKs by default. It's hard to think of a case today where they're a significant win. As I've written in the past, delayed ACKs were a hack to make remote Telnet character echo work better.
A key point is asymmetry. If you're the one who's doing lots of little writes, you can either turn set TCP_NODELAY at your end, or turn off delayed ACKs at the other end. If you can. Things doing lots of little writes but not filling up the pipe, typically game clients, can't change the settings at the other end. So it became a standard practice to do what you could do at your end.
Burnout is caused when you repeatedly make large amounts of sacrifice and or effort into high-risk problems that fail. It's the result of a negative prediction error in the nucleus accumbens. You effectively condition your brain to associate work with failure.
Subconsciously, then eventually, consciously, you wonder if it's worth it. The best way to prevent burnout is to follow up a serious failure with doing small things that you know are going to work. As a biologist, I frequently put in 50-70 and sometimes 100 hour workweeks. The very nature of experimental science (lots of unkowns) means that failure happens. The nature of the culture means that grad students are "groomed" by sticking them on low-probability of success, high reward fishing expeditions (gotta get those nature, science papers) I used to burn out for months after accumulating many many hours of work on high-risk projects. I saw other grad students get it really bad, and burn out for years.
During my first postdoc, I dated a neuroscientist and reprogrammed my work habits. On the heels of the failure of a project where I have spent weeks building up for, I will quickly force myself to do routine molecular biology, or general lab tasks, or a repeat of an experiment that I have gotten to work in the past. These all have an immediate reward. Now I don't burn out anymore, and find it easier to re-attempt very difficult things, with a clearer mindset.
For coders, I would posit that most burnout comes on the heels of failure that is not in the hands of the coder (management decisions, market realities, etc). My suggested remedy would be to reassociate work with success by doing routine things such as debugging or code testing that will restore the act of working with the little "pops" of endorphins.
That is not to say that having a healthy life schedule makes burnout less likely (I think it does; and one should have a healthy lifestyle for its own sake) but I don't think it addresses the main issue.
"You actually don't need to be open-minded about Oracle, you are wasting the openness of your mind [...] As you know people, as you learn about things, you realize that these generalizations we have are, virtually to a generalization, false. Well, except for this one, as it turns out. What you think of Oracle, is even truer than you think it is. There has been no entity in human history with less complexity or nuance to it than Oracle."
This is widely believed and repeated, but empirical evidence actually runs the other way: according to studies cited in the book Code Complete, functions in the range of 100 to 150 LOC are more maintainable than shorter ones.
* Cookies for the root domain get sent to all subdomains, so a subdomain for static content still gets flooded with cookies, slowing down requests. Now subdomains will get cookies you may not want them getting, complicating site design. You can end up sending dozens of kilobytes of cookies with each request due to the www-less cookies. The way around this is buying whole new domain names just for static content, and then duplicating SSL and all the other requirements for this new domain. Or hoping RFC 2965/6265 won't break anything using your site.
* There is a security boost by the same-origin not allowing a subdomain to hijack cookies for the root domain ("forums.foobar.com" could be made to set a cookie that "foobar.com" interprets, which can be used to hijack user sessions; this would not happen on www). This problem affected Github and they had to implement complicated workarounds.
* It is easier and more flexible to configure a round robin of frontend hosts with a CNAME (on www) than by A records on the root domain. If your cloud hosting provider's IP changes, they can change their hostname records without needing to modify your DNS records - less work for you and them. And if you think a single static anycast address could never have a routing problem, think again.
* Google will (or did in the past) ding you for duplicate content. The same content on foobar.com/ and www.foobar.com/ will appear as duplicate. Providing the content only on www separates it from other content and makes it easier to search subdomain-specific content. (This won't happen if one of them is 301 redirected to the other, however)
Reasons not to use www:
* "It looks cleaner."
People, you can 301 redirect your www-less site to www, gain all the advantages of using www, and the only "hassle" will be in how the address bar looks.