The Unspoken Hero or Silent Killer of your Business

In our busy internet influenced life we often don’t think too much about how being without our electronic stuff would be. Because of a recent electrical storm, I didn’t think too much about it. Until I thought about a nearby restaurant and wondered if they had a particular item on the menu, I immediately grabbed my tablet, turned it on, then it hit me, the power is out and there is no internet (duh!). Imagine this same scenario but this time we need to send an important document, a powerpoint presentation, or even a contract. But, instead of just the electricity being down we’re permanently down because our computers drive has just crashed.

The silent killer is definitely the outage, and not having access to our data. We depend on it, and it would destroy our business without it. Even for a short time I couldn’t last long without the internet.

Most of the time being a computer consultant I go about doing my regular tasks. These tasks are unseen by customers and occur on an ongoing basis, its just part of the job to spend so much time working with backups. Recently with my new “Managed Service” offering I changed my strategy because of the difference between a consultant that is called when things just break, and a true “Managed Service” provider.

There are several factors to consider when creating a good backup plan. What kind of business is involved? How long could this customer be without their files? How many days could they gap if they lost part of their information? If a ransomware attack occurred how are the backups stored? What if a tornado landed?

Computer Hardware

Certainly, the list can go on, but, taking the most important ones and developing the plan is what a good consultant and a “Managed Service” provider do. I just started implementing mock ransomware attacks on my managed service clients as an ongoing test to make 100% sure they are ready. Have concerns that when your network crashes you’re ready? Give me a call, I’ll be happy to offer a 68 point network review at no cost. In the Dallas / Ft. Worth area call 972-571-4808.

Time face
What was your time?

Should you want to see how long you could go without your network or internet connection, turn off or unplug your electronic devices and see how much time it takes you before you reach for one.



Driving Miss Lazy

We all hear about distracted driving

You’re driving down the highway and come upon a car going about 15 MPH below the speed limit and they have a little weave to them. Your first thought is “They must be boozing” then after some time, they move over to another lane. As you pass them you notice them on their cell phone or texting on their cell phone. Even though some cities have doled out some hefty fines for texting and driving ($800.00 plus), it continues.

It is very difficult to not answer a text when you are driving. Even using voice commands, it still doesn’t get every punctuation or inflection.

“That newbie if he had as many miles driving experience as I’ve had…”

Sometimes we think that other drivers aren’t as experienced as we are, you begin to think “That newbie if he had as many miles driving experience as I’ve had…” that’s normal to think, after all, you get good at things the more experience you’ve had.

The wake-up call

After you’ve hit a parked car will you feel the same? It’s been years ago, but I made that mistake. I make it a point now to never, touch the phone when driving.

Car Wreck
Car Wreck

I use voice commands if I have to text when driving, but I shouldn’t even do that. So, I’m thankful I wasn’t seriously hurt, and neither was anyone else. But, with the current development of computer-aided driving, there’s hope that in the near future technology will have an answer.

Plus, those air-bags hurt like crazy!


Easy method for doing a Copy and Paste that works in all browsers using ASP.Net

The Task

I recently had a task for users to easily copy information displayed in a Gridview, then paste it into another application. They only needed a few pieces of information from the GridView to be copied. I searched Google for some quick code that I could plug in and make it possible. I quickly found some solutions, but, they only worked for Internet Explorer. That’s a problem because my customer only uses Google Chrome. I tested what I thought were the top 5 of the solutions, but I could not get them to work with Google Chrome, I did eventually solve the problem, but, it was easy 10+ hours later with trial and error. I thought my solution might help others, so here goes.

The HTML Page

In my ASPX page I added a LinkButton and a Hidden field inside my GridView’s TemplateField where I also had my existing checkbox to make a row selection. I placed the LinkButton just below it so it would be easy for the user’s to click right away and not have to scroll right, just click, go to their other application and paste. Just a note about security, there is a security issue because you really don’t want a website you visit to have control of your computers clipboard (where the information is temporarily stored during a copy and paste). For that reason a user interaction has to be performed (in this case a LinkButton), which signals that the operation is OK to do.

                        <asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" AutoGenerateColumns="False" DataKeyNames="ReportID" HorizontalAlign="Left" ShowFooter="True" AllowSorting="True" OnSorting="GridView1_Sorting">
                                        <asp:CheckBox ID="CB1" runat="server" onclick="Check_Click(this)" ClientIDMode="Static" />
                                        <asp:LinkButton ID="lbCopyClipboard" ClientIDMode="Static" runat="server"><span style="font-size:12px;background-color:paleturquoise;">CB</span></asp:LinkButton>
                                        <asp:HiddenField ID="CBData" ClientIDMode="Static" runat="server" Value='<%# GatherCB(Eval("Project"), Eval("Job_No"), Eval("Service1"), Eval("Service2"), Eval("Service3"), Eval("Service4"), Eval("Time"), Eval("Technician"))%>'/>
                                    <ItemStyle Width="20px" />
... (rest of the gridview specification)...

Looking at the code you can see that the actual clipboard data I’m going to send is in the HiddenField I created a “GatherCB” function to format the data I’m going to send to the clipboard.

Add this Javascript to your documents Head section

        function copyToClipboard(thistext) {

            // Create a "hidden" input
            var aux = document.createElement("input");

            // Assign it the value of the specified element
            aux.setAttribute("value", thistext);

            // Append it to the body

            // Highlight its content

            // Copy the highlighted text

            // Remove it from the body



Now the Codebehind…

First I’ll start with my “GatherCB” function, so you can see how I assembled the data that I’m going to copy to the clipboard, then the actual function that copies the text from the LinkButton, this code is vb, but you can easily convert it to c# with an online converter there is one available from telerix here.

    Protected Function GatherCB(PJName As String, PJNo As String, Svc1 As String, Svc2 As String, Svc3 As String, Svc4 As String, Tme As String, Tch As String) As String
        Dim Ret As String = ""
        Dim MyServices As String = ""
        If Svc1.Trim <> "" Then
            MyServices = " " & Svc1.Trim
        End If
        If Svc2.Trim <> "" Then
            MyServices &= ", " & Svc2.Trim
        End If
        If Svc3.Trim <> "" Then
            MyServices &= ", " & Svc3.Trim
        End If
        If Svc4.Trim <> "" Then
            MyServices &= ", " & Svc4.Trim
        End If
        If Tch.Trim = "" Then
            Ret = PJName.Trim & " " & PJNo.Trim & MyServices & " / " & Tme.Trim & " No tech has been assigned yet "
            Ret = PJName.Trim & " " & PJNo.Trim & MyServices & " / " & Tme.Trim & " " & Tch.Trim
        End If
        Return Ret
    End Function

in the GridView Row databound event...

    Private Sub GridView1_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GridView1.RowDataBound
        If e.Row.RowType = DataControlRowType.DataRow Then
            ' Copy to Clipboard
            Dim button As LinkButton = DirectCast(e.Row.FindControl("lbCopyClipboard"), LinkButton)
            Dim CBData As HiddenField = TryCast(e.Row.FindControl("CBData"), HiddenField)
            button.Attributes.Add("onclick", "copyToClipboard('" & CBData.Value & "');")
        End If
    End Sub

That’s it, a cool and simple way, it works with most browsers. Need something unique for your business computing? Give me a call 972.571.4808.