Archive for October, 2007

Where do I vote for small government?

Wednesday, October 10th, 2007

I cast my vote today, as I always do, and we wait here in Ontario this evening to find out who our Premier will be. Toronto is my first home, and the effects on it from lack of leadership both here and in Queens Park are something all Torontonians should be concerned about. Watching the political landscape increasingly reduces my hope that small and responsible government can ever be a reality here again.

Waylaid by the BOM in UTF8

Sunday, October 7th, 2007

From my install process, which had to be hacked, to my WordPress feeds, which are still acting up regularly, rather like brief blackouts, I was repeatedly told that there was something wrong with my code or file configuration. This caused me to spend all my usual blogging hours, and a few nights, digging through every single file. There are a couple of hundred of these, only a dozen of which I had initially worked with for the set up and theme.

All that time spent wasn’t necessarily a bad thing (although I’m suffering from withdrawal in missing many of my favorite reads) since it afforded me an even deeper appreciation of what has been created by the WordPress community.

Why didn’t my index files work? Nobody knew, so we just kept making new ones.

What were those way too long strings that doubled back in error messages? Must be a non-tech newbie code mistake I made somewhere.

What was that —>  thing that kept appearing before certain pages loaded? Tech people just shrugged.

That thing represents the hidden encoding characters preceding a UTF-8 file that has been saved with a BOM, or byte order mark, and I’ve also now read somewhere that PHP doesn’t care much for BOM.

Although I found many entries in help forums by webmasters waylaid by BOM, the only formal faq I’ve found on it is by Sun and Unicode. The Wikipedia entry refers to this being a problem with Unix and not Windows servers, and I’ve read that including the BOM in UTF-8 by default was one of those unilateral Microsoft decisions. Here also is a post by WordPress blogger Pierre, and a related issue post on translating character sets and collation in WordPress.

I first found evidence by downloading one of the suspected problem files and opening it in WebTide, which showed me unicode hard break characters before the file content. They didn’t appear on the page, but rather in the code schema window.

Getting rid of the BOM is fairly simple, although time consuming. You have to open a file that can be saved in plain text with no encoding and then paste the file contents into it. After saving it, you then copy the contents again, and paste them into a new file in an editor that will save with no BOM. Not all editors will do that, even the fanciest professional ones might require you to know how to script in that function. I’m using Notepad++, one of the top downloads on sourceforge.net, and really liking it so far.

There’s a possibility that db files can become corrupted as well. There is a WordPress plugin called UTF-8 DB converter which I think was developed for upgrading from versions earlier than 2.0 (which I think is when WordPress switched from Latin-1 encoding to UTF-8) but I don’t know whether it would help with this issue.

It’ll still be a while before I can get to setting up all my blogrolls and links here, and to joining in as many conversations as usual, but in the meantime, I hope that this post on the BOM issue might make it a bit easier for someone else to learn about than it was for me. I do wonder how much buggy behavior remains a mystery for the moment because of BOM.

Addendum to How People Are Like Computers

Friday, October 5th, 2007

Writing yesterday’s post was fun, as was writing it from the non-tech perspective. I considered making the last two categories Platform and OS, except that this change might have effectively reversed the view to that of a developer, and I might have ended up writing ‘how computers are different from people’ in terms of compile time, garbage collection, etc.

Machines are built from the OS up. In a way, so are people, but we also start with a cornucopia of possibilities hardwired into us that couldn’t fit into an elevator pitch even if the elevator went all the way to Pluto, and, we learn as adults to investigate and discover from the top down. The typical user viewpoint is possibly closer to that of a hacker than of a programmer, and more relevant to a marketer or interface developer than a coder.

This reversed view interferes with the opposite question of how computers are like people. In our efforts to bring the two together, have they become smarter and more relevant today than in the vision leading to the development of multi paradigm languages in the 1950s? Are we closer now to delivering what we think we need, or further away?

We aren’t all the same, and neither is what we think we need. Even those whose ‘needs’ are specific and limited, though, media and marketers for example, are stymied by the lack of connection between a billion users and the trillion pieces of miscellaneous data we collect and scatter. The more we break down the users into niches, and the uses into horizontals or verticals, the bigger the gap between any given application and what an individual or community could ideally do with it. If web 3.0 is only about connecting all the applications of 2.0, then it isn’t going to be much more successful, and we seriously hamper real progress with these bubbles.

