Wednesday Mar 25, 2015

The "New to Solaris Development Forum" Has Moved

The New to Solaris Development Forum brought over from Sun Microsystems is still pretty active. It used to live in the Oracle Solaris space, but we just moved it under the Application Development in C, C++, and Fortran space.

We did this for two reasons:

  1. To create a dedicated space for systems developers.
  2. To reflect the fact Oracle Solaris Studio is an IDE for Oracle Linux as well as Oracle Solaris applications.

If you haven't been on the Forums in a while, you might not know about the changes we've made to them. Quite a few, actually.

1. It's not longer called

It's called, and looks like this:

To participate, you'll need to log in and create a profile. The system will assign you a ID such as User7877777. You can be a lout and keep that ID, or you can change it to something magnificent, like TomTheMagnificent. I hope you choose to be magnificent.

2. It's Not Just Discussions Any More

We are posting technical articles, video interviews, and other content on the Community Platform. Over time, the Community Platform and the web pages for the Oracle Technology Network will merge and become one. You can see some of that happening already:

This will take time, and we'll proceed slowly. I'll post lots and lots of blogs about the changes so you can keep track. And be sure to let me know what you think. If I can address any of your concerns by providing more information or altering our design a bit, I will.

- Rick

Follow Rick on:
Personal Blog | Personal Twitter | Oracle Community Profile | The Great Peruvian Novel
  Follow OTN Garage on:
Blog | Community Discussions | Web | Facebook | Twitter | YouTube

Thursday Feb 05, 2015

VBox Image and Instructions for Hands-On Labs Now Available

The instructions for the hands-on labs that will be proctored in OTN's upcoming Virtual Technology Summit are now available on OTN's Community Platform. To register:

As described in a previous blog, the Systems track will feature two 90-minute hands-on labs. The instructions for the labs, including links to the download, are available here:

Although you can work the labs on your own, the Virtual Tech Day will have the engineers from the Oracle Solaris Studio Team available to answer questions.

About the Photograph

I took a photograph of the beach at San Simeon California, during my ride home from the Sun Reunion.

- Rick

Follow Rick on:
Personal Blog | Personal Twitter | Oracle Community Profile
  Follow OTN Garage on:
Blog | Community Discussions | Web | Facebook | Twitter | YouTube

Wednesday Jan 21, 2015

Hands On Labs for C, C++, Fortran (and Java) Developers

I've always been a fan of Oracle Solaris Studio because it's the tool of choice for bad.ass developers. Java developers are ubiquitous, Database developers get more attention here at Oracle, and marketing apps generate a lot of buzz nowadays. But Fortran, C, and C++ developers bend big iron to their will. So I'm pumped that OTN's upcoming Virtual Tech Summit (VTS) will feature two 90-minute hands-on labs proctored by members of the Oracle Solaris Studio engineering team.

Lab: How to Use the Code Analyzer in Oracle Solaris Studio

moderated by Joseph Raja
Note:Instructions will be posted here before the end of January.

The Code Analyzer is a suite of tools designed to work with the Studio C/C++ compiler to identify issues in source code. The tools in this suite are

  • Previse, for compile-time checking of errors e.g. exceeding array bounds, infinite loops, etc.
  • Discover, to identify memory leak and memory corruption issues at run time, etc.
  • Uncover, to verify test coverage and identify sections of code not being tested
  • Codean, allows comparative analysis of error report across large projects
  • Code-analyzer, an intuitive GUI that allows analyzing and fixing the errors.

This lab will show you how to identify and rectify errors with these tools.

Lab: How to Use the Performance Analyzer in Oracle Solaris Studio

moderated by Eugene Loh
Note:Instructions will be posted here before the end of January.

The Performance Analyzer is a GUI and CLI tool for examining the performance of Java, C, C++, and Fortran applications and relating it back to constructs in the source code (functions, call stacks, source code lines, data structures, etc.) so that application performance can be understood and improved. The tool can examine time spent, Solaris microstates, hardware counters (cache and TLB misses, branch mispredicts,and so on), I/O operations, heap memory usage, synchronization locks, etc. Data collection is typically statistical, giving representative results with minimal invasiveness, even on highly optimized code. It is possible to profile the Solaris kernel. A timeline display shows load imbalances, synchronization, and different phases of execution.

