Yang Lu
  • Professional
  • Personal
  • Contact
  • Toolkit

OLAP Reporting vs OLTP Reporting

12/18/2017

1 Comment

 
If you've taken a look at my work history, I've supported a lot of OLTP (online transaction processing) applications.  The latest being ServiceNow.  An OLTP's backend is really just a bunch of tables with columns referencing one another to create a relational database.  This is exemplified nicely when you tag an order or case to a customer record and you can see all the orders/cases by that customer.  The OLTP is not without flaws: it's purpose is to capture transactions and not necessarily report against them.  You don't have to worry about duplicates as every record is unique, but you will have to worry about query times.  An OLAP (online analytical processing) cube is a database model that inverts the pros and cons of an OLTP.

Yet, all the software products I have supported can do reporting.  The customers demand it.  For instance, ServiceNow has one of the best reporting engines I have seen providing a "what's happening now" indicator and a "what has happened in the past and are we better off" metric comparison.  Technology has also gotten better for OLTPs to do reporting as technology, memory, and processors are pretty cheap and usually maintained (and scaled) by the Saas provider.  There really isn't a reason to export data to a data warehouse unless (1) your company set an initiative to centralize all reporting to a Business Intelligence tool such as BusinessObjects or Tableau or (2) the use case I am about to describe.  This is the ONE use case where an OLTP does not do well, but an OLAP cube can handle well - it's the mid year organizational change story.

This happens in every organization.  You have a hierarchy that rolls up to the CEO or a list of portfolios that house many projects.  One day, a re-org occurs so your department doesn't roll up to that region or that project rolls up to another portfolio.  You can probably see where I am headed with this -- the second you make this hierarchy change in your OLTP, all the EXISTING associated transactional records will shift as well.  That means all existing incidents in your department just got shifted to another department.  That also means all your actual costs already incurred in your portfolio just got shifted to another portfolio and you're well below budget!  This is the benefit and the curse of the relational database.  You can make a change without updating existing records, but your reporting will probably be inaccurate.

Let's take this scenario as an example.  A business unit hierarchy has to change:
Picture
Above are the tables (Business Unit and Incident) and the record(s) associated with them.  There is also a visual diagram outlining the change.  To change the department without regard for reporting, you could simply make the changes in Bold in the “New State”.  In the Incident Table, nothing changes as the reference identifier doesn’t change even though the displayed value might.  This is the basis for a relational DB which most OLTPs (online transaction processing) are built on.

What you could do to fix this reporting issue is to run a process called versioning.  So when Portfolio B disappears in the above scenario, you will have to add the text “DNU” (for “do not use”) to the end of each child and re-create the hierarchy under Portfolio A.  This way, existing tickets stay under the old Portfolio B so the original roll up is maintained and new tickets will roll up to Portfolio A.  No sharp increase or decrease.  Here is what you would do to the BU hierarchy to version:
Picture
That's a pain.  Now imagine you go through multiple restructures and it's usually not just one portfolio that gets bounced around.

Here’s how we can address this with a data warehouse.  In the OLTP, we would create a new table that shows the relationship between a parent and a child hierarchy so that when you modify the relationship, the date and relationship are stored.  We call this table “Organizational Timestamps”:
Picture
All the applications I've supported has some sort of scripting action that can perform this logic - whenever the parent field of the BU is updated, create a new "org timestamp" row with the previous and new values as variables.

​Then you will translate all your tables to OLAP – the data warehouse DB – where “incident”, “BU hierarchy”, and “organizational timestamps” tables are bridged together.
Picture
This simplified version of the OLAP cube table could be derived from either a SQL query, R or Python script, or Alteryx job which would handle the logic to populate the right hierarchies based on an incident date value with the dates in organizational timestamp table.
 
Then you can run the report using a BI (business intelligence) application which will capture the historical roll up based on existing incidents (based on dates) and track new incidents under the current hierarchy.  An OLTP is not the right tool for this type of reporting.  A data warehouse is.
1 Comment

Get a Join.Me Account as a Backup

12/5/2015

0 Comments

 
As more prospects and customers are embracing BYOD, that means the Surface Pro 4 your contact just purchased won't be able to see your Cisco WebEx.  It is a known issue that WebEx and Windows 10 are not friends.

To boot, the URL link to load WebEx won't work in Microsoft Edge.  Then when Chrome or Internet Explorer launches the URL, it gives a generic error message.  The official response from Cisco: Windows 10 and WebEx don't work together.  No apparent time for a fix either.  Luckily, for most WebEx customers, there's usually an IT department that maintains that Windows 7 Enterprise is the OS of choice so internal meetings are fine.

