Cloud bound? Grab your two-for-one exam voucher from Microsoft today!

April 30, 2012 at 8:59 am | Posted in Certification Paths, Microsoft | 1 Comment
Tags: ,

Have you been racing toward your Microsoft Certified IT Professional (MCITP) or Microsoft Certified Professional Developer (MCPD) certification, only to worry that it might be redundant by the time you arrive? If so, act fast to take advantage of a FREE exam offer from Microsoft that will help convert your certification to the equivalent MCSE certification when it’s released.

To benefit from this offer, you must purchase and take any exam from one of these four technology paths by June 30, 2012:

  • Windows 7
  • Windows Server 8 /Private Cloud
  • SQL Server 2008
  • Visual Studio 2010

Next, you must request a free exam voucher from Microsoft:

Once the MCSE-level exam in your technology path is released, you have 90 days to use the voucher and take the exam for free. You can request up to 5 vouchers (keeping in mind you will have to pass the 5 current exams before the end of June).

Here’s a comprehensive list of the exams that you can CURRENTLY take, and receive a voucher for the corresponding 2012 or Server 8 version:

Exam 70-680 : TS: Windows 7, Configuring
Exam 70-686 : PRO: Windows 7, Enterprise Desktop Administrator
Exam 70-685 : PRO: Windows 7, Enterprise Desktop Support Technician
Exam 70-640 : Windows Server 2008 Active Directory, Configuring
Exam 70-642 : Windows Server 2008 Network Infrastructure, Configuring
Exam 70-646 : Windows Server 2008, Server Administrator
Exam 70-647 : PRO: Windows Server 2008, Enterprise Administrator
Exam 70-643 : TS: Windows Server 2008 Applications Infrastructure, Configuring
Exam 70-659 : TS: Windows Server 2008 R2, Server Virtualization
Exam 70-432 : TS: Microsoft SQL Server 2008, Installation and Maintenance
Exam 70-433 : TS: Microsoft SQL Server 2008, Database Development
Exam 70-448 : TS: Microsoft SQL Server 2008, Business Intelligence Development and Maintenance
Exam 70-450 : PRO: Designing, Optimizing and Maintaining a Database Server Infrastructure using Microsoft SQL Server 2008
Exam 70-451 : PRO: Designing Database Solutions and Data Access Using Microsoft SQL Server 2008
Exam 70-452 : PRO: Designing a Business Intelligence Infrastructure Using Microsoft SQL Server 2008
Exam 70-511 : TS: Windows Applications Development with Microsoft .NET Framework 4
Exam 70-513 : TS: Windows Communication Foundation Development with Microsoft .NET Framework 4
Exam 70-515 : TS: Web Applications Development with Microsoft .NET Framework 4
Exam 70-516 : TS: Accessing Data with Microsoft .NET Framework 4
Exam 70-518 : PRO: Designing and Developing Windows Applications Using Microsoft .NET Framework 4
Exam 70-519 : PRO: Designing and Developing Web Applications Using Microsoft .NET Framework 4

MERGE your application to improve performance

April 23, 2012 at 2:09 pm | Posted in Oracle, Technical Tips | Leave a comment
Tags: ,

Hello, Oraclites. Have you taken a look at the new (well, relatively new) MERGE command that is now part of ANSI SQL?  In many cases, incorporating the MERGE command into your application can replace writing a 10 to 20 line program in PL/SQL. And that will lead to significantly improved performance.  This is definitely one of those cases where “less is more.”

How does MERGE work?

The MERGE command functions as either an INSERT command or an UPDATE command all in one,  depending upon a condition that you specify.  And just like INSERT and UPDATE, the new MERGE command is a DML command.  If you totally hose your data trying out the new MERGE command, you can do a ROLLBACK.  No harm, no foul.

Here’s an example that everyone can probably relate to.  WIDGETS Incorporated has 10,000 active and inactive employees, and thus 10,000 rows in the emp table.  The column status contains an I for inactive employees, and an A for active employees.

Here is the description of the emp table:

id          NUMBER(5) PRIMARY KEY
name        VARCHAR2(20) NOT NULL
dept        VARCHAR2(10) NOT NULL
salary      NUMBER(10,2)
hire_date   DATE
status      CHAR(1)

There’s also a new_emp table created by HR and used nightly to update the emp table. HR assigns a new unique ID to new employees who have never worked for WIDGET before, but those who have are reassigned their previous ID. The number of rows in new_emp varies night by night, but averages around 20 rows. Usually one or two out of the 20 represents a rehire. The structure of the new_emp table is exactly the same as the emp table; only the data is different.

What HR wants to do, and the MERGE command allows them to accomplish, is to add the personnel data for a new hire who has never before worked for the company, and assign that employee a status of A (for active). In the same pass through the data, the command should update the emp table by locating inactive employees who have been rehired.  When those records are found, the status should be changed from Inactive to Active, and the starting salary when this person is rehired should be updated in his or her row in the emp table. We’ll take care of updating the other columns later.

USING (SELECT id, name, dept, salary FROM new_emp) N
ON ( =
WHEN MATCHED THEN UPDATE SET E.dept = N.dept, E.salary = N.salary, E.hire_date = sysdate, E.status = ‘A’

This should solve their problem!  The merge (either Inserts or Updates) are going to happen to the emp table.  We are going to use the data returned by the SELECT to compare each returned row with each row in emp to determine if the values of id are equal.  If they are, we’ll do the update in the “WHEN MATCHED” clause.  If they aren’t equal, we’ll do the INSERT in the “WHEN NOT MATCHED” clause.

That’s pretty neat, and what’s really great is we don’t need to write a program to accomplish it. Furthermore, we can deal with all the rows in a single pass of the data.

If you like this, take a look at multitable INSERTS, another great feature for developers and DBAs.

–Bob the OrclTestGuy

Cloud computing: coming to a certification test near you (part 1)

April 16, 2012 at 1:21 pm | Posted in Vendor news | 2 Comments

The latest overused buzzword in our industry is “cloud”. Microsoft has a Cloud. HP has a Cloud. Amazon has one. Apple has one, but they call it the iCloud (how i-riginal?).

The fundamental purpose of the cloud is to provide on-demand data and services via your network connection instead of providing (or sourcing) it locally via physical hardware. The cloud service provider determines what types of resources are available to you based on your user account type, permissions, and fees. You may be a cloud end user that’s focused on data storage, a business cloud user focused on providing services and data storage to employees, or a cloud engineer who needs to know the infrastructure behind building and maintaining a cloud.

Major cloud players

Amazon Elastic Compute Cloud (Amazon EC2) allows you to launch instances on varieties of Linux or Windows operating systems loaded with your custom application environment for a specific fee structure. (In case you are wondering, it’s cheaper to use Linux than Windows in the EC2 cloud.)

Apple’s iCloud is your “magic hard drive”. It can store all your music, photos and other content from your PC, iPad, iPhone, iPod,or whatever iOS-based device you may have. Apple will keep all your email, contacts and calendars for all your devices without forced synchronization. According to Apple, they will store 20,000 of your songs for a year for only $25.00 so you don’t have to keep all those Widespread Panic or Black Crowes vinyl LPs in your basement. (Vinyl may sound a whole lot better than digital, but it’s tough to store without a cool dry place.)

Microsoft is not too interested in storing your vacation photos from Myrtle Beach or mp3s. Microsoft’s cloud strategy is to offer services like Exchange, Office, SharePoint, and Lync to integrate in a cloud environment. With Office 365, a user can have access to Office applications, like Word, Excel, and PowerPoint, that are not installed locally on the user’s PC, but are downloaded and licensed from the cloud. Exchange Online is a hosted messaging solution based on Microsoft Exchange. SharePoint online centrally stores and allows you to share documents and information with your colleagues and customers. Lync is the next generation of Office Communications Server, which provides an infrastructure for enterprise instant messaging, presence, file transfer, peer-to-peer and multiparty voice and video calling, web conferencing and PSTN connectivity.

VMware, of course, was practically in the cloud already with its virtualization solutions. Instead of focusing on the end consumer, VMware products are aimed at the IT cloud architect who manages cloud infrastructure, public cloud services, hybrid cloud services, and private cloud services for organizations.

Certifying that your head is in the cloud(s)

So far, major cloud certification plans have been announced by CompTIA, Microsoft, VMware, and various smaller players. Some heavyweights, like Cisco and VMware, have incorporated strong cloud-based skills into new and existing certifications.

Here’s a quick overview of certifications from major vendors. Look for more information in the coming months as tests are rolled out.

Cloud Part One: Microsoft

These new Microsoft Cloud services will require new skills. According to the IDC, over 33% of software purchases will be delivered through the cloud. To survive in this new world, you will need to have cloud skills. Microsoft’s Cloud Services: Training and Certification Overview page covers exams in four functional areas:

  • Infrastructure management – MCSE Private Cloud
  • Software development – Microsoft Exchange Server 2010, Microsoft SharePoint 2010, and Microsoft Lync Server 2010
  • Database management – Azure Developer
  • Services management – MCSE: Data Platform

If you are a developing or building cloud-based applications using Windows Azure,  you can achieve your MCPD: Windows Azure Developer certification by passing three tests:

  • Exam 70-513 TS: Windows Communication Foundation Development with Microsoft .NET Framework 4
  • Exam 70-516 TS: Accessing Data with Microsoft .NET Framework 4
  • Exam 70-583 PRO: Designing and Developing Windows Azure Applications

If you are prepping for the MCITP: SharePoint Administrator 2010 certification, it consists of the following tests:

  • Exam 70-667 TS: Microsoft SharePoint 2010, Configuring
  • Exam 70-668 PRO: Microsoft SharePoint 2010, Administrator

The 70-667 and 70-668 SharePoint exams are being updated to include cloud-related skills. As per Microsoft, 70-667 and 70-667 was updated to cover SharePoint 2010 SP1 and Office 365 as of January, 2012.

If you are prepping for any of the Exchange 2010 certifications that include exams 70-662 or 70-663, we expect those exams will be updated to include cloud-related skills.

The problem with adding cloud-related skills to an existing exam is that a lot of the exam prep materials listed on the Preparation Materials tab of the prep guide for these exams have not been updated to include cloud related skills. A lot of the Microsoft Press and third-party materials have not been updated either. If you are prepping for an exam that you know or suspect might be impacted by Microsoft’s Cloud Services make sure that you thoroughly research your topics. Do not rely solely on the materials that you received from a training class or the prep guide that you bought from your book retailer. Look at the Skills Measured tab on the prep guide for the exam and use the Internet to research the latest on the topics that are being covered on the exam. TechNet is a great resource for the latest info that may be on an exam. If you are not familiar with the Skills Measured tab of the prep guide for a particular exam, it’s a smart place to start! Here is where you find what the heck is on the test. The manual you got from the Microsoft Official Curriculum training class or the 700-page book you bought from Amazon may or may not include this information.

Look for an overview of cloud-focused certifications from VMware, Cisco, and CompTIA part 2 of this post. Until then, happy cloud computing!

–George Monsalvatge

Cisco CCNA Flash Card mobile app released for Android; A+ app updated for all platforms

April 10, 2012 at 3:42 pm | Posted in Kaplan IT Training news, Study hints | 3 Comments
Tags: ,

Following the success of the TranscenderFlash CompTIA A+ flash card app, we’ve rolled out our first Cisco CCNA flash card study app (640-822, ICND Part 1). For now the app is only available on the Android platform, but we’ll be rolling out an iTunes release next month. Update: you can download the app from the Android marketplace or iTunes.


Amazon (Android):

The app is 100% free of cost and free of ads. Here’s what you get:

  • Hundreds of questions covering all exam objectives for 640-822 CISCO ICND Part 1
  • Ability to sort flash cards by exam objective
  • Simple and intuitive flash card interface
  • Easy self-grading, answer history tracking, and session saving
  • Correctly answered flash cards are removed to focus on trouble areas
  • Post your success to Facebook

To those of you who tried out and commented on our A+ app: we listened! We have completely redesigned the A+ flash card interface, and used the new interface for the CCNA app. Now both apps let you select which objective you’d like to study, rather than taking you through the entire pool of questions starting with the first objective. If you have the old A+ app, upload the revision now. Here’s some screen caps to show you how both apps behave:

CCNA flash card objectives screen

CCNA individual flash card

Download the app today, and let us know what you think!

Using Function-Based Indexes to Improve Oracle Performance

April 6, 2012 at 10:08 am | Posted in Oracle, Technical Tips | Leave a comment
Tags: ,

There are a number of reasonably easy steps that database administrators and database developers can take to improve the performance of both an Oracle database and the applications that run against the database. Some of these steps would probably be considered the responsibility of the DBA; others would typically be handled by the application developer. Of course, there are a number of shops where the IT professional wears multiple hats, so I’ll just provide the tuning information and leave it to you to determine who in your shop might find this useful.

Function-Based Indexes

Let’s take a look at the world of indexes when it comes to speeding up data retrieval. Normally, it would be good practice to put an index on a column of a table when the following conditions are met:

  1. The table is relatively large.
  2. The column doesn’t have many nulls.
  3. The data in the column has good cardinality.
  4. There isn’t a lot of DML activity against that column going on in your database.
  5. Your application code often uses that column to search or sort.
  6. The indexed column isn’t typically involved in a mathematical expression or a function.

Take a look at this code:

SELECT student_id, major, class, advisor FROM students WHERE last_name = ‘Monsalvatge’

Assuming there are thousands of rows in the students table, and that there are very few rows where last_name is NULL, there are very few last names that are identical, last names don’t need to be updated often, and that our statement runs many times during the day, then according to the 6 rules above it would be a good idea to create a B-tree index on that column. (I wrote more about B-tree indexes in this post here.)

But now consider this situation. Suppose the way last names got entered into the table wasn’t very well controlled. Different users used different capitalization standards when they entered the last names. Some had the last name in all caps, some had it in mixed case, and others had it in all lowercase. If the last name stored in the database is ‘MONSALVATGE’ or ‘monsalvatge’ or ‘MonSalvatge’, it will not match the literal ‘Monsalvatge’ string in the SELECT statement, regardless of whether there is or isn’t an index on the last_name column.

But you’re a smart person, so you have a fix. You write your code like this:

SELECT student_id, major, class, advisor FROM students WHERE INITCAP(last_name) = ‘Monsalvatge’

Now the SELECT statement will find what it’s supposed to find regardless of how the capitalization of last_name is stored in the database. Good job!

That’s the good news, but there’s some bad news as well. Remember that index we built on the last_name column? It’s still there, but guess what? According to rules above, the column we have indexed (at least in this specific SELECT statement) is having the function INITCAP applied to the column before the WHERE clause comparison is made. When that happens, the optimizer is unable to use the index on that column. The same would be true is we performed any other manipulation or function to the last_name column.

Consider this SELECT:

SELECT student_id, major, class, advisor FROM students WHERE tuition > 5000

In this case, if the six conditions listed above are met, then you probably want an index on the tuition column. However, if there was B-tree index on the tuition column and your SELECT was written like this:

SELECT student_id, major, class, advisor FROM students WHERE
tuition + 1 > 5000

then the optimizer would be unable to use that index because it has a mathematical expression on the index column (namely, add 1 dollar).

Interestingly enough, this SELECT statement is logically equivalent to the previous one:

SELECT student_id, major, class, advisor FROM students WHERE
tuition > 5000 – 1

Recall from algebra class that adding 1 (one) to the left side of an equation or inequality is the same thing as subtracting 1 (one) from the right-hand side. Furthermore, the optimizer, when building the parse tree and execution plan, will be able to choose using that index on tuition, since the functions and/or mathematical work is on the other side of the equation/inequality.

So how do you solve this dilemma? If you don’t put in the function to adjust the capitalization on last name, then you won’t get all of the correct answers. That’s unacceptable! If you put the INITCAP function into your SQL statement, you will get all of the correct answers, but the performance will take a hit since the optimizer won’t be able to use the index you created on last_name.

To give you the best of both worlds, Oracle created function-based indexes. This is simply an index that is built, not on the column, but on the function or mathematical expression defined on the column. For example, to create an index on the INITCAP function applied to the last name column, you simply type the following:

CREATE INDEX my_func_indx_1 ON students(INITCAP(last_name))

And, if you want to create an index on the tuition column plus $1, you would simply type the following:

CREATE INDEX my_index ON students(tuition + 1)

You can even have more than one function-based index on the same column. For example, you might have one index on the INITCAP of last_name, and another on the UPPER of last_name.

Search your application code, and I’ll bet you that there are a number of places where these function-based indexes will speed up the performance of your queries.

Until next time,

–Bob the orcltestguy

IT Interview Tips

April 4, 2012 at 12:41 pm | Posted in Kaplan IT Training news, Technical Tips | Leave a comment
Tags: , , ,

A while back one of our team members ran across this LifeHacker post on IT job interviewing, provocatively titled Why I Won’t Hire You. The post stirred some spirited debate with the Transcender Team. Some of us thought it was refreshingly honest and contained valuable insights for a potential job candidate. One of us thought the author deserved a punch in the nose (metaphorically only — we’re not violent people, except where fantasy football/basketball is concerned).

Joking aside, we then sat around and discussed whether people need specific advice on interviewing for an IT job versus a non-IT job. Then we sat around and exchanged stories about people we’d actually interviewed for jobs who had made strange common-sense errors. Turns out we’ve seen it all kinds of quirks, from the classic typos-on-the-resume errors to showing up with their portfolio in a paper grocery sack.

Assuming you are qualified for the job you are applying for, you will have to go through a series of interviews.  First there’s typically a screening, usually over the telephone but it can be in person where the employers will evaluate your overall fitness as a candidate. If you make it beyond the screening interview, you may go on to a series of interviews with the people in the department that will hire you — and that’s just the beginning. You might be called to dozens of interviews. Conclusion? That’s a lot of face time. So we feel there can *never* be enough tips out there to help an inexperienced (or experienced) job seeker ace an interview.

Here are some tips that might help you land the job.

Show up early   

If you are on time, I consider that you’re late. Arriving late does not leave a good impression. I recommend that you show up at the interview site at least 30 minutes prior to schedule. This will give you a few moments for last-minute prep for the interview. However, make sure that you check in for your interview no earlier than 10 minutes prior to the actual appointment time, because arriving too early could backfire if that person thinks you don’t value their time. So kill those extra 20 minutes in the parking lot or the reception area. While you’re there, take a sneak peak at the office environment and get a glimpse of the office culture.

Research the company   

It’s easy to win friends by talking about other people rather than yourself. However in an interview you need to sell yourself.  Take some time before the interview and study the company that you are interviewing. Learn about the company, but don’t regurgitate the company’s website or annual report. If possible, try to learn as much about the department that will be interviewing you.  You can set yourself apart from other interviewees if you can highlight your assets in relation to their specific needs.  For example, if you know the company will be installing several SQL server instances and will need support, you should highlight your previous experience of managing, maintaining, backing up, and restoring databases on a SQL server. Remember, though, that the person conducting the screening interview may not be technical, so keep your experience to what is advertised in the job posting.

Dress for success  

The days of people wearing Brooks Brothers suits and 100% cotton starched shirts may be gone. People tend to dress business casual in the workplace, and go even more casual in the IT world.  To stand apart from the herd of candidates, you need to be neat and clean.  You don’t have to look like you are ready to pick up your prom date at your parent’s house, but in a way, an interview is like a speed date. You need to make a good impression fast. Your date is not going to appreciate an unclean, unkempt person, or the person who over-dresses. I try to know what their office dress code is and aim to go one step above it. 

In my role as a trainer I’m frequently asked about tattoos and piercings on a job candidate.  I do not have a tattoo or piercing and not going to get any, but they don’t bother me. If the person can do the job and gets along with other team members, why should I care?  But – and this is a big but – the person conducting the interview may not share your same view on tattoos and piercing. Many companies ask employees to keep tattoos covered in the workplace.  For an interview, I recommend you cover the body art and remove piercings.  An HR employee at a large company once told me, “Tattoos and piercings are not professional and we only hire professionals.” Does having a tattoo or a piercing mean that you cannot do the job?  Of course not; that’s ridiculous.  Do employers hire people based on looks?  Well, a company cannot discriminate against you based on sex, religion, race, age or reproductive status, but they can certainly choose to not hire you based on looks.  If you look like you fell into a tackle box or you have tattoos like a member of the band Motley Crue, expect the hiring company to hold that against you. It may not be fair, but it is legal.  

Expect to prove your skills   

You should expect to have some skills test, written test or combination of both in order to gain employment.  I am from the school of thought that people do not intentionally lie on a resume, but they may stretch the truth. A prospective employer has the right to call you on your skills and experience. The information that you put down on a resume should be corroborated by someone else at your current job or previous job.  Do not expect an employer to accept the fact that you can do a particular task because a person you work with and a person they have never met says that you can.

When I interviewed for a LAN administrator’s job, I was called back to perform a  series of tasks within a 30 minute time frame in a lab the company had set up.  That was the fastest 30 minutes of my life. The company wanted a highly skilled candidate that worked quickly. This was their way of weeding out candidates.

Do not lie  

As I said before, people tend to stretch the truth on a resume, but you should not out-and-out lie. If you lie about certifications, degrees, or other items that can be checked, you will get busted.  Expect to give the prospective employer a copy of your certification transcript or your certification ID number.  For example, if you are certified in a Microsoft product, you will get a Microsoft Certified Professional (MCP) number which can be used by a prospective employer to check your Microsoft transcript. CompTIA, Oracle, and Cisco also issue IDs for their certified professionals.  If it can be checked, do not lie about it.  Even little lies will get you in trouble.

Another true story – a hiring manager had to choose between two candidates. One candidate, who was only was a casual jogger, said that he ran in the 2008 Boston Marathon and placed in his age group. The hiring manager looked this information up on the Internet and found it to not be true. That candidate did not get the job. The hiring manager said if he lied about running in the Boston Marathon, he could have lied about anything else.  

Oh yeah – and pictures say a thousand words. Start vetting your social profiles — Twitter, Facebook, Google+, and so on — before you apply for jobs. Those pictures you have on Facebook may not paint a very favorable picture of yourself. Any modern employer will do a quick background check on you. Expect them to look at your Facebook page. Make sure there is nothing there that will cost you a job.

Another true story. Former Georgia Tech football coach George O’Leary was named head football coach at Notre Dame in 2001, but had to resign a few days later for resume’ padding. Although the padding was on his resume for over twenty years, he had never rechecked and updated the information. Although Coach O’ Leary has bounced back at University of Central Florida, winning conference titles, winning bowl games, and being a positive influence in the lives of young athletes, he may be remembered by some as the guy who once lost a job for resume padding — and that truly is a shame.

The demand for IT professionals is increasing. There are many challenging opportunities opening up. With a little preparation, you too can present yourself as the top notch candidate who will be hard to pass up.

Entries and comments feeds.

%d bloggers like this: