25 January 2007

Etsy :: Colors

Etsy :: Colors

I don't know what Etsy is, but this UI is revolutionary -- reminds me of that demo by that guy with the touchscreen (sorry, I have no idea what I'm thinking about right now).

24 January 2007

[DOM ELEMENT].disabled in IE?

Has anyone else found that you can set a phantom "disabled" attribute to odd things in IE? I was playing around with a checkbox-controlled DOM element "hider" (a script that hides an element depending upon the checked status of a checkbox), and I noticed that when I turned on my "enable disabled" option (instead of hiding the element, just sets its "disabled" status to true when you un-check the checkbox) for a handler that controlled a DIV tag, the element gained a sort of "disabled" status in IE when you un-checked its corresponding checkbox... I could still see the DIV's contents, but I couldn't affect them in any way.

Of course, Mozilla did not recreate this odd behavior. I wonder what other DOM objects Microsoft has deemed necessary to have a "disabled" attribute (an attribute that I thought only INPUT tags could have)?

18 January 2007

Microsoft(R) Firefox - We've Made it Better

Microsoft(R) Firefox | We've Made it Better

Somebody spend a long time making this... Seriously, there's even a video that's supposed to be a parody of an actual IE7 commercial. (Quick, view this site now before they're shut down due to various legal complications.)

Make Firefox Look Like Internet Explorer v1.1

Yes, it's true. There are some people that prefer the look of Internet Explorer to the way Firefox looks (though I've never met one). And, yes, there are other explanations on how to accomplish this. But, for me at least, these leave a bit to be desired as they include a lot of additional recommendations and extensions that are not required for a base installation of Firefox looking like IE. So, I've created this simple How To guide that shows you just what needs to be done to get Firefox looking just like IE. I even have a downloadable pre-built profile that works with Portable Firefox to do it. The goal of this project is mainly to demonstrate the power of Firefox's themes and extensions in making the browser work the way you want it to.

Now, this was actually neat, from a purely experimental point of view. At first, I thought that it would be useful to try and "wean" older people who were used to using IE for everything, but, the longer I thought about it, the more I realized that most people in that group have never really gotten used to the UI of IE anyway.

What do I mean? I mean this: have you ever noticed a less-computer-savvy person using a web browser? If you watch them long enough, you'll notice that they never even really use the buttons or most of the menus at all -- they just click on buttons on web pages, navigating everywhere they need to go. Hell, if that's the case, then it doesn't really matter what browser they're using, and most of the time, they'll never notice the difference when you show people this "new, safer" web browser that you'll put on their computer for them. ;)

12 January 2007

Tobie Langel - Attribute nightmare in IE

Tobie Langel - Attribute nightmare in IE

Well, apparently I'm not the only one having an absolutely nightmare trying to get IE to accurately grab attributes through JavaScript (of course, if you've done any web programming at all, you already know this!).

Of particular interest are his experiments showing that IE's very own, custom-made, proprietary functions for this kind of thing don't even work, even when created with their own documentation.

nVidia 6600 GT AGP for below $100

nVidia 6600 GT AGP for below $100 at 3B Tech



While I'm personally an ATI guy myself, I have to pay obeisance to the raw power that was the nVidia 6600 GT in its time. This card was -- and for the AGP slot, still is -- one of the fastest cards that was ever produced. It was like a fire-breathing dragon, eating up any benchmark or performance test you could throw at it.

And now it could be yours, for below a hundred bucks. I can't even begin to imagine what it must've cost brand new back in the day.

10 January 2007

BBC NEWS - Public can purchase $100 laptop

BBC NEWS | Technology | Public can purchase $100 laptop


Ah! Looks like the OLPC foundation wizened up! Though, I don't agree with the whole "selling to the public via Ebay" thing -- aye, that's ripe for corruption, that is.

The last thing we want is a third-world government selling their collection of OLPC computers wholesale on ebay for twice the price they bought them for. A nightmare scenario, true, and somewhat ridiculous, but it's possible.

09 January 2007

iPhone redux.

Okay, I keed, I keed.

It's beautiful. Really, it is.

I'm no Apple fanatic, even though I grew up using Macs in the 80's (my first three computers were one) and created my first logic programs on them. The direction the company went in the early 90's just rubbed me (and a lot of other Apple users) in the wrong direction.

The macs of that age were dull, boring, and uninteresting, not to mention incredibly expensive... yep, if it wasn't the dreary direction the company was going that was putting Mac users like myself off, it was the price of their computers (and the associated peripherals). During this time, Mac's were (ironically enough) getting so proprietary with their connections and programs that they were effectively designing themselves into extinction.

The iMac's arrival, back in the very late 90's, did away with all those problems -- it was exciting, it was powerful, it was inexpensive, and with its adoption of USB, it was finally compatible.

Flash forward to today -- Apple Computer is now just Apple, the vast majority of products they're known for aren't even computers, and the computers they do sell run on Intel chips!

And now, they've created a product that's so amazing that I wanted one immediately as soon as I heard of it...

...until I saw the price tag.

...and the "Cingular" logo in the upper left hand corner.

