News for hackers. Stuff that matters.
Re:Snow Leopard Update Blocks Intel Atom, Kills Hackintosh by tptacek on Monday November 02, 2009 @11:13PM (#918565)
So, I just took the 7 minutes required to give a casual read to every comment you've posted here, and here's what I've come up with:

* I have no idea what your technical expertise is, because you're anonymous, haven't filled out your profile, and have never posted a technical comment here. You have "a lead developer" and an ex CTO that screwed your company, so I assume you (a) didn't found that company and (b) don't lead a dev team. Once you typed the letters C++.

* You really, really dislike Apple. As evidence for that, I submit the fact that you (a) have never agreed with any pro-Apple comment here, (b) said you have an irrational dislike for the platform, (c) haven't used it enough to make sense in an argument about how app focus works on OS X, and (d) tried to win an argument about how overpriced Apple hardware is by linking to what appears to be the worst-reviewed input device on NewEgg.

* Your dislike for Apple currently constitutes the majority of all your comment-words on HN.

I have no problem arguing with you on how effective software protection could or couldn't be on a standardized ISA with a tiny number of valid build configurations, or how microarchitectural profiling works, or what the parameters are for a "win" for Apple in this cat-and-mouse game are.

I fully accept that you might win that argument; I feel comfortable with my position, though, with some fair amount of practical experience to back it. But whatever.

I'm simply not going to do that until you tell me who you are and why I should take you at all seriously. Otherwise, I'm just going to remember you as someone never to talk to here.

Re:Snow Leopard Update Blocks Intel Atom, Kills Hackintosh by elblanco on Tuesday November 03, 2009 @12:27AM (#918678)
> I have no idea what your technical expertise is...blah blah blah

Correct, correct and correct. I did a fair amount of hacking about as a computational linguist in my younger years. I haven't run into many others who have. So I'd suspect that we'd talk past each other in any technical conversation. Only one correction, I co-lead my company's dev team, usually providing front-end design work, domain expertise and providing pithy input on algorithmic analysis for some of the more problematic issues that regular coding won't teach. Like, "should I recursively crawl an unweighted digraph to find up-to n-length paths between disjoint and incomplete sets of nodes?" or "how should I deal with a sparse matrix when computing the steady state values of an Eigenvector on a graph with an uncertain morphology?" or my recent fav "given a set of a large number of search terms with a lower cardinality bound of 1 million, how can we scan a set of strings against this search set without exhaustively scanning for every search term in the string set while preserving lemmas on the search set? How can we do this phonetically? How can we do this probabilistically in a weighted n-space?"

> You really, really dislike Apple. As evidence for that, I submit the fact that you (a) have never agreed with any pro-Apple comment here, (b) said you have an irrational dislike for the platform, (c) haven't used it enough to make sense in an argument about how app focus works on OS X, and (d) tried to win an argument about how overpriced Apple hardware is by linking to what appears to be the worst-reviewed input device on NewEgg.

I really really dislike Apple's pricing scheme and worse yet Apple fanboys who can inject even the most insane irrationality into any topic that even mentions fruit. For example, our current "discussion" centers around pretty basic business decisions, for which your reply is first disagreement, then agreement but without agreeing with my principle point just to be contrary, while simultaneously insulting me all because I said something to the effect of "Apple can't make the margins work". I think it's the word can't associated with Apple that got you riled up -- I dunno.

Specific responses: a) I have said and agreed with some things Pro-Apple where I see it. Reread my posts in detail. If you want some more, Apple makes a reasonably good OS, writes reasonably good software. It's nothing particularly special, but it's at least modern and up-to-date.

b) I do irrationally dislike the platform, you'll get no argument from me.

c) I used 'em off and on since at least the late 80's. But not terribly hardcore or for any extended length of time. My pretty much unused MacBook Pro goes down in personal history as one of the worst wastes of money I've ever managed to throw away.

