Thursday Apr 30, 2015

Migration and Provisioning Strategies, Plus SWiS for Developers

OTN's next Virtual Technology Summit (VTS) is being held on these dates:

Here's some information about the sessions:

Overview

The main benefits of deploying Oracle Linux are its optimizations for the Oracle stack and the newer capabilities such as Docker that you can access long before they are released in the major Red Hat distributions. Did you know, however, that you can also optimize your applications to run better on the Oracle stack using Oracle Solaris Studio? In spite of the name, it is designed to help your Oracle Linux applications take advantage of performance, security, and reliability advances across the entire Oracle stack, particularly Oracle Database. Our first two sessions for VTS4 will show you how to migrate from Red Hat Linux to Oracle Linux and give you an overview of the capabilities of the Oracle Solaris Studio IDE. And just in case you'd like to practice a little, our third session will show you some advanced techniques for deploying applications through Oracle Virtual Box.

Session 1 - How to Migrate from RHEL to Oracle Linux

by Erik Benner

Oracle Linux has been around since 2006, and for years it has offered several advantages over the Red hat distribution which it tracks. These advantages include lower support costs, improved performance in many key areas, like SSD I/O, the ability to use Ksplice for zero downtime patching and support for emerging technologies like Docker and Openstack. Migrating your existing RHEL servers to Oracle Linux is not as challenging as many admins would expect. This VTS session will show admins how to migrate an existing RHEL 6.x system to Oracle Linux. A process that takes minutes to perform! To prepare for this lab, please have an RHEL 6.x installed, with network connectivity to the internet.

Software in Silicon and What's New in Oracle Solaris Studio

by Ikroop Dilhon

Learn about Software in Silicon Application Data Integrity and how developers can use this revolutionary technology to quickly and easily increase application reliability. Also learn about what's new in Oracle Solaris Studio, including redesigned performance analysis tools, powerful memory leak protection tools, and remote development support that enables you to develop applications for Oracle systems from virtually any desktop environment.

Advanced Provisioning Techniques for VirtualBox

by Oracle ACE Seth Miller

This presentation will demonstrate advanced techniques to accelerate the provisioning of virtual machines in VirtualBox using the VirtualBox command-line tools. The first half of the presentation focuses on the VBoxManage command-line tool itself, showing how it can do everything the GUI can with much greater efficiency and speed. The second half will take those same commands and run them in PowerShell while at the same time demonstrating PowerShell's robust scripting capabilities.

- Rick

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

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 forums.oracle.com.

It's called community.oracle.com, 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

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

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

Wednesday Mar 26, 2014

If You Have to Ask, You Wouldn't Understand

Although being subjected to that kind of attitude is unpleasant, subjecting someone else to it is loads of fun. Just ask someone who rides a Harley why they ride a Harley, and watch how much they enjoy unloading that sentiment on your head, you member of the unwashed, you.

I feel the same way about Oracle Solaris. Don't talk to me about how much Windows or some other OS is capable of doing. I don't care. Your OS is a metric cruiser. Go away.

That feeling of vast superiority is even more pronounced when I'm talking about Oracle Solaris Studio. Which should have been renamed Oracle Solaris and Oracle Linux Studio, if you are insightful enough to ask me, because any Linux developer who is working on anything remotely interesting should be using Oracle Solaris Studio as their IDE. I freakin love it. I've had the pleasure of interviewing Don Kretch, the head of the Solaris Studio engineering team, many times. And I've enjoyed myself every single time. If you think you're worthy, you are welcome to try to understand our conversation (jump to "Interviews with Don Kretch," below).

If my rhetoric has convinced you, as it would convince anyone of vastly superior intelligence, you'll want to pretend that you already knew how good Oracle Solaris (and Linux) Studio is, and berate me for even suggesting you didn't. Good for you. You're catching on. But you'll still be faced with a dearth of actual knowledge about this IDE for the Vastly Intelligent.

Not to worry. There's a way for you to learn what you need to learn without anyone else finding out so you can pretend to have known all along.

Oracle Solaris (and Linux) Studio 12.4 Beta Program

The Beta Program for Oracle Solaris Studio 12.4 begins today. Download the software, try out its new features, and join in the discussions. These resources will help:

Landing Page, including links to Beta Program Forums
Download Center, where you can download a free copy

Interviews with Don Kretch

About the Photograph

Photograph of 2002 Harley Davidson Softail Deuce taken by Rick Ramsey in Massachusetts, USA.

- Rick

Follow me on:
Blog | 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 blogs.oracle.com/d.

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

About

Contributors:
Rick Ramsey
Kemer Thomson
and members of the OTN community

Search

Archives
« August 2015
SunMonTueWedThuFriSat
      
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
     
Today
Blogs We Like