Category Archives: #Geek

ISP Bandwidth test monitoring

 

This allows you to test your internet service and get an regular email with the bandwidth test.

Requirements

 

Install

Python -c:\python
Speedtest_CLI – c:\scripts
SendEmail – c:\scripts\sendEmail
Crontab -(Default)

 

Setup

  1. Create folder c:\scripts
  2. Run and connect to Atlanta Comcast
    1. Hosted by Comcast (Atlanta, GA)  : Server # 1767
    2. c:\python34\python c:\scripts\speedtest_cli.py –server 1767
    3. See Results below for example
  3. Batch File ( c:\scripts\speedtest.bat )
  4. Add to Crontab
    Every hour – 0 * * * * c:\scripts\speedtest.bat

 

c:\scripts\speedtest.bat

date /T > c:\scripts\ga.sp
time /T >> c:\scripts\ga.sp
c:\python\python c:\scripts\speedtest_cli.py –server 1767 >> c:\scripts\ga.sp
c:\scripts\sendemail\sendemail -f %COMPUTERNAME%@%USERDOMAIN% -t stanford@tech.vi -u “SpeedTest %DATE:~4,2%-%DATE:~7,2%-%DATE:~-4%” -o message-file=”C:\scripts\ga.sp” -a “C:\scripts\ga.sp”


Results (e.g) :
 

Retrieving speedtest.net configuration…

Retrieving speedtest.net server list…

Testing from Communications Technologies (xx.xx.xx.xx)…

Hosted by Comcast (Atlanta, GA) [2588.72 km]: 126.965 ms

Testing download speed………………………………….

Download: 4.06 Mbits/s

Testing upload speed…………………………………………..

Upload: 4.30 Mbits/s

 

 

code … killproc.c

This week is Computer Science Education Week.  As part of their Hour of Code, I will be posting my source code from as far as back as possible.

It’s a bunch of gunk and fudges, so don’t judge me.  BTW… everything is BSD licensed.


 

After years of having to do it either manually through Task Manager or using a scripting engine like AutoIT, I finally settled down and wrote my own Win32 application that does massacres processes that I don’t like.  Will post source code later. Note that this kills all instances of the specified process. Usage : killproc.exe […]


 

 

killproc.c

#include<windows.h>
#include<process.h>
#include <Tlhelp32.h>
#include<winbase.h>

#include<stdio.h>

#include<string.h>

void killProcessByName(const char*filename){
HANDLE hSnapShot =CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0);
PROCESSENTRY32 pEntry;
pEntry.dwSize =sizeof(pEntry);
BOOL hRes =Process32First(hSnapShot,&pEntry);
while(hRes){if(strcmp(pEntry.szExeFile, filename)==0){
HANDLE hProcess =OpenProcess(PROCESS_TERMINATE,0,(DWORD) pEntry.th32ProcessID);
if(hProcess != NULL){
TerminateProcess(hProcess,9);
CloseHandle(hProcess);
}
}
hRes =Process32Next(hSnapShot,&pEntry);
}
CloseHandle(hSnapShot);
}

int main(int argc, char * argv[]){
if (argc>1)
{
killProcessByName(argv[1]);
printf (“Killing process named %s\n”,argv[1]);
} else
{
printf (“Usage : killproc <procname>\n”);
}

return 0;
}

 

Code – helloworld.c

This week is Computer Science Education Week.  As part of their Hour of Code, I will be posting my source code from as far as back as possible.

It’s a bunch of gunk and fudges, so don’t judge me.  BTW… everything is BSD licensed.


 

Hello World on Windows.

#include “stdio.h”

void sayHello()
{
printf (“Hello Stanford ! Welcome back to Win32 API. You have been missed !! \n”);
}

int main()
{
sayHello();
return 0;
}

Using…too …much memory ……..

So about 2 months ago,  I installed ChruBuntu on my Acer Chromebook and  have been loving it for the most part.  However there is one nagging issue and it’s the memory usage that slows the system to a crawl when visiting some rich content websites (e.g. Youtube, FB, Gmail, etc).

A normal task would be to simply kill the browser process, ie. Firefox when the system gets sluggish. However by that time, opening a terminal window and then waiting for inputs to appear on the screen was getting ridiculous.  On average it would take me 2-4 minutes,  before I could kill the FIrefox process.

My solution : A shell script that runs every minute and monitors the memory usage.  The moment free memory drops below a certain threshold, all firefox (and Chrome) processes are executed with prejudice  !!

Here is the script

————————————————————————————

#!/bin/sh

/usr/bin/free -m | grep Mem | grep -v grep | awk ‘{print $4}’ > /tmp/freem1.log
mem=$(cat /tmp/freem1.log )
lmt=”95″
#echo “memory usage is $mem\n”

if [ “$mem” -gt “$lmt” ]
then
echo “Memory usage is fine at $mem \n”
else
echo “Memory is Less than $lmt at $mem. Killing chrome and firefox\n”

ps ax | grep firefox | grep -v grep| awk ‘{print $1}’ | xargs kill -9
ps ax | grep chrome | grep -v grep| awk ‘{print $1}’ | xargs kill -9
fi

————————————————–

Fixed a server with soldering iron

Some time ago, I was hired to try and revive a server that died.  It was an old Dell server that running as a Windows Domain Controller.

This was the boot up screen.

23f452db3812fbb59d2e9fdb944dfefd

 

After a lot of research, I discovered in a forum that the specific SCSI card was prone to bulging capacitors.  Obviously the dust doesn’t help.

24187f518620dd0490379438e059a2bc

5f87f20d73f19f51a906a04b11dcd67a

c01f48f50ae89a2b4d8ab0a424977a10

 

So being the true geek that I am, I went searching through my pile and found the specific replacement capacitors and heated up my soldering iron.

fixed_card

 

End results …… happy customer !fixed_card_2

Tools of the trade – Mobile professional

With over 10 years of experience as an IT professional who moves around, I have had my share of tools to allow me to increase my productivity. Here is a snapshot of what I use now. And like everything in my field, it changes.

* Items are sensitive items. Ask me directly if you want to know .

  • Hardware
    • Acer Chromebook
    • HTC M1 Android Mobile
    • AT&t Persnonal wifi Hotspot
    • Macbook Air (in the shop;  Vitamalt and Mac products don’t mix 🙁  )
  • Software
    • Remote Desktop Client
    • Teamviewer
    • SSH
    • Banking Apps*
  • Services
    • Google Apps for Work
      • Gmail
      • Drive
      • Voice
    • Skype
    • Audible
    • Spotify
    • xMarks
    • Password Manager*
    • Evernote