Forgot your password?

typodupeerror

Comment: What relative cost did to newsgathering (Score 1) 162

by Animats (#40191559) Attached to: War and Nookd — eBook Regex Gone Haywire

You'd think that cutting down the reproduction and stocking costs of a book would free up money for other tasks, but in fact what happens is that editing, design and promotion become an opportunity for cutting what is now a more significant proportion of expenses.

Right. That's what happened to newspapers. Newspaper production used to require a huge labor force. Look at all those people. 67 linotypes! A room full of proofreaders to catch typesetting errors. Hundreds of people moving paper around, making printing plates, loading them onto presses, running the presses, handling the printed newspapers. Compared to the army needed to print the papers, the reporting staff was tiny, a small expense. The reporting and editing staff, the composing room, and the printing plant were all in the same building. Any separation would slow things down, and the competition would "scoop" them.

Now compare a modern large newspaper plant. There are people around, but not many. There's essentially no direct labor. All paper and plate handling is mechanized. The files to be printed are created elsewhere and come in over a data connection. The printed newspapers leave in big trucks. Many different papers are printed in the same plant. The plant is far from the reporting and editorial staff, and is run by a separate corporation from the "newspaper".

So, to newspaper management, reporters are now the big labor cost, the first thing to cut.

Comment: Re:Stupid article. Important point. (Score 1) 126

by Animats (#40190395) Attached to: The Cost of Crappy Security In Software Infrastructure

The intent of the new syntax is that &char[n] buf means passing a reference to an array of size n. char[n] is an array type, something C currently lacks. Syntax like this is needed so that you can have casts to array types.

I've had a few go-rounds at this syntax problem. See "Strict pointers for C". Unfortunately, there's no solution that's backwards-compatible with existing code. However, mixing files of old-style and new-style code is possible, and mechanical conversion of old-style code to new-style code looks possible.

It's worth looking at this again now that C's market share is back above that of C++.

Comment: What porn? (Score 1) 343

by Animats (#40187241) Attached to: What Should We Do About Wikipedia's Porn Problem?

What porn? I have over 10,000 edits on Wikipedia and don't recall seeing any porn. Wikipedia has bios of porn stars and links to their work, but they rarely host actual porn content. It has to be both notable and freely licensed to get into Wikipedia. Commercial porn doesn't qualify.

Is the problem here some religious group with a modesty fetish, or what?

If you want porn, search videos with Google or Bing and you'll find whatever you're looking for.

Comment: Stupid article. Important point. (Score 3, Interesting) 126

by Animats (#40185963) Attached to: The Cost of Crappy Security In Software Infrastructure

The article is stupid. But the language and OS problem is real.

First, we ought to have secure operating system kernels by now. Several were developed and passed the higher NSA certifications in the 1980s and 1990s. Kernels don't need to be that big. QNX has a tiny microkernel (about 70KB) and can run a reasonable desktop or server environment. (The marketing and politics of QNX have been totally botched, but that's a different problem.) Microkernels have a bad rep because CMU's Mach sucked so badly, but that was because they tried to turn BSD into a microkernel.

If we used microkernels and message passing more, we'd have less trouble with security problems. The way to build secure systems is to have small secure parts which are rigorously verified, and large untrusted parts which can't get at security-critical objects. This has been known for decades. Instead, we have bloated kernels for both Linux and Windows, and bloated browsers on top of them.

On the language front, down at the bottom, there's usually C. Which sucks. The fundamental problems with C are 1) "array = pointer", and 2) tracking "who owns what". I've discussed this before. C++ doesn't help; it just tries to wallpaper over the mess at the C level with what are essentially macros.

This is almost fixable for C. I've written about this, but I don't want to spend my life on language politics. The key idea is to be able to talk about the size of an array within the language. The definition of "read" should look like int read(int fd, &char[n] buf; size_t n); instead of the current C form int read(int fd, char* buf, size_t n); The problem with the second form, which the standard UNIX/Linux "read" call, is that you're lying to the language. You're not passing a pointer to a char. You're passing an array of known size. But C won't let you say that. This is the cause of most buffer overflows.

(It's not even necessary to change the machine code for calling sequences to do this. I'm not proposing array descriptors, just syntax so that you can talk about array size to the compiler, which can then do checking if desired. The real trick here is to be able to translate old-style C into "safe C" automatically, which might be possible.)

As for "who owns what", that's a language problem too. The usual solution is garbage collection, but down at the bottom, garbage collection may not be an option. Another approach is permissions for references. A basic set of permissions is "read", "write", "keep", and "delete". Assume that everything has "read" for now. "write" corresponds to the lack of "const". "delete" on a function parameter means the function called has the right to delete the object. That's seldom needed, and if it's not present, the caller can be sure the object will still be around when the function returns. "Keep" is more subtle. "Keep" means that the callee is allowed to keep a reference to a passed object after returning. The object now has multiple owners, and "who owns what" issues come up. If you're using reference counts, only "keep" objects need them. Objects passed without "keep" don't need reference count updates.

Do those few things, and most low-level crashes go away.

I won't live to see it.

Comment: Their site doesn't work, either. (Score 2) 162

by Animats (#40184015) Attached to: War and Nookd — eBook Regex Gone Haywire

"Superior Formatting Publishing"'s web site is broken. It consists mostly of "Whoops, looks like there was a problem get the book data from Amazon. Please try again in a moment" and "Amazon API error". Plus a Kindle ad. And "All of our e-books are formatted specifically for the Kindle by an expert in formatting online content using only raw code."

Comment: Re:How far behind were the criminals/spammers? (Score 4, Informative) 99

by Animats (#40175637) Attached to: How Hackers Listened Their Way Around Google's Recaptcha

Re:How far behind were the criminals/spammers?

At about 75%, from what I read on the black hat forums.

There's a whole social spam ecosystem out there now, with tools and services for spamming Facebook, Twitter, Instagram, Google+, Yelp, Tumblr, Youtube, random blogs, and for retro types, Myspace. It's not just a few people doing this. It's an industry with a supply chain. Read my "Social is bad for search, and search is bad for social" paper for an overview. If it feeds into Google search rankings, it's being spammed.

Comment: A new system every 5 years (Score 1) 288

by Animats (#40169853) Attached to: IEEE Spectrum Digs Into the Future of Money

Most electronic payment systems have very short lives.

  • Exxon Speedpass (1997-2004 for uses other than gas stations) Tried, then dumped by McDonalds.
  • RFID chip embedded in arm (2004)Used in some nightclubs in Barcelona.
  • i-Button (1994) A ring or fob mounted contact-type ID device. Used for bus ticketing in Turkey, and for login security elsewhere.
  • EMV Contact-type smart cards. (1995-date) Popular outside the US, especially for stored-value applications.
  • American Express ExpressPay (2005). Tried, then dumped by McDonalds. Still used by OfficeMax.
  • T-Cash (2011) Send money from your cell phone. Tried in India.

Familiarity breeds attempt.

Working...