Category: Tech

In the beginning, I developed the interest, then made a choice to take on the challenge. My first computer, a ” keyboard” picked off the garbage dumping area, started me in touch typing. Would then work in a friend’s video library, and a secretarial bureau before trading my skills in several internet cafes in Kampala.

On top of 30K+ people, my answers have helped on fixya.com and quora.com, many people look up to me for coding and tech-related solutions.

In this section of my website, I wish to share tech opportunities, challenges, and solutions, as I discover them.

I wish you a tireless reading.

  • How to move WordPress from Cpanel to VestaCP successfully?

    Background
    Cpanel from cpanel.net is the most popular, proven and robust web hosting platform out there. For both not technical and slightly technical, it simplifies the job a lot. It even has a free script installer as well as many paid for auto script installers such as softaculous. Other notable features are email, database and file management on top of robust web statistics aggregation. If you are hosting one or two websites in a shared host environment this is what you need absolutely. Most hosting providers, for example, Godaddy, Bluehost to mention but a few won’t charge you extra for it.
    But if you’re a small and startup hosting provider it might require a huge investment as well as unnecessary expense. Say you host your websites in the cloud, dedicated and normal VPS servers, you have to spend $20 to $40 per month on Cpanel. If you’re smart and a good researcher you may look out for discount coupons and if you’re lucky enough,  you will land on buycpanel.com from which you can get VPS licenses from as low as $13.95. Did I mention setting it up, requires a professional or an experienced person like me for example? Setting up Cpanel requires you to choose the correct operating system usually CentOS and as of writing this article you CentOS7 and above versions are a must, since Cpanel announcement that it will be stopping support for CentOS 6 on all systems by November 30, 2020. If you install FTP, SSH, and exim services you won’t get away with your junior skill. Of course, there’re many individuals and agencies including CPanel support who offer the installation and hardening service at a certain fee.
    If you are in a scenario like mine, you would realize going through all the above jargon is time-consuming and expenditure is overkill.
    My scenario
    I technically manage one of the most read news blog websites in Uganda. These are two websites which run on a single cloud KVM VPS at linode.com. Both websites get around a monthly traffic of 250k. Both websites are four to five years old.
    Technically I’m the single person in a number of publishers. For simplistic, the websites are proudly powered by WordPress which is slightly customized with custom fields, themes, and plugins.
    My primary role is to manage the server and carry out routine security audits, performance, theme optimization, update WordPress and plugins. We also slightly handle emails on the server. But we don’t want to spoil our sender score or reduce the reputation of the IP of our server.
    We’ve had Cpanel on our node for the last two years, despite being in a tight third world economy.
    For some months the license was automatically deactivated due to our failure to submit a payment, throughout that duration we couldn’t access Cpanel support, then it became hard to make any code modifications, manage databases and email accounts.
    During that time the only way of getting in the server was via ssh but we didn’t know every command, for example, to carry out a slight firewall fix.
    Proposal
    For regular management of the server, we had to find a solution. Thus we researched about website/web host control panels. We would filter by fees in relation to Cpanel, features, support, and age of first version and latest version.
    One of the most interesting ones we came across was CentOs CP which looks so much like Cpanel but we settled for another.
    Choosing VestaCP

    • It’s Opensource and free.
    • It supports more than one Linux distributions namely; Centos, Debian, Redhat, and Ubuntu. We actually installed it on CentOS7 but I later found out Ubuntu is recommended.
    • It’s minimum requirements i.e 1GM RAM, 20GB storage are friendly and can translate to slightly better performance than Cpanel.
    • Installation of VestaCP is the easiest yet takes as much as 15 minutes to be ready to set up and manage your websites.
    • To manage backups, databases, and emails is almost as simple as if not easier than Cpanel.
    • It has a growing support community through forums and paid for support.
    • File management. VestaCP doesn’t offer a free file management feature but that wasn’t big of an issue. The developers at VestaCP offer a file management plugin which is at $3 per month or $50 for a lifetime. We can also choose to use services such as codeanywhere.com to connect to the server via FTP hence manage our files without pain. Though codeanywhere.com has both free and paid plans, free code editors such as Notepad++, Atom, and Microsoft VS Code can connect to the server via FTP by the help of secure plugins and allow you to manage files of your websites. For us, this is great. It will help us save more than $179.5 which is a minimum of 661,986/= in Uganda Shillings currency today without including transaction fees.

    Procedure of switch
    Order a second node from linode.com
    One of the sites is about 51GB in files(images contributing the biggest part) and 1GB for MySQL database. As much as I wanted to use a WordPress backup plugin especially duplicator. The PHP execution time and memory limit couldn’t enable the plugin to execute and complete successfully. I also didn’t use the Cpanel backup feature because it was downloading the files locally on my computer which wasn’t what I desired.
    What did I do?
    I accessed both the older and newer nodes via ssh.
    Older node.
    Create a backup archive.

    $zip backup.zip -r /public_html

    The command took some time to finish about 2hours. I would be glad to discover a faster solution because moving systems around is just getting started.
    The next command I used was for backing up the database.

    $mysqldump -u root -p database_name > /home/user/path/database-file.sql

    The dump was blazing fast, motivating me to continue.
    Newer node.

    • Setup the node with CentOS7. Coming from Cpanel, I’m used to CentOS for web hosting.
    • Install VestaCP.
    • Create a site, FTP account, database.
    • Download backup from the older node and restore.

    Download commands
    Navigate to the path where I want to download backup files.

    $cd /home/user/web/domain.tld/public_html
    $wget http://domain-on-older-node.ltd/backup-path/backup.zip
    $wget http://domain-on-older-node.ltd/backup-path/database-file.sql
    1. Restoring files
      While at the path where I downloaded the backup.zip file, issued the command below.
    $unzip backup.zip

    If the files to extract at the root of public_html directory like in my case, I used the move (mv) command to move the files to the right location.

    2. Restoring database

    $mysql -u database-username -p
    $use database-name;
    $source database-file.sql;

    Provide the password as the system will prompt you, the restoration of the database took less than two minutes.

    Troubleshooting tips
    1. I see a blank white screen when I visit the website

    • Check and verify that the .htaccess file was restored. If not copy it from the old node to the new node.
    • Increase the maximum execution time and memory limit. Which VestaCP can help you do without hunting down the PHP.INI file. Increased mine to 300 and 384 respectively. By the way, I made the setting server-wide because am sure, I will be the only person to create websites on this server.

    2. Unable to upload photos through the media library.
    This is caused by a file permission issue. You have to make sure that the website account owns the WordPress installation since by default website installations are owned by root. Use the command below.

    $chown -R username:username /home/username/web/website.com/public_html
    

    Note: replace username with the actual username of the account under which website.com belongs. The website path structure in VestaCP is like /home/username/web/website.com/public_html
    3. The uploaded file could not be moved to /wp-content/uploads/year/month
    This is also a file permission problem on the uploads directory, you should make sure user and group can all write to this directory. Which you have to fix using the command below.

    $chmod -R 777 /home/username/web/website.com/public_html/wp-content/uploads

    Conclusion
    I would have moved the websites in less than 6 hours but because it was my first time doing this, I didn’t have experience of what I experienced during the process. I was playing trial, error and referring to  Google.
    I believe this is going to help you and I get a lot of local businesses online by offering them a cheaper performant alternative.
    Will also get web developers, online without having to cough more than $5USD per month for a robust node.
    Curiosity
    Does VestaCP work with docker? How can it be set up? How is the performance?

  • Web application development – Part 5

    Web application development – Part 5

    Welcome back, today in the web application development series, part 5 we look at how WordPress makes the task easier than ever before. Previously in part 4 we covered the components that make up web applications, which you can find here if you missed.
    Of course they are many tools in contention but of all why WordPress?
    Truth be told for over a decade, developers have used and are still using a Model View Controller aka MVC pattern architecture to develop web applications. Giving security, separation of interface from logic, maintainability and scalability as reasons for the pattern’s popularity. Popular web applications providing this architecture are Laravel, cakePHP, CodeIgnitor among others.
    WordPress follows a MAP aka Monolithic Architecture Pattern which is defined as, a monolithic application describes a single-tiered software application in which the user interface and data access code are combined into a single program from a single platform by wikipedia.
    Not to conclude that MAP methodology is better than MVC in comparison. The fact is that both are good fit for different scenarios. My major reason to use WordPress is to help someone learn an alternative way of powering web applications if  they know of another way.
    To come up with a fully functional application we shall have develop a theme and plugin, thereby learning about developing a WordPress theme and plugin.
    The tutorial will also offer a good opportunity to discover WordPress plugins you might have never heard of.
    WordPress comes with
    A database
    Already available to us is the a small but powerful WordPress database with fewer tables than other systems for which you have to create your own database. WordPress’ consideration to introduce meta tables is one of the best things about it.
    User management and authentication
    Additionally one of the most hardest part about developing web applications is the authentication system, which can easily be broken if developed poorly.  This is what we have to be happy about with WordPress, they provide an easily extendable yet secure authentication system.
    Back-end user interface.
    For the biggest part of our development we shall engineer the front-end system because WordPress has got us covered with a fully customizable back-end user interface called the WordPress Dashboard.
    Let’s tune in next time and get the job done.
    Meanwhile you can take a look at Custom post types, custom fields, custom taxonomies, theme and plugin development in WordPress by searching in google. I recommend reading articles of codex.org and wpbeginner.com.
    Cheers!
     
     

  • Learn to develop web applications the modern way – Part 4

    Learn to develop web applications the modern way – Part 4

    Hi, there!
    Before we continue into the 4th of part of the series, I would like to put forward a word of thanks to everyone putting in the effort to consistently follow my tutorial. I’m sure it will pay off in the long run, don’t give up yet!
    So far we have looked at the requirements, compared web designing and web application developing  and looked at extending as being a smart practice that every coder must adapt.
    I would like us to continue by looking at the components which make up a web application. It’s important to understand the basics which is a good fallback as you continue in the journey of a great career.
    Let’s get to it.
    In a nutshell they are two components which make a web application i.e. the User interface and the storage engine.
    Continued on 1/14/2018
    User Interface also known as UI is the component through which we (users) interact with the web applications. A fully functional web application’s UI is divided into two parts; one being the front-end and other the back-end. The front-end usually used by the public whereas the back-end used by users who are allocated special privileges  of the web application.
    A good example of a web application is WordPress and using it as an example, the administrator can add new users who can be administrators, contributors, subscribers and editors. Additionally if you create a Website/blog on WordPress, the public looks at the front-end to read your posts while you login to the dashboard to write posts.
    Storage engine commonly known as a database. This makes the major difference between a website and a web application. Not to say, that websites don’t have databases or storage engines. Rather to emphasize that web applications will normally have some sort of storage engine. Databases can come in many types depending on the type of content to be stored and used. Example of databases powering web applications today are MySql, PostgreSQL, SQLite and WebSQL.
    You want to learn more about these components which make up web applications? Just visit google and start your research, you will find millions of helpful information.
    Let’s go straight to the next part of the series about learning how to develop web applications utilizing modern methods.
     

  • The difference! Website designing and Web application development.

    The difference! Website designing and Web application development.

    Are these just industry terms to confuse the novice and the customer? Is the difference really worth knowing and understanding or is it a wastage of time? As we continue on the journey to learn how to do develop web applications, I thought it would be good someone clear the question before us.
    What is web design?
    In my opinion is the process of using a set of tools to create and put together a navigable elements and content accessible through a web browser. The set of tools are majorly the graphics design applications such Adobe illustrator, Adobe Photoshop, GIMP, Sketch and content management systems such as WordPress etc. Though web designing could involve use of coding with HTML, CSS and JavaScript, code is not mandatory. That said someone who has never touched code can put things together and produce a highly performance website.
    What is Web application development?
    In my opinion is the art and science of using coding to develop software that is accessible through a web browser. Though they are tools like script-case that help I.T professionals to come up with web applications, web application development requires someone to have some good coding skill to come with a fully functional web application. Examples of web developers are people capable of developing systems like facebook, linkedin and WordPress to mention but a few.
    Why even care?
    You may wonder, why of all things must I know about the differences between website designing and web application development. Many people’s reasons could differ from mine. I think if you want to become something, there is something that competes with what you have in mind, therefore you must ultimately pay attention because it’s very vital in helping one choose the right path sooner than later in life. Since developing a career involves investment of valuable resources… it’s always good to look at the right direction and avoid destruction.
    Let’s meet next week for the next item on the agenda of How to develop web applications utilizing modern ways which is Extending is smart!

  • How to develop web applications. Prerequisites

    How to develop web applications. Prerequisites

    Allow me start by apologizing for missing to post in the previous week. Without further a do, let me start from where we stopped in part one of the series about learning the modern way of developing web applications.
    But who am I and why do I fit to be your tutor this festive season?
    I’m an African Ugandan internet student, businessman and trainer. Besides technology, I purposely encourage and guide people through the process of becoming self-aware for mindfulness and peace.
    Over the years I have studied and learned about PHP, JavaScript, HTML, CSS, SQL and Content Management Systems which has helped build a skill, career and establish Gagawala Graphics Limited a business offering web hosting, web management and web design in addition to printing and graphics design to people of Uganda both within and in diaspora.
    I tut at Hostalite Cyber Academy and part of the core volunteer team at You Inspire You.
    What do I need to know before following the series?

    • I wouldn’t say you need much if you’re passionate besides being able to code in HTML, CSS, JavaScript(jQuery) and VueJs, and PHP(OOP).
    • You should also be able to find a web host to practice or alternatively install Lamp(linux) or MAMP(iOS) or WAMP or XAMPP(windows).
    • Ability to install and setup WordPress.
    • Lastly but not least you should be able to read and understand English.

    What next?
    For now get ready for next part of the series which is Web design vs Web applications development.
    In that article I will share my opinion backed by 5 year experience about the differences between web design and web application development. I find this necessary because many people confuse the two.
    See you next week.

  • Learn the modern way of developing Web applications this festive season for free.

    Learn the modern way of developing Web applications this festive season for free.

    If there is anything I’m passionate about nothing beats the passion to use technology to benefit fellow humans.
    Since I got the opportunity to live in the generation where the world is a global community because of internet, it gifts me the privilege to learn and share. This festival season, I would like teach you about developing functional web applications using modern tools and approaches.
    Take a look at the table of contents.

    1. Prerequisite
    2. Web design vs Web applications development
    3. Extending is smart!
    4. Components of a Web application.
    5. Powering web applications with WordPress
    6. The do list application

    At the end of the tutorial I expect the reader to:-

    • To differentiate web design from web development.
    • To learn the different components together with their functionality in web applications.
    • To develop web applications using WordPress as an underlying framework.

    Stay tuned for the next post, in which I will reveal my experiences and the requirements you need to benefit from this short but practical tutorial.
     
     
     

  • Web design vs Graphics design, my honest opinion

    A few days a friend came to me with a question. I believe it was a result of looking a web design as a tough game. Since profound web designers have to pull off a lot of skills to be able producer an above average website.
    Her question was. Of graphics design and web design which one is smaller than the other? Find what I answered below.
    Though the answer I gave to her was brief, let me try to elaborate.

    By definition.
    Graphic design is the process of visual communication and problem-solving using one or more of typography, photography and illustration. – Wikipedia
    Web design is the process of creating and updating websites.

    Web designers may have some level of graphics design skill say they the ability to use graphics design applications such as Sketch or Photoshop or Adobe illustrator to create web layouts and mock-ups which are the static and none functional representations of a website. It is also true that web design encompasses numerous disciplines such as User Interface design, User Experience design, Information architecture, navigation ergonomics.
    I will categories graphic design into two primary categories .i.e. Screen and print graphics for more clarity. For whichever element that is designed but won’t be out put through printing on paper, wood, metal, clothes etc I will consider that designed for electronic screen display hence have under screen graphics contrary to it’s sibling which is targeted for print media.
    Websites are among those products that will be designed following all graphics design aesthetics and tools but will be primarily accessed on screen devices like desktop computers, laptops and hand held devices.
    To conclude, I will say web design is a discipline in the graphics design ecosystem. Other disciplines could include motion graphics, video editing, animation, logo design etc.
    Do you have a your own opinion, criticism or suggestion? I have opened and allowed to receive your comments below.

  • Mobile digital hub has started, will you join us?J

    Mobile digital hub has started, will you join us?J

    Mobile Digital Hub(MDH) is a program carried out by You Inspire You in Uganda, focusing on expanding technology awareness and use through offering a free technology education to people in the local communities.
    MDH was for the first time rolled out to the people at the former home of Righteousness Palace Ministries church at Lukuli Nanganda. YIY through it’s leaders talked to RPM leaders about the idea before it was welcomed. RPM took the responsibility of mobilizing the community people to participate on top of facilitating space to be used for free.
    Around 21st July 2017, we provided about 22 printed application forms to help RPM to register interested participants. From that total we would only choose 10 people to participate based on available resources.
    On 11th and 12th, we were able to start the activities to which we are very proud of the training team and the community members who are very interested and committed to learn despite the age, academic and life background.
    The group we are attending is a mixture of age groups, ranging from 17 to 50 years and both genders.
    Though they were some challenges especially on the first day when our own laptops failed to work, RPM and Gagawala graphics ltd donated the computers we used on both days. The trainers were late by an hour on the first day.
    The biggest achievement was everyone apart from one  individual attended both days.
    Everyone is now able to switch on and shut down a laptop as well as some are comfortable with the touch-pad already and one or two individuals are still getting used as we go into a week were practicing with the keyboard and mouse will be intense.
    With gratitude we appreciate everyone who made our commencement a success. Words can’t explain the happiness we have in our hearts, having introduced 10 Ugandans especially from the local community to technology.

  • Our technology education program will be called…

    In last week’s article Updates on the 5 units to educate 100,000 people in Uganda about technology, I was shared an update about the technology education program, my friends and I are about to enroll in Uganda a few weeks from now.
    I would to appreciate everyone who is reaching out to support with courage and in any way possible.
    In fact many of you have asked what’s the name of the program. Today I will like to give you an answer but after narrating a bit more of our approach and why.
    Our approach
    To partner and visit learning participants in their communities. It’s our priority to visit the community with training equipment, we are also flexible to utilize the resources on ground hence we can visit a community prior to community interest and invitation.
    Our major focus is someone who is just starting out to use a computer and self taught but interested in learning more from our team.
    Why?
    The tradition method is prospective learners to look out for training centers which offer an education in technology. This is an outdated approach in education service delivery  since it is most likely to exclude low level education background people, pregnant women and breastfeeding mothers, elderly community leaders,  people living in remote and rural areas which are also far from towns where schools could be located and marginalized groups of people. Our solution will introduce as many people even beyond 100000 to technology through offering technology literacy and accessibility.
    If we want to achieve our dream, one of our goals is sustainability, and we think it is important to use little resources on our away to attaining the dream. Instead of waiting to raise capital for renting a space, we are fortunate to roll out the program in the communities where our people live and have an affiliation.
    The ordinary methods would attract huge customer acquisition costs, which means the founders and investors must have to invest heavily in the start up unlike us whose approach is to have people push the solution furthest for the betterment of their communities and the surrounding.
    So what is the name of the program?
    First of all the program will be carried out by a team of volunteers on behalf of You Inspire You. You Inspire You, is a social entrepreneurial establishment, focusing on utilizing the most accessible resources to stir up potential by teaching technology and technology related disciplines to ordinary people, with an aim of improving livelihoods by leveraging on the numerous opportunities presented by a technology savvy.
    The name of the program is Mobile Digital Hub and MDH in short. The name was chosen reflecting the process and digital technology skills acquisition.
     

  • Updates on the 5 units to educate 100,000 people in Uganda about technology.

    Updates on the 5 units to educate 100,000 people in Uganda about technology.

    Introduction

    For about 7 years, I face technology challenges many of which am fortunately able to solve due because of the repeated usage of computers, tech gadgets and the internet.
    Some of the challenges are education, health and income generation related.
    Technology doesn’t only help me keep in touch with the people that matter, it also gives me the chance to learn, earn income, educate others and contribute in different ways to community development.
    With gratitude am happy to:- to participate in the designing of websites such as eastafricatourismguide.com, theelephanthome.com, africawildexplorations.com, ugandatrip.org, rubonicamp.com, homesteadtoursandsafaris.com and ucota.or.ug among others. Perhaps some of you reading this article have ever visited Uganda through one of those websites. The existence of the businesses and organisations which own those websites are helping reduce unemployment and provide a way for numerous people to earn an income in Uganda.
    I have also been able to build financial business website like rapidadvisory.com, personal websites like kaweesimark.com, bboydancemachine.com, joramc.com, and kibuukaphotography.com other websites are directory sort of such as kansanga.com which is a free platform where a locals in my township can lookup or upload businesses, places etc.
    One of the reasons I’m a web developer is to solve real life problems such as lack of accessibility to affordable means of marketing and business opportunities as well to help brands establish a presence on the internet.
    Through experience, I have discovered that people are spending a great deal of funds and time to a lot important and useless things due to lack of technology skill and knowledge. Some people spend on expensive web tools to build good looking websites but they don’t have a budget set a side for marketing and maintenance of their websites.
    Some people would easily have time to edit and upload content to their websites but they lack technology skill and the confidence to pull it off.
    Currently some good number of Ugandans, have managed to get an income opportunities abroad in the other parts of the world and they would love to send money back home, safely, fast and securely which could be easily done through platforms such as useremit.com and worldremit.com  etc but the confidence that they can do it without a mistake is in lack.

    What do I do?

    A few years ago, with two friends, we found a company discovering the opportunities availed by technology. The business we initiated in 2014 to celebrate 3 birthdays and established itself as fully legally recognized business in Uganda. We started with the capital of less than UGX 300,000/= ( about $80 USD).
    From two individuals to six full time employees, in an economically stricken market, we are persevering. We are strategically located in the center of Kampala capital city, at the heart of the printing industry in the country on Mirembe Arcade, 4th floor, office number E09 at Nasser Road which helps customers locate us easily for bespoke products and services helping their businesses grow and become or maintain sustainability.
    Additionally I volunteer to educate people of all walks of life and introduce them to the technology since I have developed from someone who couldn’t afford food worth 1000/= ($0.27) to someone is sustaining myself.  The tech training I offer covers, introduction to computer usage, internet, coding through HTML, CSS, JS and PHP and Website design using Content Management Systems especially WordPress and Joomla. As I have many less tech skilled friends and people in my network, I sometimes help with troubleshooting their devices or offering tips for whatever they stumble with the gadgets and software systems they use.

    A self question

    Looking where I am from, where would I be without the help of the people with a good heart? How can I pay it forward?

    A self answer

    I should volunteer more often reaching out those who can’t afford tech education at school or paid for training centers.

    The progress so far

    At the beginning, what was a virtual dream, is becoming a reality.
    Have been able to acquire two used laptops at an affordable fee from a friend who deals in selling used computers.
    A few weeks ago I was able to set these laptops up by installing Windows OS, Microsoft office suite, typing master and web browsers. Those tools will be enough to get some started with technology.
    I appreciate that some few friends have believed in the idea and are willing to involve as trainers, project ambassadors, pilot program hosts and website hosting partners among other responsibilities.

    When do we roll out?

    I will bring more updates next week.

    Conclusion

    This will be the first official fully packaged program am heading to impact social change and community development. I have little experience and exposure in managing such a program thus I kindly request for any of your suggestions and ideas.
    Thanks for reading.
     
     
     
     
     

Verified by MonsterInsights