OOXML will fail miserably

Or, at least it should. It will reveal a serious flaw in international standards if that thing succeeds. The basis for my argument is that everyone who opposes it are smart people with no other reason to do so other than the specification is an atrocity. I've literally spent the whole night reading objections to it (simply because advocates for it are few and far between, and also sound like complete morons to me). Here are some links.

Groklaw (which I'm reading more and more every day, written by someone who claims no knowledge of the technical side of the debate, and who seems to side only with the law [not a particular company... a non-biased view])
Rob Weir (an IBM guy who just seems really smart to me)
Miguel de Icaza (who makes no argument at all for OOXML based on how ridiculous the whole thing is)
John Carroll (a Microsoftie who is just blowing his employer... err... his employer's horn.)

This is where it gets interesting. Carroll, in a "blog" post , ignoring all the technical diarrhea that is the OOXML spec (ECMA 367), posts a link to an article by Miguel de Icaza (an open source guy working for Novell which recently inked a deal with Microsoft), about why the OOXML spec should become a standard. Carroll thinks he'll win over MS-haters / Open Source (OSS) advocates because he's posting an OSS person's view on the subject which happens to coincide with his view. So, I start commenting on that post about logical inconsistencies inside of that document, as well as technical concerns I have about OOXML in general, to discredit anything anybody has to say in support of OOXML. On a quest that began after I started posting, I continued reading (I started earlier in work, but had to go home) a document on Groklaw.net that contained all of the objections to OOXML becoming an ISO standard.

When I finished that document, I still needed more ammo. I searched the web, as I had promised to do in a comment on Carroll's post, for pro-OOXML arguments. I couldn't find any on a technical basis besides that it supports old .doc formats all the way back to Word 5 (for which a simple converter could be written to upgrade all docs to the new standard...). So I gave up searching. I did come across a few non-MS employee articles that were pro OOXML, but they well... read for yourself (which, like all Microsoft articles I've read, miss the point ENTIRELY on "CHOICE"). After that waste of time, I somehow wound up on Slashdot.org, reading the comments by those readers (largely anti-OOXML) the same MS letter to IBM that James O'Neill's thing mentions. One of them posted a link to a funny article by Rob Weir. So I immediately liked him. After reading that, I decided to read more of what he had to say. Which is when I came across THIS!! As you can tell, it completely rips Miguel de Icaza's argument a new %@#$hole!! Read the comments on that one too. Miguel is the first to comment, asking Rob if he had ever written any software for OpenOffice.org (the frontrunner on the implementation side of ODF (there are many), the competing standard (yes, already an ISO standard) to MS' OOXML), or if he's just an Armchair General. Later down the page, Rob responds with this comment, which basically says "I am qualified to make that statement, dumbass."

Here's where advocates for OOXML miss the point on CHOICE. When ODF people speak of choice, they speak about different applications being able to operate with each other (interoperate). Meaning, if I save a file using this program on this operating system, I can later open it with this other program on this other operating system. Right now there are a lot (OpenOffice, KOffice, StarOffice, Corel, Google Docs and Spreadsheets, and a few independent apps) that can read and write ODF. Alternative, right now, there is one program that can read and write OOXML, and it was released 1/30/07 (Microsoft Office 2007). Funny timing, by the way, as OOXML went into ISO "fast track" approval on 1/05/07. So they didn't even have a working application to display it. I digress. So there's a difference in opinion of what "choice" actually is. However, when the average user wants to save an image file from their digital camera, should their camera care what operating system they're using, or what photo editing application they have installed? Likewise, there are a few "standards" for image formats. JPEG is highly used for photos because it can contain more colors to the less-lossy (pixel quality wise) but less colors overall GIF format. It has been argued though that OOXML is duplicating much of the same functionality as ODF, whereas JPEG and GIF are very different in their purposes (GIF is much better for small images and transparency, and JPG for high quality compression of larger images... however, both might soon be deemed obsolete by PNG which covers transparency and a good, near-lossless compression algorithm). In the objections document posted earlier, the final note offers an alternative solution. That Microsoft extend the ODF format with any of their functionality that isn't covered in ODF. This is clearly a good solution, since the base functionality is in ODF, is implemented in many standards, and is a good building block. This is what anti-OOXML people would welcome with open arms. Not a year through standardization on a spec that took 12+ years to fully develop!! ODF took 4 years to ISO standardization. 1 year would be ridiculous.

Quality night of reading overall :) Next, there are these gems...

Here are some letters to INCITS (International Committee for Information Technology Standards)...

Some of these letters from the opposition are the same, but all of the letters FOR OOXML are sent as a "joint letter signed by these 20 members of this committee that has 'Microsoft' in the title". To get a joint letter signed, I'd walk around an office and say "Yo, sign this... it's to get free pizza every Friday." There are three letters attached (in the one from "George LaVenture - International Association of Microsoft Certified Partners (IAMCP)"), each from different offices, each signed by 15+ people (but I can't see the signatures for some reason). All of those letters are the same exact thing, and they make no merits on the technical side. Which is fine, I guess. There are many arguments that either would stand up on technical merits. Although, developing an application that uses OOXML would be an absolute nightmare. The spec is 6000+ pages long. The only argument on the Microsoft side that ODF can't claim (not legally anyway :P ) is that there are billions of documents in old formats that this "document format" can support. As I said, write a CONVERTER.

John Hardin's letter makes the claim that if OOXML were to pass as an ISO standard, the reputations of ISO and ANSI standards organizations would be severely damaged. And that "they will be seen as open to manipulation by sufficiently large companies." In no way do we want that to happen. That would be like the US Patent Office! We don't want that situation repeated in standards organizations.

Another post I read somewhere says that if OOXML passes through ISO standardization, it could be the most costly mistake EVER. (Ahh, found the link here)

It's funny that the only people pushing for it are MS people, MS advocates, and some politicians who are paid by Microsoft, whereas the ODF crowd is many many good companies and lots of brilliant people. It leads one (not me certainly) to the conclusion that people who support Microsoft in this area are complete morons, will never be writing the software to support OOXML, or that they're on MS' payroll (either as an employee or accepting donations through politics). Every Microsoft post I've read is a last ditch effort that practically concedes victory to ODF. Not to mention the lies that they tell themselves (e.g. For ISO adoption, 103 companies vote, only 19 opposed on the first round, so they tell themselves and their employees that "We're almost there!!", when, in fact, 16 of those 19 countries that opposed make up HALF of the vote that MATTERS in the final vote, 5 months away!! SUCKERS!!). Just keep telling yourselves that.

Anyway, this was kind of a review of all the reading I did tonight, with no real guiding purpose or goal. Ok, I had a guiding purpose, basically to vent about how bad OOXML is technically, and that's confirmed by no technical merits from anyone that supports it. And, likewise, to convince anyone who reads this to read all the articles and documents I link to, and to convince them of my opinion... like all opinion writers :P The whole thing's probably way too long and filled with typos, but luckily I can only see the last 8 lines I wrote :P I'm going to bed. It's the Wiikend!!!

I'm amazed

I have a collection of domain names. Yes, I collect them. Sometimes I'm amazed what's available. Like, when I registered stringed.org, and oftheworldunite.org (which can be a great domain name, if you use stuff like hackers.oftheworldunite.org or stupidpeople.oftheworldunite.org).

Yesterday I had a thought. A simple thought. I had asked Tom about mortgages and financial stuff (way before yesterday). He gave me an answer, but I had an answer in my head already, and it was the same answer, but it didn't come out the same :) Basically, what he was telling me was in the technical terms, and correct by all means. But someone who didn't know about finance and mortgages would have no idea what he was saying. Like me.

A lot of times though, I come across problems where the answer can be explained in very simple, non-technical terms, where anyone can understand. Of course, I've been devoting my time to learning, understanding, and making part of my vocabulary, computer science terms. Very technical. I can't really explain them in non-technical terms. However, with every other area in life, I have no idea except what I'm able to logically deduce by myself, in my head. And these are always in very simple terms. So welcome to my domain name collection, simpleterms.org.

I plan on using all of them, but I take a long time to get around to making something for them, so I may seem like just a collector and a domain-name-hoarder, but I do plan on getting around to using all of them. Unlike the .com variant of that domain name. Which someone basically threw some ads on there, and you can buy it but it will be for about 80x markup. Stupid internet.

Web 2.0 isn't so without a new file upload

In writing a web application, I've always found it a pain that no matter how advanced of an interface you try to make, the file upload mechanism is so archaic. This functionality is built into every web browser. It's a text box with a "browse..." button next to it. Upgrading this functionality is the last step, probably, in getting to Web 2.0.

When writing a news post or anything of the sort, where you can include images inline, personally, with my software, I'd have to upload the images before I even attempt to write the news. One way around this is to be able to drag an image from a folder on your computer inline to the document. This works but not as expected. The image shows for you because the URL of that image is pointing to the file on YOUR computer. If you were to save that news and review it, it would look great to anyone who viewed it from your computer, but to anyone else, they'd see the big X placeholders for missing images.

I've read a technical article on including the actual content of the image inside the "src" attribute of the "img" tag. It's the bytes encoded in base64. That makes download times pretty big for an HTML website. This behavior isn't available in the previous example, because javascript can't read the contents of a file on the computer, an that would be the only way you could achieve it in real time. Another downside is that images encoded this way only work in Mozilla and possibly a few other browser, definitely not anything Microsoft based.

Another option would be to upgrade the standard. The W3 standard about how files are uploaded to a website. If I could drag an image, like my example of editing a news post, from a folder on my computer into the text of the news, and have a way that it automatically, and asynchronously, uploads that file to the website, and instead displaying the one on my computer, it displays, after a short delay, the one that's physically located on the server... for lack of a better term, that'd be @#%#@$ sweet. Technically, that would take some pretty complex changes.

Technically, I imagine the only way to accomplish this feat is allowing access to the contents of that file in Javascript. Not to say that when you download a website, Javascript in the website can just access any file on your computer, but when you drag a file onto the web page, a Javascript event is called with the contents (and other specs) of that file. This is a client feature, it would have to be implemented in Javascript. So that cuts out any browsers that a) don't support Javascript, and b) don't have an asynchronous way to make requests to a server (the 'AJ' in "Ajax").

For all I know, the W3 is working on something like this. Right now, there's no way to get this functionality, aside from writing a client app wholly separated from your website code. This is a pain because what do you write it in? With the heterogeneous environment of client computers... there's Java, but still, the whole idea of having to write an app to achieve this functionality is a bad idea, and the way websites do it right now is flawed.

There's nothing Web 2.0 about file uploads today. Any app where you have to upload files to achieve any kind of goal for content will never feel like a desktop application until files can be dragged/dropped in real time. Or pasted for that matter. I'll take anything.

Fired up the trusty ol' Linux Laptop

Working on something exciting. Everything I wrote in Java, I'm going to convert it to Javascript! That's right. They will communicate to each other through XML/HTTP calls. It will be done in a few steps.

1) Get them talking.
---This involves having objects in JS that correspond to all my objects in Java. Also, a communication protocol, through XML, including updates, deletes, gets, and custom methods.
2) Automate it.
---This involves wrapping each thing in JS functions, like "update(myObj, callback);" which will generate all the XML and make the call, calling the callback function when it returns. Callback will have to have a few parameters, like error message, if it succeeded, etc.
3) Develop custom controls in JS / HTML (Dynamic HTML) for common types (labels, files, to be determined).

