December 22, 2014: Accepted A Job, Programming != Computer Science

I’ve accepted a job at Schnucks, where I was contracting.  Everyone cheer!

Also, programming != computer science.  But what if you could pick up the knowledge distributed in a computer science course for free?  You can!  This is here for me more than you; I admit that unashamedly.  Check out


Posted in General | Leave a comment

December 8, 2014: Open to new job, other miscellaneous.

First, I’m looking for a new job.  If you’re interested my StackExchange profile can be found at  I’m currently a contractor and frankly, I don’t like being a contractor.  Promises to be hired on have not been followed through with so it’s time to move on.

Second, I finally upgraded my home network to Gigabit.  I probably should have done this years earlier but I always balked at the price.  Now, with the Linksys SE2500 at $40.00 or so it was a no brainer.  Most of the machines I have already had Gigabit interface cards.

Third, I just picked up the Kindle HDX for $140.00.  Time to pass my iPad 3 on to my daughter, I think.  While I enjoy the Apple products I have much heavier investments in the Android ecosystem.  Might as well leverage them.

Finally, I got sucked into World of Warcraft, specifically the Draenor expansion.  It is comfortingly mind numbing, but I wish I had something else to challenge me other than this.

Posted in General | Leave a comment

November 12, 2014: Microsoft open sourcing .NET

Here’s the official Microsoft release.

This is great.  This provides an alternative path for developers to smash into Linux and Mac development while using their existing skill set.  This expands the Microsoft base and allows them to offer Premium services (becoming more service oriented like a Red Hat or Ubuntu) while providing their world class tools to developers.

.NET was never sold, so I can’t see a down side to this announcement.  Much kudos to Satya Nadella for this change.

Disclaimer:  This is the announcement.  We won’t see the actual result of this change for a while yet, but it is exciting to see.  And I do predict that we will see impact from this change.

Hanselman has a great summary of everything happening here.

Posted in General | Leave a comment

November 11, 2014: Lexar USB 3.0, Books, and More

I picked up a Lexar 3.0 USB drive this weekend, the one featured on Reddit for the disk usage indicator.  The drive’s damned fast.  It’s funny that it’s returned to the days of sneakernet – I can copy multigig files to this thumb drive, walk over to my server, and copy them off faster than I can copy them over my (admittedly dated) fast ethernet network.

lexarIt should be noted that they’re currently ~$30.00 on Amazon, but I picked mine up at Office Max for $20.

Second, picked up two new visual guides to Javascript & JQuery and HTML5 and CSS3.  They’re very high quality books, in full color and very visual.

IMG_20141111_152011Recommended.  (The set I linked to on Amazon is the price I paid for one of the two books at Barnes & Noble.)

Finally, my attempt to finish the games I’ve bought on Steam continues.  Currently I’m working on Risen and Mars:  War Logs.    These games are getting in the way of studying for the OCA/OCP certifications, but it must be done.  I shall not remain one of those players where 90% of their library is completely unplayed!

I did finish Shadowrun Returns: Dragonfall recently and I cannot imagine a better use of $15.00 for an RPG fan.  Seriously.

Posted in General | Leave a comment

Oracle 1Z0-061: SQL Fundamentals I Exam Guide, Chapter 2

Chapter 2: Data Retrieval Using the SQL Select Statement

Two Minute Drill

List the Capabilities of SQL Select Statement

  • The three fundamental operations that SELECT statements are capable of are projection, selection, and joining.
  • Projection refers to the restriction of columns selected from a table.  Using projection, you retrieve only the columns of interest and not every possible column.
  • Selection refers to the extraction of rows from a table.  Selection includes the further restriction of the extracted rows based on various criteria or conditions.  This allows you to retrieve only the rows that are of interest and not every row in the table.
  • Joining involves linking two or more tables based on common attributes.  Joining allows data to be stored in third normal form in discrete tables, instead of in one large table.
  • An unlimited combination of projections, selections, and joins provides the language to extract the relational data required.
  • A structural definition of a table can be obtained using the DESCRIBE command.
  • Columns in tables store different types of data using various data types, the more common of which are NUMBER, VARCHAR2, DATE, and TIMESTAMP.
  • The data type NUMBER(x, y) implies that numeric information stored in this column can have at most x digits, but the whole number portion can have at most x-y digits.
  • The DESCRIBE command lists the names, data types, and nullable status of all columns in a table.
  • Mandatory columns are also referred to as NOT NULL columns.

