Very One Sided

The “one sidedness” of it is exactly the point he is making.

Society holds women to a different standard than it does men. Society expects things of men that it does not hold women accountable to.

Love and respect are two of those things.

Take for example someone at church. Let’s say Kevin. God commands us to “love one another in the same way that I have loved you.” This creates a right – an absolute, entitled right for Kevin to my love and care. He has a right to my love because God commands me to love him. And likewise, I have a right to expect Kevin’s love and care. If God commands me to do something, then there is no condition or circumstance that justifies me failing to “love Kevin in the same way that Christ has loved me.” Kevin is entitled to my love because it is God that requires it of me, and that creates an obligation, a debt, a due, on me.

This is something that Steve and I disagree on. And Tom too. Steve will only say that I owe Kevin my love, but that it does not create a right to that love for Kevin. Tom qualifies it a bit differently. He holds that I am not obligated to love someone who has consistently demonstrated that they do not, and have no intention of loving me. (Tom has been on this track for the past 15 years). He qualifies it a bit like Steve does, admitting that I owe Kevin my love, but that is as far as it goes. Tom will say that he can love someone “sacrificially” but that doesn’t mean that he has to invite them over for lunch. He can love someone, and yet not have anything to do with them. In that regard, both Steve and Tom agree. I would wiggle a bit by saying that maybe they do not have a right to my love, but they should have the right to expect my love. Steve does not agree with that, either, saying only that I owe Kevin my love as a debt to God, and that’s the extent of it. Steve does not agree even to that. Tom does. Tom insists that it must be mutual love before he is obligated to love. “I love them only if they love me back.” I disagree with that.

Matt Walsh is somewhere in that mash. He is very similar to me, Steve and Tom by saying that “We are owed something, and that means someone else is obligated to provide it.” But that doesn’t mean we have a right to it. Steve asks,

“What in life ARE you entitled to?”
“Well, nothing.”

They will say only that Kevin can point out – and should point out – that I am failing to love him, but that is as far as it goes. He has no right. I still think that he does. A debt incurs a right to collect on that debt. If I owe Kevin a debt, he has a right to collect on it. He cannot MAKE me pay what I owe, but he can expect me to pay it. And God is on his side in that case, confirming the debt owed.

Matt seems to come perilously close to justifying the sin of the man based on the actions of the wife. I know he’s not doing that, but he’s coming real close. “A man in this situation is called… never to be unfaithful to his wife or leave her. But if he does wander, it should be noted that he is not the only traitor in the marriage. She betrayed him.”

That sounds almost like a justification, when there is in fact no justification for it at all. Maybe he just mean that it explains it.

But the point of the article is society’s expectations of men is different from that of women. Like he pointed out, if a man gave his wife a list of things SHE was expected to do before he would love her, we would consider that man a tyrant. But women do exactly that to men all the time, and they use love and respect as a reward system to accomplish that. And the world completely supports and rewards them in this.

As he says, “We all expect love to be unconditional“. But we do not think the same thing about respect. He stated in the article that mean deeply desire respect. I can’t say that that is true. I don’t feel that way. But I can say that a lot of men DO think that way. And I can admit that he’s probably right that in such a condition, we can expect men to be withdrawn, and a gulf appear in the relationship.

And I can say that I agree wholeheartedly with some of his other claims. We don’t enter a marriage to give each other what they deserve. We enter marriage to give them what we promised. We don’t “bait-n-switch” each other. We don’t love and respect someone when we think they have done enough to earn and deserve it.

I would tend to disagree with the “loss of masculine purpose that his family life ought to afford him.” My masculinity is not based on whether or not my family life affords me anything. My masculine purpose is created by God, and exists whether I succeed or fail in anything. I can succeed in masculine ways, and I can fail in masculine ways. But masculinity is defined, primarily as “accountability” and “responsibility”. Men are called by God to at least two very specific things: provide for a family, and protect a family. This can mean physically, even to the point of dying (“as Christ loved and gave his life for her…“). Women are never called to these two offices. That doesn’t mean that some women, out of necessity have not done these things, but God has never actually called them specifically to that office. They are not “tasked” with it. It is not something they are specifically commanded to do. Providing and protecting are tasks God has specifically commanded men to do. What is done out of necessity does not constitute a responsibility or a calling.