So what is one to do when a remote viewer exclaims, "Hey! I am getting an error when I try to load WebEx!"

​Sign up for a Join.Me account!  It's a pretty nice (and FREE) service by the folks at LogMeIn.  They'll give you a free trial of their Pro service for 2 weeks, but their free service is enough for Sales Engineers as a backup or parallel app.

After signing up, downloading the app (only those that share have to download), and logging in, you'll have an intuitive interface to work with.
Picture
The free user will be limited to a one-time code for the meeting, which is fine.  Just read it out loud over the conference bridge.

Free accounts only allow 10 people (including you) into the meeting.  That's plenty especially if you also have the WebEx meeting running in parallel.

Lastly, the major caveat of the free account is that the host can only share his/her screen.  Yes, you read that right, the host is always the presenter and the only the screen can be shared.

I have gotten around that by running both Join.me and WebEx simultaneously AND I have to be the host of the Join.me.  I will always share my screen with Join.me.

Let's hope WebEx gets their act together, but realistically, let's hope IT departments realize that WebEx is an antiquated product with crazy requirements (i.e. needs an extension in browsers to load meeting URL, installs a file by default [instead of loading temporary application by default] for viewers).

0 Comments

Sleep on the "Other Side" of the Bed

12/4/2015

0 Comments

 
Quick travel tip for road warriors.

Hotels structure one side of the bed to be the "center" point.  For example, one side of the bed provides easy access to the alarm clock, remote, and is probably centered for TV watching.

Sleep on the other side where most people do not ever touch!  The mattress will be less used on that side offering a better night's rest for the work in store tomorrow!
0 Comments

My Always Up to Date Apps  for Android and iOS

2/2/2015

0 Comments

 
A phone has become such a congested device that many people have chosen to start from scratch.  However, there will always be apps that iOS or Android can’t provide you out of the gate.  This post is an up to date listing of my current apps on my iPhone and my Android tablet.  The entire set is almost entirely free.  The apps listed aren’t mainstream — I won’t be listing Dropbox and WhatsApp on here or services like Venmo — unless that service/app deserves special recognition.  So without further ado:

​Last Updated (12/18/2017)

Messaging and Voice

  • Hangouts (iOS | Android | Android Dialer) - I have 3 phone numbers: my work cell, my number from high school that I recently moved to Google Voice, and my 415 number from when Grand Central was still around.  Now that MMS messages (except group messaging) are available through Hangouts, I dumped my personal line and am using my work phone as my sole carrier.  The iOS version could be better (it is a pain to start a new text message), but the Android version is married to the system and is fantastic.  I only have good things to say about VOIP with this free service too (1h conference call off of gas station Wifi).
    • ​Now that Google Voice on the Android, at least, supports MMS, I have kept my 617 number with Hangouts and swapped 415 to Google Voice so that there is better phone integration.  I also live in a shoddy reception area so putting my 415 number with ObiHai VOIP has been a great free alternative to a landline.
  • MobileMeet (iOS | Android) - if you work in sales and have an Intercall number, this is a super simple app to join and start conference calls.  VOIP is also supported (but is spotty at best).  Lots of force quits with VOIP.  If the call is important, use it to direct dial one of your phones.
    • ​Most of my meetings are now centralized with WebEx and WebEx can handle VOIP directly in the app so this app is no longer necessary

Maps and Navigation

  • Waze (iOS | Android) - true live traffic and speed traps; still prefer Google in terms of usability, but those two items are the reasons why I will prefer Waze.  You'll want to go into settings and uncheck all the noise outside of the things you care about.
    • ​I can't stand Waze anymore.  There's too much noise as people submit false positives and incidents that don't affect the flow of traffic.  I've also gone through too many shady neighborhoods (Paterson, NJ) where I wouldn't trust the route less traveled.  Google Maps is the way to go.
  • Nokia HERE (Android) - offline map and navigation - a bit CPU intensive, but becomes your GPS when traveling abroad without internet
  • Maps.Me (iOS) - offline map - I love 2D maps and is a skill that is lost on a lot of people these days

Reading

I use Feedly for my feeds.  I dislike Flipboard and the official Feedly app because not everyone has 10 articles to read and I process information in lists, not quarter page ads.
  • gReader (Android) - Most intuitive and best layout of all OFFLINE Feedly readers.  Free version has minimal ads.
    • ​I've switched to Feedly's app.  I am less reliant on RSS readers these days.
  • Newsify (iOS) - Same as above, but for iOS.
  • Google News and Weather (Android) - Instead of visiting CNN, then NYTimes, and then Cornell Daily Sun, I enter those zip codes and I am in one source.
  • Pocket (iOS | Android) - Offline Article Save and Read.  I used to use Instapaper until they started charging.

