Monday, March 26, 2007

Open Source CMS Summit 2007, Day 2

The day started out fine; I had a shower and then went down to enjoy some of the hotel's free breakfast. I had cereal and spent a while talking with Joseph LeBlanc, a freelance Joomla! developer, as well as some others. Then I walked over to Yahoo! and went to my first session of the day: the Yahoo! User Interface Library.

The Yahoo! User Interface Library presentation, presented by Eric Miraglia, gave a brief overview of, amazingly, the YUI. It is designed, they claim, to protect developers from the "vast source of incompatibility, pain and misery" that is the web browser. While there isn't much to say about the presentation itself (it was mostly an overview and justification for using the YUI instead of rolling your own), there were a few notes that I made: firstly, using the YUI menus in conjunction with PumaCMS to keep the cleanliness of the headerbar but allow users to navigate the site more directly; secondly, the concept of using animation to help users understand the interface (for example, OS X's use of animated minimizing windows). Definitely something to look into, especially as YUI is licensed under a BSD-new license.

The next session I attended was for Yahoo! Pipes, which, again, was more of a demo than anything else. Y! Pipes is based on the same concept as Unix pipes: a bunch of small, single-purpose utilities can pass data around between them, and the user can string the utilities together in whatever manner is needed, so that complex and very useful tools can be created from a small set of simple tools. But, instead of passing around data from the command line, Yahoo! Pipes pass around feeds, particularly RSS/Atom feeds. Of course, that's pretty cool itself, but the interface is very cool, too.

The next session I attended was Drupal's FormAPI, and while I thought this was going to be a presentation about some general FormAPI tool, I was willing to sit through it even after I found out it was about Drupal, thinking that there might still be something to take away that could be incorporated into PumaCMS. Unfortunately, the presentation was sidetracked (for forty minutes!) by several hard-core FormAPI developers. Sigh.

Next was lunch, which was pizza.

Next, I attended "Writing Joomla! Extensions" by the aforementioned Joseph LeBlanc. I had said at breakfast that I'd attend, so I did (it helped a lot that the only other non-Drupal talk for that session was on jQuery). Since I'm not a Joomla! developer, I don't have a lot to say about it. I think that Joomla's ability to accept archived (that is, zipped) extension packages is really awesome, and that I'll try to work that into PumaCMS if it can be done securely. Otherwise, the presentation was fairly interesting; it went through the process of creating a plugin for Joomla!.

The next session was on "Elastic Content Managment Systems Deployment", and was (primarily) about using virtual machines to run a hosting service, and also touched briefly on Amazon's Elastic Compute Cloud (EC2). And while these are really awesome ideas, I don't have a use for them currently.

The last session of the conference was on the Flickr API, which was an overview of the Flickr API (whoa, imagine!). Nothing special to say about it, except that later, when I mentioned it to Scott, he said that Traces could use it for photographs and such, which is a great idea.

After the conference, I walked back to the hotel and took another shower (it was quite warm!), then played on the internet until Scott called and he, Chris and I went to dinner at an Italian place in Sunnyvale. It was fun, and there were a bunch of other Googlers there as well, including Scotty and Todd. A tad intimidating for Chris and me, but still fun. Afterwards, Scott and Chris took me back to the hotel, and were kind enough to also take me to the airport in the morning.

Thursday, March 22, 2007

Open Source CMS Summit 2007, Day 1, Part 2

At lunch I met a couple of folks, and ate a pretty tasty, though slightly-more-spicy-than-I-was-in-the-mood-for, turkey wrap. Then, it was back inside!

The next presentation was "Designer Eye for the Geek Guy/Gal", presented by Steve Wittens. Steve went over just about every element of visual design you could ask for, starting with typography and moving through style, structure, color, light & shadow, use of images and CSS (cascading style sheets), and he did a very good job. He also pointed out some of the things I'm constantly complaining about in design (just listen to me mumble sometime). Although my notes are rather long from this presentation, there isn't much more I have to say about it. I hope to find a video online soon.

Yahoo! Campus

The final session of the day ("Designer Eye" was a two-session session) was "Building Community Online" (Google video of the presentation), a discussion facilitated by Laura Scott, President of pingVision and apparently a Denver local. We discussed, unsurprisingly, many considerations in building and maintaining an active community online. However, we didn't seem to come to any conclusions, and while I think the discussion was interesting, I'm not sure I left with any better idea of how to create or foster community, whether online or in the physical world. One thing of note, however: the idea of community 'curation', or the community taking care of the previous content that's been created in it, for instance, writing up summaries of relevant posts in a forum community, or pointing others to where such interesting materials can be found.

Open Source CMS Summit 2007, Day 1, Part 1


