468 karma · joined August 21, 2014
One of my favorite sayings is “if you are not careful, you are going to secure yourself right out of business”. Ease of use is a real thing, and if you don’t figure out a way to make a secure app that is also very easy to use, someone else will and your pleas of “but it is not secure” are going to fall on deaf ears.
Honestly, baseline security is part of “essential complexity” https://ferd.ca/complexity-has-to-live-somewhere.html. Essential complexity can’t be removed, but it CAN be moved around. Right now we are talking about the essential complexity of managing security through managing a user’s session length. The advocated solution is to make sessions short so that they expire quickly. This seems to remove all “accidental complexity” so that we are only dealing with the essential complexity. But this is misleading. There is still complexity in juggling those short sessions. As a designer you think this solution is simple, but what you have done is moved that essential complexity over to your users. THEY must now manage the impact of short sessions. The complexity does not go away, you just moved it to your users, hence it is user hostile.
The trick then, if making the best product is important to you, is to figure out a way of letting users have long sessions but managing it on your side. This seems to argue that you are making your system more complex by adding accidental complexity (which is generally a bad thing). But really what you are doing is moving some essential complexity away from your users onto you. You lower their burden. This is how you make competitive applications.
Now, if this is code that runs ventilators for sick people, runs the movement of money for a hedge fund, or balances the US budget, then no, you have to be absolutely, positively sure that you are not causing another problem. But when you have a real problem that is affecting people everyday for years, then a little creativity is certainly called for. Even at the expense of hypothetically causing another problem.
I suggested that the least important thing is How you start, and the most important thing is That you start. Starting the process, in any form, focuses you quickly on the most important things that need to get done first.
I had other symptoms too:
* Heart palpatations, especially at night. My brain interpreted it as anxiety. It wasn’t
* Extreme sleepiness, both after meals and at bedtime. Yet, when I would try to go to sleep I would often lay for an hour.
* Constipation
* When I lifted weights, I would start strong but then would be exhausted after one or two sets. I would rest, but my muscles never seemed to recover during my workout
* Excessively thirsty all the time
Note that I did not think these were all related. On the contrary, most of these I didn’t even realize were a problem really. I just thought that was how I was. Then I read something (I think it was a comment on HN) that mentioned something about potassium deficiency. I researched it and realized that it can cause many of those symptoms that I had. I started taking some slowly at first (you read about all the dangers of too much potassium) and I immediately noticed some improvement. Turns out that you need 4700mg of potassium in your diet and only 1000mg of sodium, but that is often inverted in the modern diet.
I suspect I have a undiagnosed kidney issue that does not allow me to retain potassium like normal people. That, coupled with my high sodium diet made it so that I is constantly flushing out my potassium when my body is trying to get rid of the excess sodium.
I now take potassium throughout the day, primarily a couple of hours after meals and before bedtime. (I also take magnesium at bedtime)
The transformation in my sleep has been nothing but amazing. I used to be one of those people that constantly talked about getting enough sleep. I would regularly sleep 9 hours and still feel like I barely got enough. Now I sleep about 7 hours and feel fantastic. I wake up refreshed and my head is so clear during the day. I still wake up at night (to pee), but I always get right back to sleep.
I suspect that your brain uses electrolytes in the flushing process when sleeping. I have a pet theory that the prevalence of alzheimers and other cognitive decline is due to our high sodium and low potassium/magnesium diets. I always understood the value of vitamins and minerals, but did not appreciate the fact that electrolytes are like the gas and oil of a car engine. They are used daily, but deplete and need to be constantly renewed. Your engine can run when your electrolytes are out of whack, but so many basic functions are compromised. It is not just about running and sweating.
I want to make the required disclaimer to talk with your doctor about this and be careful, as too many electrolytes can be as bad as not enough, so don’t be stupid. I will note that I did talk with my doctor and, though he was receptive, he just wasn’t equipped to explore this level of granular topic. He was used to seeing people that were two steps from death, so when he saw me as an outwardly fit 55 year old, he thought I was doing fine.
I hope this helps someone!
Good, 10x people don’t need pressure to perform. They are self-driven. Unfortunately, most places don’t optimize for the right people on the bus, only someone that can do what they are told. A team or organization populated with self-driven people with good judgement is a force to be reckoned with. A team without these types of people needs to be managed.
How do you find 10x people? Optimize for attitude, not skill set or intelligence.
What I didn’t say but should be a given is that these AI tools won’t be able to completely eliminate the need for any human touch, it will just reduce the need to the point where there won’t be the current huge demand for developers, and thus, the only people that travel down that path will be the ones that are truly passionate about development.
This idea seems wildly inflationary to me, but I would love to hear why I am wrong. We have to remember that someone’s expense is someone else’s income. In other words, if all debt is paid off, then lendors will get a huge payday and have excess income to spend. In the end, this is exactly like injecting money directly into the economy like we did with covid stimulus.
What is happening now is that asset inflation is correcting and goods inflation (a related but distinct concept) is taking hold.
Would it not be amazing and poetic if Microsoft, in one fell swoop, commoditized search (which is 99% of Google’s business model)?
https://www.google.com/search?q=kodak+developed+the+digital+...
When talking about 10x devs (or 10x any type of employee), it is about Judgement. The decisions they make on what they work on, how they achieve it, and (probably most importantly) what they choose NOT to work on. Judgement is the deciding factor in whether someone has a 10x impact on the business over time. It absolutely is not how much code they write. As a matter of fact, removing code can be a 10x improvement as well.
And business requires things to be sustainable. Profit and costs are ever present things we must all be thinking of. There is definitely a tradeoff between business and user experience many times. And the business requires code be maintainable by average developers.
One argument I found effective for the kinds of people that you are talking about is to get past the “academic” correctness of the argument and move it towards the business side. They are technically correct, after all. But they may not correct be from a business perspective.
It is important to frame it in a way that spares their egos. Most (but not all) very smart people know they are smart and it is a large part of their identity. If you challenge that in any way, they will push back aggressively.
How I have learned to frame it is that, from a business perspective, we must make the software both performative AND maintainable. And by maintainable I mean, maintainable by the average human, which they clearly are not. They are smarter than most, but for the business to live beyond them, they need to write the software in a way that an “average” person can maintain it. It can become a new challenge. How to squeak out the best performance while also writing it in a way that someone dumber than them can understand and maintain it. Another way to put it is, there are quite a few brilliant people that can write brilliant code, but only the best of the best can write brilliant code that is also understandable by normal people.
Good luck!
I have a pair of QC20 wired earbuds that I have been using since forever. I have really bad hearing and ironically, I am very sensitive to loud noises (e.g., mowing, flying, road noise on road trips). I really like to have the best noise suppressing earbuds I can find.
Last year I tried many different wireless ones as my QC20 were wearing out. I tried Samsung, Sony, and Bose QC earbuds 1. The ANC (Ambient noise cancelling) in the samsung and sony were just not to the level of my wired QC20’s. The Bose earbuds1 were actually better at ANC than my QC20’s. I was shocked, BUT I had so many problems with 2 different pairs I had to return them. It was all software issues as far as I could tell, but they either stopped connecting to my devices, or the left bud stopped working.
Fast forward to the Bose QC earbuds2 coming out and I gave them a try. They are expensive, but the ANC is world class. The fit is also WAY better than anything else, including the earbuds 1. The nailed it. At $300 I would not hesitate to buy these again if I lost them.
I am clearly not the target market (I think?), but that marketing video on their home page “describing” what this is, has to be one of the worst marketing videos I have ever seen. I watched it and still have no idea what it does. I am guessing it allows you to switch the app that you are streaming? I give up…
https://www.elgato.com/en/stream-deck-mk2
EDIT: I am getting downvoted but I am going to leave this up. I am really not trying to be overly negative, but I feel like this is a missed opportunity for a company that has clearly created something creative that appeals to a certain market niche.
I know that sometimes it is hard for someone that is passionate about their product and wants to create good marketing material, but has a hard time describing things to those “outside” their circle. Hopefully they see this feedback and can use it to further expand their product’s reach.
Even by not using ANY words and only having then children watch a person and then leaving them alone with the contraption would have gone differently. Some would likely have “played the game” because that is what we teach children. But at least some would have likely just gone for the treat.
In any case, it is an interesting thing to ponder!
However, later he says that a home owner with a down payment of 20% is levered 5:1. Yet, if we do the same math as he did above, then 20% of $100,000 loan is $20k in equity with an $80k loan, giving a leverage ratio of 4:1.
This talks about Munger’s concept of multi-disciplines and using lutiple “models” in life. https://25iq.com/2015/08/22/a-dozen-things-ive-learned-from-...
To some people it means “buggy code”. To others it means “not the way I would have written it”. Yet to others it means “code that is hard to understand”.
What it means to me could be any one of those things, but the defining factor is that there is an ongoing ‘cost’ to the code in question. What kind of cost? Usually time-based cost. It takes someone’s time to manage and handle the situation.
It could be that the code causes data inconsistencies that have to be managed by hand occasionally. It could be that frequently updated code takes 100 times as long to change as it should. It could be that the code has grown in complexity to the point that I can’t put a junior developer on it, requiring expensive personnel to maintain. It could be that it compromises the user experience, hampering user adoption.
In all of these cases, the underlying is that it costs money. Like true debt does. Which is why using the term “debt” is a perfect description. I would argue that if a piece of code is clunky, buggy, or poorly written, but has no clear impact on the business in any way, is it truly technical debt? One might argue that the person making the decision to write it that way made a pretty valuable business decision. It is like a 0% loan. Until that loan starts costing you money, you would be a fool to spend time paying it off.