Wednesday, July 15, 2020

Office 365 Rollback

Office 365:

"C:\Program Files\Common Files\microsoft shared\ClickToRun\OfficeC2RClient.exe" /update user updatetoversion=16.0.12827.20470

Office 2016:

"C:\Program Files\Common Files\microsoft shared\ClickToRun\OfficeC2RClient.exe" /update user updatetoversion=16.0.12827.20470

See the Reddit Post

Wednesday, June 10, 2020

.htaccess cook book, examples, and favourites

All of My Favourite .HTAccess Examples

Wildcard Domain Example #1

This will take your URL request, for and redirect to  Combined with an CNAME Record for @

#### URL Rewrite Handler for Subdomains (by Randall Krause) ####
RewriteCond %{HTTP_HOST} !^www\.dummysite\.com$
RewriteCond %{HTTP_HOST} ^(\w+)\.dummysite\.com$
RewriteCond %{REQUEST_URI}:%1 !^/([^/]+)/([^:]*):\1
RewriteRule ^(.*)$ /%1/$1 [QSA]

Wildcard Domain Example #2

What this does is if user visits:, it will show contents of file: If someone goes to, it will show page: but the URL will remain the same with the subdomain, like and
RewriteCond %{HTTP_HOST} !^www\.example\.com
RewriteCond %{HTTP_HOST} ([^.]+)\.example\.com [NC]
RewriteRule ^/?$ /user/profile.php?name=%1 [L]

Single Argument Example

## example:
## example:
RewriteRule ^cities/([a-zA-Z0-9-_]+).html$ /city-search.php?city=$1

Double Argument Example

RewriteRule ^newsreader/([a-zA-Z0-9-_]+)/([a-zA-Z0-9-_]+)$ /readnews.php?id=$1
RewriteRule ^newspreview/([a-zA-Z0-9-_]+)/([a-zA-Z0-9-_]+)$ /previewnews.php?id=$1


Thursday, May 7, 2020

Wordpress Showing Insecure Icon in Address Bar When Using https

Wordpress Site Shows Insecure Icon in Browser Address Bar When Using https

Here's a common scenario: you build a new wordpress site, and then decide to turn on https after it's fully built, as a result some of your image assets are still referenced with http vs https.  Chrome and Firefox will show "insecure" when they are loaded.  This is how to change that broken lock symbol to a closed lock symbol.

How to Fix

There are add-ons that will try to fix this or you can use URL re-writing, or you could edit the SQL database records and change all http to https.  My preferred method is to dump the WP_POSTMETA and WP_POSTS tables from the Wordpress SQL database, then edit the dump files with vim, then load them back in.

Dump The Tables

Dump the Tables

The dump Files
Using VIM to edit
Use this VIM command
Import them now using source command in mysql


SSH into your server, then dump the tables, then use vim to search and replace all http:// with https://, then save the file and import the tables back into mysql.

Sunday, May 3, 2020

Top Ten Newfangled Concepts in HTML User Interface Design

My List of Newfangled Concepts in HTML User Interface Design

1) React Web Framework or React JS

React is one of the newest kids on the block when it comes to user interface design and development for HTML pages. It was launched in May 2013. See the tutorial below. I am seeing more and more job ads calling for React programmers.  React is free to all. It even has a github where you can get more of it.

2) Angular JS Web Framework

Another new kid on the block.  Angular JS is now obsolete and Angular Web is the new defacto kid on the block. 

Wednesday, April 22, 2020

Find and Remove Incorrect Office 2019 Keys

Find and Remove Incorrect Office 2019 Keys

Remove a bad key that you installed previously. Using cmd.exe DOS prompt in elevated mode.

in this directory
C:\Program Files\Microsoft Office\Office16

Office 2016 / 2019: C:\Program Files\Microsoft Office\Office16
C:\Program Files (x86)\Microsoft Office\Office16
Office 2013: C:\Program Files\Microsoft Office\Office15
C:\Program Files (x86)\Microsoft Office\Office15

