Toward a new Politics, episode 2

As a follow-up to my first post on this topic, in this episode I’ll examine the policies of some of the parties and organizations I do like.

Pirate Party

First up, the Pirate Party. Despite the provocative name, the Pirate Party has a rational, well thought-out platform that addresses only a few specific areas of law. Far from being selfish, the platform is actually philosophically, historically and practically sound. Here’s the start of their “Introduction to Politics and Principles”:

The Pirate Party wants to fundamentally reform copyright law, get rid of the patent system, and ensure that citizens’ rights to privacy are respected…

That’s pretty much it – those are their only issues of concern.

It expands with respect to copyright:

The official aim of the copyright system has always been to find a balance in order to promote culture being created and spread. Today that balance has been completely lost, to a point where the copyright laws severely restrict the very thing they are supposed to promote. The Pirate Party wants to restore the balance in the copyright legislation.


Pharmaceutical patents kill people in third world countries every day. They hamper possibly life saving research by forcing scientists to lock up their findings pending patent application, instead of sharing them with the rest of the scientific community…. Patents in other areas range from the morally repulsive (like patents on living organisms) through the seriously harmful (patents on software and business methods) to the merely pointless (patents in the mature manufacturing industries).

and privacy:

Following the 9/11 event in the US, Europe has allowed itself to be swept along in a panic reaction to try to end all evil by increasing the level of surveillance and control over the entire population….The arguments for each step on the road to the surveillance state may sound ever so convincing. But we Europeans know from experience where that road leads, and it is not somewhere we want to go…. Terrorists may attack the open society, but only governments can abolish it.

I couldn’t agree more with each of these sentiments, though getting rid of patents entirely might go even further than I would propose. I may expand on each later in separate posts, but for now I can say that this sums up my feelings nicely and I couldn’t do a better job of explaining each topic so succinctly.

I will also point out that all these views are diametrically opposed to those of the Democratic party, which is fiendishly pro-“intellectual property” (especially regarding grotesque expansions of copyright law), and doesn’t seem to care one whit for individual privacy.

Note (7 May 2012): I just came across a fuller platform for the Pirate Party. Still quite spartan compared to many other parties, but expands on the copyright/patent issues in a number of ways, including more direct democratic participation in government, government transparency, drug policy, environment, equality, and education.

Electronic Frontier Foundation

EFF “[blends] the expertise of lawyers, policy analysts, activists, and technologists…[to champion] the public interest in every critical battle affecting…cutting-edge [digital rights] issues defending free speech, privacy, innovation, and consumer rights.” EFF is the one organization that is consistently most “clued-in” about such issues. I believe they serve a critical role in our society, and wish they had ten times their current budget.

American Civil Liberties Union

ACLU is well-known, and while some of the issues it champions might go beyond what I’m usually concerned about, I think it’s still important to support them. They have long been a bastion against the rise of corporate and government abuse of individual rights and privacy. I can sum up the reasons why I’d support the ACLU even where I disagree with them, by using this quote, attributed to Martin Niemöller:

First they came for the communists,
and I didn’t speak out because I wasn’t a communist.

Then they came for the trade unionists,
and I didn’t speak out because I wasn’t a trade unionist.

Then they came for the Jews,
and I didn’t speak out because I wasn’t a Jew.

Then they came for me
and there was no one left to speak out for me.

Common Cause

Common Cause is a “citizens’ lobby”, leading the effort to “put the people’s voices ahead of the special interests for more than 40 years”. Common Cause is concerned with money in politics, government accountability, fair and open elections and voting access, ethics in government, and diversity and independence of media. Their basic philosophy is that “people and ideas are more important than money” and that public policy should reflect “the needs and priorities of our citizens, not special interests.”

Green Party

While the Green Party is far less established in the United States than it is in Europe, it is still growing rapidly. While I do wish they would concentrate their candidates in local races where they might actually win, as opposed to running for President, Senator, Governor, and other “unwinnable” posts, I think the party and their aims are still well worth supporting.

I should note in passing that the common belief that voting for a party other than the Democrats or Republicans is “throwing your vote away” is a fallacy, and in fact the very cause of the horrible political mess we are in currently. Since there is little substantive difference between Democrats and Republicans, a vote for either is the wasted vote; it is a vote for more of the same. While a vote for a third party with no hope of winning will still not allow that third party candidate to win (at least in the near future), it is a vote for a change in policy. Without such votes, neither party has any incentive to take such policy changes seriously, leading to a corporate-driven same-ness in the policies that really matter (even as they publicly squabble over emotional “hot-button” issues with no right answer and no hope of compromise, just so they can appear “different” and appeal to one or another demographic). I just don’t understand why people are so reticent to vote for candidates they really believe in, and who support policies they really agree with. But it does certainly explain why such candidates never get elected, and such policies no longer exist in our government.

