Justice Bradley on patent law
Mr. Justice Bradley, discussing US patent law in 1882:
The design of the patent laws is to reward those who make some substantial discovery or invention, which adds to our knowledge and makes a step in advance in the useful arts. Such inventors are worthy of all favor. It was never the object of those laws to grant a monopoly for every trifling device, every shadow of a shade of an idea, which would naturally and spontaneously occur to any skilled mechanic or operator in the ordinary progress of manufactures.
Such an indiscriminate creation of exclusive privileges tends rather to obstruct than to stimulate invention. It creates a class of speculative schemers who make it their business to watch the advancing wave of improvement, and gather its foam in the form of patented monopolies, which enable them to lay a heavy tax upon the industry of the country, without contributing anything to the real advancement of the arts. It embarrasses the honest pursuit of business with fears and apprehensions of concealed liens and unknown liabilities to lawsuits and vexatious accountings for profits made in good faith.
Well said that man! (via)
Tags: advance, business, design, discovery, favor, invention, knowledge, law, patent, step
Announcing IPC::DirQueue
Perl: So, I wrote a new CPAN module recently — IPC::DirQueue. It implements a nifty design pattern for slightly larger systems, ones where multiple processes, possibly on multiple machines, must collaborate to deal with incoming task submissions. To quote the POD:
This module implements a FIFO queueing infrastructure, using a directory as the communications and storage media. No daemon process is required to manage the queue; all communication takes place via the filesystem.
A common UNIX system design pattern is to use a tool like
lpras a task queueing system; for example, this article describes the use of lpr as an MP3 jukebox.However,
lprisn’t as efficient as it could be. When used in this way, you have to restart each task processor for every new task. If you have a lot of startup overhead, this can be very inefficient. WithIPC::DirQueue, a processing server can run persistently and cache data needed across multiple tasks efficiently; it will not be restarted unless you restart it.Multiple enqueueing and dequeueing processes on multiple hosts (NFS-safe locking is used) can run simultaneously, and safely, on the same queue.
Since multiple dequeuers can run simultaneously, this provides a good way to process a variable level of incoming tasks using a pre-defined number of worker processes.
If you need more CPU power working on a queue, you can simply start another dequeuer to help out. If you need less, kill off a few dequeuers.
If you need to take down the server to perform some maintainance or upgrades, just kill the dequeuer processes, perform the work, and start up new ones. Since there’s no ’socket’ or similar point of failure aside from the directory itself, the queue will just quietly fill with waiting jobs until the new dequeuer is ready.
Arbitrary ‘name = value’ metadata pairs can be transferred alongside data files. In fact, in some cases, you may find it easier to send unused and empty data files, and just use the ‘metadata’ fields to transfer the details of what will be worked on.
Sound interesting? Here’s the tarball.
Tags: dequeuer, design, dirqueue, ipc, lpr, module, pattern, perl, queue, system, task
E-Voting in Ireland: signatures needed!
eVoting: Are you an academic, or do you know any academics, working in the field
of computer science in Ireland? If so, you should consider signing, or
collecting signatures, on
this ICTE statement.
It’s eminently reasonable — ’since computers are inherently subject to
programming and design error, equipment malfunction, and malicious
tampering, we join with (the ACM) in recommending that a voter-verified
audit trail be one of the essential requirements for deployment of new
voting systems.’ (thx for the pointer, Simon!)
Tags: academic, computer, design, equipment, error, evoting, field, icte, programming, science, statement
The Google File System
Boing Boing links to a paper on the design of the Google Filesystem, Google’s in-house redundant-array-of-inexpensive-PCs cluster filesystem.
It’s very, very nice — and full of interesting tidbits about Google’s architecture.
-
‘the system must efficiently implement well-defined semantics for
- multiple clients that concurrently append to the same file. Our files are often used as producer- consumer queues or for many-way merging. Hundreds of producers, running one per machine, will concurrently append to a file. Atomicity with minimal synchronization overhead is essential. The file may be read later, or a consumer may be reading through the file simultaneously.’
-
‘The workloads also have many large, sequential writes that append data to files. Typical operation sizes are similar to those for reads. Once written, files are seldom modified again. Small writes at arbitrary positions in a file are supported but do not have to be effcient.’
A perfect example of traditional UNIX system design!
Tags: architecture, boing, cluster, consumer, design, file, filesystem, google, paper, system
GTA3: Vice City secrets
Hmm. I don’t remember spotting a tiki bar in GTA3:VC… must go searching when that VGA adapter turns up. ;)
I’ve been repeatedly struck, while in California, what an incredible job the GTA3:VC designers did with the graphics and level design. It evokes so many visual aspects of US cities, perfectly, and this is pretty impressive when you consider they’re a Scottish games house. This interview details how they did it:
GS: Did you do any on-location studies of any areas to help with the design of Vice City? If so, where did you go, and how helpful was it?
AG: After the near-death experience that was the development of Grand Theft Auto III, the entire team flew out to Miami to recover and soak in the atmosphere of the area. While the rest of the team sunbathed or propped up the News Bar, the ever-industrious art team headed out onto the baking hot Miami streets armed with digital cameras. We split up and covered every area we were interested in using for Vice City. The animation team armed with digital camcorders spent time examining exactly how women in bikinis and roller skates moved, and the city modelers braved both the seediest, scariest parts of Miami and got kicked out of all the best places. By the time we returned to sunny Scotland, we’d amassed countless hours of video and close to 10,000 digital photos. When scouting locations, we tried to get a cross-section of shots — a good few were wide angle to remind us how the place fit together, and the rest were details to aid in modeling and texture usage. The guys in the New York office also sorted out some professional location scouts from the film industry for us who provided us with some really excellent locations for any areas we hadn’t managed to get enough detail on. I can’t imagine capturing the feel of a city without all this resource material, never mind actually spending time in the place. Sending the entire team rather than a few leads allows everyone to understand what it is they are trying to make. We couldn’t have done it any other way.
Tags: area, bar, city, design, gta, hmm, place, rest, team, time
Toilet Flies
Andrew McGlinchey writes about a Fly UI: ‘I have seen one of the finest instances of user interface design ever, and I saw it in the men’s room at Schipol airport in Amsterdam. In each of the urinals, there is a little printed blue fly. It looks a lot like a real fly, but it’s definitely iconic - you’re not supposed to believe it’s a real fly. It’s printed near the drain, and slightly to the left.’
I’ve heard of this one before, and yes, it is an aiming-improvement UI. It started in France around the turn of the century, if I recall correctly. One important fact: it’s not a fly — it’s a bee. You see, it’s also a visual pun — the french for ‘bee’ is ‘apis’, geddit?
(I’d have commented on the blog, itself, but it’s one of those ‘create an account to comment’ places — too much trouble!)
He’s also spot-on about why tea is big in Ireland: ‘The climate is cool, grey and damp. Steady doses of warm drink with a nice gentle caffeine push really keeps you going.’ Hey, works in the Himalayas too ;)
Tags: airport, bee, design, drain, fly, interface, lot, room, schipol, user
Systemic Game Design
Gamasutra reports from GDC Europe. It’s good to see Systemic Game Design is getting a lot more attention these days as CPU power increases on consoles, instead of the random 3D graphics tweakery that predominates on the PC platform. Systemic game design is defined here as follows:
“Instead of hard-coding lots of features into the game .. the systemic paradigm tries to create global patterns which provide emergent gameplay, and the ability to create alternative strategies using the level’s resources. … In this way a player can come up with new ideas to solve problems by combining items in ways that perhaps even the level designers hadn’t considered. This improves the sense of immersion and freedom, while emphasizing player’s self-expression capabilities through the game. … An example of a systemic game is GTA3, where each mission can be solved in dozens of ways, as compared to old lock-and-key adventure games, where player expression and alternative strategies were basically non-existent. In a systemic game world, the player can use different methods to solve a problem. In a non-systemic game world, you must guess how the game designer wanted you to solve the problem, even if that way does not feel very intuitive, nor fun.”
Mmm. Grand Theft Auto 3. PS: GTA3 can also be found on my Amazon wishlist ;)
Tags: design, gamasutra, game, gta, level, player, problem, systemic, way, world
IBM developerWorks on SpamAssassin
Good article about SpamAssassin at IBM developerWorks:
After having used JunkFilter for years, and thinking it was pretty good, I was blown away by how effective SpamAssassin is. I think that this is due in large part to several good design decisions on the part of SpamAssassin’s developers.
Why, thank you! ;)
Tags: article, design, ibm, junkfilter, part, spamassassin
