Behind the Barn

It is something I’ve never really understood clearly enough. Why do people roll over so readily when it comes to technology? Instead of being curious, poking, prodding, and exploring, they just roll over and give up.

I get this a lot with people who can’t use websites at all, a lot like WordPress.com or WordPress.org. What gets me is that a lot of these systems are written in a way where the programmer really has a vested interest in helping you understand. They are going way more than halfway with the design of a lot of these systems, but some people simply refuse to explore. Why are we so incurious, so resistant to exploration? Is it that daunting and I just don’t see it? So what if you broke something? That’s what IT people like me want to see. We want to see a field littered with broken technology because that shows us where we need to concentrate on making things better.

I get this a lot at work. People tell me frequently “How do you know this?” and it’s rather embarrassing to tell them that I just looked at the thing and saw what the purpose of the thing was and saw how it was supposed to be used and blindly wandered around bumping into things until I figured things out!

It’s how I learned how to drive a car. It’s how I learned Windows. It’s how I learned Mac. It’s how I learn everything. I open it up, dive in head first and start making a right proper mess out of everything. Each oops and damn and well-crap reveals more about what the system does than any manual could. Plus you get a feel for all the natural ways that people may approach new things like these bits of software. It seems so natural and simple to me that I get to wondering why more people don’t try it and see if it works for them as well.

Don’t study, don’t just sit there contemplating doing something. There is no try, there is only DO. Do it. Whatever it is. Anyone can be an instant genius if you have just a sliver of faith in yourself and absolutely zero qualms with making messes out of things. I wish more people would do this sort of thing. Go exploring. Make a mess. Take something broken apart and see how it was put together.

I’ve tried to explain the whys and the hows to people in my job and I’ve seen the same response over and over. Exasperation. People don’t want to know the why or the how, they just want simple instructions, much like “Slot A” and “Tab B”. It’s almost a kind of Pavlovian thing, someone comes to them asking them for something and all they want is just the minimum to produce minimally acceptable output and then hand it back. There isn’t any pride in that and that’s something else that bothers me. So few anymore take actual pride in their work. Even if you can’t take pride, you can at least say that it works, even if your solution is a hot mess and someone else has a much more elegant solution. At least you came up with a solution on your own! I suppose a part of what I dearly wish for would be for people to sit back and say “If I got what I’m about to give this other person, would it be correct?” And if it’s not, and you hand it off anyways, and you know it, then you are the worst kind of lazy person – willfully lazy. I just can’t stand that.

I hear the same statement from folks quite a lot, “You can’t teach an old dog new tricks”. This statement bothers me so much and so deeply that my usual response (and usually I leave it unsaid) is “If the old dog can’t learn new tricks perhaps it’s time to take Old Yeller out behind the barn and do what must be done.” It is one of my deepest held beliefs that when you stop questioning, when you stop being curious, when you stop wanting to know – that’s when you die. Yes, the mechanical parts of you live on and you may have another thirty or forty years of meaningless shuffling yet to do, but really, you’re dead inside. When you stop wanting to know, when you stop being curious, you might as well go behind the barn and do what must be done. Living any other way is living like a sleepwalker, just shuffling through your life and the only thing you can really take pride in, the one last thing that you can contribute is carbon dioxide. That’s no way to live.

So I urge everyone to take things apart and put them together again. Find something that interests you and explore it. Do something. Take pride in doing it badly at first, but you will get better. There is so much to our world left undone, unimagined. I don’t think one lifetime is anywhere near enough to ever “have had enough” of learning. If you feel the icy grip of age sneaking up on you, fight it off with something new. Try something creative. Write, draw, sculpt, paint, sing. Any verb. Do it, do it awfully, but take joy in knowing that you are really DOING something instead of just waiting to be led out behind the barn.

TL;DR

Information on the network is perpetually increasing in volume and so I find it progressively important to seek out tools that help me parse, limit, and control the flow of the information that is out there raging by like an enormous wordy river. I started my personal evolution in many places other geeks do – old skool with newsgroups. Since then, Usenet has been abandoned and shuttered and handed it’s info-river crown off to RSS and ATOM, which are ways of syndicating content from websites and aggregating that content in one framework. In a lot of ways, these systems are effectively joining the little rivers into a giant monster river that goes gushing by.

