Family Spring Schedule and Events

The family’s been gearing up for an intensive Spring.  We all cherished this last Fall because we had very little going on and knew that it was just a respire. Now everyone’s excited (and a little scared) about upcoming events.

schedule

Derek’s primary items this Spring are:

  • baseball – tournaments every other weekend starting 3/14, practices Mon/Wed
  • School of Rock – lessons and band practices on Wed
  • Math & Science team – Saturday meets until mid April, state competition in May

Lauren:

  • softball – practice every day, games mostly on Fridays
  • Softball tournaments 2/13-2/15 and 2/19-21
  • UIL Solo and Ensemble competition 2/14
  • Annie rehearsals – evenings
  • Annie performances: 4/23-26 (Lauren in 4 songs)

If you’re interested in attending any of these items, let me know and I’ll give you more detailed schedule info.

IE Compatibility settings, or just old IE?

As a follow up to yesterday’s rant on IE compatibility settings, sometimes you forget the simple things.  In this case, while processing form submits with jQuery, the code was setup to prevent default form submission with:

event.preventDefault();

…something that wasn’t available to us in earlier versions of IE.  If it had been written in a jQuery friendly way, such as

$('#myForm').submit (function(e) {
 e.preventDefault();
});

then it would have been under jQuery’s control and handled as a jQuery normalized event.

Sorry for taking my frustration out on you IE…old biases die hard.

IE Compatibility View Settings and X-UA-Compatible meta tag

I used to hate IE with a passion.  Developing web apps for it was just a major pain in the ass. And then it didn’t bother me so much and the developer tools built into the browser finally made it a tolerable environment for building things.  It also helped that all the JS frameworks figured out how to isolate us from much of the quirks involved.

With the latest project for 1 of our clients, I’m back to “I can’t wait till MS replaces this godawful P-O-S!”  While it’s not entirely fair to current-day IE, it’s because they ever allowed those terrible IE 5 – 8 days to exist that I’m currently being punished.

Continue reading

Meteor, MEAN, and LAMP oh my

For the techies out there…
Meteor

Most of you are familiar with LAMP — Linux Apache MySql PHP.
Of more recent vintage is MEAN – MongoDB Express Angular Node.

Each represents a technology stack that focuses on a set of tools to deliver web applications. Some significant difference between the 2 stacks would be:

  • LAMP is focused on Linux as an operating system for the stack, (though WAMP would certainly be another option)
  • MEAN obviates the operating system and Apache by using Node as the built in web-server stack that doesn’t care about OS
  • MEAN also does away with separate programming languages for the front-end (JavaScript) and the back-end (PHP), and uses JavaScript everywhere
  • MEAN is focused on the single page app (SPA), while LAMP development “could” be done that way, it’s more traditional heritage is associated with a multi-page approach

Certainly, there are SPA’s being developed out there on LAMP with jQuery being a leading player in dynamic page loading from the server. But that’s not really my focus here. It’s really to point out this historical bridge from the multi-page oriented LAMP stack to the SPA approach of MEAN.

So where does Meteor fit in? Meteor is the realization of the SPA toolset into a complete package. Rather than putting the parts together in the MEAN stack, Meteor’s encapsulates everything into their framework. Here are the coolest things I like about using Meteor:

  • Full Stack Reactivity — no code needed to have pages auto-update themselves as underlying data in the database changes…very nice
  • Database Everywhere — A mini-Mongo database is maintained on the client with Collections that are tailored to that user. This is an important component leading to…
  • Latency Compensation — traditionally when a data change is made by the user, they must wait for the server conversation to take place before the page is “updated” with that change. Latency compensation allows that change to appear immediately (via the “database everywhere” component), and then confirmed (or backed out) when the server conversation is completed

Continue reading

It’s January…must be time to blog again :-)

Yeah, this has happened before, part of that whole “New Year’s Resolution” thing I guess. Well unlike recent years, there’s actually a lot going on that I’d like to write about for a change. So we’ll see…

First off, I’ve started off with a much more dedicated focus to the “get in shape” thing this year. At 48, those feelings of mortality have begun to creep in, and now it’s beginning to feel more like, “you better get on top of this or you’re going to start having life-altering consequences”. Other than a few sick days with bronchitis, I’ve worked out every weekday and significantly changed to a smaller portion, more paelo-style eating regimen. I’m down 15 pounds and 5% BMI for January. Yea! Continue reading

My Sports Rule Changes for 2013

  • Football: Eliminate pass interference as a penalty. If you’re man enough to catch a ball while people are knocking you all over the field, then you’ve got my attention. As it is now, football has become a crapshoot and frankly, boring
  • Football: Remove all pads and helmets.
  • Baseball: Eliminate the Home Run. Hit it out of the park and you’re out. Runners return to bases.
  • Hockey: Eliminate offsides.
  • Basketball: Move the goal up to 13′. Allow each player only 2 fouls before they are out of the game.
  • Soccer: Eliminate fouls. Man up.
  • Soccer: Any player who lays on the ground for more than :30 shall be removed from the game permanently. Man up.

