809 karma · joined August 29, 2013
Estimating effort is important. Work is an investment, so the decision to invest changes with the amount of work.
I think this lesson can only be learned the hard way: create a new application and try to get users. You’ll learn where you spend time and get better at estimating. You’ll also appreciate why “simple” features appear slowly in software you use.
But not much of that wealth is liquid. Hyperinflation hurts savers.
Everyone who holds Tether is holding Tether’s bag. If you don’t own tether, this doesn’t directly affect you. Most of the people I know don’t own (and have never owned) Tether.
The solution will have to be pluggable. But I think it is possible, and there are sane things to do (e.g. fall back to vanilla git) when there are missing plugs.
My employer gets more labor. I feel more rested, so I engage more with my work. I’m interested in hearing perspectives where this is a bad thing.
For instance, in the not-so-distant past many Americans found interracial marriage morally abhorrent. Wikipedia says only 5% of Americans thought interracial marriage should be legal in the 1950s. In today’s environment, that leads to deplatforming those who would’ve supported marriage equality. This is not something we would desire.
People are full of prejudices. I’m sure our grandchildren will look back in horror at ours. Let’s not deplatform them for that.
Are Apple laptops higher quality, compared to competitors (despite design issues)? My current Macbook had the screen laminate peel off after a few years. To Apple's credit, they promptly repaired the machine at no cost. But I've had friends with similarly priced laptops (XPS, Razor, ...) who encountered similar build-quality issues, but did not receive the same level of support. Granted, all this evidence is anecdotal. I am curious to see across the board comparisons.
Plus, I'm in the market for a new laptop anyway, so this would be a valuable data point. :)
Of course, PoS like Ethereum's takes much inspiration from byzantine paxos. But I wouldn't call this a solve problem, and crypto has innovated in this space. We can just debate whether or not the innovation has been worthwhile ;).
Just on Monday, I was bitten by a bug caused by operator overloading. I'm building a static analysis tool in C++. There's a method `getType()` that returns the qualified type of an expression. I had a call to `getType()` nested in some other calls, e.g. `expr->asAssignmentExpr()->getRHS()->getType()->getSomeQualifiedTypeProperty()`.
The creators of the `QualifiedType` type that's returned by `getType()` had overridden the class member access operator to return an UnqualifiedType. This problem took me an embarrassingly long amount of time to diagnose. The compiler error messages told me that `UnqualifiedType` doesn't have a property `getSomeQualifiedTypeProperty`, but I couldn't see why I was getting an unqualified type from a method that is supposed to return a qualified type. I searched the documentation online, searched the header files, tried reinstalling the library, nothing made sense.
Then, I learned this operator had been overloaded. So, I just needed to write `expr->asAssignmentExpr()->getRHS()->getType().getSomeQualifiedTypeProperty()`.
Ouch.
I had experienced all of these problems. Initially, I was attracted to Haskell for the promise of “if it compiles then it’s probably correct.” I quickly discovered that isn’t true, for the reasons discussed in the article.
But I also had issues with Cabal. I couldn’t get Snap to install. I tried installing it in a container, still didn’t work. I finally figured out something that would let me build with Snap, but for some reason LSP in Emacs couldn’t find the snap libraries, so it couldn’t provide me correct feedback. And then the build times. Wow. I gave up on writing that program in Haskell and wrote it in Go instead.
I think Haskell has a lot to offer. I’d be open to trying it again. Hopefully these shortcomings improve.
I'm interested in if that data is useful to anyone?
Also, why not trust a central entity with that data?
But static typing has a few key benefits:
* No searching through comments for type constraints.
* Better autocompletion.
* Better compilation.
* Better serialization/deserialization.
I do think static typing pays for itself in the long term. Sometimes, we shouldn't care about that. Engineering means managing tradeoffs: short-term velocity vs long-term performance and maintainability?
How much money has Microsoft made selling Windows vs Linus off Linux?
How much money does Apple make off iThings?
Is there any profiler that does this today?
What are the drawbacks with asynchronous drops?