There are lots of women in the Bible who have done things out of necessity, but necessity to kill only arises because of sin, not calling. Tamar (was it? I forget her name) killed the king pursing David when he passed out drunk in her tent so as to avoid being killed herself. Was that necessary? Probably. Did God call her to do that? No. Will she be held responsible for it? No. God holds the men accountable. When Eve sinned, God’s first call was “Where is Adam?” And he held Adam responsible for the entire mess. That is why God says that “in Adam, all men die.”

Anyway, I am starting to ramble, now, so I’m just gonna stop. I agreed with most of the article, but it sounded to me like someone who was just a bit butthurt about not getting what he wanted, whether he had someone else in mind, or himself. And that’s not a “masculine” thing to do. That is something that every man has to face down and take control over.

Posted in Procedures | Leave a comment

Visual Studio 2012 puts the “Ug!” in “Ugly”

I think I’m all done with this article.  Well, maybe not.

Microsoft seem to have taken the really bad Metro idea from Windows 8 and pushed it onto VS2012 also.  All dull grey.  VS2010 had a classy, visually “easy upon the eye” look to it.  Now I feel like I’m working on an 1995 era B&W laptop LCD monitor.

So, while I’m glad to see MS Blend, and ASP.NET MVC 4, and the new Razor view engine built right in, it kinda sucks that all this new awesomeness is obscured by a lousy interface.

The strangeness is that the latest SQL Server 2012 SSMS comes strapped with the Visual Studio 2010 interface!


Posted in Procedures | Leave a comment

What a Year Brings

Ok, so it’s a year and change.

In November 0f 2010, I was working at a small distribution company with the best group of people you could hope to serve (mostly), but with a limited technology environment. 

Things that could be done so much better went undone, or done very inadequately, because of a technically stunted platform.  Things that I was accustomed to having in my “windows Toolbox” for the past decade were regarded as “new toys” in the Linux/FOSS world that I was contained in. I can’t tell you how many times I ran into a fellow employee who was SO excited to have found some “new toy” in the Java API stacks that didn’t leave me thinking to myself (very, very, quietly to myself), “Cripes,… we’ve been doing that in Visual Studio for the past DECADE!  We solved that problem ten years ago!”

Don’t get me wrong.  I’ve continued to solve quite  few pesky problems in Java, but they tend to be things like connecting to a arcane 20 year old aviation database product that nobody uses anymore except us.  But most of our new development is in platforms such as Sharepoint, Hyper-V, VMWare, Failover Clustering, Visual Studio, SQL Server, Oracle, MS Office, etc.

I was not really in a position to make changes, and really, I would not have even had I the opportunity.  The “old tech” was not challenging, nor “sexy”, but it did get the basic job done…. But only that: the “basic” job.  It just wasn’t to the level of quality or performance that I was accustomed to delivering.  I spent most of my time trying to reinvent wheels in Open Source tools that Microsoft chiseled out of the stones of the 1990’s.  And making changes to the corporate philosophy was out of my reach.

So, I began by fantasizing.  What could I do if I was willing to walk away from this GREAT company and step into MUCH larger shoes?

From there, (after a rather nasty split – and a completley unnecessarily nasty split at that) I went to Housing and Urban Development as a MS SQL Server DBA working on terabyte class servers with cutting edge technology.  And at the end of that (it was a government contract with a clear end date), I ended up at an international airline company that had a fleet of Boeing 767s and 777s, as well as a compliment of Learjet 35s and 45s, and a Bombardier Legacy 600.  And, I added $30k to my salary, and more than doubled my resume creds.

The stress level is higher because an international airline company is quite literally a 24/7/365 job.  I used to have to quit sharp at 5:00pm.  Literally.  And, I must admit, I kinda got spoiled by that.  But then again, I thrive on busy-ness, and I definately have that now.

So… wow!  What a year has brought!  All because Brent Ozar challenged me to take the next step. 

Glad I did.

Posted in General | 2 Comments

Installing Sharepoint 2010 Farm on a Single VMWare VM

If you are like most of us Sharepoint Admins (or SQL Server DBA’s in a Cluster Environment, for that matter), you will often want to run through a new service implementation on a Virtual Machine taking a snapshot and running the install several times over, making notice of “gotchas”, recovering to the snapshot point, and running again with the new installation knowledge.  basically, running the installation repeatedly until it comes out completely clean.

