Search Cerebrotech Blog

Monday, 6 November 2017

Tech Tips From Cerebrotech

Welcome to the month of November from us here at Cerebro Technologies. Although coming a little bit late, we will like to arm you with a few tech tips going forward in the month.


  • Keep software up to date 
    Installing software updates for your operating system and programs is critical. Always install the latest security updates for your devices: Turn on Automatic Updates for your operating system, Use web browsers such as Chrome or Firefox that receive frequent, automatic security updates and Make sure to keep browser plug-ins such as Flash, Java, etc. up to date.
  • Avoid Phishing scams - beware of suspicious emails
    Phishing scams are a constant threat - using various social engineering ploys, cyber criminals will attempt to trick you into divulging personal information such as your login ID and password, etc.
  • Practice good password management
    We all have too many passwords to manage - and it's easy to take short-cuts, like reuseing the same password. A password management program can help you to maintain strong unique passwords for all of your accounts. These programs such as KeePass can generate strong passwords for you, enter credentials automatically, and remind you to update your passwords periodically.
  • Be careful what you click
    Avoid visiting unknown websites or downloading software from untrusted sources. These sites often host malware that will automatically, and often silently, compromise your computer.
  • Back up your data
    Back up on a regular basis - if you are a victim of a security incident, the only guaranteed way to repair your computer is to erase and re-install the system.
We hope these tips will help keep you safe as you go along your business

Best regards
Cerebrotech Team





References
[1] UC Berkeley https://security.berkeley.edu/resources/best-practices-how-to-articles/top-10-secure-computing-tips
[2] KeePass https://keepass.info/

Saturday, 24 June 2017

PHP, MySQL and PDF

After about a year of perfecting the invoicing process of Cerebro Technologies, we decided to automate it. Some people might ask, why not automate it from the onset? The answer is quite technical. When you have a bad process and you automate it, you invariably have a bad automated process and that can spell Disaster!

After getting the MySQL tables (entities) and their relationships, we wanted to export the report/invoice in PDF. There are about four PDF libraries that can work with PHP


  1. FPDF
  2. TCPDF
  3. mPDF
  4. DOMPDF
After reviewing these libraries, we opted for FPDF. Due to the fact that there were lots of tables relating with each other, we had to develop very complex MySQL queries to interact with the database and output the results in a neat format. The FPDF has a lot of useful functions that can help with this task. 

With patience and tenacity, the project was completed in 2 days!

Monday, 31 August 2015

Pressure occurring in different forms


The security guy notified me of a broken pipe close to his apartment this morning. The submersible pump had been pumping for more than an hour trying to fill the two overhead tanks which was unusual. While most water control taps or exit were sealed, the water kept draining away from the said broken pipe, which was over 150 metres from the overhead tanks. I thought to myself, this is simply pressure at work. Water is sourcing for a location without barrier to flow out. It is a natural phenomenon. 

Electric charges exhibit the same flow along conductors. When charges flow and hit a barrier (resistor), they either look for an alternate route, or force their way through the resistor, dissipating so much power by so doing. Can we now say, there is a physical quantity know as Electrical pressure? Your thoughts

Emeka.Iwuchukwu@cerebrotech-ng.com

Wednesday, 24 June 2015

WITSML - Evolution of Drilling Data


WITSML – An XML based language used in the management of Drilling Data, Along side with PRODML (Production Mark-up Language) and RESQML – Reservoir Mark-up language, form what could be termed the triad of Oil and Gas Data Management. WITSML, which stands for Well-Site Information Transfer Standard Mark-up Language is used to manage real-time, right time or historical drilling data. A couple of years back, some of the major oil operators and service companies came together to develop a unified mode of data communication. In one of the events I attended during an Oil and Gas conference in Aberdeen [1], I clearly observed the need for taking this path. You had various service companies (e.g. Halliburton, Schlumberger) within the premises of for instance a single operator (e.g. Exxon-Mobil). Prior to the emergence of unified structured information handling, the metering systems of various service companies differed a great deal.

In coming together to solve this problem, a new organization was birthed. It was called Energistics [2]. Energistics was saddled with the responsibility of articulating and developing solutions for Drilling, Production and Reservoir data management. An XML based data handling standard emerged. WITSML used for Drilling Data, PRODML used for production data and RESQML for reservoir data.

Most custodians of Object Oriented Programming Languages latched on to this developing and evolving technologies and began developing libraries to handle them. For JAVA, we have JWitsml [3], For .NET, we have nWitsml[4].

I used JAVA for my MSc project that was on Drilling Data with the help of Kongsberg [5] (a service company that gave me access to their WITSML server). Using the JWitsml 1.4 library that was available at that time (A look at the website in 5th June, 15 showed an improved 2.0 version now available). I was trying to solve the problem of making the complex XML based large document appear in a readable format even for non-technical personnel as seen in figure 1. A Trajectory WITSML document was processed into labels on the left and data on the right while graphs were also deployed for visualization.

Figure 1


The technologies used in Data management in the Oil and Gas industry is constantly evolving so much that most Operators and Services companies are currently incorporating Data Science as part of their Core-Business especially in the advent of “Big Data”.  It is important to get the data collection, manipulation, visualization, interpretation and analysis right because as we all know, data is critical in decision-making as seen in figure 2.

Figure 2


References

[1] Digital Energy Journal http://www.digitalenergyjournal.com/ 

[3]  Java WITSML Library: http://witsml.codeplex.com/ 
[4]  .Net WITSML Library: http://witsml.codeplex.com/
[5] Kongsberg http://kongsberg.com/ 

Emeka.Iwuchukwu@cerebrotech-ng.com
wilsemeka@gmail.com

Monday, 8 June 2015

PAD Architecture – Data Layer

Data Management is a “re-emerging” field in ICT most especially in the Oil and Gas industry with the latest trend known as “BIG DATA”. Most major companies are incorporating Data Science as part of their core business.

Relational Data Management was used during the course of developing Cerebro Technologies’ current website. One of the techniques associated with Relational Data Management is the normalization of database tables. Normalization is implemented in the logical design process as seen in figure 1. The first step in the design process is an abstraction of the real life problem. Once that is achieved, the entities and the way and manner the entities relate are mapped out.
Figure 1: Design process

A close look at Figure 2 shows the relationship between three entities – Driver, Trip and Expenses. The Driver makes a Trip and incurs expenses. Each driver makes one or more trip(s) and each trip incurs one or more expense(s). As soon as the entity relationships have been established, the attributes associated with each entity are defined.
Figure 2: E-R Diagram 


In the logical Design process, the tables, key attributes are defined, and referential integrity implemented. A look at Figure 3 shows how the table relationship looks like. Referential integrity just like the name suggest helps guarantee the integrity of the data entered into the database management system. Normalization is also implemented to avoid data redundancy and introduction of anomalies during data entry process.
Figure 3: E-R and Table Relationship Diagram

The final design process is the Physical Design Process where the file structure and the type of indexes used to search and extract data from the database are defined. It is important to get this right for effective time management.

Emeka.Iwuchukwu@cerebrotech-ng.com

Saturday, 6 June 2015

Workings of the Application Layer - The Power of jQuery

jQuery is a cross browser JavaScript library developed to aid the client side scripting of HTML (Hyper Text Mark up Language). The Library is widely used today to handle events, validate forms, to create DOM elements, to create animations and develop Ajax applications during web development. jQuery was created by an American software developer known as John Resig. For most programmers who use javascript language, there has been the issue of cross browser compatibility. There was always the error associated with having a javascript code as more internet browser apps came on stream. The most notorious of these errors was the fact that the HTML page loads simultaneously with the javascript code and as such, if the page loads after the javascript, there are errors associated with the application layer.

jQuery library was introduced to solve all these problems and as an open source it is been improved upon by a team of developers. A look at a jQuery code, the first line of code after importing the library is;
 $.(Document).ready(function(){
      //All codes fall within this area
});

The "$" sign is used by jQuery as a selection tool, therefore, in trying to explain the above code, it simply means, select the document (by that, we mean the current document that is open) and when its ready, perform a series of functions which will be with the area "//All codes fall within this area". By this first act, the JavaScript code loads only after the HTML page finishes loading.

CSS (Cascading Style Sheet) is a necessary language for working with jQuery, as it works in the Presentation layer to improve the appearance of the web page(s). I once put on my Facebook update:

