Author Archives: Rich Soule

How to get the Oracle Linux ISO from Oracle’s Software Delivery Cloud

Update from April 2014: This post has been superseded by this post: Oracle Database 12c on Oracle Linux 6

 

This is Step 2 in my 13 step process for creating an Oracle Education classroom environment using VirtualBox.

Here’s the previous step, Installing Oracle VirtualBox on Windows 7.

In this step we are going to get the Oracle Linux ISO from Oracle’s official Software Delivery Cloud called eDelivery. There are actually two Oracle Software Delivery Clouds (or at least two sections), one if for Oracle’s general software, and the other is for Oracle Linux, Oracle Virtual Machine and Oracle Virtual Machine templates. You reach the first site (we’ll go there later) at  http://edelivery.oracle.com and you reach the second (the one we are going to us now) by going to http://edelivery.oracle.com/linux. (Note the extra /linux on the end.)

We’ll actually be using the Oracle Linux 5.8 DVD image, not the Oracle Linux 6.3 image that is currently available (at the time of this writing). While Oracle Linux 6 is now certified for the Oracle Database, Oracle has yet to release some of the nice scripts (oracle-validated for example) for Oracle Linux 6. Oracle is going to be building new scripts (RPMs actually) which instead of being generic Oracle RPMs are instead going to be targeted at specific products like Oracle Database and WebLogic. So we’ll have ‘ oracle-rdbms-server-11gr2-preinstall’ and probably other RPMs for doing all the stuff required to set up the Oracle environment correctly for an Oracle Database install on Linux. But for now, Oracle Linux 5 has the oracle-validated RPM available and since we’re really much more concerned about our Oracle Database environment instead of having the latest and greatest Linux version, we’re just going to stick with Oracle Linux 5.8. Note that if you do decide to go down the Oracle Linux 6.3 path, you’ll also need a different version of Oracle 11g R2, Oracle 11.0.3 which is currently only available from Oracle support.

Let’s get started:

  1. Navigate to https://edelivery.oracle.com and click Sign In / Register.

    Oracle Software Delivery Cloud - Oracle Linux and Oracle VM

    Oracle Software Delivery Cloud – Oracle Linux and Oracle VM

  2. Enter your Username and Password and click Sign In. Obviously if you don’t yet have an Oracle.com account, you can go through the registration process to create one by clicking the Sign Up link.

    Oracle.com Sign In

    Oracle.com Sign In

  3. Agree to both the terms of service and the export restrictions and click Continue.

    Terms and Restrictions Agreement

    Terms and Restrictions Agreement

  4. Choose Oracle Linux from the Select a Product Pack drop down and x86 64 bit from the Platform drop down and click Go. If you are installing on a 32 bit system, you can download the 32 bit software.

    Media Pack Search

    Media Pack Search

  5. In the results list find the Oracle Linux Release 5 Update 8 Media Pack for x86 64 (64 bit) link and click it.

    Oracle Linux 5 Update 8

    Oracle Linux 5 Update 8

  6. Click the first Downloadbutton in the Select column to download the ISO for Oracle Linux Release 5 Update 8 for x86_64 (64 Bit).

    Linux 5 Update 8 Download

    Linux 5 Update 8 Download

  7. Click OKto download the ISO.

    Download Dialog

    Download Dialog

  8. Wait for the download to complete. This will take a while depending on the speed of your connection.

    Download Progress

    Download Progress

We’ll be using this ISO image during the install of Oracle Linux. I often move the file to a more appropriate location than my downloads folder, but since we’ll be able to delete the file once we’ve finished with the Linux install it’s not that important to move it. If I decide that I’ll be keeping the file around for other installations, then I rename the file. Oracle_Linux_Release_5_Update_8.iso is a lot easier to figure out months down the road than V31120-01.iso.

Note that even though this is a DVD image that could be burned to DVD, there is no reason to do this as Virtual Box can use the file directly.


Installing Oracle VirtualBox on Windows 7

Update from April 2014: This post has been superseded by this post: Oracle Database 12c on Oracle Linux 6

 

This is Step 1 in my 13 step process for creating an Oracle Education classroom environment using VirtualBox.

I used Oracle VirtualBox to create my classroom environment for a few reasons:

  • VirtualBox is simple to install.
  • VirtualBox allowed me to create an environment that closely matched the Oracle Education training material. I could basically ignore the physical machines that I was using.
  • Snapshots created before each lesson would allow the students to quickly move backwards or forwards should they miss a lab or make a mistake with their environment.
  • It was really easy to copy the created virtual machine to my student’s machines.

This post is mostly here for a completeness standpoint as installing VirtualBox is really straight forward. Also note that while the version below is 4.1.16 at the time this was written, you should grab whatever the current version is from the site when you complete this step.

  1. Open VirtualBox.org in a browser and click on the Downloads link in the left menu.

    VirtualBox.org Home Page

    VirtualBox.org Home Page

  2. Click the x86/amd64link next to the VirtualBox for Windows hosts bullet.

    Windows Download

    Windows Download

  3. Click Save File.

    Save File

    Save File

  4. Double click the fileyou just downloaded. I used Firefox to download the file, so I can just double click the file from the Downloads window.

    Doubleclick file in downloads window

    Double click file in downloads window

  5. Depending on your security settings, Windows may ask you what you want to do with the file. Click Run.

    Run the file

    Run the file

  6. Click Next.

    Welcome Screen, click Next

    Welcome Screen, click Next

  7. Click Next.

    Custom Setup, click Next

    Custom Setup, click Next

  8. Click Next.

    Create Shortcuts, click Next

    Create Shortcuts, click Next

  9. Click Yes.

    Network Interfaces, click Yes

    Network Interfaces, click Yes

  10. Click Install. Depending on your security settings, Windows User Account Control may ask if you want to allow the program to make changes to your computer, click Yes if it does.

    click Install

    Click Install

  11. Uncheck the Start Oracle VM VirtualBox after installation checkbox and click Finish.

    Click Finish

    Click Finish

  12. If the Program Compatibility Assistant pops up, click This program works correctly.

    Program Compatibility Assistant, click This program works correctly

    Program Compatibility Assistant, click This program works correctly

  13. Back in the browser, click on the All platforms link next to the VirtualBox Extension Pack bullet.

    Extension Pack link

    Extension Pack link

  14. Click OKto open the extension pack with VirtualBox.

    Open Extension Pack, click OK

    Open Extension Pack, click OK

  15. Click Install. (Note the image below has Upgrade instead of Install because of a previous installation).

    VBox Question, click Upgrade

    VBox Question, click Install

  16. Scroll down to the bottom of the license agreement and click I Agree. If Windows User Account Control asks you if you want to allow the following program to make changes to this computer, click Yes.

    License Agreement, click I Agree

    License Agreement, click I Agree

  17. Click OK.

    Click OK

    Click OK

As I mentioned at the beginning, installing Oracle VirtualBox is pretty straight forward. You can leave VirtualBox open for now as we’ll soon be using it create our virtual machine.

But first we have to download an Oracle Linux ISO to use as our boot media. To learn how to do that, go to Step 2 of my 13 step process for creating an Oracle Education classroom environment using VirtualBox.

You can now proceed to the next step in the process, How to get the Oracle Linux ISO from Oracle’s Software Delivery Cloud.


Using Oracle VirtualBox to create an Oracle Education classroom environment

Update from April 2014: This post has been superseded by this post: Oracle Database 12c on Oracle Linux 6

 

I created this blog last year so I could write down the steps taken to create an Oracle Education classroom environment using Oracle VirtualBox. I teach Oracle Education classes for Austin Community College (ACC) and also for RFD & Associates, Inc. under a program called the Workforce Development Program. You can see my previous blog post for a description of the Workforce Development Program. Tomorrow I’m teaching a class at ACC to do all of the below with my students from the DBA I and DBA II courses plus a special guest, so I thought it was finally time to start getting this all down.

There are a number of steps to create the classroom environment. Over the next few weeks I intend to write a post for each of the steps. As each post is written, I’ll update each step in the list below to point to those posts.

Here’s the steps that I took to create the classroom environment:

  1. Download and install Oracle VirtualBox including the Extension Pack.
  2. Download the Oracle Linux ISO from edelivery.oracle.com/linux.
  3. Create a virtual machine running Oracle Linux.
  4. Create a local yum repository from the DVD content and add asmlib downloaded from linux.oracle.com.
    While you could just use an online repository instead of a local repository, the local repository allows you to install RPMs even if you are not connected to a network. I find this is nice from time to time, and we are more worried about the Oracle Database than we are about having the most up to date Linux environment.
  5. Install asmlib, asmsupport, and the oracle-validated RPMs and create the required directories including a stage directories for Oracle Grid Infrastructure and Oracle Database.
    We’re also going to make the Linux User IDs and Group IDs match the training material.
  6. Install Oracle VirtualBox Guest Additions.
  7. Install rlwrap.
    Optional, but oh so nice.
  8. Create the ASM disks and then configure and start ASM.
  9. Configure the Oracle user’s environment including a really nice login.sql script.
  10. Download Oracle Grid Infrastructure and Oracle Database 11g R2.
  11. Install Oracle Grid Infrastructure and create a +FRA (Fast Recovery Area) disk group in addition to the +DATA disk group.
  12. Install the Oracle Database software.
  13. Use the Database Creation Assistant to create a Database instance.

