RMOUG 2014

Written by klee on January 3rd, 2014

If you are in the Denver area February 5 – 7, consider going to Rocky Mountain Oracle Users Group’s Training Days. This must be the best deal for two days of sessions on just about every facet of Oracle.

Date: February 5-7
Location: Denver Convention Center

Hope to see you there!

 

Moving On Again

Written by klee on April 14th, 2013

I have changed employers, as if you couldn’t tell by the scarcity of posts over the last nine months! I am no longer working with Oracle Content Server. Other than the difficult to use Site Studio, I believe Content Server is a really great platform to drive data management. But all good things do come to an end eventually.

I am currently working with very large datasets on Oracle. I also write more shell script code, mostly Korn shell and also perl for more complex tasks. I was never a fan of perl, as many are not fans of Java. I have a new found respect for this all purpose Swiss Army Sledge Hammer!

I will more than likely be changing the title of this Blog as WebCenter Content is no longer the focus of my work. More likely to be Java/SOA and Quick Hacks to get the job done, or something along those lines.

For those that were curious, I actually took the photo that is displayed at the top of this Blog. This is one of my favorite catch and release fishing spots located just a few miles north of Lake City, Colorado. Hope to be back there soon!

 

Groovy, well, is just groovy.

Written by klee on June 15th, 2012

At some point in your programming career, you will probably need to use an MD5 hash. Most likely just to get the hash for a password.

One of the simplest ways is to use groovy. Here is the code. Don’t even need to put it in the download section. Just copy the code to a file and run it.

import java.security.MessageDigest

srcWord = "password"

if (args.length > 0) {
	srcWord = args[0]
}

println "src: " + srcWord
MessageDigest md5Digest;
byte[] digest;

println "\n****************************************\n"

/* MD5 Code */
md5Digest = MessageDigest.getInstance("MD5");
md5Digest.reset();
md5Digest.update(srcWord.getBytes());
digest = md5Digest.digest();

// println "new BigInteger(1,digest).toString(): " + new BigInteger(1,digest).toString()
println "MD5: " + new BigInteger(1,digest).toString(16)
println "MD5/B64: " + digest.encodeBase64().toString()

println "\n****************************************\n"

/* Now do the same thing for SHA-1 */
md5Digest = MessageDigest.getInstance("SHA-1");
md5Digest.reset();
md5Digest.update(srcWord.getBytes());
digest = md5Digest.digest();
// println "src: " + srcWord
// println "new BigInteger(1,digest).toString(): " + new BigInteger(1,digest).toString()
println "SHA-1: " + new BigInteger(1,digest).toString(16)
println "SHA-1/B64: " + digest.encodeBase64().toString()

println "\n****************************************\n"

/* Now do the same thing for SHA-256 */
md5Digest = MessageDigest.getInstance("SHA-256");
md5Digest.reset();
md5Digest.update(srcWord.getBytes());
digest = md5Digest.digest();
// println "src: " + srcWord
// println "new BigInteger(1,digest).toString(): " + new BigInteger(1,digest).toString()
println "SHA-256: " + new BigInteger(1,digest).toString(16)
println "SHA-256/B64: " + digest.encodeBase64().toString()

println "\n****************************************\n"

/* Now do the same thing for SHA-512 */
md5Digest = MessageDigest.getInstance("SHA-512");
md5Digest.reset();
md5Digest.update(srcWord.getBytes());
digest = md5Digest.digest();
// println "src: " + srcWord
// println "new BigInteger(1,digest).toString(): " + new BigInteger(1,digest).toString()
println "SHA-512: " + new BigInteger(1,digest).toString(16)
println "SHA-412/B64: " + digest.encodeBase64().toString()

println "\n****************************************\n"
 

UCM: Search, GetFile, Checkin with PL/SQL

Written by klee on June 5th, 2012

“Proof of concept” programming in many cases is the first draft of a finished product. Several of my starter programs are in the download section of this blog. They are PL/SQL programs that demonstrate simple Checkin, GetFile, and Search functionality. Besides using RIDC, when needing to retrieve content or Check-in content, these little programs can really help.

These are just proof of concept programs, so you will need to add any additional logging. Also, this program uses functionality originally found in flex_ws_api. This can be found on Jason Straub’s blog. Flex_ws_api has also been incorporated into Oracle’s Application Express in the APEX_WEB_SERVICE API. This code has also found its way into Alexandria, a PL/SQL Utils library.

With just a few additional lines of code, you can pull documents out of a database, and check them into UCM. All with PL/SQL code.

 

Database Hick-up

Written by klee on May 22nd, 2012

I lost posts going back to November 2011. I have the titles, so I will try to recreate some of this content in the next few days. 🙁

 

Website launch delayed. It wasn’t me, really!

Written by klee on August 18th, 2011

UCM website launch was delayed until September 6th. Now that there are containers and departments are responsible for their own data, the launch progress came to a crawl. People are finally realizing that there is work involved in owning your own data. What a surprise… NOT!

Still working full speed+ on the website, and it is looking good. Now if we could only speed up the searches!

So far, the best piece I coded was the lunch menu display. I used two jQuery plugins: A calendar component, and prettyPhoto. I display the food being served each day in schools in the jQuery calendar plugin. The data was created in an APEX application to populate the backend tables. A little materialized view magic later, and the data is available as a JSON feed from a service call to UCM using the IsJson=1 parameter on the service. I use pretty photo to display a list of food properties (similar to the side panel of a cereal box), and a graphic – also fed by a UCM service call. I’ll post the code for the calendar and popup display with a mockup JSON file for data in a few days. I spent way to much time getting this just right. Better to do a job right the first time, then to spend additional days, sometimes weeks coding again…

 

Site Studio

Written by klee on July 7th, 2011

I’ve been really busy with Oracle Development work. To be more specific – UCM.

Just over two weeks to go before my employer launches a new UCM Website that is built with Site Studio. I think the most difficult part of this project was to not develop a site with any pre-conceived notion of how to do it, but to let go, and do things the Site Studio way. Still working on that part.

I believe we will have a successful launch, but I am not completely satisfied with the site. I really like UCM, but Site Studio puts way too many limitations on the contributors who must enter in the content. I’m sure many Oracle folks may balk at that, and yes, there are many easier ways to edit data, but they are fairly pricey and we just couldn’t afford it.

Maybe the next iteration will simply be a Drupal based Web site that uses UCM data via Service calls to get JSON data. I think this would be much more easy, and would have saved a lot of heartache and money.

Then again, this is the last “just over two weeks left” push. Working late seems normal at this point.

I’m sure looking forward to about three weeks from now!

 

UCM 11g – Upgrade in Process

Written by klee on April 19th, 2011

Just started working on upgrading from Oracle’s UCM 10gR3 to 11g. The upgrade is going well. I am following the migration guide from Oracle. So far so good. I’ll let you know what problems I run into!

 

RMOUG – First University Session

Written by klee on February 15th, 2011

Went to my first University session today. Brad Brown presented on creating applications for Android devices. The topic was very timely as more organizations are working on a way to display content on mobile devices.

Where the presentation excelled, was in explaining the trials and errors that Brad had gone through in developing mobile applications that would make money. This was very interesting to hear, and Brad really drove the point home that this is a prime market to be in. Can’t wait to start developing! Can’t wait to get my first Droid phone in April!

 

Server down for upgrades

Written by klee on January 27th, 2011

With the price of hard drives to new lows, I purchased two 2 TB drives for $79.00 each. I also picked up a promise sata II card. I have been spending time at work while my server worked on updating the new drives with data. I now have two 1 TB drives and two 2 TB drives mirrored with raid 1 using mdadm under Ubuntu. Sorry for the downtime!