Unlike the other parties and organizations I’ve mentioned, the Green Party has a comprehensive platform, covering a wide variety of issues in the general areas of Democracy, Social Justice, and Environmental and Economic Sustainability. This platform is detailed and carefully thought out with respect to specific changes proposed to our current political system. Overall I like the direction of their platform. Some issues I’m not personally concerned with. Others I don’t think go far enough – they try to work too much within the current system, rather than replacing it. Some issues that I care about are simply not addressed. In some cases, I respectfully disagree (such as nuclear power). But overall, this platform would be far preferable to the politics we live with right now.


Toward a new Politics, episode 1

I think the current United States federal political system is hopelessly, irrevocably broken. Not only is the system so thoroughly corrupted as to be unsalvageable, it’s also inconceivably byzantine and convoluted, not to mention supportive, in the main, of policies I just don’t agree with.

It’s clear that neither of the major political parties – Democrats or Republicans – offers a real change, or even much of a choice. While I feel Democrats are somewhat less offensive on some topics, it’s not universal, and in some selected areas, they’re even worse than the Republicans. While they may be the lesser of two evils, it’s pretty much like “would you like 90% evil, or only 80% evil?”

So what to propose instead? I have lots of ideas, but let’s start by looking at existing parties and advocacy organizations to see who has interesting ideas I find compatible with my beliefs.

First, I’ll dispose of the useless ones (that I always see on the ballot):

  • Libertarians. There’s almost nothing to say: their entire platform is a sham, often achieving the opposite of what they claim. It’s also ridiculously against anything reasonable as far as having a functioning society, not to mention being a near opposite of my beliefs in many areas. That they happen to seem to align with certain of my beliefs in a few areas is sheer coincidence. Note that Ron Paul is in the same category: half Republican, half Libertarian; I admire his independence, but not most of his policies.
  • Peace and Freedom. While I admire, and increasingly agree with, many of their basic goals, their actual proposals are just ludicrously unrealistic, and likely to be counterproductive (ie, leading to neither peace nor freedom, in fact likely less of each). They are espousing failed models with no regard for the significant, known downsides.
  • Ditto for the many other fairly unknown parties. (A handful of past parties had some reasonable ideas, but aren’t very active now.)
  • Why not the Democrats? They demonstrably have not changed the system even while controlling the White House and both houses of Congress. Also, they are even more in favor of increasingly strong, broad, severe and destructive “intellectual property” rights than the Republicans, in addition to being generally pro-corporate and anti-freedom and privacy.

So what’s left? I’ll go into more detail on my own ideas later, but here is a list of organizations and parties I admire and support:


Idea for Google: Tools for authors to make their text more translatable?

EDIT: I just did another search, and finally came up with some reference to a very similar idea here (“Dialog-Based Machine Translation”), though the implementation appears to be somewhat different:

Several differences:

    • They’re talking about integration with a machine translation system per se; I’m talking about pre-tagging the source text to make future automated translation easier (though providing round-trip access to Google Translate or similar would be a very helpful adjunct part of the tool, to know which parts of the document need disambiguation).
    • They talk about maintaining a parallel document of some kind, using tags in the source document to reference it; I propose that it would be simpler to maintain only tags directly within the source document, and that this approach would also make later automated translation of full web pages (integrated with other styling etc.) easier.
    • They talk about the system telling the user when it’s confused and asking questions, which it then maintains in an “answer tree”; I propose that authors won’t have access to that information, and will just need to review the round-trip translation to understand where confusion is arising.
    • Besides which, theirs is just an academic paper; if it’s been implemented in some commercial product, I doubt many people (aside from professional translators) are using it. I want this to be an extremely widespread, cheap mechanism that any website could use.

Original post:

I’ve had this idea for a while (least a few years now, maybe 5 or more? I’d have to recover some old computers to see when I first noted it down).

The basic idea is this: provide a way for authors of online material to “tag” their texts with disambiguation information that would help translation engines more easily glean the meaning of the original text. Some advantages of such a system:

  • No knowledge of other languages would be needed for an author to improve the translatability of their text.
  • The tags, once entered in the source language, could ease the automatic translation into any and all target languages.
  • It would not require actually changing or rewriting the source text – just tagging with additional information.
  • Any translation engine that understands the standard could take advantage of the additional information. Human translators could benefit from the additional information as well.