look for ospp.vbs
Looking for ospp.vbs

Show the keys

Now you can check the license status by running the script called ospp.vbs, which is located in your Office program folder.
cscript ospp.vbs /dstatus
(will show you the keys circled)

Remove the keys

To remove your Office product key, you need to use the /unpkeyswitch, along with the last 5 characters of the product key.
cscript ospp.vbs /unpkey:{last five characters of product key}

Using key tool


Wednesday, April 15, 2020

How to Convert Cisco 7965G from SCCP to SIP Firmware Load

SIP Firmware Load on Cisco 7965G

First Step is to get the firmware from 3CX

Then follow these steps:

When SCCP is loaded:
    Complete the following steps:

    Unplug the power cable from the phone, hold dows the # key, and
    then plug the power cable in again.

    The phone begins its power up cycle.

    Release the # key after the Speaker button is no longer

    You should see the following message on the phone:

    "Reset key sequence detected"

    Press 123456789*0# within 60 seconds after the Headset, Mute,
    and Speaker buttons begin to flash.

    If you enter this key sequence correctly, the phone displays
    this prompt:

    Keep network cfg? 1 = yes 2 = no

    In order to maintain the current network configuration settings
    for the phone when the phone resets, press 1. In order to reset the
    network configuration settings when the phone resets, press 2.

After SIP is loaded:

Unlock the Config and Set the TFTP Server:

1) Press the Settings button on your 7960 phone
2) press 9 to unlock config, or scroll down to "Unlock Config"
3) Enter "cisco" on the keypad in alpha chars
4) Press Accept button after entering the pass
6) scroll Up to Network Configuration, press Select
7) Locate "Alternate TFTP" option, change to YES
8) Locate "32 Alternate TFTP" item, and then change NO to YES, press YES button, DONT press SAVE button
9) Scroll up to "7 TFTP Server" press EDIT, press "<--"
10) enter, press ACCEPT, then SAVE
11) Phone reboots and contacts your TFTP server

Secret Keystokes for Cisco 7965G

Lock and Unlock the Configuration:  **#   (press settings button on phone then enter this)
Reboot the phone:  **#**  ( press settings button first, then enter this )
Firmware Load:  #  (press & hold # during power up until speed dial lights flash, then enter 1234567890*# )

Sample Dialplan for USA

    <TEMPLATE MATCH="0"              Timeout="1" User="Phone"/> <!-- Local operator-->
    <TEMPLATE MATCH="011*"         Timeout="6" User="Phone"/> <!-- International calls-->
    <TEMPLATE MATCH="0"            Timeout="8" User="Phone"/> <!-- PSTN Operator-->
    <TEMPLATE MATCH="11"           Timeout="0" User="Phone" Route="Emergency" Rewrite="9911"/>
    <TEMPLATE MATCH="w!"             Timeout="1" User="PHONE" Route="Emergency" Rewrite="9911"/>
    <TEMPLATE MATCH=".11"          Timeout="0" User="Phone"/> <!-- Service numbers -->
    <TEMPLATE MATCH="1.........."    Timeout="0" User="Phone"/> <!-- Long Distance -->
    <TEMPLATE MATCH="......."        Timeout="0" User="Phone"/> <!-- Local numbers -->
    <TEMPLATE MATCH="2..."           Timeout="0" User="Phone"/> <!-- Corporate Dial plan-->
    <TEMPLATE MATCH="3..."           Timeout="0" User="Phone"/> <!-- Corporate Dial plan-->
    <TEMPLATE MATCH="*"              Timeout="15"/>             <!-- Anything else -->

dialplan reference:

Here are some resources that may help

The Sepmac

Patching Asterisk to Work on Cisco Phones

Firmware is Here

Download The SCCP and SIP Firmware

Sunday, April 12, 2020

How to Make A Self Signed SSL Certificate Using apache openssl

Make Your Own Self Signed Certificate Using openssl

Step 1: use openssl command

this will make a new key called server.key and a new certificate called server.crt. the expiration will be 2 years from now.

openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout server.key -out server.crt

openssl session
This command will make a file called server.key, containing your private key, with no password, and a server certificate called server.crt.

Make a Certificate Request and A Password Protected Private key

openssl req -new -passout pass:"Secret" -keyout priv-pass.key -subj "/" -out server.csr -sha512 -newkey rsa:2048

making a new private key with password=Secret
Decrypt the private key with your password
openssl rsa -in priv-pass.key -passin pass:'Secret' | head -n2

decrypting the key


Thursday, April 9, 2020

Ellie Mae Encompass - Cannot Initialize MS Word

While Printing Custom Forms It Fails with "Cannot Initialize MS Word"

This Fix Below:

1. When attempting to print a custom doc in Encompass, change the Options drop down box, located at the bottom right of the Encompass Print window, to "Print forms with field IDs".
2. Next, click the Preview button at the bottom of the Encompass Print window.
3. Once Microsoft Word opens up, change the view from Read Mode to Print Layout (lower right corner of the Word document).
4. Close Microsoft Word.
5. Change the Options drop down box, located at the bottom right of the Encompass Print window, to "Print forms with borrower data".
6. Click Print.


-Open Regedit

-Back up HKEY_CLASSES_ROOT\TypeLib\{00020905-0000-0000-C000-000000000046}, by right-clicking on it and selecting Export. name and save the KEY in an easy to access location. This will allow you to recover the KEY is anything goes wrong.

-Delete HKEY_CLASSES_ROOT\TypeLib\{00020905-0000-0000-C000-000000000046}, by right clicking on it and selecting Delete

Encompass Form Failure - How to Fix

When Printing Custom Forms in Ellie Mae Encompass you see Form Failure

With Office 2013 or Office 2016, you may suddenly start seeing failures to print custom forms. The fix is very simple.  There are several things to try.  Before you do this, make sure that Adobe Reader is the default PDF viewer, and the App Compatibility flags are not set.

Delete App Compatibility key

Step 1:

Open Microsoft Word, open a new document in Word, then find the Read Mode and Print Layout buttons in the lower right corner of your Word Document. Press Read Mode, then Press Print Layout.
Press 1, then press 2

Step 2:

Leave Microsoft Word open with a new document open. Print a custom form now. Word will automatically close out.


There are some other things to try.  This other blog entry has more things to try out.  Another fix is to read this too.

Wednesday, April 8, 2020

Shoretel Director - Locked Out Until Full License Compliance Has Been Restored. Get Back In!

Suddenly Without Warning You Are Locked Out of Shoretel Director

You or your phone system administrator has made a change that violated your licensing, such as added softphones or granted some user Workgroup Supervisor roles. And 45 days went by and nobody noticed the red warning banner. Now you are locked out for good.  That's real cute, thanks guys. You need to call Shoretel TAC to unlock it. You may even need to call your "partner" Grrrr....  Unfortunately, the only fix is to add more licences to come into compliance again.  Furthermore, you may have to pay for another compliance token.  Fortunately, there IS another way to weasel your way back into Shoretel Director so you can comply with the licencing.  Our method of weaseling back in is to edit the MainFrame.asp front end director landing page.  First step is to use RDP to logon to the console of your HQ server.  In this excercise, we will show you how to do this with Shoretel 14.2 (build 19.82)  This method will work with Shoretel versions below 15.  With newer versions of Shoretel Connect and Mitel Connect, the method is similar but the ASP files are long gone, and you will have to edit the NGINX files instead. Come back later and we will figure that out too.
Locked Out of Shoretel Director

To unlock it, you need to find the shoretel director landing page html file.
Find and edit the landing page
Now you need to edit the MainFrame.asp code to comment out the locking section
Comment Out these lines and save the file
Edit the page and save the changes. Now open Director in Internet Explorer and you will find that you are able to make changes to the configuration again.

Once you are in compliance again, undo the changes to MainFrame.asp.

Update for Mitel Connect Versions 21.82, and 21.87 and Beyond