This is the first step. Anyone who attempts to put their head in this river only sees a blur as it rushes on by you, maybe you’ll get a hundred stories but the majority of it will pour on by without one iota of attention from you. This didn’t last too long and then the next step came, which was social curation. People follow other people and the ones who are the most popular are the ones curating the epic flow of information and bringing only the things you are really interested in to your attention. These social networks are like fishermen on the raging river of information, they catch bits and pitch them over their shoulders and they slide down the duct towards their followers. You don’t have to worry about the raging torrent anymore because you have faith that anything worth your attention is ending up in that duct running towards you.

Something really foolish happens next, you start to aggregate the ducts together and now you’ve got a smaller version of the giant raging torrential river except now it’s sorted, somewhat, but still rather too swift to catch much.

Then comes instapaper and all the other “read it later” services. When I see something that I sense may be interesting, usually by headline or keyword I will tap on it’s link and send it to instapaper for keeping. It’s as if the matchsticks in the raging torrent are getting picked out, then aggregated and the smaller torrent is being picked over by me and then serialized. The information waits, and I move through it item by item at the pace I am comfortable with. Now, the rate of information loss is immense. It’s meaningless to return to the giant torrent, the curators are just as noisy as the torrent is itself, the ducts might as well be the new torrent, and the tools you use are making uncomfortable squealing sounds under the pressure of how much we are effectively serializing.

Then as I read through my instapaper queue I finally reach the last point on the journey of raw information reaching me in the 21st century. Either I like it and archive it or save it in my evernote “for ever” or, and this is actually turning out to be a new theme, I brand the information TL;DR. It stands for “Too Long; Didn’t Read” and I find myself reading just a few sentences of what at first looked compelling and then realizing that either I don’t care or I don’t agree and then out comes the TL;DR stamp and the information is pitched into the big bit bucket in the sky.

There is something new coming, and I’ve seen an inkling of it with an iPad app named Thirst. It acts as a kind of content aggregator/curator for twitter traffic, another raging torrent of information and categorizes tweets and brings other content along for the ride. I think it’s really quite something however I can’t really make good use of it because my iPad is just too old for such an app, it jettisons after a few moments of use. Alas, there will come a day when we set up networks of aggregators and curators in spiral arrangements so that the final product is an intensely hyperlinked virtual meta-document delivered on some sort of display technology.

Something like this I find will really only work and make most people happy if we borrow a theme from email and arrange it serially like with instapaper. New material is always flowing into the queue but we can scan the queue, comfortable with knowing that nothing will go unseen, and able to give our attention to the stream of incoming relevant, curated, categorized, and hyperlinked information. Like a DVR helps people by timeshifting television information, whatever this new second or third generation information application will also perform the same duty.

Speaking of television, a great majority of it is TL;DW, or TB;DW. Too long or too boring. Perhaps we’ll extend it to TI;DW. Too inane; didn’t watch.

This blog post is already TL;DR, but at least I know it and celebrate it.

International Day of Lying

People need lies. Lies are good.

At least when it comes to your online identity. I’ve been reading a few things here and there with people who are quite upset that Mark Zuckerberg is seeking ways to dodge his fair share of paying taxes and these people are very upset that Facebook is making money off their personal details – their lost privacy.

So how does one regain lost privacy? Simple, lie. Lie right through your teeth. Make lying an art form. Create a fantasy life out of pure whole cloth and make it as bombastic and marvelous as you have creative chops to make it!

In fact I think everyone should do this. Right now. We need a international day of lying. Everyone needs to log in to Facebook, Google Plus, and Twitter and go to town. Change the years, fiddle with the places, come up with schools you didn’t attend and live in cities you have no idea about beyond their brief entries in Wikipedia. Make it all random, make it monumental, but above all else, make it a lie. A big beautiful fantastic fabrication!

To that end, I’m going to edit my Facebook to this end. It’s going to feel good. Oh so good. Why don’t you join me? Nothing says pleasure more than wrestling power away from those that do not respect you, like Facebook. And Google. And Twitter. And well, anywhere else really.

Monetize that bullshit. I DARE you!

Of Clouds and Stones

The early 21st Century will be known for the era of cloud computing. Just a little bit of what the cloud can do I’m actually taking advantage of right now as I write this blog post.

