1 2 3 4 5 6 Previous Next

Geek Speak

81 Posts authored by: Bronx

In the not so distant past, I wrote a four part series entitled Visual Basic 101 where I explained how to build a bandwidth calculator for SAM component monitors using nothing more than Visual Basic.net. That was a fairly popular series so I thought, "Why not go a step further?"

 

The Step Further.

I have no idea what your environment looks like or what browser you use. However, I can make the assumption that you're always looking to improve it to suit your needs. For example, what browser are you using with SAM and/or NPM? Chrome, Firefox? Do they offer the plug-ins and flexibility you desire? If not, do what I did (in less than an hour mind you). Build your own browser. Below is a screenshot of the Quad browser I just built which enables you to view four screens at once.

quad.png

Now this may not be very practical on a tablet or laptop. But toss it on a projector or an 80" LCD? Wow. Pretty slick! You can have SAM in one corner and NPM in another. You could have four different levels of SAM shown at one time if you like. The possibilities are limitless. The point is simple. This browser is not feature rich whatsoever. What it does do is demonstrate just how quick and easy it is to build your own environment to suit your needs.

 

Lesson 1 - Installation

Before we begin, you'll need to install Visual Basic Express 2010, free courtesy of Microsoft. Click this link to begin downloading, followed by the installation.

 

Lesson 2 - The Environment

Now open Visual Studio Express and select New Project from the File menu. A new window will pop open. From there, select Windows Form Application, then click OK. If you done everything successfully, your screen should now look like this:

ide.png

Now you have all you need to build the Quad Noc Browser, minus the code. Let me explain what you're looking at above:

  • Highlighted in red is a Form. A form, in essence, is a window; hence the name, Windows. A form is an empty workspace where all of your buttons and controls will live, once you put them there. (Notice the form of the browser above with all of its controls.)
  • Highlighted in green is the Toolbox. The toolbox contains all of the controls you will need to build almost anything, including the browser. These controls may be placed on the form as needed. As you can see in the browser, there are multiple web browsers, radio buttons, labels, and so on. These all came from the toolbox.
  • Highlighted in purple is the Properties window. Every control, or object (including the form itself) has certain properties. These properties can be set and changed both before running the program and while the program is running. Think about the properties of television. One property is its color. Other properties include the TV's height, weight, picture resolution, and so on.

 

Homework

Play around with this new environment and try to get comfortable. Explore the controls and the properties of the more common controls.
Tip: Once you place a control on the form and select it, the Properties window will show the properties of that control.

 

In part 2 we'll build the form with all of the controls.

E-Privacy (Postscript)

Posted by Bronx Dec 31, 2012

I find it ironic that as the author of E-Privacy, my own personal PayPal account got hacked into over the weekend. Needless to say, I was robbed of more than $300. I understand the humor here so please take a moment to laugh. Done? Good, now let's learn from this unfortunate event.

 

Password Protection

After speaking at length with the security people at both PayPal and my bank, I have a pretty good picture of how the thieves pilfered my account. My account was the victim of a brute force attack. From what I've learned, the thieves used this method to attack multiple random accounts until access was granted. Once access was granted, the thieves would steal a small sum of money in the hopes of having hacked a corporate account, where the absence of such small sums often goes unnoticed. At the time, my password was eight characters long and a mixture of various alphanumeric characters. I thought a password of this strength was fairly safe seeing as how the code to launch nuclear weapons in the movie WarGames was only ten characters. (Let's pray the government sees this article and ups their nuclear warhead codes to at least 128-bit encryption!)
codes.jpg

The Discovery

Saturday morning I received several emails from PayPal confirming that my "donation to Africa" had been processed. At first, I thought this was just your typical phishing scam. However, as a matter of practice, I manually logged into my accounts (as opposed to clicking the links in the emails - never do that) to verify my money was safe. It was not. The money actually was removed from my bank account via PayPal and transferred out of the country.

 

SolarWinds Customer?

Fortunately for the SolarWinds customer, our products, like NPM, SAM, and WPM, among others, are very secure and continue to grow stronger at breakneck speed.

 

The Postscript

Even after taking all possible precautions, I was still vulnerable. At this point, the only thing left to do was to create longer and more difficult passwords and disassociate my bank account with PayPal (at least temporarily). The good news is I will get my money back. The bad news is...the hassle just sucks.

Riddle Me This...

Posted by Bronx Dec 28, 2012

You are a geek, if for no other reason than reading this post. That's right, I said it. You're a geek, a nerd, a brainiac, and every other name in the book that was meant to be derogatory, yet you secretly embrace. Time to renew your geek license, buddy!

 

Prove Yourself.

Sure, you can quote Star Trek lines, recite the Quadratic Equation, and monitor at least a hundred applications on your network, all without breaking a sweat. So what? All that proves is that you have a decent memory and SolarWinds Server & Application Monitor installed! Let's see if you've still got what it takes to be called a geek. Is your brain still running in high gear? We shall see.

 

The challenge, if you choose to accept, is to solve a riddle. This riddle has two variations and I will present them both to you. (Cheating is always an option, but really, you'll just be cheating yourself.)

 

The Scoring

  • Answer the easy variation correctly, and you get your geek license renewed.
  • Answer the harder variation correctly, then you will be awarded your geek license for life!
  • Answer both variations correctly, then you should apply to Mensa and ask for a raise because you're really bright!

 

The Riddle of Riddles

My eleventh grade trigonometry teacher told the class this riddle (Difficult Variation) ages ago. We were stupified! Simply comprehending the correct answer gave us a headache back then. So, as a gift, I offer you my headache. It goes something like this:

 

In ye olden days, a king had captured a strange man he believed to be dangerous. To have the man prove himself, the king ordered the stranger to be placed in a dungeon. In the dungeon, there were two doors. Behind one door was freedom. Behind the other door was a dragon, which meant certain death. Guarding each door was a single guard. One guard lied, the other did not. The guards knew which one of them lied and which door was which; however, the stranger knew none of this. All the strange man knew was that one of the two doors led to freedom and that one of the two guards lied.


Easy Variation:

As the stranger, you are allowed to ask each guard one question. The guards can only answer, Yes or No. What are the two questions you need to ask in order to leave the room safely?


Difficult Variation (Headache Version):

As the stranger, you are allowed to ask one guard one question. The guard can only answer, Yes or No. What is the one question you need to ask in order to leave the room safely?


Note: Both variations are independent of one another, meaning you do not need to get the correct answer to one in order to solve the other.


Postscript

Since you're probably using NPM for monitoring your network, SAM for monitoring your applications, and WPM for monitoring web performance, you will probably have a great deal of free time to think on the answer (as opposed to troubleshooting your network issues). That said, I will not give you the answer to either riddle; however, if someone get's it correct and then posts their answer as a comment, I will comment on the answers.

What is AJAX?

Posted by Bronx Dec 27, 2012
When I was a kid, my mother used to hand me a can of Ajax to scrub the tub with. (Apparently, I was dirty enough to leave rings behind.) This was my first experience with Ajax, not to mention Comet.can.png

Ajax in the Computer World.

  • AJAX stands for Asynchronous JavaScript and XML.
  • AJAX is not a new programming language; rather, it is a new way to use existing standards.
  • AJAX is the method of exchanging data with a server, and updating parts of a web page - without reloading the entire page.

 

By definition, AJAX is a development technique for creating interactive web applications that is used on the client-side, as opposed to the server-side, to create network/web applications with data exchange running to and from the server in the background. This background data transfer method enables the user to view an existing webpage without interruption. Both HTML and CSS can be used to configure styles of your choice.

 

AJAX uses a combination of: 

  • CSS for styling information.
  • The Document Object Model (DOM) accessed with a client-side scripting language like JavaScript to dynamically display and interact with the information.
  • The XMLHttpRequest object to exchange data in the background with the web server.
  • XML can be used as the format for transferring data between the server and client, although any format will work.

ajax.png

 

SQL Server Clustering

Posted by Bronx Dec 21, 2012

We don't have planet clustering yet and it's December 21st, 2012! If the world is ending, stop reading this and save yourself. If not, carry on.

 

What is Clustering?

 

Clustering is a technology that automatically allows one physical server to take over the tasks of another failed physical server. The goal of clustering is to ensure that users running applications will have little or no downtime when a failure happens. What does this mean? Basically, if one server fails in a cluster, another one will automatically take over, keeping downtime to a minimum.

 

To be a bit more specific, clustering refers to a group of two or more nodes that work together and represent themselves as a single virtual server. This means that when a client connects to a cluster, the client observes only one SQL server, as opposed to many. When one of the nodes in the cluster fails, its duties are taken over by another server in that cluster. Theoretically, the user notices nothing when the failure occurs.


Clustering is not a complete backup system for your applications. It is only one part of the equation when it comes to ensuring minimum downtime. Clustering provides the ability to recover from failed server hardware and software. This is the main benefit of clustering.

 

Types of Clustering

 

  • Active/Active SQL Server cluster: An Active/Active SQL server cluster means that the server is running on both nodes of a two-way cluster. Each copy of the server acts on its own and users see two different servers. If one of the servers in the cluster fails, then the failed instance of the server will fail over to the remaining server. This means both instances of  the SQL server will be running on one physical server, instead of two.
  • Active/Passive SQL Server: An Active/Passive SQL server cluster refers to a SQL server cluster where only one instance of SQL server is running on one physical server in the cluster. The other physical server simply waits to takeover should the main node fail.

 

 

Generally speaking, the Active/Passive configuration will provide better performance.

 

Computer Math (Part 2)

Posted by Bronx Dec 17, 2012

In part one of Computer Math, I explained the virtues of binary and ended with the following questions:

Who uses these numbers for anything when I can just type the letter A? And by the way, computers do more than just splash letters on the screen, buddy.
This is where Hex and Assembly language come into play.

 

Hexadecimal (Hex)

In math and computer science, Hex is a numeric system with sixteen symbols, or digits, as opposed to the ten used in the traditional decimal numeric system.

  • Decimal - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
  • Hexadecimal - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F (A-F represent values from 10-15.)
  • Binary - 0, 1

Why 16 digits?

Each hex digit represents four binary digits, or bits. The main reason for using hex is because it is more human-friendly than binary. In binary, the highest four bit number is 1111, or 15. 0-15 = 16 digits. Hex is based on 16 digits for this reason. Look at the table below for the differences:

 

BinaryHexadecimalDecimal
10110000     01100001  B0     61  176     97

 

Why not use Decimal? That's the easiest of them all?

Hex works better because one digit in hex represents a nibble, which is half of an octet, or byte (8 bits). For example, byte values can range from 0 to 255, in decimal format (remember that number?), but are more easily represented as two hex digits in the range 00 to FF. Hex is also used to represent computer memory addresses.

 

Assembly language

Assembly language and machine language are considered "low-level" programming languages because these languages deal directly with the computer's architecture. In other words, it's hard. A high-level language, like Visual Basic or C, is built using a low-level language and is made easier to use by incorporating more "human" elements.

 

Look at this line of assembly code and let's examine what this is and how we got here:

MOV AL, 61h

 

Below, the binary numbers, 10110000 01100001, are translated to their Hex representations, B0 61, and then from Hex to an assembly language mnemonic. From Hex, B0 translates to assembly as the MOV mnemonic. Therefore, the previous line of assembly language code means, "'Move a copy of the following value into AL," and 61 is a hex representation of the value 01100001, which is 97 in decimal format.

 

BinaryHexadecimalAssembly Language
10110000     01100001 B0     61 MOV AL, 61h


To sum up:

10110000 01100001 = B0 61 = MOV AL, 61h = Move a copy of 97 to this place in memory.


Examine the code below. The code below is written in two low-level languages (Machine (Hex) and Assembly) and one high-level language (C). This code calculates the nth Fibonacci number, which is a number defined as being the sum of the two previous numbers in the series (1, 1, 2, 3, 5, 8, 13, 21...) Binary numbers are converted to Hex which gives you the "code" for the Fibonacci function in the first column. Translate the Hex into assembly mnemonics and you get the second column.

.code.png

SolarWinds Subnet Calculator

As you can see from the illustration below, Hex and binary are used in the real world. This is a screen grab from SolarWinds' Subnet Calculator. Fortunately for you, this is a free tool.

subnet calculator.png

Brain hurt yet?

Computer Math (part 1)

Posted by Bronx Dec 14, 2012

Have you ever used the Windows calculator, changed the view to Programmer, and then stumbled across the Hex, Dec, Oct, and Bin options? Know what they mean? Well I'm gonna tell you anyway. In order, they mean Hexadecimal (Hex), Decimal, Octadecimal, and Binary. Welcome to computer math!

 


Dr. J.

When I was in the eleventh grade, I was afforded the rare opportunity to learn heavy-duty computer stuff from a visiting college professor, Dr. J (not the basketball player). Think of Dr. J as having the same personality as Doc Brown from Back to the Future. Add glasses and a salt and pepper beard and you now have my mentor, Dr. J.

 

Dr. J's class was programming not only in BASIC and Pascal, but now we were programming in assembly language and machine language, thanks specifically to Dr. J. Our final exam with him was to design a video game on the Commodore 64 in assembly language, pretty much bypassing the OS, or ROM as it was called then! This is tough stuff, even by today's standards.

 

He also taught us how to do arithmetic in binary and hex, using only pencil and paper. (And yes, they did have calculators way back then.)

 

Binary

Why does binary exist and what's it got to do with computers? Good questions. Something that is considered binary can only be in one of two states, on or off, up or down, and so on. In binary computer terms, on and off are represented by one and zero, respectively. This binary system is used because of the computer's CPU and its many transistors. For example, an Intel I7 Quad Core CPU consists of 731,000,000 transistors. Each transistor can either be on or off. The OS reads on or off as 1 or 0, hence the need for binary math.

 

Reading Binary

Reading binary is simple but time consuming. 10010110 is a typical binary number. Notice it is made up of eight number places. Each number place is considered a bit. Hence, this is an 8-bit number. All eight numbers together are called a byte. Therefore, bits create bytes. Incidentally, the binary number 10010110 equals 150 in decimal format.

 

Look at the table below. Notice, from right to left, the header numbers double in value, doubling from 1 to 128. The numbered table headers indicate what a binary value of 1 represents in decimal format. Let's plug our example binary number into the table below to see how it translates to 150. Notice that if you add up all the table headers where a 1 lives, you get a total of 150 in decimal format. In other words, 128+16+4+2 = 150.

 

Now look at the second row below the header. The highest number allowed in an 8-bit binary number is 255. (I bet you've seen that number before.) Using the table below, you can get any decimal number from 0 to 255. The next two questions are obvious:

  • How do I get a value higher than 255?
  • What do the numbers mean?

 

1286432168421Total in Decimal Format
10010110150
11111111255

 

How do I get a value higher than 255?

The simple answer is to add columns to the left. If we were to do that, the next columns would be headed with 256, 512, 1024, etc. Adding a total of eight more columns would allow you to produce 16-bit numbers. The highest 16-bit number is 65,535. Next would be 32-bit, 64-bit, and so on.

 

What do the numbers mean?

Does the image below look familiar? 2,147,483,647 is the highest 32-bit number possible. In this case, it means my monitor can display a maximum of 11111111111111111111111111111111 colors, or, in decimal format, 2,147,483,647 colors.

 

Following is how the computer generates the letter A to your screen. Note the headers are the same as our table above. Each black box is a 1, while each white box is a 0. Each black box is also a pixel on your computer monitor that is turned on, in this case to display the letter A. I've highlighted in red the pixels that are turned on to display the letter A, as represented in binary form.

 

 

The ASCII Character Table

Below is a portion of the ASCII Character Table. Highlighted in yellow is the letter A as represented in the different mathematical formats.

 

More Questions

  • What is ASCII?
    ASCII stands for American Standard Code for Information Interchange. Computers can only understand numbers, so an ASCII code is the numerical representation of a character such as 'A' or '@' or an action of some sort.
  • Why does A = 65 and 41 and 101?
    These numbers refer to the ASCII table so the computer knows where to go.
  • Who uses these numbers for anything when I can just type the letter A? And by the way, computers do more than just splash letters on the screen, buddy.
    This is where Hex and Assembly language come into play. Stay tuned for Computer Math, part 10.

 

Today's article was brought to you by the letter "A."
countvoncount.jpg

VBScript 101

Posted by Bronx Dec 10, 2012

Perhaps you've read my four part series entitled, Visual Basic 101. In that series I explained how to build a specialized SAM bandwidth calculator. Granted, that series was long and in-depth, but I think it was worth it. However, I am also aware that most sysadmins don't have the luxury of a lot of free time. A four part series on VB may have been overkill, especially if you're sysadmin putting out fires constantly. Enter VBScript. Think of it as Visual Basic without the pesky API. This will be a hit and run lesson/example of how to have a VBScript start another program.


Wrapping VBScript around an executable file.

The following example demonstrates how to write a simple VBScript to open notepad.exe:

1. Open Notepad and paste the following code into a new document:

 

    Set WshShell = WScript.CreateObject("WScript.Shell")
    Dim exeName
    Dim statusCode
    exeName = "%windir%\notepad"
    statusCode = WshShell.Run (exeName, 1, true)
    MsgBox("End of Program")

 

2. Save the file as Example.vbs (manually change the extension to .vbs)

3. Double-click Example.vbs to run the program which launches Notepad.exe, then shows a message box upon closing.

 

Note: To open a program other than Notepad, change the highlighted section above to the path and program you want to execute, for example, "C:\Program Files\Mozilla Firefox\firefox.exe"


SolarWinds SAM has a Windows script monitor that can handle various programming languages, including VBScript. It may behoove you to become familiar with at least one.

 

E-Privacy (Part 2)

Posted by Bronx Dec 7, 2012

In part 1 of this series, I discussed how to keep your email and internet surfing private. In part 2 I’ll show you how to clean the tracks of your online activity from your computer, as well as some cell phone privacy tips.

 

Off Line Privacy

Okay, you’ve read part 1 and your email and internet surfing are secure. Is that enough? That depends. How much privacy do you want? If you want more, one, if not all of these tips, will be useful in ridding your box of unwanted online tracks and keeping things hidden from prying eyes:

  • Use a password to log in to your computer, and not password, qwerty, 123456. or your pet's name.
  • Lock the keyboard when you leave your computer. Windows key + L will do this. You can also have your screensaver do this for you.
  • Empty the Recycle Bin.
  • Shred files beyond recovery and wipe your free hard drive space using Privacy Eraser Pro or CCleaner.
  • Keep your sensitive files encrypted. Winzip will compress and optionally secure your files with a password.
  • Keep your sensitive files hidden:
  • Clean out the temporary files. Temporary files are countless on any given machine. Who knows what information they contain. Since they are dubbed temporary, why not remove them now? I prefer Temp File Cleaner to do the job.
  • Kill the DAT files. DAT files are data files that can contain all of your online activity. Often these files are small and hidden. Additionally, these files are not deleted when you clear your browsing cache of its history and cookies. Index.dat Analyzer will allow you to view them and then optionally remove them.
  • Immunize yourself. Spybot - Search & Destroy not only cleans malware from your computer, it also immunizes it, protecting your machine from potentially privacy compromising software.
  • Clean the registry. In addition to DAT files storing your internet activity, the registry also keeps track of things you may want to keep private. Cleaning it regularly with a registry cleaner will help protect against this vulnerability. I prefer Auslogics Registry Cleaner.
  • Clean everything at once. Both Privacy Eraser Pro and Tracks Eraser Pro do a fine job at cleaning most everything that needs to be cleaned.
  • Go to Download.com and search privacy. Programs abound to suit all of your privacy needs.

 

Cell Phone Privacy

The cell phone is now a computer. That's the bottom line. Now we need to treat it as such. If I'm not mistaken, I believe dialing *67 before you dial a number will block the Caller ID on the recipient's phone. Okay, that's old school. Let's fast forward to today:

  • Turn off the GPS. It kills your battery. Oh, it also allows Google, and anyone else you allow, to see where you are in real-time.
  • Turn the setting off that allows Google, or anyone, to track your location.
  • Turn off the photo GPS option. This option marks the time and place where each photo was taken and stores it in a hidden file.
  • Turn off the Sync feature, unless you know exactly what's going on. A lazy attitude on this can send your files to who knows where.
  • Enable a screen lock pass code or pattern.
  • Get a Google phone number. Google will give you a free phone number with voice mail that you can tether to your cell phone. With this, you never need give out your "real" phone number. You can even dial out using your new number.
  • Have an anti-theft solution in place before you need it. Try SeekDroid AntiTheft and Security.
  • Antivirus software is also a good idea. Take a look at Lookout Mobile Security.
  • You may want to change the settings of your phone to only allow those people on your contact list to call you.
  • Go to the app store and get Mr. Number. This app can unblock blocked Caller IDs, look up unknown numbers, plus a few other cool things.
  • Also, get Vaulty at the app store to hide your personal pictures.
  • Turn the thing off at night.

 

Seeing the Unseen

This is where network, application, and server monitoring comes into play. If you're a network admin and need to see the unseen, check out these gems:

 

 

E-Privacy (Part 1)

Posted by Bronx Dec 3, 2012

The average person who uses the internet via computer, tablet, or cell phone, is pretty much unaware that everything they do online is out there for the world to see. I won't argue what should and shouldn't be private and why. I'll let you use your own moral judgement. However, I will tell you how to keep your information as private as possible.

 

Is true privacy on your computer devices even possible?

That's the $64,000 question. The answer lies somewhere between yes and no. The more effort you put in, the more the needle will lean toward yes. That said, legal and technology researchers estimate that it would take about a month for internet users to read the privacy policies of all the web sites they visit in a year. (Gonna have to vote no on reading all that.)

 

Email

Now even the government wants access to your email, among other digital files. Keeping your email private is a bit tricky, but here are some tips:

  • I distinctly remember an uproar over Gmail's privacy policy when someone discovered that Google was basically saying that they can read your emails at any given time. While I'm sure Google's employees have better things to do than read your email about little Johnny's homer in the fifth, they do have programs scouring countless emails looking for keywords and phrases in an effort to target their advertising toward the content of your emails. The tip? Consider using an email service that respects your privacy. Here are a few email providers that do respect your privacy:
  • We all get junk mail and it sucks. Every time we fill out an online form we get added to some marketing list and then your email address gets sold and traded like cattle at auction. The solution? Have a disposable email account just for junk mail. (I personally have three.) Use the disposable account for everything except actual correspondence with friends and family.
  • For even less of a footprint, deploy the ol' General Petraeus trick! Create a disposable email account and give the people you want to communicate with the address and password. Create an email with what you want to say, but don't send it anywhere. Just save it to the Drafts folder. Later, another person can access that draft, delete your text, and then add their own content in the same fashion. This prevents a digital email trail because no email was actually sent and the prior text was deleted before a response was given. This can also work with Dropbox or other cloud-based folders. I would recommend encrypting everything before putting something in the cloud.

 

Web Surfing

Without protection and/or knowledge, everything you do online is visible to anyone who wants it. Following are some tips to keep your activity private:

  • Windows comes with a firewall. At the very least, ensure that it is up and running.
  • If you're using wifi, ensure you have a secured connection so other people don't jump on your network without your knowledge.
  • When surfing, use a Virtual Private Network (VPN). VPNs help shield your IP address from the outside world. These services route your data to a proxy server, where it is stripped of your IP address before it's sent on to its destination. This obscures your identity not only from web sites, but also from your internet service provider (ISP). Here are three of the more popular ones:
  • Use a proxy server via your web browser. Cocoon is an internet privacy toolbar designed for Firefox. When setting up your account, remember to use a disposable email account. To verify that the Cocoon is working, go to http://www.whatismyip.com/ before you enable Cocoon to check your current IP address. Next, enable Cocoon then check your IP address again. If all is well, your IP address should have changed after you enabled Cocoon, meaning your "internet telephone number and location" has changed.
  • Go with TOR. Tor is free software that helps you defend against network surveillance that threatens personal freedom and privacy. There are a host of free products there and I highly recommend them.
  • Use a web browser built for privacy. Try Anonymizer.
  • When using a browser be sure to:
    • Disable cookie tracking;
    • Clear your history and set it so a history is not kept;
    • Use "private mode," if available.
  • As far as social networking goes, I use thwack, anonymously. Other than that, I simply don't use the other outlets. My privacy is more important than reading about "Nancy's bad cough," and other mundane trifles.

 

In part 2 I'll discuss privacy protection for your cell phone and how to keep your computer free of files you didn't know were there.

 

For years I've been using Microsoft© products. I thought as the maker of the most well known operating system, Microsoft would ultimately get it right. I thought wrong, and here we are. Before we go any further, let's start at the beginning. (I'll omit some OS versions I deem less noteworthy for this exercise.) Let's pretend that Microsoft is in charge of building cars, in addition to operating systems. Below are some very brief reviews of the Microsoft operating systems over the years from a user's point of view, as well as their automotive counterpart:

 

Windows 3.1

  • The Good: For those of you who don't remember, Windows 3.1 was the new thing by grouping files in these things called Windows. The Apple Mac did the same thing really, but I won't argue the differences, technically or legally.
  • The Bad: Still in its infancy.
  • The Car: Basic 1966 VW Beetle. Does the job, but not too flashy or powerful.

Windows 95

  • The Good: This was the game changer. Some of the new features introduced were the Start button, the Taskbar, and desktop shortcuts. Simple to use and efficient.
  • The Bad: Stability was so-so. Needed more functionality.
  • The Car: 1966 Mustang. Flashy, cool, and powerful. Could use more uumph all around.

 

Windows ME

  • The Good: The only saving grace was that it still had the look and feel of Windows 95.
  • The Bad: Complete train wreck. This OS had more bugs than a NYC sewer. It got to the point where I actually began reading the text on the Blue Screen of Death because I saw it so often.
  • The Car: AMC Pacer. Functional, in between its frequent falling apart episodes. (Side note: Pop had this car and loved it. I called it the leper car because everything I touched fell off.)

 

Windows XP

  • The Good: At last, a stable version of Windows 95, Start button, Taskbar, and all!  I ran this OS as long as possible with nary an issue. Then, wanting to be on the bleeding edge of technology, I did the unthinkable. I bought Vista, and boy did I bleed.
  • The Bad: Nothing.
  • The Car: Corvette Stingray. Cooler, stable, and more powerful. More uumph found.

 

Windows Vista

  • The Good: Aero glass effect was introduced. The Start button, desktop shortcuts, and Taskbar, remained intact. USB RAM also introduced.
  • The Bad: After two long weeks of being stymied by countless security pop-ups and various other incompatibilities, I had had enough. Vista was garbage from Jump street. Out it came. This is what I should have done with Vista.
  • The Car: Undercover police cruiser, starting and stopping constantly. Not allowed to do anything. Had power though.

 

Windows 7

  • The Good: Aero glass effect still alive, as well as the Start button, shortcuts, the Taskbar, and the USB RAM. The ad campaign focused around the user building Windows 7, and it worked. It looks like actual users had input into this version. Best OS to date.
  • The Bad: Nothing.
  • The Car: BMW 3 series. Luxurious, stable, and powerful.

 

Windows 8

Well, here we are. Look at this screenshot for just a moment and really soak it in.

  • The Good: Faster boot time. Incorporated touch screen technology for supported devices.
  • The Bad: No Start button. The Taskbar is "hidden." The tiles are intrusive and annoying.
  • The Car: The Partridge family's bus. Looks funny, not easy to drive, but has power.
    windows 8.jpgbus.png

Let's take the new OS apart piecemeal:

  • Where's the Start button and Taskbar? These were introduced in Windows 95 and caught on quickly. Everyone loved them and every Windows OS since has had them. The removal of the Start button and Taskbar from the home screen in Windows 8 is like having built a new car and replacing the steering wheel with voice commands! I have to re-learn steering? Really?
  • Tiles as the home screen? This looks like my computer threw up! Anyway, tiles are supposed to provide you real-time information on just about anything from news to weather to sports scores. Do I need all of this information at once and in my face? I think not. Brain still works, don't need a computer for the obvious every second of the day. And what's with the random colors of each tile? Do the colors mean anything? Can I change them?  At first glance it looks as though Picasso had a cubist moment.
  • Where are my desktop shortcuts? Better still, where is my desktop?! Right-clicking the home tile screen solves the shortcut mystery, to a degree. Nothing is obvious though.
  • Desktop found, sort of. There is actually a tile for the desktop. Opening the desktop brings you to a half-@$$ Windows 7 view where you can view these things called windows. The problem is, you can't access your programs from the desktop tile without going back to the home tile screen first. Useless waste IMHO.
  • For an OS called Windows, all I see are tiles. Minimize, maximize, and close buttons? Who needs them? Umm, everyone. Put them back please.
  • The touch screen interface is cool, but not very practical for home or work computers, especially since we still type. The mouse is just too darn easy and efficient. Granted, we'd all love to have that cool holographic computer in Minority Report, but we're just not there yet.
  • A computer is not a tablet! People have to be more than entertained by their computers. They need to be productive.
  • How do I close apps short of launching the task manager?
  • Even turning the OS off is perplexing. You have to now navigate to Settings > Power > Shut Down to accomplish this minor miracle.

Linear thinking meets a fork in the road.

Windows has improved on itself over the years by adding new features and retaining the successful ones (ie: The Start button, the Taskbar, desktop shortcuts, etc.) They've also learned from their mistakes (the more stable XP replaced ME, the less restrictive 7 replaced Vista). After looking at Windows 8, I think Microsoft will have a great deal to overcome. I suspect "Windows 9" will look quite a bit like Windows 7 after the Windows 8 dust has settled. Whoever took the lead on this project (probably the same joker who introduced the ribbon to MS Office) hit a brick wall (most likely tiled).

 

Don't force us to relearn everything again and again.

Remember the ribbon episode with MS Office? Well in their infinite wisdom, Microsoft decided to put the ribbon in Windows Explorer for Windows 8. (I lost a lot of time and work because I couldn't find my file menu items because of that enormous idiotic ribbon - believe it or not, people can still read.) Build upon your successes Microsoft, add to them. Don't change them. Here are some tips just for you, Microsoft:

  • Don't remove features people like and use by replacing them with things you think are better. They're not. Remember Vista? Didn't work out too well, did it? I'm sure you'll catch a lot of flak for killing the Start button and killing our desktop with tiles. Be ready with a serious update, and soon.
  • Talk to a wide variety of your customers. Find out what they want, like, and dislike.
  • Let the user decide what's best. Everyone is different. Provide options, not requirements.

 

All signs are pointing toward world domination.

Windows 8 is now on computers, tablets, and phones. And that's fine. I'm sure they all work well together. But does that benefit the consumer? For me, it's all about control. If I cannot get what I want, I will go somewhere else. This is precisely why I ditched my Windows phone for an Android. Hopefully Microsoft will learn from this and actually get to know their customers like we do here at SolarWinds. Try less domination and more innovation Microsoft. But that's just me.

 

The Bottom Line

Microsoft took the least popular phone OS and threw it on a computer, with a Windows 7 knock-off lurking somewhere in a tile. The new OS upgrade costs $15-40. Take that money and grab a beer or 12. It would be better spent at a bar making jokes about Windows 8 with your geeky friends.

Thwack! Now I get it.

Posted by Bronx Nov 27, 2012

Why did we call the site thwack and not something more unimaginative like, The SolarWinds Community? Because the last thing we are is, unimaginative.

 

Onomatopoeia

If you've been on this site, even for a brief moment, you've noticed a bunch of cartoon characters lurking about. These characters have networking and application monitoring problems that need solving. On thwack, we do our best to solve those problems. Hence the name, thwack. Thwack is the sound a cartoon character would make if he were to slap his forehead as if to say, "Now I get it! Problem solved!" (Similar to the "Blamo!" that would splash on the TV when Batman hit The Joker on the original Batman TV series, circa 1970.)

 

Don't let the Cartoons fool ya!

Don't you dare. Everyone in this community and here at SolarWinds is at the top of their game, despite our playful appearance. I cannot imagine a collection of people who know more about networking and application monitoring than this bunch. Don't believe me? See for yourself. Check out other software communities and see how they stack up, then ask yourself this:

  • Was my question even noticed, let alone answered?
  • Was the answer correct?
  • Do they even care about me?

Yeah, we care. A lot of us hang out here on thwack on our off time, and not because we have to...it's just fun.

 

Cartoonify yourself

Want to know how to create those cool characters we come up with? Simple, there's an app for that. A lot of us around here follow South Park and The Simpsons so I've provided links to those two cartoonification sites below. Feel free to venture beyond the characters of these two shows though. Be yourself, within reason.

 

Get the most out of thwack.

Here are some tips to help you solve your networking and application monitoring issues faster using thwack:

  • Search - Most likely your question has come up before. Try the Search bar at the top-right of every page.
  • Explore - There are a ton of forums here. Poke around and see what you can find. Remember to ask your question in the right forum. Not all of our forums are dedicated to our products.  We have a lot of talk around general IT topics.
  • Follow - Follow a specific forum and receive email notifications. You'll be surprised at what you can learn and at what you don't know.
  • Participate - The more you do, the more points you earn. Check out the missions page and the point system page so you can learn to earn. More points equals more goodies for you from the thwack store.
  • Learn - Check out DocWhite's earlier post about the evolution of social networking and online communities, including thwack.

Black Eye Friday.

Posted by Bronx Nov 19, 2012

As we all know, the Friday after Thanksgiving has become known as Black Friday. This is the day where major stores offer incredible deals beginning at midnight.

 

Should you participate?

On the surface, getting an $800 computer for only $200 may sound like a great deal. But what's the real cost? I think it's a wise idea to examine these Black Friday deals just a little more closely. Here's what you're in for if you decide to participate in the frenzy:

  • You'll probably be standing in line for at least six hours, at night and in the cold, with no bathroom in sight. Are you physically ready for this?
  • Let's say you earn $20 an hour at your job. Standing in line for six hours is $120 worth of your time, before taxes, of course.
  • Have you ever been to Pamploña to join in the Running of the Bulls? If not, you'll have a pretty similar experience when you join a mob of hundreds, if not thousands, crashing through the store doors and running through the aisles, with not a soul caring about your safety. Have you seen the videos of people getting trampled? For what, to save a few bucks? (I thought we were living in a civilized society. Silly me.)
  • Is that computer really worth the $800 the store says it originally cost before this sale? Probably not. Consider the markup the store adds for making a profit, not to mention the cost of housing it in an actual store with employees who get paid. There's a bit of padding there.
  • Technology grows fast. By the time you get the computer out of the store and set up at home, it will already be outdated. Why? The items on sale are usually not the best sellers to begin with, and for a reason. Look before you leap.
  • Do you really want to give up your precious free time for this? I can think of 115,412 things I would rather do than stand in line for a sale.

 

You're not going to participate, but still want the deal?

Enter Cyber Monday. For those of you who won't tolerate the perils of Black Friday but want the deals, Cyber Monday was created just for you. Think of Cyber Monday as the same great deals as Black Friday, without the risk of death. Here are some of the benefits of Cyber Monday, as opposed to Black Friday.

  • Same great deals.
  • No lines, standing or otherwise. Shop from the comfort of work or home, sitting, and near a bathroom.
  • No risk of being trampled by an uncivilized stampede of people.
  • Technology is three days more advanced.

 

You missed both days and still want to save?

Then use your noodle. Here are some tips for saving money any day of the year:

  • Shop around. Here's a list of the top 15 price comparing websites.
  • Buy used. In economic uncertainty, people often sell items for quick cash, which means you save. Think ebay, Amazon, or Craigslist.
  • Haggle. You'd be surprised how many vendors are willing to negotiate the final price.
  • Get your coupon on. Sites like ebates.com have coupons o'plenty.
  • Shop online. You may have noticed a growing trend where online shopping has increased, while shopping at actual retail stores has decreased. This is no accident. Virtual stores are much cheaper to maintain than real stores. Of course, that savings is passed along to you, the consumer. It even happened here at SolarWinds. SolarWinds used to sell software on CDs along with hard copies of their manuals. Now it just makes more fiscal sense to sell everything digitally and online.

 

Happy shopping, and be smart. Be safe.

Visual Basic 101 (part 4)

Posted by Bronx Nov 14, 2012

If you've read Part 1, Part 2, and Part 3 of this series, then this is the one you've been waiting for. The code! Before you get too excited, let me clarify a few things, for the record:

  • The only way to get this calculator is to build it following the steps in this series. It will not be available for download nor will SolarWinds offer support for this tool. The code for this tool is made available for educational purposes only.
  • When built, the calculator will only provide recommendations based on a small amount of testing. Your environment will be different and you may want to modify the code to suit your needs. (Comments in the code are given on what to modify, if you so desire.)
  • This calculator has not been tested for accuracy and will not be supported in any way, shape, or form, by SolarWinds, or by the author of this article.
  • SolarWinds is not responsible for any errors or non-working code. Sorry, you'll have to troubleshoot yourselves. (Be sure to review all four of these posts.)
  • This is only one of an infinite number of ways to code this calculator. I'm sure there are more elegant designs. The bottom line is, it works.
  • If and when you get this to work where others cannot, please help them if you can.
  • Wireshark is a free tool that you can use to measure and filter your bandwidth traffic. Wireshark was used in getting bandwidth averages for the four protocols in this calculator. You can use Wireshark to get your own averages and modify the figures in this code, which is commented.


Lesson 5 - Compiling the code

Below is the code you will need to add to your calculator project in Visual Basic. In your calculator project, go to the Code view and delete everything. Next, copy and paste the code below. When done, you should have something that looks like this:

ide4.png

If all is well, hit the Play button, highlighted above. The calculator should appear before you working as planned. If everything works, compile your code into an executable.

 

Compiling your code into an executable:

  1. From the Build menu, select Build...
    build.png
  2. If successful, your executable should reside in a path similar to this:
    C:\VS2010\Calculator\BWCalc\BWCalc\bin\Release

 

Copy and Paste Me

Imports System.Data.OleDb

Imports System.Drawing.Drawing2D

 

Public Class frmMain

 

Dim WMIMonitorNumbers, WMINeededBW, WMIStat, WMIConvert, WMITotal, FinalTotal, WMIConvert2 As Double

Dim SNMPMonitorNumbers, SNMPNeededBW, SNMPStat, SNMPConvert, SNMPTotal, SNMPConvert2 As Double

Dim RPCMonitorNumbers, RPCNeededBW, RPCStat, RPCConvert, RPCTotal, RPCConvert2 As Double

Dim ICMPMonitorNumbers, ICMPNeededBW, ICMPStat, ICMPConvert, ICMPTotal, Monitortotal, ICMPConvert2 As Double

Dim WMIsuffix, RPCsuffix, SNMPsuffix, ICMPsuffix, suffixtotal As String

Dim All$

 

Private Sub txtWMI_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtWMI.LostFocus

        On Error Resume Next

        If IsNumeric(txtWMI.Text) = False Or Val(txtWMI.Text) > 10000 Then

            txtWMI.Text = "0"

            WMIMonitorNumbers = txtWMI.Text

            TBWMI.Value = 0

            WMICalc()

            Exit Sub

        End If

 

        WMIMonitorNumbers = txtWMI.Text

        txtWMI.Text = Format(WMIMonitorNumbers, "###,###")

        WMICalc()

 

        If txtWMI.Text <= 10000 Then

            TBWMI.Value = txtWMI.Text

        Else

            TBWMI.Value = 10000

        End If

        If WMIMonitorNumbers < 1 Then txtWMI.Text = "0" : WMICalc()

End Sub

Private Sub txtRPC_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtRPC.LostFocus

        On Error Resume Next

 

        If IsNumeric(txtRPC.Text) = False Or txtRPC.Text > 10000 Then

            txtRPC.Text = "0"

            RPCMonitorNumbers = txtRPC.Text

            TBRPC.Value = 0

            RPCCalc()

            Exit Sub

        End If

 

        RPCMonitorNumbers = txtRPC.Text

        txtRPC.Text = Format(RPCMonitorNumbers, "###,###")

        RPCCalc()

 

        If txtRPC.Text <= 10000 Then

            TBRPC.Value = txtRPC.Text

        Else

            TBRPC.Value = 10000

        End If

        If RPCMonitorNumbers < 1 Then txtRPC.Text = "0" : RPCCalc()

End Sub

Private Sub txtSNMP_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtSNMP.LostFocus

        On Error Resume Next

 

        If IsNumeric(txtSNMP.Text) = False Or txtSNMP.Text > 10000 Then

            txtSNMP.Text = "0"

            SNMPMonitorNumbers = txtSNMP.Text

            TBSNMP.Value = 0

            SNMPCalc()

            Exit Sub

        End If

 

        SNMPMonitorNumbers = txtSNMP.Text

        txtSNMP.Text = Format(SNMPMonitorNumbers, "###,###")

        SNMPCalc()

 

        If txtSNMP.Text <= 10000 Then

            TBSNMP.Value = txtSNMP.Text

        Else

            TBSNMP.Value = 10000

        End If

        If SNMPMonitorNumbers < 1 Then txtSNMP.Text = "0" : SNMPCalc()

End Sub

Private Sub txtICMP_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtICMP.LostFocus

        On Error Resume Next

 

        If IsNumeric(txtICMP.Text) = False Or txtICMP.Text > 10000 Then

            txtICMP.Text = "0"

            ICMPMonitorNumbers = txtICMP.Text

            TBICMP.Value = 0

            ICMPCalc()

            Exit Sub

        End If

 

        ICMPMonitorNumbers = txtICMP.Text

        txtICMP.Text = Format(ICMPMonitorNumbers, "###,###")

        ICMPCalc()

 

        If txtICMP.Text <= 10000 Then

            TBICMP.Value = txtICMP.Text

        Else

            TBICMP.Value = 10000

        End If

        If ICMPMonitorNumbers < 1 Then txtICMP.Text = "0" : ICMPCalc()

End Sub

Private Sub txtWMI_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtWMI.KeyDown

        On Error Resume Next

        If e.KeyCode = Keys.Return Then

 

            If IsNumeric(txtWMI.Text) = False Or txtWMI.Text > 10000 Then

                txtWMI.Text = "0" : Exit Sub

            End If

 

            WMIMonitorNumbers = txtWMI.Text

            txtWMI.Text = Format(WMIMonitorNumbers, "###,###")

            WMICalc()

 

            If txtWMI.Text <= 10000 Then

                TBWMI.Value = txtWMI.Text

            Else

                TBWMI.Value = 10000

            End If

        End If

End Sub

    Private Sub WMICalc()

        On Error Resume Next

        WMIStat = 315 'This is the key figure. This number represents multiple tests and averages using Wireshark, filtering out data that is not pertinent. Changing this number will allow you to fine tune the amount of bandwidth used by this protocol.

        WMINeededBW = WMIStat * WMIMonitorNumbers

        WMIConvert = ((WMINeededBW / 1024) * 8) / 1024

        If WMIConvert = 0 Then lblWMI.Text = "00.00 Kbps" : DoTotal() : Exit Sub

        If WMIConvert < 1 Then

            DoTotal()

            WMIsuffix = " Kbps"

            WMIConvert2 = WMIConvert * 1024

            lblWMI.Text = Format(WMIConvert2, "###,###") & WMIsuffix

            Exit Sub

        Else

            DoTotal()

            WMIsuffix = " Mbps"

            lblWMI.Text = Format(WMIConvert, "standard") & WMIsuffix

            Exit Sub

        End If

  End Sub

Private Sub TBWMI_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TBWMI.ValueChanged

        On Error Resume Next

        WMIMonitorNumbers = TBWMI.Value

        If txtWMI.Text <= 10000 Then

            txtWMI.Text = Format(TBWMI.Value, "###,###")

        End If

        If WMIMonitorNumbers < 1 Then txtWMI.Text = "0"

        WMICalc()

End Sub

Private Sub txtSNMP_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtSNMP.KeyDown

        On Error Resume Next

        If e.KeyCode = Keys.Return Then

            If IsNumeric(txtSNMP.Text) = False Or txtSNMP.Text > 10000 Then

                txtSNMP.Text = "0" : Exit Sub

            End If

 

            SNMPMonitorNumbers = txtSNMP.Text

            txtSNMP.Text = Format(SNMPMonitorNumbers, "###,###")

            SNMPCalc()

 

            If txtSNMP.Text <= 10000 Then

                TBSNMP.Value = txtSNMP.Text

            Else

                TBSNMP.Value = 10000

            End If

        End If

End Sub

Private Sub SNMPCalc()

        On Error Resume Next

        SNMPStat = 0.66 'This is the key figure. This number represents multiple tests and averages using Wireshark, filtering out data that is not pertinent. Changing this number will allow you to fine tune the amount of bandwidth used by this protocol.

        SNMPNeededBW = SNMPStat * SNMPMonitorNumbers

        SNMPConvert = ((SNMPNeededBW / 1024) * 8) / 1024

        If SNMPConvert = 0 Then lblSNMP.Text = "00.00 Kbps" : DoTotal() : Exit Sub

        If SNMPConvert < 1 Then

            DoTotal()

            SNMPsuffix = " Kbps"

            SNMPConvert2 = SNMPConvert * 1024

            If SNMPConvert2 < 1 Then SNMPConvert2 = 1

            lblSNMP.Text = Format(SNMPConvert2, "###,###") & SNMPsuffix

            Exit Sub

        Else

            DoTotal()

            SNMPsuffix = " Mbps"

            lblSNMP.Text = Format(SNMPConvert, "standard") & SNMPsuffix

            Exit Sub

        End If

End Sub

Private Sub TBSNMP_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TBSNMP.ValueChanged

        On Error Resume Next

        SNMPMonitorNumbers = TBSNMP.Value

        If txtSNMP.Text <= 10000 Then

            txtSNMP.Text = Format(TBSNMP.Value, "###,###")

        End If

        If SNMPMonitorNumbers < 1 Then txtSNMP.Text = "0"

        SNMPCalc()

End Sub

Private Sub txtRPC_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtRPC.KeyDown

        On Error Resume Next

        If e.KeyCode = Keys.Return Then

            If IsNumeric(txtRPC.Text) = False Or txtRPC.Text > 10000 Then

                txtRPC.Text = "0" : Exit Sub

            End If

            RPCMonitorNumbers = txtRPC.Text

            txtRPC.Text = Format(RPCMonitorNumbers, "###,###")

            RPCCalc()

            If txtRPC.Text <= 10000 Then

                TBRPC.Value = txtRPC.Text

            Else

                TBRPC.Value = 10000

            End If

        End If

End Sub

Private Sub RPCCalc()

        On Error Resume Next

        Dim Exponent As Double

        RPCStat = 2392 'This is the key figure. This number represents multiple tests and averages using Wireshark, filtering out data that is not pertinent. Changing this number will allow you to fine tune the amount of bandwidth used by this protocol.

        Exponent = 1

        RPCStat = RPCStat ^ Exponent

        RPCNeededBW = RPCStat * RPCMonitorNumbers

        RPCConvert = ((RPCNeededBW / 1024) * 8) / 1024

        If RPCConvert = 0 Then lblRPC.Text = "00.00 Kbps" : DoTotal() : Exit Sub

        If RPCConvert < 1 Then

            DoTotal()

            RPCsuffix = " Kbps"

            RPCConvert2 = RPCConvert * 1024

            lblRPC.Text = Format(RPCConvert2, "###,###") & RPCsuffix

            Exit Sub

        Else

            DoTotal()

            RPCsuffix = " Mbps"

            lblRPC.Text = Format(RPCConvert, "standard") & RPCsuffix

            Exit Sub

        End If

End Sub

Private Sub TBRPC_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TBRPC.ValueChanged

        On Error Resume Next

        RPCMonitorNumbers = TBRPC.Value

        If txtRPC.Text <= 10000 Then

            txtRPC.Text = Format(TBRPC.Value, "###,###")

        End If

        If RPCMonitorNumbers < 1 Then txtRPC.Text = "0"

        RPCCalc()

End Sub

Private Sub txtICMP_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtICMP.KeyDown

        On Error Resume Next

        If e.KeyCode = Keys.Return Then

            If IsNumeric(txtICMP.Text) = False Then

                txtICMP.Text = "0" : Exit Sub

            End If

 

            ICMPMonitorNumbers = txtICMP.Text

            txtICMP.Text = Format(ICMPMonitorNumbers, "###,###")

            ICMPCalc()

 

            If txtICMP.Text <= 10000 Then

                TBICMP.Value = txtICMP.Text

            Else

                TBICMP.Value = 10000

            End If

        End If

End Sub

Private Sub ICMPCalc()

        On Error Resume Next

        ICMPStat = 1.15 'This is the key figure. This number represents multiple tests and averages using Wireshark, filtering out data that is not pertinent. Changing this number will allow you to fine tune the amount of bandwidth used by this protocol.

        ICMPNeededBW = ICMPStat * ICMPMonitorNumbers

        ICMPConvert = ((ICMPNeededBW / 1024) * 8) / 1024

        If ICMPConvert = 0 Then lblICMP.Text = "00.00 Kbps" : DoTotal() : Exit Sub

        If ICMPConvert < 1 Then

            DoTotal()

            ICMPsuffix = " Kbps"

            ICMPConvert2 = ICMPConvert * 1024

            If ICMPConvert2 < 1 Then ICMPConvert2 = 1

            lblICMP.Text = Format(ICMPConvert2, "###,###") & ICMPsuffix

            Exit Sub

        Else

            DoTotal()

            ICMPsuffix = " Mbps"

            lblICMP.Text = Format(ICMPConvert, "standard") & ICMPsuffix

            Exit Sub

        End If

End Sub

Private Sub TBICMP_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TBICMP.ValueChanged

        On Error Resume Next

        ICMPMonitorNumbers = TBICMP.Value

        If txtICMP.Text <= 10000 Then

            txtICMP.Text = Format(TBICMP.Value, "###,###")

        End If

        If ICMPMonitorNumbers < 1 Then txtICMP.Text = "0"

        ICMPCalc()

End Sub

Private Sub DoTotal()

        On Error Resume Next

        suffixtotal = " Mbps"

        FinalTotal = WMIConvert + SNMPConvert + RPCConvert + ICMPConvert

 

        If FinalTotal >= 1024 Then

            suffixtotal = " Gbps"

            FinalTotal = FinalTotal / 1024

        End If

 

        If FinalTotal < 1 Then

            suffixtotal = " Kbps"

            FinalTotal = FinalTotal * 1024

        End If

        Monitortotal = WMIMonitorNumbers + RPCMonitorNumbers + SNMPMonitorNumbers + ICMPMonitorNumbers

        lblMonitors.Text = Format(Monitortotal, "###,###")

        lblTotal.Text = Format(FinalTotal, "Standard") & suffixtotal

        If Monitortotal < 1 Then lblMonitors.Text = "0"

        FinalTotal = 0

        Piecalc()

End Sub

Private Sub cmdReset_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdReset.Click

        txtWMI.Text = "0"

        txtRPC.Text = "0"

        txtSNMP.Text = "0"

        txtICMP.Text = "0"

        TBWMI.Value = 0

        TBRPC.Value = 0

        TBSNMP.Value = 0

        TBICMP.Value = 0

        DoTotal()

        txtWMI.Text = "0"

        txtRPC.Text = "0"

        txtSNMP.Text = "0"

        txtICMP.Text = "0"

        TBWMI.Value = 0

        TBRPC.Value = 0

        TBSNMP.Value = 0

        TBICMP.Value = 0

        lblMonitors.Text = "0"

        PieReset()

End Sub

Private Sub PieCalc()

        Chart1.Series.Clear()

        Dim ser1 As Windows.Forms.DataVisualization.Charting.Series

        ser1 = Chart1.Series.Add("Pie Chart")

        ser1.ChartType = DataVisualization.Charting.SeriesChartType.Pie

        ser1.Points(ser1.Points.AddY(WMIConvert)).AxisLabel = "WMI"

        ser1.Points(ser1.Points.AddY(SNMPConvert)).AxisLabel = "SNMP"

        ser1.Points(ser1.Points.AddY(RPCConvert)).AxisLabel = "RPC"

        ser1.Points(ser1.Points.AddY(ICMPConvert)).AxisLabel = "ICMP"

        If WMIConvert + SNMPConvert + RPCConvert + ICMPConvert = 0 Then PieReset()

End Sub

Private Sub PieReset()

        Chart1.Series.Clear()

        Dim ser1 As Windows.Forms.DataVisualization.Charting.Series

        ser1 = Chart1.Series.Add("Pie Chart")

        ser1.ChartType = DataVisualization.Charting.SeriesChartType.Pie

        ser1.Points(ser1.Points.AddY(100)).AxisLabel = "WMI"

ser1.Points(ser1.Points.AddY(100)).AxisLabel = "SNMP"

ser1.Points(ser1.Points.AddY(100)).AxisLabel = "RPC"

ser1.Points(ser1.Points.AddY(100)).AxisLabel = "ICMP"

End Sub

Private Sub frmMain_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        PieReset()

End Sub

Private Sub speak()

        Dim SAPI

        Dim prefix$

        Dim length As Integer

        Dim CNumber As Double

        SAPI = CreateObject("SAPI.spvoice")

        length = Len(lblTotal.Text)

        If Mid(lblTotal.Text, length - 3, 4) = "Mbps" Then

            prefix$ = "mega bits per second"

        Else

            prefix$ = "kilabits per second"

        End If

        CNumber = Val(lblTotal.Text)

        If Val(lblTotal.Text) = 0 Then

            All$ = "I need numbers to do a calculation. Zero is not an option."

            SAPI.Speak(All$)

            Exit Sub

        Else

            All$ = "The total recommended bandwidth for your" & Monitortotal & "monitors is" & CNumber & prefix$

            SAPI.Speak(All$)

            Exit Sub

        End If

End Sub

Private Sub picSpeak_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles picSpeak.Click

        speak()

End Sub

End Class

Originally, this article was going to called, "WMI Best Practices." After doing a brief search, I stumbled upon Microsoft's version of this topic. (They are, after all, the creators of WMI.) Let's just say the material was...sparse.

 

I think helping troubleshoot a WMI node would be more beneficial to our community anyway, so let's go with that.

 

Troubleshooting a WMI Node.

 

The following conditions must be met before you can proceed troubleshooting WMI nodes:

  • The node has successfully been added via WMI.
  • WMI is working properly on the remote server.
  • The Hardware Monitoring is installed on the remote server and running.

Using Wbemtest.exe to troubleshoot WMI:

  1. Open wbemtest.exe, usually located at C:\Windows\System32\wbem\wbemtest.exe.
  2. Connect from the problematic node (either the SAM server or the additional poller server) to the remote server using wbemtest.exe.
  3. Click Connect.
  4. In the Namespace field enter:

For IBM and HP enter: \\RemoteServerIpAddress\root
For Dell enter: \\RemoteServerIpAddress\root\cimv2

c1.png

   5. Enter administrator credentials.

           c22.png

   6.  Click Connect.

   7.  Once connected, click Query… from the main screen. The Query dialog appears.

   8Enter: select * from __Namespace

  q.png

Replace Namespace with the following:

  • For HP nodes, replace Namespace with HPQ
  • For Dell node replace Namespace with Dell
  • For IBM node replace Namespace with IBMSD


  9.   If the proper Namespace is found, connect to this Namespace.

  • \\RemoteServerIpAddress\root\IBMSD for IBM.
  • \\RemoteServerIpAddress\root\HPQ for HP.
  • \\RemoteServerIpAddress\root\cimv2\Dell for Dell.

     w.png

  10.  Run a Query for specific information.

         Select Manufacturer, Model, SerialNumber from CIM_Chassis

  • If the test was not successful, re-install the Hardware agent software provided by the vendor or Hardware Monitoring on the remote server with the latest release.

 

Filter Blog

By date: By tag:

SolarWinds uses cookies on its websites to make your online experience easier and better. By using our website, you consent to our use of cookies. For more information on cookies, see our cookie policy.