SSIS Notes

SSIS-ing Constructing an SQL Server Integration Services (SSIS) package is just as time-consuming as my work on DTS packages. But I must remind myself that, once I was finished polishing these ‘mechanical documents’—procedural documents, they were easy to use and maintain—and relatively self explanatory. Unless Microsoft has some embarrassing version-1.0 incoherence, SSIS should have the same deal. With all the feel-good crap aside, my notes:

  • The SSIS approach is designed to eliminate most t-SQL script scenarios that require temporary tables. One tedious alternative is to load values into variables. The Variables pane—like all pane-based tabular entry areas—suck.
  • The scope of Package variables cannot be changed in the IDE! Someone recommends BIDS Helper for this (and other) problems (as of today you no longer have to compile the source code to get this feature).
  • I prefer ADO.NET connections instead of OLE DB connections (which are the default—probably for a reason). ADO.NET connections do not have “cannot convert between unicode and non-unicode” errors. ADO.NET connections support named parameters of the form @MyParameter—OLE DB depends on that old question-mark (?) shit.
  • Certain Data Flow tasks (like the Lookup Task) seem to require OLE DB connections.
  • Yes, you can assign results from Execute SQL Task into variables.” And after that we can “Map Query Parameters to Variables in an Execute SQL Task.” But, clearly, the use of variables is not a replacement for Data Flow source.
  • A Script Component Data Flow Transformation can be used as a Data Flow source—and Package variables can be used in scripts. It is important to remember that script components can be used as data sources, destinations or transformations.
  • SSIS enforces type safety by telling you to fix type problems (like truncation warnings related to different types)—DTS converts shit behind your back. Ignorance was bliss—but professionalism requires continual improvement.

“Google controls 6% of all Internet traffic” and other links…

Paper! Paper! appfrica.net: “Only 150 networks control over 50% of all online traffic. This, in comparison with 5 years ago, when traffic was democratized among thousands and thousands of providers. And of course, Google has a lion’s share, at 6% of all Internet traffic, much of it coming from its popular property YouTube. ReadWriteWeb reports that over the past two years, larger networks, have been buying up smaller networks. Today, around 30 companies, including Google, Microsoft, and Facebook account for about 30% of all Internet traffic…” Whosoever wanted to live though the history of transition between the Articles of Confederation and The Constitution, your opportunity is here. When the appointed voices advocate for “the cloud,” these people worship the family of multi-national corporate gods that will eventually rule over the mediation of all “relevant” conversations on the face of the earth. It’s not about neo-Nazi; it’s about neo-Stasi.

“Why won’t Apple let indies create their own iTunes LPs?”

ITworld: “Of course, as you’d find out if you clicked on that iTunes link, they hadn’t; in fact, as became clear this weekend, they weren’t going to anytime soon, because indie labels have been shut out of the iTunes LP marketplace for now. Chocolate Lab Records, a Chicago-based indie label, reportedly contacted Apple about getting iTunes LP albums up for their artists, and was told that only the majors are being considered, and they’d have to pay $10,000 for design costs. The Mountain Goats are on 4AD—a pretty big-sized label as indies go, but not big enough to shell out ten grand for each iTunes LP design.”

“IBM senior vice-president Bob Moffat is guilty of insider trading”?

I, Cringely: “I have no idea whether IBM senior vice-president Bob Moffat is guilty of insider trading or not, though that’s what he was arrested for yesterday. What I do know is that Moffat’s job since 2005 has been as the architect of IBM’s project called LEAN, which is intended to adjust Big Blue’s global labor force to maximize profitability. I’ve written quite a bit about LEAN, much to the consternation of IBM, characterizing it in large part as a way to replace expensive older American workers with younger and cheaper workers in India and Argentina while cleverly dodging U.S. age discrimination and possibly other civil rights laws. Whatever the legality of LEAN it is downright mean and shows little respect for the people who made IBM what it is today.”

Mozilla Endorses SharePoint Competitor MindTouch

MindTouch: “Mozilla has asked MindTouch to convert the Mozilla Developer Center (MDC) from Mediawiki to Deki Wiki. I’m bringing this up in this post about localization with good reason. MDC is currently localized for 14 countries. We plan to launch the new and improved MDC in February. We don’t want to regress MDC and we need more languages. The guys at Mozilla are reaching out to Mozilla community for translators to help with this. If any of you Gardeners are capable of assisting in translating to any of the languages we currently lack for the MDC launch please consider lending a hand in this endeavor.”

My Incomplete List of jQuery Plug-ins

What’s that famous line from the Rebel fighter pilot (or was it the Jedi youngling)? “There are… too many of them…” Yes, there are ‘too many’ jQuery Plug-ins—especially for an ex-YUI guy like me. So the crude filtering technique used to find the gems includes looking at “20 Amazing jQuery Plugins and 65 Excellent jQuery Resources,” “Your Favorite JQuery Controls & Plugins” and paging through the slightly redundant data set of the most popular plug-ins at plugins.jquery.com. Also, this list does not include the “official” jQuery UI plug-in. The table below summarizes (in some decreasing order of importance):

Validation Plugin “…there are a lot of non-jQuery-based solutions (which you’d avoid since you found jQuery) and some jQuery-based solutions. This particular one you are looking at is one of the oldest jQuery plugins (started in July 2006) and proved itself in projects all around the world.” This one, by the way, is recognized in many “official” ways by Microsoft.
Autocomplete Plugin “By giving an autocompleted field focus or entering something into it, the plugin starts searching for matching entries and displays a list of values to choose from. By entering more characters, the user can filter down the list to better matches.”
Masked Input Plugin “It allows a user to more easily enter fixed width input where you would like them to enter the data in a certain format (dates, phone numbers, etc).”
Flexigrid “This is a lightweight but rich data grid with resizable columns and a scrolling data to match the headers, plus an ability to connect to an xml based data source using Ajax to load the content.”
DirtyForm “This is a project for watching containers of inputs and notifying the user of unsaved changes.”
TextLimiter “Counts down the number of chars left on a Textarea/Input fields, won’t let the user write more than allowed number of characters.” Has more votes than MaxChar
jQuery Tools “This library contains six of the most useful JavaScript tools available for today’s website. The beauty of this library is that all of these tools can be used together, extended, configured and styled. In the end, you can have hundreds of different widgets and new personal ways of using the library.”
jQuery Gallery Plugin “jQuery Gallery Plugin take a grouping of images and turn it into an flash-like image/photo gallery.”
jstree “For many data-driven applications, high-quality grid and tree components are really important; kudos to Ivan for some interesting ideas in jsTree.”—Ajaxian.com
useScript A more complex alternative to $.getScript().
YouTubePlaylist “A jQuery YouTube plugin that turns a list of youtube links into a complete YouTube gallery with thumbnails. Extremely easy to use and degrades gracefully.” Yes, there is a YouTube JavaScript Player API but this jQuery thing might be enough for me.
Embed Quicktime (UI 1.2.x) “Embed QuickTime is a jQuery plugin that helps you embed QuickTime movies to play directly on your webpage, instead of redirecting your video to a separate page or forcing you to embed a video using Flash. It changes regular image links to the embedded QuickTime video when they are clicked. It works with .mov, .mp4 and .m4v files.”
lwRTE (UI 1.2.x) “Do you need really lightweight and unbloated Rich Text Editor (RTE / WYSIWYG) for JQuery and ability to extend it as you want?”
Editable (UI 1.2.x)

“This is a real customizable jQuery editable plugin. Currently it can convert any tag (span, div, p and …) to text input, password, textarea, drop-down list.”

“You can easily extend it by adding your own input type using its editableFactory object.”

jQuery Samples (Maybe) for SonghaySystem.com

Buy this Book at Amazon.com!A new /jquery folder is added to the dev’ server samples folder. The work here is intended to replace the older samples in the /DHTML and /ajax folders. Today, the plan is to use jQuery exclusively. This decision is based on the following:

  • My current understanding of the YUI 3.0 Loader shows me not an equivalent of jQuery.getScript() but far more complex functionality that seems to focus on loading YUI modules more than plain-old *.js files. This script loading issue is important—this is why projects like Jingo exist.
  • The CSS-selector syntax in YUI 3.0 is there but I do not feel the terseness that’s attractive in jQuery. The code samples seem noisy to me. This pressure to rewrite my YUI 2.x code in this “new” style might as well be relieved in jQuery.
  • The advantages that might be clear and present in YUI over jQuery do not appeal to me. An article like “Why YUI is my favorite JavaScript framework and why it should be yours too!” sites advantages like “Debugging and Profiling” or “Blistering fast framework hosting and serving of assets”—I would like to have these problems and I look forward having them. By the time I get there, jQuery should have already been and moved on…