Web and PDA

  • Chrome (iOS | Android) - bookmark synchronization and password sync makes life too easy especially when I own 2 different mobile device OSes and 2 different PC OSes.  Sorry, can’t use IE or Safari for that.
  • Acompli (iOS | Android) - Recently bought by Microsoft, but offers great Exchange support and has a separate Calendar so you can separate professional and personal.  Also, your IT guys can’t remotely wipe your device, just the contents of the app.
    • ​I use Nine for Android now.  I don't have to put a crazy passcode on my phone just to check email.
  • Sunrise (iOS) - Best calendar app for iOS.  Period.
    • ​This no longer exists
  • GoTasks (iOS) | Tasks Free (Android) - Synchronizes your to-do lists with Google Tasks.  That’s all I need.  There are better To-do lists out there, but I just need something to write something down and cross off and synchronized on the cloud.

Utilities

  • MiniKeePass (iOS) | KeePassDroid (Android) - Open Source and FREE password manager.  Keep it simple, use KeePassX (Mac) and KeePass Portable (PC) and store the apps and the password file using your favorite cloud provider (I prefer Dropbox).  Create passwords on the desktop and sync/view/use passwords on your mobile device.  Don’t complicate it by creating ones on your mobile device and expecting them to show up on your desktop or cloud storage.
    • ​I've been juggling MiniKeePass and LastPass ever since LastPass became free.  Android accessibility usage is great for logging in and the syncing anywhere is great, but I still don't fully trust it to not remain free.
  • Authy (iOS | Android) - The multi-device version of Google Authenticator.  It also available as a Chrome app.  If you just have one device, then stick with Google Authenticator.
  • Screen Filter (Android) - dims the screen just that much more for battery life and use in the dark
  • Chrome Remote Desktop (iOS | Android) - connects to my desktops when I am away.  Works on any Chrome browser (and Chromebook) also.
  • Genius Scan (iOS) | Google Drive (Android) - Document scanning (i.e. receipts, tax forms, and etc)

Entertainment

  • Plex (iOS | Android) - Will need a Plex server, but you can get access to your movie and tv shows anywhere anytime (where there’s an internet connection).  Getting full access costs $5; and you'll need full access.  For everyone else, use NetFlix!
  • MX Player (Android) | VLC (iOS) - Plays any files thrown at it.  It helps with those 1h30m commutes.
    • ​VLC on the Android works well now too
What are some of your favorite apps?
0 Comments

Projecting Intelligence

1/30/2015

0 Comments

 
Almost all B2B sales are lost and won because of people.  That's why the best sales organizations hire and retain the best even at a premium.  To be the best sales engineers you not only have to be knowledgeable in your customer's business but also have enough social etiquette so that your prospects actually like you as a person.
While, we can treat our LinkedIn profile like a dating profile and list all the reasons why a person should trust us, that initial meeting and its human interaction will determine whether there is a professional fit.  I stumbled across this article on "How to Look Smarter" on WSJ which should give almost everyone an "intellectual" edge in that first meeting.

Read More
0 Comments

HubSpot SideKick for Sales Engineers

12/5/2014

1 Comment

 
I recently installed SideKick at the recommendations of one of the sales reps that is also an excellent prospector.  While it is catered towards prospectors, sales engineers can use this as well.  Let's start of with the product itself.  SideKick's vision is to facilitate the business development by turning this:
Picture
into this:
Picture
and they do this in a number of ways.  See this blog.  If I was a prospector, sign me up.  Up to 200 notifications/mo is free and the first month is all you can consume.

For sales engineers, there are a few uses:
  • Want proof that the sales rep really isn't reviewing your collateral?  Sidekick can track whether attachments are opened and/or URLs have been clicked.
  • Want to make sure that follow up you sent the customer has been read?  Sidekick can track e-mail opens.
  • And sometimes, you just want to know...

Read More
1 Comment

Windows' Settings while using WebEx

10/30/2014

0 Comments

 
Aesthetic details matter.  WebEx screws them up on a PC.  Nothing bad ever happens on a Mac so this article is only about PCs.  Don't let it happen to you on your next demo.

Two things happen when you share your screen on WebEx:
  1. Window Color changes to "Windows 7 Basic"
  2. ClearType is turned off

