About Me

Since the 1990s I have been very involved with fighting the military "don't ask don't tell" policy for gays in the military, and with First Amendment issues. Best contact is 571-334-6107 (legitimate calls; messages can be left; if not picked up retry; I don't answer when driving) Three other url's: doaskdotell.com, billboushka.com johnwboushka.com Links to my URLs are provided for legitimate content and user navigation purposes only.
My legal name is "John William Boushka" or "John W. Boushka"; my parents gave me the nickname of "Bill" based on my middle name, and this is how I am generally greeted. This is also the name for my book authorship. On the Web, you can find me as both "Bill Boushka" and "John W. Boushka"; this has been the case since the late 1990s. Sometimes I can be located as "John Boushka" without the "W." That's the identity my parents dealt me in 1943!

Monday, January 22, 2007

In fact, when I worked as a site rep for Univac in 1972 at Public Service Gas and Electric in downtown Newark, NJ, I wrote a utility to monitor the system log files and report on each employee's use of every system facility. In olden days, employers actually worried about how many compiles it took a programmer to get a program working (when we had punch cards and one-day turnarounds -- although even then Univac had good terminals for programmers).

Of course, today the term refers to monitoring employees email and Internet access for inappropriate personal use. In the early 1980s, when I worked for Chilton in Dallas, TX, the company warned us early that it audited our accounts for personal use on the Ahmdahl mainframe (at the time, personal computers at home were just coming into wide use -- I bought a TRS-80 in 1981). Even school homework was forbidden. "I you use company resources for any personal purpose at all, you will be terminated," a memo warned.

As Weinstein writes today, the biggest security threat for companies could be employees' visiting dangerous sites and inadvertently loading new malware on their work computers. It gets more complicated when you take a laptop home, but people have been fired when workers' kids have used company laptops without the parents' knowledge. It's even more complicated when you use your own computer (more common as people work at home as contract customer service agents for companies like Alpine).

Some companies solve the problem by limiting the kinds of access possible. When I worked for a debt collector in 2003, we dialed in to a Unix or VAX application and gave an IP address, but the network had no access to the Internet. Pretty safe.

Of course, the modern problem, already written about in previous blog entries, is the reputation incurred by employees with their own blogs or social networking profiles -- and the possibilities that these could indavertently compromise an employer's confidential information.

Sunday, January 21, 2007

A UNION is a function that combines the results of two or more SELECTS with all columns and all rows encountered. To prevent a misleading result, it is a good idea to use the AS clause. For example, a UNION of a SELECT from an inventory table and a back-order table could imply that parts are on hand when they are not, when the same column (quantity) appears in both tables, unless you rename one of these with an AS.

Many people code INNER JOINs with implicit syntax (coding the actual rule) but it is better to code with an explicit syntax (INNER JOIN ... ON). Professional coding standards regard INNER JOINS as easier to read. Qualified names can be used with joins.

OUTER JOINS may be full or left or right. A right join can be changed to a left by switching the statement order.

Outer joins are used when it is desirable to keep unmathched rows in a result. For example, a substitute teacher system might want to show inactive or expired subs (those who have accepted no assignments within the reporting period) for investigatory purposes. Call the Full Outer Join a "background investigation." The VALUE or COALESCE function can return a perdetermined string for a null value.

Thursday, January 18, 2007

Back in 1974 I had some practical experience with the concept of a Database rollback when working in St Paul MN for Univac on a Bell Labs benchmark with a Univac 1110, where the database was DMS-1100, comparable to IDMS in the IBM world. Whole run-units would roll back and get caught in a catch-22 deadly embrace, degrading performance and causing required norms for the benchmark to be missed for several weeks. Finally, an analyst noticed that in one of the transactions, the problem could be fixed by reversing the order of two statements.

Often, with a DB2 cursor, the best coding technique will be to use somewhat frequent COMMIT commands with the WITH HOLD option (on the DECLARE CURSOR), so that the cursor does not close and have to be re-opened and re-positioned. With the option coded, a FETCH command will retrieve the next row in sequence according to the primary key for the table.

If there are no COMMIT commands, no updates get written until the program ends normally. Performance can degrade and contention may result. DB2 will rollback the updates upon an abend, or when a ROLLBACK is coded.

Wednesday, January 17, 2007

Referential integrity is an important concept in relational databases. It means that each row of a dependent table will have a foreign key with a value equal to the value of a primary key in the parent table. The names of the fields may and will generally be different. A foreign key comprises a column (or columns) in a dependent table that correspond to the primary key in the parent table. So even in a relational database, the concept of "hierarchy" can exist in a somewhat artificial manner.

With DB2 (2.1) the database will enforce referential integrity with the CREATE TABLE statement.

When you INSERT, every row in the parent table must have a unique primary key, and every row in any dependent table needs a foreign key corresponding to the primary key value. You can't change the primary key with an UPDATE if any foreign keys in dependent tables refer to it. The DELETE statement has CASCADE, RESTRICT, and SET TO NULL options to handle dependent rows in a manner decided by the applications designer.

The SQLCODE value for a referential integrity error is -500.

I once worked on the conversion of an IMS name-and-address database to DB2 (back in 1999). An independent consultant designed all of the tables, and referential integrity was one of his first concerns. The design took several months, which is typical in any major conversion.

Monday, January 01, 2007

In working with Mirosoft SQL Server 2005 along with Visual Studio .NET 2005 and ADO.NET databases, a couple of concepts:

Firehose cursors: The SqlDataReader class fetches rows one at a time with a lock at on one row at a time. (A cursor means "current set of rows.")SqlDataReader uses internal SQL format instead of DataSet (to convert intenrally to XML )for internal representation of data. This saves time at the expense of flexibility.

The .NET framework uses connection pooling, managing already-open connections to the database in a pool, to save resources in constantly opening and closing connections.

(used for analytics)

Privacy Policy

Privacy Policy for billsitjobs.blogspot.com

If you require any more information or have any questions about my privacy policy, please feel free to contact me by email at JBoushka@aol.com.

At billsitjobs.blogspot.com , the privacy of my visitors is of extreme importance to me. This privacy policy document outlines the types of personal information is received and collected by billsitjobs.blogspot.com and how it is used.

Log Files Like many other Web sites, billsitjobs.blogspot.com makes use of log files. The information inside the log files includes internet protocol ( IP ) addresses, type of browser, Internet Service Provider ( ISP ), date/time stamp, referring/exit pages, and number of clicks to analyze trends, administer the site, track user’s movement around the site, and gather demographic information. IP addresses, and other such information are not linked to any information that is personally identifiable.

Cookies and Web Beacons billsitjobs.blogspot.com does not use cookies.

DoubleClick DART Cookie

.:: Google, as a third party vendor, uses cookies to serve ads on billsitjobs.blogspot.com .
.:: Google's use of the DART cookie enables it to serve ads to your users based on their visit to billsitjobs.blogspot.com and other sites on the Internet.
.:: Users may opt out of the use of the DART cookie by visiting the Google ad and content network privacy policy at the following link.

Some of my advertising partners may use cookies and web beacons on my site. My advertising partners include ....... Google Adsense

These third-party ad servers or ad networks use technology to the advertisements and links that appear on billsitjobs.blogspot.com send directly to your browsers. They automatically receive your IP address when this occurs. Other technologies ( such as cookies, JavaScript, or Web Beacons ) may also be used by the third-party ad networks to measure the effectiveness of their advertisements and / or to personalize the advertising content that you see.

billsitjobs.blogspot.com has no access to or control over these cookies that are used by third-party advertisers.

You should consult the respective privacy policies of these third-party ad servers for more detailed information on their practices as well as for instructions about how to opt-out of certain practices. billsitjobs.blogspot.com 's privacy policy does not apply to, and we cannot control the activities of, such other advertisers or web sites.

If you wish to disable cookies, you may do so through your individual browser options. More detailed information about cookie management with specific web browsers can be found at the browsers' respective websites.