If you try to install a server farm, with  services distributed over multiple farm servers, but you try to do it on a single VM server (ie, you want the full farm experience, but use the one VM server for all Farm Server roles), the first problem you will run into is that SP Setup for Farms will not let you use local accounts (ie, machine accounts, not Active Directory Accounts).  This is a problem if your test server is not on the domain and only has local accounts.  But the setup program will not let you use local accounts, and unless you complete the setup and the config wizard that follows it, you cannot create your Sharepoint_Config (and associated content) database.

Here’s one way to get past that:

Go through the Sharepoint Server Setup, and at the end, where it says “Installation Complete… You must now run the configuration wizard…” STOP RIGHT THERE.  Leave that window open, and:

  1. Create a local account for Sharepoint Services (ie, something like “sp_services”) and give it a password.
  2. Open SQL Server Management Studio and create a Windows Login for that service account (SERVER\sp_services, in this example) and give it syadmin access.  (It is claimed that only dbCreator and SecurityAdmin roles are required, but I just give it sysadmin since this is a test server only).
  3. goto START… All Programs… Microsoft Sharepoint 2010 Products…  Sharepoint 2010 Management Shell.
  4. In the window that opens, type “new-spconfigurationdatabase”, and press the enter Key.
  5. For DatabaseName, enter “Sharepoint_Config” (which is the default config database that Setup would normally create), and press ENTER.
  6. For Database Server, enter the name of your database server.  If it’s a named instance, remember to use “SQLServerMachine\InstanceName”.
  7. Provide the Service Account name and password that you just created.
  8. Enter a passphrase for the server farm.  Something like “SP FarmPassphr4se”.  REMEMBER WHAT YOU TYPE for passphrase.

After that, you should be able to continue with the configuration wizard and instead of being presented with a choice between connecting to an existing farm (which fails because you cannot use Local machine accounts), or creating a new farm, you should instead see a prompt saying that the server is already connected to a server farm (the one you just created in Management Shell).

You can continue with the config wizard from that point.

Posted in Procedures | Leave a comment

Access 2010: A Rare Second Chance

Back in the late 90’s, tools and languages such Powerbuilder/PowerScript, and Borland’s Delphi/Pascal were leading the pack in the race to R.A.D. (Rapid Application Development).  Microsoft, seeing that it had no real poker in this fire decided to push one of it’s products as a competitor, even though it clearly wasn’t.  Visual Basic became Microsoft’s (hoped) Giant Killer.  But the other tools were complete integrated development environments that encapsulated all the ancillary functions and features of a rich development encironment, such as report writing, databound forms and controls (that were easy to use), source code management, etc., all built-in within the package.

Visual Basic was seriously lacking in a lot of the task automation and other features I just mentioned.  It was a language, primarily, and a forms and report designer almost as an afterthought.  But they (Microsoft) kept pushing Visual Basic as an alternative to PowerBuilder, when it was never any such thing.  And all the while, back at the Microsoft ranch, the real contender was stabled and getting no attention: Microsoft Access.

Access was, and has been from the very beginning an complete package comprised of

  • a capable database (for small to medium tasks), a swap-out database engine that would let you pull out the default engine and drop in the industrial strength SQL Server, or any other heavyweight database for which there was an ODBC or OLEDB driver – and there are many),
  • Built-In, enforceable RI (Referential Integrity) with full support for cascading updates and deletes, even before SQL Server had them,
  • a visual query designer with click-n-use aggregate functions, sorting, grouping;
  • a very, very powerful forms designer that was supremely focused on data-bound controls with an extraordinary event model that allowed you to step in at almost any point to add custom code, and full support for sub-forms (all with their own complete event model embedded within the main form)
  • a fully fledged report writer that was at least the equal of Crystal Reports at that time, that also supported subreports and a decent (if not as rich as forms) event model,
  • An early stab at Web Enabled forms which was utterly worthless and ignored by everyone, including me,
  • a full compliment of Macro features even though most serious developers such as myself never used them, but opted for inline code instead.
  • And a source code repository where all your non-form bound code could reside in multiple modules, all in one easy to manage place, and, perhaps best of all,
  • All this was packaged inside a SINGLE file, making deployments a snap!  In the most complicated scenario, you may have (golly) TWO files to manage when front-end code, forms and reports were put in one file, and database tables in another to make updates as easy as replacing a file.