4) ???

5) Profit!!

All in all, it shouldn't be too difficult. The Java part was hard. I've been hacking javascript for about a year straight now. I have to say it's my favorite.

There are a few problems with this method that will hopefully be addressed...

1) Security: People who know my XML scheme and the place that accepts it could just write something that posts to the method with the right format of XML and do disastrous things. I have an idea for this, and it will be done before any site that uses this goes up.

2) Search engines won't see it: With everything being dynamic, there's no content on the page when a search engine browses to the site. There's some placeholder html where everything will go, but no content. Unless I have the atom feeds or some meta data in the html.

3) State saving: I will need a system for generating query string parameters based on the values on the page, and also, when someone goes to that page with those values in the query string, it'll load the page how they remember it. This might be tough, or it could be easy.

I think that's about it. Wish me luck, it should be done before Web 3.0 comes out :D

Amazon said buy it, so I did

I was watching this item on Amazon.com for about 4 days now, and it was fairly expensive, but not expensive compared to other items of the same type. Then, Amazon.com said to itself "If we lower the price, this dude's gonna buy this thing." And you know how websites talk to themselves, right? Through AJAX. It's common knowledge. So, the website heard this from itself, and said "F@#% it, let's lower the price and get rid of this item, we'll still make a fortune off of it." So, after a few moments, I log in and check my cart, and it always alerts you of price changes of items in your cart since the last time you checked. It said "The price of that thing you need and want has lowered to a price where you might think you are stealing it from us." And I said "Where in the hell is the checkout box?!" Seconds later, it was purchased, and shipped overnight for a total of $3.99 extra. That's my Amazon Prime membership at work again. That is, again, Amazon making me think that I'm stealing. I should go to confession. It shipped tonight, it should be here tomorrow.

