Friday, June 19, 2009

CNNfail and expectations of news networks

This started as a reply to my dad about this article, but got long enough that I decided to make it a blog post.

Interesting read, but I would frame it differently. I gave up on CNN a long time ago.


I don't think I ever gave them a serious chance, and having watched the Daily Show for more than a few episodes, I feel entirely justified in this conclusion.

It seemed that they had concluded, as a business decision, that there was not viewership for news.


Or at least, that it was more cost-effective to report on Paris Hilton than to report news.

Sure, sending reporters around the world is expensive, but it really is not necessary. You gain something from boots on the ground, but what you really need is the determination to discuss the news.


The interesting thing to me is just how much you can actually report without boots on the ground at all. As I have said to Evie a number of times when discussing the future of news, "international news is just local news in a different place." One thing that we are clearly seeing is that it is very possible for the "new media" to have detailed, up-to-date, and accurate accounts of events happening on the other side of the world.

The "old media" system relies on a small number of people dedicating all of their time on all of the news, but the new media allows a large group of people each to focus on one event or category and thoroughly report on just that one topic. For example, the guy who put together the Tatsuma site probably does not also cover the tax breaks for green roofs in New York. If he were a TV channel, that would be a problem, since you couldn't rely on him for your sole source of news. In a new media setting, you only go to him for info about the Iran elections, and go to someone who devotes their whole day/month/life to green roofs in New York. Everything is important to someone, and if it isn't, it likely isn't newsworthy.

My counter example" my beloved CNBC. Now it is only business and financial news. However, they really do B and F news. In depth, in detail, intelligently. No Paris Hilton, no jokes, no pointless chatter among the hosts.


Given the trends among other TV "News" networks, this is surprising and encouraging.

It looks like it should be very cheap to produce. They have several people in the studio, and they report the news. Much of the time is devoted to interviewing people who know what they are talking about (senior executives at corporations and securities analysts), and giving them time to answer thoughtful questions. I have seen them spend 20 minutes discussing interest rate policies and its effects on financial companies with the head of a major insurer.


I'm not that into the details of B&F news, but I really wish that this type of news network existed for other areas as well, and I'm finding that more and more of this kind of thing is done on blogs and social media.

If CNN were to have someone like that on at all, they would ask some idiotically simplistic question, then cut them off after the first 15 seconds of the answer.


And then have the host blather on about some generic topic that only tangentially related to the topic and finish off with a half-hour of soundbites.

CNN could do this. But they have decided that Brittny Speers's haircut is more newsworthy.


I think the problem, and the most profound part of the article, is that there exists this implicit idea with people who complain about this kind of thing that there is some sort of "social contract" between the "news" networks and the people that the news companies will report on what is relevant and important. The reality is that these companies are businesses, and so will do whatever they can to maximize profits. I think that the problem arises when the networks advertise themselves as the former but deliver the latter. People don't get outraged when E! reports on Britteny Spears' haircut because they make no claim to be anything but a gossip column about celebrities.

The technological and social frameworks for a complete replacement of these old media businesses are not quite yet in place, but they are close, and when they are, the entertainment companies posing as news are going to be in trouble.

Wednesday, June 10, 2009

Weekly Update 2: Completion of Version Control Integration