The next generation of Shoretel (21.82) and Mitel (21.87) Connect are completely new and re-engineered around a new NGINX and "Ruby on Rails" web framework.  The Ruby back-end code indicates the presence of many backdoor, testing and development hacks that were left behind.  In my opinion the entire web framework is a hack. It is a hacked-up mess of Ruby, mysql, and web technologies.  The license_helper.rb file is a particularly interesting ruby module that could be the key to unlocking locked up servers.

See our other Shoretel related blog entries using this link. If this post helped you out in some way or you would like to add your two cents worth, please leave us a comment.

Sunday, April 5, 2020

Shoretel CDR Database Schema Upgrade 19.XX to 21.82

Schema Upgrade Script Before Import Old Records

Immediately after upgrading from Shoreware 19.XX to Shoreware 21.82, you will want to import your old CDR records.  Before you can do that, you must upgrade the old CDR records by adding some new fields.  My upgrade script will take your old CDR and add those fields.  To use it, import your old CDR into a stand-alone mysql instance and then upgrade it using my handy script, then export it out, finally import the records into your Shoreware director.

Create a Stand-alone Instance of the CDR database

drop database shorewarecdr;
CREATE DATABASE shorewarecdr;
GRANT ALL ON shorewarecdr.* TO st_cdrreport@localhost IDENTIFIED BY 'passwordcdrreport';
GRANT ALL ON shorewarecdr.* TO `root`@`` IDENTIFIED BY 'passwordcdrreport';

Upgrade the old CDR

Alter table `agentactivity` Add `TenantID` int(11) NOT NULL DEFAULT '1' AFTER `Archived`;
ALTER TABLE `agentactivity` Add `ClusterID` int(11) DEFAULT '0' AFTER `TenantID`;

Alter table `audio_attendee` Add `TenantID` int(11) NOT NULL DEFAULT '1' AFTER `is_host`;
ALTER TABLE `audio_attendee` Add `ClusterID` int(11) DEFAULT '0' AFTER `TenantID`;

Alter table `call` Add `TenantID` int(11) NOT NULL DEFAULT '1' AFTER `ConfAdjDuration`;
Alter table `call` Add `StartTimeUTC` datetime DEFAULT NULL AFTER `TenantID`;
Alter table `call` Add `EndTimeUTC` datetime DEFAULT NULL AFTER `StartTimeUTC`;
ALTER TABLE `call` Add `ClusterID` int(11) DEFAULT '0' AFTER `EndTimeUTC`;
ALTER TABLE `call` Add `RelatedCallGUID` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL AFTER `ClusterID`;

ALTER TABLE `connect` ADD  `TenantID` int(11) NOT NULL DEFAULT '1'  AFTER `AOC_E`;
ALTER TABLE `connect` ADD  `ProfileID` int(11) DEFAULT '0'          AFTER `TenantID`;
ALTER TABLE `connect` ADD  `AccountID` int(11) DEFAULT '0'          AFTER `ProfileID`;
ALTER TABLE `connect` ADD  `StartTimeUTC` datetime DEFAULT NULL     AFTER `AccountID`;
ALTER TABLE `connect` ADD  `EndTimeUTC` datetime DEFAULT NULL       AFTER `StartTimeUTC`;
ALTER TABLE `connect` ADD  `FPGSync` tinyint(4) DEFAULT '0'         AFTER `EndTimeUTC`;
ALTER TABLE `connect` ADD  `FCLSync` tinyint(4) DEFAULT '0'         AFTER `FPGSync`;
ALTER TABLE `connect` ADD  `DMSync` tinyint(4) DEFAULT '0'          AFTER `FCLSync`;
ALTER TABLE `connect` ADD  `SwitchName` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL  AFTER `DMSync`;
ALTER TABLE `connect` ADD  `ClusterID` int(11) DEFAULT '0'  AFTER `SwitchName`;
ALTER TABLE `connect` ADD  `PartyDID` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL AFTER `ClusterID`;
ALTER TABLE `connect` ADD  `ExternalSIPCallID` varchar(512) COLLATE utf8_unicode_ci DEFAULT NULL  AFTER `PartyDID`;