Oh, by the way, it's the HDTV that is a prerequisite for the Wii and PS3! 26" 1300x768, HDMI, ATSC tuner built in. Got good reviews, but again, I don't need the best TV ever, it's replacing a 16" TV. Now I have to buy Christmas presents...

Spam in a fortnight

I haven't emptied my spam folder in about 2 weeks.

Embracing more future stuff

Today, I'm going to make it even more of my routine to not use Office software that needs to be installed on my computer. To kick this off, today I created an online spreadsheet at Google Docs. I find it to be very convenient for my purpose, which is updating a client on the hours that I've worked on the current project. I added them as a "viewer" of the spreadsheet, and it's golden. Only problem was that it doesn't currently support Safari, the default browser on the Mac, so I had to install Firefox. Which is fine by me, except that I have two browsers installed. Oh well.

Also, I'll be using the word processor found at that site. That can be convenient for getting my ideas into English format, which could then be shared with anyone, but more importantly, I don't have to use the excuse "Oh, that document is on my computer at home... sorry." It also happens to be a great place to keep my resume.

Only thing is "Lock-In". We all hate it. Buy a song on iTunes and you can only play it on Apple stuff and with your account (lest you strip DRM from it). Buy a PS3 game and you can only play it on PS3s. Buy a car and you can only drive it on the road and within the limits of the law. That kind of stuff. It sucks. But oh well. As long as I can export it. That would be a good idea for Apple too. To be able to "export" purchased songs into another form of DRM, if you were to switch. It goes the other way as well. Buy songs on xyz, export to Apple format. Just recently, the cell phone companies allowed you to carry over your phone number to another provider, this wouldn't be much different (not technically, of course). Freedom is great.

