Replacing head.js with concatenated.js in My Studio

In “Introducing head.js to My Studio,” I was optimistic as ever about a new technique that is supposed to make life easier. It did not happen for me. Head JS was having trouble with the beta version of jQuery Color—knowing the details of this problem is irrelevant because when I rolled back to plain <script /> elements everything worked (and I am also certain that I was using the proper Head JS syntax to ensure loading in sequence).

So, instead of getting into yet another intimate relationship with yet another island of JavaScript, my alternative to Head JS is to concatenate my ‘library’ of JavaScript files into one, big-ass file, concatenate.js. This is the PowerShell script that does the job:

$newFileName = "concatenated.js"
New-Item -ItemType file $newFileName –force
$jquery = Get-Content "jquery-1.6.1.min.js"
$jqueryrx = Get-Content "jquery.extensions.rx.js"
$jqueryui = Get-Content "jquery-ui-1.8.6.custom.min.js"
$jquerycolor = Get-Content "jquery.color-2.0b1.min.js"
$underscore = Get-Content "underscore-min.js"
$jquerytmpl = Get-Content "jquery.tmpl.min.js"
Add-Content $newFileName $jquery
Add-Content $newFileName $jqueryrx
Add-Content $newFileName $jqueryui
Add-Content $newFileName $jquerycolor
Add-Content $newFileName $underscore
Add-Content $newFileName "`r`n"
Add-Content $newFileName $jquerytmpl

This very simple alternative does not solve the performance problems that Head JS is meant to solve. But for me, at my current scale of operations, maintainability is more important than maximizing performance.

Installing MVVM Light in Visual Studio with NuGet and the Package Manager Console

I’m an Ubuntu guy so apt-get has my respect. It follows quickly that when Phil Haack and his crew come out with NuGet I’m ready. NuGet should take away one unusual annoyance I’m getting with the MVVM Light binaries installed “by hand”—I’m getting this type-or-namespace-GalaSoft-not-found error continually! I have to manually Add Reference… and rummage through the file system to refresh the Visual Studio project links the binaries. My optimistic assumption is that the NuGet packaging of MVVM Light will prevent this strange error and save me from rummaging.

After reading “Finding and Installing a NuGet Package Using the Package Manager Console” I used this:

PM> Get-Package -remote -filter MvvmLight

A PowerShell table formatted for the console should return one row with the MvvmLight package information—make sure that Package source: is set to All in the Package Manager Console. Running the Install-Package command will install the relevant MVVM Light binaries (for Silverlight or WPF) into the Visual Studio project selected in the Default project: combo box.

In my case I would have to run Install-Packagefour times like this:

Install-Package MvvmLight

Each time I would have to change project the Default project: combo box. Using the, er, power of PowerShell, these are the four projects I’m talking about:

PM> Get-Project -all | where {$_.Name -match "Songhay.Silverlight" -and $_.Name -notmatch "ApplicationLoader" -and $_.Name -notmatch ".Xml"} | format-table Name
Name
----
Songhay.Silverlight
Songhay.Silverlight.Mvvm
Songhay.Silverlight.BiggestBox.IndexPart
Songhay.Silverlight.BiggestBox

So let’s make life a tad easier: let’s list all projects, filter this list and loop through the filtered output, running the Install-Package command:

PM> Get-Project -all | where {$_.Name -match "Songhay.Silverlight" -and $_.Name -notmatch "ApplicationLoader" -and $_.Name -notmatch ".Xml"} | ForEach-Object {Install-Package MvvmLight -project $_.Name}

Related Links

Dropping More SharePoint Links into My Blog Bucket

Influenced by recent events, I’m taking SharePoint links off of my active TODO list. My strategy is pathetically simple: don’t do a thing with SharePoint until the next version comes out based on the forlorn hope that the next version will come with a big apology for all previous versions in the form of new, pronounced levels of usability and elegance. Meanwhile, these:

Résumé Drill

Buy this book at Amazon.com! I have not updated my résumé in years. I have been doing time in the same W2 labor camp for almost ten years. Since I’ve known me for quite some time, I can tell that I am interested in summarizing my skills because my damn-near ten years of ‘exile’ has produced a revised and improved view of my personal technology plan. This writing here is like a little fire drill to exercise my ability to succinctly communicate the scope of my information technology concerns.

My IT Concerns by Operating System

There are two operating systems that are used for my development work: Microsoft Windows and Ubuntu Linux. Microsoft Windows is required because of its native support for the .NET Framework and Microsoft Office file formats. Ubuntu Linux is required because of its friendly relationships with the Java Runtime and the Apache HTTP Server. It is extremely important to emphasize that these operating systems are maintained by organizations that encourage and discourage technologies. In the “real world” of the IT business we must pick our “battles” wisely and not recklessly “fight” such organizations by using technologies that are not “approved.”

Buy this book at Amazon.com!My IT Concerns by Software Environment

There are three major ‘software environments’ that are of my concern: the .NET Framework, the “Standard Edition” of Java with its associated runtime and the XAMPP ‘stack’—a grab bag of traditional Linux technologies featuring Apache, MySQL and PHP (supplemented by my use of the Zend Framework and YUI).

My IT Concerns by Shell Language

There are two ‘shell’ languages that are of my concern: bash scripting and PowerShell. My bash efforts drive directly into PHP-related file management (featuring rsync) and the Java runtime for console applications (featuring JAXP solutions). My PowerShell efforts are currently very minimal with a few XCopy deployments for Visual Studio.

My IT Concerns by General-Purpose Software Language

These are the general-purpose software languages that are of my concern: C# and Java. These two languages are the preferred choice after working through BASIC, FORTRAN and Visual Basic (which implies I am familiar with Visual Basic .NET—and very familiar with VBA). A future language to explore might be F#.

Buy this book at Amazon.com!My IT Concerns by Domain Specific Software Language

These are the domain-specific languages of my concern: t-SQL, JavaScript (under AJAX), PHP, XSLT and XAML. These result from working through MS-SQL (for Microsoft Access) and ASP (for Microsoft Internet Information Server). Currently, there are no plans to explore new domain-specific languages outside of ones based on XML.

My IT Concerns by HTTP Server

There are two HTTP Servers of my concern: Apache HTTP Server and Microsoft Internet Information Server (IIS). Do note the glaring omission of any Java-based server technologies. Also the presence of IIS here—coupled with my concern for .NET—implies that I am actively using ASP.NET.

My IT Concerns by Database Management System (DBMS)

There are two DBMS products of my concern: Microsoft SQL Server and MySQL. It is not technically accurate to include SQLite in this list but it is definitely worth mentioning because I also use this database frequently!

Buy this book at Amazon.com!My IT Concerns by Client-Interface Technology

There are three client-interface technologies of my active concern: AJAX-based HTTP clients, XAML-based HTTP clients and Adobe-Flex-based HTTP clients. All of these concerns share HTTP as the means of transporting data for human-readable viewing.

It important to emphasize that I also divide these concerns into two use categories: clients for intense data editing and clients for mostly-read-only scenarios. The mostly-read-only clients needs to be available to a wide audience—this implies that AJAX and Flex work well here. In my considered opinion, the intense-data-editing client is suited for XAML technologies like Windows Presentation Foundation (WPF) and Silverlight 2. This means that I intend to produce data-editing tools for a small, specialized set of users (supporting a mostly-read-only audience through a decoupled publishing system). This position is not in agreement with the current trend of social, “Web 2.0” applications where “everyone” can be reader and writer.

It is also important to mention that since my commitment to building clients exists, this means that I have working knowledge of traditional design software products like Adobe Photoshop and Adobe Illustrator. I am also quite skillful in the field of sound design but this area leaves the scope of this writ.