If you follow the above steps, you’ll have a training environment that matches the Oracle training material for the majority of  the Oracle Database Administrator training classes (but not all, for instance the Real Application Clusters or RAC class is obviously a bit different).


Delivering Oracle Education through the Workforce Development Program

I teach the Oracle Certified Professional (OCP) courses at Austin Community College (ACC). ACC offers the exact same course material as Oracle Education through an Oracle program called the Workforce Development Program (WDP). I also offer Oracle technology training through RFD & Associates, Inc. on a customized basis for your organization. RFD & Associates is also a WDP partner.

There are two main differences between the Oracle Education program and the Workforce Development Program.

The most important difference is that courses offered by a Workforce Development Program partner can only be delivered at a maximum rate of 12 hours per week. The Oracle Education program typically offers courses in a 1 week full time format (around 40 or so hours). It’s great for folks who can spend that much time away from work, but it does have some drawbacks with regards to time commitment and also with regards to cost. Also many folks find that 40 straight hours of Oracle training can be a bit like drinking from a fire hose. With the Workforce Development Program at ACC we take a much more relaxed pace with 20 classes of 3 hours each (2 per week) for a total of 60 hours per class. At RFD we can build a timeline that works for you. Would you like three 4 hour days per week? Would you like two 12 hour days? Do you want to do 12 hours on Friday and Saturday and then another 12 hours on Sunday and Monday? Basically we can put together something that works for you as long as we don’t go over 12 hours per week per class.

The other difference is that when you take a class through Oracle Education (or one of it’s partners), you are connecting directly into servers that Oracle runs internally. This is nice as they tend to be very nice servers with lots of resources. Of course set up time for the organization offering the training is very low. You ask Oracle to provision the servers for your students and they do so. Very easy! However, there are some downsides. Once the class is over, your server is gone. This means that if you want to do some extra work or practice for the certification exams, you are on your own. At ACC and RFD we use Oracle VirtualBox to create a virtual environment for the training. While the default at ACC is to use the ACC classroom computers to run the VirtualBox training environment, you are free to use your own laptop if you wish. At RFD we can either use our computers or your computers. If you use your own computer you have the flexibility to work on the exercises and practice for the exams outside of class time. The downside, of course, is that your laptop or desktop is sometimes a bit slower than the Oracle internal servers. Sometimes this means that a lab exercise will take a bit longer to run.

If you have any questions about getting Oracle Education through the Workforce Development Program either from ACC or RFD, please feel free to reach out to me.


Thoughts on my install of Oracle Restart, Oracle Automatic Storage Management and Oracle Database 11g R2 on 64 bit Windows 2008

Last week I spent some time with a client installing Oracle on their production servers. I’ve done lots of installs using Unix/Linux, but it had been a long time since I had done anything on Windows. Windows is supposed to be a whole lot easier than Linux, right?

We started by formatting the database storage disks into two sections, using the inner cylinders for our planned Fast Recovery Area (+FRA) and then the outer cylinders for the database data files (+DATA). Of course we formatted the disks and gave them nice descriptive names, only to find out later that although you format the ASM disks on Linux/Unix, you don’t format them on Windows. Windows wants raw disks. Which makes sense because NTFS really isn’t the greatest…

Once we finished formatting the disks the correct way, we went ahead and created the oracle user and added oracle to the Administrators group. We then installed the Grid Infrastructure and created the DATA disk group for ASM. Once the install was finished we went ahead and added the FRA disk group. With everything in place, the next step was to install the database.

There were two tricks during the database install, one we found by reading the release notes and install documentation, and the other we ended up not discovering until the next day. The first trick is that even though the oracle user was a member of the Administrators group, you should still right click on the cmd.exe icon and choose Run as administrator from the context menu. Everything progressed along nicely until we go to the portion where the Database Configuration Assistant tried to create the database. DBCA gave us the following warning:

Database Configuration Assistant: Warning
PRCR-1006: Failed to add resource ora.orcl.db for null
PRCR-1071: Faild to register or update resource ora.orcl.db
CRS-0245: User doesn't have enough privilege to perform the operation.

That seems strange… oracle is a member of the Administrators group and we started dbca from an Administrative command prompt, why are we getting this warning? It doesn’t look like a good warning, but it was just a warning, so let’s continue and see what happens… After a few more warnings dbca completed, but it was obvious that the installation didn’t work correctly. We used the new oracle deinstall command for Windows and gave the install another shot, only to run into the same errors. This time we decided to see what Google had to say. Searching for those errors didn’t turn up much help in the Windows world. Most folks who have seen those errors before were using Linux and they were having problems with the required groups. Nobody else seemed to be running into those errors on Windows… After asking around a bit and doing some more searching, we decided to take a step back and review everything to make sure we on track. Step 1: Make sure oracle is in the Administrators group. Imagine our surprise to find out that oracle wasn’t a member of Administrators! I was positive that we’d done this first thing in the morning, but apparently we hadn’t. Did I click Cancel instead of OK or something? Who knows… but at least we figured out why the install was working. After adding oracle (back?) into the Administrators group, everything worked just fine. We finished up the install and started getting the database ready for the migrated content from the old system which took us to the end of the day.

The next day we logged into Enterprise Manager Database Control (EM) and attempted to create some export directories using EM. We’d already stored the credentials for the oracle user in EM but for some reason they were no longer working. That’s strange, why not? It was working just fine yesterday… We did some testing and found out that we could configure EM with a different Administrator account and things would work, but not oracle. What was going on? It didn’t make any sense at all! OK: Start at the beginning. Step 1: Check to make sure that oracle is a member of the Administrators group. This time I have to say that I wasn’t as surprised as I was the first time when I saw that oracle was no longer a member of the Administrators group, but I was still curious as to what was happening. I turned to the network administrator only to see a very sheepish grin on his face. It turns out that the organization had configured a domain rule to remove administrator privileges from unknown users. This would run a couple of times a day and we had run into in the middle of the day during our first install and again on our second day. Once we fixed this by adding oracle to the list of known administrators, everything worked just fine again.

So, lessons learned:

  1. ASM on Windows uses raw storage.
  2. Run your cmd commands as administrator.
  3. Make sure there are no funky domain rules to remove administrator privileges from oracle!

My hope is that the next person who runs into this on Windows finds this post. Maybe not… but at least I’ll never forget as writing the blog post and having the experience of the install gives me a better chance of remembering this in the future.


24 Hours of Lemons Racing

The 24 Hours of Lemons is a race held over 2 days where contestants build a $500 car and race it against others on a road course. Safety equipment doesn’t count towards the $500, so it is (usually) very safe. I’d been driving on tracks for years before I gave wheel to wheel racing a try and I can honestly say that there is nothing like it. Going through a tight corner on a road course 3 wide with less than an inch between you and the cars on either side of you is thrilling in a way that almost nothing else is. I’ve been sky diving before and racing is more of a rush than sky diving.

Normally I’m not really into these, but this just hit too close to home. Yes, that is me in the last picture.

Here’s me driving the Blue Goose on track before that picture was taken:


Corner Worker Looks – How many can you do per lap?

It’s time for a post about cars, this time for something that I call Corner Worker Looks.

So, what’s a Corner Worker Look? Any time you are driving on track and you look at a corner worker, you’ve just done a Corner Worker Look. This doesn’t mean that you have counted the lines on the corner worker’s face, only that you’ve glanced in their direction and you know that they are doing either nothing or something. Obviously if they are doing something, then you take that extra fraction of a second to see what they are doing. Are they standing up? Sitting down? Moving? Not moving? Waving a flag? Holding a flag in their hand, but not waving it? You get the idea.

The next time you’re at the track, ask 10 different drivers how many corner workers (or lights, as some tracks use lights instead of corner workers) are at the track. I’d be willing to bet that you if ask 10 different people, you will get multiple answers. That shouldn’t be the case, of course, as there is only one correct answer to the question. If you then follow up that question with “How many times per lap do you look at the corner workers?” I can guarantee that you will get a bunch of different answers. This question doesn’t necessarily have a single ‘right’ answer. As long as the answer is equal to or higher than the number of actual manned corner worker stations, then you’ve been given a ‘correct’ answer. However, just because an answer is correct, doesn’t mean that it’s the best answer. What’s the best answer? In general, the higher the answer, the better.