Execute a Basic SELECT Statement

  • The syntax of a primitive SELECT clause is as follows:  SELECT * | {[DISTINCT] column | expression [alias], …}
  • The SELECT statement is also referred to as a SELECT query and comprises of at least two clauses, namely the SELECT clause and the FROM clause.
  • The SELECT clause determines the projection of columns.  In other words, the SELECT clause specifies which columns are included in the results returned.
  • The asterisk (*) operator is used as a wildcard symbol to indicate all columns.  So the statement SELECT * FROM accounts returns all of the columns available in the ACCOUNTS table.
  • The FROM clause specifies the source table or tables from which items are selected.
  • The DISTINCT keyword preceding items in the SELECT clause causes duplicate combinations of these items to be excluded from the returned result set.
  • SQL statements should be terminated with a semicolon.  As an alternative, a new line can be added after a statement and a forward slash which can be used to execute the statement.
  • SQL statements can be written and executed in lowercase, uppercase, or mixed case.  Be careful when interacting with character literals since these are case-sensitive.
  • Arithmetic operators and the string concatenation operator acting on column and literal data form the basis of SQL expressions.
  • Expressions and regular columns may be aliased using the AS keyword or by leaving a space between the column or expression and the alias.
  • If an alias contains multiple words or the case of the alias is important, it must be enclosed in double quotation marks.
  • Naturally occurring single quotes in a character literal can be selected by making use of either an additional single quote per naturally occurring quote or the alternative quote operator.
  • The DUAL table is a single column and single row table that is often used to evaluate expressions that do not refer to specific columns or tables.
  • Columns which are not governed by a NOT NULL constraint have the potential to store null values and are sometimes referred to as nullable columns.
  • NULL  values are not the same as a blank space or zero.  NULL  values refer to an absence of data.  Null is defined as a value that is unavailable, unassigned, unknown, or inapplicable.
  • Caution must be exercised when working with null values since arithmetic with a null value always yields a null result.

Chapter 2:  Self Test

  1. Which query creates a projection of the DEPARTMENT_NAME and LOCATION_ID columns from the DEPARTMENTS table?  (Choose the best answer.)
  2. After describing the EMPLOYEES table, you discover that the SALARY column has a data type of NUMBER(8,2).  Which SALARY value(s) will not be permitted in this column?  (Choose all that apply.)
    1. SALARY = 12345678
    2. SALARY = 123456.78
    3. SALARY = 12345.678
    4. SALARY = 123456
    5. SALARY = 12.34
  3. After describing the JOB_HISTORY table, you discover that the START_DATE and END_DATE columns have a data type of DATE.  Consider the expression END_DATE-START_DATE.  (Choose two correct statements.)
    1. A value of DATE data type is returned.
    2. A value of type NUMBER is returned.
    3. A value of type VARCHAR2 is returned.
    4. The expression is invalid since arithmetic cannot be performed on columns with DATE data types.
    5. The expression represents the days between the END_DATE and START_DATE less one day.
  4. The DEPARTMENTS table contains a DEPARTMENT_NAME column with data type VARCHAR2(30).  (Choose two true statements about this column.)
    1. This column can store character data up to a maximum of 30 characters.
    2. This column must store character data that is at least 30 characters long.
    3. The VARCHAR2 data type is replaced by the CHAR data type.
    4. This column can store data in a column with data type VARCHAR2(50) provided that the contents are at most 30 characters long.
  5. Which statement reports on unique JOB_ID values from the EMPLOYEES table?  (Choose all that apply.)
  6. Choose the two illegal statements.  The two correct statements produce identical results.  The two illegal statements will cause an error to be raised.
    1. SELECT DEPARTMENT_ID || ‘ represents the ‘ || DEPARTMENT_NAME || ‘ Department’ AS “Department Info” FROM DEPARTMENTS;
    2. SELECT DEPARTMENT_ID || ‘ represents the || DEPARTMENT_NAME || ‘ Department’ AS “Department Info” FROM DEPARTMENTS;
    3. select department_id || ‘ represents the ‘ || department_name || ‘ Department’ “Department Info” from departments;
    4. SELECT DEPARTMENT_ID represents the DEPARTMENT_NAME Department AS “Department Info” FROM DEPARTMENTS;
  7. Which expressions do not return NULL values?  (Choose all that apply.)
    1. select ((10 + 20) * 50) + null from dual;
    2. select ‘this is a ‘  || null || ‘ test with nulls’ from dual;
    3. select null/0 from dual;
    4. select null || ‘test’ || null as “Test” from dual;
  8. Choose the correct syntax to return all columns and rows of data from the EMPLOYEES table.
    1. select all from employees;
    2. select employee_id, first_name, last_name, first_name, department_id from employees;
    3. select % from employees;
    4. select * from employees;
    5. select *.* from employees;
  9. The following character literal expression is selected from the DUAL table:  SELECT ‘Coda”s favorite fetch toy is his orange ring’ FROM DUAL;  (Choose the result that is returned.)
    1. An error would be returned due to the presence of two adjacent quotes.
    2. Coda’s favorite fetch toy is his orange ring.
    3. Coda”s favorite fetch toy is his orange ring.
    4. Coda”s favorite fetch toy is his orange ring.’
  10. There are four rows of data in the REGIONS table.  Consider the following SQL statement:  SELECT ‘6 * 6′ “Area” FROM REGIONS;
    1. 1 row returned.  Area column contains 36.
    2. 4 rows returned.  Area column contains value 36 for all 4 rows.
    3. 1 row returned.  Area column contains 6 * 6
    4. 4 rows returned.  Area column contains 6 * 6 for all 4 rows.
    5. A syntax error is returned.
