<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Living &#187; Wage Slavery</title>
	<atom:link href="http://mattsprinsky.com/blog/category/wage-slavery/feed/" rel="self" type="application/rss+xml" />
	<link>http://mattsprinsky.com/blog</link>
	<description>The life of a photographer, artist, sysadmin, explorer and backyard philosopher.</description>
	<lastBuildDate>Sun, 23 May 2010 06:12:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Installing Blackboard (pre-9.1) on Oracle ASM Storage</title>
		<link>http://mattsprinsky.com/blog/2010/03/17/installing-blackboard-on-oracle-asm-storage/</link>
		<comments>http://mattsprinsky.com/blog/2010/03/17/installing-blackboard-on-oracle-asm-storage/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 16:02:02 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Things with blinky lights]]></category>
		<category><![CDATA[Wage Slavery]]></category>
		<category><![CDATA[ASM]]></category>
		<category><![CDATA[blackboard]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[university of cincinnati]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://mattsprinsky.com/blog/?p=331</guid>
		<description><![CDATA[Blackboard claims that new version 9.1 will &#8220;support&#8221; installation on Oracle&#8217;s ASM (Automatic Storage Management), which is really just Oracle&#8217;s own LVM (Logical Volume Manager) geared specifically for Oracle files.  Blackboard&#8217;s installer, prior to version 9.1, will balk if ASM disk paths like +ASM_DBPROD_DATA/ are entered for the installation path on the database, as [...]]]></description>
			<content:encoded><![CDATA[<p>Blackboard claims that new version 9.1 will &#8220;support&#8221; installation on Oracle&#8217;s ASM (Automatic Storage Management), which is really just Oracle&#8217;s own LVM (Logical Volume Manager) geared specifically for Oracle files.  Blackboard&#8217;s installer, prior to version 9.1, will balk if ASM disk paths like <code>+ASM_DBPROD_DATA/</code> are entered for the installation path on the database, as opposed to normal (ocfs2, ext3, nfs, etc.) <code>/ocfs2_dbprod_data</code>.  This is because the installer&#8217;s script validates that there is a &#8216;/&#8217; on the beginning of the path to the database.  However, if you enter a fake path, like say &#8216;/fakepath&#8217; for the installer, it executes some <code>CREATE TABLESPACE</code> SQLs that specify the file name for the tablespace.  This SQL of course failes, because /fakepath doesn&#8217;t exist.  I copied the failing SQL out of the installer path and noticed something: the installer was querying Oracle&#8217;s special<code>USER_TABLESPACES</code> (or <code>DBA_TABLESPACES</code>, I forget) to see if tablespaces like BB_BB60_DATA and BB_BB60_INDX existed.  If they didn&#8217;t exist, the failing SQL would then try to create them, and fail due to &#8216;/fakepath&#8217; being&#8230; fake.  A complete and detailed solution to this problem follows after the break.</p>
<p><span id="more-331"></span></p>
<p>Then the lightbulb turned on in my head! Why not just create the tablespaces in the Oracle Instance shell <em>myself</em> prior to running the installer and pointing it at the Oracle Instance.  We are using Oracle 10G R2 RAC with 11G R1 clusterware on ASM storage.  OMF (Oracle Managed Files) are enabled:</p>
<pre>SQL&gt; show parameter create_file
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest                  string      +ASM_DBARCH_DATA</pre>
<p>So after you execute Blackboard&#8217;s required grant step in SQLPlus as oracle:
<pre>@$ORACLE_HOME/rdbms/admin/rstrconn.sql;
GRANT create session, create table TO CONNECT;
commit;</pre>
<p>&#8230;</p>
<p>Then execute this SQL to create the &#8220;base&#8221; set of Oracle Tablespaces for Blackboard:
<pre>CREATE SMALLFILE TABLESPACE "BB_BB60_STATS_DATA" LOGGING;
CREATE SMALLFILE TABLESPACE "BB_BB60_STATS_INDX" LOGGING;
CREATE SMALLFILE TABLESPACE "BBADMIN_DATA" LOGGING;
CREATE SMALLFILE TABLESPACE "BBADMIN_INDX" LOGGING;
CREATE SMALLFILE TABLESPACE "BB_BB60_DATA" LOGGING;
CREATE SMALLFILE TABLESPACE "BB_BB60_INDX" LOGGING; </pre>
<p> note that these SQLs do not cover the CMS tablespaces needed if you&#8217;re running the Blackboard (Xythos) CMS.  </p>
<p>Here&#8217;s the SQL if you&#8217;re running the Blackboard (Xythos) CMS:
<pre>CREATE SMALLFILE TABLESPACE "CMS_DATA" LOGGING;
CREATE SMALLFILE TABLESPACE "CMS_INDX" LOGGING;
CREATE SMALLFILE TABLESPACE "CMS_FILES_USERS_DATA" LOGGING;
CREATE SMALLFILE TABLESPACE "CMS_FILES_USERS_INDX" LOGGING;
CREATE SMALLFILE TABLESPACE "CMS_FILES_COURSES_DATA" LOGGING;
CREATE SMALLFILE TABLESPACE "CMS_FILES_COURSES_INDX" LOGGING;
CREATE SMALLFILE TABLESPACE "CMS_FILES_ORGS_DATA" LOGGING;
CREATE SMALLFILE TABLESPACE "CMS_FILES_ORGS_INDX" LOGGING;
CREATE SMALLFILE TABLESPACE "CMS_FILES_INST_DATA" LOGGING;
CREATE SMALLFILE TABLESPACE "CMS_FILES_INST_INDX" LOGGING;
CREATE SMALLFILE TABLESPACE "CMS_FILES_LIBRARY_DATA" LOGGING;
CREATE SMALLFILE TABLESPACE "CMS_FILES_LIBRARY_INDX" LOGGING;</pre>
<p>Note that this may not be an inclusive list for all installs, but for our work here with Blackboard 7.* through 9.0 SP1 HF2, this has been sufficient.  If your installer still errors out after you&#8217;ve pre-created the tablespaces, you should investigate the log file that the installer creates and find the name of the tablespace that the installer is failing on.  Then , using SQL like what&#8217;s above, create whatever tablespace you need.</p>
<p>I found out about all of this when we migrated from OCFS2-backed 10G R2 RAC without OMF (Oracle Managed Files) to ASM-backed 10G R2 with OMF on 11G R1 clusterware, but the solution is actually very simple if you look in the bb-installer.log that the installer creates when you run the jar like <code>/usr/local/jdk/bin/java -jar bb-as-linux-9.0.505.15.jar</code>. When I ran the installer with a <code>/fakepath</code> for the database install path, I saw the failing CREATE TABLESPACE statements referencing the <code>/fakepath</code>.  I didn&#8217;t want BB to try to name files for the tablespaces, that&#8217;s why I&#8217;m running Oracle Managed Files.  Once I pre-created the tablespaces, everything ran great and the install completed successfully.  Detailed solution with example SQL after the break!</p>
<p><!--more--></p>
<p>I have seen a lot of solutions come across the BBADMIN-L list out of ASU involving complicated solutions where one installs Blackboard 6,7,8 or 9 on non-ASM storage and uses RMAN to migrate the database. Another workaround involved creating a non-clustered database in a RAC environment on local storage and then moving that to the RAC clustered Oracle DB and ASM storage.  Both of these solutions time consuming, fraught with places to make mistakes and hose the entire process, and generally a royal pain in the ass.  I have a feeling Blackboard already knows this trick and if we&#8217;re lucky they&#8217;ll eventually publish their version of this article, if they have one.</p>
<p>I hope this helps all my fellow BBAdmins out just a bit.  If you&#8217;ve got questions or this process blows up on you, please leave me a comment and we can try to figure it out!  I have tested this on Oracle 10G R2, both RAC and non-RAC and with Blackboard 7.3.230.0, 8.0.375.0 and 9.0 SP1 HF2, all of which worked AOK.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattsprinsky.com/blog/2010/03/17/installing-blackboard-on-oracle-asm-storage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My New Fictional Hire, An Entry-Level Technician</title>
		<link>http://mattsprinsky.com/blog/2009/07/26/my-new-fictional-hire-an-entry-level-technician/</link>
		<comments>http://mattsprinsky.com/blog/2009/07/26/my-new-fictional-hire-an-entry-level-technician/#comments</comments>
		<pubDate>Sun, 26 Jul 2009 15:23:01 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Wage Slavery]]></category>
		<category><![CDATA[hiring]]></category>
		<category><![CDATA[resume]]></category>
		<category><![CDATA[skills]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://mattsprinsky.com/blog/?p=214</guid>
		<description><![CDATA[My friend Eric asked me to write up a list of skills that I thought I an entry level tech should have.  I&#8217;m writing it from the point of just having hired said entry-level technician position.  The &#8220;guy&#8221; I just hired has the following skills, and I am VERY happy with him:

Basic knowledge [...]]]></description>
			<content:encoded><![CDATA[<p>My friend Eric asked me to write up a list of skills that I thought I an entry level tech should have.  I&#8217;m writing it from the point of just having hired said entry-level technician position.  The &#8220;guy&#8221; I just hired has the following skills, and I am VERY happy with him:</p>
<ul>
<li>Basic knowledge of DNS, how to add/change/delete A/CNAME/RREF records in a generic point and click environment like Windows DNS or a DNS appliance</li>
<li>Knowledge of DHCP, leases, static DHCP, adding/change/delete leases</li>
<li>Basic DOS/*nix command line navigation (cd, type, less/more, etc.)</li>
<li>OS installation, install all drivers, patch system</li>
<li>Basic virtual machine knowledge, installing OSs inside VMs, cloning VMs, re-IP &#038; re-SID clones, etc.</li>
<li>Disk drive imaging like ghost</li>
<li>Network connection troubleshooting knowledge, finding whether problem is local to PC, segment, etc.</li>
<li>IP subnetting</li>
<li>Basic Office suite use</li>
<li>Printer Drivers (enhanced vs os-built in)</li>
<li>Identifying unknown hardware by reading device IDs, using www.pcidatabase.com or search engine</li>
<li>Web Browser issues/compatability</li>
</ul>
<p>That&#8217;s it for now &#8212; but I&#8217;m about to get in the truck for the seven hour drive back to Cincinnati from St. Louis.  I may edit this post an add to it when I return, or not.  Good luck Aryc!</p>
]]></content:encoded>
			<wfw:commentRss>http://mattsprinsky.com/blog/2009/07/26/my-new-fictional-hire-an-entry-level-technician/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using Expect and Cadaver to automate WebDAV uploads (w\ example script)</title>
		<link>http://mattsprinsky.com/blog/2009/02/13/using-expect-and-cadaver-to-automate-webdav-uploads/</link>
		<comments>http://mattsprinsky.com/blog/2009/02/13/using-expect-and-cadaver-to-automate-webdav-uploads/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 22:24:05 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Wage Slavery]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://mattsprinsky.com/blog/?p=168</guid>
		<description><![CDATA[
DISCLAIMER: I still hate windows. 
I spent a decent portion of today hunting around for a way to script or otherwise automate (at the command line) uploading a file to one of $wageslavery&#8217;s external vendors.  After diddling with curl -T only to find that it only works if the destination file doesn&#8217;t exist, I [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://mattsprinsky.com/blog/wp-content/uploads/2009/02/expect1.png" alt="" title="Expect Screenshot with sensitive data osbcured" width="500" height="247" class="aligncenter size-full wp-image-174" /></p>
<p><strong>DISCLAIMER: </strong>I still hate windows. </p>
<p>I spent a decent portion of today hunting around for a way to script or otherwise automate (at the command line) uploading a file to one of $wageslavery&#8217;s external vendors.  After diddling with curl -T only to find that it only works if the destination file doesn&#8217;t exist, I finally bit the bullet and installed <a href="http://www.cygwin.com/">Cygwin</a>. Cygwin provides a win32 version of <em>expect</em>, the command line automation tool and <em>cadaver</em>, the command line WebDAV utility, basically smbclient for WebDAV. Working example code after the break!<br />
<span id="more-168"></span><br />
The script is applicable to any platform really, but what&#8217;s below on *nix platforms may or may not require the &#8220;\n&#8221; at the end of the send statements.  <em>expect</em> sends &#8220;\r&#8221; at the end of the line by itself, and I suspect the Cygwin *nix utils running on Windows instead of *nix is probably the cause.</p>
<p>A practical, santized, example including dealing with a self-signed certificate:<br />
<code>spawn /usr/bin/cadaver https://upload.externalvendor.com/myuploads<br />
expect "Do you wish to accept the certificate"<br />
send "y\n"<br />
expect "Username:"<br />
send "starbuck\n"<br />
expect "Password:"<br />
send "0mgBACON\n"<br />
expect "dav:"<br />
send "lcd /path/to/data/files\n"<br />
expect "dav:"<br />
send "rm datafile.csv\n"<br />
expect "dav:"<br />
send "put datafile.csv\n"<br />
expect "dav:"<br />
send "quit\n"</code></p>
<p>Hopefully this helps some other poor soul stuck dealing with WebDAV uploads instead of proper sftp!</p>
<p><em>Update 2009-02-24: I added the word &#8220;script&#8221; a few times to help the Google search results. Maybe I&#8217;ll be #1 on &#8220;cadaver expect script&#8221;!</em></p>
]]></content:encoded>
			<wfw:commentRss>http://mattsprinsky.com/blog/2009/02/13/using-expect-and-cadaver-to-automate-webdav-uploads/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>At UC.edu, Blackboard Loves LDAP!</title>
		<link>http://mattsprinsky.com/blog/2008/12/12/blackboard-loves-ldap/</link>
		<comments>http://mattsprinsky.com/blog/2008/12/12/blackboard-loves-ldap/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 19:22:12 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Things with blinky lights]]></category>
		<category><![CDATA[Wage Slavery]]></category>
		<category><![CDATA[blackboard]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[ldap]]></category>

		<guid isPermaLink="false">http://mattsprinsky.com/blog/?p=122</guid>
		<description><![CDATA[On December 22nd, as soon the time rolls from 2008-12-22 7:59 to 2008-12-22 08:00, our seven Blackboard application servers will be changed over to authenticate against LDAP instead of the standard Blackboard RDBMS (passwords stored in the Oracle database).  This transition is not without issues, and this blog post will serve to inform FTRC [...]]]></description>
			<content:encoded><![CDATA[<p>On December 22nd, as soon the time rolls from 2008-12-22 7:59 to 2008-12-22 08:00, our seven Blackboard application servers will be changed over to authenticate against LDAP instead of the standard Blackboard RDBMS (passwords stored in the Oracle database).  This transition is not without issues, and this blog post will serve to inform FTRC members of several support scenarios and other important information on how to handle them.  <strong>Support Personnel: Please be sure to read this post throughly, and feel free to ask questions in the comments.</strong><br />
<span id="more-122"></span></p>
<h3>The Security Center and You</h3>
<p>On the test system (Coke) there is a new homepage module that everyone will see when they log in, it is called the security center.  Please log in to <a href="http://coke.zimm.uc.edu">coke</a> (link only works on campus!) and see things for yourself.  You&#8217;ll need an account on coke to do this, and you&#8217;ll login with your 6+2 and current LDAP/OneStop/etc. password. The Security Center was something I wrote to provide feedback about password related issues such as expiration and grace logins.  If the user&#8217;s password is expires, but they still have grace logins remaining on their account, they will be able to login to Blackboard but it will consume a grace login and decrement the user&#8217;s grace logins available by one.  By default, all UC accounts provide six grace logins, and therefor users have six logins before they are locked out and <strong>must</strong> change their password.  I am investigating a way to display grace login and password expiration date in SysOp, but it&#8217;s not there yet.</p>
<h3>Things to look for in SysOp</h3>
<p>Examine <em>Unique Ids Source</em> when you lookup the user&#8217;s data.  There is a known issue with accounts coming from &#8220;B &#8211; Grandfathered Beecher accounts&#8221;, those accounts do not exist in the LDAP tree that Blackboard authenticates against, and the caller should use their standard 6+2 login name with blackboard instead.  This issue should be very rare.  When Blackboard attempts to authenticate these users against LDAP, they will be treated in the same way as visitor and other non-LDAP accounts, meaning Blackboard will fall back to their RDBMS (database) password.  If the user wishes to continue using the account, inform them they must login with the same password as they did before the conversion to LDAP since their account is being handled as a non-LDAP account.</p>
<p><strong>Sysop showing my LDAP-authenticated account</strong>: if the password is expired, there will be a message showing it&#8217;s expired<br />
<a href="http://mattsprinsky.com/blog/wp-content/uploads/2008/12/sysop-ldap-user.png"><img src="http://mattsprinsky.com/blog/wp-content/uploads/2008/12/sysop-ldap-user-300x145.png" alt="" title="sysop-ldap-user" width="300" height="145" class="aligncenter size-medium wp-image-154" /></a></p>
<p><strong>Sysop showing showing a non-LDAP account</strong><br />
<a href="http://mattsprinsky.com/blog/wp-content/uploads/2008/12/sysop-user-not-in-ldap.png"><img src="http://mattsprinsky.com/blog/wp-content/uploads/2008/12/sysop-user-not-in-ldap-300x183.png" alt="" title="sysop-user-not-in-ldap" width="300" height="183" class="alignnone size-medium wp-image-155" /></a></p>
<p>Here are a few scenarios that could occur when a user calls with password issues, beyond the standard bad password errors you are accustomed to. </p>
<h3>First Scenario</h3>
<p>User is unable to log in and receives message a message that their password is expired. The user&#8217;s password has expired and they have no grace logins remaining.  The user must visit the UCit Password Self Service portal and reset their password, or contact the UC Help Desk for further assistance.<br />
<a href="http://mattsprinsky.com/blog/wp-content/uploads/2008/12/password-expired-no-grace-logins-remaining1.png"><img src="http://mattsprinsky.com/blog/wp-content/uploads/2008/12/password-expired-no-grace-logins-remaining1.png" alt="" title="password-expired-no-grace-logins-remaining1" width="269" height="277" class="aligncenter size-medium wp-image-149" /></a></p>
<h3>Second Scenario</h3>
<p> User&#8217;s password is expired, but they were able login by consuming a grace login.  Immediately advise the user to visit the UCit Password Self Service before they run out of grace logins.  <strong>Nota bene:</strong> logging in to Password Self Service with an expired password <strong>requires</strong> at least <strong>one available grace login!</strong> If the user has just used their last grace login by logging in to Blackboard, and the Security Center displays a value of zero (0) for remaining grace logins, the user must contact the UCit Help Desk to reset their account.<br />
<a href="http://mattsprinsky.com/blog/wp-content/uploads/2008/12/password-expired-using-grace-logins.png"><img src="http://mattsprinsky.com/blog/wp-content/uploads/2008/12/password-expired-using-grace-logins-300x127.png" alt="" title="password-expired-using-grace-logins" width="300" height="127" class="aligncenter size-medium wp-image-126" /></a></p>
<h3>Third scenario</h3>
<p>User&#8217;s password will expired in less than the warning period (160 days in this case, but it is set to 7 days on the production system, this is for illustration only.) Advise the user to visit the UCit Password Self Service before their password expires.</p>
<p><a href="http://mattsprinsky.com/blog/wp-content/uploads/2008/12/password-ok-warning-period-reached-warning-period-set-to-160-days-instead-of-7.png"><img src="http://mattsprinsky.com/blog/wp-content/uploads/2008/12/password-ok-warning-period-reached-warning-period-set-to-160-days-instead-of-7-300x130.png" alt="" title="password-ok-warning-period-reached-warning-period-set-to-160-days-instead-of-7" width="300" height="130" class="aligncenter size-medium wp-image-133" /></a></p>
<h3>Fourth Scenario</h3>
<p>All is well, user&#8217;s password will expire within the configured seven-day warning period. I guess it&#8217;s not really a scenario at all.<br />
<a href="http://mattsprinsky.com/blog/wp-content/uploads/2008/12/password-ok-everything-ok.png"><img src="http://mattsprinsky.com/blog/wp-content/uploads/2008/12/password-ok-everything-ok-300x91.png" alt="" title="password-ok-everything-ok" width="300" height="91" class="aligncenter size-medium wp-image-134" /></a></p>
<h3>Password Resets for accounts</h3>
<p>Can be done through the UCit Password Self Service portal, or by having the user contact the UCit Help Desk.</p>
<h3>Security Center and non-LDAP accounts</h3>
<p>Security Center displays a message that the user&#8217;s password will not expire.  Eventually this module will be hidden for non-LDAP authenticated user accounts.  Of course, that &#8220;eventually&#8221; may be before December 22nd, but not at the time of the writing of this document.</p>
<h3>Password Resets for non-LDAP accounts</h3>
<p>I am currently doing the engineering before coding my own password reset utility for Blackboard to accommodate the fact that the built-in password reset functionality is not available when bb-config.properties is configured for LDAP authentication.  This is very frustrating and I may give Blackboard a call to see if they can tell me how to force it on even with LDAP turned on.  If this functionality is not restored, password resets for non-LDAP users will to be handled by the FTRC Blackboard Support Team via phone.</p>
<h3>In Conclusion</h3>
<p>If you run into issues not covered by this post, please feel free to come find me and ask.  Once we solve the issue, we might even add it here.  Consider this an experiment in work blogging.  I&#8217;m looking forward to your comments on this post.</p>
]]></content:encoded>
			<wfw:commentRss>http://mattsprinsky.com/blog/2008/12/12/blackboard-loves-ldap/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
