6,784 karma · joined April 24, 2012
It’s not that I inherently think call/apply/bind are bad (JS programmers should understand them), it’s just that they are old JS-isms and arrow functions/map/forEach/etc. follow pretty consistent conventions across multiple programming languages (readability) and with JS compilers you mostly don’t have to explicitly write JS in the old way any more.
It’s kind of like using malloc/variants in C++, you should be able to understand it, but you mostly shouldn’t need it in new code.
If you want to avoid this, you have to use something in your authentication scheme that can't leave the device/user, so we're talking certificate or other public key crypto based schemes.
TLS mutual authentication is one common tactic for this, although the scenario itself is uncommon.
I'd still just use a plain array, but my point was that hash maps aren't necessarily big and unwieldy.
All of the encrypted messaging apps have to deal with the fundamental problem of deferring trust verification to something else, somewhere else, and that work has to go somewhere, sometime. It seems Signal has decided that (1) it shouldn't be centralized, like through Keybase, and (2) verification of identity on first contact is less of a risk than MITM, and the fact that it's possible and people do it is enough of a general deterrence. It'll stop anyone who wants to be stealthy.
That said, linearly scanning is not much different from a hash map with linear probing that has no empty slots left, so it's not necessarily obvious that the hash map actually takes that much more space.
Bit of an odd opener, but at least the author backs it up.
It's also best done without the pressure of "I must come up with something". Sometimes there really is pressure and I have to spend some time to trick myself to build up momentum.
I like to schedule time to go on a 30 minute walk with my phone in Do Not Disturb mode.
Personal email:
* Digital records
* Email newsletters
* Transactions
* Notifications
Work email:
* Almost everything. I'd collapse in within a week if I couldn't write/read long form communications to discuss complex topics with colleagues.
We've absolutely been here before with vitamins, both the fact that they're simple molecules and part where we over-promise what they can do. (Example: vitamin C mega-dosing)
I don’t have to regularly look up how to bold text even in Markdown, but I do have to regularly look up various Bash-isms.
The only real remaining argument I can think of for IE11 is if you still have business-critical, legacy ActiveX applications.
1. Split-key keyboard. Got one when I was getting RSI issues in my wrists. That keyboard really did make a difference.
2. Butterfly keyboard on the Macbook. I hated it. My typing precision suffered. It's certainly subjective, but I was dropping my A's everywhere.
Other than that, my current mechanical keyboard has been mainly just a "it feels nice" thing, not a "I'm a better programmer because of it" thing.
I have, but only under very specific circumstances: playing Overcooked with two players on one keyboard. This will occasionally mean six keys simultaneously pressed and then someone notices key presses just go missing.
Also, not all keyboards with mechanical switches have N-key rollover. Many tout "anti-ghosting" which means different things that you have to look in the specs for.
They have mechanical switches but often lack N-key rollover (I think the blog post gets this wrong) and instead have a watered down form marketed as "anti-ghosting". But that's more than enough for all purposes except maybe Emacs olympics and social prestige with keyboard-philes.
I bought a Filco Majestouch 2 three years ago when I finally had to retire my 8 year old Sidewinder X4, which was a $40 membrane keyboard with deeper-than-usual key travel. I can definitely say moving from that to the Majestouch 2 has not made me a better programmer, typist, or gamer. And it hasn't helped with ergonomics either. It just feels better the same way shelling out the extra couple hundred bucks for a high end graphics card makes games feel better.
I owned an actually ergonomic split-key keyboard as well (Goldtouch) when I developed RSI-related wrist problems as a teenager and kept it around for 15 years. That keyboard made an actual difference and I would take it out of the closet whenever my wrists started acting up even from the Majestouch 2. But you don't usually see ergonomics front and center in super expensive mechanical keyboards - because IMO in that price range and in that community it hasn't been about practical concerns for a while. And that's fine - I'm not going to judge someone's choice of things to collect - but I see no practical benefit to spending substantially more on mechanical keyboards.
For the rest of us where physical coercion to unlock the phone isn’t in the threat model, it really does improve on the trade offs between security and convenience.
Feels disproportionate to say we should not do the latter because of the former.
I don't think it's that they're not smart. It's that they have a separate agenda, often deflecting responsibility. People often use this sort of indirect wording even without consciously realizing it.
I suppose you're right that what I'm describing is just the lack of conscious mental model for what the pixel represents, versus when I'm writing a shader, where I'm actively thinking through the mental model of a pixel.
It still depends on what you’re using them for. Image that will be rendered straight to a webpage? Yeah, it’s probably a fine first order approximation. But that’s not the only context that gets rendered on a modern screen.
Say you’re using it for 3-d scenes. Yeah you absolutely should pay attention to what the paper says about footprint and sampling and filtering because, when you render it onto the screen, all of the processing steps between pixels on a texture to pixels on a screen require awareness of pixel footprint.
The teaching hasn't changed, and the CS field is a very large space, and the Linux kernel is a prominent but small part. That's not to say the Linux kernel is insignificant, just that the CS field is very big.
Personally, I see this as a group of researchers going about it outside well-understood ethical patterns for pentesting and getting punished for it. I think it's necessary for the university to be made an example of, but I don't think it necessarily reflects badly on the whole CS department. Hopefully the IRB does a postmortem of this and concludes that ethical review also needs to field-specialist input in general.