So I did, found a lump, and because I found it early it was removed with no further issue. So that's definitely one of my favorite comments!
> This guy has gone to the zoo and interviewed all the animals. The tiger says that the secret to success is to live alone, be well disguised, have sharp claws and know how to stalk. The snail says that the secret is to live inside a solid shell, stay small, hide under dead trees and move slowly around at night. The parrot says that success lies in eating fruit, being alert, packing light, moving fast by air when necessary, and always sticking by your friends. His conclusion: These animals are giving contradictory advice! And that's because they're all "outliers".
> But both of these points are subtly misleading. Yes, the advice is contradictory, but that's only a problem if you imagine that the animal kingdom is like a giant arena in which all the world's animals battle for the Animal Best Practices championship [1], after which all the losing animals will go extinct and the entire world will adopt the winning ways of the One True Best Animal. But, in fact, there are a hell of a lot of different ways to be a successful animal, and they coexist nicely. Indeed, they form an ecosystem in which all animals require other, much different animals to exist.
> Dependencies (coupling) is an important concern to address, but it's only 1 of 4 criteria that I consider and it's not the most important one. I try to optimize my code around reducing state, coupling, complexity and code, in that order. I'm willing to add increased coupling if it makes my code more stateless. I'm willing to make it more complex if it reduces coupling. And I'm willing to duplicate code if it makes the code less complex. Only if it doesn't increase state, coupling or complexity do I dedup code.
>The reason I put stateless code as the highest priority is it's the easiest to reason about. Stateless logic functions the same whether run normally, in parallel or distributed. It's the easiest to test, since it requires very little setup code. And it's the easiest to scale up, since you just run another copy of it. Once you introduce state, your life gets significantly harder.
> I think the reason that novice programmers optimize around code reduction is that it's the easiest of the 4 to spot. The other 3 are much more subtle and subjective and so will require greater experience to spot. But learning those priorities, in that order, has made me a significantly better developer.
https://news.ycombinator.com/favorites?id=jakelazaroff&comme...
https://news.ycombinator.com/item?id=24215601
> The "contrarian dynamic" is that HN threads (and internet comments generally) are largely propelled by people making objections. Cunningham's Law touches on this [1]. The objections come in waves. In the earliest stage of a thread, they tend to be rapid negative reactions to the article. It's not that these are a community consensus, it's that they're the fastest reactions to feel, and the fastest comments to write—especially when the topic is provocative, when most of us are reacting from cache [2].
> Then a second wave of objections is generated by the first wave. Readers come to the thread, see the comment section dominated by those initial 'triggered' responses, and feel some version of surprised-shocked-dismayed at how the commenters all seem to be reacting in that way. This propels them to write defenses of the article, often carefully expressing more moderate or balanced views than the first wave—but they probably wouldn't have been motivated to post anything if there hadn't been the first wave of comments to object to!
> These second-wave comments tend to get more upvotes, perhaps because more people tend to share the more moderate view, but also because those comments tend to be more reflective [2] and therefore better written.
> This explains why the top comment in a thread so often begins (ironically) with "Wow, I can't believe the comments here"—or from the current thread: "All of these comments make me think HN has never interacted with a 5 year old" [3]—followed by a defense of whatever those objections were objecting to. Eventually you get objections to the objections to the objections—which reminds me of the line "My complication had a little complication" from Brazil [4], and also epicycles.
My advice is to lower the value of ideas. A lot of time people think, "If only I had a good idea I would be successful". You will see other people saying things like, "Buy my good idea!". But really, good ideas are a dime a dozen. Good ideas, bad ideas... it actually doesn't make much difference. What makes the difference is execution and timing.
For things that take a long time, timing is essentially random. The world is chaotic. Had I known everyone and their dog would be locked down in their houses for months on end, I would have built something to cater to them. But of course, there is no way to know. I find it amusing that just before the pandemic there was a thread on HN talking about overvalued unicorns and Zoom was up near the top of the list. What would need to happen to make Zoom a household name, people asked?
To be successful, really what you need is execution and to have the patience to wait until what you are doing is relevant. Of course there is the fear that it will never be relevant. However, if you accept the thesis that the good idea is not valuable in itself, then you realise that it is not really valuable to pivot without a really good reason. A good idea that is never relevant is just as worthless as a bad idea that is never relevant. However, even a bad idea that is executed very well and ready when the opportunity arises can be successful.
My "aha" moment was realizing most of my ideas and most apps out there are complete garbage. Not needed. Damaging, even. 99.9% of all of it.
For example, most "cutting edge" web apps are better off as PHP monoliths. Facebook was a PHP file for a long time. But most apps in general should never make it past being shell scripts, which are better off staying as spreadsheets or better - text files which are better off as pieces of paper whenever possible. And all paper is better off left as thoughts whenever possible, and most thoughts should be forsaken.
> Yes, doing the right thing often is dangerous and earns you hatred from other people doing bad things who love the freedom of hiding amongst a herd of other equally guilty people.
> The reason we have so much respect for people who take stand and do what they believe is right is because doing so is so hard. That doesn't mean you shouldn't do it.
I'll probably remember this quote for years to come.
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.
link to comment: https://news.ycombinator.com/item?id=5630618
I've referred to this comment a couple of times in discussions with people I've worked with. It is a great example for many problems of old code bases.
On Catering to the privacy crowd- https://news.ycombinator.com/item?id=24123463
Users of peanut butter shouldn't have to think about whether it contains glass and razors - https://news.ycombinator.com/item?id=20634128
On Telegram seven years ago - https://news.ycombinator.com/item?id=6949814
Indian Govt blocks a PHP project for terrorism and anti national content - https://news.ycombinator.com/item?id=8820378
On Show HN:Dropbox - https://news.ycombinator.com/item?id=9224
Did you win the putnam? - https://news.ycombinator.com/item?id=35079
To avoid network congestion, the TCP stack implements a mechanism that waits for the data up to 0.2 seconds so it won’t send a packet that would be too small. This mechanism is ensured by Nagle’s algorithm, and 200ms is the value of the UNIX implementation.
> Sigh. If you're doing bulk file transfers, you never hit that problem. If you're sending enough data to fill up outgoing buffers, there's no delay. If you send all the data and close the TCP connection, there's no delay after the last packet. If you do send, reply, send, reply, there's no delay. If you do bulk sends, there's no delay. If you do send, send, reply, there's a delay.
> The real problem is ACK delays. The 200ms "ACK delay" timer is a bad idea that someone at Berkeley stuck into BSD around 1985 because they didn't really understand the problem. A delayed ACK is a bet that there will be a reply from the application level within 200ms. TCP continues to use delayed ACKs even if it's losing that bet every time.
> If I'd still been working on networking at the time, that never would have happened. But I was off doing stuff for a startup called Autodesk.
> John Nagle
[1] https://news.ycombinator.com/item?id=11959139
[2] http://www.righto.com/2016/10/inspired-by-hn-comment-four-ha...
https://news.ycombinator.com/item?id=9282104
Followed closely by 'tzs on Missile Command:
I had been telling my very similar story here of my experience for a few years, then to see another say same thing with email evidence was vindicating.
Around that time and maybe before more and more negative posts about said company started and have continued to appear on Hacker News. So her story along many other things going on I believe helped highlight they do evil/aren't to be trusted per the image they once sold.
Overall I'm glad she had the courage to post her experience and in turn help other dreamers/innovators (what my aim was) to not trust this tech company and highlight they are the opposite of the mantra they sold to the public.
The comment is about how to think about "news /social networks addiction":
Yes, there are tons of resources but I'll try to offer some simple tips.
1. Sales is a lot like golf. You can make it so complicated as to be impossible or you can simply walk up and hit the ball. I've been leading and building sales orgs for almost 20 years and my advice is to walk up and hit the ball.
2. Sales is about people and it's about problem solving. It is not about solutions or technology or chemicals or lines of code or artichokes. It's about people and it's about solving problems.
3. People buy 4 things and 4 things only. Ever. Those 4 things are time, money, sex, and approval/peace of mind. If you try selling something other than those 4 things you will fail.
4. People buy aspirin always. They buy vitamins only occassionally and at unpredictable times. Sell aspirin.
5. I say in every talk I give: "all things being equal people buy from their friends. So make everything else equal then go make a lot of friends."
6. Being valuable and useful is all you ever need to do to sell things. Help people out. Send interesting posts. Write birthday cards. Record videos sharing your ideas for growing their business. Introduce people who would benefit from knowing each other then get out of the way, expecting nothing in return. Do this consistently and authentically and people will find ways to give you money. I promise.
7. No one cares about your quota, your payroll, your opex, your burn rate, etc. No one. They care about the problem you are solving for them.
There is more than 100 trillion dollars in the global economy just waiting for you to breathe it in. Good luck.
https://news.ycombinator.com/item?id=13142737
Also, this one was nice.
https://news.ycombinator.com/item?id=15107536
Edit: Formatting
https://news.ycombinator.com/item?id=35079
"As a matter of fact, I did"
Discussing Android apps and trackers.
"I predict that Libra will work for a while, but will eventually be overshadowed either by competitors or by the new markets that it enables.
There's this pattern I've noticed where every major tech company, once initial traction has been established, gets three pivots. You can think of them as adolescence, mid-life, and rebirth.
The first pivot happens when the company is 5-8 years old (since the 1970s at least; older before then), and serves to define the company. The System 360 for IBM, defining it as the provider of mainframes for enterprises. MS-DOS for Microsoft, defining it as the dominant PC OS. The Macintosh for Apple, defining it as the most user-friendly consumer brand out there. GMail and Maps for Google, defining it as the conglomerate of the Internet age. Mobile for Facebook, defining it as the service that connects people regardless of where they are.
The second pivot happens when the company is 10-15, at the height of its dominance, and usually results from it entering the hottest new technology wave with a vengeance. It looks like it succeeds for a while, crushes early entrants, serves to legitimize that technology wave, but ultimately peters out as the company can't keep up with the changes that it introduces. The IBM PC for IBM, which legitimized the PC market but ultimately fell to clones. Internet Explorer for Microsoft, which legitimized the Internet but ultimately was eclipsed by Google's many products. The Newton for Apple, which legitimized the PDA market but ultimately was too early. Google+ for Google, which legitimized social networking but ultimately failed to gain traction.
The third pivot is when the company realizes that they basically incapable of innovating, and returns to the roots they established with the first pivot to live out their old age. Open-source consulting for IBM, leveraging their massive installed base of enterprise customers. VS Code, XBox, and Azure for Microsoft, recognizing that they are fundamentally a platforms company. The iPhone and iPad for Apple, refocusing on their strengths in UX and delivering top-quality consumer electronics products. Alphabet for Google, realizing that they're fundamentally a conglomerate that lets a thousand flowers bloom (and cancels 990 of them).
Libra is Facebook's second pivot. It'll look like it succeeds for a while, it'll legitimize cryptocurrency, but it'll ultimately end up eclipsed by what it creates. "
https://news.ycombinator.com/item?id=5002262
"""
No, designers aren't crazy. You just don't understand a very fundamental concept of design. It even applies to engineering. It's okay—many people have the same frustrations as you do.
But those who care about the details achieve truly high quality results overall. It extends to all areas of the design, not just to the parts you can't see.
In the movie "Who Framed Roger Rabbit," there's a scene in a dark room where Roger Rabbit (an animated character) flies across the room, knocks a hanging lamp around, and the lighting becomes so dynamic that all the shadows move around including the animated character's shadow. Here's the scene in question: http://www.youtube.com/watch?v=_EUPwsD64GI
This was such a small detail that it would have been forgivable if the animators had left it out entirely: if they had not moved the lamp, kept the shadow steady, no one would have really noticed the difference. It would have been 100 times easier to animate and the effect wouldn't really have been that different.
But they did it anyway. The term was later coined, and "bump the lamp" is used throughout Disney (and probably other organizations) to mean something akin to "go the extra mile"—but I see it as having a special significance to design.
You're right, most people won't notice. By that logic, you could cut corners a lot of other places too. You could be lax about button colors matching exactly, or per-pixel sharpness on the map and buttons. No one would probably notice.
But if you go for every detail like it was the most important detail, you have the possibility of reaching a level of design quality that is superlative, and some people will notice. Others will not notice directly, but will see that the piece exudes style and quality subconsciously, due to the attention to small details. If you carry this into other areas of your work—programming, customer service, market strategy, marketing, and more—then you have a chance to create something of true quality.
If you don't pay attention to detail at that level, well, you might have the chance to actually get something done. Yes, it's a balance, like everything else. But you have to know that it won't be quite as good, and understand that yes, you are sacrificing something, even if you can't see it.
"""
> fiaz MANY days ago | parent | favorite | on: Ask News.YC: How to re-motivate yourself?
> APOLOGIES for making this post so annoyingly long, but I really hope you find value in the words below. ----------------------------------------------------------------------- I'm going to first share a personal experience from my early trading days to illustrate where I'm coming from. I used to wake up at 4:30 am everyday in the Chicago suburbs to beat rush hour traffic and make it into downtown Chicago at 6:30 am. In order to wake up so early, I fell into a habit of sleeping at 9:00 pm and like a robot waking up at 4:30 am. This simple routine was indirectly helpful when things seemed darkest.
For the first six months, I lost money and was ridiculed constantly by other traders who were more successful than me (which was about 20 other guys CONSTANTLY using me as a punching/whipping bag). The only thing that kept me going was the fact that some of the very same traders that would be making wise cracks at me for losing money were some of the most successful people I knew at the time. For better or worse, if I needed a trader to model myself after, it was the same people that were telling me how bad a trader I was - and although I was not open to really hear what they were saying, they were right about my skills in every way (but their feedback was always packaged in some sort of insult). After racking up some rather hefty losses, I was determined to quit at one point during month four, but because I had a habit of waking up at 4:30 am I simply "forgot" that the night before I told myself I would quit and spare myself further humiliation...by then I was warned that I was now on the red list of traders ready to be cut. Also, my personal savings were starting to approach zero (the base "draw" for house traders was enough to pay for food; you usually make your money on a percentage of your profits, and I was deep in the red at the time).
To say the least, there were many excellent reasons to be "reasonable", forget about my dreams, and quit. After 4 consecutive "failures to quit", I realized that I didn't quit because somewhere deep down I was hanging on to a dream, however remote at that point: that I could somehow be as successful as the other traders that I knew. At the same time I realized that I had hit rock bottom in that I couldn't even succeed in failing! Very tough times indeed... An interesting point to note here is that although my losses were starting to get very large, the people who were funding me as a trader kept me because I had one redeeming quality: EFFORT, and this helped build tenacity. Other traders who barely traded but had a fraction of my losses were cut much faster because they didn't put forth much effort. They were not willing to take losses and be bold/brave and fight it out; I was willing to take risks, and this saved me from getting cut faster than others.
Slowly I began to reinterpret the constant humiliation I was suffering: perhaps the other traders were right about their "jokes" and there might be something in what they are saying that will help me get out of the red. I also realized that since I had failed at quitting (which was now the ULTIMATE failure), there was no further failure for me and that if I took baby steps they were surely to succeed (this translated into taking smaller trades/profits).
Only after improving upon my abilities as a trader and channeling my energies appropriately did I succeed and earn everybody's respect as a trader (and you have no idea how this made me feel!). I quickly made enough in commissions to be trading my own account, and be successful as an independent trader onward. When I look back at those final months of 1999 (yeah that's right, I was losing huge cash at the end of 1999 when the entire market was going crazy UP!), there was more good than bad even when I was getting my ass handed to me. It's just that I was intentionally creating my own feedback (I'm right everybody else is wrong) instead of seeing the results I was getting (losses/insults) as feedback and information that would help me be successful.
I kind of snicker every time I see somebody ask for feedback on their startup on YC.News only to end up justifying themselves by telling everybody why they did what they did when they get negative feedback, which is the feedback of greatest value. If somebody tells you how crappy your idea is, thank them that they even spent a few brain cycles considering your idea.
The lessons I learned from this that are perhaps relevant to your questions:
- Determine if you believe in yourself to succeed as an individual (I know this sounds odd, but for a moment just examine your thought patterns and your actions and see what message you are sending to yourself; do you listen to the voice that says you can't or are you paying attention to the feedback from your efforts and the results you are getting?)
- Search deep down inside and see if the project you are working on is something you believe in or not. If you can't sell yourself, then you shouldn't bother trying any further...
- ANY attention you get for your efforts is good attention. If you get LOTS of negative feedback, then be grateful - you've jumped the first hurdle of getting people to give a damn about what you are doing! :)
- There is responsibility and accountability that goes with both success and failure. You need to be ready for both because they can be equally painful in equal ways. The amount of accountability that comes with success can be more unbearable than the accountability that accompanies failure. I personally know of some very talented people who enjoyed phenomenal initial success only to find just as fast that they were in over their heads.
- The more you resist the possibility of failure then you are less likely to recognize possibilities that will help you succeed. If you are afraid to fail, then most certainly you are afraid to succeed. This sounds counterintuitive but it's based upon the fact that fear makes your mind less supple and less responsive to the changes that will push you out of the game - or conversely it will lessen the impulse to jump on the opportunities you need to succeed.
- The results you get has everything to do with your users/market and less to do with you as an individual; it's sometimes hard to separate these two. See the other side of the equation and what side you are on before trying to solve it. Don't ever think you are above the feedback of your users...EVER!
- Don't have expectations (this is just setting yourself up for failure). Because you are starting out you may not know what is best to help you succeed - ESPECIALLY if you're lacking motivation. Keep in mind that whatever results you get from your efforts will lead to more possibilities (in the form of additional information).
- Have some behavioral "context" within which to exercise discipline and structure. Seek to grow your efforts within this context. My context was my sleep schedule. It was a routine that was so ingrained that my drive had a laser focus. This might not work for some, but it worked for me. Finally, I will add that in my opinion failing hard and fast is MUCH better than failing slowly. The faster you know for certain something isn't going to work out, the sooner you can cut your losses and move on to your next idea. When you eventually succeed, you will look back at all the times you were quick to cut your losses and get to where you are... ---------------------------------------------------------
Please do NOT contact me asking for advice in trading/investing. This is a VERY personal thing, and it has everything to do with who you are, NOT with how much information you have, or which tools you use, or who you know.
https://news.ycombinator.com/item?id=24543596
> From where I sit (a backend developer, thoroughly burned out by webdev a couple years ago), most of coding I do is software bureaucracy. Turn this data into that data, ensuring module X and Y get paged in the process. Oh, half of the code I'm about to write is implemented elsewhere - quick, figure out how to juggle the dependency graph to somehow route control from here to there and back. This data I want to convert is not of the right colour - oh, I need to pass it through three sets of conversion layers to get back essentially the same, but with a correct type tag on it. Etc.
> It's utterly and mind-numbingly boring, unless you architectured the whole codebase yourself, at which point it's somewhat fun because it's your codebase, and who doesn't like their own Rube Goldberg machines?
> At this point, I've learned a coping strategy: just forget the project scope and focus on your little plot of land. Doesn't matter that the software I wrote half of is going to help people do exciting stuff with industrial robots. What matters is that the customer changed some small and irrelevant piece of requirements for the 5th time, and I now have to route some data from the front to the back, through the other half of the code, written by my co-worker (a fine coder, btw.). So a bunch of layers of code bureaucracy I'm not familiar with, and discovering which feels like learning how to fill tax forms in a foreign country. If I start thinking about the industrial robots I'll just get depressed, so instead I focus on making the best jump through legacy code possible, so that I impress myself and my code reviewer (and hopefully make the 6th time I'm visiting this pit easier on everyone).
> Maybe it's a problem of perceptions. Like in the modern military - you join because you think you'll get to fly a helicopter and shoot shoulder-mounted rockets for daily exercise. You get there and you realize it's just hard physical work, a bit of mental abuse, and a lot of doing nothing useful in particular (at least until you advance high enough or quit). And so I started coding, dreaming I'll be lording over pixels on the screens, animating machine golems, and helping rockets reach their desired orbits. Instead, I'm spending endless days pushing people to simplify the architecture, so that I can shove my data through four levels of indirection instead of six (and get the software to run 10x faster in the process), and all that to rearrange some data on the screen that really should've been just given away to people on an Excel sheet with a page of instructions attached.
I have a slight fascination with sweeteners. About five years ago I imported a kilo of "Neotame" sweetener from a chem factory in Shanghai. It was claimed to be 10,000-12,000 times sweeter than sugar. It's a white powder and came in a metal can with a crimped lid and typically plain chemical labeling. Supposedly it is FDA-approved and a distant derivative of aspartame.
US customs held it for two weeks before sending it on to Colorado with no explanation. When received, the box was covered in "inspected" tape and they had put the canister in a clear plastic bag. The crimped lid looked like a rottweiler chewed it open and white powder was all over the inside of the bag. I unwisely opened this in my kitchen with no respirator as advised by the MSDS which I read after the fact (I am not a smart man).
Despite careful handling of the bag, it is so fine in composition that a small cloud of powder erupted in front of me and a hazy layer of the stuff settled over the kitchen. Eyes burning and some mild choking from inhaling the cloud, I instantly marveled at how unbelievably sweet the air tasted, and it was delicious. For several hours I could still taste it on my lips. The poor customs inspector will have had a lasting memory of that container I'm pretty sure.
Even after a thorough wipe-down, to this day I encounter items in my kitchen with visually imperceptible amounts of residue. After touching it and getting even microscopic quantities of the stuff on a utensil or cup, bowl, plate, whatever, it adds an intense element of sweetness to the food being prepared, sometimes to our delight. I still have more than 900g even after giving away multiple baggies to friends and family (with proper safety precautions).
We have been hooked on it since that first encounter. I keep a 100mL bottle of solution in the fridge which is used to fill smaller dropper bottles. I've prepared that 100mL bottle three times over five years, and that works out to about 12g of personal (somewhat heavy) usage for two people in that time. Probably nowhere near the LD50.
I carry a tiny 30mL dropper bottle of the solution for sweetening the nasty office coffee and anything else as appropriate. Four drops to a normal cup of coffee. We sweeten home-carbonated beverages, oatmeal, baked goods (it is heat stable), use it in marinades, and countless other applications.
I don't know if it's safe. The actual quantity used is so incredibly tiny that it seems irrelevant. I'd sweeten my coffee with polonium-210 if it could be done in Neotame-like quantities. Between this, a salt shaker loaded with MSG and a Darwin fish on my car, I'm doomed anyway.
It wasn't a good comment, it was a bad comment — I am only sharing it on the off chance that somebody else will remember and post the link.
The discussion had veered to bicycle helmets: should they be required, is there innovation to be realized in their design, something like that.
Somebody posted some comment about definitely wanting people to have a helmet when they crash their bike and hit their head on the curb, and some other person became incensed at their evidence-free assertion that wearing a helmet would be helpful when crashing one's bike and having one's head hit the curb. The incensed party demanded links to scientifically rigorous studies, rather than some layperson's hunch, that helmet wearing would be beneficial in this particular circumstance.
I laughed out loud when I read it, because it so pithily and absurdly epitomized what is often _wrong_ with this website.