On this page.... RSS 2.0 | Atom 1.0 | CDF
# Tuesday, May 23, 2006

Well, for those of you anxiously awaiting (ha ha) this post since my last on the subject.  We’re finally all settled in up here in New Jersey.  The movers returned on Sunday, the 8th, and loaded up all of our stuff (except for the little bit we were taking to survive on until they came).  The trip up was uneventful (thankfully), and we arrived as planned in the afternoon on Wednesday.

We absolutely love the area; we’re in north Princeton (technically in Montgomery Twp).  Most every road is two lanes, and many of them cut through wooded areas and farmlands.  My drive to work consists of about 10 minutes of wood-lined drives and 10 minutes of farm-lined drives, and, apart from crossing US 1, there is very little traffic to speak of, even during rush hour, so much nicer than the urban, perpetual six-laned, traffic (and traffic-light) bloated roads I took to work in Tampa

The weather here has been lovely as well, at least as far as I’m concerned—I love cool weather.  It’s been lows in the 50s and highs no more than mid-70s, perfect, in other words.   With the occasional cool, rainy day, I don’t think I could order nicer weather.  Different strokes for different folks, I guess, but I much prefer this to the already sultry Tampa weather we were having when we left.

Our place is nice, too.  It’s a duplex townhouse backed by greenery and a babbling brook, nestled off a little road, just south of Rocky Hill.  The floorplan is very different from what we came from, this being a two-story townhouse and our prior being a one-story house, but with the huge attic and large, accessible crawl space, we’ve managed to make everything fit rather nicely.  Just last night I finished hooking up my desktop, which was the last bit of settling in really.

The job is great, too, better than I expected.  Of course, I’ve learned you gotta work at a place for at least 3, if not 6 or more, months to really get a feel for it.  But, especially compared to my last full-time gig, the overall atmosphere at Infragistics is superlative.  We’ve got a lot of work to do, but it is exciting.

All in all, I feel this has been a really great move for me and for my family.  Making cross-country moves with a family is a big deal, and I’m very glad this one seems to have worked out very positively.  We’re looking forward to our next N years here.

Tuesday, May 23, 2006 9:53:07 AM (Eastern Daylight Time, UTC-04:00)  #    Disclaimer  |  Comments [1]  | 
# Tuesday, May 9, 2006

Just doing my part to spread the good word:

http://weblogs.asp.net/scottgu/archive/2006/05/08/445742.aspx

Tuesday, May 9, 2006 4:59:25 PM (Eastern Daylight Time, UTC-04:00)  #    Disclaimer  |  Comments [0]  | 
# Saturday, May 6, 2006

I hope I'm not the only one who starts grooving to techno memories when I read "it has begun!"  Ah.. Mortal Kombat....

