Posted by & filed under Documentation, MyBanco, Random Thoughts.

Every time I go to my Inbox every morning; I seem to have three or four questions waiting for me regarding MyBanco. Starting from the most asked question, and going down to questions I seem to get less often, I thought I might answer a few of those questions so that I will never have to type out the same repetitive answer again.

How can i download MyBanco 2009.1?
MyBanco 2009.1 is not yet released, I know that the site is a bit out of date, and that the release is way over due, all I can say is hold your horses and go download the latest release, which you will see on the very same download page that talks about MyBanco 2009.1, http://mybanco.org/download.html

Is this for real? Is MyBanco really meant in production environment of real banks?
Well, yes. This is the aim of the game. The application is not yet fully feature rich, so don’t expect Citi Bank to start using it just yet, but with enough programmers hands, it will become an application that can be used in production environments, not just for small community banks but also larger national banks.

I can’t install MyBanko. I do not use XAMPP. I use real web server. I can’t found where to write the MySQL server address on page 3 ?!?
Firstly, do your research. XAMPP is just a nice and easy way to get a webserver with Apache, PHP and MySQL installed on Windows without little work at all. It is a real server, just as much as a LAMP server is. I don’t know what you mean about MySQL, all you need to do is create a database with acceptable permissions (say with phpMyAdmin — which XAMPP also comes with…) and enter those login details into the installation script for MyBanco. The install application for MyBanco will come up when you go to the domain for MyBanco for the first time.

Is it possible to install with the following url: http://localhost/mybanco? Because, with the original installation method I have to sacrifice other websites.
No, it is not possible. The internet banking module is built to run off it’s own domain/subdomain. The easiest way to do it is to just create a virtual hosts configuration in Apache, where you have something like http://mybanco.localhost :) The reason this is here is to make MyBanco comply with PCI DSS (https://www.pcisecuritystandards.org/), which are rules created by the major credit card issuers on the subject of how machines must handle credit card information. https://www.pcisecuritystandards.org/security_standards/pci_dss_download.html

PCI DSS Requirement 2.2.1 specifies ‘Implement only one primary function per server.’, which basically means that the internet banking interface must be on a separate server then say the backend server or the MySQL server. Of course, for testing it is OK for this to not be the case, but for the reason that there are rules to worry about, making it run the way you want in a testing environment has not really been a big concern.

PCI DSS Requirement 6.3.2 requires that test/production environments must be seperate, and it is recommended to have the same config. between both environments, yet another reason not to implement what you are saying.

MyBanco throws some errors even at installation. Step 4, i.e. stop after sql writing and gave no clue for me. And, also some undefined variables message after that.
If you encounter errors, please copy and paste them so I can fix them.

I manage a banking program at a community college. We are setting up a model branch for students to practice retail banking operations in a simulated environment and would like to use your retail banking solution. Does an extensive amount of programming need to be done before we can use the software. We only need the basics -nothing fancy. How exactly do I download it and get it to run? What hardware/operating system/database platform etc. do we need to run it? We will have about 5 – 25 work stations running it.
At the moment, MyBanco does not perform any lending functions, this is it’s only downfall. To get it running is very easy, if you look around the MyBanco website at this link http://www.mybanco.org/about-us.html you will see that there is a link to this blog post: http://timg.ws/2009/01/26/installing-mybanco-with-xampp-on-windows/ It describes all that needs to be done to install MyBanco on a Windows system.

You can download MyBanco from here: http://timg.ws/downloads/mybanco/ No fancy hardware is required, a basic Core2Duo machine, which costs less then $2,000 will be able to handle not 25 work stations, but 250!

MyBanco is very fast. No programming will need to be done, unless you want to offer loan support.

Posted by & filed under Random Thoughts.

It’s amazing what I do in a week at work.


Milko’s Everywhere


Even more Milko’s


They are in the bin as well


Lot’s of screen with lots of text, too.

Posted by & filed under Random Thoughts.

