Sunday, March 27, 2005

Flash Epidemic

Recently, there has been a large increase in Flash designed sites. The “new” cool, its called. Well, I tell you what, lets hope people see the light and the new cool will go away. So what exactly is wrong with Flash? I am sorry, there is nothing wrong with Flash. It is that it is often misused to create such monsters. Flash is a nice tool for constructing web animations, photo/movie galleries and quick/dirty games (for those who don’t know any real programming). However, many designers have took it further: introductory splash pages (those should never exist) or even worse: whole Flash sites. Imagine that.

Flash pages are harder to navigate and are less accessible. To make matters worse, many designers deploy non-standard GUI controls (e.g customized scroll bars). Okay, screw the scroll bars. They are filled with tons of redundant animation. People read web pages to absorb information, not to watch red and blue bricks float up and down the screen. Flash pages lack the most basic elements of website navigation such as a back button, link colours and search (not to mention text size and encoding). On top of that Flash distracts webmasters updating content. Oh, they are harder to index on search engines too.

Posted by Oleg Ivrii, 08:01 PM /

Thursday, March 24, 2005

The Downward Spiral

With all good new inventions, the web is rapidly deteriorating. Websites are becoming uglier, less usable and much more annoying. One fanatic movement is replaced by another, and the cycle of good web standards turns. Good humans have declared war against these zealots, only to be faced with corruption themselves. We can’t fight a disease - the more you kill it, the more it keeps coming back, in a stronger, more powerful reincarnation of itself.

To fight disease, we must pinpoint its source. Well, then what would be the source of all evils? Internet Explorer. Microsoft. Broken web standards. New HTML tags. Handling of malformed HTML. Thats a lot to hate Internet Explorer, but… here, we run into a problem. We cannot blame Internet Explorer, because its Microsoft. In fact, that’s the reason we can’t blame it, for Microsoft hasn’t been developing it for the last few years.

No tabbed browsing, no pop-up and image blocking, no News Feeds. Sure its sucks, and is all infected with bugs… but, thats only a local dump. We would have to look elsewhere. Perhaps the problem lies in the “good” modern browsers (Safari, Opera, Firefox)? Where does browsing stand today? The plague of pop-ups is almost over. Image ads are all but gone. Soon, with plugins like Greasemonkey, the web will be ours to control. Or will it?

What I learned: spam never gives in. The better the browsers become, the nastier do the nasties get. Friendly 480x80 image ads have turned into distorted proportions (some browsers block images of known ad sizes). Animated gifs have been replaced with Flash, JPEGs - by long listings of text. Pop-ups became overheads. But I caution you from making quick conclusions yet. For browser features don’t dictate website design. So far, we have only been examining a red herring (bummer). Thus, the answer must lie in how the websites are designed (or must it?). But that is something for next time, isn’t it?

Posted by Oleg Ivrii, 07:04 PM / Comments (1)

Tuesday, March 22, 2005

Acro is the Game

The game is very simple. We are given a bunch of letters (the acronym), and from them, we decide what it stands for. After 60 seconds are up, players must vote for their favourite acro (players are forbidden to vote for their own).

Now, the scoring. Players receive 1 point per vote. The first-entered acro which gets a vote will be awarded 2 bonus points for speed. The first-entered acro gathering the most points during a round will receive 1 point per letter (this is based on the assumption that the difficulty is proportional to the number of letters in the acronym). Clearly, this last bonus is huge. The game traditionally goes to 30 points.

Additionally, there is a topic (make it rhyme, server admins, role playing games, etc). The game has been complicated by “strategic voting” (i.e voting for the worst acro), voting off topic and cheating (getting “dummy” players to vote for you). Well, anyway, enter me. I suck at the game (people never vote for my acros), so I decide to make a computer (program) which plays for me.

So far, it makes nice 3 and 4 letter acronyms (NCF: Netherlanders can fly, FMU: Fish mutate uncontrollably, PHSM: Peculiar hamsters singly merrily) and decent 5 letter ones (SPDMF: Smart pandas dance mighty ferociously). The maximum is 7 (I still have to work on those). You gotta admit those are pretty good, albeit possibly off-topic. :).

The thing is, the computer has the advantage of thinking real fast and could output those in less than a second (lag time). Assuming that it gets at least 1 vote, it snacks all of the speed bonuses (some human players don’t like it, but thats only because they want to keep the speed bonuses for themselves, schmucks).

Anyways how does the program work? Well I have a bunch of lists, based on (1) parts of speech (2) connotation (3) placement within sentence (4) category. Then I have a few patterns, say #n#v#d [noun-verb-adverb], #n-c#v [noun-can-verb], &a-l&d [animals-like-desert]. The program chooses the best possible query (matches maximal number of patterns, well, weighted maximum actually - some patterns are more important than others) and sends it to the server.

