HNHacker News
TopNewBestAskShowJobs

AndrewO

731 karma · joined January 15, 2009

submissionscomments
AndrewO··on Learning from our Mistakes: The Failure of OpenID, AtomPub and XML on the Web
I was with him until the last paragraph. The NoSQL trend is about bringing more options to the table when solving your specific problem, not trying to take a solution to a specific problem and make it general (as he claims OpenID, AtomPub, and XML do). He's right in saying developers should evaluate it and lord knows there's a lot of hype, but it's hardly related.

Now, if SQL were the new thing and had been developed by a group trying to make a standard API for CRUD operations based on some new generalized "Relational Algebra" concept that they extracted out of a couple of company payroll applications, I'd say he was onto something.

AndrewO··on OAuth Will Murder Your Children
I admit there was some slight hyperbole there. Let's say it's one better than giving out your password because it cuts down on the password reuses issue and you can revoke.

If that's all that OAuth will ever get us, then it's a failure: either because the goals of the spec were infeasible or because developers weren't able to use it to its fullest (I lean toward the later).

OAuth is not about solving password reuse. It's about granting other clients rights to specific resources on your behalf. It's about telling a 3rd party app they can tweet once, and not read my direct messages; they can read my Gmail contacts, but not send; and so on...

I for one believe in the need for this. But the original poster is right: as long as developers request blanket permissions, I'm not going to use their apps. I may be in a small category, but I'll ask again: is this the kind of behavior we want to condition into users?

AndrewO··on OAuth Will Murder Your Children
I see a couple of responses saying users don't care about this and they'd never read a dialog box.

Honestly, if that's the case, what's the point of OAuth then? Why don't we just go back to handing over usernames & passwords and trusting some 3rd party to not do anything nasty? With everyone constantly complaining about Facebook privacy concerns and hijacked Twitter accounts, how can anyone pretend that conditioning people to allow the maximum set of permissions to a complete stranger is a good thing?

AndrewO··on Dear Google: please let me ban sites from results
Which brings up another point: I think that if anything is going to threaten Google in the coming years, it'll be the quality of their social graph. Gmail gives them a lot of data, but if my inbox is any indication a lot of it is somewhat ambiguous. Aside from that their social apps haven't done too well (in most places).

Facebook, on the other hand, has developed a system where nearly every user activity creates a new easily processed and meaningful connection between users or out to the web itself. And those connections are probably closer to representations of some kind of trust than "I email that person a lot".

Anyway, I'm not saying the sky is falling for Google, just that search appears to be changing for the first time in awhile.

AndrewO··on Dear Google: please let me ban sites from results
It seems to be a particular affliction among our group (by that I mean anyone who spends a lot of time here) that once we learn to apply one revolutionary/disruptive idea, we can't stop even when we probably should. I'd say it's because we're used to trying to think of how to scale-up every idea, but I've been accused of armchair-psychology before... :)
AndrewO··on Dear Google: please let me ban sites from results
I see a lot of people asking what happens when a group of people downvote a site just to ruin its ranking. Sure that's a problem, but there's an easy solution on Google's end: your blacklist only affects you. Yes, that means all of us have to hide efreedom ourselves. Doesn't seem like a problem to me...

Plus, we are talking about a company whose core business demands that it can identify groups of bad-faith voters. Given time, they may find a way to incorporate this data safely into the ranking data (if anyone could, it would be Google).

And I know there are extensions to do this (mine mysteriously stopped working recently), but doing this on the client-side in a way that's bound to a single browser install just seems wrong to me, especially for Google.

AndrewO··on It's 1975 and this man is about to show you the Future
I would love to hear the narration that goes along with this.
AndrewO··on Remote Conductor: Turn iPad Into a Mac Input Device
Just got it and I'm pretty impressed. Two things I'd like to see though:

1) the ability to bring up a keyboard (I had to lean forward to type something in. C'mon! :-)

2) the ability to pinch-zoom Switcher window previews. One of the frustrating things about Exposé for me is the unpredictable size & location of windows, especially when they look similar shrunk down. I'd like to peak closer at a window before I select it.

One note I had: I originally thought, "this'll be great because I'll be able to have an interactive animated trackpad!" but after using it, I feel like the use-cases for the Trackpad vs. the Switcher & Application chooser are slightly different. As a trackpad, I'm sitting closer to the computer and hardly looking at the iPad (but I do like the extra space), but I feel like the other two modes are better for sitting back and doing more casual surfing activities. Dunno if that's just me getting used to it though.

Anyway, good job and good luck!

AndrewO··on Apple's Best Kept Secret: Ad Hoc Installs for Testing Purposes
This is great when combined with Dropbox's public folders. I recently developed an app where I pushed 40+ builds out to testers. On every bugfix or new feature, I just had to Build & Archive, save the IPA directly to Dropbox and then give it the public URL.

