HNHacker News
TopNewBestAskShowJobs

vogonj

179 karma · joined June 24, 2011

school: UW Seattle '08, computer science and linguistics work: mobile developer at Microsoft

twitter: @vogon

submissionscomments
vogonj··on Microsoft Explains Why the Start Menu Needed to Die
hm, OK. in that case, I'll give Apple the benefit of the doubt and say that if 10.1 and 10.7 could possibly run on the same computer (since 10.1 was PPC-only, and 10.6 and 10.7 are x86-only), they'd let you upgrade directly for $30. thanks for the clarification. :)

(though, I'd still argue, an extra $70 per decade is not exactly breaking the bank.)

vogonj··on Microsoft Explains Why the Start Menu Needed to Die
Incidentally, the total upgrade price from Windows XP to Windows 7 Home Premium is $109 at Amazon right now, and to Windows 7 Ultimate it's $171.(http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Dap...)

By comparison, OS X 10.1 was the latest version of OS X available at XP RTM. OS X 10.2 would've set you back $129, 10.4 another $129, 10.6 another $30, and 10.7 another $30. (I don't believe that you can skip OS X release-level updates, but I'm not a Mac user, so I don't know; if you can, feel free to correct me.) Even if you magically bought a computer in 2001 which would still run Lion today, you would've spent $310 on OS upgrades, for a period of time for which upgrading Windows cost less than half as much.