ALTER TABLE `mediastream` ADD `TenantID` int(11) NOT NULL DEFAULT '1' AFTER `CallLegType`;
ALTER TABLE `mediastream` ADD `ClusterID` int(11) DEFAULT '0' AFTER `TenantID`;

ALTER TABLE `queuecall` ADD  `TenantID` int(11) NOT NULL DEFAULT '1' AFTER `ServerName`;
ALTER TABLE `queuecall` ADD  `ClusterID` int(11) DEFAULT '0' AFTER `TenantID`;

ALTER TABLE `queuedepth` ADD  `TenantID` int(11) NOT NULL DEFAULT '1'  AFTER `QueueDepth`;
ALTER TABLE `queuedepth` ADD  `ClusterID` int(11) DEFAULT '0'  AFTER `TenantID`;

ALTER TABLE `queuestep` ADD  `TenantID` int(11) NOT NULL DEFAULT '1' AFTER `Hunting`;
ALTER TABLE `queuestep` ADD  `ClusterID` int(11) DEFAULT '0' AFTER `TenantID` ;


Export the newly upgrade CDR

mysqldump --user=st_cdrreport --password=passwordcdrreport   --no-create-info  shorewarecdr call connect mediastream queuecall queuedepth queuestep > dump.sql
mysqldump --user=st_cdrreport --password=passwordcdrreport  shorewarecdr agentactivity > dump2.sql

Saturday, March 28, 2020

Wordpress wp-members customization - login failure message

How to Change the Message Displayed to Users When They Logon to WP-MEMBERS pages

The default link shown to users when they fail to logon is just URL/wp-profile which is just plain stupid. You can change it to a custom logon page.

You will be editing these files:
dialogs.php, class-wp-members.php and api-forms.php
full paths:

Step1: Add a handler in api-forms.php

If you have a php file called login.php then it will show this link in the failure message. Add this near the bottom of the file.
...append this function to the end of api-forms.php...

function my_login_failed_msg( $str )
    // The generated html for the login failed message

    // is passed to this filter as $str and includes the

    // formatting tags. You can change it or append to it.

    $str = str_replace("/my-profile/", "/login.php", $str);

    return $str;

Step 2: Add this to class_wp_members.php

... add this line to a function called load_hooks() inside class_wp_members.php, add it near the end of the function right before the final IF statement.
add_filter( 'wpmem_login_failed', 'my_login_failed_msg' );

Step 3: Customize the wpmem_inc_loginfailed() failure handler

