Tuesday, 11 November 2014

Introducing Colin

Announcement

I am pleased to announce the first release of Colin, our integrated testing suite for KwaMoja. This software automatically controls KwaMoja using the libcurl libraries, and compares the results against expected results, outputting the results in a nice web viewable format. The tests can be batch run, so hundreds of tests can be automatically run and their results viewed.

Technical Details

The suite contains a a library of functions for automating a complete KwaMoja session. There is a function to login, to choose an appropriate module, to choose an appropriate menu item, to run any number of options within that option, and to logout. Each step of the way, various tests are run for PHP errors/warnings/notices etc and any of these are recorded. All links in a page are verified to make sure they are not broken. When a page carries out some action against the database the result is verified. More verifications will be put in, software of this kind is never complete.

Output

The output from a Colin session can be viewed through your web browser, and looks like this:
If there are any details clicking on the "Details" link will bring up a new page showing these:
 
This will include any screenshots automatically saved by Colin:

Can I get a Colin of my own?

Yes. Colin is released under the GPL v2.0 license and is obtainable from my github site https://github.com/timschofield/colin

Why Colin?

Why not? It just seemed like a good name to me!

Monday, 3 November 2014

Plagiarism

This page is written in response to the lies that +Phil Daintree has written about me, and spread on the internet. Despite years of searching he has been unable to find anything I have written that is untrue, and he has had to resort to vague generalities, faked emails, and badly fabricated screenshots (you can see the joins if you zoom in using any bit mapped image editor). +Phil Daintree is welcome to make any comments to these pages, as he has done in the past. If I agree with what he says I will amend my writings, if I do not agree I have allowed his comments to stand next to mine so that people can make their own judgements. I have every confidence in the intelligence of readers to make a sensible judgement based on the facts. +Phil Daintree will not allow me the right of reply to any of the lies he has told about me. It seems to me significant that he realises that if people see both sides of the argument they will see through his lies.

In the world of open source software a lot of emphasis must be placed on honesty and trust. You have to be able to trust that when you submit code to the administrator of a project that the code is released under the correct license and that is correctly accredited to you. This accreditation is not a question of ego but of common decency and of honesty.

Whenever code gets added to KwaMoja I go to great lengths to attribute the code to the correct author as can be seen here

All the work we do in KwaMoja is made available to the webERP project, however recently the project admin +Phil Daintree has been consistently attributing the work to himself rather than to the actual author.

For instance +Fahad Hatib did some considerable work to remove the $db variable throughout the code base, and I personally made that available to +Phil Daintree.

This work was committed to webERP here. Instead of correctly attributing that work to +Fahad Hatib Phil decided to claim the credit for this work to himself:


Unfortunately this seems to be typical of the recent dishonest behaviour of the leadership of the webERP project.

Tuesday, 14 October 2014

New demo for KwaMoja-Medical

Following on from this post regarding our hospital extensions for KwaMoja I have created an online demo for the KwaMoja-Medical branch. This demo can be found here.

This demo has a separate module called "Hospitals" (maybe this should say Medical??) and includes facilities for registering patients, dispensing and billing for pharmaceuticals, billing for Radiology and Laboratory tests any other medical services a hospital needs.

It also now has the facilities write notes on a particular patient, and to review a patients entire history, including notes in one screen.

At the moment the intended audience for this is smaller clinics and hospitals where a fully fledged HIS is not really applicable. However as time goes on and more functionality gets added then who knows......

Monday, 13 October 2014

Upgrading from webERP to KwaMoja

With the still unfixed $AllowAnyone security issue and the recent buggy release of webERP a number of people have asked me how to upgrade from webERP to KwaMoja.

Well it really couldn't be more easy! Thanks in no small part to the hard work of Fahad we have kept an easy upgrade path, despite the numerous improvements and enhancements we have done in KwaMoja.

So if you want to take advantage of the stability, security, and additional features of KwaMoja here is what you do:

1 Backup everything. This includes all your webERP databases, and all of your webERP code.
2 Download the latest KwaMoja code from here: https://github.com/KwaMoja/KwaMoja/archive/develop.zip
3 Extract the files from here and copy them over your current webERP implementation.
4 Make sure that the webserver user has read and write permissions on everything under the companies directory.
5 Login to your new KwaMoja implementation using the same url and the same login credentials that you used for webERP
6 You should now be greeted with a screen telling you that there are database updates to do. Click Continue to do these updates. You may get some error messages telling you that some of these have failed. Do not worry about these, it just means that the data was already there.
7 Once this is completed, log out of KwaMoja.
8 In each of your companies directories you should now have a file called Companies.php. This should contain a line some thing like this:

$CompanyName['weberpdemo'] = 'weberpdemo';

Change this to be the name of your database and the full name of your company/organisation. eg.

$CompanyName['kwamoja'] = 'KwaMoja Demonstration Company';

Once you have done this refresh the login screen and the full company names should appear.
9 Log back in to KwaMoja. Some themes work better than others in KwaMoja. We recommend that you use the "aguapop" theme for the best interface.

And thats it, you have now upgraded. Any problems log them onto the kwamoja.com forums!!

Saturday, 11 October 2014

New KwaMoja demo site

There is a new demo for KwaMoja here: http://demo.kwamoja.com
The demo includes a lot of new features such as a new Quality Assurance module, updated Order acknowledgements/Picking Lists functionality, a bridge to synchronise data with OpenCart, the facility to import bank transactions in many formats, a job scheduler to run certain KwaMoja scripts automatically, new levels of security for bank accounts and locations, many speed improvements to the code, and much much more

Monday, 1 September 2014

Bizarre behaviour of LinkedIn and other social media thoughts.