Google provided a huge space for people to upload their music and created a handy tool to upload their iTunes music up to Google’s storage system on the network. I took advantage of this offer and copied my entire iTunes library up to Google. That’s of course just half of what I needed to cloudify my entire music collection. I also need a client to play the content on whatever devices I want to use them on. Unfortunately the Google webapp for their Google Music service doesn’t work well on my iOS device, however there is an app called Melodies which does work fantastically well!

This has saved me so much time, expense and bother. Instead of having to buy a device with a big storage unit for my music I can simply stream my music off the network, using Google and Verizon (and Wifi if I have it, and that is almost universally ubiquitous in North America anyways) so now I have nearly universal access to my music, in a way having my cake and eat it too.

This wasn’t always easy, the Melodies app did have an issue with not being able to shuffle properly but after I contacted the app support staff and telling them what was wrong they fixed the app and it updated on my iPhone in a few moments. From that point I have realized something I never thought I’d be able to do, but play my music right off the network. It’s just one more way that devices, storage, computers, all of it are becoming increasingly abstracted away from my computing experience. I expect that sometime soon the notion of a computer will start to erode and evaporate as more and more of my life becomes cloudified, or perhaps the right word is enclouded? Going to have to work on the terminology.

Of course, people who I’ve spoken to about the cloud come up with very familiar complaints as to why they don’t want to join me. Mostly it comes down to a question of privacy, and that they feel the cloud would endanger their sense of privacy. I’ve thought about that point for a while, trying to come up with a position on it. I’ve honestly never really given two shakes about my precious privacy. What value am I coveting? So what if Meijers knows what I buy and when I buy it? So what if Google knows what music I enjoy? So what if I’ve been categorized and indexed? Where is the hazard? People regard privacy as some sort of grail-object. They protect it beyond all rational sense and I don’t think that any of us can maintain any sense of privacy any longer, at least since social networking became a mainstream part of our lives.

But then again, there is the fear. Where does that come from? People hiding who they are, what they think, what they buy from others because we’re afraid of, what exactly? Isn’t it a more comfortable life to simply be who and what you are and let the chips land where they will? A life exposed is a non-issue for those that are proud of who and what they are. I admit to having a definite cavalier attitude when it comes to my privacy, but what the hell do I have to hide? Or any of us? To me it has always been my argument that if I reveal elements of my life to strangers that somehow they’ll take advantage of that information and somehow misuse it or attempt to hurt me. Well, first and foremost they’ll have to endure the social awkwardness of being the ones to expose my “secrets” to everyone else. The key here is to own everything about yourself. Own your passions, own your foibles, and own your mistakes. Nothing about the past means anything, regret is a dull nothing. For example, Anthony Wiener’s crotch-shot being publicized lead to the end of his political career. WHY? I respect people more when they stand up and own whatever it is that others find outrageous. Here’s the thing, none of us are pure. None of us really have any place to stand and throw stones. Even Jesus Christ spoke on this very point. “Let him who hath no sins cast the first stone!” Well? So you have a picture of your tenty underwear out there? OWN IT. BE PROUD OF IT. In fact, go on a Playgirl shoot and show the world your junk. This idle and meaningless outrage is stupid and lame. I would pay real money to anyone who could prove beyond a shadow of a doubt that any random other human being isn’t a sexual pervert loaded with monumental loads of kink. All it takes is a shot of whiskey to get a man to drop his shorts and do highly entertaining things with his body.

So what it comes down to? Privacy bent to protect the image that we’d like to impress upon other people that we are all pure as driven snow? How silly is this, when we are as pure as driven-over snow! At least have the fortitude to stand up and say “Yes, that’s my junk shot! Do you like it!?!” Because in that, lies respect and honesty.

To people that feel differently than I do, I have a one word question to ask you:

“Really?”

Brown Chicken, Brown Cow

It eventually had to happen. I read this little nugget in a spam email that was delivered to my inbox just now:

Excuse me ,
I have a question- have you seen this picture of yours in attachment?? Three facebook friends sent it to me today… why did you put it online? wouldn’t it harm your job? what if parents see it? you must be way cooler than I thought about you man :))))

The attachment is IMG9821.zip. Come on. A zip file? Seriously?

Just a note to everyone who might come across this blog post. When you get files in your email that you aren’t expecting, don’t willy-nilly go clicking on them. Even if you have a Mac you could be duped into running a Trojan Horse, which would be very bad. This is likely a Windows virus trying to spread via social manipulation.