Today, my only pressing question about jQuery is about the when to use jQuery.extend() and, jQuery.fn (which is used for plug-ins). Basil Goldman seems to have an explanation in “Defining your own functions in jQuery” but for some reason I’m still not satisfied that I have the best information. Once we start to work with jQuery.fn we must consider whether we should just build a full-blown plug-in. This implies three issues: extending, adding a new function and building a plug-in. There should be an explanation that coheres all three.

jQuery: $.extend() and $.fn.extend() confusion “As a general rule, you should extend the jQuery object for functions and the jQuery.fn object for methods. A function, as opposed to a method, is not accessed directly from the DOM.”
jQuery extend and fn.extend “Use the extend function to add a new function to a jQuery object. … Use the fn.extend function to add a new function that will be applied to each element in the set of elements in a jQuery object.”
Learn How To Create Your Own jQuery Plugin “The basis of creating a plugin for jQuery is actually quite simple. You don’t have to be a jQuery ninja, nor do you have to sweat blood to make it work. It’s as easy as script writing!”
A Plugin Development Pattern “In Mike Alsup’s preamble, I’m inferring that a formal plug-in is needed when your extension depends on one or more ‘private’ functions.”

Today’s Links: Did Marc-Guillaume Alexis Vadier partially inspire Darth Vader?

Buy this DVD at Amazon.com! A few half-hearted Web searches produced no relationship between Marc-Guillaume Alexis Vadier and Darth Vader. But, to use North-American philosophical jargon, you could see (barely) that Vadier was a “good guy” that fought against the tyranny of monarchy but eventually turned to the “dark side” and orchestrated the killing of such characters as his sibling-like rival, Georges Danton.

All my interest in Vadier comes from Danton—the Criterion Collection film, Danton, to be exact. This 1982 release, starring Gerard Depardieu as Danton, held my attention—this is remarkable because so many European films have lost their exotic luster in my eyes over the years.

Buy this DVD at Amazon.com! Melville’s Pierre: or, The Ambiguities

Another surprising 1999 French film by Leos Carax, Pola X, pulled me in. This is rather ‘strange’ because this film stars Gerard Depardieu’s late son, Guillaume Depardieu. My attention came to this film through the 2007 Scott Walker documentary, Scott Walker: 30th Century Man. Walker performed music for this film—so the web of links thickens.

Buy this DVD at Amazon.com! Adding more glistening threads, it is important to know that Pola X is based on Melville’s Pierre: or, The Ambiguities. One very strong theme for Leos Carax through Melville is the portrayal of this display of contempt by the young artist for the established order. These displays can be a fascinating novelty for too many young artists—and is especially tragic when the baby assumes that this is the first time in the history of the world that such depth of contempt is expressed. Takes one to know one…

My suggestion to the creative youth would be not to conform to established order but to be humble and thoughtful enough to study the rich history of non-conformity to avoid repeating some mistakes—and to find useful models to build upon (Scott Walker: 30th Century Man provides an outline of such a model, by the way). In the mean time kids, here is a warning from elder Ms. Marguerite in Pola X:

This need to spit the world’s sinister truth in its face is as old as the world itself! You know what Musil wrote: “One can’t resent one’s era without being swiftly punished by it.”

Buy this DVD at Amazon.com!The assumption here is that “Musil” refers to the Austrian writer Robert Musil who lived to see the rise of Nazi power (the Nazis banned his books) but did not live long enough to see its dramatic end. This reference to Musil harmonizes with the opening sequence in Pola X with the Stuka dive bombers set to Scott-Walker dissonance.

EST: Erhard Seminars Training

One interesting moment in the American history of non-conformity is the decade-long run (from 1971) of Erhard Seminars Training or est. Here in the rasx() context, est is the American, mechanical, reductionist distillation of Zen Buddhism that played a significant role in establishing the self-centered “nature” of today’s “self-help” industry. My other guess is that the question, “Don’t you get it?” was seared into American pop culture through the power of this movement.

Not only did the 2002 Adam Curtis documentary Century of the Self introduce me to Erhard Seminars Training it also linked such PBS celebrities as Wayne Dyer to this movement (along with John Denver and other pop stars). I mention Wayne Dyer here because he seems to reference Saint Francis of Assisi in his talks, way, way more than Werner Erhard. I don’t want to get into any arguments. But for those who ask in the context of critiquing the lack of collective effort why “everyone is so selfish,” studying the history of est might provide some answers.