Software is really a very different type of “product” – the only I know that is released not completely finished neither fail-proof.

Posted by & filed under Documentation, MyBanco.

Right, so you have a new installation of MyBanco, what should you do now? Well, here are a few ideas just to get the ball rolling:

  • Create a new skin of MyBanco. Skins are very easy to make, you do it by just copying an existing skin to a new directory (skins are in C:\xampp\htdocs\Skins). For example, to make a skin called ‘wicked’, here are the steps.
    1. Copy the folder ‘Simple’ and paste it in the same directory.
    2. Rename ‘Copy of Simple’ to ‘wicked’
    3. Enter the folder ‘wicked’ and rename ‘Simple.php’ to ‘wicked.php’
    4. Goto ‘C:\xampp\htdocs’ and edit ‘config.php’.
    5. Change the line starting with “$CONFIG[‘skin’]” changing it to this:
      $CONFIG['skin'] = 'wicked';
    6. Start editing the new skin, making it look how you want :)
  • Install xbank. Do this by going to the admin, and specifying ‘Enable xbank’ in the config. If you have made the config file read only (not a bad idea!) you will have to edit config.php manually.
    When XBank is enabled, a new config item will appear, where you can add banks that allow communication with. To do this, you will have to know what the partner bank’s XBank I.D. is, and create a new Communication Key with them. You must share then with the manager of the partner bank’s system your communication key, and they will give you their communication key. If both keys are not traded, communication between the banks will be impossible, as the communication key builds up the security between the two banks.
  • Enable Currency XChange. (CXC).
    CXC is a system that allows different currencies to be traded in a fair way. The way that CXC works is that a new currency is created by a ‘Host Bank’. This host bank then specifies the four character CXID, or ‘Currency Xchange ID’, which other banks will use to specify the currency.

    For example, the “Test Bank of Testland” floats their new curreny, who’s CXID is “TEST”. “Test Bank of Testland” tells the CXC server that they are willing to put t10,000 into a CXC account. This new currency can now be floated at a rate specified by the “Test Bank of Testland” against *ONE* other currency already in the CXC.

    When another bank, for example the “First bank of Demonasia” has a customer that wants to put t2,000 into the account, the money will then be traded with the specified amount.

    This requires both banks to have communication set up not only between the CXC, but also with each other.

    The First Bank of Demonasia can then tell the Test bank of Testland that it has 2,000 to put into the foreign bank, and the money will appear in the account.

    Unlike other systems availible at the moment, this system does not magically ‘create’ currency, rather, it is only traded, so always the exact amount that was put in the system is actually there.

    Really cool things can then be done, for example, the Test bank of Testland can remove all the money that it has from circulation (which are not held in other banks)

  • Offer Phone Banking
    If you have an install of Asterisk laying around, you can actually create online banking for customers of your bank. For example, with voip.ms, a new number in America only costs around $3 a month, and you can accept two incoming calls at a time (and pay nothing to accept those calls). All you need to do to make this work well is have a good TTS (text To Speech engine installed, like Cepstral) and a Linux install of Asterisk, which is allowed to access the MyInfo location (the backend of MyBanco).
  • Allow SMS Banking
    If you have credits with Clickatell, you can actually do SMS banking. This costs a bit of money to actually set up, but getting it working once you pay the $30 a month is very simple. Customers can then see from anywhere how much money is available in their account.

Well, that should at least get the ball rolling.

