HNHacker News
TopNewBestAskShowJobs

evanspa

228 karma · joined December 29, 2012

Programmer. Currently hacking on Clojure and Objective-C.
submissionscomments
evanspa··on CurrentC Has Been Hacked, Testers’ Email Addresses Stolen
Just being pedantic, but the more accurate term is: secure element. The SE has its own OS (JavaCard) and is usually directly wired to the NFC controller (no iOS in-between).

http://globalplatform.org/mediaguideSE.asp

evanspa··on Emacs 24.4 released
For what it's worth, I learned Emacs out of my desire to learn Clojure. It didn't take too long to develop the muscle memory (a few months of forcing myself to use it). Now, 6 or so years later, I use Emacs for essentially all ad-hoc text editing jobs, and of course Clojure dev. I love using it for my shell (M-x shell) - being able to move about the shell buffer w/out limit is very liberating.

I also do a lot of iOS development, and, I do 95% of editing in Xcode, and 5% in Emacs. A nice thing about Emacs is, if you're on a Mac, is that Mac OS uses most of Emacs' movement keybindings, so even when I'm in Xcode (or any other app for that matter), I can still use my Emacs muscle memory.

I'm not that young; 6 years ago I was 30, and I'm very happy I decided to learn Emacs; no regrets. It's still paying dividends today and will continue to for the foreseeable future.

evanspa··on Stripe – Apple Pay
Just to add to this, there is a body that covers "secure chip" technology: GlobalPlatform[1].

[1] http://www.globalplatform.org

evanspa··on Plastc Card
It's both. Issuing banks can generate the payment tokens, but often, the networks can "stand-in" for the issuer, and generate the token for them on their behalf (the same way that networks can stand-in and do authorization of payments on behalf of the issuer).
evanspa··on Stripe and Apple Pay
Yes, it is.

http://www.google.com/wallet/faq.html#tab=faq-security

evanspa··on Stripe and Apple Pay
No, Google Wallet doesn't. When performing a tap & pay at a merchant NFC terminal using Google Wallet with your Android phone (running 4.4+), your Google Wallet Mastercard card is the card-account actually being used vis-a-vis transaction authorization. Then, later, Google will charge your card that you've configured to be your default-payment card. I do not know if Google is fully implementing Mastercard PayExpress spec, but they are implementing some of it at least. Thing is, because Google Wallet is HCE-based, and thus there's no secure element, they cannot permanently be storing the encryption keys needed to generate the cryptogram(s) and such that are part of a standard EMV transaction (Mastercard and/or the issuing banking of your Google Wallet Mastercard - Bancorp[1] would never allow permanently storing the encryption key w/out a secure element).

[1] https://support.google.com/wallet/answer/2676665?hl=en

evanspa··on Stripe and Apple Pay
With Apple Pay, your physical credit card number is NOT stored on the iPhone 6's secure element; instead, a token is (the token is effectively an alias to your credit card number; it looks like one too - is 16 digits, etc, so will work nicely w/existing payment infrastructure). So there's additional security there. If your iPhone 6 is stolen, you can report it stolen, and the issuing Bank of your credit card will simply invalidate your token. You won't have to worry about replacing your physical credit card. In contrast, if the merchant --- whose app you have your physical credit card number stored within --- is hacked, you'd have to get your credit cards replaced, which is of course more onerous than the former.
evanspa··on The Man Behind the World's Smallest V-12 Engine [video]
Not only that, he had to design and create the MOLDS for the parts!
evanspa··on You already use Lisp syntax
Nice comment. Very reminiscent of PG's "Beating the Averages" essay:

http://www.paulgraham.com/avg.html

Paul's essay was the catalyst that got me to (re-)discover Lisp for myself. Scheme was taught in my CompSci I course a long time ago; but at the time, it was just a weird looking language that I forgot (CS II and beyond was all in C++ at my college).

evanspa··on The Emacs Problem (2005)
The Clojure folks are doing this with EDN:

https://github.com/edn-format/edn

