Wednesday, August 6, 2008

Where I was when the course started and how far I have come

Aside from factual knowledge and technical skills I have learned in IRLS 672, I would say that my understanding of how the component aspects of a typical digital technology implementation relate and fit together have greatly improved. When I started the IRLS 672 course, I had prior limited exposure to many of the concepts that would comprise the course content. I have watched libraries undergo a remarkable transformation in the last 15 years. I was aware of the importance of learning about aspects of this transformation, but it was difficult to determine where to begin. I have begun to develop a good foundation on which to build skills. The focus of my professional development has improved. As a result of my studies, I have gained heightened awareness of the exciting potential for work with digital collections.

When IRLS 672 started, I had read about the Linux operating system, and installed the Debian Linux operating system on a spare computer. I had limited familiarity with live-disk operating systems, such as Knoppix. My use of Linux was limited to graphical user interface (GUI) desktop applications. I had acquaintance with some concepts of networking from workplace exposure and reading. My knowledge of servers was limited to a conception of the role of a server in the server/client model. I had written static HTML pages. I had no knowledge of or experience with technology planning. I had a lot of experience using commercial, GUI-based database products. I had little exposure to project management concepts. I knew that PHP sometimes stood for the "P" in LAMP.

So I think I have come a long way since the beginning of the course. I have a good basic knowledge of using the command line interface (CLI) to navigate, configure, and administer Linux. I have a knowledge of basic networking. I have learned a lot about how HTML relates to XML and PHP. I have worked with web servers and database servers. I have learned something about technology planning and project management. I have learned a lot about how all these things fit together. Generally, I would say that I have developed a good foundation for working with digital technology applications. I can build on this foundation by continuing to learn about the topics introduced in this course.

Readings on Project Management

Personally I found the Project Management Body of Knowledge (PMBOK) Guide to be an interesting and thorough analysis of critical components of project management. The PMBOK Guide typically creates a matrix of nine knowledge areas (scope, time, cost, quality, human resource, communications, risk, procurement, and integration) and five process groups (initiating, planning, executing, controlling, and closing.) It is interesting how general principles such as these can apply to a wide range of projects. I think a good point was made in the readings regarding the challenge of choosing the correct level of detail to implement the PMBOK. I suspect it is this challenging choice which leads to under-implementation of PMBOK and similar principles in many library projects.

Scope management is important to avoid project escalation. I thought particularly interesting the example of project escalation documented in the Mark Keil article "Pulling the Plug: Software Project Management and the Problem of Project Escalation." Keil effectively documented how social and psychological factors can contribute to project escalation. I think such social and psychological factors frequently have significant influence on project outcomes. The Bas de Bar videos "Software Project Management in 15 Minutes" provided practical advice for managing such social and psychological factors. Bas de Bar asserts that project stakeholders are key to the success of a technology project. These stakeholders are primarily driven by tacit expectations of a project. It is the task of project management to divine and address these expectations through the definition of requirements. A key tool to define the scope of a project is the development of a work breakdown structure. I think the work breakdown structure would be a useful tool in many library projects.

It seems to me that much of project management deals with the allocation of limited resources. This resource allocation of limited resources is effectively illustrated by the Tradeoff Triangle diagram, as described in the Microsoft Solutions White Paper MSF Process Model V 3.1. The three aspects of the Tradeoff Triangle are resources, schedule, and features. These three aspects are assigned exclusively the respective qualities of fixed, chosen, and adjustable. So, for example, given fixed resources and a chosen schedule, a technology project product's features should be realistically projected to be adjustable. I think that understanding such realities can aid in the management of stakeholder expectations through the definition of realistic requirements.

Sunday, August 3, 2008

A MySQL concept I found difficult to understand


These two MySQL queries return the same value:



select photographer_lname, image_title

from photographer

right join image

on photographer.photographer_id=image.photographer_id;




select photographer_lname, image_title

from image

left join photographer

on photographer.photographer_id=image.photographer_id;



In the first query, the right join returned all the rows from the second table (image), even if there was no value from the first table (photographer.)

In the second query, the left join returned all the rows from the first table (image), even if there was no value from the second table (photographer.)

Left and right refer to the first and second tables. Left- first table, right- second table.


Below, this is the general example for all rows returned, from the table in CAPS:

select column1, column2

from TABLE1

left join table2


select column1, column2

from table1

right join TABLE2

Sunday, July 27, 2008

Databases

Relational databases seem to be a quite complex subject. The theory behind relational databases can be complex. Practical implementations of the theory are more simple. As a practical matter, many-to-many entity relationships are to be avoided. Interestingly, many-to-many entity relationships are not problematic theoretically. But relational database management systems (RDMS) are unable to implement such relationships. Many-to-many entity relationships are resolved with intersection entities. Database modeling involves conceptualizing the database structure, by identifying entities (relevant things), attributes (descriptive aspects of each thing), and relationships (associations between things.) Relationships generally have up to three aspects, a name, optionality, and degree. For me, I am still having difficulty understanding optionality, which is whether a relationship is optional for mandatory. For instance, two examples in this week's readings were: 1. an author can write 0 or more books, and 2. a plant may be given one or more waterings (optional.) I do not understand 1. how an author can be an author having written 0 books, and 2. how it is optional that a plant be given a watering. (Maybe the plant is outside?)