Anyhow, if there are compromising photos of you on the net, own them. Be proud of them. There is very little you can do to combat something like that so you might as well make the best of the situation.

Brown Chicken, Brown Cow. 🙂

GLMUG, with the Lead Pipe, at NIU.

Just returned from a work-related mini-conference. Every year all the sites that use Sage Millennium gather together in their regions and meet with Sage representatives and talk about the database, how we use it, how we get other people to use it, and to socialize between each other. For us, we are a part of the Great Lakes Millennium Users Group, GLMUG for short. Over the years we have gotten together at WMU, where I work, and other years we have gone to St. Olaf University in Minnesota, Medical College of Wisconsin at Milwaukee, and this year Northern Illinois University.

For these events we are centrally located to pretty much every GLMUG member so for us, we pretty much always drive to wherever is selected to be our host for the meetings. We schedule a three day mini-conference, with the first day occupied by landing and socializing, then we dive into topics the next day, and the last day is mopping up any topics we missed on the second day and talking about the product and sharing notes between each other where one site does something unique and helps another site out. I always enjoy myself during these events because it gives me a ringside seat to some of the biggest changes to the software, brought to us by our Sage rep, as well as some of the biggest challenges to how we use the software. I am a DBA / System Admin so I see things in terms of IT, hardware, training, and the logical parts of how things are arranged. I also have a ‘unique viewpoint’ which often times is at odds with the more soft-pedal approach that most people prefer. I’m brash, sometimes vulgar, but I bring the same passion to these discussions that I do to my workplace. I don’t do anyone any good if I just shuffle along and mumble as a yes man. Fortune favors the bold. If nothing else, I am bold. Sometimes I’m a few other four-letter things too, but bold is nice and friendly.

This year we visited NIU, and it’s the first time I’ve ever been to Dekalb, Illinois. On the way up my coworkers and I got to talking about Illinois trivia that doesn’t have anything to do with Chicago, which is the obvious 800 pound elephant taking a figurative dump in the corner. The only thing that I could readily volunteer was that Illinois is the nation’s number one producer of pumpkins. Funny what you get from a John Carpenter’s Halloween movie trivia track on the DVD. 🙂 I am the movie generation. We see things in terms of movies that we’ve seen, and in a lot of ways we relate to our world through the vocabulary of cinema that we are fond of. I have lost count of the number of times I’ve recognized situations that come out of Airplane!, Clue, or Princess Bride. To say nothing of the endless quotes from those movies. People often times wonder where I get my oddball humor from and I tell them time and time again that those three movies are a great place to start to get to know me better. My mind spends a lot of time thinking about those movies.

Northern Illinois is to Dekalb in a way that WMU is to Kalamazoo. Both schools sort of hug their cities and bring a certain flavor to the area that otherwise wouldn’t be there. Western has our Bronco and the colors from the black-eyed susans that grow here – while NIU are the Huskies and much in the way that Chicago pushed painted plaster cows as a cute city theme, Dekalb pushed painted plaster Husky dogs. Every mascot is adorable in their own way. Cows are harmless herbivores. Broncos are exceptionally handy to ride (and not eat, or turn into glue, Frau Blucher!) and Huskies are arguably one of the most recognizable and adorable dog breeds there are, plus they can pull a sled. The University staff welcomed us warmly and went above and beyond to ensure that our get together was a success.

During these meetings we cover a lot of topics and the overarching theme that I kept on noticing isn’t so much technical issues but rather strategy questions about prospect management. Of course listening to all these schools talking about how they manage their prospects gets me thinking about ways to once-and-for-all solve the issues they all have. Many of them bring it up over and over again and many institutions really kind of muddle along. I see a divide between those that understand the technology and those that have to use the technology but often times aren’t really keen on understanding what they are using coming into conflict with each other. It’s a lot like the gulf that develops between IT staff and those that they support. I’ve written about incuriosity before, that it leads to a kind of prized ignorance and ultimately devolves into an unpleasant puddle of rank dependency. Those that cannot depend on those that can to help them do their jobs. It’s a whirlpool sucking at the overall efficiencies of an organization as nobody can really be said to be nimble when they are trapped in this unusual back-and-forth between executives who should use the system but do not and the support staff that help them by, in some cases, only achieving progress by applying blunt force to the situation.

