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?”

To Bed To Rise

When Windows 8 came out, I had planned on making a Windows Store app that would be an alarm clock with sound soother for falling asleep.  Hardly a new idea.  In fact, I was driven more by personal need than personal gain.  I have the Dell Inspiron Duo.  The original one, with the JBL audio dock.  It’s possibly the best-designed multifunction consumer device. The custom dock triggers an app that can be used as a slideshow (like on an office or counter, replacing a digital photo frame), or as an alarm clock (best kept bedside).  The point is, when you’re not using it as a laptop or tablet, you’re using it as something else.

Well, you may know that this product got justifiably poor reviews because of its weight/battery life ratio and isn’t in production or even in warranty anymore.  Regardless, I own one and I have two docks, one at home and one at work.  One day I decided to upgrade to Windows 8 and the clock app wouldn’t launch anymore.  This was heartbreaking for me.  And until a recent explosion of programming motivation, I just used the dock as a charging station.

But tonight is the first live run of my replacement app for the Inspiron Duo “DockClock” or “DuoStage” or whatever they called it.  I’m pleased that I was able to come up with a technique for detecting when the laptop was docked as well as discovering the method for putting the screen to sleep on command.  The rest, involving background sounds, alarm timing, and background animation was easy work.

The original:

image

My prototype, with corner controls displayed:

image

My main regret is that I waited so long to write this app, since there’s a lot of Duo owners out there that have probably lost their capability to use the alarm clock in their docks.  But once I’ve given it sufficient personal testing, I’ll put it out there for download.

Oh, and as a passing mention, it appears I’m in my fifth year of posting on this blog.  I sure didn’t expect that.  There’s a lot of history in here, with some really low points in my life. Despite that, I’d have to say that the present is truly a high point of my life.  Will there be another five years?  Who knows?

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?”

Married Bliss… with Taxes

It’s time for the 2012 edition of Tax That Married Couple.  Let’s jump right in to the numbers.  For previous posts on this topic, check out the Taxes tag.  Here’s the tax charts for last year and this year:

2011 Taxes

Single Filer 2011

10% on the income between $0 and $8,500
15% on the income between $8,500 and $34,500
25% on the income between $34,500 and $83,600
28% on the income between $83,600 and $174,400
33% on the income between $174,400 and $379,150
35% on the income over $379,150; plus $110,016.50

Married Filer

10% on the income between $0 and $17,000
15% on the income between $17,000 and $69,000
25% on the income between $69,000 and $139,350
28% on the income between $139,350 and $212,300
33% on the income between $212,300 and $379,150
35% on the income over $379,150; plus $102,574

2012 Taxes (from page 105 of the 1040 instructions)

Single Filer 2012

10% on the income between $0 and $8,700
15% on the income between $8,700 and $35,350
25% on the income between $35,350 and $85,650
28% on the income between $85,650 and $178,650
33% on the income between $178,650 and $388,350
35% on the income over $388,350; plus $112,683.50

Married Filer

10% on the income between $0 and $17,400
15% on the income between $17,400 and $70,700
25% on the income between $70,700 and $142,700
28% on the income between $142,700 and $217,450
33% on the income between $217,450 and $388,350
35% on the income over $388,350; plus $105,062

Ok, as in all other years I’ve been doing this, the break happens between the 25% and 28% brackets.  When you’re married, you’d think you could stay in the 25% bracket until you collectively make $171,300 (which is double the upper bound of the 25% bracket), but no, you jump to 28% at $142,700.  That is $28,600 earlier.  Last year, the 28% bracket started $27,850 earlier.  It just keeps getting sooner and sooner.

The salary range for couples getting screwed this year is between $71,350 and $85,650, a range of $14,300.  That’s about the same as it was last year.  So if you and your new spouse are fairly successful and equal earners in that salary range, surprise and congratulations!  Why do gay people want this?

So all these years, I’ve been complaining about this marriage penalty, but there is a common belief that you pay less taxes when you are married.  The tax charts in the 1040 instructions stop at $100,000, so there is no easy way to visually compare a single person earning $50k or more against a married couple who each earn $50k or more.  So I wrote a quick program to calculate taxes using the single and married tax charts and ran a bunch of numbers through it.  Here’s the results:

image

Single Income is just what it sounds like.  Married Income is double that value, assuming both people making the same amount.  Single tax calculates the Single income against the single tax chart.  Married tax calculates the Married income against the married tax chart.  Married Tax as Single simply divides the total married tax in half, showing each person’s share of the married tax burden.  Premium per Person  shows how much more each person is paying for being married.

My plan was to find out at what point your taxes become lower when being married.  I wanted to make the point that it happens at an unreasonably high income level.  It turns out that the savings never happen.  After the tax rate split at about $71k, you pay more being married.  It’s not as much as I originally calculated, but still more.

In all my previous posts on taxes, I definitely exaggerated the impact of this marriage penalty, and because of the graduated tax chart, I was miscalculating its financial effect.  I regret that a little.  But with more in-depth research, I found that the actual situation isn’t all that much better.  The more income you make when married, the better off you are being single, starting at $71k.

I think I’ve now beaten this topic into the ground and I won’t bother doing these in future years unless something interesting happens with the tax code.

The Benjamins. Yeah… About Them

Jobs are like a second life.  In this second life, you have work to do, you can have relationships, you can have good and bad “existences”.  I’ve seen co-workers come and go in all different manners.  Some people are squeezed out and their departure is no surprise, some leave suddenly, voluntarily or not.  Some people you want to go and some you want to keep.  And in every case of departure, as with a departure in the first life, there is some soul-searching and some situational evaluation.  Very recently, some news was broken that one of our work family members was leaving.  My reaction to the details of the departure  was unlike others I had previously.

This person had come to us less than 6 months ago.  He came from a job he disliked and he fit in with us very well.  Moreover, he was a hard worker and had excellent skills.  In my opinion, he was going to go far in our company.  This all ended when he put in his two weeks notice.  In IT, there’s always new opportunities and new challenges to take on.  Developers are eager to apply their skills in a new environment, and many cases, fellow workers wish them well, because they understand the excitement of going off to tackle new problems and come up with great new solutions.

But not this time.  This developer was going back to his old job.  Why?  Because they offered him a boatload of money.  That’s the only reason, and it’s the only reason I need to write him off completely.  He knows he’s going to have to work harder, because the dev team at his old job has mostly quit.  He knows he’s going to have to sacrifice his personal time to be on call.  He knows he’s going to be working with the same management he didn’t get along with before.  For what?  Money.

I can forgive job hopping for money when you’re in your 20’s and 30’s, because there’s lots more time to find the company that’s right for you and you should get good and bad experiences so you know what to look for. But this guy should be old enough (my age) to know a good thing when he sees it. But he sees nothing but money.  He’s a whore.  That designation fits very well since he’s commented about putting in a year and getting $x more.  Giving up an incredible job at an incredible company to plan to leave another company in the lurch after a year after pocketing their generous offer.  Don’t come back knocking when you’re done with that one.

I’m taking his decision very personally.  In a sense, I feel like I’ve been used.  Like I’ve been the best boyfriend/girlfriend ever, and six months in, was told, “You’ve been great, but I’m going back to my old boyfriend/girlfriend because they make more money.”  “But they beat you!”  “Yeah, but it’s not that bad, and I can buy nicer things.” 

Money won’t buy you happiness, and I’m looking forward to the day he realizes that.  I’ll give him about three months for the reality to settle in.

Why, Baby, Why?

The other day, while working around the house, I heard children screaming in the neighborhood.  I idly thought to myself, “Why do people have children?”  Then I thought a little more and got more serious about it.  Why do people have children?  They say that the people who decide not to have and raise children in their lifetime are being selfish, but when I got thinking about it, it seems the opposite is true.  With a little brainstorming, these are some reasons I came up with:

  • To continue the human race
  • For the experience of raising a child
  • Because your parents want grandchildren
  • Because you need help working your farm/business
  • You need a male child to continue your family name
  • You grew up in a big household and want to have the same experience
  • Babies are beautiful
  • It’s the thing to do/all your friends have babies
  • You’re getting old and having babies when you’re older is risky
  • Your spouse wants a baby
  • You don’t have a spouse and don’t want to be alone
  • Your spouse is going to war and you want something to remember him by
  • It just kinda happened