Specifically, provide a syntax (probably for xml and html, such as spans with appropriate “data” attributes) for tagging groups of one or more words within a text with disambiguation information. This could be of the form of: a code for “proper noun, don’t translate”, a reference to a specific meaning (“noun, sense 2” – though probably in the form of a unique identifier for that particular entry) within a specified online dictionary, a reference to an idiom dictionary to define a phrase, a reference to another word within the sentence (“he” refers to “Chuck”), etc.

The translation engine (any translation engine) could then take advantage of this embedded metadata to better understand the source text’s meaning, and thus translate more accurately into other languages.

The implementation on the authoring end might be a text editor with a “translation helper” plug-in. The author could select text (one or more words), and use the translation helper to add a disambiguation, such as selecting “proper noun”, selecting the appropriate dictionary meaning (which the helper would look up automatically based on the selected word), search for an appropriate idiom, enter a replacement word or synonym, etc.

This could be supplemented by a “round-trip” translation tool, which translates the text into a selected target language, then back into the original language. Authors could then concentrate on areas that produce the most confused output – that is, we don’t want them to have to laboriously tag everything on the page, just the problem areas. Similarly, they could start with one language, then check in other languages to see if additional disambiguation is needed.

As time goes on and translation engines like Google Translate get “smarter” at gleaning meaning from context, the need for such tagging might be reduced. But in the meantime, it could also help with machine learning, ie, the translation engine guesses, then compares its guess to the entered tag to see if its guess was correct.

Again, the key difference here compared to “assisted” translation systems is that the “operator” needs no knowledge of any but the source language. This isn’t about providing hints to help translate into any particular language, but rather hints as to the meaning of the source text.

On the other hand, I wouldn’t want this to get bogged down in more-general efforts to promote the “semantic web” for uses other than translation. Therein lies a burial in the bowels of an obscure W3C proposal or RFC.

There are several reasons I think Google should be the main drivers of such a standard:

  • They are the biggest online translator (as far as I know), and hence would be the largest user of the resulting data.
  • They are capable of providing and hosting the needed online “tagging” dictionaries for authors to reference.
  • They are capable of driving ad-hoc standards like new HTML attributes (see ‘rel=”nofollow”‘, “canonical” meta tag).

In fact, since I am not interested in (or capable of) implementing machine translation engines or online dictionaries myself, I don’t see how this idea can go anywhere without Google. (Yes, I know about Yahoo’s Babelfish and Microsoft’s Bing Translator, and that there are others, but I think they are all bit players compared to Google, and also not the ones to drive a standard. And I’d rather see this implemented quickly than debated in committee for the next ten years.)

Google Translations team: does this sound at all interesting?

Tagged , , , , , ,

Drupal: a way forward by focusing on the right layer – and the right user

There is much talk nowadays about Drupal needing to strip things out of core to make it more maintainable. I agree with the sentiment.

On the other hand, there are many people who feel that the process of moving frequently-used contributed modules into core should continue, since these are things that every site builder needs for every site. I agree with this sentiment, too.

There is also much talk about Drupal’s usability, and that it needs to be improved. I agree with this sentiment as well. (Everyone does.)

However, moving more things into core won’t help with the problem of maintainability that core developers complain of. But moving things out will hurt Drupal’s usability and usefulness for site builders. These two goals are largely at odds with each other, though they both need to happen. How do we resolve this dilemma?

Similarly, focusing too much on usability for “novice” users won’t help site builders much. It also won’t help novice users if things like Blog and Forum are moved out of core (as they should be). No matter how “easy” Drupal becomes, these users will still be thoroughly confused by all the concepts involved. Simply put, Drupal is not the system for them, and Drupal should not focus on their needs. Yet we do want to accommodate such users. How do we resolve this dilemma?

I believe that in order to resolve these dilemmas, people need to start thinking about Drupal differently. Otherwise, if we go too far along any of these paths, Drupal will continue to be a confused mess that doesn’t fit anyone’s needs very well.

When I look at Drupal, I see three layers corresponding to what I feel are the three main audiences that interact with it:

  1. Code/API/Framework layer: this corresponds to core coders, module developers, and experienced programmers building highly-custom site solutions in code (ie, writing their own custom modules)
  2. Site Building layer: this corresponds to the typical site builders – fairly experienced web developers who have a good grasp of concepts like using modules to extend site functionality, tweaking the site by customized settings, differentiating different types of content, defining content types to include discrete fields of information, and using blocks, Views, layouts, etc. to show those chunks of content variously in different places on the site.
  3. Complete Solutions layer: this corresponds to end-user site owners and less experienced developers. Basically anyone that wants to put up a “blog” or a “forum” or a “gallery” or a “brochure site” for their business with the minimum of effort (push a button), and doesn’t understand (or want to have to understand) the concepts in the previous layer.