Much of my exasperation, because that’s really what it is. It’s not irritation although I’m often irritated, but mostly I’m just exasperated. I was raised with a certain work ethic by my parents that has driven me my entire life. Take pride in what you do, be responsible for your actions, and be motivated enough to get your work done in a timely fashion. While my closest coworkers were with me on this trip, I was a party to several conversations which I won’t really go too deeply in on my blog because the thoughts that I harbor in my mind aren’t the most complimentary or charitable when it comes to some of the workplace issues that surround me. The only thing I can really write about is how I feel and what I would do in the situation that has been described to me. It’s mostly a part of my upbringing. I chafe strongly whenever I am a witness to certain entitled vanities. It’s the reason why I’ll never be regarded as senior management because I refuse to sugar coat my opinions. I am not a yes man, I am passionate and outspoken and sometimes exceptionally blunt. I think what really bothers me deep down is laziness. I feel awkward and ashamed if I’m just sitting around spinning my wheels and doing nothing for anyone. I feel driven to help, address issues, or at least try to make a difference in a project or someone else’s life for the better. This drive of mine is in direct opposition to my perceptions of indolence that I see from time to time. I also prize my bluntness. If people can’t or won’t do what is expected of them, then perhaps they should seek out something else to do that suits them better. There is a name for the kind of manager I would be if I had any power, that would be “Hatchet Man” as I would more likely fire someone for being willfully indolent rather than have them hoovering up resources and masquerading as human anchors. Whenever I hear “nobody listens” my nearly reflexive response is “Make their employment hinge on it. They’ll listen then.” which goes over like a leaded balloon. I spend a lot of time keeping quiet under the banner of “If you can’t say something nice, don’t say anything at all.” Plus it’s a good thing I don’t have any power over anyone. I’d be a monster.

Another thing that pops up over and over again in my mind is the fable of “The Emperor Has No Clothes” and I find my mind dwelling on the story a lot. There isn’t anything that can be done because in some situations you simply have to endure the awkwardness of the situation. You should speak up, you should say something. You should grab the Emperor and shake him or her like a deranged british nanny and try to wake them up. But in the end you don’t. You just sit there, floating in an irritated miasma and over time it eventually wears down all your sharp edges into smooth dull rounded ones. I sometimes have little fantasies that I like to entertain from time to time, what I would do in certain situations. I end up imagining what I would do in other functional positions with what I know of my passion, my drive, and my work ethic. That I just can’t sit around waiting. That I’ve got to do something, anything, because not doing something would be hell. A good part of this all is that I’m an accomplishment junkie. I love the emotional rush of getting something finished. I don’t care about recognition, I’m quite happy being the ignored little cog in the great watchmakers design, but this cog will do something! I think that’s what I left with from NIU and this mini-conference. What would I do in some of these situations? I still have the idealism and energy of my youth and I’d make sweeping pronouncements and back it up with aggression nobody has ever witnessed. Again, it’s a good thing I keep my own counsel and stay silent.

Beyond some of this more aggressive stuff, we were able to help other people out with some issues they were having and sharing the plight of one institution almost always leads to other institutions either suggesting a new thing to try or accidentally fixing something for someone else who happens to be a semi-involved bystander. It also helps to know that you aren’t the only one, that other people are wrestling with the same kinds of things and in the way that you aren’t really alone offers a kind of consolation. You aren’t singularly damned, you’re just like all the others who are struggling with, well, whatever it may be.

At the end of our meeting we opened the floor to a general question about who might host next time. The fine folks from the University of Wisconsin Foundation leapt at the opportunity so next year we’ll be Milwaukee-bound. I am looking forward to it.

Google Drive Failure

Google Drive is a failure.

Google Drive was released yesterday, and I clicked the button on the website letting Google know I was interested in their product. I received an email late last night informing me that my Google Drive was ready. This morning, on a lark really, I went to the Google Drive website and clicked on the download link for the sync application to add to my work iMac. I downloaded the DMG fie without a problem and opened it up. I copied the Google Drive app to my Applications folder, like you are supposed to with Macintosh, and then I sat back and marveled at it. Google Drive, finally.

I’ve been a loyal Dropbox customer for years and back in January I sprang for the $100 a year expansion of my Dropbox up to 50GB. Everything I use connects to my Dropbox via the Dropbox API and just for the record, I am totally in-love with Dropbox. There is no reason for me to leave them as a customer. But even if you are loyal, it doesn’t mean you can’t explore. I have a professional account with Box.com through my work, and we arranged that after drop.io was consumed by the wraiths at Facebook. I have a personal Box.net account with 50GB but I don’t use it because Box only allows sync with paid accounts, so it’s not worth my while. Google Drive was just along these lines, just another option to look into.