I am looking into porting it to PHP code to give you a live demonstration over the web. Maybe this plan will come into being, maybe not.

Posted by Oleg Ivrii, 10:26 PM /

Saturday, December 11, 2004

Why Firefox?

Hello, readers! If you are using Windows, I suggest you switch to Firefox immediately (if haven't already done so). Plenty reasons why you should - including RSS support. That will guarantee you checking my blog on a daily basis. Opera is also good being the fastest browser on Earth but is somewhat ugly.

However, on a Macintosh, I prefer OmniWeb. Firefox and Opera simply don't feel Mac-like. A good application has to conform to the UI guidelines. That makes applications seem both professional and intuitive. I will write more about this in my next article.

Most websites are tested to work with IE Win and Safari. This leaves Firefox in an odd position of being left untested. But this isn't exactly the problem. Many websites are not written in valid HTML. For better or for worse, browsers have to handle malformed HTML. And they have to handle it in the same way IE does it.

But the evils of Microsoft don't stop there. It is not enough for Microsoft to deliberately break web standards. They have to make other browsers break theirs:


Whatever you, get a modern web browser which conforms to web standards, has up-to-date features like tabs and doesn't get your computer hacked every other day.

Posted by Oleg Ivrii, 06:59 PM / Comments (4)

Not Connected

Sometimes, my connection goes down. This is very annoying, because I cannot connect to many wonderful sites including this one. This means that I cannot post any wonderful stories for you to read, and you are left bored. And of course, I am bored as well because I simply cannot share my adventures with you.

One thing you expect from your ISP is reliability. Being connected 99% of the time is simply not enough. And 99 is just "one away from a hundred".

If a computer program worked "one away from a hundred" times, I would consider it buggy. Fast connection would only be just a feature right? When people buy equipment, they are unaware of bugs because they have not been haunted by them (yet) and thus they don't take them into consideration.

But this analogy is a little weak. When you speak of reliability, you talk about things which simply should not fail (even if something goes wrong). If a hacker tried to get into your banking account a hundred times - he should fail every single one of them. Failure (or success if you look from the hacker's point of view) is simply not an option.

Posted by Oleg Ivrii, 05:12 PM /

Monday, December 6, 2004

Real products ship

Of all things, I am working on a Java client for the Internet Chess Club (ICC). Such projects are big and take a lot of time. "But the time is now!" and more on that later.

Even though all companies try to pack in as many features as they can, everyone knows that real products ship. At one point or another, the developer has to let go and say that this is it.

Many companies pre-announce release dates and upcoming features. But programming is a not predictable profession and plenty complications arise in the stupidest places. More often than not, these release dates are not met (and thus pushed back) and features get pulled out.

Features, not bugs, sell products. That is why Microsoft Windows has a monopoly. To meet these dates (whether announced or not), companies rush through coding these features. Instead of coding these things properly the first time, they just make them work - they take shortcuts.

This results in bugs. Correcting bugs is easy. But pinpointing their origins is tricky (and realizing that they even exist!). And it takes a lot of valuable time. This also hinders future development. Think of it as a castle made of playing cards. Now suppose the base is made badly. If you want to replace the base, you would have to start all over again.

Why do companies take shortcuts? When programmers spend their time developing, they want to see progress. And progress must progress. People just don't focus on one aspect of the program (then they will be frustrated when they hit a dead end) - they shuffle all over the place.

I announced the first release of LavaTech (that is how I called my program) on Dec. 16, 2004. In my case, I am developing the entire program. Sometimes I work on the console, sometimes on the chessboard, sometimes on the GUI (Graphical User Interface), sometimes on handling datagrams.

As more underlying code gets done, bugs get fixed. Yet new bugs arise - but they are on a higher level. But you just cannot ship a product with bugs (unless you're Microsoft). There is this urge to fix these bugs, but to do that you develop more code, create more features and thus more bugs.

That is why pre-release dates are annoying. When, its time to meet the deadline, things must be done right. And programming becomes frustrating and stops becoming fun. Its not only about completion, its also about publishing.

When releasing the product, it has to be presentable. I am not talking about creating a readme file or taking screenshots for your website because it's fun, I am talking about spending ten hours (without rest) fixing the bugs.

Now, a final question. Why do developers pre-announce release dates? For two reasons. First, programmers want to commit themselves to features, secondly they are excited and want to share them with you.

Posted by Oleg Ivrii, 03:25 PM /

   Copyright © 2004-2005 Oleg Ivrii, Liscensed under: Creative Commons.
   RSS: Big Party, RSS: Linklist.