ExtJS 4.2 Walkthrough — Post-Upgrade Bug

In the last installment, we took a few moments to upgrade our app from ExtJS 4.2.0 to ExtJS 4.2.1. As I pointed out, upgrading is not an insignificant decision, as you will have to test and verify that your app continues to work as expected.

Well, in preparing the next several sections, I came across a bug in 4.2.1 that harms a bit of the functionality I was wanting to implement. While these bugs are a natural (albeit frustrating) part of software evolution, ExtJS is fortunately extensible enough that we can easily create a custom patch (or override) that will allow our code to work as expected WITHOUT modifying the core framework. The benefit of this approach, of course, is that we future-proof our code against new versions. So then, when the new version comes out, we can remove our custom patch and see if the issue is resolved in the core. If it’s not, we can simply re-enable our patch, submit another bug ticket :), and continue on.

Tips for Dealing with Bugs

Before we fix this bug, let me offer a couple suggestions to mentally dealing with bugs in ExtJS:

  • Acceptance: The first step to healthily dealing with bugs in ExtJS is to More >

ExtJS 4.2 Walkthrough – Part 2: Main Layout

In the last post, we jumped through the hoops of setting up a brand new ExtJS 4.2 application, and we even “upgraded” it a bit by switching to the fresher “Neptune” theme. But after all of that, we were left with a fairly lame application. It works, of course, but doesn’t do anything. We need to fix that.

In this installment, we’ll take the mockup that we looked at previously and create some code to prepare the main skeletal sections of the app, including:

  • The header
  • The left side bar
  • The main content area

Getting these in place will let us begin surgically creating various parts of our application. Hooray!

Note: Code for this installment can be found on GitHub.

An Aside: Dynamic Loading

Unless you specifically go another direction, ExtJS 4 applications are going to be a single-page application, driven by a single, “compiled” version of all the JS classes that are required to make your application run.

When developing the application, however, it is certainly not ideal to have to compile the application every time you want to make a change. To facilitate super-rapid development, ExtJS 4 includes a very robust Dynamic Loading system. While we won’t dwell on the intricacies of it here, this Dynamic Loading system allows More >

Sencha Touch 2: Ext.ux.field.TimePicker

Today I wrapped up work on a custom Sencha Touch 2 form field component called TimePicker which, as indicated by its name, allows you to select a custom time via the faux-OS picker dialog.

There are a bunch of other TimePickers out there for Touch, but most are old or just don’t do what I want them to do. So I made my own 🙂

If you’re interested in using this, head over to my GitHub repo and pull it into your project. There’s a bunch of config, but it’s all documented in the repo.

If you do end up using it, please let me know what you think. I’d love feedback on usefulness, suggestions for improvements, etc.

Share this: More >

Kansas v. VCU Rematch

Man, you are desperate…happy April Fool’s Day!


Share this:

In Memoriam

Today, my family celebrates the life and commemorates the death of my grandfather, O. Dean Watson.  Although I was unable to attend the memorial service, I wrote a few thoughts that I shared with my family.

Grandpa, you lived your life full of virtue–anyone who met you, and especially those who knew you well and loved you dearly, could immediately see that. You lived daily with immense compassion, purposeful integrity, and limitless generosity. Your words were always graced with good will, and you found—and brought out—the best in everyone, revealing to family, friends and strangers alike the love of God which filled your heart and soul.

And as if these great virtues were not sufficient, your life was marked indelibly by the deep faith which you held out for all to see. In good times and in bad, in rejoicing and in suffering, you always demonstrated the abiding trust you had in the promises of our Heavenly Father, a trust which you worked tirelessly and to your final days to cultivate in your family, your friends, and every person with whom you had a moment’s opportunity to fellowship. Even in the face of death, your confidence did not waiver, and courageously you More >

Spam of Biblical Proportions

I recently had several comments like this left on an old blog.  I have reproduced the offending comment, mostly untouched save for corrections of the more offensive grammatical errors 🙂


If I speak in the Cheap Authentic NFL Jerseys of men and of angels, but have not love, I am only a resounding gong or a clanging cymbal.

If I have the gift of prophecy and can fathom all mysteries and all Official NFL Jerseys, and if I have a faith that can move mountains, but have not love, I am nothing.

If I give all I possess to the poor and surrender my USA Jerseys Shop to the flames,but have not love, I gain nothing.

Love is patient, NFL Jerseys are kind.

It does not envy, it does not boast, it is not proud. It is not rude, it is not self-seeking, it is not easily angered, NHL Jerseys keep no record of wrongs.

Love does not delight in evil but rejoices with the truth.

It always protects, always trusts, MLB Jerseys always hope, always persevere.

NHL Hockey Jerseys never fail.

But where there are prophecies, they will cease; where there are tongues, they will be stilled; where there is knowledge, it will pass away.

For More >