So I started Google Drive on my iMac and I was asked to authenticate, something I expected. Then nothing. I started the app again and nothing. I opened up the Console app and here is what I found:

4/25/12 7:17:44 AM Google Drive[22481] *** __NSAutoreleaseNoPool(): Object 0x2e2ba80 of class OC_PythonString autoreleased with no pool in place – just leaking

4/25/12 7:17:44 AM Google Drive[22481] *** __NSAutoreleaseNoPool(): Object 0x2e37440 of class OC_PythonString autoreleased with no pool in place – just leaking

4/25/12 7:17:44 AM Google Drive[22481] *** __NSAutoreleaseNoPool(): Object 0x2e332f0 of class NSCFString autoreleased with no pool in place – just leaking

4/25/12 7:17:44 AM Google Drive[22481] *** __NSAutoreleaseNoPool(): Object 0x2e32600 of class NSCFString autoreleased with no pool in place – just leaking

4/25/12 7:17:45 AM [0x0–0x221c21a].com.google.GoogleDrive[22481] 2012–04–25 07:17:45.119 Google Drive Icon Helper[22488:903] Inject result: 0

So, it’s broken. This isn’t the first time a new app was built that failed horribly on my iMac. If anyone cares, and perhaps if anyone from Google is reading, this is a standard 2009–2010 iMac running Mac OSX 10.6.8. The only thing different about this particular Mac is that the account has it’s home on an AFP-connected OD-domain’ed Apple xServer. A network home. This causes headaches for Adobe Acrobat Reader so it’s probably the reason why Google Drive collapses on startup.

Since I can’t run the application, and since it wasn’t designed elegantly to take into account those people who have network-based computers like mine – unlike Box.com’s sync app or Dropboxes sync app, I can only state that Google Drive is not ready for prime time. Google Drive is not ready to compete in the marketplace and Google has to go back to the drawing board and try again.

Blogging on iPad with Byword and Bluetooth Keyboard

Thanks to how silly my workplace is when it comes to access to the Internet I now have to use multiple devices to access many of the services that I previously used to run on my work machine. They have instituted a 100 connection throttle on all inbound and outbound TCP/IP connections. This explains a LOT about why I’ve been having such problems accessing the network.

Of course I won’t change my habits, I’ll just shift some of what I do onto other devices. In this case, pressing my iPhone and iPad into service. They’ll be responsible for the more social apps like Google Plus, Twitter, and such.

One thing that intrigued me was trying out Byword for the iPad using a Bluetooth Keyboard. How is blogging on my iPad different than blogging on my iMac? Byword makes this almost a seamless move. I type and the text appears on my iPad, since there are no network issues for my iPad there really shouldn’t be any lag, beach balls of death, or anything else getting in my way when it comes to blogging. The bluetooth keyboard means I can kick back and relax, put the keyboard anywhere I like and the iPad will still hear it and respond well. I don’t expect there to be any issues with WordPress. The app may be a little crunky around the edges but I can post by email just as well as open the app and copy the text into that. Sometimes I think that the post-by-email feature is more compelling for me than the application is.

At least with a bluetooth keyboard at home and at work I won’t have to lug one back and forth when I go back and forth from home to work during the day. I will however take my bluetooth keyboard with me on my upcoming work trip and see how well I can use it to do office-type things with just my iPad.

My trusty 1st Generation iPad, which by the way, still works great, has great resolution and fits me perfectly. Apple, you missed out on planned obsolescence when it came to this device!

Time to post this sucker…

Filthy Predicates

A tale of woe, a tale of SQL woe. This is what the past two days have been all about. At work, we have our master database which contains all the demographic and biographic information that allows us to do our jobs. It tracks donors, constituents, alumni, individuals, technically everyone.

We have arranged with an external vendor for extended services, the vendor is called iModules and part of my job is to help ‘bridge the gap’ between these two systems, at least data-wise. So, the primary question is, how do we update data on iModules from Millennium, Millennium being our CRM database. With SQL of course! Silly! That was the albatross I spoke of on Twitter yesterday. Mostly the construction of update scripts isn’t terribly difficult only time consuming and involves a lot of typing and checking up column names, our addrline1 is their Address_1, that sort of thing.

