Monday, April 23, 2018

Hybrid Excel Web Application / Consuming Web Services with MS Excel

I'm coming back to write and article on this because I'm building a prototype.

Hybrid Excel Web Application / Consuming Web Services with MS Excel


Tuesday, April 17, 2018

Developer Coding Issues I Encountered this Week 4/19/2018

MS Access Stuff

MS Access / Unable to Use Select Count Distinct

Rounding issues in VBScript where iHours / 24 = 1 when it should have been zero.

Throwing in CSS Sticky Sidebar as I probably need it next week.

Wednesday, April 11, 2018

Helpful Web Developer Info that Came Up Today 04/11/2018 - How do I make a DIV tag a link?

Helpful Web Developer Articles for Issue I encounter on 4/11/2018

How do I make an entire DIV tag a link?

Sample HTML

<a href="" style="display: block;">
  <div class="xyz">
My div contents</div>


How to make simple rounded buttons using CSS

Thursday, March 22, 2018

Excel Formulas: How to Calculate Percentage Change and Avoid Errors when Starting Value is 0

I will be coming back to document this


Where H5 and J5 are two values to compare. H5 is previous month and J5 is the month to compare.

Tuesday, March 20, 2018

How to Make Dynamic Titles for Excel Charts using Excel Pivot Tables

This is one of those blog entries where it is as much for me as for sharing with others.

Making dynamic titles in Excel Pivot charts is something I do often enough that I'll make a note but not often enough that I keep the process memorized.

I could explain but I'm in the middle of a project with a short deadline so for now I'll just post this video as it is a good resource.

Video: How to Create Dynamic Chart Titles in Excel

Sunday, March 18, 2018

Down and Dirty with IIS Log Files using Log Parser 2.2


It is Sunday and I've just spent 30 minutes learning a new and free way to parse and report on my web server's IIS log files.

So if you're like me and have a need to dig in to some IIS web server log files to look for problems but want to do it on the quick and cheap, look no further for Log Parser 2.2 is here.

1. Download the parser from the  Download Page for Log Parser 2.2
2. Install Log Parser 2.2
3. Watch the video below which will show you how to use Log Parser 2.2.

Once you've installed Log Parser 2.2, copy the exe from the install folder to your Windows System 32 folder or just drop it in the folder with your logs. Once installed, you can run the executable file from any folder.

Here is an example of the command line:

C:\temp\logs\logparser "select * from u_ex180131.log" -o:datagrid

After running this command log parser will open with your log data. You can copy it out to excel where you can do your analysis.

Also, I came across this page for a freeware OLEDB extension that says you can use it to query any OLEDB datasource which log parser doesn't support natively.

Good luck and happy coding!

Wednesday, March 14, 2018

Google reCAPTCHA Privacy and Terms of Service links not Working in Internet Explorer 11 (Explained)

Let me preface this by saying, stuff like this is why I have the term "Professional Learner" on my resume and Linked-In profile.

An without further a-do...

This story is something you might encounter when using Internet Explorer 11 with Google's CAPTCHA service (code).  This came up in UAT testing recently for a web product I work on so I thought I would share.  It might save you some time explaining to your customers about cross browser compatibility testing.

First off, Google has a free service for trying to detect bots on your site called "CAPTCHA". CAPTCHA is an acronym for "Completely Automated Public Turing Test to tell Computer and Humans Apart".

Google's free CAPTCHA service called reCAPTCHA requires developers to register your website to get an API key which you will use along with some code to call the API from your site.  Pretty cool stuff, right?

I'm really simplifying this but to render the reCAPTCHA you would insert their code snippet. Make sure the code is loading from a a page using the HTTPS protocol or else it might not work.

    <title>reCAPTCHA demo: Simple page</title>
     <script src="" async defer></script>
    <form action="?" method="POST">
      <div class="g-recaptcha" data-sitekey="your_site_key"></div>
      <input type="submit" value="Submit">
