Search My Techie Guy

Wednesday, September 27, 2017

List of 10 OTT Mobile Apps that can be used to broadcast live events - Eyes on Uganda


UCC (Uganda Communications Commission) has recently issued a guideline on live broadcasts to all Ugandan TV houses, but the big question is how practical is this restriction?

Because in this era, with all these OTT (Over The Top) mobile apps that can broadcast live events, anyone with a smart mobile phone can instantly turn into a broadcast source!

Here is a list of 10 most used OTT apps for broadcasting live events:


Please share widely with all MPs, Information is Key and we live in a free world.





Tuesday, September 26, 2017

ERROR: Your Cacti database login account does not have access to the MySQL TimeZone database.

Summary:

The following error was encountered during Cacti installation on RHEL or Oracle Linux Server 6.9


Problem or Goal: 
 ERROR: Your Cacti database login account does not have access to the MySQL TimeZone database. 
Please provide the Cacti database account "select" access to the "time_zone_name" table in the "mysql" database, 
and populate MySQL's TimeZone information before proceeding.

Cause:
Database user "cacti" does not have access to the TimeZone table "time_zone_name" in "mysql" database. That is "mysql.time_zone_name"

Solution: 
1. Grant database user "cacti" access to the TimeZone table in mysql database:


# mysql -u root -p mysql
Enter password: 
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 670
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> GRANT SELECT ON mysql.time_zone_name TO cacti@localhost;
Query OK, 0 rows affected (0.00 sec)

mysql>  flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye


2. Populate your MySQL TimeZone database before proceeding 


cd /usr/share/mysql
pwd
/usr/share/mysql

# ls -ltr | grep mysql
-rw-r--r--. 1 root root  10376 Jan 25  2017 mysql_test_data_timezone.sql
-rw-r--r--. 1 root root  17285 Jan 25  2017 mysql_system_tables.sql
-rw-r--r--. 1 root root   2855 Jan 25  2017 mysql_system_tables_data.sql
-rw-r--r--. 1 root root  45560 Jan 25  2017 mysql_fix_privilege_tables.sql


# mysql -u root -p mysql < mysql_test_data_timezone.sql
Enter password: 


No need for restarting the database!

Problem Solved?

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/yy.so'

Summary: 
PHP Warning while trying to test PHP installation with a simple command "php -v"

NAME="Oracle Linux Server" 
VERSION="6.9"

Problem or Goal: 

 # php -v
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/curl.so' - /usr/lib/php/modules/curl.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/dom.so' - /usr/lib/php/modules/dom.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/fileinfo.so' - /usr/lib/php/modules/fileinfo.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/gd.so' - /usr/lib/php/modules/gd.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/imap.so' - /usr/lib/php/modules/imap.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/intl.so' - /usr/lib/php/modules/intl.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/json.so' - /usr/lib/php/modules/json.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/ldap.so' - /usr/lib/php/modules/ldap.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/mbstring.so' - /usr/lib/php/modules/mbstring.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/mysql.so' - /usr/lib/php/modules/mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/mysqli.so' - /usr/lib/php/modules/mysqli.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/pdo.so' - /usr/lib/php/modules/pdo.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/pdo_mysql.so' - /usr/lib/php/modules/pdo_mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/pdo_sqlite.so' - /usr/lib/php/modules/pdo_sqlite.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/phar.so' - /usr/lib/php/modules/phar.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/posix.so' - /usr/lib/php/modules/posix.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/snmp.so' - /usr/lib/php/modules/snmp.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/sqlite3.so' - /usr/lib/php/modules/sqlite3.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/sysvmsg.so' - /usr/lib/php/modules/sysvmsg.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/sysvsem.so' - /usr/lib/php/modules/sysvsem.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/sysvshm.so' - /usr/lib/php/modules/sysvshm.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/wddx.so' - /usr/lib/php/modules/wddx.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/xmlreader.so' - /usr/lib/php/modules/xmlreader.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/xmlwriter.so' - /usr/lib/php/modules/xmlwriter.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/xsl.so' - /usr/lib/php/modules/xsl.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/zip.so' - /usr/lib/php/modules/zip.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP 5.3.3 (cli) (built: Jan 10 2017 22:26:04) 
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies


Cause:
If you check the PHP's initialization file (php.ini), the problem here was the directory in which the loadable extensions (modules) reside. Usually the default directory in the php.ini is set to "/usr/lib/php/modules" but in my installation, i have "lib64" NOT "lib" and should therefore change to "/usr/lib64/php/modules"

Solution: 
You can run the command below to find location of the php modules on your installation. for example if you are looking for "json.so"
 [root@localhost]# find / -name json.so
/usr/lib64/php/modules/json.so

Before:


After:


Problem Solved?
# php -v
PHP 5.3.3 (cli) (built: Jan 10 2017 22:26:04) 
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

The RAN Monthly Innovation Garage | The Jet Nebulizer | Friday 29th Sept 2017

The RAN monthly Innovation Garage is back again this Friday September 29, 2017 at the East African RAN Lab, Plot 28, Upper Terrace Kololo, 4:00pm EAT
This month we shall host: "The Jet Nebulizer"​ - that delivers nebulized medication for acute asthma. This device is manually operated using a bicycle pump, plastic tubings and a mask. All these have been locally assembled by a team of medical doctors from College of Health Sciences - Makerere University.

Hurdle: The device in its current phase is functional, although it is bulky and labor intensive. As usual and with your support the team would like to refine it and pilot it here in Uganda.

Do you want to be part of the conversation where smart Health solutions are powered by smart engineering techniques? Do not miss the Garage!!

The Innovation Garage at RAN remains a robust multi-disciplinary collaborative platform where innovators get quick fixes of their projects with very creative and brave individuals. We would like to see technologies developed in Africa launched on the global market and we hope to support local solutions that will transcend nations.


See you on Friday and please invite a friend!

Andela Uganda (Cohort 5) - All female developer cohort | Deadline 5th Oct 2017


To all the lady Techies! This is an all female developer cohort.

Are you passionate about technology and dream of building software to change the world?

What is the Andela Program?

Andela is a full-time employment opportunity that will enable you to own your learning as you hone the skills you need to become a global technology leader. Andela officially launched in Uganda in May and you can read about the launch on Forbes.

We recruit talented developers on the African continent, shape them into technical leaders, and place them as full-time distributed team members with companies that range from Microsoft and IBM to dozens of high-growth startups. Backed by Chan Zuckerberg Initiative, GV (Google Ventures) and Spark Capital, Andela is building the next generation of global technology leaders.

Andela all female cohort
We’re excited to announce to that we've opened applications for an all female developer cohort!

Do you know of a hardworking lady? Are they passionate about tech? Do they dream of changing the world with software? Well, we're looking for female developers! Interested applicants can send in their applications here: http://bit.ly/AndelaUGCohortV
Why are we doing this?
Because at Andela we believe talent is gender neutral. And we're committed to seeing women in tech thrive in their careers.

What does it take?
This is for women with an interest in technology, prior experience or education in computer science is not required.

When to apply?
The application submission deadline is October 5, 2017.

Does Andela take in female developers only?
No, we have so far admitted 4 mixed cohorts. Keep checking uganda.andela.com for the upcoming mixed openings.

Spread the word!

Friday, September 22, 2017

Error Response - mysqld: unrecognized service on Oracle Linux Server release 6.9

Summary: 

Am installing Cacti on Oracle Linux Server release 6.9 and MySQLD is among the many dependencies required.
I used "yum install cacti" but it installs all other dependencies apart from MySQLD (MySQL Server)!
so i was trying to run "service mysqld start" after the cacti + dependencies installation and got the error below.

Problem or Goal: 

[root@~]# service mysqld start
mysqld: unrecognized service

Cause: 

Turns our "yum install cacti" doesn't automatically install MySQL server.

[root@~]# rpm -qa | grep mysql
mysql-libs-5.1.73-8.0.1.el6_8.x86_64
nagios-plugins-mysql-2.2.1-4git.el6.x86_64
mysql-5.1.73-8.0.1.el6_8.x86_64
php-mysql-5.3.3-49.el6.x86_64


Solution: 

Install MySQL server again using "yum install mysql mysql-server" and try again.