Of this entire list, the only reason that is not selfish is the first one, and I haven’t heard anyone use that one before.  The last reason is irresponsible, but that’s a different post.

The typical rationalization of parents is “You’ll never understand the feeling of unconditional love,” which is false if you’ve ever owned a pet.  Another common statement is regarding the wonder of watching a child grow and learn.  Yeah, anyone can get that anywhere from any child.  “But it’s different when it’s your own.”  Hear that?  “…your own.”  When coming from a parent, it’s a statement of “Look what I made.”

Obviously, parenting is filled with pride – selfish, dangerous pride.  When you have a child, you give up your own identity and start projecting through your children.  To be fair, this isn’t always the case, but the parents who don’t do this are classified as poor parents or uninvolved parents.  Then, it is recommended you live through your child.

But, isn’t that the proof that child-raising isn’t selfish?  Despite the initial reason for having the child, you have to be selfless and sacrifice everything to raise the child?  Quite the opposite, because by doing just that, you are burdening the child with creating your happiness as well as their own happiness, your success with their success.  Their problems are amplified because they become yours, too.  This is why so many parents (mothers, usually) have extreme separation anxiety at college-time, because suddenly they’re alone with no life.

If people would ask “why?” before having kids, and really look at the reasons and be honest with themselves, maybe we could manage this population crisis.  After all, the first listed reason is well taken care of.

Ayn I Rand. I Rand So Far Away.

For a while, I’ve been watching “patriots” circle-jerk over Ayn Rand and I never understood why.  So, I took a short amount of time and read a short book of hers called Anthem, which I assumed would be typical of the Rand philosophy.  I can say I have no further desire to read a Rand book.  For as much as conservatives scream about the evils of socialism and communism, the world that Rand wants is just as evil, just in the other direction.

To me, Anthem is a tribute to selfishness and hubris.  The final chapters are filled with an excess of “I”, “me”, and "my”, which is meant to contrast with the whole rest of the book, where the primary character refers to himself in the plural, “we”.   This book’s story is set in an absurd world, because it’s the only world that you could even begin to justify the main character’s actions and beliefs.  Some future world where humanity has regressed to the dark ages and is controlled by a collection of councils, who have mapped out everything so there is no personal choice.  And somehow, people today think we are moving in that direction?

As I neared the end of the book, knowing what was going to happen, I thought I would write a blog post as an epilogue to the story, describing what would happen when this extreme individualistic philosophy grew.  Turns out I didn’t need to.  The book already had it covered.  The primary character took over an old house, claimed all its possessions as his, planned to convert it into a fortress, planned to build an army and wage war on the existing community, make his house the capital of a new world and be the absolute leader.  This is a good thing? 

At the turning point in the story, where the character begins to learn at a hyper-accelerated pace and surpasses the entirety of humanity in knowledge, it is not dwelled upon that he stole items from various councils to accomplish his learning.  While it sounds understandable to break the laws of an absurdly oppressive future world, the general message, reinforced in the closing of the story, comes across as “Do whatever it takes for your own benefit.”  This is something to strive towards?

The problem with this book and the current flavor of individualism is the inherent exclusiveness.  Coming along with that is the despise and near hatred for fellow humans.  In this mindset, everyone is out to get something from you and you’re not going to share anything with anyone you don’t deem worthy.  In this mindset, you have no need for anyone else – unless you need something from them, of course.  The viewpoint that a person has no value whatsoever and contributes nothing to society is the default instead of the exception.  Trusting no one but yourself is the overriding belief.

So what becomes of a society of individuals?  How does anything move forward?  How can there be any progress without shared resources?  Consider a bunch of individuals living by a stream, each using the water for daily life.  A new person comes along and dams the river upstream so he can do whatever he wants to with the large pool.  That’s his right; he’s doing whatever his individual desires want.  The others downstream suffer.  Without any governing body, I suppose the dam owner would simply be run out or killed and the dam destroyed.  Sounds like an incredible world to live in, where whatever you make is yours and only yours.