evanspa··on Show HN: Check if your browser is vulnerable to the Apple SSL bug
Safari on 3GS running iOS 6 is vulnerable; chrome on the same device is not vulnerable
evanspa··on Visual Programming Languages – Snapshots
In Lectura 7A of SICP[1], Sussman opens the lecture by talking about how programs can be thought of as character-stream descriptions of a wiring-diagram for some kind of machine. And he actually goes on to talk about the notion of visual programming languages (he didn't think they were a good idea). It's interesting to see these screenshots of visual languages. I must say that I agree with Sussman's reasoning for not liking them (difficult to edit them and they take up a lot of real-estate).

[1] http://ocw.mit.edu/courses/electrical-engineering-and-comput...

evanspa··on Visual Programming Languages – Snapshots
It is.
evanspa··on Why I avoid SDKs in production
I agree. I would just add that there are lots of Busy Bobs, all of whom just want to consume your service, and don't want to have to bother with creating their own JSON/XML/EDN/etc marshaling/unmarshaling code, translating HTTP error codes to whatever idiomatic error-handling construct is used for the language at hand, etc.

When I build an app that needs to consume some REST API, if the REST API provider doesn't already provide an SDK, I'll create my own in each programming language that is useful to me (Objective-C to build an iOS app; Java to build an Android app; etc). To me its the logical thing to do, especially if I intend to create more than 1 app that consumes the REST API in the same language (iOS POC app 1, iOS POC app2, ...).

evanspa··on Bootstrap 3.1 released
That weird box displays as an ad for me.
evanspa··on So Singletons are bad, then what?
This article echoes the same idea (instead of big singleton, view controllers should accept the data they require in their initializer (constructor)) and gives some reasons why to do it this way:

http://www.hollance.com/2012/02/dont-abuse-the-app-delegate/

evanspa··on The problems SparkFun has letting people bring dogs into work
Dog walkers are a simple option.
evanspa··on Where do you find the time for side projects?
This. I have 2 kids, ages 6 and 9, and there's always something to do (help with homework, help with piano, take to soccer, make a cake from scratch together, etc). When everyone's asleep, that's when I work on my side projects. If I'm lucky, I get 2-3 solid hours before my body physically shuts down. I made a decision years ago to do away with tv, video games, etc during "me time," and instead work on projects / catch-up on reading. It's about slow, steady progress. It might take me a month to crank-out what amounts to be 10-hrs worth of work, but, in the end, it gives me more happiness than if I spent that month on tv.
evanspa··on Why I'm Betting On Julia
When I read the opening paragraph, I immediately thought of the author as a Blub programmer [1].

"The problem with most programming languages is they're designed by language geeks, who tend to worry about things that I don't much care for. Safety, type systems, homoiconicity, and so forth. I'm sure these things are great..."

Yes, those things are great. They ultimately aid in helping the programmer tackle the inevitable complexity that arises when building systems in a maintainable way.

[1]http://www.paulgraham.com/avg.html

evanspa··on Workers on Samsung factory site battle police in Vietnam
But it's obvious the world is already broken. It's not a stretch to infer by your post that you are implicitly passing some sort of judgement on the state of manufacturing jobs in these countries, and that is what folks are responding to.
evanspa··on T-Mobile CEO: “This industry blows,” biggest carriers offer “horseshit”
Yes, but after 2 years and you've paid off the phone, that extra $30 or so comes off your bill (quite nice).With ATT, even after your contract expires, you're still paying that extra money for the subsidized phone.
evanspa··on I wrote the Anarchist Cookbook in 1969. Now I see its premise as flawed
But then you're not a pacifist. By definition (at least my understanding / interpretation), a pacifist considers violence unjustifiable in any and all situations.
evanspa··on Mac Pro Trash Icon
For what it's worth, on the Mac Pro product page, there's a snippet about a "Unified thermal core" with a graphic showing a birds-eye view of the machine that would lead me to believe the cylindrical design has an actual purpose to it.
evanspa··on How Class-based Programming Sucks (2011)
Check out the first 20 minutes or so of this SICP lecture. In it, Abelson specifically mentions special relativity as a way for us humans to "model" the real world as immutable values over the continuum of time (in contrast to a mutable world that fits with OO).

http://ocw.mit.edu/courses/electrical-engineering-and-comput...

evanspa··on How Class-based Programming Sucks (2011)
I love Hal Abelson's opening of this SICP lecture[1], in which he acknowledges that OO (with mutable state) is born from the idea of modeling computer programs the way we perceive the world. But then he goes on to say that the reason why OO can be so complicated (because of having to deal with the can-of-worms that is mutable state) is because maybe we have the wrong view of reality.

He then proceeds to launch his piece of chalk across the room! (good stuff). And proposes that instead of the chalk having changing state (position, velocity, etc), instead, its better to thing of the chalk as a collection of immutable values; each value existing at a moment in time. And this of course aligns more to functional programming; and you see the same notion (immutable values over time) with descriptions of Datomic.

[1] http://ocw.mit.edu/courses/electrical-engineering-and-comput...

evanspa··on Has StackOverflow saved billions of dollars in programmer productivity?
SO has helped me tremendously in learning new languages. Java is the first language I learned really well, and it's great to be able to ask SO questions like: "What's the equivalent of an abstract class in Objective-C?" Answers to questions like this aren't exactly easy to extract from the "manual."
evanspa··on Explain Shell
Tried it. The explain read-out seemed reasonable. Care to elaborate how it wasn't informative?
evanspa··on What if successful startups are just lucky?
I'm unable to find a definitive reference, but Gary Player (golfing legend) is also attributed with the quote: "The harder I practice, the luckier I get." Perhaps that's why it was on ESPN.

Pretty sure George Simmons has this quote of Player's on one of the chapter pages in his "Precalculus Mathematics in a Nutshell" book.

evanspa··on Debugging Python Like a Boss
I agree. That, coupled with keeping your functions small (doing 1 thing) and tight, and being disciplined at writing unit tests can go a LONG way when it comes to debugging with simple print statements. Normally I'm able to hone in bugs with a few strategically placed prints, and a re-run of the unit tests. Pouring over stdout log is usually trivial with an incremental search, and the print statement prefixed with some known unique chars.
evanspa··on Weak passwords brute forced
Ah - my mistake. Thank you for clarifying.
← PreviousPage 3 of 4Next →