What has begun?  The move, the move to New Jersey.  Today the packers came (no, not Green Bay--you'd be surprised the looks you get when you say "the packers are coming to my house.").  They said they'd be here at 8a, so I was surprised when Mrs. dotNetTemplar yelled "I think they're here!" at me as I was in the shower at 7:40.  What a start, but it was a mostly uneventful and good day.

They packed for a solid seven hours, the two of them, and now, as I sit here amidst the walls of boxes and barren walls surrounding them, I think I should feel or think something great or deep.  Mostly I just feel relieved.  It's been more than six weeks since I decided to join Infragistics, but due to prior commitments, I've had to put off the move.  Of course, the wise angel on my shoulder tells me that it was good that I had so long to prepare, but I'm the kind of guy that wants to act right away when I make a decision to make it real.

But now it's here.  The move is upon us.  Tomorrow the movers (formerly known as the packers) return to pick up all our stuff and take off with it to various and sundry other cities across the eastern US to pick up others' belongings before they'll show up on our doorstep in a week or so. 

In the meantime, the fam and I will be leaving Monday morning for a three-day-tour of our own, overnighting in the well-known towns of St. George, SC and Colonial Heights, VA before finally arriving in our new home in Princeton, NJ on Wednesday, assuming all goes according to plan.  Traveling with two small children, a cat, and a bun in the oven should make it.. interesting, but we'll make it.  Fun fun fun!

Saturday, May 6, 2006 10:14:15 PM (Eastern Daylight Time, UTC-04:00)  #    Disclaimer  |  Comments [4]  | 
# Wednesday, May 3, 2006

Just thought I'd stick these out there for anyone else who might run across them.  Those of us reared under the friendly wing of SQL Server are in for regular surprises when interacting with Oracle...  But hey, what doesn't drive you mad makes you stronger, right?

1. Using a DDL statement inside a transaction automatically commits any outstanding DML statements.  I ran into this the other day when I was trying to have a transaction that added a row to a table and added a trigger (dependent on that row) to another table.  (This is actually part of my implementation of an OracleCacheDependency, which I intend to share in an article at some point.)  If you stepped through the code, everything appeared to function as expected, the exception would be thrown on the add trigger statement, RollBack would be called on the OracleTransaction, and... the new row would remain in the database.

It was actually driving me buggy.  I was beginning to wonder if Oracle supported ADO.NET transactions at all because every example (all two of them) that I could find looked just like my implementation.  I even tried both the System.Data.OracleClient and the Oracle.DataAccess.Client, which, by the way, require different implementations as the Transaction property on the Oracle-provided provider is read only (you have to create the commands from the connection after starting the transaction, which is, umm, inconvenient in some scenarios).

So I was pulling my hair out, about to give up, when I ran across a single line in the help docs that says "The execution of a DDL statement in the context of a transaction is not recommended since it results in an implicit commit that is not reflected in the state of the OracleTransaction object."

Okay, I guess I'm just spoiled by Microsoft (yes, I am), but I would expect an EXCEPTION to be thrown if I try to do this and not have the code happily carry on as if everything was hunky dory.  You'd think that a database that is picky enough to be case sensitive might be picky enough to not let you accidentally commit transactions.  And that leads in my #2 gotcha for the day.

2. Oracle is case sensitive when comparing strings.  Let me say that again (so I'll remember it).  Oracle is case sensitive when comparing strings.  Now this point, in itself, is not particularly gotchaful; however, when coupled with a red herring bug report, it can really sneak up on ya and bite ya in the booty.  This is just one of those things that you need to keep in the upper buffers when debugging an app with Oracle.

3. (This one is just for good measure; I ran into it a while back.)  Oracle 10 no longer uses the old Oracle names resolution service.  This means that if you try to use the nifty Visual Studio Add-in and your organization is still using the old Oracle names resolution, you'll have to create manual entries in your tnsnames.ora file(s) just so that you can connect.  Even when you do this, it has to be just so or it won't work. 

I've had it where you can connect in the net manager but can't connect in the Oracle Explorer using the connections, which is sees and reads from the tnsnames file.  In particular, if I removed the DNS suffix from the name of the connection (to make it pretty), it wouldn't work.  It'd see the connection but not be able to connect.

4. (Another oldie, but importantie.)  Oracle, as of now, does not support ADO.NET 2 System.Transactions at all, if you use the Oracle-provided provider.  From what I could tell, although I wasn't able to test successfully, the Microsoft-provided one looks like it should, at least it should use DTC, but the jury is out.  Feel free to post if you've gotten it to work.

5. There is no ELMAH provider for Oracle.  I implemented one, though, and will be sharing in an article at some point.  Feel free to email me for it in the meantime.

6. There is no Oracle cache dependency.  See #5.

7. There is no Oracle roles, membership, etc. provider.  Sorry, I've not done that yet.

There are other bumps and bruises that you will get when dealing with Oracle if your main experience is SQL Server.  Many of them are just due to lack of familiarity, but there are some issues that I think truly make it a less desirable environment to work with.  So I thought I'd just share a few of them here for others who might find themselves in similar binds and need the help, which is so hard to find for Oracle.

Wednesday, May 3, 2006 2:34:41 PM (Eastern Daylight Time, UTC-04:00)  #    Disclaimer  |  Comments [0]  | 
# Sunday, April 30, 2006

Commenting on a recent entry, Stanley asked me about why the Catholic Church has historically used censorship, citing the case of the naming of the canon of Scripture (as specifically excluding other books, such as the so-called Gospel of Judas and others that did not make it into the canon). 

The New Testament canon is, remarkably, something that Protestants and Catholics agree upon.  Its formation is outlined here in more detail than I am qualified to provide.  The council that most cite is either that of Hippo (393) or Carthage (397) as the official formation of the canon, but, as the referenced artice makes clear, the canon was more or less formed long before that.  The Gospels, in particular, were settled long before then; as the article puts it, "the patristic testimonies have brought us step by step to a Divine inviolable fourfold Gospel existing in the closing years of the Apostolic Era."

That quote hints at the Catholic principle on the formation of the canon of Scripture, namely, the doctrinal witness of Tradition, which is the deposit of the faith left to us by Jesus and his Apostles, passed on through history by the witness of their successors, the bishops of the Church.  This is why I just laugh (and am bothered) when the TV shows make inflammatory statements about "new gospels" that "will change Christianity forever."  I just don't get it.  These "new gospels" were around back then (and in greater numbers than are extant today) and did not make it into the canon then, so while I value their historical significance, that's all it is, historical (not spiritual or religious).

Perhaps the reason that they're seen as so potentially important, revolutionary, or threatening is that there is a perception that censorship in the Church was done by power-and-money-seeking hierarchs, as is constantly suggested by the popular media in movies such as the recent movie The Order, in which the "gospel of Jesus" is rediscovered as well as the centuries old plot to conceal it because it offers credence to the popular notion that organized religion is unnecessary.

This and virtually all other recent flicks that involve the Catholic hierarchy paint them as the most nefarious powergrubbing politicians ever to walk the earth.  And this, of course, is why the Church had the Index of forbidden books and supposedly suppressed the reading of Scripture, much less the gnostic gospels.  These are the same reasons that the Church at times tries to conceal the weakness of its leaders, or so the implications go.  Of course, The Da Vinci Code is just one more in a long line of such fiction to impugn the reputation of the Catholic Church.

While I certainly don't view the history of the Church through rose colored glasses--I am fully ready to see and admit the many failings of Christian leaders through the ages, including St. Peter himself who denied Jesus three times--I also certainly don't see the entire (or even majority of) Catholic hierarchy as corrupt as they are so often painted.  My personal experience, my studies, and my watching of current events teach me that the vast majority are more or less (usually more) good men who are living their vocation to lead the Church as well as they are able.  And without a doubt they have the best intentions (as a whole) of the Church at heart.

And it is this, in fact, that is and has been the primary motivation behind the various attempts in Church history to smooth over the rough spots where it can and to even censor.  Namely, it is out of a care for souls, which is their vocation.  The bishops and priests are (and see themselves as, one hopes) our spiritual fathers.  That's why we call them father.  As such, they are bound to protect us in as much as they can in paternal care. 

As my children grow older (my oldest is five now), I increasingly gain a sense of this paternal instinct and care, particularly in relation to what my children are exposed to.  How many of us would defend the "right" of our children to view pornography, senseless, graphic, and brutal violence, profanity, or anything else that we think would be damaging to them?  Even our secular nation has an enforced rating system that prevents just this thing.  Is that not censorship?  It is, but we do it for a good reason.

This is precisely the same motivation behind censorship and "cover-ups" by the Catholic Church.  We may disagree with the principal that they are our spiritual fathers (and all that it implies), but that doesn't change the truth that this is how they and we (should) perceive their vocation.  The desire to avoid scandal is the same.  True, there are cases where individuals have probably let their own pride be a more motivating factor than care, but overall, the principal is sound.  This has been proven to be true in the fallout from the recent sex scandals.  There has been a dramatic damage to the faith of many. 

There are many these days, many Catholics and even bishops included, who now seem to think that people have a "right" to know everything, that somehow this helps them.  The popularity of shows like Dateline further emphasize this--people think they need to be informed of everything that could potentially affect them.

In truth, I would argue that this is not the case and rather that you can indeed know too much.  There is a line between wisdom and paranoia, and the more that you feed your mind with worrisome "threats" that might affect you, the more paranoid and disfunctional you can become.  Some people can deal with it; others can't.  But I digress.

The point is simply that it is out of a care of souls, a desire that faith and hope not be damaged due to either the weakness of others or of the individuals themselves, that is the primary motivator for such actions.  Most people do not in fact take sufficient time to form their conscience to make the right decisions, and even when we do, we have many non-rational implulses that pull us away from the truth.

For better or worse, we are now living in a society where such pastoral control is really not possible.  The Church can still try to avoid scandal, but it is much harder due to the exponential growth in the freedom of information provided by the mass media and the internet.  Now, in fact, it would almost be unwise to try to conceal potentially scandalous facts because their latter revelation, coupled with their attempts at concealment, only make the scandal worse. 

This is why, I think, the bishops have adopted a much more transparent stance in the wake of the sex scandals.  The fact that sex abuse was kept in house, so to speak, is not really that impactful on the reality of the sex abuse problem--there are many, far more influential factors that allowed it to become the immense issue that it became.  But it is evident that in these post-post-modern days, any attempt at pastorally motivated shielding from scandal will likely only lead to greater scandal because the popular sentiment is that such covering up of sin can only be for bad reasons, which is, in my opinion, manifestly not the case.

So the change in approach is, as I see it, not guilty political maneuvering but rather a frank realization that it is more pastorally wise to do so.  And that is why I think the Church has acted in the way it did in the past and why it has changed the way it acts to meet the changing nature of the society in which it is a part.

Sunday, April 30, 2006 8:54:55 PM (Eastern Daylight Time, UTC-04:00)  #    Disclaimer  |  Comments [3]  | 

I barely have time to play it, but I finally got it.  My Xbox:

This is actually the children's edition.  The wife insisted that we get one that everyone can enjoy.  It doesn't come with the wireless controller; I had to buy that separately.  Besides, I couldn't figure out where I'd plug in a regular controller anyways.  Pretty cool, eh? :)

Sunday, April 30, 2006 2:09:37 PM (Eastern Daylight Time, UTC-04:00)  #    Disclaimer  |  Comments [1]  | 
# Saturday, April 29, 2006

I just updated this site to the latest version of dasBlog.  Many, many thanks to Scott for helping me out with getting it (given that I am a total noob to CVS and, apparently, picked a bad time to start since SF was having issues).  Most notably (that I know of), this version incorporates using Feedburner, which I guess is the latest and greatest for distributing your feed and lowering bandwidth usage, though I'm sure there are some other goodies in there.

Anyhoo, let me know if you suddenly start running into any problems with my blog.  Have a good un!

Saturday, April 29, 2006 2:19:18 PM (Eastern Daylight Time, UTC-04:00)  #    Disclaimer  |  Comments [0]  | 
# Thursday, April 27, 2006

I decided to try something new in ASP.NET 2.0 based on our needs on a current project.  To do this, I followed the tip that K. Scott Allen shares in his blog.  The difference in my case is that I thought I'd do this and make the user control in the App_Code be the base control for a handful of others.  The point here is to achieve visual polymorphism.  Put another way, I want to load up the control differently based on the sub classes rather than, say, having a big switch statement.  This is just good OOD.

The problem is that if you just set a user control in the App_Code directory as a base for other user controls, you will most likely see the following exception.  I was able to consistently reproduce it.  When ASP.NET constructs your derived user control, .NET, as usual, calls the base constructors as well.  When the base constructor is called like this (for reasons beyond my ken), I see this error:

 System.Web.HttpException: An error occurred while try to load the string resources (FindResource failed with error -2147023083).

Looking at what is actually happening (in the call stack), the error appears to be in a call that the parsed constructor makes to System.Web.StringResourceManager.ReadSafeStringResource(Type t).  If you Google like I did, you probably won't find any help (except this blog now, of course).  So on a hunch, I called the LoadControl overload like Scott Allen suggests in his piece, and it loaded fine.  On a further hunch, I then tried to use the derived control again, and voila, it worked fine.

So, since I don't have time to open a case with Microsoft, I just created that as a work around.  I have the application call LoadControl once on the base control so that ASP.NET will properly set it up for use, and then I can use it as a base.  You could do this (presumably) in Global.asax, but I just put this in the page that uses the control(s) in question.

static bool _baseUCLoaded = false;

protected override void OnInit(EventArgs e)
{
  base.OnInit(e);
  if (!_baseUCLoaded)
  {
    ASP.MyUserControlBase thing = (ASP.MyUserControlBase)this.LoadControl(
      typeof(ASP.MyUserControlBase), null);
    _baseUCLoaded = true;
  }
}

And it appears to work.  Maybe someone will enlighten me on this, but I have a hunch that it is just an unexpected scenario (a hack) that wasn't covered by testing.  In any case, it's pretty neat that it works.

Thursday, April 27, 2006 10:41:34 AM (Eastern Daylight Time, UTC-04:00)  #    Disclaimer  |  Comments [0]  | 

Mrs. dotNetTemplar and I have decided to homeschool our children, and it is always interesting to see the various reactions you get.  Some folks think it's grand and say they wish they could.  Probably the majority just kind of stare at you blankly like you were just speaking in tonuges or kind of pat you on the head knowingly.  But the stock question, the one that you get more than any other, is "what about socialization?"

I'm not sure why or how this became common wisdom about homeschooling.  As far as I know, there haven't been any studies conducted to show that homeschoolers are socially stunted or inept.  Rather, there has been signficant research that indicates quite the opposite.  All you need to do is Google it to see more realistic information about the topic; I thought this article summed it up nicely.  Excepting those who have a vested interested in public (or private) schooling, the consensus among those informed is that homeschooling can actually be better than the alternative for socialization.

Here's a nice little snippet that I ran across today in a newsletter, The Liberator Online, I occasionally read (no, I'm not a libertarian).  The source they got it from is the New Oxford Review, which was quoting the Kolbe Little Home Journal, Fall 2005. 