The concept of radical individualism like portrayed in Anthem and in the equally absurd previous example are possible when there is no overpopulation crisis.  If someone cramps your individual freedoms, simply move farther away.  This, accurately, is how America got started and is how and why it grew so powerful.  but with as crowded as America is now, we have no choice but to be socialistic.  We do not have the space nor the independence (as in lack of dependence on others) to make this happen.  Maybe being a farmer in the rural Midwest would be suitable for such people, but not everyone can attain this.

There’s always such a big cry from the people who feel they’re being repressed.  “Why can’t I?”  “The government won’t let me (insert anything here).”  The answer is that what you want is not good for society.  Not everyone can go and start building a nuclear power plant, because not everyone will get it right, then we all have to pay for the mistakes.  The answer this book purports is that it doesn’t matter.  The only thing that matters is that it is good for me.  Although in the closing chapters the book came very, very close to using this phase, it didn’t.  The phrase, usually reserved for unmentionable acts, is “The end justifies the means.”  And to have a society built on that belief would be a terrible one to live in.

Elevating and Deviating

“Everybody wants to elevate from the norm. / Everybody wants to deviate from the norm.” – Rush, Vital Signs

Recently, a now-former colleague of mine, went off the deep end.  The thing I find saddening is that the arguments in support of his changes would be self-fulfilling from his viewpoint.  I guess that’s how all conspiracy theorists are, they believe everyone is wrong and they are the only sane person left. At the time I drafted this post, it wasn’t about alien or illuminati conspiracies, but what I would term fringe capitalism.  By the time he was dismissed – about a month later – it had escalated into “truther” conspiracy.

When I first met this person less than a year ago, I picked up quickly that he was a capitalist.  I learned this when he relayed a story about how he took a contract job and paid someone else to do it for him, pocketing the difference.  To me, this is sociopathic (sociopath: a person with a psychopathic personality whose behavior is antisocial, often criminal, and who lacks a sense of moral responsibility or social conscience).  Now the term “antisocial” conjures up an image of a certain quiet personality, but the one I really want to express is “anti-society”.  This behavior is selfish and manipulative and usually anything but quiet.  Instead of being a good member of society and letting the person who could do the work accept the job, this person jumped in between and caused either the employer to pay more than they needed or the worker to be paid less than they could have.  In either case, the action is parasitic.

There was no mistaking his goal was money.  And I intentionally say money and not wealth.  He practiced visualization techniques: keeping an image of what you desire in view at all times.  The picture on his wall was a stack of money.   As the desire for money grew, he cared less about the means he used to get it.  He started surrounding himself with people who thought like him, attending real estate seminars, then wealth seminars and self-improvement seminars.

As he dwelt on the possibilities of making so much money, his personality became more extreme.  He made derogatory statements that the average American was stupid, lazy, blind, “sheeple”.  He started questioning written law and learning as much as he could about getting around it, stating “the law only says what you can’t do.”  In other words, he was becoming morally bankrupt and still viewing himself as superior to everyone else.  He started speaking authoritatively about topics that normal people don’t, like refusing to pay income tax.  He made a comment about how he discovered some internal barriers keeping him from his goal.  I must assume he means his conscience. 

Everyone has a small fringe belief and if you get around around a bunch of people who have ideas like income tax being illegal, you’re going to hear more and more strange things. Eventually, for this person, this culminated in government conspiracy and radical gun law rantings.  When I met him, he never considered a gun, now he makes posts about bloody revolution.

So, I feel I’ve now seen first-hand the transformation of a normal person into an anti-societal, psychopathic  elite.  Fortunately, I don’t think this is part of an epidemic, like my observations about the middle class being pulled to the extremes.  I think this is a case where a person is finding himself, and that “himself” is just a very bad person (and unfortunately his fiancée was taken along for the ride).  Within his new circle of friends, his view is depressing, indeed.

I somewhat pride myself in judging him correctly when I first met him.  First, that I identified him as a capitalist.  Second, that I determined him to be a person that when put in a information-rich environment, like our workplace, he would soak it all in and explode with potential.  Well, that certainly happened, but in an environment apart from our workplace.

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.