HNHacker News
TopNewBestAskShowJobs

mightybyte

3,114 karma · joined October 20, 2007

[ my public key: https://keybase.io/mightybyte; my proof: https://keybase.io/mightybyte/sigs/W3DaSte19QuydDeQO-lgB6CMP8yGPfwbdK6Jx-9k34M ]
submissionscomments
mightybyte··on The Haskell Elephant in the Room
> I'll believe this when somebody buys a house with Bitcoin.

Regardless of whether centuries-old cultural and social infrastructure evolves to take advantage of this, the fact of the matter is that blockchains do actually enable this kind of electronic value transfer. And they do it in a way that results in a number of properties that are significantly different from our existing value transfer systems.

It remains to be seen how important these differences are and how much of an impact they will have on our society. Will it be huge like the crypto-maximalists preach? Or will it be a passing fad that is not much more than a blip? I don't know. But that doesn't change the fact that blockchains were a genuine technological advance that enabled something that we weren't previously able to do.

mightybyte··on The Haskell Elephant in the Room
> Cryptocurrencies and blockchains still don't seem to solve a real problem.

Have you ever wanted to send money to someone who wasn't in the same location as you? Alternatively, have you ever wanted to send a large amount of money without dealing with a large volume of cash, gold, or some other physical store of value (making the down payment on a house or car for instance)? Blockchains make it possible for you to do that electronically, and without the enormous and centralized infrastructure of banks, vaults, guards, armored cars, etc.

mightybyte··on Forbidden Haskell Types
LOL, I've been programming Haskell full-time professionally for 10 years and think that Haskell is very effective for practical tasks. But in this case I completely agree with you. That quote fits this thread perfectly.
mightybyte··on How to use FIDO2 USB keys with SSH
It depends on how you configured your Yubikey. I believe you can configure it both ways.
mightybyte··on Microservices Considered Harmful (2019)
"You are only an expert in a given technology when you know when not to use it"

This is such a great quote. I would also love to know the origin.

I'll also bite on the when not to use static typing bit. Not using static typing is a bit of a misnomer because you can use a statically typed language and just use `String` (or `Bytes`, `Object`, `Value` or whatever the equivalent is in your language). The question is more of whether to use one of these catch-all structures or to use a more structured domain-specific type. And the answer here is when you don't need all of the structure, don't want to force the whole thing to validate, etc. For example, maybe you have JSON getting read into some complex customer data structure. If you only need a single field out of the structure, and haven't already parsed it into the customer data structure for some other reason, it might be best to just reach in and grab the field you need. You can think about it kind of as the principle of least context but in a data parsing scenario.

mightybyte··on Mental Wealth
When I read that, I immediately thought of this article from earlier this year by Tim Ferriss.

https://tim.blog/2020/02/02/reasons-to-not-become-famous/

Having a large and visible private identity has a cost, and I think that post does a great job at illustrating it.

mightybyte··on Trump threatens to 'close' down social media platforms
I imagine I'll get downvoted for this, but I think it needs to be said. Perhaps one way to lessen the spread of misinformation is to not operate services that limit messages to 280 characters. The world is not black and white. Meaningful topics are almost always nuanced and do not lend themselves to pithy sound bites. Let me demonstrate my point in a provocative way:

===== The world would be a better place if Twitter did not exist. =====

Note the lack of caveat, nuance, or elaboration here. It's not conducive to making the argument in a compelling and convincing way, especially not in the ways espoused by Hacker News. People who agree with that statement are going to agree. People who don't are going to be outraged.

If you do agree with the above the real question is what to do about it. Does the problem lie with the people at Twitter? With capitalism? With democracy? With the particular implementation that is the United States? Is this just something inherent to human nature? Or is the internet to blame? There are no simple answers to these questions. But perhaps the mediums that we use to have the discussions have a substantial impact on the conversation.

mightybyte··on CSS Zen Garden
For awhile now I've felt that the CSS libraries like Bootstrap, Semantic UI, etc are never the "right" way to organize your markup and CSS for a large project. They're great for getting out something quick and dirty that looks decent. But once your project passes a certain scale (in size or time spent maintaining it), the balance shifts in favor of semantic markup and style in CSS using BEM or something similar as an organizational paradigm. The latter just doesn't seem conducive to off-the-shelf styles because semantic organization is different for every project.

Another way of thinking about it is that CSS libraries build infrastructure for universal reusable widgets. In the beginning of a project it makes sense to build your app by putting together these building blocks. But as time goes by and the app grows, you start to develop a layer of higher level UI abstractions that are specific to the domain of your app. And when that happens it is often in conjunction with some kind of a re-styling and the old universal building blocks are no longer what you want. I've seen multiple large frontend projects go through these phases, and am starting to see them as a natural evolution of frontend projects.

mightybyte··on The Next Leap in Self-Driving: Prediction
I could be missing something, but this sounds like a horrible idea. I've had two accidents in my life. One of them was caused by inattention--hooray that self driving cars have the potential to wipe this cause out. The other was caused because I was a new driver and I predicted what the car in front of me would do and it didn't do it. It was in my first year of driving and fortunately it ended up being a very minor collision, but I distinctly remember that my conscious takeaway was that I shouldn't try to predict what other cars will do.

If my car is driving, instead of trying to predict the behavior of other objects I want it to do something like a minimax search and do something that will be safe in the presence of the unexpected, not the expected. Prediction sounds like the complete opposite of good driving practices like the rule of following at least 2 seconds behind the car in front of you, which is specifically there to prevent accidents in the rare case where the car in front of you on the freeway does NOT behave in the predicted way of continuing to go 70 mph in the middle of the lane.

mightybyte··on A calculator for the Terminal that renders beautiful math
Haskell can build for Linux, Mac, Windows, iOS, Android, and it can also compile to JavaScript. I don't know what your particular need is, but that fits my definition of portable.
mightybyte··on How strong is your knot?
I second the suggestion of a trucker's hitch. A ratcheting knot can be useful in this situation, but IMO what you're really after is a mechanical advantage. The trucker's hitch gives you a mechanical advantage by using a loop in the rope as a pulley. There are a number of ways to make the loop and it doesn't really matter which one you use. This video gives a pretty nice explanation.

https://www.youtube.com/watch?v=raTYwsfnsXg

Once you cinch the load down using your mechanical advantage, you can use any number of knots (ratcheting or not) to secure it.

mightybyte··on Ask HN: Best language to share code between an Android and iOS app?
So I'm sure lots of people will think that this definitely doesn't qualify as "Best language to share code...", but Haskell has stuff for getting web, desktop, iOS, and Android out of one code base. It's called Obelisk (https://github.com/obsidiansystems/obelisk) and it's actually getting to be a pretty good development experience.
mightybyte··on Ask HN: How Do You Read?
I also read slowly. Between that and the fact that as a programmer you're essentially reading all day long, I never really read much...until I discovered audio books. Now I'm cranking through several books a month listening to them at 2.5 or 3x speed. I think my brain is just better at taking in information that way. I didn't start at that high speed. I started at 1.5x, but I have been able to gradually increase without losing comprehension. It's been a game changer for me.
mightybyte··on Yubico launches its dual USB-C and Lightning two-factor security key
> whose to stop someone from cloning a Yubico key?

That is precisely what these devices are designed to stop. The device has a private key stored in hardware in a way that it cannot be retrieved by software. When you use one of these devices you dramatically decrease your number of attack vectors because now the attack has to happen physically. Someone has to actually steal your physical key. And because this is your "second factor", if that happens they still also have to have your password.

Two-factor apps get closer to this, but they usually can be copied. For instance, 1Password can be set up to mimic Google Authenticator.

> I do want to know if this is purely marketing hype

This is most definitely NOT marketing hype. It is the current security best practice.

mightybyte··on Building ages in the Netherlands
Yes, this was my thought as well. I was in Rotterdam last summer which was mostly leveled by WWII bombing. It was very striking how much more modern the city was than cities like Amsterdam which came away with much less destruction. Obviously the destruction was horrible, but it was really interesting to me how it paved the way for redevelopment and vibrant newness. I guess this should be obvious. The chain of cause and effect is very straightforward and unsurprising in retrospect. But somehow at the same time it also seems counterintuitive how destruction can enable advancement.
mightybyte··on Siri, Privacy, and Trust
I still categorically refuse to enable Siri or any other voice activated technology. And yep...this confirms that was the right decision.

I wouldn't be surprised if those recordings also include classified conversations. Some extremely high levels of classification require you to go into sound isolated rooms and leave your phones outside, but there are still plenty of levels of classified information where that is not a requirement.

mightybyte··on Stunnel and Airline Wi-Fi
IANAL and all that, but my perception is that "hacking" is usually about breaking into someone else's computer / breaching someone else's privacy / accessing data that isn't yours / etc. If that perception is accurate, then I think it's really a stretch to call this "hacking". You're just moving bits around on network infrastructure designed to move bits around. Maybe I'm just looking for a loophole because wishful thinking, but this seems like a decent argument to me.

Now, you could be violating their terms of service. But in this case there may be a good argument that you never accepted their terms of service since you wouldn't have had to click the "accept" button to do what the post describes.

mightybyte··on The new Dropbox
I've used Dropbox quite a bit and over the years via various promotions they ran worked up to over 8 gigs of space while still remaining on their free tier. A few months ago I switched from a combination of Dropbox and Google Drive to SpiderOak which has end-to-end encrypted storage. Been pretty happy with it thus far.
mightybyte··on Introduction to Genetic Algorithms
I used a genetic algorithm to evolve the evaluation function that I used to win this programming contest:

http://dinsights.com/POTM/LOAPS/finals.php

The game's scoring system was based on Lines of Action but added an alternative goal which was to win by points. So in order to play this game well a bot had to balance progress towards one of the goals with the need to make sure the opponent didn't get too far ahead in the other goal. My program was the output of a genetic algorithm that learned a remarkably good balance between these two sometimes competing goals. Before I used the genetic algorithm I spent a lot of time hand tuning the evaluation function and actually came up with a quite good result that I was unable to improve on. When I ran the genetic algorithm I was thrilled to discover that the genetic algorithm's output totally crushed my hand tuned output.

After my program won the contest with an undefeated 74-0-0 record the author of one of the best Lines of Action computer programs in the world played his program against mine. If the organizer of the programming contest had chosen just a slightly different scoring system that was biased a little more towards the Lines of Action goal, then my program would probably lose against the Lines of Action program. The author played two games of his program against my program. Both games ended with his program thinking it won by Lines of Action rules and my program thinking it won by the tweaked contest rules! This suggests that the organizer of the contest had done a particularly good job of balancing the different goals of the game. (No, this paragraph is about the organizer's game design and has nothing to do with the question of genetic algorithms. I just thought it was an interesting side note.)

I really have no idea of whether gradient descent optimization methods would have been better or not. But this was an area where genetic algorithms worked very well.

mightybyte··on A16Z is re-registering as a financial advisor, renouncing its status as a VC
It provides more protection against deletion. But also note that my comment was explicitly not limited to distributed public ledgers.
mightybyte··on A16Z is re-registering as a financial advisor, renouncing its status as a VC
One problem that I think blockchains could be well suited for is the storage of police evidence. Not physical evidence of course, but anything that could be turned into data. There was a scene in the show Billions where U.S. prosecutors tampered with evidence in the from of notes taken while interviewing persons of interest. Since blockchains are at their core a tamper-proof append-only data store, if those notes had been stored in a blockchain that evidence tampering would have been impossible. Any time the stakes are high enough a centralized technology can become vulnerable to people being bribed, etc.

Note that my use of the term "blockchain" here isn't limited to public blockchains. You most likely wouldn't want to store police evidence publicly on a blockchain like Ethereum. You'd want that to be private, but there do exist private blockchain consensus algorithms like BFT that do have the same tamper-proof properties without requiring a public proof of work network.

mightybyte··on Ask HN: How do I ask for a raise?
In my experience, by far the best way to get a raise is to find a new job that you think you will like as much or more than your current job and take it. In addition to the monetary benefits, this will open the door to meeting new people and take on new responsibilities. I've never regretted doing this, and more than once that action gave my overall career trajectory a huge boost, even when I already thought I was happy (which was the case most of the time).
mightybyte··on A faster, more efficient cryptocurrency
This is decidedly not true. Electricity transmission has substantial losses over long distances. Check out this article for more information about how the crypto mining industry uses electricity.

https://hackernoon.com/the-reports-of-bitcoin-environmental-...

mightybyte··on A faster, more efficient cryptocurrency
The "blockchain is bad for the environment" argument has been shown to be grossly uninformed and overstated. It is pretty much all based on one source that has been thoroughly discredited. See this article for more information:

https://hackernoon.com/the-reports-of-bitcoin-environmental-...

mightybyte··on A monad is a monoid in the category of endofunctors, what’s the problem?
I wrote The Monad Challenges with roughly this idea in mind.

http://mightybyte.github.io/monad-challenges/

The idea was to guide people through various important particulars of monads. It still needs some work, but I think the basic approach is promising.

mightybyte··on Ask HN: Who is hiring? (October 2018)
Kadena | Haskell Engineer, Frontend Javascript Engineer | Brooklyn, NY | Full-time, ONSITE

Kadena is hiring a Haskell Software Engineer familiar with functional programming languages and interested in learning Haskell to build out our new public-chain protocol, Chainweb, and further our work in formal verification of smart contracts.

Kadena is building the leading blockchain platform for businesses and enterprises by solving scalability and security concerns that impede widespread blockchain adoption. Founded by two lead engineers from JP Morgan’s blockchain group, our existing technology stack consists of our open-source smart contract language Pact and our private-chain protocol, ScalableBFT, products that are already in use with Fortune-100 clients, coded entirely in Haskell. We believe Haskell lends a decisive advantage through drastically enhanced productivity, excellent concurrency and parallelization support, unbeatable programming-language tooling, and sheer pleasure of coding. We can’t wait to see what you will add to our stack!

http://kadena.io/

For more information, email mightybyte@gmail.com

mightybyte··on An ode to Apple’s awful MacBook keyboard
> Then remap Caps Lock to Escape right now.

I already remapped Caps Lock to Control. And I use Control a lot more than Escape.

mightybyte··on NYC Mesh – community-owned network to replace your current internet connection
It's been awhile, so you could be right. I just bought the router from the NYC Mesh people and hooked it up to my internet connection thinking it would be a nice way to give access to people in need and support what I consider to be a powerful idea and a worthy cause. It was never a big enough priority for me to put effort into figuring out precisely what was going on. If all NYC Mesh traffic in and out of my ISP goes through a VPN, maybe I should give it a try again.
mightybyte··on NYC Mesh – community-owned network to replace your current internet connection
I was participating in NYC Mesh for awhile, but eventually I had to unplug because I got notices from my ISP about copyright infringement and I didn't want my internet access to get shut off. So sad. I really want this effort to succeed.
mightybyte··on Ask HN: Do you get good applications from “Who is hiring?”?
Yes, some. I've gotten at least one good hire (and referral bonus) from one of my HN hiring posts.
← PreviousPage 7 of 23Next →