Tuesday, 28 November 2017

Interprocess Communication in Operating Systems - Part 1

Under Interprocess Communication in Operating Systems, we would examine the following sub-topics:

  1. Introduction to Interproces Communication
  2. Race Conditions
  3. Critical Sections
  4. Mutual Exclusion With Busy Waiting
  5. Sleep and Wakeup
  6. Semaphores
  7. Event Counters
  8. Monitors
  9. Message Passing
1. Introduction to Interprocess Communication
Processes and Threads are examined in a different article. From there, we see that processes always need to communicate with other processes. For example, when a use wants to read from a file, the user must tell the process what it wants. Then the file process has to communicate with the disk process to read the required block. Sometimes, the output of the first process must be input into the second process. So we can see that there is need for a systematic way for process to communicate.

2. Race Conditions
In many operating systems, processes that are working together often share some common storage that each one can read and write to.  This shared storage can be in main memory or it may be a shared file or disk. the location of the shared memory does not change the nature  of the communication or the issues that may arise.

Print Spooler Example
Consider a simple but very common example of Interprocess Communication in action. That is the example of the print spooler. When a process needs to print to file, it writes the file name into the spooler directory. Then another process called the printer daemon checks this directory from time to time to see if any file is available to be printed. If there is any, it printed them and then removes an removes them from the directory.
Now assume that the spooler directory has slots numbered 0, 1, 0, 3,... Each slot is capable of holding a filename to be printed. Also assume, there are two shared variables: out which points to the next file in line to be printed and in, which points to the next free slot in the directory. If two processes, A and B, wants to write to the same directory and after reading the in variable,  a situation would arise that may make the values of the variables inconsistent. This situation is called race condition and is defined as a situation where two or more processes are reading and writing on the same shared data.

3. Critical Sections
Critical sections is a concept used a to avoid the race conditions. It applies in situations involving shared resources be it memory, file or variable. To handle the problem of race conditions, there need to be mutual exclusion: that is a way of ensuring that if a particular process is using a shared resource, then the other process would b prevented from using the same resource until the first process completes. So when a process is using a shared resource we say the process is in its critical section

Four Conditions For Avoiding Race Conditions 
No two processes may be in their critical section at the same time
No assumptions should be made about the relative speed or number of processors
No processes running outside its critical section should block other processes
No process should wait too long to enter its critical section

Lets not examine ways to achieve this four conditions. The first one we are going to discuss is Mutual Exclusion with Busy Waiting

Mutual Exclusion wit Busy Waiting
In this method, when one process is busy using a resource or shared memory, and is in its critical section, then no other process will enter its critical section. There are five ways to achieve this:
  • Disabling Interrupts
  • Lock Variables
  • Strict Alternations
  • Peterson's Solution
  • The TSL Instruction
i) Disabling Interrupts
This is the simplest say to achieve mutual exclusion. In this method, any process entering its critical section should disable all interrupts and reenable them when it comes out of its critical section. As such , no  interrupt can occur and the CPU cannot switch to another process until the process completes execution. 
The problem with this method is that is that  it could occur that the CPU interrupt is disabled without being enabled for a very long time. Or what if the interrupts is not enables aging? Then the system crashes.
Another challenge is that when a system have a number of CPUs, then disabling interrupts on one does not affect the other on.

ii) Lock Variables
In this case, a single share variable is maintained called the lock variable. This variable is initially set to 0. When a process is about to enter its critical section, it checks this variable. If the value is 0, then the process sets it to 1 and enters its critical section. If the value is already 1, the process waits until the value becomes 0. 
The challenge is that a process may set this variable to 0. Before it can set it back to 1, a process switching occurs and the value is set to 1. And this can lead to race conditions.

iii) Strict Alternation
This is a third approach for achieving mutual exclusion. In this method, the system maintains a variable called turn which keeps track of which process has the turn to enter its critical section.