Posted in Oracle | Leave a comment

Oracle 1Z0-061: SQL Fundamentals I Exam Guide, Chapter 1

Chapter 1: Relational Database Design Using Oracle

Two Minute Drill

Position the Server Technologies

  • The Oracle database stores and manages access to user data.
  • The Oracle WebLogic Server runs applications that connect users to the database.
  • Oracle Enterprise Manager is a tool for managing database application servers, and, if desired, the entire computing environment.
  • Languages built into the database for application development are SQL, PL/SQL, and Java.

Understand the Relational Structures

  • Data must be normalized into two-dimensional tables.
  • Tables are linked through primary and foreign keys.
  • Entity-relationship diagrams represent the tables graphically.

Summarize the SQL Language

  • The DML commands are SELECT, INSERT, UPDATE, DELETE, and MERGE.
  • The DCL commands are GRANT and REVOKE.
  • The TCL commands are COMMIT, ROLLBACK, and SAVEPOINT.

Use the Client Tools

  • SQL*Plus is a command line utility installed into the Oracle Home.
  • SQL Developer is a graphical tool installed into its own directory.
  • Both tools require a database connection, consisting of a username, a password, and a connect identifier.

Create the Demonstration Schema

  • The demonstration schemas are provided by Oracle to facilitate learning but must be created before they can be used.

Chapter 1:  Self Test

  1. What components of the IT environment can Oracle Enterprise Manager Cloud Control manage?  (Choose the best answer.)
    1. Oracle databases
    2. Oracle application servers
    3. Third party products
    4. The server machines
    5. All of the above
  2. What languages can run within the database?  (Select all that apply.)
    1. SQL
    2. C
    3. PL/SQL
    4. Java
    5. Any other language linked to the OCI libraries
  3. Data that is modeled into a form suitable for processing in a relational database may be described as being:  (Choose the best answer.)
    1. First normal form
    2. Third normal form
    3. Abnormal form
    4. Paranormal form
  4. An entity-relationship diagram shows data modeled into:  (Choose the best answer.)
    1. Two-dimensional tables
    2. Multidimensional tables
    3. Hierarchical structures
    4. Object-oriented structures
  5. SQL is a set oriented language.  Which of these features is a consequence of this?  (Choose the best answer.)
    1. Individual rows must have a unique identifier.
    2. Sets of users can be managed in groups.
    3. SQL statements can be placed within blocks of code in other languages, such as Java and PL/SQL.
    4. One statement can affect multiple rows.
  6. Which of these constructs is not part of the SQL language?  (Choose all that apply.)
    1. Iteration, based on WHILE.
    2. Iteration, based on FOR..DO.
    3. Branching, based on IF..THEN..ELSE.
    4. Transaction control, based on COMMIT.
    5. Transaction control, based on ROLLBACK.
  7. Which of these statements regarding SQL Developer are correct?  (Choose two answers.)
    1. SQL Developer cannot connect to databases earlier than release 10g.
    2. SQL Developer can be installed outside an Oracle Home.
    3. SQL Developer can store passwords.
    4. SQL Developer relies on an LDAP directory for name resolution.
  8. Which of the following are requirements for using SQL Developer?  (Choose two correct answers.)
    1. A Java Runtime Environment
    2. The OCI libraries
    3. A name resolution method such as LDAP or a TNSNAMES.ORA file.
    4. The SQL*Plus libraries
    5. A graphical terminal
  9. Where may the demonstration schemas be created?  (Choose the best answer.)
    1. The demonstration schemas must be created in a demonstration database.
    2. The demonstration schemas cannot be created in a production database.
    3. The demonstration schemas can be created in any database.
    4. The demonstration schemas can be created in any database if the demonstration user is created first.
  10. How can you move a schema from one user to another?  (Choose the best answer.)
    1. Use the ALTER SCHEMA MOVE … command.
    2. You cannot move a schema from one user to another.
    3. A schema can only be moved if it is empty (or if all objects within it have been dropped).
    4. Attach the new user to the schema, then detach the old user from the schema.
Posted in Oracle | Leave a comment