Got up early this morning, and Scott took me over to Yahoo!'s Sunnyvale campus for the conference (Yahoo! was generous enough to sponsor the entire event). They (meaning, Initsoft and Bryght) had some nice rolls and danishes and drinks for us while we were arriving and signing in, and then we had the keynote presentation: Performance and Security by Rasmus Lerdorf, the original developer of PHP. His talk was especially interesting and eye-opening for me; I wasn't aware of the existence of cross-site scripting and cross-site request forgery, let alone how easy it is to do! Puma should try to include more protection against these, and we should especially use tokens! He also told us of PHP 5.2's default filter, which can protect against many of these types of attacks, and that we should avoid recreating its functionality (because 1. it's a duplication of work; 2. the PHP folks have spent a lot of time working on it to make it really really good already; and 3. it takes care of cases one might otherwise miss). Some interesting notes include: Not even PHP's 'HOST' variable is safe to use, since it can be spoofed; IE6 executes javascript in img tags!; javascript treats entities (eg, ') as the raw characters; Apache sends data to the first vhost if it can't find the requested vhost!; PDF plugins can easily be used to do nasty things to the client's computer, so if you must serve PDFs, serve them as application/octet-stream... yes, even local PDFs can be trouble!

Rasmus also gave a brief demo of how to improve performance of scripts using profilers, specifically valgrind, xdebug and kcachegrind (a visualization tool). I haven't yet found a video of this talk, but hopefully there will be one soon.



Next, I attended "OpenID: In Drupal Core and your CMS too" (Google video of the presentation), presented by James "walkah" Walker of Bryght. The first part of the presentation centered around identity: what it is in the physical world, how it has changed, and what it is in the digital world. In the physical world, some authority issues what James called "modern identity," that is, identity that's not dependent on actual social interaction for validity. For example, the government of a nation or state may issue some kind of identity marker, such as a driver's license or a passport, that tells people who you are. They don't have to (necessarily) trust that you're who your ID says you are, just the issuing authority (leaving aside issues of forgery for the moment). The goal of OpenID is to allow a similar situation in the digital world, effectively "identity 2.0": someone issues you an identity marker, which you then use as you go from site to site, so that you don't have to re-establish your identity (such as your name, email address, etc) at each one. This is, in many ways, very similar to Microsoft's Passport. However, as OpenID notes on its site, it aims to be an "open, decentralized, free framework for user-centric digital identity", meaning that no one person or group controls OpenID. If you want to be your own identity authority, for example, then you can. Or you can use an already established provider, or more than one if you like (donning different identities for different genres of sites). Already many sites are using OpenID, including LiveJournal. Go ahead and take a look at the OpenID site; it's a very interesting and exciting project, and I think that, while PumaCMS isn't in need of OpenID very much, Traces could benefit greatly.

The next session I attended was the least interesting one of the day: "Taming the Beast: CMS Integration on the Desktop with CIFS, Office, Dreamweaver and anything else," presented by Paul Holmes-Higgin of Alfresco. Alfresco is a GPL'd "enterprise content management system", which means that, whereas Drupal, Joomla! and PumaCMS are focused almost entirely on HTML documents, Alfresco is focused on the internal document flow of corporations, aiming specifically at providing a desktop-based user experience. While the ideas involved in such a venture are interesting and important, the talk felt more like an extended advertisement for Alfresco. From the title, I was expecting a more in-depth discussion, but perhaps there just wasn't enough time.

Anyway, after that, it was lunch time, which means part 1 of this post is over!

Wednesday, March 21, 2007

Open Source CMS Summit 2007, Day 0


Today has been interesting so far. The day started as normal (Steve got up and out and then I did, later ;-) ). I went to the store to get Steve some food for while I'm away, and then I called Matt Rose and Lynn Britten to see if they'd be willing to play in Brighton. I got ahold of Lynn, and he said that, yes, he'd be willing, but he's out of town for the next concert, so contact him next season. I left a message for Matt, and have recently gotten a voicemail that said he could maybe swing a rehearsal and the concert, but that's about it.

So, after I did my calling, I went down to my parents' place, since mom drove me to the airport. She and I had chinese for lunch, and played a couple games of cribbage (she beat me on the first, but I skunked her on the second!). Then, she took me to the airport, and off I went.

The airport wasn't bad, even security didn't give me any hassles (apart from the usual hassle of going through security), but my flight's gate was A64, which was way the heck PAST the original 'A' terminal, down a flight of stairs, a huge walk down ANOTHER (somewhat ghetto) terminal, and at the very end. It was... interesting. There weren't jetways out that far; we boarded the plane via ramp. (The plane was small, about 70 passengers).

The flight was mostly uneventful. I took some pictures out the plane window (um... probably more than I should've), but I don't know how they turned out because I forgot to bring my card reader. :-/ The flight got in early, though, which was nice.

Scott picked me up at the airport in his shiny new Civic Hybrid, which is very nice and rides very smooth. Then, we went by Google for dinner and Scott gave me a whirlwind tour of the main campus. It's amazing. I was very awed, and quite a bit intimidated by all the people there (it was 8 at night, and there were still hordes of people about). Scott showed me his office, which is very cool as well.

On the way to Google, I saw buildings for these companies: Yahoo!, EMC, and Microsoft (seems like there was another one, but I don't remember what it was). It's kinda intimidating to even be near all these giants.

Now, we're back at Scott's apartment (I understand why he has an apartment now; he said that little crappy holes out in Palo Alto cost $1.4 million. Yeah. $1.4 million.), and he's helping Chris with calc and I'm here writing. It's a nice apartment, a decent size for a single.

I'm excited about tomorrow. I just hope my 'awe' circuit doesn't blow before I'm done with the trip. ;-)

Monday, March 12, 2007

Free Software and Forking

Just a couple of essays on forking and Free software.

The first is the Right to Fork, and why it is important in the Free software community.

The second is the Fear of Forking, or Why Linux Won't Fork.

As an extra bonus, I'll also point you to "Corrupted Downloads: What is to be done?" in case you have problems downloading things with IE, and Make Your Open-Source Software GPL-Compatible. Or Else., in case you're trying to decide on a license to use (or just in general. It includes a nice appendix on the XFree86/xorg split), and finally, the GPL is a License, not a Contract.

Sunday, March 11, 2007

Quantum Minigolf

Ok, so this is kinda neat. There's a computer game called Quantum Minigolf, in which the ball is a QM ball, meaning that it diffracts and interferes and such. Which is AWESOME. Trust me. Anyway, I haven't had a chance to try the program yet, but I thought I'd post this so I'll remember to later.

Friday, March 09, 2007

A different kind of ending for Harry Potter

So, sci-fi writer John Scalzi recently held a "Write a Scathing Review" contest. Most of the entries are very funny, and you should read them, but I just couldn't pass on this quote from one:

"Not since the infamous last paragraph of the final Harry Potter book two years ago (you remember, when Harry awakes in his cupboard under the stairs and exclaims, "It was all a dream!") have readers been so crushed."

Friday, March 02, 2007

Gilbert and Sullivan Opera Reprints

I just found out today that Kalmus carries reprints of the Gilbert and Sullivan operas, cf. Kalmus G&S Listing. I wish I'd known that a couple years ago! Not that they're cheap, mind you, but at least they're there, which was not evident about 2 1/2 years ago when we did "The Mikado"...

Thursday, February 22, 2007

Lost in the Googleplex

I had a very strange dream last night.

For some reason, Scott had decided to take me to work with him, so I was at the Googleplex, sitting at a nearby desk. I was trying to hook up my computer to do some work (and all of Google's computers were running Windows CE or ME or something... CLEARLY a dream [or nightmare?!]), and Scott's boss comes along and decides that she wants to hire me for some reason. The wage she offers isn't as much as I'm making now, but it's working for freakin' Google, so I accept. Then, there's a confusing part with beanbag chairs and cookies (?) and Scott and I go down to this bird sanctuary that Google has on their grounds (in the dream). And we go through an igloo to get there. After that refreshing break, Scott starts to give me a tour of the Googleplex. First we go into the area where they keep the "lower-grade" engineers, and then we end up walking through three movie theaters. Thereafter, Scott disappears, and I have to wander about the Googleplex for a while, but then I see some other people that we both know, and he's left us a riddle to try and find him, which is solved quickly. Somewhere in there I realize that I've completely missed the conference that I went to California to attend, too.

Bizarre. I wonder if it means anything, and, if so, what?

Monday, January 29, 2007

A Canticle for Leibowitz

Walter M. Miller, Jr.

Written in 1959, A Canticle for Leibowitz is meant as a dire warning of man's technological hubris. It has three sections, each set in a different time, but all of them after the "Flame Deluge", a nuclear battle that throws humanity into a centuries-long dark age. But the book is about a monastery, and an order of monks.

The first section, "Fiat Homo" (Let there be Man), is about a monk in the Albertian Order of Leibowitz, some six hundred years after the Flame Deluge. The monks of the Order of Leibowitz are, as they call themselves, "bookleggers and memorizers," tasked with preserving what little remained of humanity's pre-deluge knowledge in the form of books hidden safely away in the abbey, called the Memorabilia.

The next section, "Fiat Lux" (Let there be Light), is the beginning of the renaissance, when knowlege is again beginning to be revered. The monks keep the Memorabilia for this time, but those who return to seek the knowledge are as those who allowed the Deluge to happen in the first place: men too afraid for their own gains to allow themselves to act to stop the inevitable march of Destruction. But the Order is not idle. Although the time has come for knowledge to be restored to the world, the monks themselves don't simply hand it over. They become active participants in the quest for knowledge, as they were for a time before the deluge; scientists as well as monks. And so we pass into the third section of the book...

...called "Fiat Voluntas Tua" (Thy Will Be Done). Humanity has surpassed the technological prowess of its former state, but is it wise enough to keep from (nearly) destroying itself again? This section also explores the question of humanity's responsibility to relieve suffering, and how far to go in such a quest.

I first read A Canticle for Leibowitz in 10th grade, as an assigned book. I have adored it ever since, and so when I was looking for a book to finish off my gift certificates, I picked it up without hesitation.

It is a masterwork of science fiction and of literature, because it forces us to contemplate on not only our actions and their consequences, potentially centuries down the line, but the actions of those who have come before us and shaped the world we live in today. Miller doesn't exaggerate his characters or the setting. It is what it is, following naturally from the events of the Flame Deluge. Throughout the book, although the setting is desolate and the outlook grim, there remains a kernel of hope, as represented by the Order of Leibowitz. Even at the very end, the Order is resolute in its calling, to preserve the knowledge of mankind.

I can relate to this ideal. I don't know whether I have always considered myself to be an "archiver", or whether this book planted the idea in my head, but it has always resonated with me. And the warnings of the book are relevant today, even if the specific threat of the flame deluge is not.

Finally, a couple of passages from the book:

"Ignorance is King. Many would not profit by his abdication. Many enrich themselves by means of his dark monarchy. They are his Court, and in his name they defraud and govern, enrich themselves and perpetuate their power. ... They press the battle upon the world when their interests are threatened, and the violence which follows will last until the structure of society as it now exists is leveled to rubble, and a new society emerges." (From "Fiat Lux", chapter 20)


The closer men came to perfecting for themselves a paradise, the more impatient they seemed to become with it, and with themselves as well. They made a garden of pleasure, and became progressively more miserable with it as it grew in richness and power and beauty; for then, perhaps, it was easier for them to see that something was missing in the garden, some tree or shrub that would not grow. When the world was in darkness and wretchedness, it could believe in perfection and yearn for it. But when the world became bright with reason and riches, it began to sense the narrowness of the needle's eye, and that rankled for a world no longer willing to believe or yearn. Well, they were going to destroy it again, were they—this garden Earth, civilized and knowing, to be torn apart again that Man might hope again in wretched darkness. (From "Fiat Voluntas Tua", chapter 26)


EDIT:Ok, so apparently I don't know how to spell knowledge. Also fixed other typos.

Monday, January 22, 2007

Using MySQL with MS Access over the internet

With my recent work in MS Access*, I've learned some new things that I thought I'd share with you. This post has step-by-step instructions for using MS Access to connect to a MySQL database.

First of all, if you want to connect, you'll need to make sure you have the MyODBC driver installed on your machine.

To check to see if it's installed:

  • Go to Start->Control Panel->Administrative Tools->Data Sources(ODBC).

  • Click on the "Drivers" tab, and look to see if there's a MySQL ODBC driver installed. Mine was near the bottom.


To Install it if it's not:

  • Go to http://dev.mysql.com/downloads/connector/odbc/3.51.html and
    download and install the windows driver.


Then, we'll need to set up the connection:

  • Go to Data Sources(ODBC) again.

  • Go to the "User DSN" tab and click "Add...".
  • Choose the MySQL driver.
  • Use a descriptive name for "Data Source Name". If you intend to use the smae MS Access database on multiple computers, you should make sure this name is the same on each.

  • Use the hostname or IP address of the server for "Server", the username for "User" and the appropriate password.

  • Click on the database dropbox, and select the database you're insterested in (it may take a moment).

  • Go to the "Connect options" tab, and enter "set wait_timeout = 28800" in "Initial statement". That sets the timeout to 8 hours, which should be enough time to do your work. :-)

  • Go to the "Advanced" tab.

  • Under "Flags 1" check "Return matching rows"

  • Click OK.


You may also find the information on MySQL's website ( http://www.mysql.com/ ) and http://www.ucl.ac.uk/is/mysql/access/index.html useful.

* I don't condone the use of MS Access (or any other MS program) when you're given an option, but sometimes you don't have one, ie, your client wants to use it.

The City Born Great - How Long 'Til Black Future Month?

The second story in N. K. Jemisin's anthology How Long 'Til Black Future Month? , "The City Born Great," is an exciting ta...