We look at corner workers when out on track because (in my opinion) corner workers are by far the most important thing to pay attention to when driving on track. Corner workers save your life. When you enter turn 2 at Texas World Speedway (TWS) in excess of 130 MPH, it’s the corner worker that lets you know that there is something around the corner that you can’t see yet blocking the track. Without the corner workers telling you what’s going on, driving on a track would be much more dangerous.

On a track with 8 manned corner worker stations (Texas World Speedway for example), I do 27 corner worker looks each and every lap. When I tell the students how many times I look at the corner workers per lap, I get a varied reactions. With new students I usually get a “How do you do that?” With more advanced students I get everything from “How can I do that?” to “That’s impossible and/or unnecessary.”

In addition to looking at the upcoming corner work, sometimes I’m looking 3 to 8 corners ahead of me, sometimes I’m looking a few corners behind me. I do this by setting a CWL Spot (Corner Worker Look Spot) at a specific place on the track. Every time I go over that spot I take a few hundredths of a second to see what the corner worker is doing. There are plenty of times that I’ll have line of sight to a corner worker that is so far away that I won’t be able to see exactly what kind of flag that they have, but I’ll often be able to tell if they have a flag or not. If they do have a flag, then I know that something is happening. The more I know about what’s going on at the track, the better I’m able to drive.

Did a corner worker behind me just throw a checkered flag indicating the end of a session? If I’m racing in a time trial, then I know that this is either my last lap to set a fast time or that I won’t be able to set a faster time than I already have, so I should back off and not run the risk of a spin. If I was only looking one corner ahead, then I wouldn’t have this information. Even more important, did the corner worker behind me just throw a red flag? It’s possible for different corner workers to respond at different speeds, so by looking at corner workers that I’ve already passed, I may learn something earlier than if I was waiting for the next corner worker.

I look so far ahead and behind because it gives me more information. Recently at TWS I was coming out of turn 2 and I was able to see that:

  1. Turn 10 had no flag. (Corner worker F in the image).
  2. Turn 8 had a yellow flag and a debris flag. (Corner worker E in the image).
  3. Turn 4 had a debris flag. (Corner worker B in the image).

BTW, turn 7 is one of the fastest and most dangerous turns in Texas. It’s got severe on camber banking and a very dangerous track out. I’ve pulled 1.7 Gs going through turn 7 in my car. Coming out of turn 7 (very fast) you only have a small window to see the corner worker in 8 before you are past them…

So what did I know?:

I knew that there was something on the track ahead between turn 4 and turn 8. I knew that there was some kind of incident (car off track, and I saw the car and where it was) between turn 8 and turn 10. I knew that I wasn’t going to be flying through turn 7 at full speed. I knew that there might be something (probably debris, could be oil or coolant especially as there was a car stopped off line between turn 9 and turn 10) BEFORE turn 4 on the track even though the corner worker in 2 didn’t have a debris flag as the debris flag could have gone up just as I passed the corner worker in turn 2.

By looking so far ahead I was able to be more prepared than most of the other drivers on the track. Especially those who were looking only one corner ahead.

Most drivers spend way to much of their visual energy focused on the car in front of them. Most drivers also don’t look as far ahead and behind as they could.

So here’s my challenge: How many CWLs can you do at your local track?

Below is my CWL map for Texas World Speedway. Each manned corner worker station is labeled with a letter from A to H. Frequently the corner worker station at the start finish line isn’t manned, but I always look, just in case it is. Each yellow dot is very near to the spot on track where I have a planned CWL Spot. Each is labeled with the corner worker letter that I’m looking at followed by the total number of times I’ve looked at a corner worker that lap. It starts with A-1 (yes, you can look through the garage structure as you cross start finish and see the corner worker in turn 2) and ends with H-27. That’s 27 looks a lap. If you have not been to TWS, there is quite a bit of elevation change on the track which let’s you see quite far at times.

Let me know what you think!

Texas World Speedway with Corner Worker Looks

Texas World Speedway with Corner Worker Looks


Intercontinental Ballistic Microfinance

Data Visualization is a hobby of mine. I’ve got Visualizing Data and The Elements of Graphing Data by William S. Cleveland sitting just a few feet away from me. They really are two of the best books on presenting information that you can buy.