The price tag I can understand, though it does put if safely out of my purchasing range.

...but the carrier branding? Why did Apple have to make a deal with any one provider? So many people are in contracts with their current providers -- they can't just grab up an iPhone when they want to, like they could with an iPod.

Is it just common sense in America's highly-fractured, mafia-style cell phone environment, where phone manufacturers pretty much have to make deals with network providers to make sure that their phones will work?

Or, were cell phone providers climbing over one another to be the first to make a deal with the iPhone (knowing that it would sell amazingly well), and Apple is merely starting to let greed control its actions?

Only time will tell.

iPhone.

CNN - Telephone meets touch-screen Internet appliance - November 2, 1998


I don't get it. What's all this recent talk I keep hearing about the iPhone?

Big deal. I used one nine goddamn years ago -- all I can remember is that it had a pretty neat QWERTY keyboard, and it let me check my email.

Is Infogear bringing it back?

04 January 2007

YUI vs. DOJO

I'm at a loss.

Say, if I did want to adopt a framework, which one would I choose?

The YUI package from Yahoo looks great and has tons of support...

...but the Dojo framework seems more "powerful" (call me crazy, but it does), and is sponsored by IBM.

I've got both libraries, but haven't really tinkered with them much. (I was planning on waiting until I was done with a few Notes applications I was working on right now). This'll be a big decision, as it will mold what my future web applications will look like, and once I've invested lots of time and code in one framework, it'll be too late to switch!

Well, at least that's the way that I feel. To tell you the truth, these new JavaScript libraries make it so easy, I almost feel like I could plug and play with them at will. I'll have to see.

03 January 2007

Setting invalid selectedIndex property of Select objects in IE, Firefox, and the Notes Client

(Or: A Long, Hard Journey To Display Absolutely Nothing)

I've been trying to programmatically set a Select object to a sort of "null" value whenever I need to (at least as far as appearance is concerned).

For example: On a web form, I have a linked select object and number field -- in the field, you can enter in digits directly, or you can manipulate a drop-down menu next to it to select a number from one to ten to place a number into the field. Now, my instructions were to only have the numbers one through ten in the drop-down menu, even though a user can enter practically any number he/she wants to in the text field...

Eh? What's the purpose of a restricted-option menu if you aren't going to restrict the possible values ultimately received?

Beats me. However, as I'm sure all programmers are use to, sometimes, in a job, you have to code things that make little or no sense to you simply because a user wants it. That's just the way it is.

Okay, so I've got a silly little drop-down menu that serves little purpose. Big deal, right? Well, my user also wanted the drop-down menu to, in turn, somehow reflect whatever choices were entered manually into the number field in order to avoid confusion...

Ick. You can see my dilemma. How to do this? Programmtically use the DOM api to add() options to the menu?

Oh, why bother. This menu was only going to be seen upon document creation, so there's no need to store a value in it (that's what the number field is for). So, I decided to just make the menu show a blank or otherwise "null" value. However, what to show? A space, while it would work, is impossible to create as I don't have control over the final HTML -- this field has to be visible in both the Notes Client and on the web, so that means using Designer objects, and Designer drop-down menus don't allow spaces as options (as far as I know!).

What I finally decided upon is the following behavior: when the user manipulates the drop-down menu, change the number field to reflect this; however, when the user enters a number manually in the number field, change the drop-down menu to reflect this, unless the number is out of bounds, and in that case set selectedIndex of the drop-down menu to -1.

And that's about it! Setting the selectedIndex to -1 is the only behavior that was consistent amongst IE, Firefox, and the Notes Client. Originally, I just had the drop-down menu's selectedIndex set to whatever the user entered into the number field, even if it was out of bounds -- on IE (with its Trident Core) and the Client (which is based on God-knows-what), this made the menu display a "blank" value, but on Firefox it did nothing (what's the correct behavior, I wonder?).

Here's an example of what it looks like to help you out:



It doesn't work, because the Client requires (what I think is) HTML 4.0, and there wasn't an "Id" property yet. Therefore, you have to use "name," which doesn't exist in XHTML, which is what the blog is scripted in! Fun fun!

So, here's the next best thing -- the code.


function changeMatchedField(elementId, elementValue)
{
// The extension that the corresponding select object has on its name
var extension = '_select';

var menuLowerBound = 0;
var menuUpperBound = 10;

var doc = document.forms[0];
var fieldToMatch = '';

// if element calling this function is a select object
if (doc[elementId].selectedIndex)
{
fieldToMatch = elementId.substring(0, elementId.indexOf(extension));
doc[fieldToMatch].value = elementValue;
}
// else, if it's the associated text input field
else
{
fieldToMatch = elementId + extension;

if ((elementValue >= menuLowerBound) && (elementValue <= menuUpperBound))
{
doc[fieldToMatch].selectedIndex = elementValue;
}
else
{
doc[fieldToMatch].selectedIndex = -1;
}
}
}

You call it with a...

changeMatchedField(this.name, this.value);

...in the onChange() handler of the input field, and a...

changeMatchedField(this.name, this.selectedIndex);

...in the onChange() handler of the Select object.