This lab will help you become familiar with the basic operations of the Performance Analyzer.


About the Photograph

That's a picture of my daughter and two of her friends preparing for their next hand-to-hand combat session during Basic Training, affectionately referred to as "Beast" at the US Air Force Academy. If they were developers, they'd be Systems developers.

- Rick

Follow Rick on:
Personal Blog | Personal Twitter | Oracle Community Profile
  Follow OTN Garage on:
Blog | Community Discussions | Web | Facebook | Twitter | YouTube

Thursday Jan 15, 2015

What Hardware and Software Do YOU Want Oracle to Build?

If you'd like a particular dial, knob, or bling on one of our upcoming products, here's your chance to let our engineers, our product managers, and even our pesky executives know.

Join Our Customer Advisory Panel

After you sign up, you'll be invited to participate in very short surveys no more than once a month. Participate in the surveys you like, ignore those you don't. You might even get invited to join Oracle's Customer Connect community, where you can talk to other customers and view results from recent customer panels.

Sign up here.

About the Photograph

I took the picture of JimBob, The Don, and El Jefe Con Queso guarding the general store on a ride from cold and snowy Colorado to warm and sunny Luckenbach several years ago, where we were made Deputy Sheriffs for the day.

- Rick

Follow Rick on:
Personal Blog | Personal Twitter | Oracle Community Profile
  Follow OTN Garage on:
Blog | Community Discussions | Web | Facebook | Twitter | YouTube

Thursday Jan 08, 2015

The Importance of Hardware

Not long ago I had a brief conversation with an "expert" in the Oracle Stack. The expert had provided a comprehensive overview of Oracle technologies, from the top of the stack all the way to the database. I asked where the second part of the overview was, the part that covered virtualization, the OS, hardware, networking, storage, engineered systems, and optimized solutions. The expert shrugged and said those were "commodities."

I can tell you from experience that deep breathing and long walks do wonders for apoplexy. It's not that I don't appreciate the software. Of course I appreciate the software. Without it, what's the point of the hardware! It's just that I don't understand how people who love the software can fail to respect the hardware.

Oracle has been broadcasting for quite a while, now, the benefits you can gain from its advances in hardware, but the reaction I usually get from the unwashed masses is "yeah, well, you've invested in it, so of course you're going to hock it."

Thank goodness there is still some common sense left in the world.

In this TechTarget editorial, Rich Castagna explains, in very simple terms, that advances in software are helplessly dependent on advances in hardware. If you rub elbows with a software zealot, show them the article.

While you're at it, make sure to take a look at Oracle's latest advances in Software in Silicon, including the Software in Silicon Cloud, which allows you to test and optimize your applications on Oracle's latest hardware before you buy it. Here are three links to get you started:

Bookmark this

Software on Silicon Landing Page
so you can keep up with the latest developments

About the Photograph

I took the picture of Black Betty, a 2007 Harley Davidson Softail Custom (FXSTC), in my driveway in Lunenburg, Massachusetts, in the Spring of 2008.

- Rick

Follow Rick on:
Personal Blog | Personal Twitter | Oracle Community Profile
  Follow OTN Garage on:
Blog | Community Discussions | Web | Facebook | Twitter | YouTube

Friday Dec 19, 2014

Three New Dev Tips for C++ Developers

How to Find Out What Resources Your Application Has Used

by Darry Gove

If you want to know how much CPU, memory, or other resources your application has used, you can pre-load a library and define a .fini method that prints out the results. You can also take advantage of the getusage call, which provides some information about CPU time and processes. But more information is available. Darryl provides examples of how to use these two components plus others that fill in the details.

How To Rapidly Identify Performance Opportunities

by Darry Gove

Profiling is critical to improving application performance. Without profiling, it is very easy to guess where the application is spending cycles, and then expend effort optimizing code that has little effect on overall performance. Oracle Solaris Studio 12.4 provides an overview screen designed to focus you on the metrics with the most promise. Darryl Gove walks you through the overview screen and explains what it indicates about your application.

Dev Tip: How to Get Finer Grained Control of Debugging Information

by Ivan Soleimanipour

The new options in Oracle Solaris Studio 12.4 provide much finer-grained control over debug information, which allows you to choose how much information is provided and reduce the amount of disk space needed for the executable. Ivan enumerates the options and provides examples of how to use them.