My IT Concerns by Integrated Development Environment (IDE)

There are three IDE products that are of my concern: Microsoft Visual Studio, Eclipse Foundation Eclipse and Sun Microsystems NetBeans. I prefer to work with Eclipse and NetBeans in a Linux-based graphical user interface like Gnome or KDE.

Did I miss anything?

What would be really strange (for me) is to take the time here to set healthy boundaries only to find out that there is this whole other world of crap that I do in IT that I am unaware of… that would be literally unprofessional. My intent here is to capture and control my behavior and find out exactly what I am doing so that actually can profess and produce with potency.

Off the TODO List: “Xdebug—Debugger and Profiler Tool for PHP” and others

Buy this book at Amazon.com!The “Xdebug—Debugger and Profiler Tool for PHP” is deferred based on the assumption that NetBeans will get more aggressive about building kinder and gentler debugging support for PHP. Maybe “Debugging techniques for PHP programmers” had something for me back in 2005. Probably not…

CodeIgniter Videos

Out of general purpose respect for a Tiffany B. Brown experiment, I thought I would view the introductory videos to CodeIgniter. My randomness follows:

  • With CodeIgniter MVC, you are not required to use .htaccess out the box—like with the Zend Framework.
  • I noticed a “scaffolding” folder in the first video—which looks like more Ruby on Rails parody. CodeIgniter scaffolding is explained in the second video and goes beyond what data tools are available by default in the Zend Framework.
  • Like the Zend Framework CodeIgniter is heavy on the V and C in MVC but very light on the Model. Both of these frameworks have cute data “helpers” but nothing like a Java/Hibernate or .NET/LINQ dude would expect. I consider this a limitation of PHP.

My current theory is that the PHP model, the “data layer” should be another PHP application that emits XML or JSON—or anything else for the client. Knowing full well that a huge application like flickr.com runs on PHP, I would not want to write a bunch of “business logic” or “business rules” in PHP. My preference is that PHP calls out to a decoupled service with that stuff in it.

Buy this book at Amazon.com!“Asdoc ant task”

Christophe Herreman looks like nice guy in “Asdoc ant task”—and I’m sure his JAR file is cool—but I’m not that strong with Ant and I have yet to write comments for my tiny amount of ActionScript 3 code.

“Combined Visual Studio 2008 Service Pack 1 Beta and .NET Framework 3.5 Service Pack 1 Beta”

My desire to download “Combined Visual Studio 2008 Service Pack 1 Beta and .NET Framework 3.5 Service Pack 1 Beta” (formerly “ASP.NET 3.5 Extensions Preview”) is just an indicator of me actually anticipating something from Microsoft. Scott Guthrie does it again. But I can’t mess about with Beta code on this scale right about now. This whining of mine is almost a follow-up to “Another Item Off the TODO list: Visual Studio 2008 SP1 Beta.”

“Beginning Power Shell Guide”

This looks abandoned: “Beginning Power Shell Guide.” With the nascent Power Shell, the risk is just too high to get caught reading something that is out of date.

dotFX

This is a “Java and JavaFX client technology.” Ideally, I would not even have to go looking for stuff like this. One should run into that “killer app” that happens to be based on this technology.

VisioExportToXAML

Naw… maybe later

“Live Mesh Screencasts & Videos”

This one leads to more Silverlight beta stuff—so we can’t see the videos without Silverlight—the beta of Silverlight. I talked about this wonderful viral marketing campaign in “Unable to install Silverlight.”

“Upgrading Ubuntu from Edgy to Feisty (6.10 to 7.04)”

This is off my list not just because I am extremely concerned that that VMware 5.x does not support Ubuntu 7.04 (I looked this up at vmware.com) but this howtogeek.com quote is not very inspiring: “Note: If you are upgrading from Dapper (6.06) to Feisty, you will probably want to upgrade from Dapper to Edgy, and then from Edgy to Feisty.” My VM is running 6.06.