The early versions of Access had some propblems with database corruption whereby your day might end with you lamenting and muttering something about eggs and a basket, but most serious developers knew all the traps and pitfalls and how to avoid them, and how to recover from such problems while we waited for MS to solve the corruption problem – which, by and large they did with the advent of Access97, which greatly reduced the incidence of corruption.

So, by the time we hit the late 90’s, Access was a very stable, very able product.  The criticism that it was suitable for more than about 5 concurrent users was only really true if using the default (built-in) Jet database engine.  But once you yanked that out and dropped SQL Server linked tables into a backend Access Database, it was smooth sailing, and I often had Access solutions that served 20 to 50 simultaneous users with relative ease, suitable performance, and no corruption.  And deployments remained as simple as “here, take this file and save it on your desktop, then click it and… Bob’s your Uncle!

But Microsoft, for whatever bizarre reason, kept pushing Visual Basic and left Access to languish.  And, of course, VB was not, and never was suited to the task of being the PowerBuilder Giant Killer.  VB is now as dead as PowerBuilder, but the new tools making the rounds today are themselves calling for a Giant Killer, and this time, Microsoft seems to be giving Access some much belated love.

Access 2010 now integrates some of it’s features directly with Sharepoint 2010 via SP Access Services.  And that early attempt at Web Enabled forms is back, this time with much better success in the form of Web Deployable solutions that can be published directly as a Sharepoint Site.

Microsoft, it seems, never really gives up on a product – sometimes even when they should.  Who of us would have thought, back in the mid 90’s that that God awful product “FrontPage” would ever come back from the grave once MS abandoned it suddenly and without a clear migration path.  Instead, they gave us early versions of “Expression” as a supposed replacement.  But all the while we thought FrontPage was smouldering in it’s grave, MS was in fact, pumping it with Steroids and raising it up on a metal platform in the middle of electrical storms, cryinging “It’s alive!  It’s alive!… We shall call it Sharepoint!”

And Sharepoint has dominated corporate America’s document management portal ever since. 

And now, with the advent of SP Access Services, Access is getting a very, very rare second chance to become a unified, consolidated, integrated development package that integrates with one of MS’s most intractible and difficult to work-with platforms.

I for one am having a grand time playing with all the possibilities, building Access hybrid applications that combine local data, SQL Server data, Sharepoint data (Lists, document libraries, sites, etc) all in one central location again.

So, here’s to hoping that MS grabs this opportunity by the horns this time around.


Posted in General | Leave a comment

Waaaay too busy to post….

Sorry for the long absence.  I’ve been gone so long I didn’t even notice that my domain mapping had expired!  Life as a (that is to say, THE) developer and DBA for an international airline company is demanding to say the very (very) least.  Between migrating a half terrabyte Sharepoint site from MOSS 2007 to Sharepoint 2010, and writing Java apps to integrate Oracle, PervasiveSQL, and SQL Server applications, and just dealing with the awesomeness of working on and around Learjets EVERY DAY… well… I’m just too busy to keep up the posts.  But I will try to make an effort as the months FLY past!  😉

Posted in General | Leave a comment

I’ll just leave this here…..

I have NO idea how this happened!  😉

Posted in General | Leave a comment

Can’t Save Sharepoint Doc Even with proper permissions

Ran into this today.  User can open and edit, but cannot then save an excel spreadsheet from a document library.  Error msg says “document is read only”.  But it isn’t read only.  And the user has proper permissions to the library and the document.

Solution: The Minor Version limit had been reached.  It seems MOSS 2007 will only keep 500 minor versions max.

Problem.  Versioning was turned on with NO LIMITS!  500 Minor versions have piled up.   There are 500 betas and no version 1! There’s no “bulk delete older than” option.  I don’t want to click, edit, delete each and every one.  Supposedly, if you change the “max versions” to some number then the next time you upload a change, it will empty the documents folder of all but the most recent number you specified.  But in practice, it did not do it.  I changed it to keep only a max of 25 versions of both major and minor.  And when I went to upload a changed document, it still complained that the max minor version had been exceeded.  And the version history still showed 500 old minor versions.