The first layer is important – it needs to be available to build highly-customized, high-performance sites with special needs. It’s also what all the other layers are built on top of. But this layer should not be the primary focus of Drupal. Why? It’s not where Drupal shines above all others – if this is the target, then the competition is all the other frameworks out there – Symfony, CogeIgniter, CakePHP, Zend, Ruby on Rails, Django, etc. Is Drupal really better at that kind of site-building than all these other frameworks? Maybe, but even if so, is that the battle we want to focus on?

The third layer is also important – there is a huge audience of people out there who want to be able to throw up various kinds of sites with a “1-click” installation, and Drupal should be able to meet their needs. But this layer should not be the primary focus of Drupal. Why? First, it’s not where Drupal shines above all others – Drupal (even with the Blog or WP Blog module) is not a better out-of-the-box blog platform than WordPress. Advanced Forum is probably not a better out-of-the-box forum than various other forum-specific options, etc. Further, even if these are included in a fairly easy-to-use installation profile, they’re still never going to be easier to install than a hosted solution like or Tumblr, where no installation is required at all. This is a battle we simply cannot win, and are already coming from a position of considerable weakness.

No, it is the second layer that is Drupal’s strength, and where the nexus of development and usability should be focused. For this brings us to the next big problem when it comes to moving Drupal forward: a lack of focus. To put it bluntly, the Drupal community that discusses usability and what should be in core has not decided who its audience is (or has perhaps picked the wrong audience). And without a clearly-defined audience to focus on, the likelihood of meeting the needs of any audience is low.

So how do we go about resolving these issues?

  1. Framework/API/Code level:
    1. Strip this down as much as possible – it should provide only the low-level, fundamental services needed to build the rest on. It should certainly not include any complete solutions like “blogs” or “forums” (or even “books”).
    2. Re-use as much code from Symphony2 as possible – if Drupal doesn’t absolutely NEED its own unique version of this sort of code, don’t write it. Let somebody else maintain this code so Drupal core developers can focus on the things that make Drupal unique.
  2. Site builder level:
    1. Figure out the key capabilities supplied by common contrib modules, and move them into the base distribution (much like CCK -> Field API). Newsflash: if 90% of Drupal developers use the same 10-20 modules on EVERY SINGLE SITE, then those modules ARE de facto core, whether you like it or not. Drupal without these modules is not a useful site-building system for most developers. These modules might include things like:
      • Date, Link and other useful field types
      • some subset of Display Suite and/or Panels
      • Fieldgroup
      • Better Formats
      • some kind of WYSIWYG/image handling (I like WYSIWYG+CKEditor+CKEditor Link+IMCE)
      • Meta Tags
      • Node Hierarchy (since Book is too specific and poorly-named, and menus/taxonomy just don’t work as it seems they should for building hierarchies)
      • Token
      • Pathauto
      • Views
      • Webform
      • Workbench or some other workflow solution
      • XML Sitemap
      • etc.
    2. Focus your usability efforts on this audience and these capabilities. Drupal is still pretty darn confusing even for experienced site builders – partly because so much needed functionality IS supplied by a variety of contributed modules, each of which may do things its own way.
  3. Novice/end-user site owner level:
    1. Clearly relegate this to installation profiles and separate documentation for this audience. It’s gotta be done – no more whining about how installation profiles might not end up being adopted or meeting needs. No other approach to “fixing” Drupal is going to either. Also stop whining about how you might miss out on millions of non-technical newbies who might go to instead if you don’t make this audience part of your core. They’re going to do that anyway. Drupal isn’t right for them, and persisting in thinking it is is distracting you from fixing it for your real core audience.
    2. Stop doing usability studies of this audience (except with reference to improving those installation profiles and the associated documentation). It’s like asking how you can make the mathematics of quantum physics more accessible to English majors. Stop doing that. Please, just stop. It’s a waste of time and you’re losing focus on what really matters.

The Way Forward
First, figure out who your core audience is. How? Figure out where you have unique strengths compared to your competitors. Now, focus relentlessly on meeting the needs of that audience.

Ultimately, I think site-builders are the core audience of Drupal. Thus I think Drupal’s core developers and UX team should focus relentlessly on meeting site builders’ needs. To avoid distractions, the low-level core code should be stripped down and migrated to relying on an outside library/framework (Symphony2) as much as possible, and the focus on non-technical end users should shift to a separate project of installation profiles and documentation built on top of Drupal, rather than being part of Drupal itself.

Otherwise I think Drupal, as a project and a community, is going to have a very difficult time meeting anyone’s needs well, and may even collapse under its own weight.

%d bloggers like this: