Monday, August 31, 2015

New Nick Name - "CoDEcAT --- Taking on PHP...

<!DOCTYPE html>
<html>
    <head>
 <title> Challenge Time! </title>
      <link type='text/css' rel='stylesheet' href='style.css'/>
</head>
<body>
      <p>
        <?php
          // Your code here
          class Cat
          {
              public $isAlive = true;
              public $numLegs = 4;
              public $name;
             
              function __construct($name){
                  $this->name = $name;
              }
             
              public function meow(){
                  return "Meow meow";
              }
          }
         
         
          $myCat = new Cat("CodeCat");
         
          echo $myCat->meow();
         
        ?>
      </p>
    </body>
</html>

Wednesday, August 19, 2015

IIS Blowout Corruption

Had IIS on TEST go corrupted yesterday and had to remove and re-install.  I do not know why, but the following firewall setting got cut off and I had to ensure it was enabled.

PORT :443 Insure inbound traffic rule was turned ON.   This was preventing me from accessing the Web site remotely.

Friday, August 14, 2015

Awesome Disclaimer

Disclaimer ###### Inc., provides this publication as is without warranty of any kind, either expressed or implied. This publication could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein. These changes will be incorporated in new editions of the publication. ######, Inc. may make improvement and/or changes in the product(s) and/or programs(s) described in this publication at any time.

Hmm would you use their software for Credit Card Transactions?  Ifffffffyyyyyyy.

Thursday, August 13, 2015

ThreadAbortException with ASP.NET redirect

Response.Redirect("/newpage.aspx", False) HttpContext.Current.ApplicationInstance.CompleteRequest()

Monday, August 10, 2015

Log Date: 8/10/2015 1619 Hours - Never trust another persons code who no longer works with you or cannot be talked to.

15 years and you would think that I would have learned not to trust another developers code who no longer works for the company.  I am at the closing of a very tough conversion for responsive design and the jQuery is not right from the original developers.

UGH 3 hours on this, but got it figured out.

Wednesday, August 05, 2015

Bootstrap implementation disclaimer