Once the reCAPTCHA is loading on the page, it will be loading its contents in an IFRAME. This is really important to our story!

There are links in the Google CAPTCHA that point to a privacy page and terms of service page on the domain which both have a "target =_blank" attribute on the link. This means these links should open in new windows or tab depending on other pressed keys.

The links are working just fine in Chrome and Firefox and opening in new windows but not IE 11.

What is the issue here?

It could have been earlier than IE 11 but, Microsoft implemented a security feature to restrict links loading in IFRAMES from linking out to a domain other than the one it originally loaded from.

The CAPTCHA code is loading from your but all the links in the IFRAME are pointing to the domain are now all disabled.


Here is a video on how to install Google reCAPTCHA for your website. Good luck and happy coding!

Tuesday, March 6, 2018

The Basics of Salesforce Validation Rules

Salesforce Validation Rules

Validation Rules in Salesforce are used to verify data users enter to ensure it meets the organization's standard.

Validation Rules are evaluated before a record is saved.

Validation Rules can be one of two things, a formula or expression from which evaluate to a true or false value.  If True, then record is saved. If False, then the record is not saved and validation error message is displayed to the end user.

In the video below an example is given.

IF(ISPICKVAL(Ownership, 'Public'), IsNull(AnnualRevenue), false)

To me this looks like an if statement from Microsoft Excel but it is not.

We have the if statement and condition to be met (Must have a picklist value of 'Public') .

So how do you read this?

If the picklist value is 'Public' then the Annual Revenue can't be 'null' or blank (show error to user that annual revenue can't be black for Public companies. If not then let the record be added.

To Sum it Up

Salesforce Valdation Rules are applied no matter how the records are being updated via Salesforce classic or lightning, API or the normal web interface.

When one validation rule fails, Salesforce continues to check all the other validation rules on that object and displays all the errors at one time.

There is no limit to the amount of validation rules as you create per object.

Example Scenario:

You want to make sure that when a lead is entered and there is an email address is entered but you want to make sure that when an email address is entered there is also a phone number entered as well.

This is where we could use a validation rule to ensure the data on leads are validated to ensure that when a lead with an email address is created it must also have a phone number entered or else the record will not save.

This is not my video but it does a good job or explaining Salesforce Validation Rules.

Monday, March 5, 2018

Salesforce Queue Basics

Salesforce Queue Baisics

Wherever a team effort or shared workload is needed in fielding requests then queues are needed.

  • Salesforce Queues are used to assign records that do not have any user as an owner.
  • A user who has access to a specific queue is called a queue member.
  • Queue members can review records in the queue & claim ownership of the ones they want.
  • Queues can only be used with cases, leads, Service Contracts and all the custom objects in Salesforce.
  • Records can be assigned to a queue by manually change the owner field of records or with the help of Assignment Rules.
This is not my video but it does a pretty good job of describing Salesforce Queues.

Salesforce Public Groups

Today I'm going to spend a couple of minutes on Public Groups in Salesforce.

Public Groups in Salesforce are very similar to Security and Distribution Groups in Active Directory.  I was an Active Directory guy in one of my previous roles.  

If you're not familiar with Salesforce or Active Directory, this will still make sense by the time we get to the end of this.

Salesforce has other ways to group user permissions together like role based access via user profiles but let's keep it simple.  

Salesforce Public Groups are just lists of people/users which become a set of users that we'll identify with a group name for future reference.

Public Groups can only be created by Saleforce System Administrators and are used in conjunction with other Salesforce features to help with user access management. 
  1.  Public Group & Sharing Rules determine how records are shared and accessed.
  2.  Public Groups can be used for Access to Reports and Dashboards.
  3.  Public Groups can be used for access to Salesforce Knowledge. 
An important feature of Public Groups is nesting of groups so you can nest Public Groups inside of other Public Groups when appropriate making user management and access to specific resources more streamline and manageable.

This is not my video but it does a good job of explaining the basics of Public Groups in Salesforce.

Hope this helps you!