You are here

Risharde's Blog


YTSubscribe is the best social exchange website to get REAL, FREE Youtube Subscribers! We also offer free added bonuses such as content designs and much more all for free! Visit for more details! Get popular on Youtube with the help of many other Youtubers! Joining is absolutely free!

WHMSUPERB WPTools (Wordpress Tools)

WHMSUPERB Wordpress Tools for cPanel empowers your users to detect issues, install Wordpress websites and manage website backups!

Purchase license $9.99 / year (15% discount!) OR install for free 14-day trial


User Features (cPanel)

Empower your cPanel users with Wordpress administrative power!
Easily install a new Wordpress website!
Easily reset your Wordpress website admin password!
Fix your migrated Wordpress website (white screen of death) using the Fix WP Domain feature!
Diagnose database connectivity issues with WP websites
Scan for WP Malware and other viruses!
Scan for WP DATABASE Malware from database posts data!
Backup your Wordpress website files and/or database!
Restore your Wordpress website files and/or database!
Download your Wordpress backup archives to your computer!
Upload your Wordpress backup archives back to the server and restore them!

Screenshot of WP Tools in the user's cPanel account

It feels like it's been years

It feels like it's been years since I blogged though I am pretty certain its only been about a month.. or two... or three...
It has been really hard finding a job that suits me well in the IT industry in Trinidad. I always hate it when the good guys lose and the bad guys win - especially when I'm the good guy.
I also had an interview today and it really had me a bit down... I really like to excel in anything that I do and knowing that it didn't go well just doesn't rest easy with me.
Life has been tough particularly due to my view on myself and my achievements. Now that much of my savings has depleted, I really need to get back out there in the workplace but it seems really difficult to even get short listed for an interview.
I spent a lot of time serving God but I'm still waiting for that extra help from Him... a bit worried because I'm getting close to desperation and if you don't know how that feels, it really isn't a good feeling. Anyways - this is my life... I am still thankful for it, just not as thankful as I can be if I can get something better. Not sure if you guys know what I mean. I know some of my rivals will be so happy to read this but the truth is the truth so every dog has his day... I haven't had one of those in quite a while... maybe in the days to come this dog will get back into something.

I now know why I wrote on my blog

It's been about 10 year later, I'm now 32, I feel so much older, slower, failed and even lonely (but not lonely the way most folks know it).
Using my spare time wisely, mostly always analyzing, I now realize why I used to write on my blog. As you can see, I barely do it lately. I stopped when the people I cared for the most asked me why I would share how I feel with people who would just use it to hurt me. I suppose, it's called love and now I know that if there was someone like me who posted on their blog and I loved them, I would probably give them the same advice - never let people know how you really feel - they will most likely not understand.

I've lost a lot of friends just like Mark Zuckerburg... but Mark Zuckerburg of Facebook was lucky - he became rich, popular and perhaps vindicated. The total opposite I think of what happened to me. Again as I said, I lost a lot of friends, mostly because I was understood, mostly because I was honest and had my heart on my sleeve and mostly because of my blog and other creations. I was actually fine with that until recently. Sure, I might have been insensitive sometimes but who hasn't... cast the first stone.

In any event, coming back to the topic, I now know why I wrote on my blog. I never wrote for people who knew... and that's ironic now coming to think about it since I mostly told people I knew that I had a blog. My blog branched off from TNTSMS.COM at some point and so the blog was intended for those who used the website... many of which I didn't know.

Truth be told, I think I'm better judged by those that I don't know that those that I knew or those who knew me. The blog was really for those who would judge me easier. Maybe for those who could keep a connection purely based on just my heart and mind - not my actions, not my looks (or lack thereof). This is what I've always been fascinated by and has a link to IRC - where I first developed this really bad habit to put it lightly.

In any event, I hope to have more days where I can begin blogging again. If you're out there and you don't know me, I'd love to hear from you - you can always email me at