First part of future in home

The future is upon me. I got the wireless router last night, hooked it up, got WPA security working, and hooked my Mac up to it. It works. It supposedly transfers at 300 Mbps, which is 3x faster than 100 base T... without wires! That's crazy. I hooked my PSP up to it with no problems, downloaded the new update released yesterday in record time, and that rocked. This paves the way for the PS3 and Wii, which both have wireless. Before any of those, though, I have to get an HDTV. Not a big one though. If I can find 23" or 26", it's enough. It will replace a 16" TV.

Sometimes I get crazy bot comments

Like for online casinos. But no more.

However, "people" will still be able to add comments with no problem. It's sort of a "CAPTCHA" (search google for "Turing Test") design, but without the images. My site's not big enough to make actual "people"'s lives a pain, so this will just get rid of the most low tech comment bots.

I've been playing with the idea, as simple as it is, for a while now, trying to figure out if there's a better way to determine if the "thing" posting a comment on my site is actually a "person", and not a bot. I'm sure this method will be hacked, and I'm sure I'll have to write some more complex solution, but for right now, it'll get rid of them. Unless they already have that work around. We'll see. Great thing about them being "bots" is that I could even post the code and they'd have no idea :P

And the ultra-super-best thing about it is it doesn't reveal itself as an error. There won't be any error message, it'll just say "OMG GREAT COMMENTZ!!"! and go to the home page, so if the bot doesn't verify that the comment has actually been posted, the author of the bot will have no idea, and be like "w00t, more free advertising of my uber awesome casino site... man, that jasontconnell is such a sucker."

New Site

I started a new site and I'm going to link it here, even though I said I wouldn't tell anyone about it. I'm just too impatient. It's not for young audiences, which is why I didn't plan on linking it here in the first place, since this isite is so f#$@ing clean. Anyway, it's an online comic with characters that have no names or history for that matter... pretty much whenever you read one you won't be lost. You can view the latest at www.addictedcomics.com. It'll be fun, and cover just about everything under the sun.

