Thursday, August 10, 2017

Thanks, LISTAGG. I owe ya one.

My son is in Boy Scouts and their fundraising campaign involves the placement of U.S. Flags on certain holidays. In it's infancy it was all handled via spreadsheets. You can do that when you're only talking a limited number of flags.

I, of course, wrote an APEX app for it.

It's what you do when you do what we do.

Since this wasn't a paid gig, I re-purposed the "Sample Database App". Everything was coming along. The desktop functionality was in place and looking grand. The mobile functionality one needed in the field was taking shape. I got to a mobile list view that needed to list the address and under it the details of the individual flags on that property....could be one...could be many. Not difficult but I wanted an elegant solution that wouldn't add rows to my list view.

Let's look briefly at the source code...

   select f.flag_id,

     from customers c,
          flags f
    where c.customer_id = f.customer_id

Nothing to get excited about here.

Looking at the Advanced Formatting options for the List View...

Hmm. This could potentially add blank lines. What I really needed to do is aggregate the list of flags for that property. What I really need is something like this...

Enter LISTAGG. I assume we've all used listagg to do this very thing but I didn't want the result to simply be a concatenated string of "Flag1, Flag2, Flag3, FlagN"...or did I?  A few well placed P's here and there and I got exactly what I wanted.

and here's the big reveal..."Move that Bus!"

Exactly what I needed. LISTAGG provided me a way, for display purposes, to effectively pivot the data. The takeaway here is don't rule out things like LISTAGG because at first glance they don't appear to deliver what you need. In this case the concatenated string I received just needed a little TLC.

...our journey continues

Saturday, June 24, 2017

Are You Doing Everything You Can To Help Others Succeed?

My old man once told me, "You can never get promoted until someone else can do your job". While he's correct, it does seem counter-intuitive. Let me get this straight. I'm actually supposed to help someone take my job from me? All the things I've learned..the late nights and weekends...the blood...the sweat...the tears...I'm supposed to just hand over willingly??

YES! That's exactly what I'm saying. In fact, that was the first thing I told incoming ODTUG Board members each year..."get out there and find your replacement". For ODTUG the obvious intent was to keep the pipeline full, but within our own companies I believe it's even more applicable.

This kind of knowledge transfer is going to make your life easier and more rewarding. Without having to fight those same fires day in and day out, you'll be freed up to take on other challenges within your company. More than likely you're becoming a bottleneck, or pinch point, throttling back the speed at which your company can deliver.

So what are the steps to getting there??
  • Find your bell cow Here in Texas, we know that the bell cow is the one in the herd that the others tend to follow - a leader among the herd. You may be surprised at who this turns out to be. It's not always the most experienced. It's not always the one that does the talking. It's the one the rest of the team respects both personally and professionally.
  • Share your toolbox I maintain, as I believe we all do, a pretty substantial toolbox of bookmarks, videos, whitepapers, code snippets, SQL examples, regular expressions, name it. Share these with your team. Better yet, build a repository the entire team can benefit from.
  • Make introductions This one's extremely important. I recall almost 30 years ago, there was a push to legalize casino gambling in our locale. I talked my way onto the bus heading to the state capital with a contingent of local politicians. One of the old timers was Duffy Adair. I remember to this day, Duffy introducing me to these state politicians saying "You need to know this kid." Needless to say, they all got along just fine NOT knowing me, but the fact that Duffy made the introductions had me on a cloud.
  • Take an interest in junior staffers. This one is very important. Spend time getting to know them on a personal level. Remember we had to learn the tech while they grew up with the tech. Their idea of what is intuitive or non-intuitive could differ from yours. Learn from them.
To summarize, helping others succeed can be the quickest way to ensure your own success.

...our journey continues

Tuesday, November 22, 2016

Where, Oh Where Has My Little Tweet Gone?

Recently, as part of the Oracle ACE renewal process, I was tasked with gathering statistics around my tweets. How many tweets were about Oracle? How many tweets about Cloud? How many tweets about Cloud? (not a typo) Now, I knew of the advanced search capabilities accessed here:

What I was not aware of was just how powerful the simple Search field is on the Twitter header bar. Log into and in the upper right area of the screen, you see something like this.

You can get super creative identifying specific hashtags, users, accounts, and date ranges. Let's look at some examples...

Say I want to see all my tweets since October 1, 2016. All you do is enter into the search field:

     from:monty_latiolais since:2016-10-01

Pretty cool, eh?

Here are some additional searches you can easily perform right from the basic Search field.

Display all my tweets between a certain date range

     from:monty_latiolais since:2016-10-01 until:2016-10-15

Display all my tweets to another account (example: odtug)

     from:monty_latiolais @odtug

Display all my tweets to multiple accounts (example: odtug or insum_solutions)

     from:monty_latiolais @odtug OR @insum_solutions

Display all my tweets that include hashtag #kscope16

     #kscope16 from:monty_latiolais

Display all my tweets that include hashtag #kscope16 or hashtag #kscope17

     #kscope16 OR #kscope17 from:monty_latiolais

Display all my tweets that include the word 'chicago'

     chicago from:monty_latiolais

Finally, display all my tweets that include the word 'chicago', but not the word '5k', within a date range, that includes hashtag #oracle

     chicago -5k #oracle from:monty_latiolais since:2014-07-01 until:2016-11-22

...our journey continues

Thursday, July 14, 2016

Reflections on KScope16

KScope16 is now in the rear view and what a week it was.  This year was unique for me because for the first time in several years I was able to participate as an attendee (and this year a vendor). 

It was a very different experience indeed, but I loved every minute of it. I was able to reconnect with folks I haven't seen in years, like Ralf Schroeder (pictured) and Ran Dumpit who I hadn't seen since KScope 2009 in Monterey, California. I wouldn't trade my time on the ODTUG Board, but it was sure great having time to sit and visit. It brought me right back to why I love this conference so much.

This year Insum went "all in" sending a whopping 13 folks. Never in the history of our company have we mustered that kind of presence. It certainly paid off. We were able to completely canvas each and every APEX session and a large portion of the database track, too.  The Insum booth stayed humming the entire week. Our customer panel on Tuesday was standing room only.

We've put together a list of KScope highlights from each of us attending from Insum. You can find it here. Give it a read and let me know if it matches your experience. 

I'd be remiss in not mentioning a few of us even made a pilgrimage to the famous Billy Goat Tavern (and not one of us ordered fries or a Pepsi).  If you're an Oracle professional and have not attended a ODTUG event, plan on joining me in San Antonio, TX, June 25-29, 2017 for KScope17. Use registration code 'INSUM' and I'll save you an additional $100!

...our journey continues

Wednesday, July 6, 2016

Challenge Everything

I recently attended the Art of the Sale seminar in Vancouver, BC. I feel like I benefited more than anyone in the room, perhaps because I had the most to learn.

The speaker I enjoyed most was Jeffrey Gitomer, author of the Little Red Book of Selling. Very entertaining. Very informative. His session ended way too soon for me.

One of my takeaways from the day was not from Gitomer, but from Brent Adamson. He identified five Sales Rep profiles. To some of you, they will be familiar. They are:
  • Hard Worker - Always goes the extra mile. Doesn't give up easily. Self motivated. Interested in feedback and development.
  • Challenger - Always has a different view of the world. Understands the customers business. Loves to debate. Pushes the customer.
  • Relationship Builder - Builds strong customer advocates. Generous in giving time to help others. Gets along with everyone.
  • Lone Wolf - Follows own instincts. Self-assured. Independent.
  • Problem Solver - Reliably responds. Ensures that all problems are solved. Detail oriented.
Of these, he continues, the Challenger profile consistently outperforms the others. Got me to thinking...shouldn't this apply to things other than sales?? If it's so effective, could a similar approach to development and management be something to consider??

Let's put on our developer hat for a minute. It's customary that we receive specifications from the business analyst. Before writing the first line of code, what if the developer were to take a minute to review the specs looking particularly for embedded there a more efficient way to solve the problem?

Now from point of view of a've got a very talented staff from top to bottom...push them to think outside of convention. I had a manager some twenty years ago. Nothing I'd bring him was ever good enough. If it took 10 seconds to run, he'd ask why I couldn't get it down to 5?? Frustrating? You bet. But it forced me to raise my game. It forced me to not deliver commodity code. It forced me to craft elegant, efficient solutions that I was proud to put my name on. As I admitted it was frustrating at times...especially for the first few years, but I always felt he was on my side and not once did I feel he was being malicious. I look back now and the product benefited greatly from him demanding I consider alternatives. I believe he is responsible for any success I achieved later in my career.

This approach will not, can not, work without copious amounts of respect. Yes, Aretha, R-E-S-P-E-C-T. Someone without the respect of his or her peers will be looked on as difficult to work with, not a team player, or worse. Done correctly, others will clamor to have this person on their team, because of the elegant, innovative, out of the box solutions that come as a result.

In the first example the developer must realize at the end of the day the decision resides with the manager and I suppose ultimately the customer.

In the second example the manager must leave no doubt that he believes in his staff to make magic. Do that and they'll walk through fire for you.

I implore you...challenge everything, but do so with the requisite amount of respect.

...our journey continues

Wednesday, April 20, 2016

New to APEX? These KScope 16 sessions are for you!

The APEX Community is amazing.

It's a credit to Joel Kallman and the APEX Dev Team. It's a credit to the Oracle ACE's and ACE Directors specializing in APEX. It's a credit to those companies like Insum who challenge the stereotypes and demonstrate exactly what APEX is capable of. It's a credit to every APEX developer everywhere.

As President of ODTUG I worked with all of the communities, but I can tell you there's nothing..nothing like the APEX Community.

While many of us have been using APEX for years, we must remember the current popularity of the tool means that new developers are arriving daily - which is the subject of today's post.

A quick look at the this year's KScope16 APEX lineup and it's clear to see there's something for everyone. I took a stab at building a session list I feel would have particular appeal to someone looking at APEX for the first time, or someone without much experience with the tool. In addition to the expected APEX intro sessions, you'll see a pretty wide range of topics - everything from hands-on labs, to panel discussions, to mobile development, to SQL and PL/SQL. That's because to be that solid APEX developer, you need a solid Oracle foundation to stand on.

The list below should keep you plenty busy. Make sure to drop by the Insum booth to let me know what you think.

Oh, and you MUST plan to attend the Sunday Symposium and Thursday Deep Dive.

Click here to see the session list!

In a future post we'll assemble a session list for those more experienced APEX developers.

...our journey continues

Thursday, March 10, 2016

KScope16 Hands On Labs Announced!

ODTUG has released the APEX Hands On Labs for KScope16. There seems to be something for everyone. For the advanced APEX user, I expect Anton's session on IoT would be of interest as would Dan McGhan's session on Oracle JET. If you are just looking at APEX, David and Marc's sessions will pay dividends. Finally, no one should pass up an opportunity to hear Alex's little buddy, Shakeeb talk about migrating to the Universal Theme.

There you have it...the APEX Hands On Labs for KScope16. Save me a seat!

Application Express

Build Something! IOT = Internet + Oracle + Things

Anton Nielsen, C2 Consulting

This Hands-On Lab will introduce you to the the Internet of Things by allowing you to build your own thing and connect it to an Oracle APEX application. You will select a circuit board, wires, capacitors, a WiFi device, LEDs, and a sensor. Then you get to wire them together into a real THING, connect to the Internet, and start communicating with an Oracle Database. Finally, you will build an APEX application to control your thing and report on its data. Please note there are two scheduled times to see this session.

Productive JavaScript Development: Oracle JavaScript Extension Toolkit

Dan McGhan, Oracle Corporation
JavaScript-based, single-page applications (SPAs) are incredibly popular these days – and for good reason! This style of application provides developers with a great deal of flexibility and control, and end users enjoy the responsiveness and speed that comes with fewer full-page reloads. To empower developers working on SPAs, Oracle developed the JavaScript Extension Toolkit (JET), a collection of open-source JavaScript libraries along with a set of Oracle-contributed JavaScript libraries that make it as simple and efficient as possible to build applications that consume and interact with Oracle products and services, especially Oracle Cloud services.

In this Hands-On Lab, attendees will learn how to get started building applications with Oracle JET. We’ll jumpstart a new application with the QuickStart template and then extend it out with a few of the components that Oracle JET provides, including a data visualization component.

Building a Basic Demo Application Using Oracle Application Express

David Peake, Jason Straub, and Patrick Wolf, Oracle Corporation

This one “double” session (two-plus hours) is designed to take you through building a comprehensive application using Application Express. It is designed for people with no prior knowledge or very little experience developing with Application Express. You will learn how to develop a large number of different application components and walk out with the confidence and understanding of how to start building your own applications using Oracle Application Express.

Transitioning to Oracle Application Express 5 Universal Theme

David Peake and Shakeeb Rahman, Oracle Corporation

Oracle Application Express 5 introduces many new features that enable you to quickly build modern and beautiful HTML5 applications. The new Universal Theme implements current design trends and utilizing the new declarative template options, and puts powerful CSS3 techniques at your fingertips. In this session, you will walk through transitioning your existing application to the new Universal Theme. Using some of the packaged apps included with Oracle Application Express 4.2 as examples, we’ll demonstrate step by step how to transition these apps to Oracle Application Express 5.

Creating Mobile Applications Using Application Express 5

David Peake and Marc Sewtz, Oracle Corporation

Learn how you can declaratively build a compelling mobile application that uses some of the latest HTML5 capabilities, with Application Express. No hand crafting or in-depth knowledge of JavaScript or AJAX is required. Instead, bring your SQL knowledge and discover how quickly you can build web-based mobile applications using the Oracle Application Express declarative framework.