Tag Archives: technology - Page 9

Responsive and Slow

A recent discussion with a co-worker resulted in the phrase “responsive, and slow.”  This came about from using Microsoft Office 2013.  Office 2013 is some kind of a pinnacle of where software development seems to be going, and it seems that’s just a bit too far.

For years now, asynchronous programming has been shoved down developers’ throats.  “It must be done this way! It’s how you achieve a responsive UI!”  Seems like desktop applications have always had background work being done.  The original idea was to do processing in the background, so you could cancel the work if you needed to and so you could display a progress bar.  This is fine. 

Then there’s the case of background loading tasks.  Lets say a dropdown list needs filled, so the dropdown list is disabled while the data is being loaded in the background.  Meanwhile, you have your mouse hovering over it waiting for it to finish and become enabled.  Now we’re starting to see the effects of async programming. 

Now, take everything and make it load async.  Your application opens and nothing is there, then things start magically appearing all over the place as they finish loading.  This is how Office 2013 feels, although that’s not literally what happens.  The best example is marking emails read in Outlook and there is a significant delay in updating the unread message count.

As long as I’m griping about Office 2013, I find the new Lync 2013 client to be ridiculous.  I keep my conversation windows on the left side of my monitor, which Lync is great about remembering.  The problem is, the new message notification shows up in the lower right of the screen, so I have to click there, then the chat window does a wicked-smooth slide all the way across my screen to where I keep them, then it does a fade in.  So, in addition to having to move my mouse the full width of my screen, I have to wait for the animations to finish.

But anyway, back to asynchronous coding.  It’s all supposed to be in the name of responsiveness, so the UI doesn’t get blocked by anything.  The problem is, maybe the UI isn’t ready for use yet!  Have you seen a UI with 20 “loading…” placeholders all over?  if you haven’t yet, you will soon.  T-Mobile’s account management section does it.   This is stupid.  How can computers be so fast and yet so slow?

Gunnars

I’ve been a Woot buyer for a while, from back when Woot was cool.  But even now, you can still get some good deals.  Anyway, that aside, it was a few months ago that I saw one of my co-workers wearing these yellow glasses.  He said he got them on Woot.  I recognized them as Gunnars and was curious as to whether they were worth the money.  He said he noticed the difference.  I tried them on and because of the slight magnification of the lens, I took them right off and said “no way.”

Weeks go by and my co-worker is wearing his Gunnars every day.  Every once in a while I ask, “they’re working ok?” and he says they’re great.  The joke in our department is that they are future glasses and when wearing them you can “see future.”  On a more practical level, if the glasses didn’t work, he would’ve stopped using them.  So, the next time Gunnars showed up on Woot, I went for it.

I purchased the Groove model.  When I got them, I was slightly underwhelmed.  The arms were simple rubber and the nose pads were stationary and tiny.  But I got over that and wore them to work.  After an extended time, the nose pads started really hurting me.  I adjusted them over and over but couldn’t find a good position.  So I ended up wearing the glasses less and less and eventually they just ended up in a drawer.

Another Woot sale came along and I decided to purchase another pair, one with a different bridge.  I decided on the e11vens, since they had a solid plastic bridge.  When I got the glasses, again, I was slightly underwhelmed.  The whole frame was a glossy black plastic and felt a little on the cheap side.  But the glasses look like something Tony Stark would wear, so there’s that, anyway.  At the time I ordered the e11vens, I played around with my Groove’s one more time and found a very comfortable nose pad position.  With that modification, I started wearing the Groove’s consistently.  Now I had a pair for work and one for home.

The real question is, do they work?  Yes, they do.  You’ll see a lot of reviews saying that Gunnar’s are overhyped, overpriced, and pointless.  After using them, I have to disagree.  I’ll admit, when I first researched Gunnars, I was totally put off by the hyper-aggressive, buzzword-laden marketing they used.  Since that time, the company seems to have toned the hyperbole down and the message is a lot more palatable.  I read some quotes from their founder and they made a lot of practical sense.  Basically, Gunnars are safety eyewear, and that’s not sexy.  It wouldn’t be very cool to be wearing “safety glasses” at work, and who would ever buy them with that label?  So I understand why they did what they needed to.  Now, with some real testimonials and word-of-mouth behind them, they can afford to be more realistic and practical with their message.

Now, some of the arguments against Gunnars say that that all they are is tinted glasses and all you need to do is go out and buy blu-blockers from the dollar store to get the same effect.  That’s fairly untrue.  Some of the features that Gunnars profess (and probably way over-hyped) are actually beneficial.  I’m not going to look up what their special marketing words are when discussing the features, because they don’t matter.

One feature -  I ‘m pretty sure they call this “microclimate” – is the wraparound style of the lenses.  It doesn’t need a buzzword to be effective.  I know this works because my eyes don’t dry out throughout the day.  You may think it’s a placebo effect, but physical proof that my eyes aren’t drying out is that I get “sleep” in my eyes at the end of the day, which means my eyes are tearing more than sufficiently.

Another feature is the slight magnification, the part that freaked me out when I first put the Gunnars on.  This magnification is optimized for up to about a 3 foot distance.  Don’t wear Gunnars for driving or even for walking around, they don’t work for far distances and you’ll get a headache. 

Gunnars hype the optically pure lens material and anti-glare coating.  Eh, I would hope glasses would be clear and anti-glare, especially at that price.  And the tinting, it’s not sunglass tint, it’s like shooting glasses.

So, can you use blu-blockers?  Sure, but you won’t get a wraparound fit, so your eyes will dry out.  The tinting will be darker and more pronounced, which I can’t see that doing any good.  You could use shooting glasses, but you won’t get the near-range magnification.  Cheap sunglasses probably aren’t as optically pure as specialized glasses, so maybe there would be a bit of distortion.  And, purely for vanity’s sake, in an office environment, wearing Gunnars may be considered edgy, but wearing actual sunglasses would be either tacky or plain weird.

The other real question is, are they worth it?  For $100, I wouldn’t think so.  Luckily, they are a Woot recurring item, so you shouldn’t have to pay that much.  At Woot prices, they are definitely worth the money.

An Honest Try

I’ve played around with Linux in a few different forms on and off in my computing years.  Recently, I’ve been pretty impressed with the Ubuntu and Mint offerings, since they are really starting to look like polished pieces of software, with friendly installers and GUI management tools.  So, I happened across an older laptop and decided I would make it an Internet machine.

My biggest problem with Linux is that I am a Windows developer.  That means I spend a lot of my time in Visual Studio and SQL Server, neither of which are suitable for Linux.  I could probably get by with Wine emulation for most other applications, but developing is what I do, so I need Windows.  But I figured I could have a laptop that is just for Internet, and with Linux, it would be a speedy little device.

I keep an Ubuntu USB stick handy for disk diagnostics, so I booted that up on the laptop with no problems.  The laptop’s hard drive was dead and I was waiting for a new one.  I figured I’d try something fun and try installing Ubuntu to a 16GB naildrive stuck in the laptop.  Just so you know, it’s impossibly slow when running off a USB drive acting as a hard drive.  No SSD speed here.

Last night, I got my new hard drive, installed it, and downloaded the newest Mint version onto a USB drive.  I went to install and the system froze.  Tried again under compatibility mode and Mint essentially said the machine was not compatible.  So I tried with the newest Ubuntu.  Same thing.  I should have figured as much since Mint is built from Ubuntu.  So I went and installed the older version of Ubuntu I had on my diagnostic USB drive.

Mind you, I went into this install with a pretty positive attitude.  Maybe I was a little unrealistic in how lightweight and fast Linux is supposed to be, but lots of things started adding up.  Downloading the ISO images was so slow.  I thought Linux was huge in universities and they had lots of bandwidth.  I guess that’s not as true anymore?  I was surprised that newer versions were less compatible with older hardware.  I thought things always got better with time.  Then, the install itself took a surprisingly long time to finish – over an hour.  Again, maybe I’m being unrealistic, but I think that my expectations have been molded by the enthusiastic Linux community.

Finally, after install, I have a desktop and everything’s working pretty well.  I map a network drive and try out a few application.  Then the Update Manager pops up.  Yeah, I’m using an older version, so I have to update.  Woah, 471 updates!  That’s almost four times as many as Windows XP’s post-install updates (~120).  Alright, go ahead and update me.  Another hour passes and now I have to reboot.  Linux needs a reboot?  I restart and when I get back to my desktop, I’m prompted for my wireless network passphrase.  That’s odd, I thought Ubuntu would save that.  I re-enter the password again and Ubuntu prompts me again.  Oh.  The 471 updates broke my wireless network driver.  Where do I go from here?  Which update did it?  Not knowing the details of Linux, how would I even begin to troubleshoot this?  Can you even roll back updates in Linux?

So here’s where I picture myself at: I can reinstall fresh then either skip all updates or try to find (guess) which updates botched the wireless and exclude them.  Looking through 471 updates is not high on my list.  The other option is to install Windows XP, which I know will work.

The Future Is In The Past

Today I was forwarded an article about a new computer input device utilizing gestures and the article was teasing with a headline like “gestures replace keyboard and mouse.”  Uh huh.

Go ahead and pile this technology on an ever increasing pile: Stylus, touch, multi-touch, swype, and Kinect.  All of which are supposed to be revolutionary and every one has not replaced the keyboard.  Or maybe that’s not true.

Long ago, computers were for highly-skilled people – researchers, academics, scientists.  Then they went mainstream.  Personal computers took over every household.  Then, people started demanding less “computer-looking” devices, so the style element of PC’s was addressed.  More recently, it seems the public has been clamoring for simpler interfaces, reducing the need for input devices.  Enter gesture and touch input.

Depending on which camp you are in, this advancement – or decline – of computers is only a subset of the reality.  Throughout all of it, the standard computer, with boxy tower case, keyboard, mouse and monitor (or monitors) is the mainstay of the creative computer users.  The alternative input devices are too imprecise and too inefficient to actually create anything of quality, whether it be art, code, or engineering.  The sacrifices made for aesthetic purposes limit the raw power needed to actually do work.  So because of this, the computing landscape has split into creators and consumers.

The media keeps hyping that tablets are the future.  This is actually probably true.  The majority of people are not going to need or want the power of a full computer setup.  Combined with the news that there are fewer students with computer programming skills than in previous years, this forms a scary trend.  In a few generations, it’s entirely possible that the use of an actual computer becomes exclusive, just as it was in the early days of computing.  If you have a full computer, you could be viewed as old-fashioned, or maybe you’d be viewed as a genius.

The media also keeps saying that the PC is dead.  This in absolutely not true.  If this were true, there would be no way to create future software and hardware.  However, if they were to say, the consumer personal computer is dead, they may be on to something.

To me it’s very sad to think that we almost had something.  It’s as if we were right on our way to having a super-intelligent global society and a huge shockwave hit and lowered the bar for everyone.

Change For The Good, Right Now

In the “these things happen to other people” news, I’ve been a target of a hacker.  As hacks go, it was fairly significant – my EBay account.  The hacker bought a whole bunch of stuff, surprisingly not using my linked PayPal account.  EBay locked my account quickly, notified me, and took care of most all the issues with fees and listings.  Regardless, I felt obligated to apologize to a bunch of people who got caught up in the mess.  One person had actually shipped the product by the time I emailed them.

I’ve been online a long time and my password strength has grown with the ever-increasing threat.  I’ve felt I’ve had a decent password, but I suffer from what a lot of people probably do, and that is password entropy – using the same password on every site.  Well, that’s not entirely true since I do use a variant of my main password for those sites that don’t support the special characters I used.