It would be nice to make new friends...

Windows 10 SSD vs Normal Hard Disk Boot Times

After finally getting my first SSD hard disk drive, its time to help someone out there on the internet or so I hope.
For those of you who don't know the difference between a normal hard disk drive and an SSD drive, I'll try to explain it as simple as I can. Basically a normal hard disk drive has a moving magnetic disk called the platter that spins typically at 5400 revs per minute (RPM) or 7600 revs per minute (RPM). These drives have moving parts which means that if you throw down a laptop while the hard disk is running, you can damage the hard disk drive.
An SSD drive is a hard disk as well except that instead of having moving parts, the drive uses chips which store the data. This is a really basic description... it's more complicated than that.

Anyways, lets get to the main point of this blog, so essentially, the SSD drives, because they use the storage chips tend to be much faster at reading data and also writing data. This means that the computer is able to read data faster from these drives. How fast you might be wondering? Some SSD drive manufacturers claim that their drives are between 10 to 100 times faster than normal hard disk drives. When you put that into perspective, if your Windows machine took 30 seconds to boot on a normal hard disk drive, you might be able to get it to boot in 3 seconds using an SSD. Realistically speaking from my experience, Ive been able to get my Windows based PC to boot in approximately 8 seconds, which I have to tell you has been really amazing compared with a previous boot time of 28 seconds.

With that being said, there's one thing I have to warn you guys about - SSD drives tend to fail faster and do seem to have a shorter life span. You have been warned. I hope this will help someone out on the internet.

Bad Human Resource Practices

HI everyone, its been quite a while since I've blogged and I thought I'd get back up to speed with blogging. Please remember that the views expressed on this blog is mostly related to my personal views. I don't force these views unto you but simply present them to the public. If you get angry with my view, please don't. It's only a way of expressing my experience.

I've been thinking lately about something that is disturbing me greatly. I've spoken before about bad H.R practices in the past and I've seen consistently where Human Resource personnel fail to make good decisions. Particularly, I'm speaking from some level of experience especially since from time to time, I send resumes out to companies in Trinidad and Tobago. Of course, this blog topic doesn't apply only to Trinidad and Tobago but I am basing my writings as of current on Trinidad and Tobago.

Out of approximately 20 resumes sent out, I tend to get responses from only 1 or 2. I've always asked myself why this happens. I've gone through extensive alterations / version controls just like when I am programming to see whether its based on format, content, more credentials, less credentials, more qualifications, less qualifications... etc...

I think this needs to be at the top of the list because I am aware that this happens often. Companies and organizations that already have an 'in-house candidate' that they already like still follow the process of advertising for the position. The problem that arises is that the personnel on the panel have already made up their minds to the point that it is nearly impossible to convince them to choose you (the person being interviewed). What results is a time wasting procedure particularly for the person being interviewed. Can you imagine how much of wasted time is produced if a company interviews the top 10 list and finds no suitable candidates. Time is money. I am nearly certain that many Human Resource personnel would not like their time to be wasted but then again, I've come across many ill-tempered human resource workers in my years of work.

Hear say
I've heard Human Resource managers and human resource workers say that they talk to other people and based on what those people say, they either decide to short list the candidate or reject the candidate. While is possible sense to this, in many situations, this is a very dangerous, inaccurate way of determining a suitable candidate. Particularly because I hardly hear people talk good about people who are leaving an organization. Even from my own personal experience, I believe that I've been hurt and damaged by this process. Most people leave an organization when they are seeking something better or unhappy with the current organization. The organization on the other hand is interested in saving face. If you can see this angle, you'll realize that most workers work (with the minor exceptions) and most organizations try to be something they aren't but are seeking to get better. In the process, you hardly find an organization apologizing. So really, I actually question which one is the dangerous one... the people who want better wages or working conditions or the organization and the h.r practices which seem to be like shopping on amazon or ebay for the cheapest deal. It's downright disturbing.