I stashed an HTML file in the same folder with a link to the provisioning profile (also in the public folder—when you add new devices this needs to be updated) and the IPA file. Testers could bookmark the page and grab a new version whenever they wanted (or whenever I notified them).

AndrewO··on A Chrome extension to avoid the Stack Overflow ripoffs
It's sites like these that have made me wish I could downvote or mark-as-spam from the search results. Why can't I tell Google that I never want to see results from certain URLs ever again?
AndrewO··on Jason Fried: How to Kill a Bad Idea
Agreed. I'll hand it to Jason Fried though: it's good to see someone try to relate the concepts in Mythical Man Month to non-programmers.

I recommended MMM to a friend when problems at his workplace sounded like things that came up in software design or project management. But when I reviewed the book, I found that a lot of the big-picture concepts required if not understanding, then at least familiarity with programming and/or older computer systems. It's still a good book, but I ended up feeling like he wouldn't get what I got out of it.

AndrewO··on [dead]
Wow—now I kind of want to see what could have provoked that kind of response...

I like Steve Martin as a comedian, but he's pretty talented in other areas as well (e.g. banjo). Sounds like a lot of people missed a chance to see another side of him.

AndrewO··on Can you name the Programming Language if You Know The Creators?
I feel like I cheated on BASIC: I didn't know the creators, but it was the only big one from that era I didn't have yet.
AndrewO··on The Ruby Stdlib is a Ghetto
Good points (I'd forgotten about FasterCSV and Psych).

I guess it's a mixed blessing if your library becomes part of stlib. On the one hand, it's gotta feel great to have so many people using your code. But on the other, your release cycle is pegged to Ruby's.

AndrewO··on The Ruby Stdlib is a Ghetto
I got the updated version of the Pickaxe recently and skimmed through all of the 1.9 updates. I was appalled to see REXML is still the blessed XML parser. I liked it when I started using Ruby and I still see it in the wild, but to me that's usually the sign of old code or a developer not tuned in to the latest developments.

On the other hand, there has been some progress. It's good to see MiniTest replace Test::Unit (while also remaining mostly backwards compatible).

AndrewO··on New to PHP 5.4: Traits
In addition to what the others said, these two pages make the arguments that convinced me:

http://blogs.msdn.com/b/scottdensmore/archive/2004/05/25/140...

http://www.c2.com/cgi/wiki?SingletonsAreEvil

I don't know the particulars of how PHP's ArrayObject works, but take Ruby for example: instead of inheriting from Array, to make a class that operates like an array, one mixes in the Enumerable module (similar to a trait) and implements an "each" method to handle the low level access. All of the other methods come along with the module. In this way, the lineage of a class isn't important; rather, it's what it actually does that matters. (How meritocratic! :-)

But particulars of any language aside, I think this is an important step for PHP. Once a language gives the ability to compose the behavior of a class through traits, modules, mixins, etc rather than standard inheritance, it becomes easier to separate the data that a class encapsulates from the behaviors that it provides—and that, I believe, leads to more modular code.

AndrewO··on New to PHP 5.4: Traits
It makes my skin crawl to see the first example use case be combining inheriting from singleton and the array class. It looks like PHP is finally getting advanced OOP features and the first thing someone wants to do with them is make a singleton (which violate single responsibility, also introducing global variables and tight coupling) that extends arrays (when delegating to an array instance is usually a better choice).

I know this is a single example, but I feel like I've seen bad OOP practices in PHP so many times in the past. This is such a rich feature but it brings with it a lot of potential for misuse.

AndrewO··on Facebook’s Modern Messaging System: Seamless, History, And A Social Inbox
People are aware of Facebook’s Cassandra system, but now they’ve built something new called hBase...

As in Apache HBase? Not to be too pedantic, but that's not really something that Facebook "built". I'm assuming that was an error on TC's part.

AndrewO··on Mac App Store Guidelines full text
By "language" does 2.22 mean programming language or i18n?
AndrewO··on What's the most mind-blowing fact you heard/read in your life?
I'm not sure if this is the most, but Cantor's Diagonal Argument[1] is the first that comes to mind, probably even more as an example of a creative approach than for its implications (although those are pretty huge too).

Charles Petzold's "Annotated Turing" has a great run down of this and a bunch of the other mind-blowing things that came out of math in the late 19th/early 20th centuries.

[1] http://en.wikipedia.org/wiki/Cantors_diagonal_argument

AndrewO··on [dead]
Here's the one thing I don't get: what's the difference between the $25 pair of Levi's and the $169 Joe's Jeans? I've never understood what you're actually getting for that. And I've heard label, label, label and a ticket into the hip crowd, but how can anyone even tell them apart to know how awesome you apparently are?

Maybe it's just the lighting, but I don't see any difference. But then again, it took me years to figure out that just because you think you're a relaxed person, doesn't mean you should wear relaxed fit jeans.

AndrewO··on Rumpetroll - a new Websockets/HTML5/CSS3/JS experiment
I tried typing /turboboost and /lightningbolt and it did nothing. I was a little let down. Still, it's a good demo of some new technologies.

You can make your own fun though. I swam past a bunch of other tadpoles yelling "Don't go that way! MONSTERS!!!"

AndrewO··on HN Poll: What is your personality type?
If you keep asking a person in different ways if they're always in the middle of a party or standing next to the wall, you'll eventually find out if they consider themselves to be introverted or extraverted. Likewise for the other traits. But, at their coarsest levels, people probably already have an inkling about those. (E.g. before you took the test, did you think you may actually be extroverted, feelings oriented, and sensing?)

I think when it comes down to it, we take these tests for the enjoyment we get in reading about ourselves later. (The Great Facebook Personality Quiz Epidemic of Ought Nine is the foremost recent example of this in action.) It tickles that part of our brains that says "Someone's taken the time to get to know me—I must be important!", even if that someone is really an algorithm. And it's that, combined with all of the parts that are "right", that allows us to overlook the parts that are vague, over-generalized, right-but-with-certain-caveats, or flat-out wrong.

AndrewO··on HN Poll: What is your personality type?
Knowing personalities is certainly essential. But, I think if you want to find that out, it's better to interact with them and form your own opinions and talk to others who've done the same. Using a 4-dimension set of binary states (just to pick on MBTI here) will only tell you what you could have found out faster, cheaper (there's an industry around these things), and without making the person feel like a replaceable part.

In an interview situation (where you have less time to decide than building an internal team), that could mean going through hypothetical situations and finding out how they would solve a problem, having multiple interviewers, and checking on references. Having them take a personality test beforehand sends a signal that as an employer, you're not willing to take the time to get to know them, which starts everyone off on the wrong foot. Also, IANAL, but it sounds like a lawsuit waiting to happen.

AndrewO··on HN Poll: What is your personality type?
Nope—Leo. But I just read the description of Sagittarius and, wow, it sounds a lot like me. ;-)

(I'm also a Phlegmatic, and we're a naturally skeptical bunch.)

AndrewO··on HN Poll: What is your personality type?
I couldn't let this pass without bringing up the Forer Effect [1]: basically, that people will believe just about any vague generalization as long as they think it's been tailored to them.

For all of the "science" that goes into building the models for these tests (not just MBTI), any that rely completely on self-evaluation (especially multiple choice questions), should be taken with a huge grain of salt. They're fine for entertainment, but for anything practical they should be regarded as one step above astrology or haruspicy.

Just to provide an example of the worst case, I've seen companies hold personality test workshops, only to have that bind their thinking and give them reason to quash dissent ("Of course... that's what a XXXX would say" or "I really need a YYYY on this project"). Too many times these things turn into a substitute for actually getting to know your employees' strengths and weaknesses.

I don't want to be seen as overreacting to a simple harmless poll, but I do want to make sure people aren't giving too much credence to their (or others') results.

[1] http://en.wikipedia.org/wiki/Forer_effect

AndrewO··on Scalable ACID
"NoSQL" has come to symbolize a number of different things, depending on who you're talking to and when. I've seen all combinations of one or more of the following:

1. The rejection of what some see as an overly complicated and inflexible query language in favor of map-reduce phases or other application-side querying/processing.

2. The rejection of serialized transactions in favor of something like eventual consistency, often with application-specified conflict resolution.

3. Or it could be a rejection of the relational model (especially as it is popularly implemented) in favor of key-value, graph, document, column-oriented, etc. models.

If I read you and the authors right, I think you're thinking more along the lines of 3 and the authors are focussing more on 2.

I think both "sides" are just starting to come to grips with the idea that these design choices can be orthogonal (a relational DB without SQL? an eventually consistent SQL DB? a graph DB with 2-phase commit?) and choosing to reject one part of "the old way" doesn't mean you have to reject all of it. The upshot is, we're going to have a lot more tools to choose from for our own unique problems.

So, I'd say: don't worry about feeling like a curmudgeon! Rigidity will have its place in the beautiful gleaming pluralistic future of datastores that the SQL vs. NoSQL "debate" is building the road towards.

AndrewO··on Martin Odersky on Scala and Clojure
I especially liked the joke at the end. It came through as playful dig at one of the key design differences between the languages and was answered in that spirit. Kudos to both of them.
AndrewO··on Ruby Benchmark
That's a great idea. I'd really like to see a "raw" format option on the server that would give the code and metadata in a structured format.

With that one could write a tool that suggests improvements to code as it tests it using this as a sort of crowd-sourced benchmark suite. It may not be 100% accurate, but at least it would give verified data instead of the educated-guess strategy most of us employ now.

AndrewO··on Starbucks Does Not Use Two-Phase Commit
Yeah, you might be right... I probably need to talk to more laymen. :-)

Maybe I should have said "managers with a decent technical background" instead.

← PreviousPage 2 of 7Next →