iv) Peterson's Solution
This is a software solution to the problem of mutual exclusion proposed by T Decker. While this process does not require strict alternation, the process is very complicated and could hardly be used in practice

v) The TSL Solution
In this solution, methods are used by processes to either enter or leave the critical section. Before entering critical section, a process called a method enter_region. Then after leaving the critical section, the process calls the method leave_region.

vi) Sleep and Wake up
This is a solution that tend to eliminate the problem of busy-waiting.

Continue to Part 2

Monday, 27 November 2017

How to Use Mail Merge in Microsoft Word - Step By Step (Part 1)

I am going to teach you in a very simple and clear way how to use the MailMerge feature in Microsoft Word.

What is Mail Merge?
Mail Merge is a feature in Microsoft Office that allows you to automatically generate several similar documents using a list of related data.
What this means is that, you could create several envelopes or letters using list of address stored in a spreadsheet. So if you have a list of 1000 employees and the same document needs to be sent to all of them, then the only thing that needs to be changing is the name and address. For this, you can create  a single document and then use mail merge to generated the rest, each having a different address based on data in excel sheet.
Let's demonstrate it, so you can follow the steps below

Step 1: Create and excel file with list of names and addresses as shown below:

Step 2: Save the File in the Documents Folder. Give it a name Addresses

Step 3: Open Microsoft Word and type a letter like below:

The address section and name is what we want to generate using the excel file we saved. So we are going to replace this fields using the name and addressed in the excel sheet. So move on to step 4.

Step 4: Delete the name and address placeholders

Step 5: In the ribbon in Microsoft Word, Click on Mailing tab

Step 6: Click on Start Mail Merge

Step 7: Click on Letters


Step 8: Click on  Select recipients and Select <Use Existing List>

Step 9: The Select Data Source dialog box opens. Browse to select the Excel file you created in Step 1. After you select it, click on Open. The dialog box closes

Now you need to insert data from the excel file into your document.

Step 10: Delete the <Name> placeholder following the word Dear. Place your cursor in that position.

Step 11: In the ribbon, still on the Mailing tab, click on "Insert Merge Field" and choose Name. You can see that <<Name>> appears in the position of Name

Let's now preview the document to see what we have achieved.

Step 12: Click on "Preview Results" as shown in the picture and observe the result. You will notice that the placeholder is replaced by actual name. Use the navigation buttons close to the Preview button to move back and forth.

If you can see the names changing, then at this point you have completed Part 1 lesson on Mail Merge

Continue to Part 2: Inserting and Formatting Addresses in Mail Merge

Schedulling and Resource Management in Operating Systems

I will explain this topic in a very simple and clear way.
Modern computer systems consists of processors, memory, storage disks, terminals, network interfaces, printers as well as other devices. One of the functions of the operating system is to provide for an orderly and well controlled allocation of the processors, memory and other resources among the programs or applications that may be competing for them.

What is a Resource?
A resource can be a hardware component of the computer or maybe a piece of information. A typical example of a resource is the Printer.  For some resources, a number of identical instances may be provided. An example is a computer with two or three CD drives. In such a situation, when several copies of the resource is available, any of them can be used to satisfy any request for that resource.

The sequence of events required to use a resource is as follows:
  • Request for the resource
  • Use the resource
  • Release the resource

The work of the Scheduler is to decide
  • How long a process would hold a resource
  • How long a process executes 
  • In which order processes would execute
The Scheduler is a very important part of the operating system. It performs these tasks using scheduling algorithm. We would now look at a number of scheduling algorithms employed by the scheduler in allocating and controlling resource usage.

Scheduling Algorithms
There are six scheduling algorithm used in modern operating systems that we are going to examine.

1. Round Robin Scheduling
In this algorithm, each process is assigned a time slot or interval known as a quantum. The process would run within this time interval If the process is still not completed at the end of this interval, the CPU is preempted and given to the next process. The next process runs within its own quantum and then to the next until it gets back to the first. If a process complete execution or is blocked before its quantum is exhausted, a process called CPU switching is done and the next process takes over.

2. Priority Scheduling
In this algorithm, each process is assigned a priority, and the runnable process having the highest priority is allowed to run. After it completes, the next runnable process with highest priority is allowed to run and so one. There is no time slot. lf a process is taking to much time to run, then the CPU would decrease its priority with each clock tick. This action may cause its priority to drop below that of the next process and when this happens, process switching occurs and the next process takes over.

3. Multiple Queues
In this algorithm, priority classes are set up. Processes in the highest classes are set up. Proesses in the highest class are run for one quantum. Processes in the next highest class are run for two quanta and so on. Whenever a process uses up all of its quanta, it would be moved down one class.

4. Shortest Job First( SJF)
The SJF algorithm allows for priority to be given to the job with the shortest execution time. This algorithm is applied  when the run time  for each of the process is known before hand.

5. Policy-Driven Scheduling
In this algorithm, a policy is created that defines the amount of CPU time assigned to each process. For example a policy may be defined that:
"if N users are logged on, then each user will receive 1/N of the CPU time".

6. Two-Level Scheduling
Here, two scheduler levels are maintained: a higher level scheduler and a lower level scheduler.
This algorithm is used when there is no enough memory space and one of the runnable processes have en kept on the disk. A higher level scheduler takes the responsibility of swapping runnable processes between disks and memory. The lower-level scheduler then handles the process swapping.

For more details on Recourse Management and Scheduling see the book:  "Modern Operating System" by Andrew Tanenbaum

I hope this have been informative your. Do leave a comment to let me know your views.

Saturday, 25 November 2017

How This Driverless(Metro) Train Works (Budapest)

It's very interesting how you feel knowing that you are in a vehicle with over hundred other passengers but then, there is no driver or captain! I personally take the the Metro Line 4 couple of times a week just to have this feeling. Here in Budapest, they call it 'Metro alomas' which means metro train.

Each time I board it, I make sure to stay in the front, the position that actually is supposed to be the seat of the captain in conventional vehicles so I have a clear view of the metro rail track. Besides, I have some kind of satisfaction knowing that what was produced by my field of study (Artificial Intelligence) is working perfectly.

How the Driver-less Metro Train(Metro alomas) Works(Budapest)

There are a few questions we would discuss briefly though.

  1. How Does the Driverless Train Work
  2. What is the Source of Power
  3. Is it Better Than Conventional Trains With a Captain
  4. How can it handle emergency situations
The explanation I would give to these would be very simple, clear and without any technical terms.

 1. How Does the Driverless Metro Train Work
The first point to know is that this train travels in a predefined rail line without any turns or branches. This means that there is no need for a steering wheel. Also, there are predefined stops where it halts for passengers to enter and to alight. The train is programmed to stop at those designated points. In Budapest, these stops are called 'Megallo'.
When it stops, the doors open automatically (doors can be manually opened too by passengers by the press of a button at the door). It remains open for a period of time to allow passengers to go in and come out. It then closes and the train moves on to the next stop.
When it gets to the end of the line, two things could happen:
  • It could then move on opposite direction as both ends of the train are exactly the same (it seems this is not used often)
  • It could do  a round-robin turn and join an opposite track and continue moving in opposite direction but now in a different track
So theoritically, this rail line could continue operating indefinitely provided there is power.

What is the Source of Power
 It does not use fuel neither does it have a fuel tank. It uses electric power connected all along the rail line to the train

How Can It Handle Emergency Situation
The design of the train and the tracks limits the possibility of any serious emergency situation. However, if such happens, there are two features that allows for emergency handling:
i. Engineers are notified automatically and they could actually control the movement from the control room. Like they could reduce the speed, or even stop it completely, open/close the door and issue instructions to passengers. They could also come to the location of the train is minutes or even seconds
ii. Distance between stops are very short. It takes mostly less than a minute or a little more to move from one stop to another

Is It Better Than a Conventional Train With a Captain?
I would say, it depends. For the most part, since the rail track is per-defined and isolated from other roads. This technology could be getting close to the best it could be. So we can say 'yes' in this case. But this may not be the case for all other driver-less rail systems.

Final Notes
Other transport system include the trams(villamos) and the buses(we'll discuss this in a different article)
So any other time you travel to cities having metro trains, try to use the metro. More especially stay in the front such that you can touch the front windshield and have a feels that your life is in the hands of just  a piece of machine! Not so scary though.

I would like to thank you for the time you spend reading this article on Driver-less Metro Trains. If you have any comment or questions, please leave it below this article. You could also reach me for more explanation if you want.

Friday, 24 November 2017

How to Download Your Facebook Friends List and Other Data

In this article, I would put you through on how you can download your Facebook friends list and other data you have on Facebook to your computer.

Why it is important
How do you feel at some point when you loose your data and you do not have a backup of the data somewhere else? It could be really painful, right? That is the same with your Facebook data. And this may include the following:
  • List of all your friends
  • All the pictures you have posted
  • All the comment you have made
  • Your profile information
  • Videos you uploaded
  • Groups you belong to
  • Other information
So lets get started. This is a step-by-step guide on how to do it.
Step 1: Go to Settings by clicking on Settings in the menu as shown

Step 2: In the Settings Page, Click on "Download a Copy" on the lower part of page as shown. You will be prompted to enter your password, so enter your password to continue.

Step 3: The page displays that confirms your download. Ensure you can access your email address.

Step 4: After about 15 minutes ( it may be less), check your email box for new email from Facebook with the Subject: Facebook Download Requested. Open the email and the content should be something like this:

Step 5: Wait for another about 15 minutes (it may be less). Then check your mail again or if your mailbox is open, refresh the page.
You will get another email from Facebook with the subject: "Your Facebook download is ready". Open this email and the content would be as shown below:

Step 6: Follow the link inside the email. This link will redirect you back to the Facebook settings page which will now. You will now see a link that says: "Download Archive" in green. Click on this link to download your data.


Your data would be downloaded to your computer in a Zip file. You can find this file in your downloads folder. 
The name of the file will be Facebook-<your username> 

Step 7: Unzip this file to a folder. The folder will contain different folders as well as a file called index. Open the index file and you can see everything you want.

So this is all about how to save your Facebook Data to your computer, just in case.
If this have been useful to you leave a comment to let me know. If you have some issues, let me know also in the comment box below.

How to Become a Computer Programmer - An Expert Advice

The interesting thing is that programming is not as tasking as it is portrayed in some books and online materials. The challenge is that programming is presented as a tasks to be performed by nerds and real computer professionals. You see several lines of codes in different color that may even appear scary sometimes.

You will even be happy to know that you don't need Computer Science degree or any other degree to become a computer programmer. In fact, spending years trying to acquire a degree would be counterproductive because its not necessary. Besides in some countries, this time would be spend learning theories with very little practical.

How to Learn Computer Programming(For Beginners)

So how can you become a Computer Programmer? I will give you five steps to take.
Be sure that whatever, I would tell you here is from practical and personal experience as a Computer Programmer and Software Engineer for the past +20years.

Step 1: Make Up Your Mind/Decide
This step is very important because a few hitches may appear along the line. If your mind is not made up, you may not attain to your objective. In fact, this is the reason why many enthusiasts end up not becoming a good computer programmer.

Step 2: Have a Time-Based Goal
You need to have a definite goal that helps you keep in mind your objective. This means that you tell yourself that between now and next xyx months, I would be a programmer. Although this time would depend on your schedule and how much time you devote each day to learn programming, but I would suggest that you have a goal ranging from 6 months to 1 year.

Step 3: Have a Chat With a Professional Programmer
I would let you know that if you skip this step, then the likelihood of reaching your objective would be very low.Why is this the case? The reason is because, a pro Computer Programmer would give you the needed motivation to follow this goal. He would let you know the benefits and the challenges and  kind of help you see the path you want to take in advance.

Step 4: Avoid Spending Time on Online Learning
 This may appear suprising at first but I could tell you from my personal experience that spending time on online learning could be a distraction.There a literally hundreds of websites, videos and other materials that claim to teach programming. The fact is that this could lead to so much confusion that the time you spend online could actually be wasted without achieving much.
A better option would be to get those materials or books into your hardware and continue from there.

Step 4: Choose a Programming Language
If you have passed through Step 3 (Have a chat with a Professional Programmer) then this step would fall into place. A guide would tell you where to start. The programming Language you choose should not depend on how popular the language is. It should depend on how much knowledge of programming you have.
For a beginner, I would recommend choosing programming languages that has the following feature:
1. Provides graphical interface
2. Easy to learn
3. You can find the application(Compiler) easily
4. Can install easily on your system
For a beginner, I would recommend Visual Basic (you will learn about the 'dot net'  with time

Step 5: Own a Personal Computer(preferably a laptop)
If you really want to learn, then you should have access to a computer at every time. In programming, new ideas may come at unexpected times, and as such you need to get to the computer to practice it. So just buy a computer. It doesn't need to be super fast. Just an average Pc, say 2GB ram and 250GB HDD (or more, of course!)

Step 6: Buy a Hardcopy Textbook
Now this is very important. Many internet sites would not advice you to do this. The reason is because they want you always spend time online possibly in their website. I could tell you from my own experience. The first textbook I bought was "C++ Programming Design" by Davidson and Cohoon and that made much difference.

I would like to stop here at this point and would like to thank you for reading. Do leave a comment to let me know how useful to you.
This article is actually how to become a programmer for beginners but if you would like a  more advance one, let me know.
You can also reach me by my email.

Wednesday, 22 November 2017

Should I Buy Cryptocurrency(Coins)? - A Cryptocurrency Analyst's Advice

Its very interesting to see how people quickly get involved in fund-related technologies.
I have received this question a million times even when I provide answers, the same questions tend to recur again and again.I would try to clear the air again on this issue. I would try to be as clear as possible.

Similar Posts

Before I continue, I would like you to take note of the following facts:
  • As of the time of this blog, the number of cryptocurrencies existing is over 2,450 
  • As of today, one bitcoin sells for over $8,000
  • About 5 years ago, in November 2012, one bitcoin sold for $12.5
  • Similar trends could be seen is some other cryptocurrencies today such a Ethereum, Ripple, Dash, Montero, Litecoin, IOTA and lot others.
Should You Buy Cryptocurrency?
So the question is, should you buy the coins?
Granted at the end of this blog, you should be able to answer that question yourself. I would not give you the answer, I would give you just the facts. If you want a personal advice from me, do leave a comment to let me know.

Do You Have a Basic Knowledge of the Cryptocurrency Technology(Yes/No)
This knowledge is very important as it give you a clear understanding of what you want to do and helps you have the needed motivation

Do You Have an Intermediate Knowledge of Computers/Internet?(Yes/No)
Remember, the cryptocurrency technology is based on the Internet and most of the time, your primary tool would be your computer. A basic computer knowledge is not enough, I must say. Its necessary that you can used the computer the somehow analyze data

Could You Spend About 30mins  Everyday Online?(Yes/No)
Spending time regularly online helps you to keep pace with the trend of things in the cryptocurrency world. For instance, you don't need to forget your password to your wallet and stuffs like that.

Do You Have Funds You Can Part With for 6 months to 1 year?(Yes/No)
Some who invest on cryptocurrency with the objective of getting quick returns in a very short time get disappointed and abandon the process altogether. To get the best results, you need to to be involved for a relatively longer period of time.

Do You Have a Sincere Mentor That Could Guide You?(Yes/No)
One thing that have happened unfortunately to the noble field of cryptocurrencies is that many organizations have mixed it up with Ponzi Schemes, Pyramid Schemes and Multilevel Marketing schemes thereby creating so much confusion. This things on their own does not necessarily have anything to do with cryptocurrencies. Anyone that guides you should let you  know this!. A sincere mentor would let you know the pros and the cons. Besides a number of mentors focus on moving up the pyramid ladder to the detriment of those below. That is why I underscore the word 'sincere'. A sincere mentor would let you know the risks involved (the threats and the opportunities).

If the answer to any of these questions is No, then I should advice you to still keep your hard-earned money in the bank where you are sure it will always be there.

If the answer to all the 5 questions is yes, then you can move to the next step:

Which Cryptocurrency do I Buy? I am currently carrying out analysis the top-20 cryptocurrencies. At the end, I could advice on which ones have the advantage of cost-effectiveness combined with high-prospect and growth.

I would like to  thank you for making out time to read this and check from time to time as I would be giving updates on the results of my research.

Don't forget to read the following:

 - Cryptocurrency Analyst

Tuesday, 21 November 2017

3 Ways to Make Cheap/Free International Calls

Beautiful day everyone! I'm writing this to let you know  that you can actually make international calls for lower cost than what you already have been doing. I learnt about these when I traveled to Europe and needed to keep in touch with friends and family at home. These techniques I would outline in this post is something not known to everyone. Worst still, the telecommunication companies don't normally tell you perhaps because they make more  money from the conventional way we have been making international calls.
Before I outline these three techniques, let me take some time to tell you how it works.
How to Make Cheap/Free International Calls
How It Works
When you pick up your phone and dial a number, your phone makes a connection to the nearest Base Station (normally called mast). The Base station make a connection to a BSC and then to the NSC(called Switch). In the Switch, there is a number of databases including the database containing information about the local subscribers.
When your call gets to the switch, the following steps is taken to complete the call:
  1. the switch examines the destination number
  2. If it is a local number, then it checks your record including your balance
  3. If you have enough balance, the calls is routed to the recipient through the radio network
However if the destination number is international number:
The switch reads the number to know the actual country
The switch queries the database containing the tariffs for international calls and obtains the per unit cost for calls to that destination
It then pulls out your record to see if you have  enough balance to complete the call
If not, you are notified and the call is terminated
If you have, the switch routes your call  through the internet to the destination country
Then the recipient is notified.

Now this is the catch: For international calls, your calls are routed through the internet. The process is more complex, but that is the basic technology. This means that it can actually be cheaper to make international calls than to make local calls. So let me tell you three things you can do

1. Buy a Dedicated Sim for International Calls
Just go to your service provider near you and tell them you want a sim just for international calls, then they will take off from there. This sim is configured to route traffic through the internet to countries abroad, so you can't use it for local calls. If they are helpful, they would provide you with a sim an the cost may actually be just a fraction of what you have been spending. Some service providers may say initially that they don't have, but if you could prove that you know it exists,  they would end of providing.
One thing about this lines is that you cannot actually use them for local calls or for SMS.
This is actually the best option to make low cost international calls but may not be the cheapest. Cost of calls with this option may be as low as half of per unit calls for local calls.

2. Use a Call-out Application
I'm not talking about video calls with Skype or Whatsapp or FaceBook. No no no!! That is  not what we are saying. We are talking of making calls to mobile line that doesn't have internet connection.
One of such Viber Out. This is a feature in Viber that allows you to make international calls at low cost. What you need to do is to install Viber, and then load the Viber Out credit, and that is it. You can try this and let me know if you have any challenges. (You can leave a comment below).
Another of such apps is Rebtel. This app is available for Android, IPhone, IPad and Windows Platform. Just download and install it. The rest is straightforward.
Then we have iCall. Its another powerful app for making cheap international calls. The others are Pinger and Kakaotalk. If you have issue installing any of these apps, let me know in the comment box below.
I personally use Viber Out in Europe to call Nigeria and other countries. I loaded $6.00 and I am still using it till now.
There is also a feature for Skype, but you need to add some Skype Credit to do that.

3. Buy a Roaming Pack
This is specially good for those who may have to travel temporarily and need to keep in touch with their spouses. It works like a Closed User Group(CUG) so it actually allow a limited number of lines, say two or three. So you obtain this pack in one country and it is configured to make calls between just two countries but at a super-cheap rate. You could then send one of the lines to your spouse in the other country and you are good to go. Though not all telecommunication service provider that give this service to its subscriber, but you could check with the one around you to see if they have it.

Final Notes
Sometime, you could not do things in the best way if you are not equipped with the necessary information. Some IT professionals don't really buy the idea of sharing information but for me I feel one good use of knowledge is to share it with others and that is why I have this Tech Blog. Do leave a comment if this have been informative for you.
Thanks again for reading.

Monday, 20 November 2017

Data Analytics(DA) Becomes Intelligent Data Analytics(IDA)

If you  are a researcher, then you in the right place. You must read this because of the need to keep trend with the developments in the field of research and statistics data analytics.

The truth is that in the next decade, the knowledge of research data analytics you now have may not be as useful as it it now. The teaching methods you now use may not be much applicable. So the big question is this: Would you hold on to the traditional system or would you take steps to keep pace with the growing field of technology in research?

Data Analytics Becomes Intelligent Data Analytics

Unfortunately over the years I have seen some researchers loose their relevance due to not developing their skills in emerging trends of research data analytics. The problem with this is that as an educator, you end up passing an antiquated knowledge to other scholars who in time pass it to others and it becomes a vicious cycle. This has to be broken!
Some even keep spending on statisticians or data analysts each time they carry out a research. Then why are you a researcher in the first place? Even if you don't have to do all the data analysis yourself, it's necessary to have an idea of the current technologies in data analytics.

That is why I have chosen to tell you about about the new trend, Intelligent Data Analytics.

What is Intelligent Data Analytics(IDA)?
When I was moving to Europe for my studies in Computer Engineering, I never knew I would start from the scratch to learn a new aspect of Research Data Analytics. This is because I have been involved in data analysis for many years especially having knowledge of MS Excel, IBM SPSS and other tools.
When received an email from my supervisor telling me that one of the recommended courses is Intelligent Data Analysis, my first reaction was: "This sounds interesting!". I have to go to the faculty website to get information about the course as well as the course schedule and these are some details/objectives

  • It tends to harmonize statistical research data analytics, big data analytics, machine learning, statistics and artificial intelligence.
  • Intelligent Data Analytics provides a systematic summary of intelligent methods applied in the data analysis process
  • Brings you up to speed about machine learning schemes applied in modern data analytics
  • It presents and discusses real-world applications of IDA, ranging from the field of system diagnostics, bio-medicine and pharmaceutical research
 Theoretical Framework of IDA
 I would just provide a list of the concepts covered in Intelligent Data Analytics and in subsequent articles I would provide an introduction/summary of these concepts. I do think that you should have an idea of these concepts
  1. Optimization
  2. Data transformations using ontologies
  3. Semantic data repositories
  4. Data Visualization
  5. Data Cleaning and manipulation
  6. Data Clustering and Classification
  7. Probabilistic Graphical Models
  8. Supervised Learning
  9. Unsupervised Learning
  10. Decision Trees
  11. Sensitivity Analysis using re-sampling methods
  12. And many more

What you should do
  1. Buy some modern textbooks: As a researcher, you need to have a number of modern data analytics textbook(at least 10)
  2. Learn to use the Applications: Learn how to use statistical data analysis packages, not just SPSS. MatLAB is what is currently used for Intelligent Data Analysis
  3. Learn a bit of programming. Get some practical knowledge of computer programming. Choose some random programming language and learn how to write basic programs.( I suggest Python as that is the language mainly used in the IDA course)
  4. Attend Workshops: Try to attend Data Analysis workshops at any opportunity (even if this involve a considerable cost). Datarmatics normally organizes such workshops in Nigeria.
  5. Study, Study, Study: One question, I normally ask is this: Who do you think should study more? The Instructor or the Learner? Leave your answer in the comment box below.
Final Thoughts
There is need for scholars generally (but especially African scholars) to keep up to date with current trends in technology. Of course you know of terms such as Computer Aided Learning(CAL) or Computer Aided Instruction(CAI). You can ask yourself how well you have adopted these at least in your own school. Even if we are limited in the much we can do in our domain, let join voices, write papers, articles etc that promote modern trends in our schools.

Thanks for the time spent in reading this. Do share with other researchers and do leave a comment if you have any questions or recommendations regarding this.

Monday, 6 November 2017

Fuel Cell as Energy Alternative in Electric Vehicles

There have been ongoing research in providing alternative energy sources. This is especially needed in the field of vehicle manufacturing where there are so many challenges associated with the internal combustion engine.

Today we would  discuss Fuel Cells under the following topics:
  • What are fuel cells?
  • Types of Fuel Cells
  • How do they work?
  • How does it compare to conventional batteries?
  • How efficient are they in electric vehicles?

What are Fuel Cells?
A fuel cell is a cell that converts chemical energy(fuel) into electrical energy by means of electrochemical reaction. The converted electrical energy could then be used for other processes such as lighting, driving some motor, powering some electronic devices in the vehicle etc.
The chemical used in fuel cell is normally hydrogen and this is store in  some chamber from where it is discharged into a chamber where it combines with oxygen to produce electrical energy.

Types of Fuel Cells
I would just outline the types without given details of how each type works because all of them operated on the same basic principle.
  • PEMFC(Proton Exchange Membrane Fuel Cell
  • Alcaline Fuel Cell(AFC)
  • HTFC (High Temperature Fuel Cell)
  • SAFC (Solid Acid/Oxide Fuel Cell)
  • MCFC(Molten Carbonate Fuel Cell)
There are a few other variants but these are the most commonly used.

How Does Fuel Cell Work?
The components of a fuel cell includes:
the Anode
the Electrolyte
the Cathode
At the anode, the fuel is oxidized(mixed with oxygen) producing ions and electrons. The ions passes through the electrolyte to the cathode. At the cathode, the positive ions combines with electrons, an the end result is water or carbon dioxide. The process is more complex than this, but I have tried to keep it very simple. The process is illustrated in Figure 1.

Figure 1: Basic Structure of a Fuel Cell

How Does Fuel Cell Compare With Conventional Batteries?
1. One of the key difference between a fuel cell and a battery is that a battery stores energy, but a fuel cell does not. In a fuel cell, the energy produced by the electrochemical is simultaneously used by connected electronics and so it is not stored.
2. Unlike batteries that works with electrolytes, a fuel cell works with fuel which actually can run out. So in case of fuel cell, there must be continuous supply of fuel for the cell to continue producing energy.
3. A battery normally had a life span, that is the duration the battery is designed to work, but a fuel cell does not.

Use of Fuel Cell in Electric Vehicles
As an alternative to the internal combustion engine, much research is being made on the used of fuel cells to drive vehicles especially because of its benefits. Such benefits includes 'zero pollution'. Actually, it may not be zero, but compared to the pollution from internal combustion engines, the pollution from use of fuel cell could be considered zero. It is considered one of the most environmental-friendly energy sources for automobiles.
In 2015, Toyota successfully launched a vehicle that used fuel cell, Toyota Mirai. You can read up about this on your own. However, the success of fuel cell vehicles have been largely slow, partly due to the cost of hydrogen as well as the technology.
We have that in the coming decades, fuel cell would be find use not just in electric vehicles but also in appliances and electrical equipment.

I wish I could write more, but like I use to say, I try as much as I can to keep it simple, brief and clear. If this have been informative for you, leave a comment below.