When small sets of data are presented it is often in a simple report or maybe a chart. But how do you present 5 plus years of data between 620,000 lenders and 615,000 borrowers? That’s 4,033,920 loan connections! While a simple report or chart can easily convey high level summary information of vast amounts of information, adding animation for time and color for categorization really makes the data come alive.

This video shows a great way to do just that. Color and animation really elevates the simple data (This lender sent money to this borrower on this date, and this borrower repaid their loan on this date) into information. I find this fascinating to watch. Beware, there is sound so if you are checking out Cars and Code from work you might want to turn down your speakers or mute them. The video looks great in full screen on a big monitor in High Def. You have to go to the Vimeo site to watch it in HD. Just hover over the video and click the word Vimeo and it will take you to a page where you can watch this in HD. I love the explosion of loans that happens in the fall of 2006 when Kiva is shown on Frontline.

BTW, a few of those loans are mine. Kiva is a great site that allows borrows and lenders to connect. Kiva takes nothing from the money you lend and charges nothing to the field partners who handle the borrowers loans. Kiva is supported by optional donations and from grants, corporate sponsors, and foundations. Kiva has recently added the ability for borrowers in the US to hook up with Kiva lenders worldwide.  You can join a Kiva team which is kind of fun. The team can set goals and discuss who they are lending to and why.

The best data visualizations are ones where the viewer changes their behavior. If you are not a member of Kiva, why not get started with Kiva today?


Cars and Code goes wide track

This site is best viewed at a resolution of 800 x 600. Ugh. If I ever see anything like that on a site, I’m gone in a flash. Yet today, many web sites seem to be built for a resolution of 800 x 600. Sometimes even smaller!

I have a 30″ monitor that I run at 2560 x 1600 resolution. I don’t say this to brag (OK, maybe just a little bit), but instead to bring up what I consider to be a big problem with many web sites. It’s really annoying to have a site that looks like the image on the right.

Cars and Code using the default Elegant Grunge Theme

Cars and Code using the default Elegant Grunge Theme on my big monitor

That’s a LOT of white space. Now this isn’t all that big of a deal unless the content requires you to scroll. If all the content that you want to read fits in one screen then a centered narrow screen isn’t really all that bad. But having to scroll through a LONG story/article and watching all that wasted white space go by is something that annoys me. This morning I read this article from East Bay Express on Yelp and the Business of Extortion 2.0. It was an interesting read [although I’m not sure you can trust everything you read on the internet… 😉 ], but the whole time I’m reading through the six pages(!) at 11 words or so a line, I’m thinking “Man, this would be so much easier to read if there was more content on the screen.” It got even worse when I started looking at the comments (all 223 of them) and my scroll bar turned into a tiny little sliver on the right edge of my browser. I do understand that less content on more pages gives a site more hits, but even if you click the link for Full Text it just dumps all six pages into that one narrow column. My conclusion: I’m probably not going to trust Yelp! as much as I have in the past and East Bay Express needs to use a wider format for it’s articles.

That’s not to say that you can’t go too far the other way. If you are reading on the internet (as opposed to just scanning) then it can get a bit hard to make the jump across a screen that’s 2560 pixels wide. When I read PDF documents on my computer I usually use the 2 page non-scrolling view, as just about half the screen on a 2560 pixel width monitor is the right width for me. To me the ideal web site, particularly with content that you will READ as opposed to SCAN, is one where the reader has the choice of how it will appear. Tyler’s blog is like that. He’s got a lot of code examples that look better on a wider screen. Anton’s blog is pretty good too. The whole screen is used even if the side bar on the right hand side is a bit wide. (Sorry Anton!)

I’m not sure why I ended up choosing WordPress to host Cars and Code. I actually have a few other sites on the web and I could have installed WordPress there instead of using the hosted server, but it just seemed so easy to use WordPress on their servers instead of mine. It took minutes to turn carsandcode.wordpress.com into carsandcode.com. They have a number of predefined themes and many of them are quite good. Unfortunately for me, I happened upon Michael Tyson’s excellent Elegant Grunge theme. For some reason I immediately liked it (as do over 111,200 other people using WordPress!). It really seemed to fit in with Cars and Code. Elegant Code. Grungy Cars. Check! Now I say unfortunately because Elegant Grunge is one of those ‘all your content gets mushed up into the middle of the page’ type of themes. I looked around at some other themes but just kept on coming back to Elegant Grunge.

Well it turns out that for a small fee you can upgrade your WordPress account to enable you to customize the CSS for your blog. I’m not a CSS expert by any means, but with just a few modifications of the CSS and a bit of playing in Photoshop I was able to increase the width of Cars and Code.

Here’s how:

There are three main images that make up the background of the theme: header.png, body.png and footer.png. If you have a side bar (like these blog posts) then you use the default images. If you have no side bar (like my About and Rich Soule Racing pages) then you use header-no-sidebar.png, body-no-sidebar.png and footer-no-sidebar.png. I’m not using the two sidebar style, nor the rtl style (right to left), but there are images for those too. Since I’m not using those, I didn’t modify them. That means that of the four choices for elegant grunge in Appearance -> Theme Options: Content-Sidebar, Sidebar-Content, Content-Sidebar-Sidebar, and Full Width (No Sidebar), these modifications only modify Content-Sidebar and Full Width (No Sidebar). If you want to use the other options then you’ll have to update the images yourself. With the default images and the two theme options I’m using, you get this:

Quick Specs (all measurements in pixels):

  1. One sidebar: main column width is 490, sidebar width is 220.
  2. No sidebar: main column width is 760.
Cars and code at 1024 x 768

Cars and code at 1024 x 768

This works if you have a really small monitor. You can actually fit the content section (minus the side bar) of the default Elegant Grunge theme on a 800 x 600 monitor. That’s cool… except SVGA (800 x 600 resolution) was introduced in 1989. That’s right, 1989. That’s before some of you were born… While 1024 x 768 was actually introduced in 1987, it became a standard with more adoption starting in 1990. Now were only talking about a resolution that is only two decades old. That said, an iPad2 has a screen resolution of 1024 x 768, so that became my compromise resolution. If the site was readable on 1024 x 768, I would consider it a success. But I’d like the content to use up as much as that 1024 width as possible while still looking largely like Michael’s theme. I used the Full Width (No Sidebar) theme option (which is used on the Rich Soule Racing Page, see the image at the left) as my test and at a content width of 955 pixels everything fit on the screen without much space to spare. When using the Content-Sidebar theme, I played around with sizes until the images for the date of the post didn’t overlap the vertical line separating the content body from the sidebar. By the way, Firesizer, a plug-in for Firefox was really helpful for looking at my site in different resolutions. (You are using Firefox and Firebug for development, right?)

A quick session with Photoshop (I tried Gimp first, but layers are so much easier in Photoshop than Gimp) stretched Michael’s images from their default resolution of 813 pixels wide for the body (there’s a bit of white space on each side of the image) to 1200 pixels wide. That’s an extra 387 pixels for content or a 47.6% increase in content width. That seemed about right. It’s not as good as letting the user choose how much content is on the screen, but it’s still a big increase over the default. I uploaded the images to my Media on WordPress.com, and then used the custom design upgrade to add my own CSS to Michael’s Elegant Grunge CSS. Custom CSS is loaded after the default CSS, so you can add just the CSS you need to modify to get the look you want. A quick search through the provided CSS showed me the locations where the header, body and footer images were being used and where the widths for content were being set. After a few minutes I had the below CSS in my Custom Design CSS window. I left the default of “Add my CSS to Elegant Grunge’s CSS stylesheet” checked and used 810 in the “Limit width to pixels for videos, full size images, and other shortcodes.”

Here are the six images that I modified: cac-header.png, cac-header-no-sidebar.png, cac-body.png, cac-body-no-sidebar.png, cac-footer.png, and cac-footer-no-sidebar.png. If you’d like to use this, please click each link, and then right click each image and save it to your computer. Then upload each image into your Media library on WordPress. Once you’ve done that you can click on each image name in the Media Library and you’ll see the URL for the image. Plug that URL into the code below, replacing each PUT-YOUR-MEDIA-LIBRARY-URL-HERE with the base portion of your URL. For instance if your media library URL for the cac-body.png is https://carsandcode.com/wp-content/uploads/2011/08/cac-body.png then you would update the second line below to background:url(‘https://carsandcode.com/wp-content/uploads/2011/08/cac-header.png’) no-repeat center;.