d) And then I linked to one of the highest rated input devices on NewEgg and it was still 50% below the cost of the comparable Apple offering. And still nobody could provide any rational statement why Apple's kb/mouse combo was worth $100 other than vague hand waving about being more "productive" or "feeling better about yourself" or some other touchy-feely nonsense. Which is a small scale exemplar of the irrationality that pervades the entire platform from top to bottom...correction, at the bottom. What Apple is doing at the top is perfectly rational from a business perspective. They've managed to finally crack the nut on two things: 1) How to sell absolutely vanilla PC hardware at high margins - something no other maker does effectively, it's the holy grail of the modern computer business. 2) How to get people to use their feelings in a consumer purchase rather than their brains. So people will shell out 20-50% above cost to buy said vanilla PC hardware because it runs that one killer app you can't get on a Windows computer, Steve Jobs' love.

>Your dislike for Apple currently constitutes the majority of all your comment-words on HN.

Good. When the entire Apple ecosystem stops being majority filled with pretentious snobbish self-absorbed assholes too in touch with their feelings to be healthy, I'll complain about something else and have only good things to say about the platform.

>I have no problem arguing with you on how effective software protection could or couldn't be on a standardized ISA with a tiny number of valid build configurations, or how microarchitectural profiling works, or what the parameters are for a "win" for Apple in this cat-and-mouse game are.

To be honest, I haven't kept up with the latest ISA developments from Intel (and I guess AMD since they kinda diverged a bit for a while there into mutually incompatible register and vector unit ops - but I guess they've kissed and made-up). But last time I checked there's a CPUID opcode (0FA2h with appropriate values in EAX for desired returns to check in EBX, ECX, etc.) in the x86 ISA that Apple is probably using to lock out Atom chips. Hackintoshers would have to find where Apple calls CPUID and fill the registers with something else that would pass Apple's processor check, or just force a positive reponse - probably 3 or 4 other approaches or whatever. In other words, probably a 2 hour hack and patch. Maybe they're doing something more sophisticated in their check, but I doubt Apple went through the effort of counting clock cycles on some standard discriminator test-set of opcodes just to determine processor type so they could salt the earth for Hackintoshers.

Dunno, don't care. Point is Apple chose to expend resources building this kind of processor check into their OS for the explicit purpose of preventing specifically Hackintoshers that use Atom powered netbooks. Hackintoshers on other x86 ISA hardware are unaffected. It's kind-of mean spirited in my book. It's also another demonstration that Apple's hardware is perfectly vanilla Intel platform hardware.

I mean, it's not my field. But I can buy a MacBook Pro today and install Windows on it. I suspect the differences between the MacBook Pro and an Atom Netbook are about as great as the MacBook Pro and the Wintel desktop sitting next to me. So I'm not pointing at a particularly small set of hardware and calling it "vanilla". But Apple has to keep their software a bit flexible through mid-cycle revs of their hardware (when was the last time they stealth swapped out motherboards for ones from a cheaper manufacturer or changed video card chipset vendors? The point is that Apple tries really hard to make that kind of thing not matter).

>I fully accept that you might win that argument; I feel comfortable with my position, though, with some fair amount of practical experience to back it. But whatever.

We are probably in violent agreement regarding the technical aspects of what Apple is doing re: stopping Atom based users of their software -- I'll even defer to your greater expertise in the field. And I suspect we're in agreement over why Apple is doing it. What I don't understand is why you've felt the need to pointlessly disagree with me and then insult me and how I've chosen to make my responses. This isn't Twitter last I saw. If my posts are tl;dr for you, then don't bother. Best yet, is that you've so far just disagreed with me for no particular reason other than to disagree with me. You've provided no counter-argument, no factual statement, no business reasoning, nothing except disparaging remarks about conciseness.

>I'm simply not going to do that until you tell me who you are and why I should take you at all seriously. Otherwise, I'm just going to remember you as someone never to talk to here.

