Honestly, this is such a common refrain in open-source communities.
"I'm going to use this product/project."
"You shouldn't use that, use this instead."
"But this product/project has all these features I want."
"Sure but you can just build and maintain those features yourself if you want. It's open source, after all!"
Or alternately:
"Well no one really needs those anyway, it's just people being told that they do."
I've been hearing this same refrain for over twenty years now. It seems as though some people don't understand that there's actual value in having a system that just works, rather than one that you have to build and maintain yourself just to emulate the system that works.
We used to run a game server for a small community of around 400-500 people and DDos attacks were something we had to face almost every week, whenever someone got upset with the admin team, the go to solution was was to DDos, you get scammed by another player? DDos. Got banned for saying racist things ingame? DDos. You figured out a new way to cheat in game and the admins fixed it? DDos.
We were kids back then and those were kids that were attacking us with just a 5-10usd budget. Yes they were relatively small (ranging from 10-60Gbps) attacks compared to the Tbps attacks that are happening to some companies, but good god it was so annoying when all it took was just 5 usd from some idiot to take down your server.
We moved to gcp got null routed (or reduced network bandwitch to the node under attack) every-time there was an attack. Bought azure's 3000usd a month anti DDos protection, was worthless for a tcp/udp service. Tried to have a network load balancer in the cloud that auto-scaled, still some players got effected when an attack came in.
Finally we moved over to OVH and placed a few really powerful servers in-front of the game server and applied some ipfilter rules to reduce common attacks. That ended up being the cheapest option out of all the options. When you have a very small community its not like you have the biggest budget to work with. But it was really fun and taught all of us a lot. Looking back its kinna sad we had to end things. But it was a lot fun.
DDos attacks are one of those things that really makes me worried about the future of the internet. The only way to win it is to throw money at it and cross your fingers that the attacker will run out of resources before you do.
Definitely companies like cloudflare does an incredibly good job of stopping some insanely big attacks when it comes to http/https (I recently saw they were supporting udp and tcp based services now, never tried it).
But one thing that's weird is having to rely on some 3rd party company. Yes cloudflare so far has been a company I can trust, but, I once loved and trusted a company that said "Don't be evil".
If you are a developer for some IOT device manufacturer please do your best to makesure someone wont turn your light bulb in to a part of a botnet. When you guys fuck-up the rest of us have to suffer.
This is typically called a “Government”. In the US we used to have this at the town, state and federal level. And these “governments” wouldn’t just work with one company, but a many companies.
The way they worked is people would vote for representatives that help make decisions that were in the interests of people, and this would reign in the power of extremely large and powerful companies.
In some parts of Europe they still have these.
Unfortunately in the US companies were foolishly permitted to both purchase the voting power of representatives and directly influence the will of the people to render the government virtually useless (though still a useful distraction for the people)
I mean, yeah, he criticized the party publicly. This is what happens. For as wealthy, powerful and influential as he is, for him not to realize what was going to happen to him is kind of flabbergasting.
I think what the "legacy" news media failed at more than adapting was effectively communicating the time and effort that goes into serious news gathering and reporting. I regularly get the impression a certain slice of HN commenters think "the media" is a bunch of opinion bloggers fabricating sources to drive "an agenda". In reality, the effort for producing a deep investigative story can be equivalent to an a mid-size software engineering project in terms of person hours and expertise. Three senior reporters working on a Pulitzer-level story can take years, numerous support staff, and legal fees.
Most software engineers innately know that taking an open-source project, stripping the authorship, putting it your own site and running ads next to it is unethical, regardless of the licensing etc. Yet, when it comes to capturing news stories of equivalent production effort, "information wants to be free". I think that may largely be a failure to understand the work that real reporting takes.
Ironically, as prestige newsrooms have shrunk, the percentage of high-quality stories has gone down because revenue has declined and those stories are expensive. So in fact we do perversely end up with more click-bait as Google et al engineered systems to optimize for attention and click-through (the opposite of a multi-part investigation).
This is a story about four people named Everybody, Somebody, Anybody, and Nobody.
There was an important job to be done and Everybody was asked to do it. Everybody was sure Somebody would do it. Anybody could have done it, but Nobody did it. Somebody got angry about that, because it was Everybody's job. Everybody thought Anybody could do it but Nobody realized that Everybody wouldn't do it.
It ended up that Everybody blamed Somebody when Nobody did what Anybody could have done.
I conducted a couple hundred interviews for my first FAANG employer, and I was constantly amazed at the percentage of candidates with years of Microsoft or Facebook experience on the resumes who apparently did not know how to program. I always thought, 'huh, guess I know why they quit after 3 years, amazing that they all lasted this long."
Then I interviewed for another company and utterly bombed. It became suddenly clear to me that I had been an idiot. Of course nearly all of those candidates were perfectly good programmers. They had had shit interviewing days, probably mostly due to nerves, but they probably would have mostly been perfectly good employees. How frickin' arrogant I had been for concluding that people who couldn't solve incredibly high stakes algorithm riddles on a whiteboard in 45 minutes with enough speed and flair were somehow not qualified to be my coworkers.
They do, but thank you Twitter for congregating all the journalists into a public square to let us see how narratives form and the sausage gets made re: news.
> It's a tough question: how to marry globalisation with the political realities.
Very simple explanation: it's impossible, unless the West can mow the rogue regimes left, and right, and is ready for a war with a nuclear power to do that.
> When China was very poor, it didn't really matter, or perhaps the assumption was that China would liberalise more quickly than it has.
Expecting a communist party to "liberalise" is effectively to expect it to kick itself out of power. The moment they loose power, their people will murder them. And if people wouldn't, then it would be their internal factions who will strangle each other without an iron handed big boss at the top maintaining internal order.
There is no way out for them. Their only way to avoid being torn apart alive is to stay in power, and their only way to stay in power is to exert, push, and expand it.
For them, to stop repressions, means to let their enemies to take the proverbial rifle from which barrel's the power grows, and to seal their fate, essentially to voluntarily chose death.
Any totalitarian system has an expiration date for this very reason.
In case of China, what that means is an instant gulag, or worse for 5 political dynasties:
1. Few remnants of Mao, and his wife's reign, and their confidants for, well, everything.
2. Deng Xiaoping's era communist billionaires, who will have to return millions they stole from the state in eighties.
3. Shanghai people, and Jiang, who will have to at least surrender their posts, and titles which they bought, and sold illegally, and all privileges coming with them.
4. Hu's clique, whose members will have to surrender their businesses, and stocks which they got through connections
5. And finally, Xi, and his friends, who managed to make a bigger mess in their 8 years in power, than the three previous dynasties combined.
Put it simply, do you expect a thief to voluntarily give a gun to the person whom he just robbed? An expectation that the West can share the planet with rogue regimes, is an expectation that a kleptomaniac, and a really rich person can live under the same roof. Even if the later can keep the former compliant under a gunpoint for some time, eventually the former succumbs to his urges, and the later has to shoot.
The simple answer is that Kubernetes isn't really any of the things it's been described as. What it /is/, though, is an operating system for the Cloud. It's a set of universal abstraction layers that can sit on top of and work with any IaaS provider and allows you to build and deploy applications using infrastructure-as-code concepts through a standardized and approachable API.
Most companies who were late on the Cloud hype cycle (which is quite a lot of F100s) got to see second-hand how using all the nice SaaS/PaaS offerings from major cloud providers puts you over a barrel and don't have any interest in being the next victim, and it's coming at the same time that these very same companies are looking to eliminate expensive commercially licensed proprietary software and revamp their ancient monolithic applications into modern microservices. The culimination of these factors is a major facet of the growth of Kubernetes in the Enterprise.
It's not just hype, it has a very specific purpose which it serves in these organizations with easily demonstrated ROI, and it works. There /are/ a lot of organizations jumping on the bandwagon and cargo-culting because they don't know any better, but there are definitely use cases where Kubernetes shines.
Is it going to be a thing on HN now where the top thread for every announcement of a company embracing Remote Work will be from someone complaining about not liking Work-From-Home and 50+ replies discussing about "WFH vs office" or discussing their own personal preferences? I am starting to be astonished by the amount of supposedly-intelligent people who are completely missing the forest for the trees.
What we are witnessing might be a historical shift as big as Nixon re-opening with China, and the top comment is really complaining about some missing perks? How about start thinking of how many people who live in these big tech centers only because of their jobs and how many will just leave these cities once it is become accepted practice to work at a Canadian company while you live in the Caribbean? Or maybe start thinking that people who used to complain about H1B workers bringing the salary down now having to face competition from some random guy in Romania who can code circles around you and can accept a job at one quarter of your salary? Or how about we discuss the opportunities for startups that will come from this?
Also, start thinking if you are a VC and soon you will actually have to leave Sand Hill because no one will be crazy enough to move there to sleep on someone else's dishwasher hoping to make it big.
Personally, every announcement from an established company that is moving to a Remote-First (or Digital by Default, call it whatever you like) mentality is thrilling. Is anyone from Shopify here reading HN? I was already planning to apply for them but this announcement made me even more interested.
This is the latest in a string of incidents where critical software systems, facing new pressure due to the pandemic, are catastrophically failing their users.
I think what's happened in the past is that most public-facing software systems either a) were not really critical (because people had the alternative of doing things in-person), or b) (as in the case of all the ancient COBOL systems underpinning the US gov) had been made reliable over the years through sheer brute force as opposed to principled engineering. But in the latter case, as we saw with New Jersey's unemployment system, that "reliability" was fragile and contingent on the current state of affairs, and had no hope of withstanding a sudden shift in usage patterns.
Now we have various organizations - governmental and otherwise - hastily setting up online versions of essential services and it seems like every single one of them breaks on arrival.
We need some sort of standard for software engineering quality. I don't think this is an academic question anymore. Real people's lives are being impacted every day now by shoddy software, and with the current crisis they often have no alternative. Software that you or I could probably have executed better, but that the people who were hired to do it either a) couldn't, or b) didn't bother. It's nearly impossible for non-technical decision makers in these orgs to evaluate the quality of the systems they've hired people to build. We need quality assurance at an institutional level.
If not governmental, maybe an organization around this could be made by developers themselves. Not the "certified for $technology" certifications we have now, but a certification of fundamental software engineering skills and principles. A certification you can lose if you do something colossally irresponsible. At the end of the day, this dilution of quality is having a negative impact on our job field, so it concerns all of us. It leads to technical debt, micro-management, excessively rigid deadlines and requirements, which we all have to deal with. All of these are either symptoms of or coping mechanisms for management's inability to evaluate engineering quality.
I've never worked for a true unicorn but I've been in companies that got a sudden success and grew way too big way too fast. I think you can tell from the inside when a company loses its way. As you mention, suddenly you have tons of teams working on what seems to be fairly niche aspects of the company's product. You have man-years worth of work going nowhere as projects get scrapped mid-development. You start having a massively more complicated hierarchy of bosses and managers and project leaders and it seems like everybody is chief of something and everybody loses sight of the big picture as they just become focused on a single aspect of a given product. What was once a lean startup with a vision is now struggling to get new products out of the pipeline even though they have ten times (or more) the manpower.
Growing is hard and unicorns are expected to grow really, really fast. In the end many companies with a completely viable product end up going under just because investors thought that a million dollar company should be a billion dollar company.
Is the alternative 100% top-down central-managed solution to ensure no externalization happens ever? In theory that's appealing (especial from the view from Chomsky's academic ivory tower), but then in practice every time it's been tried it hasn't worked well at all.
Chomsky is smart, but not very useful because
"In theory there's no difference between theory and practice, but in practice there is" - Yogi Berra
>Outside of programming, this is the norm. The number of free and/or open-source tools available to a mechanical engineer or an electrical engineer are infinitesimally small and it is almost impossible to do a serious engineering project with only free tools.
>Since this is quite lucrative for the companies making those tools, I can only imagine tech companies would be more than happy to lead us to a future where software engineering is similar in this regard to other engineering disciplines. Perhaps this is what happens when a field matures, and since software is maturing, it will become more and more like this as the time goes on.
That's a really great insight. (Sr EE here.) I wonder sometimes about the fact that SW engineers are capable of making their own tools in a way that we are not. Do you think this helps to combat some of the super high pricing associated with their tooling?
For example: it'd be pretty hard for me as an EE to say "Fuck it! I'm fucking sick of Orcad! I'll just go write my own fucking Orcad!" (OK, well, easy to say. Hard to do. I've spent plenty of days cursing Orcad, but none building a suitable replacement.)
The myths are promoted as means to raise hope in the "little man" and to attract new blood (workers) to the specific industries, thinking they can also become as big as the stars of that industry, starting with very little.
This is very deceptive, and probably gets people into trouble more often than not, changing their long term orbits based on fantasies built on selective factology about what is enough for success.
Seems like a bit of a tail wagging the dog situation. How do we know the more relaxed/organized schedule leads to success, and not that success leads to a more relaxed/organized schedule?
This reminds me of some other advice I remember reading: No level of hard work or organization will substitute for talent and opportunity, and nearly all success stories to the contrary are missing key facts. ie Myth: Michael Jordan was cut from his high school basketball team. Reality: Michael Jordan was put onto the junior team with players his own age/size so he could get more play time, instead of being prematurely promoted to the highest level of play. Myth: Bill Gates is a college drop out who found success in a technical field purely based on personal merit. Reality: Gates' private high school gave him more access to computers than Harvard, and continuing at Harvard would have been a waste of time given his level of experience in the field.
The lesson is that you need to figure out what you're good at and where you have opportunity, and then work hard in those areas. Just working hard is a recipe for failure for most people.
I had a similar brilliant engineer with odd working hours at one point. I also had the same problem with other engineers requesting the same odd hours, with equally negative results.
In my case, I eventually learned that the odd hours weren't the key to his perceived success. Instead, he used the odd hours to force us to give him only work that could be accomplished alone. We were lulled into letting him make key architecture decisions in isolation, because no one else was awake or online at the same time to discuss them.
Eventually he became the architect by virtue of operating in isolation, where we couldn't discuss his decisions. Everyone else was forced to work around his code. If he refactored the codebase in the middle of the night to make his job easier, the other team members were all forced to work around his refactor and waste time updating their PRs to match his work.
Worse yet, having someone like that on the team drives away other great employees. Eventually everyone else will get sick of accommodating the architects isolated schedule. If they have other opportunities, they'll leave.
> I often think about how I could have better allowed his brilliance while not alienating the rest of his team, but in the end I failed.
It's not on you. Brilliance and individual productivity aren't everything in a team setting. If your project must scale past a single person, you need everyone operating on the same page. It's painful in the short term to lose the quirky rockstars, but it makes for a healthier team in the long run.
There's a ton of (replicated) psychology research that supports this thesis: the early hours of skill acquisition are very effective/efficient in terms of improvement-per-hour-invested. 20-50 hours is enough to see very substantial improvements in any skill, even if you have no prior knowledge or experience.
I wish more people focused on the early process of skill acquisition: that's what most of us will experience for most of our lives/careers.
Learning and practicing skills in many different areas is underrated: if you think of skills from an ROI perspective, spending a little time to get a lot better at a portfolio of useful things has a crazy high return.
When you talk to women your m.o. should be breadth-first search, weighted by expected value. You should always talk to women in parallel rather than serially. You can't afford the time it takes to talk to women serially, plus if you only talk to one woman at a time, they don't have the pressure of other women to make them act. But you shouldn't pay the same attention to every woman, because some are more promising prospects than others. The optimal solution is to talk to all potential women in parallel, but give higher priority to the more promising ones.
People are so enamoured by 4chan precisely because it isn't like reddit. Reddit, Facebook or any social media platform that rewards users with up votes, karma, reputation, likes or whatever creates a system in which people want to please others and develop reputations they have to uphold. 4chan is free from those chains and people are able to freely throw ideas into the mix. This is why 4chan has been so instrumental in coming up thousands of memes that define internet culture today. Reddit, Facebook and others are usually consumers of those memes rather than generators.
I know this is a massive generalization, but that's been my impression being on digg, reddit, Twitter and 4chan for 10 years now.
The problem is that a lot of the original 4chan users either moved on or just grew up and at the same time 4chan got over taken by alt-light type folks. I still think the basic idea of 4chan has a lot to offer that maybe could be replicated on an other platform, with a fresh set of people.
People love to complain about realtors. Companies like Redfin have been trying to disrupt this market for years. People on HN and other places like to complain that realtors are pointless and that the only reason they exist is they are entrenched.
I posit a different theory, which may well be controversial here, and that is that realtors continue to exist--and charge large commissions doing so--because they provide a service that most people want.
I think of it like advertising. "I never watch ads" is a common catchphrase when decrying ads but again, ads exist because they work.
The job of a realtor, and what they are incentivized to do, is to facilitate a transaction. People might point out that a selling realtor isn't incentivized directly to get the best sales price. They are correct. Why show a house 100 times in the hopes of getting $550k when you can flip it tomorrow for $520k and your work is done?
Thing is: that's what most sellers actually want, even though they might say they want the best price. Most of them are selling for a reason and they just need to sell it and move on with their lives.
Likewise, when it comes to buyers, they too are buying for a reason, typically because they need somewhere to live or they want to establish (more) permanent roots in a given community. The best thing for most of them is to pull the trigger, move in and get on with their lives. It's not to get the best deal. It's not to wait 2 years for the perfect property.
Realtors facilitate both sides of this equation.
Have you ever deal with a For Sale By Owner? I have. I refuse. I won't even go and look at a listing FSBO. It's a nightmare. Those owners tend to be cheap (hence not paying commission), have unrealistic expectations of their property's value, overvalue whatever "improvements" they've done and, worst of all, are emotionally invested so they re more likely to take a lower offer personally rather than as a negotiating tactic.
It's worth noting too that with negotiating in general, it's often better to have someone else do it for you. If you're the guy who can say yes or no you have no fallback. If you represent that guy you now have the position of "my client won't accept that". Think about the psychological difference of rejecting someone personally or just being the messenger.
So add fixed-fee home sales to the other startup traps like dating sites, travel sites and anything to do with "fixing recruitment" (you'd be surprised how many cold call emails I get about this one in particular). Hell, let's add blockchain to that list too, but I digress.
On the disproportionate number of noise complaints from a few people: I've noticed in my own case that there was a huge bar to making my first noise complaint (I don't live under a flight path, but across from a beach park where people like to party after hours and blast loud music). The first few times I suffered through it. Eventually it was so bad, I went out at 3am to ask, politely, for them to keep it down (the park closes at 10pm). I didn't want to be "that guy" that calls the cops on a bunch of kids just looking to have a good time. The guy who owned the car blasting the music was apologetic and immediately complied, but one of his friends got in my face about it. Another couple of incidents like that and, well, fuck it, I'm not going to risk bodily harm to try to be cool for some total strangers. I called the cops, who responded in minutes. Problem solved. Once I crossed that line, I hear music blasting after midnight, I call the cops without hesitation. Aside from my own peace of mind, I like to think I'm helping my neighbors who may be still be in the suffering stage. I have no doubt that I make many more noise complaints than they do.
I'm honestly confused at the negative attention this is getting, I can't see this as being anything other than all positive. This is nothing like when IE won in the late 90s, there is very little extra "control" this will give Google over the web, quite the opposite if you ask me.
Think of it this way: do you think it helps or hurts Google to have every version of Windows come pre-installed with what is essentially already Chrome, except, of course, it will probably have Bing as its default search engine. Do you think the odds of people just using Edge to download Chrome and nothing else go up or down with this move? Do you think it helps or hurts Google to have most tech people not bother telling their parents to download Chrome anymore? There is significantly less control from "owning" an engine than owning an actual browser. I don't think I would have had much of an issue with the dominance of IE 20 years ago if I knew I could compile and modify (and release!) IE myself.
This is more akin to most browsers now having a common starting point. The problem with browsers is that if you truly want to make a new one you need to somehow replicate the decades of work put into the existing ones. What that means is that before you can exercise any of your noble privacy/security/UI/whatever goals, you must first make sure you pass Acid 1 and replicate quirks mode float behavior and etc. etc. etc. This is a non-starter. But now, Microsoft can launch from Chromium's current position and have a browser that can actually compete with Chrome. It's as if they've taken "engine correctness" off the table, and can compete on cool features or "we won't track you" or anything else. Websites will work in Edge by default, so if you like that one new feature in Edge, you can feel OK switching to it without compromising devtools/rendering/speed/etc.
Now I know that the initial response to this is "but Google will call the shots!". Not if the way this has gone down every other time has anything to do with it. Google's Chromium started as KHTML. When Apple based WebKit off of KHTML, the KHTML team had very little say in anything and they eventually forked of course. Then Google based Chromium off of Apple's WebKit, and once again, there was very little "control" Apple could exercise here. Sure, they remained one monolithic project for a while (despite having different JS engines which just goes to show that even without forking you can still have differentiation), but inevitably, Chromium was also forked from WebKit into Blink.
And there should be no reason to think the same won't happen here, and it's a good thing! Microsoft in the past couple of years has demonstrated amazing OS culture. I can't wait to see what the same company that gave us VSCode is able to build on top of Blink, and eventually separate from Blink. Ironically enough, the worst thing that could have happened to Google's search dominance is have Blink win the "browser engine wars": we all agree Blink is the way to go now, so we can all start shipping browsers that at minimum are just as good, and won't auto-log you in, or have their engine set to default, or etc. etc. etc.
It's not that these jobs are bullshit jobs, it's that commonly they are wrapped up in bullshit procedures.
These procedures typically appear when there's an initiative to reduce costs. The easiest and cheapest way to employ an unskilled person to do a skilled job is to hand them a book of 'procedures' on their first day and say "Everything you need to do and know is in this Book". No time consuming cross-training required, no hiring of expensive people who already know the skill. As the Book of Procedures enables you to rinse and repeat the process with every new hire, you are no longer invested in keeping 'talent' within the organisation; good people leave once they realise that the job is 70% procedure vs. 30% actual work... No matter, there's always The Book, let's hire another grunt from the employment queue.
However, because you are filling up your organisation with unskilled workers, errors become more common place. To reduce the error rate, you introduce some extra checks and balances to ensure that the job is being done correctly. These extra procedures go in to The Book. The ratio is now 90% procedure vs. 10% actual work.
People who actually know how to do their job, having learned it well, or had previous skills, get frustrated that most of their workload is 'make-work' following all the extra procedures, and the people who have no skill, just follow the The Book, because they know no different, and it keeps them out of trouble.
Meanwhile, somewhere upstairs in the boardroom, people in grey suits are patting themselves on the back as operating costs have fallen, profits are up, and incidents are down. Creating The Book of Procedures is now considered a valuable skill in it's own right, so the people who care about climbing the managerial pole devote large chunks of their time adding yet more processes to the The Book, and thus the cycle continues, until several roles in the company are nothing but endless procedure creating/tracking without any actual product output.
There's still the problem of a high attrition rate amongst the middle tier staff, but hey, there's always more fish in the sea right?
I think the main reason "this" is considered confusing is that many programmers learning JS have already spent years coding in Java or C#. They expect it to work the same, then get frustrated when it doesn't. But the reason it doesn't is due to the fact that functions in JS are first-class, and don't intrinsically belong to a particular class and object instance they way they do in those languages. As such, the context represented by "this" has to be more fluid in JS.
That's not to say that the design of "this" is perfect. And it doesn't help that JS' syntax was designed to resemble C-family languages that it differs from significantly. But nor it is some entirely arbitrary and illogical flaw. If you take the time, it's possible to gain an intuitive grasp of how functions and "this" work in JS. But instead, learners are too often told that "JS is quirky" by others who also have come to it from Java / C#, and never move past memorizing to a list of these "quirks" to genuine proficiency. They then grumble whenever they need to work on a JS codebase, because their incomplete understanding makes it feel like they're standing on quicksand.
Soon such devs fall into a circular trap: They don't like coding in JS because it feels weird and unintuitive. And they don't take the time to learn about it more deeply because they don't like coding with it, and don't want to waste time learning about something they dislike. But since they have to code with it, because it's part of their job, they just stumble along, hacking away and getting frustrated when things don't work, then come onto Hacker News and blow off steam about what a garbage language JS is.
"I'm going to use this product/project."
"You shouldn't use that, use this instead."
"But this product/project has all these features I want."
"Sure but you can just build and maintain those features yourself if you want. It's open source, after all!"
Or alternately:
"Well no one really needs those anyway, it's just people being told that they do."
I've been hearing this same refrain for over twenty years now. It seems as though some people don't understand that there's actual value in having a system that just works, rather than one that you have to build and maintain yourself just to emulate the system that works.