Read More
0 Comments

Mirroring your Mobile Device

10/28/2014

0 Comments

 
Mobility is king.  Every prospect will inevitably ask "Do you have a mobile application?"  If your software has a mobile app or even a mobile interface, you'd be doing your product a disservice by showing PowerPoints with screen shots.
Picture
PowerPoints are great backups, but that's just it -- they're backups.  Imagine if you mailed in your software demo by showing screen shots?  You really should be working mobile applications into your demonstration.  When I joined NetSuite, I sat in on a number of demos as part of my ramp and mobile was an afterthought and not positioned as a differentiator.  As part of my checkpoints, I demo-ed via WebEx our mobile app directly from my iPhone.  We quickly worked it into our golden demo flow and impressed our panelists.  Technology sells -- Everyone wants to know how you did that.

I will be outlining my preferences for mirroring your mobile screen -- both for iOS and for Android -- on both Macs and PCs.

Read More
0 Comments

Highlighting a Portion of the Screen

10/27/2014

0 Comments

 
Oftentimes, a dashboard or a form can be very busy.  This can be our doing (we want to demonstrate our powerful dashboarding capabilities) or it can be the prospect's doing ("I'd like to see the following KPIs...").  The best way to approach this is still to simplify and remember that less is ALWAYS more.

There will still be times we want to draw the viewer's attention to particular parts of the screen.  What we DON'T WANT to do is move the mouse excessively to bring a viewer's eyes to a section of the screen.  What we WANT to do is to create a theater mode by darkening non-critical (i.e. not part of your story) areas:
Picture
I use an application called Target (by Nullmass).  It's a portable application that hasn't been updated since 2009 for Windows XP, 7, and 8+.  I have yet to find anything like it for the Mac.
Picture
There is no installer.  Simply double click and you'll see the application active in your taskbar.  Now whenever you want to highlight the screen, hit Alt-1 and you'll get cross hairs to draw your rectangle.  There are additional features, but I have found them rather useless -- I do not need to show each click with a ripple so that the viewer counts the number of mouse clicks, outline what I am typing (so when I create some Ctrl-Tab magic instead of a mouse click the viewer won't call me out), or set a countdown timer till the presentation starts (the demo never starts on time, right? -- and if you have time leave the screen on a self-explanatory report instead of the agenda!).

I've checked the Chrome store for an extension that does something similar, but to no avail.  What are some ways you bring focus to a portion of the screen?

0 Comments

Multiple Sessions in Google Chrome with MultiLogin

10/22/2014

24 Comments

 
The problem with any browser is that you are limited to at most 2 concurrent log-ins (with Incognito/Privacy mode).  There are times when you need more.  At NetSuite, all solution consultants use NetSuite to manage appointments within our CRM module, but we often times have to demo or configure one or multiple instances with different credentials concurrently.  While at CA supporting our Clarity PPM solution, I had to switch roles to demonstrate security and/or show different views.  Having more than 2 sessions was mandatory.

The normal workaround is to have another browser like Safari, Opera, Firefox, and/or Internet Explorer active in parallel with the same restriction of 2 concurrent log-ins per application.  But having multiple browsers becomes difficult to manage (Alt-Tab too much) and can be memory intensive and sometimes not even possible (i.e. Chromebook).

Enter MultiLogin for Chrome:
Picture
The extension will add a new icon to your toolbar.  Clicking on that icon (in red above), will add a new tab with a number in front of it.  It is a complete separate session like Incognito and the cache is not stored.  In the example above, I have 3 separate sessions for NetSuite.  I have never had issues with caching or data corruption.  The 4.5/5 star rating speaks for itself.

In everyday life, this is useful too -- have 2 Google accounts?
- Update -
The extension is no longer available on the Chrome store.  I have made a backup of the extension.  It is available here.  Other sites have made alternative suggestions, however, there seems to be some risk (read comments here).  To install it:
  1. Unzip the file onto your computer
  2. In Chrome, go to - chrome://settings/extensions
  3. Check the developer mode if it's not checked yet.
  4. Then click "Load unpacked extension" and choose the extension directory you just unzipped.
  5. You may have to allow Developer extensions, but you should be good to go!
24 Comments

    Categories

    All
    App
    Apple
    Chrome
    Webex
    Windows

    Archives

    December 2017
    December 2015
    February 2015
    January 2015
    December 2014
    October 2014

    RSS Feed

Powered by Create your own unique website with customizable templates.
  • Professional
  • Personal
  • Contact
  • Toolkit