Posted by & filed under MyBanco.

  1. Download xampp-win32-1.7.0.exe from the Apache Friends website
  2. Run xampp-win32-1.7.0.exe, and set the ‘Extract Path’ to C:\
    ( It’s OK, all the files will go inside a directory called ‘xampp’ )
  3. When the extracting has finished, go into C:\xampp\, and rename htdocs to htdocs.old
  4. Create a new directory called ‘htdocs’
  5. Copy all of the extracted files from ‘mybanco-x.yy’ into C:\xampp\htdocs
  6. In ‘C:\xampp’, run the file ‘xampp-control.exe’.
  7. On the window that comes up, ensure that the ‘Apache’ (web server) and ‘MySQL’ (database) ‘Svc’ checkboxes are ticked.
  8. Open C:\xampp\apache\bin\php.ini with your favorite text editor
  9. Make sure the “;” character is removed from the following lines:
    • ;extension=php_curl.dll
    • ;extension=php_bz2.dll
    • ;extension=eaccelerator.dll
      This is only needed if the performance of MyBanco is not as desired. This can boost
      the speed of the application by almost three times. It is a real speed boost.
  10. Ensure that all the “magic_” lines are set to off (for example, magic_gpg….)
  11. Save the file and click Start on both of the above mentioned boxes (Apache and MySQL).
  12. If Apache fails to start, try commenting out all of the eAccelerator lines again with “;”‘s, I say this because the xampp version I had came with a eAccelerator version not for the build of PHP included with xampp.
  13. Now that xampp has started Apache and MySQL, goto http://127.0.0.1/phpmyadmin and click on the ‘Privilleges’ tab on the right top hand side of phpMyAdmin
  14. Click on ‘Add a new User’ and enter the following information:
    • Username: myinfo
    • Host: (choose Local’ from the drop down box)
    • Password: myinfo123
  15. On the ‘Database for user’ group, press ‘Create database with same name and grant all privileges’
  16. Now goto ‘http://127.0.0.1/install/
  17. Click next, press ‘I accept’ on the AGPL license (note: this means that you must share all code changes with anyone who can access the website, so if you change some code in MyBanco or any code that connects directly to MyBanco (ie, a MyBanco plugin) you must share that code with all people who can access the site. Even if all they see is the login page. This is so all people can benefit from other peoples changes to what is the most comprehensive open source bank operations software.
  18. Fix any errors that may occure on the next screen. Please note that this may mean more changes to the php.ini file.
  19. For the first three fields that you see on the next page, fill in the username and password that you created in phpMyAdmin. For the MyInfo backend location, enter ‘http://127.0.0.1/backend/’. Please note that this location should be changed for more secure environments. I say this, however, but no operations can be performed through the backend without first logging in.
  20. The install should go without any glitches. If it all goes OK, the bank software is installed!
  21. Now you can goto http://127.0.0.1 and see MyBanco working.
    A default account has been created called ‘tim’. Login with it, as ‘tim’ as the username, and ‘login’ as the password.

Quite a quick and easy install. Should take only around 25-30 minutes to complete. (Hell, it only took me twenty-thirty minutes to write!)

– Tim

Posted by & filed under MyBanco.

Yesterday I talked about the mybanco-0.05-better-curl-support patch, and now I have a few more to share.

==> mybanco-0.05-check-for-mysql.patch
This patch makes the backend spit out a nice error if there is no MySQL extension loaded on the server. This is much better then things just appearing t do nothing

==> mybanco-0.05-better-errors-when-they-happen.patch
This patch adds more backend errors when other required extensions are not loaded.

==> mybanco-0.05-frontend-myinfo-enhancements.patch
This patch fixes up the way that requests are forged and sent to the MyInfo server. Requests are now faster and use less RAM. This is good!

==> mybanco-0.05-to-0.05.1.patch
This patch updates MyBanco’s version from 0.05 to 0.05.1, on it’s way to 0.06.

[TXT] mybanco-0.05-check-for-mysql.patch 26-Dec-2008 09:15 patch
[   ] mybanco-0.05-check-for-mysql.patch.md5 26-Dec-2008 09:15 md5 checksum
[TXT] mybanco-0.05-check-for-mysql.patch.txt 26-Dec-2008 09:15 diffstat
[TXT] mybanco-0.05-frontend-myinfo-enhancements.patch 26-Dec-2008 20:01 patch
[   ] mybanco-0.05-to-0.05.1.patch 26-Dec-2008 20:11 patch
[TXT] mybanco-0.05-better-errors-when-they-happen.patch 26-Dec-2008 20:11 patch
[   ] mybanco-0.05-better-errors-when-they-happen.patch.md5 26-Dec-2008 20:21 md5 checksum
[TXT] mybanco-0.05-better-errors-when-they-happen.patch.txt 26-Dec-2008 20:21 diffstat
[   ] mybanco-0.05-frontend-myinfo-enhancements.patch.md5 26-Dec-2008 20:21 md5 checksum
[TXT] mybanco-0.05-frontend-myinfo-enhancements.patch.txt 26-Dec-2008 20:21 patch
[   ] mybanco-0.05-to-0.05.1.patch.md5 26-Dec-2008 20:21 md5 checksum
[TXT] mybanco-0.05-to-0.05.1.patch.txt 26-Dec-2008 20:21 diffstat

Posted by & filed under MyBanco.

Hello everyone!

About time I updated this blog!

Today I am writing to give you all a new patch (with another one comming in about one hour or three.)

This first patch, which I am going to offer up today is to improve a small issue with installations that do not have cURL enabled. If/when this is the case, a nice error will show up, rather then comming up with “Call to undefined function curl_init() in […]”.

Although only a small patch, it’s just a nice patch up for MyBanco 0.06; which is due out in the next few days, and will offer all new features, such as user registration (at long last!) and some other things which I will not discuss now. The next patch will improve the way that the communication to the backend is done, and will allow a huge improvement to the speed of the frontend. MyBanco 0.06 will also offer up a new method of usage which will not require the backend or the cURL extension in PHP.

[   ] mybanco-0.05-better-curl-support.patch 26-Dec-2008 08:39 patch
[   ] mybanco-0.05-better-curl-support.patch.md5 26-Dec-2008 08:50 md5 checksum
[TXT] mybanco-0.05-better-curl-support.patch.txt 26-Dec-2008 08:51 diffstat

Posted by & filed under Linux, Random Thoughts.

My development environment is CentOS 5. Running a library that is two and a half years old really sucks on a new Linux box, especially because I had to install three compat libraries.

The software is called “webpay”, and the actual library itself is distributed as a binary library; which would be alright apart from the fact that this is a library that is meant to financial transactions, and I want to be able to trust that this library is the actual library that I am meant to use. When you go to download the file from St. George, there is no way to validate the file, no signed GPG files – not even an sha1sum.

What was even worse, is that the webpay client refused to work in the Virtuozzo container.

rt_sigaction(SIGPROF, {0x81c0ce0, [PROF], SA_RESTORER|SA_RESTART, 0xf09dc8}, {SIG_DFL}, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [PROF], NULL, 8) = 0
open("test.blue", O_RDONLY)              = 3
fstat64(3, {st_mode=S_IFREG|0777, st_size=4891, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7eb3000
read(3, "", 4096)                       = 0
brk(0x9ae9000)                          = 0x9ae9000

I would like it if it “just worked”, or even better – that libwebpayclient.so came with source, so we could actually compile the library ourselves, and debug the problem further. Even though the library is from a bank, I would have no problem sending back improved code to the bank, especially if it improved the way that my software worked.

Damn banks.

Posted by & filed under Humor, Random Thoughts.

<Ashley> Kayla came up with something so funny… you know when you take photos from up above you, they’re ‘myspace’ photos? well, she reckons that when you take photos with the camera looking up at you, they’re ‘Facebook’ photos xD

Posted by & filed under Misc, Random Thoughts.

So, I thought I might like to tell you all that I am working the life of the working man now. I recently (on Thursday) started work at my first real full-time job at Digital Pacific.

It seems like a pretty good place, and even though it means moving from my current place in residence, which is Newcastle to Sydney, around two and a half hours away; working there really is worth it. All the people there are great, and my job is lots of fun.

So, I have not really been working on many projects for quiet some time, so today is actually the first day that I started working on some of my new upcomming releases.

Just can’t wait to find a place to live in Sydney :)