Now it’s time to get real.  Just before I discovered my eBay account was hacked, I had dealt with some spammer sending me over 7000 emails of random text.  So I was giving consideration to changing my email address, and why not have a different email address for every site?  So my email address for Bank of America would be bankofamerica.com@mydomain.com and for Expedia it would be expedia.com@mydomain.com.  This would be relatively easy to remember and would identify if anyone sold my email address to another company or if my email was stolen or harvested.

But at the time, I felt a bit overwhelmed with the task of changing ALL my emails.  Now, since I have to change ALL my passwords, I might as well go through with it.  In addition, I’ve decided to use a password manager, KeePass.  It seems to be a pretty slick utility and I’m surprised I never gave it a chance before. I think my main reason for avoiding it was that I never wanted to be unable to access a website because I didn’t know my password.

But upon closer inspection of that fear, it is very similar to other fears that keep you from (positive) change.  The fringe cases override everything.  It seems everyone is afraid of the word “can’t,” because it is only interpreted in its absolute and permanent sense.  It’s not “I can’t do this,” it’s “I can’t do this right now.” And the “right now” part is what makes the modern time so awesome, hectic, and dangerous.

So, with KeePass, I can have a password file on my home computer and there’s a version for my phone that I can keep synched.  That should be well enough to let me do what I need when I need to.  And for the other cases, it’s going to have to be the other person disappointed when I say “I can’t” because I’m not going to let it control me.

Hidden Windows Features

Windows 8 has gotten a lot of press, mostly negative, for the Metro Start screen and the lack of the traditional Start menu.  In all that debate and discussion of the pros and cons of the new design, a few obscure features that are new to Windows 8 have been overlooked,  These new functions show that Microsoft continues to innovate and improve the Windows product.  Some features may not be available in all Windows versions, so your experience may be different when attempting to use these.

Morse Code Entry

This functionality was added to Windows in response to a demand for increased security, especially in the military space.  A recent news story discussed how the US government was investing in major upgrades, including Windows 8.  The Morse Code Entry (MCE) system is designed to allow secure data entry for sensitive communications.

One of the most effective ways to steal information on a computer is to install a key-logger application.  These applications capture each keystroke and store it to a file for later retrieval.  This means username and passwords that are typed in are captured, along with emails, chats, URLs, and all other typed in data.  MCE defeats this by allowing text entry using Morse code.  Open up Notepad and begin a message by pressing the . key as you would on a Morse transmitter.  Windows detects the patterns and converts the dots and dashes to characters for display.  The keylogger simply records a series of periods, with no timing information between them to indicate a dot or dash.  The keylogger has been defeated.

Internet History Sync

This feature was added for US markets, but ironically was requested by some specific governments in Asia.  The simple description of the new service is that all Internet addresses accessed by a Windows 8 computer are synchronized with a central server.  It’s like your normal Internet History in IE or Chrome, but extending system-wide.  By default, this data is transmitted to a facility in an undisclosed location, operated by an unknown organization, but Microsoft is quick to point out that the data is secure and there is nothing to worry about.

From a technical perspective, this feature was extremely easy to implement, since all DNS resolution occurs in a system module.  Initial reports show little to no performance impact from this enhancement.  Although it can’t be confirmed, this feature may not be new for Windows 8, but may just be getting announced with this version.

Subliminal Mechanics Framework (SMF)

For developers, this new framework API is long-awaited.  It provides a way to inject messages into the video output that are only perceived at a subliminal level.  Most computer monitors operate at 60hz and higher, so displaying an image or a message for one of those frames would hardly be noticeable.

According to the API documentation, SMF is a great tool for any of the following:

  • Display motivational messages to keep the user working
  • Display religious messages to inspire a user
  • Display corporate messages to improve worker loyalty
  • Display “targeted” advertisements to improve sales
  • Display messages of national importance to improve compliance