Solution: I turned OFF versioning entirely.  Then I saved the one document I had open.  That finally did clear all old versions.  but… all of them. I expected that, though.  I figured it would clear the old versions and allow me to save the document, and it did.  I then turned versioning back on, and specified my max limits again.

So, I had to start over as far as versioning goes.  But we did get past the “can’t save” problem.

Any suggestions as to how to better handle this are welcome.  I inherited a 160GB sharepoint document library, and I’m pretty new to this.

Posted in Procedures | 1 Comment

Can I Kick It? Yes I Can!

Well, I spent a day or three building a SQL Server Automatic Failover Cluster with two nodes, each one hosted on a Windows 2008 VM running in Hyper-V with an iSCSI SAN shared between them. 
Each VM is the main node of one SQL instance, and each is set to failover SQL Services to the other node.

Well, today, we got a real-life test when HV-07 (which hosts SQL-03) gave up the Blue Ghost.  And, within 30 seconds, HV-08 assumed services from HV-07 and SQL-04 picked right up without a missing a beat. 

It was so transparent that I was working in the database the whole time and didn’t even know HV-07 had BSOD’d until one of the network admins came in and said “Hey, HV-07 is sitting there with a blue screen”. 

A quick check on SQL-04, and….. Yep, both instances are now running on SQL04.  We fixed the BSOD problem on HV-07/SQL-03, and migrated the one instance back to SQL-03, and everything resumed as normal.

Now, I’m back to working on the Java program that imports flight crews and photos from our last remaining Pervasive SQL server into our latest SQL 2008R2 server.  This program is used by the TSA, Homeland Security, and many airlines (of which we are one) to vet flight crews who are jumpseating (hitching rides on other carriers aircraft).  It will also replace a Rube Goldberg solution that consists of a half dozen or so DTS packages, scripts, stored procedures and chron/task scheduler jobs.

And when I look outside, there’s still always one or two of our Learjets parked on the tarmac, twenty feet from my window.

I guess you could say I like the work. 😉


Posted in General | Leave a comment

Lessons Learned from a Cheese Curd maker

This is not an article about technology.  This is an article about how to properly use technology, or at least how to not use it.  Wise words I learned from a wise man.

So, to be honest the guy was not a cheese curd maker.  He sold equipment used for that purpose.  But thats not an interesting title, is it?  Used Dairy Equipment.  Google it, and they are number one in the rankings, and had been for a long time.  So when they approached me about updating their site, I went full bore.

I developed a prototype website that kept all their existing keywords and metadata, and all the front page text and verbiage, but cleaned it up and modernized it.  And (and this is the salient part) I added a lot of new features by integrating their internal equipment database with their website so that visitors could search their inventory and find anything they had to offer.  A complete search engine, with keyword querying, sorting, filtering… everything.

I went back to them with my prototype.  It was beautiful.  It was functional.  It was exhaustive.

It was a disaster.

What I had done was technically cool.  It would allow anyone to determine if the company had in stock ANY item that they wanted. But it was business savvy lacking.  Why?

Let his words explain.  “I don’t want them to find out that I have what they need.  Because they could also find out that I do NOT have what they need.  I want to give them just enough information that they will think, ‘They have a lot of stuff’.  But not so much that they think ‘They don’t have what I need.’  If they think that, they won’t CALL ME.  And what I want is for them to call me.  If they don’t call me, I can’t sell them what they DO need if they don’t know what they need.  A lot of times, they think they need one thing when what they need is another.  I can’t help them if they don’t call.”

The goal with technology, in this guy’s case, was to give them just enough reason to CALL, not to BUY online.  Too much technology in this case works against him being able to actually help people.

I learned a lot about business from that guy.  In fact, I altered my own website taking into account what I had learned from him.  Ultimately, we did not implement my new site and they kept their existing site.  They did the right thing. 

Sometimes, the coolest technology and the best “features” are not what’s really needed.  It takes a good bit of business sense to know not if technology is worthwhile, but which technology, and specifically how much is worth while.

I think we could all learn a good bit from a guy named Gary Schier.  And hey, if you wanna learn how to make 500 gallons of cheese, visit  And no, I did not develop that site.  And a good thing, too. 

Thanks Gary.

Posted in General | 1 Comment