A little late this week, as I was moving into my summer apartment.

  • The biggest (and really only) news is that I finished the Subversion hooks, and (slightly) improved the backend in general. It is now possible to deny commit access to users based on whether or not they have a Drupal account with that particular Subversion repository. Branches and tags, however, are not supported, as the Subversion backend does not support them. There is the framework for doing so, as the repository creation/edit form accepts path patterns for trunk, branches and tags, so adding support should not be too difficult.

  • The post-commit hooks allows Drupal to gather log information as each commit is made, rather than on a cron run. There isn't much else to it, but it can provide for a bit more immediacy of actions, and in the future, could be an event for the Rules module (something I will work on later in the summer).

  • Both of the hooks come with a set of SimpleTests for ensuring their correct functioning. The tests take a little while to run, as creating, checking out, and committing to a subversion repository take a while (and don't play that nice with the OS-level filecache, since new objects are being created each time), but are helpful for verifying that everything is in working order. They test both positive and negative cases, making sure the hooks fail gracefully when passed invalid information. They currently all pass (as one should hope !), and are able to catch a decently wide range of errors in the operation of the hooks.

  • A minor aside, but it bears mentioning, since I spent several hours testing it, but I discovered that Subversion allows any UTF-8 character for any string (comments, user names, and files). However, certain tools restrict especially the username to a subset of those characters, depending on the configuration options for that program. For example, the svnserve 'passwd' file format uses brackets and equals signs as part of its syntax, so those characters are prohibited in entries in that file, thus preventing Subversion users from having those names. However, if authentication is done in a different way, such as with ssh keys, this restriction no longer applies.

Well, that's all for now, stay tuned next week as I complete the Git repository hooks.

Tuesday, June 2, 2009

Weekly Update 1: Completion of Version Control Integration

This week was not a terribly busy one, with most of my time spent getting acquainted with the APIs of Drupal, the versioncontrol module, and Subversion. I was able to complete the pre-commit hook for Subversion, as well as the basic configuration for the other Subversion hooks.

I also identified a number of areas in which the SVN backend needs more work, such as recognizing branches and tags. The framework is in place, as the repository creation form includes fields for the branch and tag patterns, but currently no code makes use of those fields. Subversion is a tricky case, as it has no native concept of branches or tags, so the branch of a commit depends on the path of the files it modifies in the repository.

With the prep work out of the way, I hope to push forward to complete the Subversion hooks and begin on the next step of the project, the hooks for Git.

Friday, May 29, 2009

The future is now! (or in a few weeks)

Go take a look at the video on Google Wave and tell me that it isn't the future of everything. Go on, I dare you.

Monday, May 25, 2009

Tabs of Genius

Since I am going to be coding full-time (or nearly) for my summer job, I took this as an opportunity to undertake some long-overdue changes to my Emacs installation. Among the changes are:


  • Adding Drupal file extensions (.module, .incto the recognized PHP patterns

  • Using notify.el to pop up the cool new notification system in the latest version of Ubuntu whenever my nickname is mentioned on an IRC channel which I have joined.

  • Replacing my own ido-enhanced M-x with the pimptacularSmex program.

  • Updated nXhtml to the latest version. For a good example of how NOT to write commit messages, check out the (otherwise excellent) repository on Launchpad.

  • Move some more packages from my elisp directory to ELPA. This lets me cut down on the amount of path configuration and autoloading in my configuration files, as well as managing its own updates.

  • Replace pabbrev with Smart Tab, (hence the name of this post) which uses the massively powerful hippie-expand to return better results. I ended up developing it from a simple function rebinding tab to a full-fledged global-minor-mode (which does nothing but rebind tab :) and a git repository on github. My next move is to clean up all the little issues and try to get it included in ELPA. It is my first time maintaining any sort of package for public use, and a lot more goes into it than I thought. It's kind of neat.

  • Shuffle some configuration files about and update the copyright dates on my config files. Not like anyone is going to infringe them, right?

  • Spent FAR more time than should ever be necessary hunting down a (relatively benign) bug in anything.el which clobbered the key binding for occur. Long story short: there is actually a difference between copy-keymap and set-keymap-parent. I'm going to see about pushing that change back upstream, though I'm not exactly sure what the "official" repository for anything.el is, aside from some files on EmacsWiki.

  • Spent a great deal of time figuring out how to get Smart Tab and auto-complete to play nice with each other. It eventually turned out that the bulk of my problems was that I was setting up my autoloads after loading Custom, so libraries which were expecting Custom to initialize them were left hanging.

  • Started, but got sidetracked from, setting up some form of tags file for at least PHP, since that is what I'm going to be spending most of my time working on. Unfortunately, given the nature of the interaction between the program which generates the tags and Emacs, it is non-trivial to have an automatically continually updated base of tags. Additionally, the format Emacs uses is apparently fairly inefficient (requires linear scans for all/most operations), but there is a rich ecosystem of libraries and helpers around it. I'll have to look at it some more later.

  • Looked into being able to use ido-completing-read everywhere the vanilla completing-read is used, making variable and function lookups much more pleasant. It is not as easy as simply defaliasing ido-completing-read to completing-read, since ido-completing-read itself calls completing-read during its execution. I asked StackOverflow if anyone had a solution, and nothing has come back so far. It would be really convenient if there was a completing-read-function variable which you could simply set to code>completing-read or ido-completing-read and be done with it. What's worse, ido-completing-read is a drop-in replacement for completing-read, so most libraries likely would not notice or care.



Whew! That was a lot! I haven't had a good Emacs indulgence in a while, and I forgot how fun it is!

Many of the changes I made were a bit more under-the-hood, but I've already fallen in love with Smex, and from what I hear, Anything.el is pure bliss (I haven't had a chance to set it up and get used to it fully).

The big thing I'd like to spend some more time on is improving the situation around EmacsWiki. It is a great site, with a healthy community of interested people, but a Wiki is a pretty bad form of version control. Once need only look at something like line numbering, where there is one for Xemacs only, line-num.el, linum.el, setnu.el, setnu+.el, lineo.el, and a number of patches for each of them, mingling around in a long page which also serves as the bug tracker. I would like to see much more organization (though obviously not at the expense of productivity) and ease of deployment (like with ELPA). Even for packaging, there are at least six different and incomplete (in that they don't index all or even most packages) implementations of packaging programs. Competition and diversity are good, but there comes a point when it means that nothing actually ends up usable.

Well, I've certainly got a lot cut out for myself, but it all looks interesting. And maybe, when I'm done fiddling around with Emacs, I might actually get to some Drupal programming. You know, the thing that's supposed to be my job.

Friday, May 22, 2009

Holy Ubuntu!

Wow, I love Ubuntu.

I just found out that if you hover the mouse over a audio file in Ubuntu (I'm running 9.04, I don't know about the older versions), it will automatically start playing it. No clicking, no nothing!

Not a terribly big deal, but a very cool little thing. Hooray for finding out cool stuff!

Friday, April 24, 2009

I got GSoC 2009!

My proposal for the Google Summer of Code 2009 was accepted! I will be working on Drupal, specifically completing work on the Version Control Integration API with the goal of allowing Drupal to switch from CVS to a DVCS (most likely Git) for its main version control.

It will be a difficult task, but much of the baseline work has already been done, so I will be mostly filling in the gaps in functionality and finishing up the few areas where the Git backend lags behind the CVS one. You can look at my proposal here, and I will endeavor to make relatively frequent status updates on this blog. I am chrono325 on Drupal.org, and will try to spend some time on the #drupal irc channel on freenode, so if you have questions, that's how to get in touch.

Yay for Google!