SMF is currently only active when using Metro applications, which explains the urgency to deprecate all classic Windows desktop applications and replace them with Metro versions.

Internet Simplification

If you are unable to find any information on these new features on any other blog or news source, then Internet Simplification (IS) is enabled on your Windows computer.  This enhancement is being back-ported with each update to Microsoft software.  So although it’s new with Windows 8, it’s not exclusive to Windows 8.  The purpose of this application is to make the Internet easier to navigate by reducing the number of sites that have redundant information.

The Internet Simplification service leverages the search results from the Bing search engine and will redirect a web browser to the best (or first) source for the information being searched.  Since this blog post is the first source to discuss these new Windows features, it will be considered “authoritative” by IS, and will be redirected to, regardless of what search engine originally performed the search.  It’s also possible that this whole post is bullshit, but the IS service has been through a few revisions already, so the chances of a bullshit posting being flagged as authoritative by IS are pretty slim.

Key Board

When I’m at work, there’s some desk items that cause some distraction.  It could be the stuffed creatures on the shelf, it could be the NERF guns or the NERF Super Soaker missile (“The F Bomb”).  But for some people, the thing that catches their attention is my keyboard.  It’s a new keyboard, but it doesn’t look new.  It’s old-school.  It’s actually impossible to find a decent picture of it online.  Even the manufacturer’s website doesn’t have a flattering photo of it.  It’s a KeyTronic.  It’s been my favorite keyboard brand for at least 15 years.  It hasn’t changed its look in 15 years, nor has it changed its feeling.

Yesterday, I purchased the newest model of KeyTronic’s keyboards and this weekend, I’ll have the chance to find out if they are remaining true to their roots.  There’s a couple things I can’t live without on this keyboard.  When I say I can’t live without them, I mean, I bought one for home and one for work.  The productivity loss when I change keyboard layouts is significant.  The KeyTronic keyboard is offered with a large L Enter key instead of the straight bar Enter key.  This makes the backspace half-sized and moves the backslash key up to the top row.  The other thing I can’t live without is the tactile snap of the keys.  Less important, but noticeable, is the huge chasm of empty space between keys.  This is a very forgiving keyboard to type on.  When you type code all day and in the evenings either code some more or blog, a good keyboard is required.  Yet another design feature you don’t see everywhere is what someone called the “stadium seating” of the keys.  When the top row of keys is nearly 50% higher than the lowest row, I find my thumb resting more naturally under my fingers to hit the space bar.

I was looking online to see if there were any other KeyTronic fans.  Outside of product reviews, there’s a couple of threads on a mechanical keyboard forum praising the feel of the KeyTronic, although also admitting it is not a mechanical.  So, besides that, I didn’t find much.  And what I read sort of inspired me to type a bit and remember why I liked this keyboard so much. 

In this day where flat keyboards are the standard, and chiclet keyboards are fashionable, it seems like typing is taking a back seat, which is consistent with the slow decline towards content consumption instead of content creation.  You need a keyboard to type a URL or a status update or maybe an email (so long…); you don’t need a task-oriented keyboard.  Gamers buy keyboards made for their needs.  I would like to believe that this keyboard grew up as a product optimized for the needs of the time, which required much more typing than the current age.  But now it’s become a keyboard made for my needs – extended typing sessions.

So now I’m waiting and hoping that I will have a new keyboard that has all the same great feeling of this one but has a look of “what kind of keyboard is that?” instead of “is that even a USB keyboard?”

Code

This is a good video.  In a way, it’s very surprising to me.  I had no idea there was a shortage of software developers, much less a shortage of that magnitude.  The people in the video made some pretty good points, but I think in some ways it overplayed some parts and missed some other parts.  Of course everyone’s story is going to be different, so this is mine.

My first computer was a Timex Sinclair 1000.

image