Before I can send updates there are two attributes that need to be added to various records to mark them as “ripe to be sent to iModules” and that’s what has had me stuck for the past two days. Our system has two distinct and not clearly compatible ways of extracting data. There is Millennium Internet Reporter, called MIR, that the report writing people use to extract data from the database and then there is little old me with Aqua Data Studio. My report-writer coworker, Lisa, handed me a copy of the criteria that MIR uses to extract which people get these attributes added to their records. It’s a pretty straightforward presentation, this from that, never in that, with these values, so on and so forth. Almost always these queries start with a very simple SELECT block and then start growing from there. Almost always I end up using JOIN or LEFT OUTER JOIN in order to collect the right data. Turns out in this case, JOIN was exactly NOT what I needed to use. Lisa gave me a number, a magic goal number for the number of records that my query, if it’s correct, should pull. This number is 687. When I started I got 287433. Then I adjusted the query and went to 133496. Over time I bounded all over, from 115 million all the way down to 20. Never really hitting that magic number. There are a lot of little gotchas that you have to be aware of and code properly. The sense that the query depends on is that we want to select certain people with certain values OR people without any values at all, but not a specific kind of value after that. I was wandering around trying various methods of attack, pulling the criteria out into temporary tables was one, switching all my joins to left outer joins (that lead to 115 million, oops) and then I thought I had it and was really clever when I enriched my joins with subqueries that used the IN predicate. Even then, I couldn’t get below 22500 records pulled. Remember the goal number is 687. There were some more little gotchas, for example, I forgot to remove the dead from the list, so that got me down to about 2700. Then I started to read about some of these predicates and I had a passing familiarity with SQL’s three-value logic property. In SQL there is true, there is false, and there is UNKNOWN. 1=1 is true, 1=0 is false, 1=null is unknown and null=null is unknown. Turns out my problem was all wadded up with the IN predicate that I had used. IN was inappropriate for this use, as it utterly ignored all the ‘null’ cases, the ones I wanted to be selected. Turns out there is a predicate I have never used, called EXISTS. This predicate changes the sense of what is selected and when I reorganized my query to use EXISTS I went from 2700 to 1686. But still, 1686 is greater than my magic goal of 687, so there was something else I wasn’t seeing. I had removed the dead, the logic looked spot on – as I read from the criteria page that Lisa had given me it read spot-for-spot “bang on” correct. Every time I ran the query it dutifully spit out 1686 records. So, what the hell was I missing?

Computers do exactly what you tell them to do, nothing more and nothing less, unless you find a bug. There aren’t any bugs in my way so it was a failure with my query, somewhere. I listed out all the selected records and started to look at them in the database, seeing if I could spot something in the selected group that shouldn’t be there and that I missed in my query logic. The first record I brought up was utterly incorrect, as the “title bar” had the word “Duplicate” in it, and my query clearly states “NOT LIKE %dup%” so why the hell was it still selecting records with Duplicate in the title bar? Yeah, case. That’s what screwed me. Case. SQL Server is very dutiful and stripped out all the places where the LIKE clause found the text fragment of dup. But not Dup, or dUp, or duP. Or agonizingly, Duplicate. Because a scan for ‘dup’ will never be true when given ‘Duplicate’ to look at d <> D. So once I wrapped the title bar column name in the lower() function, and re-ran the data query, SQL dutifully spit out 687 records. My magic number.

So I won, god damned it. It took switching from IN to EXISTS, pitching JOIN overboard, taking out the dead people and forcing lower-case reckoning. So now the damned thing is done and I can move on with my life!

Abandoning Google Plus

Yesterday I opened my Google Plus page and discovered to my surprise and initial pleasure that Google had brought a new interface to their social network system. As I started to explore this new interface I started to immediately notice that things had changed not for the better, but rather for the worse. Google had unilaterally included their chat system on the right side of my browser window, it’s something I rarely ever use so that system is all wasted space. I noticed that the stories in my circles, the things I really care about are now shuffled off to the left in a column that lost 10% of space on the leftmost and 50% on the rightmost, being moved over for some controls at the very top of the page that now occupy this dreaded whitespace region on my Google Plus page.

It’s this whitespace, and the meaningless chat talker system that I can’t stand. Facebook attempted a similar move by presenting me with a chat-talker screen on the left side as well months ago, when I still used Facebook. When they made the changes to their interface, along with privacy concerns and workplace issues with social networking I left Facebook. Now it just languishes as an identity marker, if content gets on my Facebook page it’s wholly accidental. Twitter’s web page also underwent this columnar approach, as they reconfigured the entire interface out from underneath their users. For Twitter, I stopped using that because it was more noisy than useful, the people I wanted to engage with were just human billboards, and the interface changes were really the straw that broke the camel’s back.

So what is there to do? Complaints about the interface changes are really the only channel you have to express how much you dislike when a service does this to you – but you have no real power. Just complaining is one easily ignored tiny little voice in the darkness and doesn’t amount to anything at all. The only real power that any single user has is the power of choice. In the end, the only choice I have to make is, do I want to still use the system? It’s actually a matter of abandonment. I abandoned Facebook. I abandoned Twitter. Because they changed the interface and made it less useful to me, I am facing the idea of abandoning Google Plus. I don’t need these social network systems to give my life meaning. They need me, or rather, they need aggregate me’s, lots of people, to give what they do meaning. The less people use a socially networked system the less appealing that system is to everyone else. Facebook is only compelling because everyone uses it. There is no real value inherent in Facebook itself. This is a lesson that the classic business models these companies use can’t take into account – that their popularity defines their success. If they make a grossly unpopular change to the interface, then people will flee and their success will go tits up.

I don’t care to encourage other people to abandon these systems if they like them. Each of us has to make these kinds of decisions on a wholly personal level. I find it obnoxious that Google, and Facebook, and Twitter for that matter all force interface changes on users without giving the user any control whatsoever. It would be more elegant if there were a batch of controls we could select from and build our own interface. Put the bits and pieces where we want, opt out of things we don’t care for and make the interface work best for us, as the users. None of these sites have done that, they all behave as if they have global fiat to make changes willy-nilly. The end user who has to contend with these changes can’t do anything really except make that singular choice surrounding the issue of abandonment.

So where do I go now? It’s comic, but in many ways I am looking forward to going backwards. There is one system that I’ve used, mostly as a category but the people behind what I currently use I regard as being the platonic form of that category, and that is WordPress. Going back to blogging. What does the WordPress infrastructure have that attracts me? It’s got stable themes, the site looks very much like it always has. There are changes, but they aren’t as gross in scope as these other systems have perpetrated. I can share links on WordPress, I can write long posts, short status updates, and WordPress has a competent comment system already in place.

So I will give Google Plus until May 1st to do something better with their interface, to recognize the value in the stream and give us users the choice of what systems we want to see on our Google Plus page. Google should give us the ability to turn off the whitespace region, we should be able to turn off the chat talker region, so that we can maximize the stream region. If they fail to correct these glaring human interface deficits I will do to Google Plus what I did to Facebook. I will abandon Google Plus. I will keep the account running but I will no longer actively use it. Things that end up on Google Plus will end up being the same sort of things that end up washing up on Twitter, specifically links to content on my WordPress blog. Google’s loss will be WordPress’ gain. WordPress has always done right by me, and I respect them. I do not respect Twitter, nor do I respect Facebook. My respect for Google is quixotic at best. I used to believe in their “Do No Evil” company mantra, but that has been shed as Google has done some very evil acts, they aren’t what they once were and this sullying of their image makes the pending abandonment easy.

Will my abandonment hurt Google? No, of course not. I’m not so full of myself as to think that me leaving will change anything about the service, that Google will even notice my absence. However if I can inspire other people to give another look at WordPress, maybe see that progress forward can be achieved by regressing to earlier systems may be a worthy pursuit if what you get in the trade is interface stability. That this single raindrop encourages others to fall. The raindrop doesn’t believe it is responsible for the flood. I can only hope that I help the flood along. These massive changes that these social network sites perpetrate on their usership should be punished! We want it all, we want to use the service and we want to control it as well. We want the interface to be regular, logical, useful and static. When we want to make a change, we want to be the ones making it. We do not want to be victims of someones good intentions, Google! I would say this for Facebook as well, but that’s a lost cause.

So time is ticking away. If Google does not act, then the stream on that service is terminal. If that comes to pass, I will be migrating to my WordPress blog.

I hope to see some of you there.