Twitter | Search | |
Rob Napier
Swift and Go. Love 'em both. They make me mad in completely different ways. Infosec as required.
14,440
Tweets
380
Following
6,795
Followers
Tweets
Rob Napier retweeted
The Bail Project 6h
The Bail Project combats mass incarceration by paying bail for as many as we can. We take the lessons we're learning and push for systemic change nationwide. We're in 17 cities and have bailed out more than 7,767 in a little over a year. Our mission:
Reply Retweet Like
Rob Napier 12h
Replying to @earthabbey @modocache
That talk evolves every time I give it. :D The most recent was at Philly ETE.
Reply Retweet Like
Rob Napier retweeted
NewtonTalk Sep 19
Twenty five years ago today, Palm Computing announced the availability of the Graffiti “power writing technology” for handheld computers, including the Apple Newton.
Reply Retweet Like
Rob Napier Sep 19
Replying to @atomicbird
OK, now that I’ve seen that one, yeah, that one is messed up. I don’t get it… Thanks for the pointer.
Reply Retweet Like
Rob Napier Sep 19
Replying to @coveloper @atomicbird
Yeah, this is the case I usually see. The thing that surprises people is that it seems tied to the creation of the CBCentralManager rather than its first use.
Reply Retweet Like
Rob Napier Sep 19
Replying to @atomicbird
In a recent beta? My suspicion is that something is, and they just didn’t realize it (that was the case w/ the dev I was working with).
Reply Retweet Like
Rob Napier Sep 19
Replying to @cocoaphony
I believe the article is not currently accurate about “app makers don’t have any control over when the Bluetooth prompt appears.” I believe it’s now when you create CBCentralManager, which is the right time, IMO (but likely requires some work on apps’ part).
Reply Retweet Like
Rob Napier Sep 19
I still blame the Bluetooth SIG. “Bluetooth” BR/EDR and “Bluetooth” LE are in practice completely unrelated technologies, with different uses, different capabilities, different implementations. As a developer, I don’t know how to make this clear to users.
Reply Retweet Like
Rob Napier Sep 19
Replying to @twostraws
Certainly. :D I got so burned with clever `isEqual:` implementations in ObjC that it’s been my mission to help people avoid those headaches in Swift.
Reply Retweet Like
Rob Napier Sep 19
Replying to @twostraws
In my opinion, it’s usually better to create a custom type (wrapping an Array or Set) that handles whatever special meaning of “uniqueness” you want rather than implementing Equality in a tricky way. This also often avoids the need for hashing (unless your collection is large).
Reply Retweet Like
Rob Napier Sep 19
Replying to @twostraws
If you’re only comparing id, then you mean “if two things have the same id, and other values are different, I *never* care which one I have and algorithms are always free to return me either.” Folks rarely actually mean that. 2/2
Reply Retweet Like
Rob Napier Sep 19
Replying to @twostraws
I think it’s really important in this article to remind folks that “Equality implies substitutability—any two instances that compare equally can be used interchangeably in any code that depends on their values.” 1/2
Reply Retweet Like
Rob Napier retweeted
Dustin Ingalls Sep 18
If you live in & haven't paid attention to the Oct. 8 election, you're not alone. But starting today, you can vote early, so it's time to pay attention. I largely agree with these endorsements, but read on.... 1/
Reply Retweet Like
Rob Napier retweeted
Cindy Sridharan Sep 18
‘jq’ is such a freaking amazing tool. The best part of ‘jq’ is it’s so Unix-y. Using a pipe-esque interface to munge data is the best. To wit: curl foo | jq ‘.[]data | select(.name == “foobar”) | select (.age > 20) | ...’ ❤️❤️ Even makes bash scripts bearable to write/read.
Reply Retweet Like
Rob Napier Sep 17
Replying to @dasmulli @mattt
That approach wouldn’t have fixed -description of course. :D But I do like things like intentionally randomized dictionary order, which break things early if it is implicitly relying on some specific order (and of course has important security benefits).
Reply Retweet Like
Rob Napier Sep 17
Replying to @dasmulli @mattt
Agreed it can’t be fully fixed, but this is why I reject Postel's law in my API design. I try to give good errors, but my APIs are very strict. For example, my APIs are generally case-sensitive. (If they’re insensitive, that has to be documented and part of the test cases.)
Reply Retweet Like
Rob Napier retweeted
Tracy Lee | ladyleet Sep 17
A friendly reminder that we are just ONE WEEK away from the Dev Fest Triangle 2019 "Unconference", hosted by Devs @ RTP. Saturday, September 21st @ Wake Tech RTP Campus in Raleigh, NC. Learn more, and get your tickets here:
Reply Retweet Like
Rob Napier Sep 17
If one specific site is having trouble with auto-fill, what’s the best way to report that? (It’s the login page for , which always fails w/ “This field is required,” then succeeds on the second try. Maybe they want to look into it, too.)
Reply Retweet Like
Rob Napier Sep 15
Replying to @llorenzin
And a lot of Silicon Valley startups showcase how bad engineers can be at running a company… But I do rather like the thinking behind "find people who can get others to work for them without using money." I'd really be interested in case studies that came out of that.
Reply Retweet Like
Rob Napier Sep 15
Replying to @llorenzin
The one point that made me (slightly) dubious of the rest was "no-one ever talks to me about Finance vs Business." I've heard every complaint IT and engineering make about being shut out from "the business" from friends/family/coworkers in finance, legal, sales, HR, mktg…
Reply Retweet Like