vogonj··on Microsoft Explains Why the Start Menu Needed to Die
When Windows XP was released, the newest Mac computers were the Power Mac G4, the PowerBook G4, and the white iBook G3. (http://en.wikipedia.org/wiki/Macintosh#History)

The iBook shipped in only one model, with 128MB of RAM. The PowerBook G4 started at 128MB of RAM and topped out at 256MB of RAM. The Power Mac G4 started at 128MB of RAM and topped out at 512MB of RAM.

The smallest amount of memory you can get on a Mac nowadays is 2GB, and you would've had to buy an entirely new computer at least once to get Lion running in the intervening time.

(Whereas, if you didn't buy a new computer since Windows XP came out, you could run the 32-bit version just fine with 1GB of RAM.)

Methinks you doth protest too much about expensive upgrades.

vogonj··on Apple Reveals Siri Voice Interface: The “Intelligent Assistant”
unless Siri has undergone a lot of changes since the last time I looked at it, there is a sharp line between speech recognition and determining user intent/question answering; it was founded as CALO (http://en.wikipedia.org/wiki/CALO), a program which didn't even do speech recognition.

speech recognition maps a space of waveforms onto a space of utterances in a language. determining user intent maps that utterance onto the space of actions.

Siri has done great things in the field of the latter; they license their technology for doing the former from another company.

vogonj··on Apple's 'Let's Talk iPhone' keynote liveblog
nerds haven't been all-about-the-Windows-ecosystem for a decade or more, if indeed they ever were.

Microsoft has had dominance over personal computing for so long because people aren't by and large nerds, and computers weren't fashion statements until recently.

and Microsoft's still trying to catch up with "computer fashion."

vogonj··on Apple Reveals Siri Voice Interface: The “Intelligent Assistant”
it's not an apples-to-apples (heh.) comparison, because Google builds their own speech recognition engine and Siri/Apple licenses the engine of a company called Nuance (at least, last I checked), and so their language scaling is limited by what Nuance can give them.
vogonj··on Apple Reveals Siri Voice Interface: The “Intelligent Assistant”
as someone who works a lot with speech recognition: speech recognition demos differently from how it works in the field. the demoer gets to remove all of the semantic noise from the system (people who aren't Phil Schiller or their wife, choosing "Greek restaurants" instead of a phrase easily confusable with another), leaving only signal.

if it works the way it says on the box -- and remember, Apple already released Voice Control, which has a less-than-stellar reputation -- then it could be revolutionary. voice recognition often doesn't.

vogonj··on Apple Reveals Siri Voice Interface: The “Intelligent Assistant”
I interpreted the parent's comment as being about things like "great Greek restaurant in Cupertino", which are essentially instant search.

but yeah, the reminders stuff in particular is a cool new realm for voice control.

vogonj··on Apple's 'Let's Talk iPhone' keynote liveblog
http://www.microsoft.com/windowsphone/en-us/howto/wp7/basics...

and Kinect voice commands are of equal sophistication.

vogonj··on Apple's 'Let's Talk iPhone' keynote liveblog
yeah. I'm just saying that the magic in the system is that it's a well-designed system with attention to detail, not that it's capable of leveraging anything approaching human intuition.
vogonj··on Apple Reveals Siri Voice Interface: The “Intelligent Assistant”
this is exactly the same as voice search + "instant actions." there's no line between the two.
vogonj··on Apple Reveals Siri Voice Interface: The “Intelligent Assistant”
the standard is 8kHz-16kHz, 8-bit PCM. higher frequencies are of limited utility in recognizing human speech.
vogonj··on Apple's 'Let's Talk iPhone' keynote liveblog
"my wife" is Almost Certainly* explicitly flagged in his address book, either as an alias or through a "relationship" field. he didn't show you that part. (the same is likely true of the geofence, though a location-aware algorithm could probably do a better job inferring where your work is than who your wife is.)

* a term of art meaning "certainly"

vogonj··on Apple's 'Let's Talk iPhone' keynote liveblog
educated guesses:

a) Siri won't work at all, or will degrade to something like Voice Control, if the server is unreachable or you're out of coverage; b) all of your dynamic data (address book, calendar, etc.) needs to be synced to iCloud for Siri to see it; c) third-party extensibility won't be available until iOS 6+.

vogonj··on Node-fib: Fast non-blocking fibonacci server
agreed -- for what it's worth, I've looked into node.js for some of my projects, then thrown it out because I already know other technologies which serve the same purpose. the problem isn't with the technology, the problem is with the marketing (and that includes grass-roots marketing through engineers who swear by the technology as one-size-fits-all.)
vogonj··on Node-fib: Fast non-blocking fibonacci server
<derail>

I find the notion of sharing libraries between the client and server kind of odd, in that people who talk about the "open web" think it's a desirable quality.

it allows you to rev a protocol faster, but at the cost of not being forced to have a point of reference that isn't also intrinsically tied to one implementation of the protocol, which seems a very un-open thing to do to me.

</derail>

vogonj··on Node-fib: Fast non-blocking fibonacci server
disclaimer: I'm not a node.js expert by any means, and most of my day's work is on client code written in system programming languages (C and C++.) that which isn't, is in C#. I don't know of anything in particular that they're doing wrong because I don't really keep in touch with that particular PL community.

that said, my ideal pitch page would contain something to the effect of: "extensive standard library, including robust facilities for concurrent/non-blocking I/O". nothing marketing-y about non-blocking I/O or a given programming model making a language intrinsically "fast" or scalable, like nodejs.org's:

"This is in contrast to today's more common concurrency model where OS threads are employed. Thread-based networking is relatively inefficient and very difficult to use. [...] Almost no function in Node directly performs I/O, so the process never blocks. Because nothing blocks, less-than-expert programmers are able to develop fast systems."

in addition, node.js is in a little bit of a weird position of introducing a whole new language environment for an existing programming language, since node.js is effectively the vanguard of server-side/concurrent Javascript: I'd hope for an official series of tutorials designed to introduce the nonprogrammer, or "Web app-only programmer" of Javascript, to concurrent programming in the large.

that said, the node community might already be doing things like this which aren't obvious to the layman, and if so, good on them. good concurrent programmers are hard to find, and anything that encourages people to learn how to do concurrency well is a good thing.

vogonj··on The State of the Art is Terrible
ARM has a second instruction set built into it called Thumb, which performs a subset of ARM operations in smaller instruction sizes. ARM is also an incredibly complex architecture which -- as someone who can effectively write x86 assembly in his sleep now -- I can barely wrap my mind around.

the core dilemma of computer science is this: conceptually simple systems are built on staggeringly complex abstractions; conceptually complex systems are built on simple abstractions. which is to say the more work your system does for you, the harder it was to build.

there are no stacks which are pure from head to toe. I guarantee you, old LISP Machine developers from Symbolics probably had a hard time designing their stuff as well.

vogonj··on Node-fib: Fast non-blocking fibonacci server
nice strawman.

my point isn't that you shouldn't build up buzz. it's that, when buzz exists around something, your job as a platform implementor includes making people aware of the things your product can't do well, and pitfalls the end-user might run into.

saying "well, it's their own fault for not being clueful enough to know what they were doing wrong, this technology is for pro hackers only!" is developer-hostile.

vogonj··on Node-fib: Fast non-blocking fibonacci server
buzz is omnidirectional -- when people start talking about a technology, platform, or stack, people of all shapes and colors will show up and use it. and when your product pitches itself as having super amazing performance due to this programming paradigm omg!, you are responsible for making its limitations known to all and sundry who use it, rather than assuming prior knowledge.

also, the joyent node.js homepage itself claims, as a business advantage:

  "• Huge JavaScript developer pool at the ready for faster development"
implying that any Javascript developer can just dig their hands right into server code and get working.
vogonj··on Node-fib: Fast non-blocking fibonacci server
to expand upon this, here are some other representative Ted Dziuba posts:

http://teddziuba.com/2010/10/taco-bell-programming.html

http://teddziuba.com/2011/02/the-case-against-queues.html

http://teddziuba.com/2011/03/osx-unsuitable-web-development....

http://teddziuba.com/2008/09/a-web-os-are-you-dense.html

if I had to sum up his philosophy in three sentences, here they are:

your job is software engineering. every bit of fancy shiny stuff that you add onto your software is another thing that can break. the most important decision you need to make in your job is determining when your tools are good enough and don't need further elaboration -- at a certain point you need to stop jerking off about your toolchain, and just ship your project.

vogonj··on Node-fib: Fast non-blocking fibonacci server
you realize that you're just making Ted's point for him from the opposite direction, right?

his point, when you look behind the trolling, is that node.js is not magical special sauce and that shitty coders who write poorly-scaling code will be shitty coders who write poorly-scaling code no matter what technology they use -- the "cancerous" properties of node arise simply because of the amount of groupthink that pitches the Next Big Thing as intrinsically better than everything that came before it.

vogonj··on Steve Jobs contacted Samsung in 2010 to resolve Apple patent dispute
this is Google's actual legal reasoning as to why they shouldn't be held liable for contributory patent infringement in Oracle v. Google:

"[S]ection 271(c) applies only to offers for sale, sales, and importation, but Google does not sell, offer to sell, or import Android or Android SDK. [...] The ordinary meaning of 'sale' requires transfer of ownership for a price. [...] Android and Android SDK are offered free of charge to anyone who wishes to download them off the Internet, however, and there is no evidence that Google ever receives any consideration in return. That undisputed fact precludes a finding of contributory infringement."

http://fosspatents.blogspot.com/2011/08/oracle-v-google-upda...

vogonj··on Web Designers should all be using this idea by now: Font Icons.
one thing I'd like to scream from the rooftops about Web fonts in IE, though: IE respects the TrueType/OpenType embedding level, but at least some other browsers (last I checked) don't. if your Web fonts are set to an embedding level below "installable", IE will refuse to embed them and use the default font instead. double-check to make sure your font embeds properly in IE 9 before pushing to production.

edit to add: to check, open up the developer tools with F12, go to the console, refresh your page, and make sure you're free of errors like this:

"CSS3114: @font-face failed OpenType embedding permission check. Permission must be Installable. iconic_stroke.otf"

(this error taken from the link in the OP, the icons on which completely fail to render properly in IE 9.)

vogonj··on Windows 8 Spells Trouble for Linux, Hackintosh Users and Malware Victims
both of your choices are wrong. Microsoft is doing this because there is already malware that patches the NT kernel and boot manager, and Microsoft gets blamed when it happens: see things like http://en.wikipedia.org/wiki/Alureon, a rootkit which had a bug in it that caused the kernel to crash -- through no fault of its engineering team -- when Microsoft applied a security patch.

you're being kind of a jerk assuming that Microsoft engineers aren't clever enough to nerf Linux like this, given its long history of hacks to both mess with its competitors (http://en.wikipedia.org/wiki/AARD_code) and make sure its software works properly (see a lengthy paper on Windows PatchGuard here: http://uninformed.org/index.cgi?v=6&a=1&p=23 and basically every post Raymond Chen makes about application compatibility on his blog here: http://blogs.msdn.com/b/oldnewthing/)

if Microsoft wanted to kill Linux through technological means, it would be able to do it. the fact of the matter is, it doesn't, or even if it does, it would never be able to convince its hardware and software partners to go along with its scheme.

Windows's support for UEFI secure boot, and its requirement that it ship turned on by default on logo-certified PCs, is a matter of reducing the number of things average people -- people who don't even know what Linux is, much less use it -- complain about Microsoft for, nothing more.

(disclaimer: I work for Microsoft, but I'm not speaking officially on behalf of the company.)

vogonj··on Windows 8 Spells Trouble for Linux, Hackintosh Users and Malware Victims
I'm an employee of Microsoft in the Valley. when I leave work at 6:15, there are maybe 15 people left at their desks in the section of the floor I work on (which has about 150 desks in it.) I know multiple people who show up around 11 and leave by 6.

Microsoft is hardly the worst offender in this metropolitan area, much less the industry.

vogonj··on Eric Schmidt Testifies Before Congress
except perhaps at great effort and expense, you can't gain a monopoly over books on a given topic, and once someone has transferred all of the information out of your book into their mind by reading it, the book has no enduring value to them.

the analogy is more like that of a car manufacturer gaining 90% market share, designing the interface between it and its seats to be proprietary (and preventing other manufacturers from learning about it except through a business agreement with them), then getting into the seat business and making it clear that third-party seat manufacturers make inferior products.

vogonj··on Eric Schmidt Testifies Before Congress
http://www.yelp.com/developers/getting_started/api_terms http://www.yelp.com/developers/getting_started/display_requi... http://www.yelp.com/static?p=tos

"5. Restrictions

You agree that you will not, and will not assist or enable others to:

...

B. modify the Yelp Content, or use it to update or create your own database of business listing information;"

"As between you and Yelp, you own Your Content. We own the Yelp Content, including but not limited to visual interfaces, interactive features, graphics, design, compilation, computer code, products, software, aggregate user review ratings, and all other elements and components of the Site excluding Your Content, User Content and Third Party Content. We also own the copyrights, trademarks, service marks, trade names, and other intellectual and proprietary rights throughout the world ("IP Rights") associated with the Yelp Content and the Site, which are protected by copyright, trade dress, patent, trademark laws and all other applicable intellectual and proprietary rights and laws. As such, you may not modify, reproduce, distribute, create derivative works or adaptations of, publicly display or in any way exploit any of the Yelp Content in whole or in part except as expressly authorized by us."

republishing of Yelp's content, except as allowed by its Terms of Use, Terms of Service, and Display Requirements, is against the terms of your agreement with Yelp, and illegal. even though someone grants you an API to remix their data, their intellectual property rights to that data are not waived.

vogonj··on Eric Schmidt Testifies Before Congress
it's anti-competitive. the question is not whether it's hurting consumers directly, but whether it is stifling competition in the spaces that Google enters, which then indirectly hurts consumers -- a lack of competition, the theory goes, slows down the pace of innovation, and gives dictatorial control over a market sector to one actor. bundling IE with Windows didn't directly hurt the consumer, either (and for a long time, IE was the best browser available on Windows), but it didn't stop the DOJ from pursuing Microsoft over it.

given how steeply traffic falls off as you get farther down a SERP (see, to name the first page I found searching for "serp clickthrough", http://www.pagetrafficbuzz.com/understanding-google-serp-cli...), it's hard to argue that (theoretically) practices which unjustly downrank non-Google properties would not constitute anticompetitive behavior when Google has a 65%+ share of search.

vogonj··on UTorrent.com compromised, malware added to installer
you can either use Courgette or bsdiff or some other binary diff algorithm for compressing code updates, or punt and choose to fully replace all of your code every time you rev.

update verification is a < 100-line block of code using system cryptographic libraries on Windows.

for Chrome-style background updating, the solution is as simple as:

1) running a thread in the background to ping an API to check when updates are available, 2) downloading them via HTTP when they arrive, and 3) having a program which gets run at update-required-exit, which verifies and applies the patch to your main executable.

yes, writing update machinery for your software is some work. no, it's not insurmountable, and will certainly get easier as the Mac App Store and Windows Store gain traction because they allow you to piggyback on the update machinery of the platform.

← PreviousPage 2 of 3Next →