When my wife and I mention we are strongly considering homeschooling our children, we are without fail asked, 'But what about socialization?' Fortunately, we found a way our kids can receive the same socialization that government schools provide.

On Mondays and Wednesdays, I will personally corner my son in the bathroom, give him a wedgie and take his lunch money. On Tuesdays and Thursdays, my wife will make sure to tease our children for not being in the 'in' crowd, taking special care to poke fun at any physical abnormalities. Fridays will be 'Fad and Peer Pressure Day.' We will all compete to see who has the coolest toys, the most expensive clothes, and the loudest, fastest, and most dangerous car.

Every day, my wife and I will adhere to a routine of cursing and swearing in the hall and mentioning our weekend exploits with alcohol and immorality.

...And we have asked (our kids) to report us to the authorities in the event we mention faith, religion, or try to bring up morals and values.

It's funny (and sad) because it is true.  The socialization one gets in public (or private for that matter) schooling is just not natural.  Where else in life are we surrounded by only peers of our own age?  In pretty much every other social environment I've been in outside of school, my peers are made up of people older and younger than me.  The grouping of kids by age, while expedient for group education, is certainly not the ideal model for socialization. 

It seems that homeschooling actually bears out to provide better-adjusted children who turn into better-adjusted adults.  When you add that to the many other benefits of homeschooling, one wonders why more people don't do it.  Well, actually, one doesn't.  It isn't the easiest path; in fact, compared to just dropping your kids off at school every day, it's significantly harder. 

Naturally, I realize that not everyone can for very good reasons (and not just, say, because it is hard).  Thankfully, my family is blessed to be in a position to homeschool, so that's what we're going to do.  I know it's not going to be a bed of roses, but at least we don't have to worry about the kids being socialized and well-adjusted; that's just a red herring that has somehow become common wisdom.

Thursday, April 27, 2006 7:55:57 AM (Eastern Daylight Time, UTC-04:00)  #    Disclaimer  |  Comments [4]  | 

Disclaimer
The opinions expressed herein are solely my own personal opinions, founded or unfounded, rational or not, and you can quote me on that.

Thanks to the good folks at dasBlog!

Copyright © 2020 J. Ambrose Little