About the Photograph

I took the picture of the 01 Ducati 748S this summer, in Colorado. It currently has about 1300 miles on the odometer.

- Rick

Follow Rick on:
Personal Blog | Personal Twitter | Oracle Community Profile
  Follow OTN Garage on:
Blog | Community Discussions | Web | Facebook | Twitter | YouTube

Monday Dec 08, 2014

Brian Bream, USA's first ACE for Systems Technologies

Since the day I met Brian Bream, I've wanted him to become an Oracle ACE for Systems technologies. He has so much depth in Solaris, SPARC servers, engineered systems, what it takes to get your value out of them, that I couldn't imagine a better cornerstone to the ACE community in the US. Plus, he's very aware of the challenges that sysadmins face today:

You see, out of the 500+ ACES and ACE Directors in Oracle's program, only six specialized in Systems technologies. If you don't believe me, go to the ACE website and enter "Solaris" in the Search field. Until today, these were the only names you'd see:

As of today, you'll also see Brian Bream on that list.

Brian, who is the Chief Technology Officer for Collier IT and has certifications in over 20 industry technologies, had already received impressive awards. He had been named Instructor of the Year twice by Sun Microsystems University. And then he won that award again through Oracle University. But to the Oracle ACE program, depth of knowledge and industry recognition are not enough. They need to see contributions to the community.

That requirement presented another challenge, because Brian made his contributions to the systems admin and systems developer communities through old school communications channels. Which the Oracle ACE program does not monitor.

You try walking up to an ex-Navy, old-school Systems guy and telling him "You need to Tweet more." You'd better duck. And you'd better run. Lest you find a copy of the Sun Systems Handbook in a hard 3-ring binder lodged in your head. (If you're too young to know what a 3-ring binder looks like, see one here.)

But Brian adapted, and we had a lot of fun bringing him into Social Media. Here are three of my favorite contributions from Brian:

You fan follow Brian Bream on the newfangled social media:

About the Photograph

I took the photograph of the wagon wheels outside of the Stovepipe Wells Hotel in Death Valley National Park during a motorcycle ride in April of 2014. It was hot.

- Rick

Follow Rick on:
Personal Blog | Personal Twitter | Oracle Community Profile
  Follow OTN Garage on:
Blog | Community Discussions | Web | Facebook | Twitter | YouTube

Wednesday Sep 03, 2014

New Articles for Oracle Solaris Developers

Even though it was over 10 years ago, I still remember my side of the conversation with Jerry Jackson:

"Tuple? WTF is a Tuple?"

Jerry had just finished writing a language for building online insurance applications, and he was filling me in some of the gaps in my street urchin understanding of computer science. What I remember about Jerry's answer all these years later I can only paraphrase as:

"A tuple is like a grocery list. Except when it's not."

Although I've been focusing on content for sysadmins for the last few years, developers hold a special place in my heart. And Darryl Gove is one of the most generous with his knowledge. Not too long ago he teamed up with Steve Clamage to write several articles for OTN. Here are three of them:

Using the New C++ Array and Tuple Containers

by Darryl Gove and Steve Clamage

An array is equivalent to a traditional fixed length array in C++, but is accessible through standard container methods. A tuple is an ordered set of related elements of different types, such as one person's name, age, height, and so on. Both are new container types introduced in the C++11 Standard. Darryl and Steve explain what they are and how to use them.

How to Use Lambda Expressions in C++ 11

by Steve Clamage and Darryl Gove

Lambda expressions let you treat functions as objects, which means you can use them when you write a function that requires another function as one of its parameters. According to the authors, Lambdas are one of the defining features of the recent C++11 standard, and in this article they describe their syntax, how to pass them as pointers, and more.

Understanding the New Set and Map Containers in the C++ 11 Standard Library

by Darryl Gove and Steve Clamage

Map and set templates have been part of the C++ Standard Library since C++03. The C++11 Standard Library now includes templates for unordered maps and unordered sets. In some situations, the unordered versions can provide faster lookups than their ordered counterparts. Darryl and Steve explain.

About the Photograph

That's JimBob and El Jefe, two of my close riding buddies catching a little warmth from the sun outside of El Paso, Texas, during the now famous Durango Blizzard Ride of 2006. Will have to blog about that some day. They are tuple if there ever was one.

Follow Rick on:
Personal Blog | Personal Twitter | Oracle Community Profile
  Follow OTN Garage on:
Web | Facebook | Twitter | YouTube

Wednesday Jun 25, 2014

Helping Your Compiler Handle the Size of Your Constants

by Darryl Gove

When I use a constant in the following code, I get a warning:

On the other hand if I wrote:

Then then compiler will quite happily handle the constant.

The problem with the first bit of code is that it treats the value as a signed integer, and a signed integer can only hold 31 bits of precision plus a sign bit.

So how does the compiler decide how to represent a constant? The answer is interesting.

The compiler will attempt to fit a constant into the smallest value that it can. So it will try to fit the value into these types, in order: into an int, a long int, and then a long long int.

In the above code sample, the compiler will find that 1 and 31 both fit very nicely into signed ints. There's a shift left operation (<<) in the expression that produces a result of the same type as the left operand. So the whole expression (1<<31) has type signed int, which leads to the the warning.

To avoid the warning we can tell the compiler that this is an unsigned value. Either by typecasting the 1 to be unsigned in this manner:

or by declaring it as an unsigned value, like this:

More About Oracle Solaris Studio

Oracle Solaris Studio is a C, C++ and Fortran development tool suite, with compiler optimizations, multithread performance, and analysis tools for application development on Oracle Solaris, Oracle Linux, and Red Hat Enterprise Linux operating systems. Find out more about the Oracle Solaris Studio 12.4 Beta program here.

About the Photograph

Photograph of Zion National Park, Utah taken by Rick Ramsey in May 2014 on The Ride to the Sun Reunion.

- Darryl

Follow Darryl on:
Oracle Blog | Twitter
  Follow OTN Garage on:
Web | Facebook | Twitter | YouTube

Monday Feb 24, 2014

If Your Processor Stalls From a Read After Writer Operation ...

... rewrite your code. Better yet, write code that avoids this problem in the first place. The problem can occur when an application wants to load a value that it has just stored in memory. Read After Write (RAW) operations are common, so most chips are designed with hardware that makes that happen fast. But in some cases, you can write code that stumps the hardware. And so it stalls.

And you tumble to earth in horror, screaming for your life and clawing at the controls.

And you smack into the a pile of rocks. Or, to the horror of young mothers in minivans, the freeway during rush-hour traffic. Or worse, the middle of the ocean, so that if you somehow survive the impact, you drown. And nobody finds your body. And your loved ones can never move on.

Unless you're wearing a parachute. Like the one we just published from Darryl Gove.

Tech Article: Avoid Performance Loss (And a Fiery Death) from RAW Hazards

by Darryl Gove

Darryl explains exactly how a processor can stall from a bad RAW operation, and the common situations that cause this problem. Then he shows you how to identify, fix, and avoid writing that kind of code. Examples included. Help your loved ones move on. Read Darryl's article.

About the Author

Darryl Gove is a senior principal software engineer in the Oracle Solaris Studio team, working on optimizing applications and benchmarks for current and future processors. He is also the author of the books Multicore Application Programming, Solaris Application Programming, and The Developer's Edge.

Read Darryl Gove's blog on

Picture of radial engine taken by Rick Ramsey at Bay Area Aerospace Museum

- Rick

Follow me on:
Blog | Facebook | Twitter | YouTube | The Great Peruvian Novel

Friday Jan 10, 2014

It's Friday, Ask Your Boss to Dance

Happy Friday, OTN Garage!

- Rick

Follow me on:
Blog | Facebook | Twitter | YouTube | The Great Peruvian Novel

Tuesday Dec 31, 2013

Is it Over, Already?

That was a helluva year. Here's hoping 2014 is just as wild and crazy.

You can find the articles we posted during 2013 here:

Thursday Nov 07, 2013

Oracle VM Deep Dives

"With IT staff now tasked to deliver on-demand services, datacenter virtualization requirements have gone beyond simple consolidation and cost reduction. Simply provisioning and delivering an operating environment falls short. IT organizations must rapidly deliver services, such as infrastructure-as-a-service (IaaS), platform-as-a-service (PaaS), and software-as-a-service (SaaS). Virtualization solutions need to be application-driven and enable:"
  • "Easier deployment and management of business critical applications"
  • "Rapid and automated provisioning of the entire application stack inside the virtual machine"
  • "Integrated management of the complete stack including the VM and the applications running inside the VM."
Application Driven Virtualization, an Oracle white paper

That was published in August of 2011. The new release of Oracle VM Server delivers significant virtual networking performance improvements, among other things. If you're not sure how virtual networks work or how to use them, these two articles by Greg King and friends might help.

Looking Under the Hood at Virtual Networking

by Greg King

Oracle VM Server for x86 lets you create logical networks out of physical Ethernet ports, bonded ports, VLAN segments, virtual MAC addresses (VNICs), and network channels. You can then assign channels (or "roles") to each logical network so that it handles the type of traffic you want it to.

Greg King explains how you go about doing this, and how Oracle VM Server for x86 implements the network infrastructure you configured. He also describes how the VM interacts with paravirtualized guest operating systems, hardware virtualized operating systems, and VLANs.

Finally, he provides an example that shows you how it all looks from the VM Manager view, the logical view, and the command line view of Oracle VM Server for x86.

Fundamental Concepts of VLAN Networks

by Greg King and Don Smerker

Oracle VM Server for x86 supports a wide range of options in network design, varying in complexity from a single network to configurations that include network bonds, VLANS, bridges, and multiple networks connecting the Oracle VM servers and guests. You can create separate networks to isolate traffic, or you can configure a single network for multiple roles. Network design depends on many factors, including the number and type of network interfaces, reliability and performance goals, the number of Oracle VM servers and guests, and the anticipated workload.

The Oracle VM Manager GUI presents four different ways to create an Oracle VM network:

  • Bonds and ports
  • VLANs
  • Both bond/ports and VLANS
  • A local network

This article focuses the second option, designing a complex Oracle VM network infrastructure using only VLANs, and it steps through the concepts needed to create a robust network infrastructure for your Oracle VM servers and guests.

More Resources

photo of K1200S copyright by Rick Ramsey


Follow me on:
Blog | Facebook | Twitter | Personal Twitter | YouTube | The Great Peruvian Novel

Monday Sep 23, 2013

Live Video Interviews on OTN Central at Oracle OpenWorld 2013

Good thing I drove to Oracle OpenWorld this year instead of riding the moto like I have on some previous OOW's. We had an inch of slush on Donner pass, and if we hadn't skeedaddled outta there when we did, we might have wound up like the ATV in my driveway in Colorado.

This year Oracle wants its customers to talk about their experiences with Oracle technologies, so OTN has lined up three live interviews. If you're at Oracle OpenWorld, you can watch them on the big screens. If you're not at the event, you can still watch them live from our home page at If you want to watch them later, look for a future blog in which I'll post the location of the recorded interviews.

Monday, 12:00 noon PT - John Dome, Systems Engineering Lead, Progressive Insurance

John will describe the business opportunity that lead Progressive Insurance to switch from Red Hat Linux to Oracle Linux, he'll explain why he recommended they switch, the results they got, and how it has changed the way Progressive's DBA's and SA's work together. We'll try to get as techie as we can in the time we have.

Tuesday, 11:50 am PT - Gautham Sampath, Chief Information Technologist, Pinellas County Government

Gautham (pronounced like Batman's Gotham) recently led an effort to refresh the Pinellas County hardware systems. He'll explain what they were looking for, why they chose Oracle Exalytics, how they became convinced it was the right decision, and how it changed the way they managed their data center.

Wednesday, 11:00 am PT - Brian Bream, CTO, Collier IT

Brian Bream, Chief Technology Officer of Collier IT, will describe the biggest changes data centers must deal with today, and how Collier IT recommends they face them. When we're done, he'll confess how he deals with his personal addiction to SPARC systems and the Oracle Solaris operating system.

Plus recorded videos

We're also going to have a snowsquallfull of recorded interviews, which we'll begin posting during the evenings, since going to all-night parties is getting harder and harder to recover from. Look for them on OTN Garage YouTube Channel.

- Rick

Follow me on:
Blog | Facebook | Twitter | YouTube | The Great Peruvian Novel


Logan Rosenstein
and members of the OTN community


« December 2015
Blogs We Like