This page is written in response to the lies that +Phil Daintree  has written about me, and spread on the internet. Despite years of searching he has been unable to find anything I have written that is untrue, and he has had to resort to vague generalities, faked emails, and badly fabricated screenshots (you can see the joins if you zoom in using any bit mapped image editor). +Phil Daintree  is welcome to make any comments to these pages, as he has done in the past. If I agree with what he says I will amend my writings, if I do not agree I have allowed his comments to stand next to mine so that people can make their own judgements. I have every confidence in the intelligence of readers to make a sensible judgement based on the facts. +Phil Daintree  will not allow me the right of reply to any of the lies he has told about me. It seems to me significant that he realises that if people see both sides of the argument they will see through his lies.

I recently received an email from LinkedIn that told me that user +Phil Daintree had complained that I was using a logo supporting  the work I do in Africa instead of a photo of a person and that they had removed that logo.

Now this got me thinking. Not just about how +Phil Daintree  ought to find more constructive uses for his time, but also about the fact that LinkedIn have no idea of what I actually look like, so would have no way of knowing whether the picture I put on was me, or a picture of any of you who are reading this. All of the information about me on my profile is accurate and there was never any prospect of anybody accidentally believing tricked into believing that logo was actually a picture of my face!

So LinkedIn are happy for me to use a photo of a random person, but not happy for me to use a logo of an open source project supporting Africa. Come on LinkedIn that is a nonsense.

Social media should be about empowering me to share information about me that I want to share.

People should also be aware that +Phil Daintree has written a blog pretending to be me, and another blog pretending to be on behalf of the KwaMoja project. People should be aware of this as it is typical of the dishonest way that +Phil Daintree operates. Too cowardly to write under his own name.

Friday, 11 July 2014

KwaMoja / webERP hospital extensions

I am pleased to announce that we have brought our hospital extensions in line with the latest code, and that it is now available for testing. It can be downloaded from my github site at https://github.com/timschofield/KwaMoja/tree/KwaMoja-Medical.