Find this in dialogs.php then add something to heading_before. By default this array element only has h2 in it. you can add an H1 element to spruce it up.

        $defaults = array(
                'div_before'     => '<div align="center" id="wpmem_msg">',
                'div_after'      => '</div>',
                'heading_before' => '<h1>Smardii Partners</h1><h2>',
                'heading'        => $wpmem->get_text( 'login_failed_heading' ),
                'heading_after'  => '</h2>',
                'p_before'       => '<p>',
                'message'        => $wpmem->get_text( 'login_failed' ), // @todo $wpmem->error
                'p_after'        => '</p>',
                'link'           => '<a href="' . esc_url( $_SERVER['REQUEST_URI'] ) . '">' . $wpmem->get_text( 'login_failed_link' ) . '</a>',


Wednesday, March 4, 2020

The QuickBooksDBXX service on Local Computer started and then stopped

The QuickBooks Database Service Just Starts and Then Stops

A typical small business scenario is to run everything from their Windows Domain Controller, using something like Small Business Server, or just using a single DC in a file server and QB server role. Sometimes the QB Database server will fail to start due to the competition for port 53, that it shares with the DNS server.   The fix is to stop the DNS Server service then start up the QB services first, finally start the DNS Server service.  There is some terrible advice on Intuit's own website. It's just plain wrong.  Do not try to reinstall Quickbooks Server.  The solution is to delay the start of DNS services, and to change the service user of the QB servers to QBDataServiceUserXX

Saturday, February 29, 2020

TDI Media Driver Service won't start after upgrade to Version 21.82.2123.0

TDI Media driver service won't start after upgrade to version 21.82.2123.0

This note applies to Shoretel Servers running on Windows Server 2008 R2 Enterprise.

Shoreware TDI Media Driver Service fails to start because of a digital signature issue.
Resolution: Install the microsoft patch that adds SHA-2 certificates on new .sys drivers
after jan 1, 2016. Or just use the old pre-2016 version of TDIMedia.sys

Resolution Your system will require the patches if your server is running Windows Server 2008 R2 Standard or Enterprise.

See Advisory 3033929 then download and install the patches as needed, then reboot.

for 2008 Server R2

Or for 2008 Server


Shoretel Upgrade Process

For shoreware director servers running Windows 2008 R2 Enterprise x64, that have not been updated since 2015.  Shoretel TAC advises not to allow automatic windows updates.
  • Install the SHA-2 patch from KB3033929
  • then install Shoretel 21.82.2123.0 onto Shoretel 19.46.1802.0, this would upgrade your shoretel 14.2 to shoretel connect
  • Then install Firefox
  • Re-install your custom CDR database modifications that you had previously.
  • Import your old CDR records because they were wiped out during the upgrade

Thursday, February 27, 2020

You Get Kicked Out of Encompass When Printing Forms

Encompass Quits Suddenly When Printing Forms the Second Time

Suddenly and without warning the app just quits right after printing a custom form. It usually happens when you print for the second time.  The first time you print the form and show it to your Encompass expert it works fine. Then you try it again after she leaves, then it happens.  The Fix is to edit the windows registry and delete the App Compatibility flags

Fix for Printing when it just quits suddenly or you get kicked off

1.  open regedit.exe
2.  open key
Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
delete the key within this branch.

3. and then open key
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
delete any encompass.exe related keys within this branch.

Delete This Key and Others Similar to It

Wednesday, February 26, 2020

Intuit Lacerte 19 Fatal Application Error and Exit [ Fixed with Database Rebuild ]

How to Fix Intuit Lacerte Fatal Application Error and Exit by Rebuilding the Database


Recently, Intuit Lacerte 2019 have shown a propensity to suddenly exiting immediately after startup or when switching between modules.  Furthermore, Lacerte 2019 can become very slow and laggard when switching between clients.  As is the case, often the module's database is fouled and switching to it will immediately crash the application with a pop-up dialog that says "EXITING APPLICATION" See the image below.  It is caused by a software defetc AKA "bug" in the application that is triggered by using the e-file utility.  E-File causes database corruption.  Often there will be left-over URN files in the Lacerte shared drive.  URN files are semaphore files that indicate a user is logged on. There is no need to re-install the application as instructed on the Intuit Pro-Connect community.  The instructions apply to Lacerte 2019, to use with Lacerte 2018, just change all 19 to 18.   The Fix is to delete the URN files and rebuild the database.

It happens to lacerte 2018

and it happens to 2019

How to Fix with CLPACK

Before doing anything at all to your Lacerte module's database files, you must make a backup of the database.  Use WinRar or Winzip to make an archive of the whole directory.   Furthermore, you need to tell all users to exit from Lacerte.  You will need to use CLPACK rebuild the suspect module's database files. Each module has a database of files. On your server, you will have a folder DRIVE:\Lacerte\19tax\XData where the X is I for individual, P for partnership, C for corporate.  For example you may have:  V:\Lacerte\19tax\IData for your indivivual module's files. Use the Lacerte Database Repair Utility, on a client computer, which is located in c:\Lacerte\19Tax\ and is called 19clpack.exe

Step 1: Find CLPACK in c:\Lacerte\19Tax\  called 19clpack.exe,

Step 2: Run it, by double-click, then fill in the datapath (it may auto-populate)

Step 3: In CLPack, select a tax type that is suspect, then fill in the correct datapath to the database
Step 4: Choose "Reindex/Repair" The press Start, then wait until completion. then press Reindex Calendar
If you see this message: it indicates that other users are logged on, please tell them to Get Out! If you continue to see it even when no more users are logged on, then you will need to delete the URN files.
This Error indicates that URN files are present
To delete them, open the explorer and go to the Lacerte server drive and then into the 19tax directory, then into IDATA, you will find an URN directory. Delete the files within it.  Also find the option19 directory and then find the URN folder and delete it's contents too. Here's an example of what you will find:

Finally, once you remove the URN files, then press the Start button on the database repair utility program. When finished, this is what you will see.

Step 5: Verify that "no Errors detected" appears in the messages, then press the "Reindex Calendar" button.

Optional Step 6:  Reset the Client Grid
This will fix issues with switching betwen modules

Edit the Lacerte 2019 short cut from your local desktop, (right click, then properties)
ADD TO TARGET APP IN SHORTCUT, append CLGRID to the program arguments. Like this:
C:\Lacerte\19tax\w19tax.exe CLGRID
Save it, then double-click on the icon
finally delete all URN files from share drive server folder and
local c:\lacerte folder

Tuesday, February 4, 2020

Ellie Mae Encompass: Error encountered while downloading manifests [how to fix]

Encompass Starts Up and Shows a Dialog box with "Error Encountered While Downloading Manifests

Encompass Startup Error

This error indicates that the application has not downloaded the correct manifests for your Encompass client ID. It usually means that the client ID is incorrect or has a E following the number. Usually the client ID starts with BE and follows by some numbers. For example:  BE12345678 there are usually 8 digits following the BE, If you are not sure, check with your encompass administrator. Don't try to guess it, or you will end up with an even bigger mess.

How to Fix

Use the remove-uac application to cleanup and scrub the offending manifests and other artifacts. You can find remove uac in c:\SmartClientCache\Apps\Ellie Mae\Encompass

Remove-uac dialog box
After you run this and cleanup all of the files in this folder. You will see most of the files diasspear. Now you should run the app luancher from:  "C:\SmartClientCache\Apps\Ellie Mae\Encompass\AppLauncher.exe"

Enter the correct client ID, and then run it to download all of the correct manifests.

Hire An Encompass Pro Today

Are you still googling around for solutions to your Ellie Mae Encompass problems?  Are you ready for URLA?  How is your compliance management? How is your underwriting and loan processing operations keeping up with Encompass? Do you still run Encompass on Windows 7 and need to upgrade before January? Consider hiring Encompass experts and leave all your software worries to them.  Check out our services that we offer in Southern California and beyond.  Our hourly rates are quite low by industry standards.  In the range of $95 to $125/hour depending upon complexity. Eleven Dimensions Technologies offers onsite support and remote support for Ellie Mae's flagship product.  Call our small business services department at (949)371-5079

Saturday, January 18, 2020

CSS Grid Layout in Stupid Internet Explorer 11 using -ms styles

How To Get Your Web Pages to Display CSS Grids in IE and Chrome

All of us web developers know that IE 10 and 11 cannot display grid layouts like FireFox and Chrome.  In fact we know that Microsoft is lagging behind on their support of standards in their IE browser. Thanks Steve and Bill!   However some of us are discovering that Edge can display them kind of correctly now.  Unfortunately, Edge is as stupid as IE.   If you developed fantastic looking grid layout pages for Chrome and do not want to revert back to old fashioned table layouts, I have the ultimate solution for you. It's called vendor extensions.
First thing to do is to drop some of your CSS into the autoprefixer to allow it to add new MS vendor extensions. Then you add your new CSS into your sheets.
If you had this CSS and it worked in Chrome, you will then add -ms-grid and -ms-grid-columns. Plus you will also add .ms-grid-row and -ms-grid-column to each row/column cell.

.grid-container {
  display: grid;
  grid-template-columns: auto auto auto;
  background-color: #2196F3;
  padding: 10px;

Then you will get this out of the autoprefixer. just add the -ms elements to your CSS.

.grid-container {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: auto auto auto;
  grid-template-columns: auto auto auto;
  background-color: #2196F3;
  padding: 10px;

Then you need to add these CSS elements to tell stupid IE where to put each cell, or it will overlay everything in the first row/column. duh.

.rc11 { -ms-grid-row: 1; -ms-grid-column: 1; }
.rc12 { -ms-grid-row: 1; -ms-grid-column: 2; }
.rc13 { -ms-grid-row: 1; -ms-grid-column: 3; }
.rc21 { -ms-grid-row: 2; -ms-grid-column: 1; }
.rc22 { -ms-grid-row: 2; -ms-grid-column: 2; }
.rc23 { -ms-grid-row: 2; -ms-grid-column: 3; }
.rc31 { -ms-grid-row: 3; -ms-grid-column: 1; }
.rc32 { -ms-grid-row: 3; -ms-grid-column: 2; }
.rc33 { -ms-grid-row: 3; -ms-grid-column: 3; }
.rc41 { -ms-grid-row: 4; -ms-grid-column: 1; }
.rc42 { -ms-grid-row: 4; -ms-grid-column: 2; }
.rc43 { -ms-grid-row: 4; -ms-grid-column: 3; }
.rc51 { -ms-grid-row: 5; -ms-grid-column: 1; }
.rc52 { -ms-grid-row: 5; -ms-grid-column: 2; }
.rc53 { -ms-grid-row: 5; -ms-grid-column: 3; }

This is how these .rcNN will be used in each grid cell. This is a snippet of HTML from a form.

      <form action="registration.php" method="post" id="subForm" style="margin: 10px 0 8px;">
          <div class="grid-container">
             <div class="grid-item rc11">
             <span>First Name</span>
             <input class="f_left" type="text" name="firstname" id="firstname" value="First Name" onkeyup="clean('firstname')" onkeydown="clean('firstname')" maxlength="40"
               onfocus="javascript:if(this.value=='First Name') {this.value='';}" onblur="javascript:if(this.value=='') {this.value='First Name'}" />

             <div class="grid-item rc12">
             <span>Last Name</span>
             <input class="f_left" type="text" name="lastname" id="lastname" value="Last Name" onkeyup="clean('lastname')" onkeydown="clean('lastname')" maxlength="40"
               onfocus="javascript:if(this.value=='Last Name') {this.value='';}" onblur="javascript:if(this.value=='') {this.value='Last Name'}" />

             <div class="grid-item rc13">
             <span>Email Address</span>
             <input class="f_left" type="text" name="email" id="email" value="Email Address" onkeyup="clean('email')" onkeydown="clean('email')" maxlength="40"
               onfocus="javascript:if(this.value=='Email Address') {this.value='';}" onblur="javascript:if(this.value=='') {this.value='Email Address'}" />

             <div class="grid-item rc21">
             <input class="f_left" type="password" name="password" id="password" value="Password" onkeyup="clean('password')" onkeydown="clean('password')" maxlength="40"
               onfocus="javascript:if(this.value=='Password') {this.value='';}" onblur="javascript:if(this.value=='') {this.value='Password'}" />

             <div class="grid-item rc22">
             <span>Phone Number</span>
             <input class="f_left" type="text" name="phone" id="phone" value="Phone Number" onkeyup="clean('phone')" onkeydown="clean('phone')" maxlength="40"
               onfocus="javascript:if(this.value=='Phone Number') {this.value='';}" onblur="javascript:if(this.value=='') {this.value='Phone Number'}" />

             <div class="grid-item rc23">
             <span>Company Name</span>
             <input class="f_left" type="text" name="company" id="company" value="Company Name" onkeyup="clean('company')" onkeydown="clean('company')" maxlength="40"
               onfocus="javascript:if(this.value=='Company Name') {this.value='';}" onblur="javascript:if(this.value=='') {this.value='Company Name'}" />

This is how it looks in IE now. (this is the form)