jlm-blog ~jlm

May 5, 2012

RSS death, the Javascript trap, and SaaS

Filed under: web — jlm @ 12:34

I read this recent post by Vambenepe on the campaign to kill RSS, and it bothered me. RSS/Atom is what makes a dynamically updating web usable, and here it as an open, decentralized protocol was being replaced by closed SaaS offerings under central control. For a reason I wasn’t sure of, it reminded me of Stallman’s anti-SaaS essay “The JavaScript Trap” from some time ago. That essay didn’t sit right with me: Because your software comes from a webserver on demand, instead of being pre-installed locally, doesn’t make it or what it does any more or less free, and Stallman’s solution of blocking javascript not tagged as being under a free-software license is impractical. And indeed, in the years since, we’ve seen plenty of open source javascript code written and published, coexisting alongside a vibrant ecosystem of proprietary javascript code, just like we have with client application software.

But it finally gelled: The problem with SaaS is that it welds the data to the code.

Let me explain using “traditional” software applications as an example. You have documents you edit in Microsoft Word. These documents are .doc files which are on your disk drive and you can do anything to them that you can do with any other file: Copy it, delete it, encrypt it, archive it to tape, attach it to an email, etc. All outside of Word. If Microsoft does something to annoy you, you can even edit the documents in WordPerfect or AbiWord or OpenOffice or anything else which understands the .doc file format, which there are plenty of because file formats aren’t protectable as intellectual property.

Contrast this with the SaaS situation: You can’t give a WebDAV address to Google Docs for a document you want to edit in that webapp, and have it open and save to that file. You can’t manipulate your Docs files at all, except through the webapp. The only way you can (eg) attach it to an email is to be using Google’s email webapp, and hope that Google’s programmers have provided integration between them (at time of writing, they haven’t).

In short, if you want to use Google’s word processor, you have to use Google for its data store. You can’t say “I love Google Docs’ UI, but I prefer to use Amazon for data storage.” SaaS leverages control or preference of one aspect (the code) into use of another aspect (the data). Why should the SaaS provider have custody of your files? You can store your data with any number of hosts, and the “cloud” lets you access that data from any client machine. But not if you want to access a webapp. Then it’s only if your data is hosted with the SaaS provider. And that’s the real Javascript trap.

April 21, 2012

Fun with metafunctions

Filed under: math — jlm @ 23:14

In mathematics, a function is a mapping from one set (the domain) onto another (not necessarily distinct) set (the range). Now, you can cause all kinds of weirdness if you let elements of these sets be functions themselves. Like, you can define a function k from integers to functions from integers to integers, which are the “constant” functions of that integer: if j = k(x) for some x in Z, then j(y) = x for all y in Z. j is a function which carries the x inside it, waiting to be applied to an argument, which is ignored and now the hidden x emerges. Written more densely, k(x)(y) = x for all x, y in Z.

But mathematics doesn’t allow you to do what’d be the most fun: Calling a function on itself. This is because you’d have to include a function in its own domain, and you get to an infinite regress, because the formal definition of the function includes specifying its domain which contains the function whose formal definition includes its domain … and you can’t build such a thing in set theory.

Okay, suppose I try to get around this problem by introducing a set Σ containing non-function elements which maps 1:1 to the functions from Σ to the integers Z. This can’t work because Σ has to be “bigger” than itself. So, suppose Σ only maps to a few of these functions. This seems like it should do, and can I just declare that any several functions I’m interested in have mappings to Σ, and functions obtained by Cantor diagonalization simply won’t. Let a be the function that maps (some of the functions from Σ to Z) onto Σ and b be its inverse.

Neither a nor b is a function from Σ to Z, so I can’t apply a(a) or b(b), so my attempts at self-applying need to be more subtle.
Let’s define a function from Σ to Z, and declare it to be a element of a‘s domain:
    f(ξ) = b(ξ)(ξ) + 1
here ξ is a element of Σ, so b(ξ) is a function from Σ to Z, and b(ξ)(ξ) an integer, so it seems to work out.

I declared f to be in a‘s domain, so a(f) exists and is an element of Σ, let’s call it θ.
Now I can finally achieve something close to application-on-itself with f(a(f)) = f(θ).
What can we say about this? Well, its value depends on b(θ)(θ).
But b is the inverse of a, so b(θ) = f, and so b(θ)(θ) = f(θ). But we defined f so that f(ξ) and b(ξ)(ξ) could never have the same value!

See what fun functions of functions returning functions are. :-)

March 30, 2012

Haiku proof

Filed under: math — jlm @ 12:01

Product of all primes
Incremented won’t factor
Thus a larger prime.


I wonder if it’ll catch on…

March 17, 2012

Berkeley library fire

Filed under: misc — jlm @ 13:39

I just got home from biking to the Berkeley Central Library, to find the police and fire department there, the library closed off. The BFD was non-urgently sweeping water out the doors, while the evacuated library building had its fire alarm still going. So, it looks like there was a fire there, extinguished by the sprinklers. It didn’t look like there were any injuries, but I worry about the damage to the books, hopefully it won’t be significant.

March 4, 2012

More links, less commentary

Filed under: misc — jlm @ 20:12

I seem to be bereft of interesting prose to spout, so here’s a link dump instead.

File-sharing based Kopimi (as in, “copy me”) recognized as a religion in Sweden. Interview with the founder.

Witness some software management failure recorded in a bug log.

Growing up in postindustrial Wales.

How the Dutch got their bike paths — they fought hard for them.

African development’s killer app: Cell phones.

Enjoy, peeps.

January 6, 2012

Gitmo warden: “Close Gitmo”

Filed under: politics — jlm @ 19:59

Ten years ago, M.P. Col. Terry Carrico became the first commander of Camp X-ray, the Guantánamo Bay detention camp. Now out of the military, he talks to the media about the camp he opened.

Carrico also says plainly that he believes it is wrong to keep people indefinitely without trial based on secret evidence.

America should be a nation where this never happens. That we will not be imprison people without trial should be woven throughout our identity of what it means to be American. Gitmo is an open wound, self-inflicted, on our very national identity. It’s been bleeding for ten years. We must close it, or lose what being American is.


More: Story from an innocent who spent over 7 years at the camp before being released via habeas corpus. This is what we’ve done. Let’s change. Ten years is long enough to know that this experiment has failed.

January 4, 2012

With Iraq, it’s the 1980s all over again

Filed under: politics — jlm @ 21:36

While visiting family over the Xmas break, I came across this article from the New York Times republished in the Sacramento Bee.

BAGHDAD – The Obama administration is moving ahead with the sale of nearly $11 billion worth of arms and training for the Iraqi military despite concerns that Prime Minister Nouri al-Maliki is moving to consolidate authority, create a one-party Shiite-dominated state and abandon the U.S.-backed power-sharing government.
[...]
While the United States is eager to beef up Iraq’s military, at least in part as a hedge against Iranian influence, there are also fears that the move could backfire if the Baghdad government ultimately aligns more closely with the Shiite theocracy in Tehran than with Washington.

Well, how about that. Just substitute Obama with Reagan, al-Maliki with Saddam Hussein, and swap Shiite for Sunni and enjoy the déjà vu.

December 14, 2011

Kentucky Board of Education smacks down creationist school superintendent

Filed under: politics,science — jlm @ 17:50

http://www.evolvingscientist.net/2011/12/someone-got-ahold-of-lines-full-letter.html

That is one awesome response letter. Hard to believe it came from a bureaucracy. I just hope the Board in Frankfort can exert more influence over the schools than Line the Hart County local.

November 30, 2011

Recommended software: disper

Filed under: linux — jlm @ 12:23

One of the common use cases for laptops is to plug into an external display at a docking station or with a projector, and unplug and use the internal display, then plug into another external display, then later back to the internal display, and keep on cycling like this. Unfortunately, Linux distributions haven’t supported switching displays very easily.

Enter disper to save the day. This is a command-line (and so easily scriptable) tool to switch the display in use. For example, to make only the internal display active, run disper -s. For only the external display, disper -S. And to toggle between them, disper --cycle-stages='-s:-S' -C. So when I want to bind one of the special laptop function keys to alternate between external-display-active-only and internal-display-active-only in Gnome, I run gnome-keybinding-properties, add a custom shortcut to run disper --cycle-stages=-s:-S -C, and bind that to XF86LaunchA. Voilà, with one keypress I can switch between the laptop’s screen and the projector. Other flags to disper let you activate both displays, etc.

October 15, 2011

userdel dmr

Filed under: obit — jlm @ 09:19

I’m staggered by the enormous discrepancy in news coverage here, with the media still eulogizing Steve Jobs after a week and a half, Dennis Ritchie passes away, and receives hardly a blip.

How can this be? The man was a giant in the field. He was one of the inventors of C, which became the most successful programming language, remains extremely popular after four decades, and was a direct ancestor to many of the most used languages of the present day. It’s difficult to overstate its impact; nearly all of the software you encounter today — on PCs, on servers, in embedded systems, or anywhere — was written in C or a language that traces back to C. It was Ritchie who decided on one of the keys to C’s success, its “portable assembly” aspect: It had to let you get close to the metal, while still abstracting away the architecture’s particulars. Another aspect to C’s success was its excellent manual written by Ritchie and Brian Kernighan, commonly called simply “K&R”: short, clear, and comprehensive; information rich yet simple writing; it set a standard that few computer texts come close to reaching.

He was a father of Unix, which has led to more of today’s operating systems than you can shake a stick at. The first great wave of webservers was on Solaris and other System V variants. There’s a BSD Unix sitting inside MacOSX and iPhoneOS. Richard Stallman modeled his GNU project on Unix, and Linus Torvalds’ Linux kernel was a clone of Unix’s — and the second great wave of webservers was build on these. Nearly all of the servers you encounter online run operating systems using Ritchie’s designs. And every Android smartphone as well. How is it that one OS family can span such a range? It was Ritchie who pushed for Unix to be rewritten to have a portable core for the bulk of the OS, with the hardware-specific bits isolated away for easy migration to new machines. No operating system had ever done this; it let Unix escape the PDP, and escape it did.

News media be damned. I feel Ritchie’s passing much more keenly than Jobs’. He wasn’t showy, but his influence was legion.

Next Page »

Powered by WordPress