[root@]# yum install mysql mysql-server
Loaded plugins: refresh-packagekit, security
Setting up Install Process
Package mysql-5.1.73-8.0.1.el6_8.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package mysql-server.x86_64 0:5.1.73-8.0.1.el6_8 will be installed
--> Processing Dependency: perl-DBD-MySQL for package: mysql-server-5.1.73-8.0.1.el6_8.x86_64
--> Running transaction check
---> Package perl-DBD-MySQL.x86_64 0:4.013-3.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===============================================================================================================================================================================================
 Package                                        Arch                                   Version                                              Repository                                    Size
===============================================================================================================================================================================================
Installing:
 mysql-server                                   x86_64                                 5.1.73-8.0.1.el6_8                                   ol6_latest                                   8.6 M
Installing for dependencies:
 perl-DBD-MySQL                                 x86_64                                 4.013-3.el6                                          local_oel6.5                                 133 k

Transaction Summary
===============================================================================================================================================================================================
Install       2 Package(s)

Total download size: 8.7 M
Installed size: 25 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): mysql-server-5.1.73-8.0.1.el6_8.x86_64.rpm                                                                                                                       | 8.6 MB     00:08     
(2/2): perl-DBD-MySQL-4.013-3.el6.x86_64.rpm                                                                                                                            | 133 kB     00:00     
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                          877 kB/s | 8.7 MB     00:10     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : perl-DBD-MySQL-4.013-3.el6.x86_64                                                                                                                                           1/2 
  Installing : mysql-server-5.1.73-8.0.1.el6_8.x86_64                                                                                                                                      2/2 
  Verifying  : perl-DBD-MySQL-4.013-3.el6.x86_64                                                                                                                                           1/2 
  Verifying  : mysql-server-5.1.73-8.0.1.el6_8.x86_64                                                                                                                                      2/2 

Installed:
  mysql-server.x86_64 0:5.1.73-8.0.1.el6_8                                                                                                                                                     

Dependency Installed:
  perl-DBD-MySQL.x86_64 0:4.013-3.el6   

Complete!                   

Problem Solved?

[root@]# service mysqld start
Initializing MySQL database:  Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h mtnsspebu password 'new-password'

Alternatively you can run:
/usr/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /usr/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/bin/mysqlbug script!

                                                           [  OK  ]
Starting mysqld:                                           [  OK  ]

[root@]# service mysqld status
mysqld (pid  1113) is running...


Wednesday, September 20, 2017

10 Critical “Ask Yourself Questions” for ICT & Telecommunications O&M Engineers before executing a major or critical network change procedure

After reading this article, you are going to be a better O&M engineer than you were before landing on this page.

75% of the work carried out by O&M (Operations & Maintenance) Engineers includes; Systems upgrades, Migrations, swap outs, replacements and configuration changes. Most of the time O&M engineers are criticized and blamed by planning engineers for being reactive rather than proactive. We are known for being firefighters rather than being fire preventers. This is about to change for you. After reading this article, you are going to be a better O&M engineer than you were before landing on this page.

Am four months away from making it a total of 9 years in telecommunications operations and maintenance (O&M), and I have learnt that the ability to pull off a smooth change operation (cutover, upgrade, swap out, migration, configuration change, expansion) majorly depends on how well you prepare yourself before the operation rather than your skills or experience!
You could be highly skilled with enormous experience but if you don’t make a good effort to prepare yourself before you begin a major change operation, you are likely to create a mess and believe me you, that will leave a bad mark on your record and reputation.

The preparation am talking about here includes; making sure you have the right tools (software tools and hardware tools), pre-checklist, the actual execution, post-checklist and service monitoring.

In this article I have compiled a list of critical questions that you should ask yourself before embarking on that major change operation. Trust me this will save you the bumpy ride that is common with all major network change operations.

Ask Yourself Questions

As an O&M engineer, you need to read and answer the questions below to ensure that all situations are considered prior to starting work or making any system/network changes. And if the answer to any of the questions below is NO, then you need to STOP and reorganize yourself. The questions are not in any particular order, you just have to go through all of them.

1.  Do I know why this work is being performed?

Most of the times O&M engineers take instructions from planning engineers or solution architects without making a detailed analysis and understand of why this work is being performed. It could be as minor as a simple restart of a system process but you need to find the reason as to why you have been asked to restart that process.

2.  Am I trained and qualified to do this work?