This computer was a tiny device that plugged in to your TV and had a keyboard with multifunction keys.  The keys had upper case and lower case, and also could print out a graphic character.  But one of the biggest tricks it would do is spit out a whole BASIC command with a single keypress, when it was in context.

So one day, my dad brings home this Timex Sinclair and gives it to me.  He says it’s a computer.  I’ve always loved computers.  Back in 1st grade, in a workbook, there was a page with three futuristic views and you chose which one you felt was going to be the real future.  Unsurprisingly, I chose the one with the big computer banks and I wrote beneath it, “I like conputers (sic) and how they work.”

Since I was so awestruck by computers, I had this device hooked up in no time and immediately started using it.  The very first thing I did was type in my name, which was very difficult because each keypress would generate a BASIC command.  Laboriously, I typed in each character of my name, then backspaced over the command that was inserted.  Finally, I got my name entered and pressed Enter.

“Syntax Error”

I look up at my dad and say “What?  It doesn’t know my name?”

And my dad thrust the owners manual at me and said, “No, you have to read this.”

And so I did, starting with two-line programs that would fill the screen with graphic characters (10 PRINT “JHGJSFGJD”; 20 GOTO 10).  Then I remember the first time I struggled trying to figure out how I could fit two pages of code onto the tiny screen, thinking that if the program code scrolled off the top of the screen it would be lost.  Then I just started “doing it.”  Coding just became something I did.  And back then, if you wanted a computer to do something, you made the program yourself.

My take on being a coder, which isn’t one expressed in the video, is that it’s pretty close to being a god.  As a coder, you are creating things.  And not creating in the artist sense, because most all art is simply a static representation.  A coder creates something that does things.  Mechanical and electrical engineers should have the same feeling.  When you’re done with your work, you can release your creation and it lives on its own.  That’s pretty powerful.

The other thing about coding, and the one that always makes me tell everyone “I love being a programmer”, is that it makes your life so much easier.  If there is anything you do that is difficult, repetitive, or monotonous, you can write a program to do it for you.  Like a boss.  You can’t fully grasp how great of a feeling this is unless you’ve actually done it.  When you spend a hour a day doing a task, and you invest a couple of hours into writing a program, then you gain an hour back every day because that task is now automated, that’s the miracle of software.  And that’s the reason businesses need programmers.

The video doesn’t mention this, but software development has been one of the most resilient professions in recent times.  If you’re good, you should not have any issue finding a job.  Although the video overplays the supposed awesomeness of working at Facebook, Twitter, or Google, there are many great companies that love their IT departments and usually give them a break when it comes it corporate rigidity.  Although some people are after the money (i.e. recent post), you can still get a great income from doing something you love.  And when you love it as much as I do, it’s hardly considered work.

So, get yourself involved with coding, or get someone else coding.  Don’t see it as a chore, or a task, or as work.  View it as creating, as art, as play.  Create something tiny and say, “what if?”, then “what now?”

Finally, I understand.

Today I was out at lunch, eating at the bar and a commercial came on – Finally Fast!  Go to Finally Fast dot com for a free analysis!

This commercial has been around for a long time, and I’ve always known it to be just some sort of ridiculousness.  But I had a thought, what if I did actually run it… on a brand new OS installation?  Could Finally Fast make a brand new computer even faster?

So I set up a fresh fake email account because I know I’m going to have to register for this crap (turns out I didn’t need it).  And I created a clone of a new Windows 8 virtual machine.  Let’s go.

During install, I took a moment to actually read the license agreement.  It scared the hell out of me.  There was lot of text relating to payment, recurring billing, cancellation, and chargebacks.  For example, if you request cancellation of the service, they have 3 days to respond to your request.  If they don’t respond, it’s up to you to request again.  So if you wait until the last day to cancel your “subscription”, you might as well expect it to be too late and you’re going to get charged for another year.

If you try to cancel payment by calling your credit card and cancelling the charge, they will dispute the chargeback and will charge you $500 for “defrauding” them. If you intend to cancel payment through the credit card company, you have to provide Finally Fast with a police report showing that you reported your credit card stolen, since that’s the only acceptable reason for cancelling a charge this way.