This code by itself can be used in small clinics where it is just necessary to track what treatment a patient has had, and do the financials, or it can be used together with Care2x (http://www.care2x.org).

On installation you should find that you have another module called "Hospitals" installed. 

This module contains all the options for billing patients, dealing with the insurance companies, and reporting on the hospitals activities.

Using these extensions will provide a great help in tightening up a hospitals financial activities, and considerably help to reduce fraud. A brief description of how this works is given below.

Each cashier has a petty cash account that is just for their use, and which can be restricted to just them and a senior accountant/cashier to use. 

The Hospitals module contains options to bill from various hospital departments.

When a patient presents themselves at the cashier for say, the Laboratory, the cashier just has to select the option for "Billing For Laboratory Tests". They will then see a screen for helping them find the patient:
This is the same for whichever billing option the cashier chooses. As can be seen the cashier can search on many different ways, including the name, address, phone number to establish the right patient. Once the patient has been selected the cashier will see the billing screen:
If the link to Care2x is active then all the unbilled laboratory tests for that patient
will be shown, together with the total amount to be paid, so that all the cashier has to do is to collect the cash from the patient, and click on "Make Payment".
If the Care2x link is not activated then the patient should present the cashier with a document to show what Laboratory test they have been prescribed. The cashier then selects this as follows.
When the lab test is selected the price for that test is automatically pulled from the system. This depends on what price list was selected for that patient. Any number of price lists can be setup and selected for the patient. The cashier can select as many tests as needed, and the total amount payable is automatically entered in the "Amount Received" box.

When the cashier clicks on the "Make Payment" button all accounting and stock transactions related to this payment are automatically done using pre determined parameters.

At the end of the shift the cashier prints out a transactions report for their cash account, and the total of that list must agree with the total amount of cash that the cashier has collected. This list together with the cash is then taken to the chief accountant/cashier who verifies that the cash agrees with the report, and then does a transfer of cash from the cashiers account to the main account, which makes the balance of the cashiers account zero, in preparation for their next shift.

The chief accountant, or other authorised person then produces a report of any laboratory tests that were prescribed but have not been billed, and any items shown on this report need to be analysed to see why they have not been billed.

 There are various other reports and configuration options available which there isn't space to go into right now, and I will try to publish another article on these.

Friday, 27 June 2014

A new partnership - Making your network more secure

I am pleased to announce that I have entered into a new partnership with a Ugandan company to deliver a variety of Network security services to Ugandan companies and organisations.

If you want to stop the government, or cyber criminals attacking your network - or just better manage your users' internet traffic, then drop me a line on tim@weberpafrica.com and I will be pleased to get you a quote for your network.

Barely a day goes by without news of further security issues with our data. If it is not governments spying on us it is criminal gangs in search of our valuable data, or just to hold your data hostage.

The network security services we offer which include:
1.    Penetration tests, security risk assessments and audits tailored your needs, including:
•    Network security architecture review
•    Network penetration tests & assessments
•    Web application penetration tests & assessments
•    Wireless network penetration tests & assessments
•    Physical security assessments & penetration tests
•    Code review

2.    Threat Mitigation Services
•    Firewall deployment
•    IDS Roll-out
•    OS Hardening
•    Security Policy

3.    Rapid, effective, and discrete incident response services
•    Incident Response
•    Forensics
•    Expert Witness

4.    Supply of both virtual and hardware appliance Firewalls.  We deal with Barracuda and Check Point for:
•    Anti-phishing, Anti-spam, Anti-spoofing, Anti-spyware and Anti-virus
•    Cloud protection layer
•    Denial of Service (DoS) protection
•    Directory Harvest Attack protection
•    Email spooling and quarantine
•    Outbound email protection

Friday, 23 May 2014

Phil Daintree and kwamoja.org

This page is written in response to the lies that +Phil Daintree  has written about me, and spread on the internet. Despite years of searching he has been unable to find anything I have written that is untrue, and he has had to resort to vague generalities, faked emails, and badly fabricated screenshots (you can see the joins if you zoom in using any bit mapped image editor). +Phil Daintree is welcome to make any comments to these pages, as he has done in the past. If I agree with what he says I will amend my writings, if I do not agree I have allowed his comments to stand next to mine so that people can make their own judgements. I have every confidence in the intelligence of readers to make a sensible judgement based on the facts. +Phil Daintree will not allow me the right of reply to any of the lies he has told about me. It seems to me significant that he realises that if people see both sides of the argument they will see through his lies.

Ever since +Phil Daintree  fell out with me over keeping a history of purchase orders on the system I have grown used to the torrent of lies and abuse he has thrown at me, in an attempt to stop me developing webERP and KwaMoja. I have a thick skin, and anybody who knows me can see through his lies easily enough, so it hasn't unduly bothered me. He is after all well known for his lies and his bullying behaviour.

However his constant attacks on my African colleagues and our African projects do annoy me. His hijacking of the kwamoja.org domain name in order to push his personal vendetta is typical of him. I was not even involved in the project when he purchased the domain. The full details of this pathetic saga can be read in a post by Martha here.

He has told my African colleagues on the project he does not believe they are real Africans as the work is too good for them to have done it. I have offered Phil their phone numbers so he can tell them in person that they don't exist, but curiously enough he doesn't want to do this!

Persuading African friends to work on open source projects has been a struggle, as I have documented elsewhere. When they do help on open source they shouldn't have to face attacks from people such as +Phil Daintree 

When he first tried to ban me from the webERP project I set up a separate webERP repository so that I could continue to make my code available to others as the license requires. +Phil Daintree launched numerous public attacks on me for this, and said I should call my branch something else. When I then started committing code to the KwaMoja repository he launched numerous public attacks on me for donating code to a "rival project". There is no such thing as rival projects in the open source world, all projects can take code from each other. Open source is about collaboration not rivalry. So Phil is basically going to attack me whatever I do. That is fine as I have said, but I would ask him to leave off our African projects and my African colleagues.

Tuesday, 6 May 2014

Looking for KwaMoja consultants in the Arusha area

I have the need to recruit several ERP consultants in the Arusha area. This will entail working closely with a Christian faith based organisation and applicants need to be sensitive to that.

Preferably some or all of the following would be nice:
1 An understanding and experience with ERP systems.
2 A Knowledge of bookkeeping and accountancy
3 Some knowledge of programming PHP/mysql
4 A desire to learn and to work hard to create a career in the ERP industry

If you feel you would qualify and are interested in working in the Arusha area then please send your resume/CV to tim@weberpafrica.com with the words KwaMoja Consultant in the subject line of the email.

Tim

Sunday, 20 April 2014

Filing a bug report in KwaMoja

It appears from above that the administrator of webERP is shutting the project to new contributors, so it seems like a good time to run a series of articles on how to contribute to KwaMoja. Here is the first in that series:

image02Many people are nervous about reporting problems with open source projects. They fear that the developers will see it as a criticism. However all developers know that there is no such thing as "bug free" software. Any help they can get in tracking down and fixing these bugs is always appreciated.
KwaMoja uses a system called the bug genie to track any bugs in the software. We thought it waould be useful to write this short guide to filing bugs in KwaMoja using the bug genie.
Ok, so let's imagine that we have found a problem that we think may be a bug in the General Ledger Journal functionality (this will be an imaginary bug, I am not aware of any at the moment). The first thing we will need to do is to create an account for ourselves on the bug tracker. This is necessary firstly as it prevents spammers, secondly it enables you to track your bug, and for the developers to discuss the issue with you, enabling a dialog between you. Click here to enter the bug reporting section. You should see something like this:
If you already have a login, or you want to use one of the openid methods then
you can login from here. If you wish to create a new account then click on the tab marked "Register new account". You should now see a screen looking something like the one on the left.
image02Filling out this information and submitting it should give you a new randomised password. You should now login with the user and password combination that you have. You should consider changing the password at this point to one that you will remember.
You should now be taken to your dashboard page, giving you a summary of all your activity on bug genie. Obviously at the moment there won't be much on it!! If you are not taken to your dashboard, then click on your name in the top right hand corner and you should be taken there.
You should now see a menu bar at the top of the window looking like the picture
on the right. To enter a bug report select the "Bug Report" option and you will be taken to the main bug reporting screen. This has been kept deliberately simple. There are just three sections that you need to fill in.
  • Short Description
  • Description
  • Reproduction Steps
The short description should be brief but sufficient so that a developer browsing a list can quickly identify what it is about. Compare "KwaMoja doesn't work properly" with "General Ledger Journal gives the wrong total amount". Clearly the second is going to be easier for a developer to immediately understand the issue being reported.
The main description should contain as much information as you can about the issue being reported. You should include what version of KwaMoja you are using, what operating system and version you are using, a description of your server, and what browser you are using to view KwaMoja. Include any further information that you feel may be of use to the developers.
Finally there is the steps to reproduce the issue. Make sure you put everything no matter how obvious it may seem to you. Also include the results of what happens for each step.
Once you have submitted the report you should keep an eye out for feedback from the developer. It is likely you will get asked for more info, or be given a fix to test. Please reply to this feedback to help improve KwaMoja.

Tuesday, 15 April 2014

Med-e-Tel in Luxembourg

Thanks to the sponsorship of Advanz of Luxembourg we had a great time at Med-e-Tel 2014.
The major aim of our presence was to promote the use of our open source solutions in developing countries. It was great to see other open source health systems present as well to help promote the concept of open source in hospitals.

There was  stand devoted to open source solutions, which was very well attended all week.

We had a lot of interest all week from all corners of the globe. We presented a paper on an implementation of Care2x in a large tertiary hospital. You can read the full paper here.


The presentation was part of the open source in health care session of the conference, and was very well attended with much interest in the various open source solutions for health care being presented.

I came away from the conference with the belief that we are on the right track with our solutions, and that open source really is the future for ICT in health care.

I have come away with renewed vigour to push forward with Project Mtuha and KwaMoja/Care2x solutions, despite the attempts by some to wreck the projects.

Again, much thanks to Advanz for their sponsorship and support without which our presence at the conference would not have been possible.

Friday, 21 March 2014

Some properties of Automorphic numbers

This post is a complete change from my usual subjects.

Many years ago a man named Mike Mudge wrote a monthly column for Personal Computer World called "Numbers Count". There seems to be very little about him on the web, except for other fans like me. One such column inspired the following paper written jointly by my father[1] and I.

This work has just come to light during a recent house move that caused me to search through old papers, and despite it being 20 years ago, a quick search of the web shows that it still contains some original stuff, so I thought it would be interesting to publish it here. I am publishing it here unaltered, though obviously computing power has improved a lot over the years. I have tried to reproduce it exactly, but I may have made some transcribing errors, and if you see any please let me know.

Nb 20 years ago this work was unique to the best of our knowledge, but I can't promise that is still so.

Some properties of Automorphic numbers

Abstract: 

An automorphic number is is a number whose square ends in the same digits as number itself. Automorphic numbers form two series ending respectively in the digits 5 and 6. Successive members of each series have the same sequence of trailing digits and are formed simply by appending a new leading digit to their predecessor. Corresponding numbers in the two series bear a simple numerical relation to one another and are co-prime. Consequently, the sequence of one series uniquely determines the sequence of the other series. Some properties of automorphic numbers are discussed and these properties used to develop rapid and efficient methods for the generation of automorphic numbers. One such method generates numbers of up to 32,000 digits in length in a run time of 75 minutes[2]. n-Automorphic numbers to bases other than 10 are briefly discussed.

Introduction:

The computer generation of automorphic numbers using a simple trial and error process soon indicates that there are only three n-digit automorphic numbers for any value of n. One of these consists of the digit 1 with a string of leading zeros and may be regarded as trivial. In the case of the other two, it is found that with the exception of the leading digit, each n-digit automorphic number is identical with the corresponding n-1-digit number, and it is therefore only necessary to determine the leading digit for any n-digit  automorphic number. The following describes some properties of automorphic numbers and which lead to more efficient methods for their generation.

Methods

The generation of automorphic numbers was carried out with a Packard-Bell 445 elite 486Ssx running at 33mHz using programmes implemented in turbo pascal.

Results

Theorem 1 : 
For any value of n, there exists only two n-digit automorphic numbers and these end in the digits 5 or 6.
Proof: Let n= 10a+b represent a two digit number. If n is automorphic then 
 n^2=100a^2+20ab+b^2=1000z+100y+10a+b   .............................  (1)
and b^2=b+10x
where x is an integer. Only b=5 or b=6 satisfy this condition and therefore all 2 digit automorphic numbers must end in 5 or 6.

Substituting b=5 in equation (1) above gives
100a^2+90a=1000z+100y-20
90a must end in the digits 80 and therefore a=2 and n=25.
Substituting b=6 in equation (1) above gives
100a^2+110a=1000z+100y-30
110a must end in the digits 70 and therefore a=7 and n=76.

Let n=100a+10b+c represent a 3 digit number. If n is automorphic then 
n^2=10^4*a^2+2ab*10^3+b^2*10^2+2ac*10^2+20bc+c^2=10^5z+10^4y+10^3x+100a+10b+c ........ (2)
and c^2=c+10j where j is an integer, therefore the digit c must be either 5 or 6.
Substituting c=5 in equation (2) gives us 
10^4*a^2+2ab*10^3+b^2*10^2+10^3a+10^2b+25=10^5*z+10^4*y+10^3*x+100a+10b+5 ...... (3)
and 90b must end in the digits 80, therefore b must have the value 2.
By the same procedure substituting b=2 into equation (3) gives the value a=6. Substitution of c=6 in equation (2) and repetition of the same procedure gives values of 7 and 3 for b and a respectively.
Therefore to digit automorphic numbers can only be 25 and 76, and 3 digit automorphic numbers can only be 625 and 376.

Conjecture A

If p and q are any pair of n-digit automorphic numbers then p+q=10^n+1

Conjecture B

If p and q are any pair of n-digit automorphic numbers then p and q are co-prime.

Theorem 2

If p is an n-digit automorphic number and q=p-1 then pq=100s where s is an integer.
Proof: Let pq=1000a+100b+10c +d and p^2=1000f+100g+p
Then p^2-pq=1000f+100g+p-1000a-100b-10c-e=p
1000f+100g=1000a+100b+10c+e
Therefore c and d must be zero, and a=f, b=g, and pq=100s where s is an integer.

Theorem 3

If p is an n-digit automorphic number and 10^nA+p is the corresponding n+1-digit automorphic number, then A(2p-1)+x=k*10^n-1 where k is an integer and 100x=p^2-p
Proof: Let p=10a+b. If p is automorphic then 
p^2=1000l+100m+10a+b=100(10l+m)+p
Let x=10l+m then p^2=100x+p and 100x=p^2-p
Let the 3 digit number be 100A+p, then if this number is automorphic
10^4A^2+200pA+p^2=10^5*z+10^4*y+10^3*x+100A+p and 200pA-100A=p-p^2+1000k
Therefore A(2p-1)+x=10k
By the same procedure it can be shown that for the 4-digit number 1000B+100A+10a+b the leading digit B is given by the expression
B(2p-1)+j=k*10^2 where p=100A+10a+b, j*10^3=p^2-p, and k is an integer.

Theorem 4

If k is the square of an n-digit automorphic number j ending with the digit 6, then the le4ading digit in the corresponding (n+1)-digit automorphic number is 10-m where m is the coefficient of 10^n in k. For the corresponding n-digit number ending with the digit 5, the leading digit in the corresponding (n+1)-digit number is m where m is the coefficient of 10^n.
Proof: Let p=10a+b where p is a 2-digit automorphic number, then p^2=1000l+100m+10a+b
Let the corresponding 3-digit automorphic number 100A+p
From Theorem 3 above we know
A(2p-1)+10l+m=10k where k is an integer
Substituting p=76 we get 151A+10l+m=10k and A*l+m=10
Therefore A=10-m
Substituting p=25 we get 49A+10l+m=10k and A*9+m=10k
Therefore A=m

Theorem 5

For any value of n there exists only three-n-digit tri-automorphic numbers and these end in the digits 2, 5 or 7.
Proof: Let n=10a+b then 3n^2=300a^2+60ab+3b^2
If n is tri-automorphic then:
300a^2+60ab+3b^2=1000z+100y+10a+b  ..................  (4)
and 3b^2-b=10x   ............................  (5)
where x is an integer. This condition is only satisfied by b=2, b=5, or b=7
Substituting b=2 in equation (4), it follows that a=9
Substituting b=5 in equation (4), it follows that a=7
Substituting b=7 in equation (4), it follows that a=6
Corollary: 
For di-automorphic numbers, equation (5) becomes
2b^2-b=10x and b=8
For tetra-automorphic numbers, equation (5) becomes
4b^2-b=10x and b=4
For penta-automorphic numbers, equation (5) becomes
5b^2-b=10x and b=5

Discussion

Initial computer studies were carried out by testing numbers in sequence for automorphic character. The programme listing is shown in Appendix 1 [3]. As might be expected run times were very long and only 16 automorphic numbers were generated in a run time of 3 hours [4]. These studies did however demonstrate two important properties of automorphic numbers.
1. Only two n-digit automorphic numbers exist for each value of n
2. Such numbers form two series in which successive members differ from their predecessors only in the leading digit.

The first 8 members are shown for example below
Series 1525625062590625890625289062512890625
Series 2676376937609376109376710937687109376
Total11101100110001100001100000110000001100000001
In order to convert an n-digit automorphic number into the corresponding (n+1)-digit automorphic number it is necessary only to test the digits 0 to 9 for suitability as the leading digit of the next number. This obviously facilitates the computer generation of automorphic numbers. Furthermore it appears from the above table that the sum of a pair of n-digit automorphic numbers is equal to 10^n+1 (see Conjecture A above), and therefore a sequence of automorphic numbers is uniquely determined by the corresponding pairing sequence.
Theorem 3 allows the calculation of the leading digit of the next automorphic number in the series. If for example p=625 then A*1249+390=10k implies A=0 giving 0625 as the next automorphic number in the sequence. If p=0625 then A*1249+39=10k gives A=9 making the next automorphic number in the sequence 90625.
Theorem 4 provides a simple alternative method for the calculation of the next leading digit in automorphic numbers terminating in the digit 6. If p=376 then p^2=141376 and m, the coefficient of 10^3 is equal to 1. Therefore A=10-1=9 giving 9376 as the 4 digit number.If p=9376 then p^2=87909376 and m the coefficient of 10^4 is equal to zero. Therefore A=10-0=10 giving 09376 as the 5-digit number. If p=625 then p^2=390625 and m, the coefficient of 10^3 is equal to zero giving 0625 as the 4-digit number.The same procedure gives 90625 as the 5-digit number in the sequence.

The programme listing for this procedure is shown in Appendix 2 [5]. Using this procedure, the series of automorphic numbers up to 20,000 digits in length was generated in a run time of 54 minutes. Repetition of the procedure using an AST 486DX running at 50Mhz generated automorphic numbers of up to 32,000 digits in length in a run time of 75 minutes. As a point of interest it may be noted that the leading ten digits and the trailing ten digits of the two 32,000-digit automorphic numbers are as follows:
6351634399..............................................................................8212890625
3648365600..............................................................................1787109376


Appendix 3 lists all the n-automorphic numbers to base b where b=2 to 10 and n=1 to b-1 [6]. The following points may be noted:
1. No base 2 automorphic numbers are apparent.
2. It is conjectured that an (n+1)-automorphic number to the base (n+2) is of the form:
.......nnn(n+1). For the cases n=5, b=6 and n=9, b=10 there are two accompanying numbers while single numbers only occur for all the other cases.

[1] http://www.google.com/patents/US4877732

      http://www.google.com/patents/US3636037
      http://www.google.com/patents/US4249015
      http://www.google.com/patents/US3701779
      and others................... 
[2] Note the timings given in this paper were from the initial work carried out approximately 20 years ago, and obviously would be very different if repeated these days.
[3] Unfortunately this appendix has been lost, if I find it I will add it here later for the sake of completeness.
[4] I have just run a very simple python script and using a brute force method it generated the first 16 in 128.222 seconds!
[5] Again this programme listing was not found, sparing people from seeing my lack of coding skills from 20 years ago!!
[6] The loss of this appendix is a great shame as this gives some interesting information. I will try to recreate this data at some time.

Thursday, 6 February 2014

KwaMoja version 14.02 is released

 KwaMoja version 14.02


This is a brand new version of KwaMoja with many additional features, and many enhancements from webERP.

There is a completely rewritten installer giving an option of 27 different charts of account donated by contributors from around the world. Users have the choice to upload some demo data, or to go through the entire hand holding procedure to set up a new blank company.

Internal stock requests can now be edited or cancelled on a per line or per request basis.

When making a payment to suppliers, the invoices can be chosen from within the payments screen, and all allocations are performed automatically.

Inventory can now be analysed on an ABC basis, to identify fast/slow moving items. This analysis can be done using different bases, and multiple analyses kept.

KwaMoja has a dashboard that enables multiple views of the status of orders/inventory/banks etc. to be shown on one screen. This is configurable on a per user basis.

There is a new and more intuitive user interface for those using it for whom English is not the first language.

Shipments can now be entered with a start date before today's date thus enabling a more sensible ETA date to be entered.

The code has been simplified and smartened up in line with the coding guidelines.

Numerous bug fixes have been applied.

Form as are now verified at client side, and better error dialogs are shown.

The full change log can be viewed here: https://github.com/timschofield/KwaMoja/blob/release_1402/doc/Change.log

The state of resource planning in African Industry

A proper history of ERP would be beyond the scope of this article so what below is a radical précis of the facts, simplifying occasionally for the sake of brevity.

In the nineteen seventies a new approach to manufacturing systems started to spread outwards from Japan. Generally credited as starting at Toyota where it had evolved over a period of years. This approach had several names JIT (Just In Time), stockless production, and Material requirements planning (MRP).

What was happening was that the capabilities of computers was being utilised to plan the resources being used in manufacturing to dramatically reduce the cost of holding and handling these resources. It became possible to plan exactly what resources were going to be needed and when. Then correct management of the supply chain meant that these resources could be in the right place at exactly the right time. Better planning and efficient use of resources produced better quality finished goods.

This revolutionary approach began to move through western businesses during the eighties with such companies as Hewlett Packard leading the way. Through the eighties and into the nineties most western companies adopted at least some of this new manufacturing philosophy, the most successful at implementing this became the most competitive, and survived the recessions of those years.

Computer software to help this approach was developed, at first in house, and then by ISV's. This was called MRP, then MRP II also CRP (Capacity Requirements Planning) eventually evolving into one integrated solution ERP (Enterprise Resource Planning).

Like most new market places there was an initial explosion in the eighties of many vendors supplying this software, followed up as the market matured in the nineties by a consolidation into a small number of vendors.

Then came the open source revolution of the new century, when there was again an explosion of new products onto the market place.

So, first Asian businesses, then American and European businesses adopted this new philosophy their products became highly competitive in the world market. Where did this leave Africa?

I first began to get involved with African businesses in the second half of the last decade and was horrified at just how few companies had adopted this approach to manufacturing. Too often the approach was "Labour is cheap, if we have a problem we throw more cheap labour at it". This approach comes with many problems. Most obviously quality falls when you employ cheap temporary labour, but there is also the social aspect of this. The small amount of planning that seemed to be done was done by hand or spreadsheet. The resource planning revolution had not reached Africa.

Poor control of resources also meant that businesses were losing a great amount of stock through theft. This had a double affect on the business, there was the loss of money that had to be used to replenish the stock, but also the failure to meet customer orders was costing them dearly.

This meant that African goods just couldn't compete with western companies that used sophisticated tools to keep quality high, and costs low.

It would be nice to say that African business owners took to ERP very quickly, but as it was in the early days in the west it was a struggle, but more and more businesses are now seeing the benefits of good planning.

The only software that has been available to African businesses has been produced in the west. This was one of our motivations in producing KwaMoja. We wanted to produce some thing that would benefit African businesses, and something that was produced in Africa, and something that African consultants can sell services around.

We are happy to announce that a new version of KwaMoja is ready and hitting the mirrors already. This is version 14.02 and you can download this version from here.

Sunday, 19 January 2014

Comments on "ICT Aid projects in Africa - Why so many failures?"

I got a lot of comments on this article, but the article was printed in many places, and so the comments were dotted around. I thought it might be useful to bring them together in one place.

On the Human Resources Africa Group Steve Oloo said:
"May be its because the Projects lacked good visibility study. another thing that happens in Africa and in my case I can speak of Kenya. you find that the Government can change policies and tax in a day thus making the equipments outsourced to be expensive than initially planned hence going for cheaper options that are generally expensive... another thing that happens is that the level of poverty in Africa is too much that the creativity is diverted in the line of vandalism of ICT projects...one example is the fiber-optics which is the best invention and thought to be useful to ICT only but people in Africa vandalize the just to make illuminating flowers structures to sell to the public thus hindering its usefulness...
the right personnel is also a problem since Africa , Kenya in particular see papers rather than what you can do.... Lastly the level of corruption in Africa is so deep that even a good project for all humanity must be bribed so as to be implemented..making the initial cost be peanuts compared to the cost of implementation...."


On Africa - All Things Business Phil Johnny said:
"ICT projects failure in Africa is largely due to [ LACK of will power, dedication, commitment & passion] to ensure that people in Africa benefit from Information & Communication technology which they rightly deserve. Conflict & Corruption have been plaging the continent for years. There is no doubt tons of investment opportunities in Africa but without the right people (Authorities) in the corridors of power, things could easily get out of control and no one will be seen to account for the mess. Moreover, when the willingness and readiness to make needed sacrifices is not in the hearts of the leaders, all else fails. Therefore, a COMPLETE & GENUINE CHANGE OF ATTITUDE is absolutely necessary."

 On Accra Business Club - Africa | Ghana | Networking Andrew Brookes said:
"Tim great piece - very astute.
One obvious resource for ICT in Africa and other developing countries (India)is LInux and other free source software; but because the general ethos is that because people (e.g Ricard Stallman and GNU) don't charge there is next to no money to support projects. Microsoft on the other hand has a better business model ,so what it decides to get behind usually doesn't fail
Secondly it seems to me there is no thought or co-ordination by say the Ghana Government to take the data it has on official registered NGO's concerned with ICT and link activities together.
As you say some projects are maybe vague. What about this project i've been working on- You take the school wiki download a quality E-encyclodpedia of 6000 articles, 26 million words and 50,000 images which has been checked and based on the UK curriculum( http://schools-wikipedia.org) you enhance it with a search function and work out how say 10 or more children would be able to use it with a set up of server/client.
see http://www.youtube.com/watch?v=HkCjzlVQ6_g&feature=youtu.be
There would be potential to "personalize" the system if scholars and historians contributed since the E-Encyclopedia is basically a bunch of web pages that can easily be edited. Since the set up involves a web server there is the capacity to use it to teach children construction of web pages, CSS style sheets and computer languages such as PHP.
I have had a previous meeting with the ICT co-ordinator of the Ministry of Education in Accra, and I bet if I was sitting opposite him now and put the above to him I wouldn't be surprised if he could even comprehend the possible value of such a project.
Microsoft on the other hand has just appointed Otema Yirenkyi in Ghana; what I can imagine is if Microsoft comes and says "we have the money, the ideas etc so you don't have to do much " then its easy for those with lack of imagination, vision and leadership to just go along with it.
Personally I am not against Microsoft and admire their business model ; also there is potential for joint projects such as LInux servers and Windows clients
"
  

I replied:
"I agree fully with you Andrew. I wrote an article here http://weberpafrica.blogspot.co.uk/2013/10/africa-and-open-source-software.html on the subject of why African governments should look to open source as a way of building a local IT industry.
I do believe that if these governments invested the money they spent on foreign IT products and services in a local open sourced based IT industry everybody except the multinationals would gain,
I have set out in that article how I envisioned this working.
Very much like your wikipedia for schools. Have you tried the Ministry for Education? I am sure you are correct in what you would expect from them. I have previously come across the "if it's not American and expensive how can it be any good" philosophy in Govt departments. There are potentially donor organisations that could help.
"

Andrew Brookes commented:
"cheers Tim
from the perspective of an Educational resource which could be extended , I can not at the moment imagine a better one than the school wiki with search facility.When you say there are potentially donor organisations that could help, could you elaborate a little on who they may be and how I can contact them?
One problem I have is that I went through quite a few hoops to get an NGO registered in Ghana but don't have anything registered in the UK. I did try to get support in the U.K but the feedback is " we don't help organizations or charities unless they are UK registered"!
I am not keen to bang my head against a brick dealing with UK possible EU bureaucracy to be honest"

And I replied: 
"Getting money for an African NGO or other charitable organisation directly from western countries is very hard. Too much money vanished down that hole in the past. Going through a UK/EU based organisation provides any donor with some legal recourse if funds go missing.
However there are UK based organisations that already have this link between UK and Africa in place. One such that immediately springs to mind for your project is http://www.africaeducationaltrust.org which is UK based but works in Africa. There are others than could possibly help.
I have some other contacts that could possibly help. Contact me on tim.schofield1960@gmail.com if you would like us to try and work together to get this moving


On Windhoek Business Club - Namibia Ashraf Bharmal said:
"Wrong projects for wrong reasons. There are cases of spectacular successes too but few and far apart."
and Salehe Khatibu replied: 
"poor management of them "
and I said:
"@Ashraf Agreed. I feel that many donor organisations get this balance wrong because of a lack of local knowledge. A person or group is sent to Africa to evaluate the project. They stay in a luxury tourist hotel, are entertained by local people eager to say whatever they think is needed to be said to get the money flowing. None of this is wrong, but means that they don't get a clear view of what is needed and the people locally will not always tell them for fear that the project will not go ahead. 
@Salehe Very true. Project management skills are some of the hardest to learn, rarest, but least appreciated skills going. Bad leadership will cause failure whatever else happens"

On Dar es Salaam Business Club - Tanzania Catherine Mkude said:
"Dear all, My name is Catherine G. Mkude and I am a PhD researcher at the University of Koblenz-Landau in Germany working on a framework for e-government systems design for developing countries. In my research, I am investigating e-government strategies, programmes and projects (applications, infrastructures, comprehensive solutions, etc.) in developed and in developing countries. In doing so, I want to determine how developing countries can leverage from the more successful e-government endeavours in developed countries.
I am currently in a stage of collecting information on experiences, practices and solutions in 5 domains of e-government implementation in developed and developing countries. These domains are (1) electronic public services, (2) electronic participation, (3) application of information and communication technologies (ICT) in policy making processes, (4) e-government infrastructure and, (5) evaluation and sustainability of e-government.
Therefore I would like to kindly ask you to participate in a survey, which investigates these domains through separate questionnaires. I would highly appreciate if you could fill in one (or even more) of the below questionnaires. The responses for the questionnaires are entirely confidential and anonymous.
The following links direct you to the respective questionnaire per domain. The approximated time to fill in a questionnaire is also indicated below. Please choose the link(s) of the domain(s) you feel most comfortable to answer.

  1. Domain electronic public services: http://cmkude.limequery.com/index.php/983413/lang-en. Approximate time is 40 minutes.
  2. Domain electronic participation: http://cmkude.limequery.com/index.php/388819/lang-en. Approximate time is 40 minutes.
  3.  Domain ICT in policy making: http://cmkude.limequery.com/index.php/776413/lang-en. Approximate time is 35 minutes.
  4. Domain e-government infrastructure: http://cmkude.limequery.com/index.php/375388/lang-en. Approximate time is 30 minutes.
  5. Domain e-government evaluation and sustainability: http://cmkude.limequery.com/index.php/582399/lang-en. Approximate time is 30 minutes.
In advance I appreciate and thank you for your time and contributions. If you are aware of someone who I can ask to fill in either of the questionnaires, please let me know by email and I will invite them. Thank you and kind regards,  Catherine G. Mkude. "
Ashraf Bharmal said:
"Hope you paper will produce some positive results. Best wishes and Good luck"
Leticia Slame said:
"Hello Tim, it quiet interesting that has been my question why ICT Project fail to successed and if they successed it wont last long and most of the people have negative response, I will be glad if I get the reasons. "
and Ashraf Bharmal said:
"My Take:
1. Politically expeditious projects
2 Poor planning
3 FEEDS and Feasibilities , Colorfully printed, beautifully bound and presented, full of sound and fury in which affected sectors, people have no say.
4. Foreign contractors, not involving local entities in the project from the beginning who would gain hand on experience of the project, instead of six week orientation seminars at the end of the completed projects
5. Lack of post project planning of operating, maintaining."


On KwaMoja - Open Source ERP for Africa Nicholas Mmasi said:
"-Too many unfair side deals...people want to spend money and write a good report
- Demotivated staff ,less communication and unclear benefit of the system to the operating staff.
- No plan for sustainability right from the beginning,so once the donor pulls out the things end up there.
-Unrealistic requirements and system rationale... "

and I replied
"Hi Nicholas,
"-Too many unfair side deals...people want to spend money and write a good report "
I agree, I have seen too many "stage managed" visits by donors to sites where people at the sites have been given money to back up a false report.
"- Demotivated staff ,less communication and unclear benefit of the system to the operating staff. "
This is what I meant by lack of good project management. It is the job of the project management to motivate and communicate with staff.
"- No plan for sustainability right from the beginning,so once the donor pulls out the things end up there. "
Excellent point. Sustainability is some thing I should have gone into greater length about in the article. Who maintains once the donor leaves. Where does the financing of that support come from? "

Nicholas said:
"Hi Tim, Donors also have bad policies that are not applicable in Africa.I have been going around trying to see why so many projects fails eve before donors pulls out.
Almost all project are in pilot mode/Nursery and never get out of the lab.Similar scenarios are readily available and visible in areas of agriculture(farming technology and techniques), small scale industries, bio-gas,ICT, healthy ,and many more....
I normally find them in exhibitions only.... "

and I replied:
"Hi Nicholas, sadly you are right, despite most involved having the best intentions. I don't believe that it is necessary though, with some changes in policy and outlook a much higher percentage will succeed. There will always be failures but the failure rate shouldn't be this low. Tim "

On Information and Technology Lisa Schnellinger said:
"Excellent points. From my experience, I think they are often true of all types of development projects, in all regions. "

On Monrovia Business Club - Africa | Liberia | Networking Deodatus Shayo said:
 "Lack of ownership "

On Harare Business Club - Zimbabwe | Southern Africa Viola Marufu said:
"Tim, you have an interesting article. Interesting that you list your perspective as statements made from observations of certain African projects which does not necessarily implying that all projects are run like this. However, you should note that the major reason why some donors want local community members to staff and manage projects, rather than outsiders is because the locals know their community better and thats another way of empowering the community. Furthermore, it does not justify the expense of getting an outsider, so to speak, than getting an equally qualified local staff member.
You also say that ICT projects are a newer idea in Africa than in the west and there is limited number of qualified local project managers available. Thats not necessarily true. ICT projects are welcome and expanding in Africa. The current development is the spread of ICT effectively in rural communities and schools. In most areas the major setback is electrification. They are more and more qualified business people, educationists, economists and ordinary people who have well advanced ICT skills. So it is not necessarily an issue of skill but they are other factors influencing this. You are mixing points here.Furthermore if jobs are advertised, the right candidates apply for the job.
Then you say project employees are more interested in perpetuating the project than completing it, they prolong the project for personal interest etc. That is true where the project itself is not well managed. There is always need for an independent Monitoring and Evaluation exercise. They are also independent auditors.
A project that is really interested in benefiting the country in which its operating in will not wait to get a report on their desk. They will also put in measures to ensure all is well. This would be true no matter where the project runs. Whether its in Africa or the West, there is always need for accountability. "

I replied:
"Hi Viola, Thanks for your interesting comments. Firstly I should make clear that I am not nor have I ever been part of a donor organisation. I write from the perspective of someone who has either worked in, or observed many projects.
"Interesting that you list your perspective as statements made from observations of certain African projects which does not necessarily implying that all projects are run like this" - I agree, I tried to make the point I was writing from personal experience only, and was trying to answer why it appeared to me the failure rate was higher than normal in donor funded ICT projects. There is a high failure rate in all ICT projects.The UK NHS IT project is one of the most high profile failures.
"However, you should note that the major reason why some donors want local community members to staff and manage projects, rather than outsiders is because the locals know their community better and thats another way of empowering the community. Furthermore, it does not justify the expense of getting an outsider, so to speak, than getting an equally qualified local staff member. " - obviously it makes sense to employ local staff, my company always has, it keeps money within the local community. However my experience of projects where only local staff work has not been good, for reasons I said. It requires a balance that few projects actually have.
"You also say that ICT projects are a newer idea in Africa than in the west and there is limited number of qualified local project managers available. Thats not necessarily true. ICT projects are welcome and expanding in Africa. The current development is the spread of ICT effectively in rural communities and schools. In most areas the major setback is electrification. They are more and more qualified business people, educationists, economists and ordinary people who have well advanced ICT skills. So it is not necessarily an issue of skill but they are other factors influencing this. You are mixing points here.Furthermore if jobs are advertised, the right candidates apply for the job. " - Well again I can only comment from my own experience. Recruiting qualified local staff has always been a problem. I have regularly trawled the universities, and advertised extensively. I am not saying that there are not capable African staff, just that either they are either in private industry, or moved to the west. I have also seen many projects run by project managers with little or no training in project management. I tried in the article to understand why this is. Project management skills are very different from ICT skills.
"Then you say project employees are more interested in perpetuating the project than completing it, they prolong the project for personal interest etc. That is true where the project itself is not well managed. There is always need for an independent Monitoring and Evaluation exercise. They are also independent auditors. " - That is the point I was trying to make. It is human nature to make the projects last when you are earning money from it. The fault lies in the agencies not managing and monitoring the projects.
"A project that is really interested in benefiting the country in which its operating in will not wait to get a report on their desk. They will also put in measures to ensure all is well. This would be true no matter where the project runs. Whether its in Africa or the West, there is always need for accountability. " - Agreed, as I said at the start the only reason I wrote about Africa was that was where my experience was. "


As you can see, lots of very interesting comments came from this discussion on top of the comments on the article itself.