#header {
background:url('http://PUT-YOUR-MEDIA-LIBRARY-URL-HERE/cac-header.png') no-repeat center;
}
.no-sidebar #header {
background-image:url('http://PUT-YOUR-LIBRARY-MEDIA-URL-HERE/cac-header-no-sidebar.png');
}
#content-container {
background:url('http://PUT-YOUR-MEDIA-LIBRARY-URL-HERE/cac-body.png') center top repeat-y;
}
.no-sidebar #content-container {
background-image:url('http://PUT-YOUR-MEDIA-LIBRARY-URL-HERE/2011/08/cac-body-no-sidebar.png');
}
#content {
width:1150px;
}
#content-body {
width:810px;
}
.no-sidebar #content-body {
width:950px;
}
.post .entry {
line-height:1.5em;
}
#sidebar {
left:10px;
width:220px;
}
#footer-wrap {
background:url('http://PUT-YOUR-MEDIA-LIBRARY-URL-HERE/cac-footer.png') no-repeat center top;
}
.no-sidebar #footer-wrap {
background-image:url('http://PUT-YOUR-MEDIA-LIBRARY-URL-HERE/cac-footer-no-sidebar.png');
}
h1.entry-title,h2.entry-title {
width:700px;
}

After using the modified images and CSS, I get this:

Quick Specs (all measurements in pixels):

  1. One sidebar: main column width is 810, sidebar width is 220.
  2. No sidebar: main column width is 950.

What do you think? Is this better? Is anyone having issues now that the width is wider? Leave some feedback and let me know. Also, I know that these CSS and image modifications are not perfect. If someone else can come up with better numbers and/or images, please share and I’ll update the post.

P.S. This site is best viewed at 1280 (or wider)  x 1024 (or any other height you desire!) 😉

Edit: Added a line to increase the line-height after a suggestion by Designsimply on the WordPress forums. Also added some clarifying information about the theme options and why I chose the width I did.


Expert Oracle Application Express

Expert Oracle Application ExpressOne of the fundamental problems with most documentation from most technology companies is that the documentation usually contains a bunch of assumed knowledge.

Take for example, the Oracle Application Express Installation Guide for Release 4.1. This document has the following line in Section 1.4 About Choosing an HTTP server. “In order to run, Oracle Application Express must have access to Oracle Application Express Listener, Oracle HTTP Server and mod_plsql or the embedded PL/SQL gateway.” Yep. That’s right… sort of. As an experienced installer of APEX, I know that they mean: There are three different ways to connect to Oracle Application Express:

  1. The Oracle Application Express Listener
  2. An Oracle HTTP Server and mod_plsql
  3. The embedded PL/SQL gateway

But, if I was a brand new person with no experience, I might wonder if I need the Oracle Application Express Listener + an Oracle HTTP Server + mod_plsql, or the embedded PL/SQL gateway. Reading the rest of the guide might give me an idea, but for a while I might be confused.

However, I often waffle back and forth between what the biggest problem with technology documentation is: Is it assumed knowledge? Or is it the fact that almost all technology documentation tells you what some setting or button does, but it almost always leaves out the ‘and here is why you would want to do this’ information. You could make the argument that they are one in the same, but I usually see them as different problems. The second problem really comes into play when there are choices. If there are no choices then just telling me what I have to do is fine. Just make sure I know how to do it. I once saw a step in an installation guide that was “Configure SQL/Net”. No links to other documentation. No explanation on how to do it. Just “Configure SQL/Net”. Ummm… Aren’t you kind of assuming that I know how to do that? (And lest it seem like I’m picking on Oracle here, I’ve seen this in all types of documentation from other technology companies like Microsoft and Dell to even simple things like power tools.) But when I have choices, let me know what those choices mean to me and why I’d choose one over the other.

While it would be great if all the documentation from technology vendors addressed both problems, I doubt it will happen soon. Until then we have books like Expert Oracle Application Express.

This book is 13 chapters long and each chapter was written by a different author. At first that sounds like a recipe for disaster. But when you realize that each author is a pillar of the APEX community and a subject matter expert on their chapter and (most importantly) each of the chapters is excellent, you suddenly realize you’re holding a treasure in your hands.

Each chapter contains real world experience including the all important ‘and here is why you would want to do this’. If fact chapter 1 by John Scott addresses the above connection to Oracle Application Express issue. Sure there are three ways to do it, but why would I want to use one way or the other? Well, read chapter 1 and you will know.

I spent 14 years at Oracle and taught hundreds of people how to use Oracle Application Express and I thought at least some of the chapters would be a bit of a review for me, but I can truly say that I learned valuable information from each and every chapter.

I highly recommend this book to anyone who is going to be using Oracle Application Express.