If you couldn’t tell this was a scam from the start, and I’m not sure how you couldn’t, it should now be clearly obvious.  If a company threatens its potential customers, you do not want to do business with that company.

So here’s the results of my scan on a brand new install:

image

64 “Errors”.  Missing shared files (which happen to be all references to the obsolete .NET Framework 1.1) and invalid file extensions for file types that are hardly ever used, like .ARJ.  None of the “errors” are critical.  They won’t make my computer faster.  Clicking Fix Now does what you expect, it opens a web browser to make the sale.  The scan has been scheduled to run every 7 days, which I am confident will present the results and another request for activation.

At this point I’ve lost interest in the application.  You can download a bunch of other applications that do other scans and I wasn’t going there.  My curiosity was satisfied that a new OS install evidently has “errors” that must be fixed by buying an application from a company that expects you are going to defraud them.  And as we all know, what you believe will happen, will happen.

The Biggest and the Bloatedest III

It seems to be the natural progression of things to become so big and so complex that they just become useless.  Then new upstarts that are simple and lean take over, until they become huge and the cycle continues.

At my job, we use custom controls for our website and application.  Custom controls have always been a great thing for developers because they give you extra functionality built in, so you don’t have to code it.  Telerik controls have been leaders in this field.  But recently, there have been changes – breaking changes – in the newer versions.

I had a simple RadTextBox that I added a script to so that it would do a postback when there was 5 numbers in the textbox (a zip code).  Simple and easy:

if (((event.keyCode||event.which)!=9)&&((this.value.length==5)||(this.value.length==0))) setTimeout("pnlUpdate",300)

This suddenly stopped working.  Well, the postback would happen, but the RadTextBox’s value would be blank.  Telerik support suggested I handle the control’s KeyPress event:

function KeyPress(sender, args) {
    var textLength = sender.get_textBoxValue().length;
    if (textLength >= 5) {
        sender.set_autoPostBack(true);
        sender.set_value(sender.get_textBoxValue());
    }
}

This is stupid enough, that I have to use a custom event and custom methods to get and set the value of a textbox, but there was more that needed done.  The event fires on the key press, but the textbox value doesn’t include that key yet, so you have to include it yourself when measuring the length.  But you have to insert the new character in the right position for when you set the RadTextBox value.  Finally, when using the KeyPress event, the RadTextBox’s MaxLength isn’t enforced, so there has to be a check included for that. 

So from the Telerik proposed solution, I ended up with a script like:

function checkZipCode(s, e) {
    var t, l, c

    c = s.get_caretPosition();
    t = s.get_textBoxValue();
    t = t.substring(0, c) + e.get_keyCharacter() + t.substring(c);
    l = t.length;
   
    if (l > 5) {
        e.set_cancel();
        return
    }

    if (l == 5) {
        s.set_autoPostBack(true);
        s.set_value(t);
    }
}

This is totally unacceptable.  And all because Telerik decided to begin managing the control’s state independently, breaking the standard HTML input behavior.  It’s been growing over time that a developer using Telerik controls has to do things “the Telerik way” in order for the controls to work properly.  Where Telerik controls once were written as extensions to existing controls, they have become total replacements, with little resemblance to the original controls they look like.

So, it’s going to be my recommendation to reduce our dependence on Telerik controls.  I doubt we’ll be able to get rid of the RadGrid, which has its own universe of functionality and weirdness, but when DropDownLists  are rendered as <ul> and TextBoxes don’t use the standard Input Value property, there’s something really wrong about that.  It’s garbage like this that makes MVC so appealing.  Put it this way.  If the big argument against WebForms is that it is trying and failing to make a WinForms model work on the web, then Telerik is taking a WebForms app that is acting like a WinForms app and trying to make it act like an AJAX website.  At that point, you might as well not use WebForms.