Usually technical work requires that you possess a certain skill set before you can execute any operation. This question helps you to evaluate your skill set and level. If you find yourself in a situation where you lack some skills to ably execute the work, make sure to have someone with that skill join you or be on standby to support you when you get stuck. It’s not a sign of weakness, you can’t know everything, there is nobody that understands everything and that’s why there are technical teams so that we can complement each other.

3.  Do I have the updated MOP (Method of Procedure) and supporting documents to carry out this work?

A method of procedure (MOP) is a document that outlines all the specific steps in detail of the work to be performed. It includes all the pre- and post-implementation system health checks.
It’s usually prepared by a more specialized technical team for example the research and development (R&D) team. These are the people that actually designed and built the system that you are about to work on. So, don’t feel shy asking for the MOP from the vendor prior to performing major changes on their systems.

4.  Have I walked through the MOP and supporting documents and do I know which network elements and services that are going to be impacted during this procedure?

Don’t just stop at getting the MOP and stashing it under your desk! Read it in detail and while at it, perform what we call impact analysis of all the services and network elements that are going to be affected by that procedure. Also identify the level and severity of the impact.

5.  Have I identified and notified everybody; customers, internal groups, stake holders who will be directly affected by this work?

Having perform the impact analysis and you have a clear picture of which services/systems will be impacted, you need to formally write to all the stake holders. At a bare minimum the notification should go out 3 days prior to performing the work.

6. Can I prevent or control service interruptions?

Still with reference to the impact analysis that you performed, ask yourself if you can prevent or control the impact on services. This will create minimal downtime of critical services. Your boss will be happy if you take that extra step, it will also show that you have the customer’s business at heart 😊

7. Is this the right time to perform this work?

Choose the proper time for your maintenance window, get a time that has minimum traffic. Yet again you are trying to have minimal downtime and this will save the business a lot of money.

8. Have you monitored the service to be stable for at least 24 hours prior to starting any changes?

Before you make any changes/upgrades to the system, make sure it’s error and fault free. Make sure you have visibility of the current status of the system. If there are any existing alarms/faults make sure to capture and report them otherwise you will find yourself trying to troubleshoot old faults that are not as a result of your operation.

9.  Do I have the proper equipment and tools to perform this work?

Tools can be software tools (terminal clients, username/password, monitoring tools, TFTP/FTP servers, diagnostic software, etc.) or hardware tools (console cable, screw drivers, meters, etc).

10. Is everything in place to allow me to quickly and safely restore service if I hit a snag?

This should cover the fall-back procedure, system backup, configuration backup, escalation procedure and hotlines. If you are a few minutes away from your maintenance window and stuff is not working out. You need to have a plan to roll back and restore the system to the last working configuration, save and plan for another day.


I have tried to cover the major “ask yourself questions” in operations and maintenance, if you feel I have left out some please feel free to leave a comment and I will be happy to add it to this article. Otherwise, I wish you a smooth operation.

Thursday, September 14, 2017

Goods Express Uganda - Buy stuff online and receive in Uganda (Pay by Mobile Money)

How cool is this?

You go to this cool website called GoodsExpress
Goods Express

Shop online, there is lots of categories to choose from:



And lots of merchants to choose from (The likes of eBay, Amazon ) and if you can't find what you are looking for on the website, there is an option of adding an item from another merchant website like Alibaba into your GoodsExpress shopping basket 


Plenty of payments options including MTN Mobile Money and Airtel Money


Flexible shipping, you choose the speed at which your item should arrive


And there is local support on the ground to help you in case you have some questions or challenges buying your item.

And if you refer your friends just like i just referred you to GoodsExpress, you get 20K in shipping credits and your friends get 20k shopping money just like you received 20K after following my link :-)


So once again, How cool is this?

This by far is the coolest online shopping platform in UG.

Wednesday, September 13, 2017

TTY Session disconnects after a few seconds of inactivity with Socket error Event: 32 Error:10053

Summary: 

My TTY session to an Ericsson-Juniper based GGSN/EPG node disconnects within 10 seconds of inactivity. I have tried setting the maximum idle-timeout but it has not solved the problem. I believe it's a bug. Am just making a note to self to track this issue and if you have a solution or idea please leave a comment.

Problem or Goal:

 Socket error Event: 32 Error: 10053.
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(GGSN) at 12:19:40.


Cause:

Not identified

Solution:

Not identified

Problem Solved?

No, leave a comment if you have a solution