Good. Don't talk to me. Other than general statements of adolescent contrarianism I'm attempting to use as a foil against which to provide more overly verbose commentary, you haven't said anything of any particular value in this thread before this post re:using the ISA to check processors. And now I know you're openly vindictive so I don't see this going in a particularly positive direction.

Oh, and once again, no response to a simple question (diff between Apple branded hardware and stock PC stuff). Just contrarianism.

Re:Snow Leopard Update Blocks Intel Atom, Kills Hackintosh by bobhoska on Tuesday November 03, 2009 @03:32PM (#920212)
First, you both are being annoying about the whole thing. From the sounds of it you are both in agreement. tptacek and you are just coming at the same solution from different directions. But it's clear that HN is full of brilliant people both in technology and business.

Second and OT. I'm interested in anything you can share regarding "given a set of a large number of search terms with a lower cardinality bound of 1 million, how can we scan a set of strings against this search set without exhaustively scanning for every search term in the string set while preserving lemmas on the search set? How can we do this phonetically? How can we do this probabilistically in a weighted n-space?"

It sounds like this maps to a particular problem set I'm working on now. Any papers? We've looked into PLSs, numeric hash buckets, independent dispatch of search tests across large distributed systems, etc. All are either no better than a linear exhaustive search in the worst case, too network intensive, too memory intensive or too processor intensive for the applications we're interested in.

Re:Snow Leopard Update Blocks Intel Atom, Kills Hackintosh by elblanco on Monday November 09, 2009 @01:48AM (#930529)
We're dealing with an issue where we have a large corpus of documents to search, and a very large number of search terms to search against this corpus. For example, say you had every comment ever posted in HN and you wanted to search them for every city/state/village/town/etc. The set of places has a cardinality that is very large, and the set of documents to search is also very large.

So to do a linear scan (naive search) of a single source document for each search term gives you some terrible O(n^2) or some such. You can try different techniques like:

1) Turn the document into a n-gram lex-trie where n is some value from 1 to some other single digit n. This effectively compresses all the word combinations down to some very fast per-character search usually a O(logn) I think (or better).

2) Tokenize the document into an overlapping n-gram hash which is basically the same as 1, but you eat up less memory if you pre-compute and keep the document hash-sets someplace else (like in a relational dB) but then you get very I/O bound on searches against the hashsets particularly in worst cases with lots of collisions. Plus this makes adding/removing documents more complicated for our purposes since we already compute various indexes and things for other purposes. Keeping half a dozen different kind of indexes really does start to eat up disk space after a while.

3) We thought about compiling the search list down into a lex-trie, doing the same with the documents, and using some kind of tree comparator algorithm to trim the searchterm lex-trie down, but that would be HUGE in memory usage, and driving it off of disk would probably turn us onto non-trie solutions like b+ trees or b* trees so we can page out the sub tree parts without too much performance hit, but at that point we may as well just be using indexed hash sets and the comparator algorithms get all funky since bx trees do all that balancing business, their morphology is mutable.

4) The best solution we've come up with so far is to set n to our maximum search term token length. Tokenize the document into an overlapping set of n-grams (New York City becomes New, New York, New York City, York, York City, City, etc.). We also have taken the search list and turned it into a big indexed hash, in one test we just shoved it all into a SQLite table (brilliant software). Each document token is simply searched against the table. If we get a result, it's good, if not, it's not a search term. It basically searches the document against the search set, inverting the problem.

So far it's hideously fast and all of our tests for the above 4 cases were single threaded. Once we multithread out the algorithm it should become even faster. Right now in our test C++ code, we run about 1/10 of a second per document (avg 1k/doc) on a search set of 30million terms. We also haven't developed our metrics for when a search list is "long enough" for this kind of thing to kick in vs. the naive search.

Sure you can index the documents down and just do a variation of the naive search, that's what we were advised to do, but it still reduces down to doing 30 million searches/document. Over a corpus of 10 million documents, that's gonna take a while even if a single term search against the index takes 1/100 of a second.