"I have come to the realization that art (self expression) is the best field of human endeavour. Science simply presents us with tools, techniques and processes to aid the the expression of one's self... Nobody cares about how for instance a MacAir system works, all you see is this sleek, beautiful machine..."

I think people are impressed by what they see and not what's going on in the background, so CSS help improve the looks combining with other scripting and markup languages.

One of the uses of jQuery is in form validations. The form elements which includes the input elements with attribute types text, button or radio are all given class and ID names. jQuery uses the $.("#ID-Name") to select an element with the corresponding ID name and $.(".Class-Name") to select an element with a class name. Once the input element is selected, the value can be extracted and the data manipulated. After processing the data, it is sent to the server-side scripting language (PHP) as seen in Fig.1 using Ajax - A group of inter-related web development capabilities which includes HTML, CSS, DOM, XML, XSLT, XMLHttpRequest and JavaScript.

Fig. 1 - PAD Architecture

PHP for me is a server side scripting language with large Object Oriented Programming features. it receives the data posted asynchronously via Ajax, performs further data and object manipulations and inserts into the database. All these happens in the background without the page refreshing. Amazing stuff! For upcoming web developers, I'd advice you to be grounded in HTML, CSS, and JavaScript before delving into the server-side scripting languages and Data layer systems.

Finally, jQuery is used in creating powerful web animations. what comes to mind? ActionScript (Flash) is under threat? I believe so. But as jQuery stands, developers keep churning out powerful web animations in the form of banners, games etc.

Emeka.Iwuchukwu@cerebrotech-ng.com


Friday, 5 June 2015

Developing using the PAD Architecture

Cerebro Technologies’ website was upgraded in May 2015. It was a significant upgrade from what it used to be. As one of the developers, I remembered when I ventured into web designing before dabbling into web development and software development.
The story began sometime in January 2002, the year I moved from Benin City to Lagos to get into the university (Lagos State University precisely). I was already introduced to a basic knowledge of the computer by one of my biggest mentors and confidante Mr. U.A. Oleghe (Later became a permanent secretary in Edo State ministry of Finance). While in Lagos, I was navigating between attending JAMB lectures and doing a business. My eldest sister wanted to learn web design and brought in a guy called “Charles” for home tutorials. During one of their lectures, I just showed up in one of their classes and sat in to learn since I had this early love for programming. Her tutorials lasted one week and it was over. I told her am very much interested and she asked Charles to come the following week to take me through. After the tutorials, I was grounded in the concept of HTML. But something was missing - how to process forms – Charles on his on part was less knowledgeable in that, and so I began my research. Meanwhile, I could design websites but could not get involved in web development.
 In 2008, a friend, Adeoye Oduaiye, graciously came home and took me through the installation and set up of a WAMPServer. That singular act began my journey into web and software development. I was able to process forms using PHP and store data in a database. I studied MySQL and how to work with relational database systems. I was always processing forms on the server side and by development standards this was unacceptable. During my research, I discovered that one needs to handle events and form validations using JavaScript and do the back-end form processing using PHP. I also discovered that you could process data asynchronously using what was later known as AJAX. These emerging technologies were looking complex but I had to try and keep up. It was in 2014 during my Masters degree in the United Kingdom that I’d become grounded in the PAD architecture of web development and come to appreciate it significantly. PAD architecture has 3 layers – Presentation, Application and Data. The Presentation uses CSS and HTML for appearance, The Application using JQuery for event handling and form validations, AJAX for asynchronous data processing and PHP for server side data processing.  One could use any of the RDBMS known for the data layer but I favoured MySQL. 
 After acquiring such knowledge in Web development, we began to develop the new Cerebro Technologies’ website. We developed the conceptual model and entity relationships and embarked on the physical table design. We used Adobe Fireworks, to design the user interface and most of the graphics work. Next, we used Adobe Dreamweaver to design the individual web pages, and linking respective pages with the JavaScript and CSS files. The AJAX and JQuery codes were contained in the JavaScript files. After a week of coding and designing, the site was ready. It was uploaded using FileZilla.


Emeka.Iwuchukwu@cerebrotech-ng.com