Decisions based on qualifications alone
It is a dangerous thing to base your entire decision of short listing on qualifications only. Especially when it comes to computer science and IT. Particularly because the majority of people I come across in IT can't build a simple program. I ask, how is this possible? How do they get the jobs and I can't land one. Simply put, I believe Human Resources have not been up to speed with talent. I've questioned people with phDs in their fields and many have had to admit that they didn't know something. This is simply because a qualification isn't the deciding factor for getting something done. Practicality and option to prove someone can do it should matter but it doesn't seem to be that way with many H.R.

No proper testing or evaluation
Winning interviews is simple. You tell them what you want them to hear. But really, is that really what makes an organization better? Not to me. I could butter up the interviewers in an interview and that might land me the job. So what happens when you're in the job and realize you're head over heels. You see many interviewers on the panel are setting people up for failure. They think they are doing something good by giving someone a job but really, I don't think many see the real responsibility given to them. Sure, there are times when you are aware that the person doesn't have enough experience but your systems have to be in place for them to learn and get better. If you don't have that, why on earth would you hire someone to insult them, to make them feel like less of a human being when they fail to meet what you want.

These are just some of the things I've seen job hunting in Trinidad and Tobago. I'm sure there's more and I'm sure someone will post a really nasty comment about me. Of that I am certain.

Setup GRE Tunnel


modprobe ip_gre
Now set it to start at boot.

echo "/sbin/modprobe ip_gre > /dev/null 2>&1" > /etc/sysconfig/modules/ip_gre.modules && chmod 755 /etc/sysconfig/modules/ip_gre.modules
Create ifcfg-tun0 Configuration Files
We need to create the configuration files for the GRE tunnel. These files live alongside your CentOS network device files in /etc/sysconfig/network-scripts/

Create ifcfg-tun0 file. Please note, the internal and external interfaces must already be configured and plugged into the correct ports for each network.

vi /etc/sysconfig/network-scripts/ifcfg-tun0
The file should look like this (except your IPs will be different)


Create ifcfg-tun0 file where the network interface scripts are.

vi /etc/sysconfig/network-scripts/ifcfg-tun0
The file should look like this (except your IPs will be different)

Bring tun0 interfaces online and verify
Now that we have the configuration files setup, we will need to bring up the tunnel interfaces and verify that they came online properly.

We’ll just use the ifup command to bring up the interfaces.

ifup tun0
Now we can verify with the ifconfig command.

ifconfig tun0

We’ll just use the ifup command to bring up the interfaces.

ifup tun0
Now we can verify with the ifconfig command.

ifconfig tun0
Test the connection
At this point the tunnel should be online, and the machines should be able to reach one another via internal IP addresses. Lets ping each other and make sure everything looks ok – make sure your firewall isn’t dropping ICMP packets if it doesn’t work.

Ping internal address


Ping internal address


TCP Forwarding to next server

These rules should work, assuming that iptables is running on server :


echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -F
iptables -t nat -F
iptables -X

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination
iptables -t nat -A POSTROUTING -p tcp -d --dport 80 -j SNAT --to-source

DNS Poisoning?

I could be wrong but the site has been up and down for the past month and it seems to be some sort of DNS poisoning that was occurring. It's very weird because nothing changed on the webserver architecture yet the DNS was simply not resolving even though I can confirm bind was answering. Anyways, we're back up and if you're the attacker, it seems I didn't care that much... :) lol

pyUSB on Raspberry Pi

sudo python install

This isn't too bad, but there are a couple quirks to be aware of. One limitation is that sending X10 codes breaks if you go too fast. I added a Wait subroutine (see the end of this page). The PLM seems to need a 500 millisecond pause between X10 commands. Lower delays didn't seem to work.

Also, the indexes are odd. I set up two arrays with the necessary values (see below).

The following also assumes that

house = the X10 house code as an integer, 0 = A, etc
device = the X10 device code as an integer

Put this in the declarations area of your form/module:

Public PLM_X10_House(16) as Byte
Public PLM_X10_Device(16) as Byte

Set the values for those areas somewhere convenient (like Form1.Load):

PLM_X10_House(1) = 96 ' House code A
PLM_X10_House(2) = 224 ' House code B
PLM_X10_House(3) = 32 ' House code C
PLM_X10_House(4) = 160 ' House code D
PLM_X10_House(5) = 16 ' House code E
PLM_X10_House(6) = 144 ' House code F
PLM_X10_House(7) = 80 ' House code G
PLM_X10_House(8) = 208 ' House code H
PLM_X10_House(9) = 112 ' House code I
PLM_X10_House(10) = 240 ' House code J
PLM_X10_House(11) = 48 ' House code K
PLM_X10_House(12) = 176 ' House code L
PLM_X10_House(13) = 0 ' House code M
PLM_X10_House(14) = 128 ' House code N
PLM_X10_House(15) = 64 ' House code O
PLM_X10_House(16) = 192 ' House code P

PLM_X10_Device(1) = 6
PLM_X10_Device(2) = 14
PLM_X10_Device(3) = 2
PLM_X10_Device(4) = 10
PLM_X10_Device(5) = 1
PLM_X10_Device(6) = 9
PLM_X10_Device(7) = 5
PLM_X10_Device(8) = 13
PLM_X10_Device(9) = 7
PLM_X10_Device(10) = 15
PLM_X10_Device(11) = 3
PLM_X10_Device(12) = 11
PLM_X10_Device(13) = 0
PLM_X10_Device(14) = 8
PLM_X10_Device(15) = 4
PLM_X10_Device(16) = 12
To send an X10 On command:

Dim data(3) as Byte

data(0) = 2 ' start first message: send X10 address only
data(1) = 99 ' 0x063 = Send X10
data(2) = PLM_X10_House(house + 1) + PLM_X10_Device(device) ' X10 address (house + device)
data(3) = 0 ' flag = this is the address
SerialPLM.Write(data, 0, 4)
data(0) = 2 ' start second message: send X10 house + command
data(1) = 99 ' 0x063 = Send X10
data(2) = PLM_X10_House(house + 1) + 2 ' X10 address (house + command)
data(3) = 128 ' flag = this is house + address
SerialPLM.Write(data, 0, 4)
To send an X10 Off command:

Dim data(3) as Byte

data(0) = 2 ' start first message: send X10 address only
data(1) = 99 ' 0x063 = Send X10
data(2) = PLM_X10_House(house + 1) + PLM_X10_Device(device) ' X10 address (house + device)
data(3) = 0 ' flag = this is the address
SerialPLM.Write(data, 0, 4)
data(0) = 2 ' start second message: send X10 house + command
data(1) = 99 ' 0x063 = Send X10
data(2) = PLM_X10_House(house + 1) + 3 ' X10 address (house + command)
data(3) = 128 ' flag = this is house + address
SerialPLM.Write(data, 0, 4)

import usb.core
import usb.util

# find our device
dev = usb.core.find(idVendor=0xfffe, idProduct=0x0001)

# was it found?
if dev is None:
raise ValueError('Device not found')

# set the active configuration. With no arguments, the first
# configuration will be the active one

# get an endpoint instance
cfg = dev.get_active_configuration()
intf = cfg[(0,0)]

ep = usb.util.find_descriptor(
# match the first OUT endpoint
custom_match = \
lambda e: \
usb.util.endpoint_direction(e.bEndpointAddress) == \

assert ep is not None

# write the data

Get back your start menu in Windows 8

I've been using Windows 8.1 and absolutely dislike the returned start menu as it lacks a lot of features compared to the Windows 7 start menu.

The good news is that the guys over at Classic Shell has created software to return the taskbar to its rightful bottom of the screen.

You can get it free at

Good luck!