Disclaimer – All BootStrap(http://getbootstrap.com/)  Framework changes being made for the mobile upgrade to the www.domain.com Web site require the following testing once the change is made – All testing is performed in all configurations to include Internet Explorer, Firefox, Chrome Web browsers and on all devices from iPhone, iPad, Android devices, desktop computers and more.  If the change does not look correct the time to debug and fix the design can take anywhere from 5 minutes to great number of hours or even days to research and fix in order to ensure the responsive design works for all devices.

Tuesday, August 04, 2015

SQL Server Table Size Report

SELECT
    t.NAME AS TableName,
    s.Name AS SchemaName,
    p.rows AS RowCounts,
    SUM(a.total_pages) * 8 AS TotalSpaceKB,
    SUM(a.used_pages) * 8 AS UsedSpaceKB,
    (SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB
FROM
    sys.tables t
INNER JOIN    
    sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN
    sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN
    sys.allocation_units a ON p.partition_id = a.container_id
LEFT OUTER JOIN
    sys.schemas s ON t.schema_id = s.schema_id
WHERE
    t.NAME NOT LIKE 'dt%'
    AND t.is_ms_shipped = 0
    AND i.OBJECT_ID > 255
GROUP BY
    t.Name, s.Name, p.Rows
ORDER BY
    t.Name

Friday, July 31, 2015

Thursday, July 23, 2015

First Byte Time “FBT” www.webpagetest.org

First and foremost I hope this helps some others, I find it very important to share knowledge that will help others to improve their Web sites on the Internet.

I have been scratching my head trying to figure out why I was receiving an “F” rating on www.webpagetest.org for First Byte Time “FBT”.  After some research and additional testing on www.shoeshow.com I have come to the following conclusions:

Reasons why First Byte Time takes so long
  1. Number of requests/responses needed to build the page
  2. Does the page have a lot of Dynamic content on the page (aka how many database calls are going back and forth for data)
  3. Size of the overall page
  4. Size of CPU and MEMORY of the HOSTING SERVER. The more powerful the SERVER the faster processing you will receive. 
  5. Do you have a VM Server or a Dedicated Server

My test sample was for the home page of www.shoeshow.com I got an “F” for FBT every time, that is because this page has a lot of dynamic content and unless I dissect and rebuild this page it will continue to receive an “F” although the overall page is loading in under 2 sec.  However, If I go to https://www.shoeshow.com/reward-points it gets a “B” because there is very little dynamic or programming on that page and not many images.  Finally when I run our https://www.shoeshow.com/404.aspx we get an “A” because there is no images and no coding.


My overall opinion is that FBT is important, but can also be a false/positive.  

And Finally --- Utilize a CDN if you want a fast responsive Web site.  I cannot believe the overall performance of using a CDN ---  Yes I will plug https://www.akamai.com/ 

Wednesday, July 15, 2015

Remove Trailing Comma from List of Strings

myList.RemoveAt(myList.Count - 1);

Boot Strap Search Box with glyphicon glypicon-search

Adding to Code Library OPEN SOURCE

<div class="row">
    <div class="container">
        <div class="col-md-offset-3 col-md-6 col-md-offset-3">
                <div class="input-group">
                  <span class="input-group-btn">
                      <input type="text" id="txtGlobalSearch" class="form-control" placeholder="Search Site..." onkeypress="return submitglobal(this, event);"/>
                      <button type="button" class="btn btn-default" runat="server" onclick="GlobalSearch(); return false;"><span class="glyphicon glyphicon-search"></span></button>
                  </span>
                </div><!-- /input-group -->
          </div><!-- /.col-md-12 -->
        </div><!-- Container -->
</div><!-- Row -->

Monday, July 06, 2015

Caching --- How to ensure you optimize

IIS, Optimising Performance, 304 status codes, and one stupid browser…

How to prevent 304 responses and be sure to know that Chrome acts different with DEV tools --- Great article by Terry Brown... http://idisposable.co.uk/2011/03/iis-optimising-performance-304-status-codes-and-one-stupid-browser/#comment-2119464518 


Note when use the Chrome Developer tools looks at two columns ---


Wednesday, June 17, 2015

What is the difference between ByVal and ByRef?

Xiaoyun Li MSFT answers ---

https://social.msdn.microsoft.com/forums/vstudio/en-US/07b9d3b9-5658-49ed-9218-005564e8209e/what-is-the-difference-between-byval-and-byref

When you write a subroutine or function, you can pass variables from your main code to that subroutine or function.

If you want to pass the value of the variable, use the ByVal syntax. By passing the value of the variable instead of a reference to the variable, any changes to the variable made by code in the subroutine or function will not be passed back to the main code. This is the default passing mechanism when you don’t decorate the parameters by using ByVal or ByRef.

If you want to change the value of the variable in the subroutine or function and pass the revised value back to the main code, use the ByRef syntax. This passes the reference to the variable and allows its value to be changed and passed back to the main code.

For more information about passing Arguments by Value and by Reference, please refer to MSDN document:


C# --- 

.NET Coding: Argument as ByRef (ref in C#) or ByVal (default in C#)

Thursday, June 04, 2015

Time Span Check for Store Hours to show... Using a .NET Literal Control

I have done this countless times, but senior moments are happening.

Const timeHourOpen As Integer = 8
Const timeHourClosed As Integer = 16 'Set one hour less because at 5:00 the store will close

If (timeHourOpen <= DateTime.Now.Hour AndAlso DateTime.Now.Hour <= timeHourClosed) Then
   'Account for greater than 17 hundred hours aka 17:01
                            callCenterOpen.Visible = True
                        Else
                            callCenterOpen.Visible = False
                        End If


That is all for today....

Now I will always refer back to the My Blog to review...

I like how the conditional logic is written

LowerBound <= Value <= Upper Bound

AndAlso for short circuiting

Till Next Post.

Thursday, May 21, 2015

Auto load content on scroll down

First Special Thanks to --- Adam Khoury @ www.DevelopPHP.com - https://www.developphp.com/video/JavaScript/Scroll-Load-Dynamic-Content-When-User-Reach-Bottom-Ajax

I extended this a bit to include some back to top feature.

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="JavaScripAutoScroll.aspx.vb" Inherits="JavaScripAutoScroll" %>
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>JavaScript Auto Populate the page | MMWebs.biz</title>
    <style type="text/css">
        div#statuspositionfixed;font-size24px;}
        div#wrapwidth800pxmargin0 auto}
        div.newDataheight1000px;background#09F;margin10px 10px;}
        .back-to-top {
                        positionfixed;
                        bottom2em;
                        right0px;
                        z-index999;
                        text-decorationnone;
                        color#000000;
                        background-colorrgba(235, 235, 235, 0.80);
                        font-size12px;
                        padding1em;
                        displaynone;
                    }
 
.back-to-top:hover {    
                        background-colorrgba(135, 135, 135, 0.50);
                    }
    </style>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        function yHandler() {
            var wrap = document.getElementById('wrap');
            var contentHeidht = wrap.offsetHeight; // Gets page content height
            var yOffset = window.pageYOffset; //Gets the vertical scroll position
            var y = yOffset + window.innerHeight;
            if (>= contentHeidht) {
                wrap.innerHTML += '<div class="newData"></div>';
                // Ajax call to get more dynamic data goes here
            }
            var status = document.getElementById('status');
            status.innerHTML = contentHeidht + " | " + y;
        }
        window.onscroll = yHandler;
    </script>
</head>
<body>
    <a href="#" class="back-to-top">Back to Top</a>
    <form id="form1" runat="server">
    <div>
        <div id="status">0 | 0</div>
        <div id="wrap"><img src="framework/images/tempMatrix.gif" width="800px" height="1200px" /></div>
    </div>
    </form>
</body>
</html>
<script type="text/javascript">
    var offset = 220;
    var duration = 500;
    jQuery(window).scroll(function () {
        if (jQuery(this).scrollTop() > offset) {
            jQuery('.back-to-top').fadeIn(duration);
        } else {
            jQuery('.back-to-top').fadeOut(duration);
        }
    });
 
    jQuery('.back-to-top').click(function (event) {
        event.preventDefault();
        jQuery('html, body').animate({ scrollTop: 0 }, duration);
        return false;
    });
</script>

Thursday, May 14, 2015

Web site performance - Keys to running a high performance Web site

So you have built your site and lets say it is an eCommerce site which displays tens of thousands of static images and gets 500,000 session per month.

TEST PERFORMANCE
http://www.webpagetest.org/  (Best performance tester on the Web)


However, you are seeing poor performance from servers around the world.  How do you fix this.  Well in the coming weeks I will tell you.  Right now I am doing research on this very thing and I will return to let you know the results.

Test 1 --- Servers hosted in NC and the site being hit from OR--- Currently the site I am supporting has a first hit load time of 6.226 seconds, but with caching this is reduced to 2.750 seconds on the second hit.  However the 6.226 seconds is still way to long.

Test 2 --- Servers hosted in NC and the site being hit from NY --- Currently the site I am supporting has a first hit load time of 4.053 seconds, but with caching this is reduced to 1.319 seconds on the second hit.  However the 4.053 seconds is still way to long.

Test 3 --- Servers hosted in NC and the site being hit from VA --- Currently the site I am supporting has a first hit load time of 5.211 seconds, but with caching this is reduced to 3.428 seconds on the second hit.  However the 5.211seconds is still way to long.


"F" --- Currently the key issues are the First Byte Time --

First Byte TimeApplicable ObjectsTime to First Byte for the page (back-end processing + redirects)
What is checkedThe target time is the time needed for the DNS, socket and SSL
negotiations + 100ms. A single letter grade will be deducted
for every 100ms beyond the target.


The second issue is Cache of static content, however I cannot cache this content as this is an eCommerce site and you have to be sure you follow PCI rules https://www.pcisecuritystandards.org/

How do you decrease this 6.226 seconds issue --- My attempts will be to use Content Delivery Network (CDN) aka EDGE SERVERS.

In the coming weeks I will be updating this blog to give the results.

My work will be to off load the Images, JavaScript Files (JS), and Cascading Style Sheets (CSS), to increase performance of the site.

I will be very curious to see if that 500,000 sessions will increase once we implement CDN to increase the sites performance.

More to come.