There. I’m sure all League Commissioners will come running to my door for further advice on rule changes for 2014 🙂

Fiscal cliff agreement…disappointing

I grew up a Reagan Republican. I believe in fiscal conservatism, a balanced budget, and limited government. At one time, I was a coordinating member of the Concord Coalition to reduce our federal debt. I also believe in the Bill of Rights, economic freedom, and moral tolerance. So during the GW Bush years, I lost faith with the party of my youth as I saw huge contradictions in what my party said it was about, and how it acted. Irresponsible tax cuts when facing huge deficits caused by vain, misguided war mongering. Patriot Act laws that cast shame on all the moral principles this country ever said it stood for. Individual privacies…gone. Torture of prisoners. Detention without formal arrest or cause. Fascism started with far less ammunition.

While I’ve never endorsed the Democratic party, I’ve certainly voted for them in the last several elections to try and bring balance back to our country. The social liberal part of my character also embraces the values of providing for the less fortunate, for universal health care, and equity for all regardless of sex, race, religion, or sexual identity, qualities I typically find lacking in Republican talking points.

In the aftermath of the fiscal cliff agreement, I expected to be happy with the outcome. Increased taxes on the wealthy appeals to the social equity vision, but unfortunately, there is nothing, so far, to address the spending side of the equation. It’s not enough to simply increase revenues. If there’s no discipline to also restrain and cutback on spending, taxes will simply be a further drain on long-term economic activity.

And for those clapping your hands that you finally socked-it-to-the-wealthy, you didn’t get away without collateral damage. Neither party was willing to use up negotiating chips defending the expiration of the payroll tax cut, which means you got a 2% tax increase as well. Worse than that, businesses will be encouraged to continue and accelerate plans they’ve been executing for years…to reduce payrolls and use independent contractors that don’t cost them payroll taxes or healthcare benefits. See Igor Greenwald’s Forbes article for more details.

Nobody wants higher taxes for themself. We would only do so to support a higher purpose. So what is the higher purpose now? To pay for our past sins of spending irresponsibly? And will we learn from that, or will we continue to spend recklessly making not only this rise in taxes permanent, but insure a future tax raise as well. Obviously, the cycle can’t continue indefinitely as economic growth disappears.

So we have made one hard choice…seeing the need to raise revenues, we have raised taxes. Now we MUST finish the job and address the spending side of the equation, or it’s cutting off our nose to spite our face. I encourage everyone, elected officials and those who influence them, to keep working until we have equal results on spending.

In wake of Sandy Hook, it’s time for gun control

For years I’ve been tolerant of the people who argue against gun control. I’ve understood the constitutional argument, the argument that only criminals would have guns, the ability to protect yourself. But no longer. We’ve seen too many incidents like Sandy Hook. It’s time to act.

“With all the carnage from gun violence in our country, it’s still almost impossible to believe that a mass shooting in a kindergarten class could happen. It has come to that. Not even kindergarteners learning their ABC’s are safe. We heard after Columbine that it was too soon to talk about gun laws. We heard it after Virginia Tech. After Tucson and Aurora and Oak Creek. And now we are hearing it again. For every day we wait, 34 more people are murdered with guns. Today, many of them were five-year olds. President Obama rightly sent his heartfelt condolences to the families in Newtown. But the country needs him to send a bill to Congress to fix this problem. Calling for ‘meaningful action’ is not enough. We need immediate action. We have heard all the rhetoric before. What we have not seen is leadership – not from the White House and not from Congress. That must end today. This is a national tragedy and it demands a national response. My deepest sympathies are with the families of all those affected, and my determination to stop this madness is stronger than ever.”

– Michael Bloomberg, 12/14/12
http://www.mayorsagainstillegalguns.org/html/media-center/pr013-12.shtml

Titanium Appcelerator and Zipfile module

I was working on an Titanium Appcelerator project yesterday where I needed to download a zip file to a mobile device, then extract its contents. After doing a little research, I found the Titanium Zipfile module out on Github. Ultimately, this is exactly what I needed, but there were some stumbling blocks along the way so I thought I’d document them (and the solutions) here.

First off, the latest Zipfile module (as of this writing) is version 0.1.21. This version is not available as a binary download from the Github repository. Fortunately, this post led me to a download for it.

I found this nice piece of code Dan Tamas posted in an answer to a question about downloading image files. I promptly copied that off to a FileManager.js file to ‘require’ into the app.

As I started testing, it wasn’t working and I didn’t know whether the file wasn’t getting downloaded or wasn’t getting extracted. By default, my simulator run configuration was setup for INFO. Turning to DEBUG revealed that it wasn’t able to locate the zip file. After checking that paths were being set correctly, I found this note at the Github project’s issues tab that applies to the 1.8x SDK codestream.

Replacing the following example code from the documentation:

  1.  

with this:

  1.  

did in fact solve the issue and everything works great from there.