With respect to normalization, I followed the normalization procedure detailed in the Three Normal Forms tutorial. It was slow-going at first, but after a while I think I got the hang of it. However, starting with a database model of four entities, the normalization process proliferated their number to ten. I think I normalized the database correctly, but, for the purposes of the class assignment, I am using a modified schema with four entities. So I think there are different levels at which a database can be implemented, depending upon its purpose.

Sunday, July 20, 2008

Technology Planning

It seems often easy to forget that technology is an end to itself. Great are the demands of keeping a library technologically up-to-date. As libraries become increasingly technological, technophobia will reduce.

Technology plans can help as coordinating documents. Not infrequently such documents are created, filed, and forgotten. Staff buy-in correlates with whether or not the technology plan is a "living document." (Stephens, 2004)

Indeed, libraries need to know their communities. In practice, libraries now spend an increasing amount of time studying their "competitors" (Amazon, Google, etc.) I think this is because the latter is now changing faster than the former. (Sager, 1999)

Government library environmental scanning can be a complex task. Formal explicit identification of user needs can be difficult. (Sager, 1999)

The Schools and Libraries Division of the Universal Service Fund (E-Rate) provides discounted computing and networking resources for schools and libraries. E-Rate was authorized under the Telecommunications Act of 1996. Technology planning can improve the efficiencies of expenditures, competitive bidding, auditing processes, and procurements. (Bertot, 2002)

The 1995 Standish Group Study underscores the challenges to technology project, and puts those of E-Rate into perspective. "Poor project planning" was identified as the primary cause of project failure. "Poor project planning" specifically entailed that "risks were not addressed" or the "project plan was weak." The extent which technology plans address technology project risks is unclear. Such risk include "slippage from the schedule, "changes in the scope of technology, functionality, or business case," cost overruns, and changes in key individuals including managers or sponsors. (Whittaker, 2007)

Technology plans should acknowledge realities referenced in the 2003 OCLC Environmental Scan. These realities include that users are usually satisfied with information search results from open-web search engines, libraries can expect increasing competition for funding, and (most surprisingly) libraries are still spending a relatively small part of their budgets (3%) on digital content. (OCLC, 2003)

Sunday, July 13, 2008

XML and the demo server

I went about learning XML using the W3Schools XML tutorial at http://www.w3schools.com/xml/default.asp, which covered the basics of XML, including the use of XML, the XML tree structure, XML syntax, XML elements, XML validation, viewing XML, and more.

I also went through the Document Type Definition (DTD) tutorial, which describes the current de facto schema standard for XML documents. The tutorial included DTD elements, attributes, entities, validation, and examples.

I also went through the XML Schema tutorial. XML Schema is an XML-based alternative do DTDs.

I also viewed Mark Long's CBT tutorials XML Basics and XML Documents. I think they we useful reinforcement to the W3Schools tutorials.

Overall I think the lessons on XML were pretty straightforward. As I use XML, I will become more proficient.

---

This week I accessed the demo server under SSH protocol with the client utility Putty.

I transferred the server to headless mode, first testing for keyboard or mouse boot hang-ups by unplugging the keyboard and mouse and restarting the server. Although it returned an error message, it did reboot. So I took off the monitor too.

I found the server's web site in var/www, and examined the default website configuration location from the documentroot directive in /etc/apache2/sites-available/default.

I created a group webdev for developing the website, added my username to webdev, changed group ownership of /www from root to webdev, changed /www permissions to 775, changed /www subdirectories to 775, and changed /www files to 664. Then I used the file transfer utility WinSCP to transfer files from my UA website to /var/www on my demo server. I received file sharing permissions errors while transferring the files, but the files did transfer.

I also create a user web space enable through the Apache module Userdir. I created a directory public_html and an HTML file index.html. I enabled the Userdir module with the command a2enmod userdir.

Besides the demo server, there is an issue I want to look into about the VM server. I want to know why I cannot ping from the VM server to other machines.

Thursday, July 3, 2008

How I Went About Learning HTML, and a Brief Report on the Installation of My Demo System

I went about learning HTML from the W3Schools website at http://www.w3schools.com/html/default.asp. I found it very helpful as a self-paced tutorial, because it provided examples of each HTML element, and contained a live interactive feature which displayed the effects of changing the code. The layout of the W3Schools site is very efficient, showing all relevant course content listed in a column on the left side of the page. This layout enabled me to easily find the HTML code I might be looking for. The W3Schools site does a good job of incorporating necessary advertising into the website in a way that is non-distracting. Mercifully, the website lacks flashing advertisements. Each HTML element receives its own page, consistent in format with the other pages. HTML elements appearing on pages other than their own are liked to their own page for efficient reference. I reviewed the HTML Basics and Advanced Sections, and the Cascading Style Sheets Section. There is a lot of good stuff there, worth going back to.

The installation of the demo server progressed without incident. I made a selection for manually identifying the keyboard to Linux, which was different from the class installation procedure. After answering a few questions to Linux about my keyboard, I and had Linux automatically identify the keyboard. I installed LAMP and SSH, edited etc/apt/sources.list, updated the system with aptitude, and installed WebAdmin. I configured static IP addresses on the virtual machine server and the "actual" (?) machine server, and successfully pinged them. Setting up name resolution in my hosts file, I searched "system32" in Windows XP Search, located the file \windows\system32\drivers\etc\hosts, and made the appropriate edits. I noted numerous addresses of malicious websites associated to the local host address by the anti-malware tool StopZilla, rendering those malicious websites ineffective. Good lookin' out, StopZilla.