Re:Snow Leopard Update Blocks Intel Atom, Kills Hackintosh by tptacek on Tuesday November 03, 2009 @02:46PM (#920082)
Thanks for the writeup. I've decided not to take you seriously. You might consider jumping back to the top of this comment thread, rereading my comment, and taking my word for it.
Re:Snow Leopard Update Blocks Intel Atom, Kills Hackintosh by bobhoska on Tuesday November 03, 2009 @03:22PM (#920182)
I actually made an account due to this thread after lurking for a while. I think elblanco raised some very interesting points from a business perspective that you didn't counter.

He was kind of a jerk about it. But two salient questions remain:

1) Why doesn't Apple have a netbook offering? "Because they don't" isn't really a good answer. That space is booming and still evolving right now. Apple could come in and define it for the entire marketplace. 2) Since Apple doesn't have one, why would they go through the trouble of shutting down atom based netbooks? Wouldn't this jeopardize future uses for an atom in a lower-end device like the Mac Mini?

I don't think you answered either question in your original comment: "Whether or not this move is an intentional swipe at the Hackintosh trend, I'm rooting for Apple here:

(1) Just from a pure CS perspective, the Hackintoshers seem awfully smug, and I'd like to see them get knocked around by Apple for awhile. In a theoretic sense, it's far from established that Apple can't lock clones out. We have no idea what tricks they might come up with to reject non-Apple gear, and I for one really want to see what they are. When Microsoft did this to the Xbox and X360, we got some incredible systems research out of people like Bunny Huang and the MIT hackers.

(2) Just on general principles, if you don't have a monopoly and you aren't specially regulated, you clearly should be able to sell whatever combination of hardware and software you want to. Other people don't have the right to force you to sell some random configuration of your stuff. It's a really skeevy kind of Geek Exceptionalism that says "there's no GOOD reason why OS X shouldn't run on my Netbook, so you can't stop me"."

So I'm not sure what word anybody is supposed to take exactly.

Re:Snow Leopard Update Blocks Intel Atom, Kills Hackintosh by tptacek on Tuesday November 03, 2009 @03:37PM (#920224)
(1) Because introducing a product at the netbook price point would cannibalize sales that would go to the lowest-cost Macbook, and torpedo their profitability.

(2) Because allowing clones forces Apple to compete with other hardware vendors, and Apple sells a unified hardware/software product, and there is nothing in law or standard business principle that allows us to dictate to Apple how they package their products.

Re:Snow Leopard Update Blocks Intel Atom, Kills Hackintosh by bobhoska on Wednesday November 04, 2009 @03:04PM (#922479)
I don't know what your previous (1) has to do with this (1) ;) But I agree. I think elblanco agrees with you also, only he/she managed to give a reason. I've reread this thread a few times and still can't figure out why you two seem to be disagreeing over agreeing on this.

(2) Apple closed the loop on this when they killed off their clone market. Done right, hardware sales can bring in more money than pure software sales. Allow me to be contrary on one point. "and there is nothing in law or standard business principle that allows us to dictate to Apple how they package their products". Supply and demand would seem to dictate that you should supply what the consumers demand. Apple's done an effective job at controlling/predicting/creating what their consumers demand (for example, I didn't even think about a mult-touch mouse before, now I'm drooling in anticipation of getting one). But they seem to have gone a bit off-kilter here w/r to ultra-small notebooks. The 13" Macbook is huge compared to the 10" netbooks I see at Costco. If it weren't for their ridiculous battery life, I could see trading in my Macbook for a netbook since that's a hugely compelling feature for me.

Re:Snow Leopard Update Blocks Intel Atom, Kills Hackintosh by elblanco on Tuesday November 03, 2009 @03:46PM (#920247)
I'm pretty convinced you're just a troll at this point. The real Ptacek couldn't possibly be this pedantic.