So I'm finally writing a feed

I plan on using just "Atom" as it is the W3 standard. As you can see here:

public class AtomSource {
private AtomCategory category;
private AtomPerson contributor;
private AtomGenerator generator;
private AtomUri icon;
private AtomUri id;
private AtomLink link;
private AtomUri logo;
private AtomDefaultText rights;
private AtomDefaultText subtitle;
private AtomDefaultText title;
private AtomDate updated;
}


Implementation to follow, and I'll have a link up of the feed and some readers, although I highly suggest Google Reader. I'm just implementing the bare minimum to be valid and readable by Atom readers because I have more important crap to do.

It's up!!

Thanks to my host working on Sundays (shout out Nexpoint), the game is up! Just visit Vacre Tei and sign up. Make sure to read the about and privacy policy things at the bottom first.

w00t.

That rocks. Of course, as I'm uploading the site, I have new ideas for it. Damnit. Good ideas too. I'll get to them, no rush.

What about a music log?

Beaner came over yesterday to record some music on my Mac Mini. He had a microphone and a 300 W mixer, and his acoustic guitar. When he was done, he left everything on my bed. Instead of doing what I wanted to (or supposed to) do, I picked up the guitar and started recording stuff. It sounds pretty good, the mic picks it up decently. But during all this, I wondered "What about a music log?"

You hear of all new types of web logs ("blogs") coming out... Video logs, photo logs, podcasts, etc. What about writing a song each week?

I know a band called "They Might Be Giants", they're fairly famous. I can't find the article right now, but a record producer or a friend challenged them to record a song about every city they visited on tour. So it's possible.

I just think it would be fun, if I could sing, to record a song that's like a podcast. It would be challenging, which would make it more fun.

What would be cooler, though, is if my site had a "jingle".

12 Hour response guarantee yet to be broken

Close call on this one though



Gmail says 11 hours ago though, but obviously, it was within milliseconds of turning to 12.

Great Site

I just found this site, The Daily WTF. Your average computer user won't find much use in it, but programmers love it! They post pieces of code like this:

if (errMsg.indexOf("Violation of UNIQUE KEY constraint 'UQ__mbrs_pwd'") != -1)
return "The password entered is already in use. Please enter another.";


And there's always some terrible thing wrong with it. The post with that code is called "Uniquely Secure".

I notice users on there that have trouble grasping what's wrong with the code sometimes, and it's good that they visit this site every day or whatever, since it's not only funny, it's a brain teaser every day.

Here's another quick sample:

function executeQuery($string)
{
GetDatabaseConnection();
$result = mysql_query($sqlText) or die(
"Query failed " . writeErrorToLog(
$_SESSION['USERNAME'],
"Query Failed: " .$sqlText . " " . mysql_error()
,$scriptName
));
return $result;
}


function writeErrorToLog($owner,$description,$script)
{
$script = str_replace($_SERVER['DOCUMENT_ROOT'], "", $script);
$sqlText =
"INSERT INTO errorLog (ownerID,time,description,script) " .
"VALUES ('" . $owner . ",Now(),'" . $description . "','" . $script . "')";
executeQuery($sqlText, $_SERVER['PHP_SELF']);

return "";
}


At first glance (I think it's PHP) it doesn't seem like much is wrong, other then they do the cardinal sin of writing to the database to report an error when there's a database error! But anyway, you will notice that if a piece of code fails to write to the database, it will always infinite loop! The reason for this is that, for one, there could be a database connection problem, and it would never succeed, but more interestingly, there seems to be a missing apostrophe (') in one of the values in the sql statement when writing an error! So no matter what, if it fails once, it's doomed for infinite loopage.

And the site has one of these per day, and I love reading stuff like this. I recently bought a book called Java Puzzlers: Traps, Pitfalls and Corner Cases. They're fun brain teasers, and most of the time, in the Java one, you can't tell what's wrong (having 10 years programming under my belt, that's odd!) and then you go read the solution and it's like some bit can't be set when calling a certain function. Java's a pesky language :) I still love it though.