Can disconnects such as this be addressed via endless scripts or more agile languages and databases, or semantic search? Can they be addressed solely by programmers and coders at all? An OS takes a long time to build. There aren’t enough lifetimes, I believe, to create information architectures that could house and manage all possible uses, not the way we’ve been doing it so far. Trying to do so is almost like trying to design a building that covers the entire world and addresses appropriate uses for the entire population. The entire population, though, could build what it needs.

I don’t believe that the future is in the ether, but rather in the hands and minds of the people, whose activities and uses should determine what lives where and for how long. I believe that can be created through structuring qualitative modules that can be adopted by individuals and groups. Blogs and communities are a limited preview of this, allowing us to manipulate our own data and create meaning. Concepts I mentioned in the opening paragraph, such as memory management, and relationship creation that goes beyond information tagging, are the key to moving beyond creating meaning into collating it.

The things we actually do here are limited greatly by our lack of relationship to the paradigms and structure of the tools, and my post yesterday could be read as a preface to exploring the human capacity for high level languages. After all, if there weren’t any humans, there wouldn’t be any computers.

Could a big company create a structure based on individual modules of human depth and breadth? They could, but it’s highly unlikely, just as traditional media aren’t about to invite bloggers into their midst. The free speech enabled by blogs, though, is far more threatening to the hand maiden of politics and big government, than individual consumers are to big private companies, which are increasing putting a toe into open source waters. The barrier, of course, is in the lack of economic models. We have (mostly huge) enterprise business models, some (mostly rickety) small business models, and two mass consumer models (delivery systems and advertising) that are sound. Big companies don’t exist to enable anyone’s business models but their own and the occasional partner’s, so building the true community model is up to us.

Community building requires leaders. For all the talk of entrepreneurship in web development, the true entrepreneurs, those who would conceive and develop new models, are a rare breed, and they also aren’t typically community leaders. The space that is wide open is in real community creation models (not simply peer to peer interaction which we have had since the internet began), and the time to start developing them is always here, yesterday, today and tomorrow, just as individual voices embracing free speech are always here and increasingly flourishing.

How People Are Like Computers

Thursday, October 4th, 2007

On the surface it’s all in the Styling
(first impressions… and also maybe all we ever see)

  • some of us are mostly just simple html
  • a few either can’t manage a WYSIWYG editor or simply couldn’t be bothered
  • some of us can’t resist flash pages and more
  • adjectives such as elegant or cool mean that our code is so good that you don’t even notice it (and it probably validates too)
  • most of us only render properly in one browser

Start interacting with the User Interface
(from trying to get a date to learning whether you should have)

  • none of us come with instructions, but some offer lots of verbiage while others remain silent
  • if you’ve met others sort of like this one you can probably guess where the buttons are and which ones to push
  • we won’t do anything for you until you take the trouble to figure us out
  • we try to signal whether we want something from you or prefer that you didn’t exist
  • figure us out and maybe we can make beautiful music together

Share activities and get to see Scripts
(hopefully you’ve only gotten engaged and not married yet)

  • find out which scripts we like most
  • some of us don’t have many so you won’t have to wait long for repetition
  • some of us are not into developing this level, and tend to run as few scripts as possible, stalling often to consider anything from security precautions to the costs of increased functionality
  • anyone who is mad about RSS might be a salesperson
  • can we consider a Freudian interpretation for an obsession with plugins?

Interact with the Language and Database
(sometimes you don’t get to see this until you’re already committed)

  • we can be practical and staid
  • or strictly limited and that’s that!
  • some of us are dynamic and others are just pretending to be
  • semantic types can be slow or with a tendency to get stuck, but when they’re good at it you’ve got a winner
  • don’t confuse agile and fast with narrow or shallow

Get up close and personal to see the Operating System
(discover morals and values, and bank balances too)

  • some are old fashioned and rather clunky but very reliable
  • others are easy to use and beautiful but ultimately limited
  • DIY grass roots type can be unpredictable but are usually true blue loyal
  • DIY eclectic types come in the most flavors
  • some of us ‘make it up as we go’ which can make for a pretty bumpy ride with lots of crashes

Find the OS Kernel inside
(knowing anyone at this level, including ourselves, is better than winning a lottery)

  • there’s the legacy version …generations of inherited layers of rules (occasionally explodes or implodes in fatal error due to conflicts)
  • some are purists …investing much discipline in adhering to core guiding principles
  • some of us are put together like a Rubicks cube
  • then there’s the master chef devoting a lifetime to creating the ultimate banquet with eight ingredients
  • the deconstructionists know that there’s no such thing as WYSIWYG at this level

Isn’t it awesome that both computers and people actually work on all these levels at once?