Right, if you are up for it, we could schedule like and a hour call and I could try to help you out
On Tue, Dec 17, 2019 at 9:05 PM James Dailey <jamespdai...@gmail.com> wrote: > Rohit, > > Are you able to get to the place in the instructions where I'm at? Do you > use IntelliJ? Or some other IDE? > > I do think that the docker approach is sensible for what you're trying to > do. At least that's my understanding... > > - James > > On Tue, Dec 17, 2019, 5:20 PM Courage Angeh <couragean...@gmail.com> > wrote: > >> Happy to help.☺ >> >> On Tue, Dec 17, 2019 at 8:18 PM James Dailey <jamespdai...@gmail.com> >> wrote: >> >>> Courage - >>> >>> Thanks. I ran: >>> $brew upgrade docker >>> thinking that perhaps my version of docker was not compatible with the >>> newer docker-compose . >>> >>> That gave me a newer version: >>> >>> $ docker --version >>> >>> Docker version 19.03.5, build 633a0ea >>> >>> >>> >>> Which allows the command >>> $ docker-compose up -d >>> to be fired off successfully. >>> >>> second time running it as a "test"/ >>> >>> $ docker-compose up -d >>> >>> WARNING: Some services (activemq, cassandra, eureka) use the 'deploy' >>> key, which will be ignored. Compose does not support 'deploy' configuration >>> - use `docker stack deploy` to deploy to a swarm. >>> >>> postgres is up-to-date >>> >>> eureka is up-to-date >>> >>> cassandra is up-to-date >>> >>> activemq is up-to-date >>> >>> ?? >>> >>> Thanks, >>> @jdailey67 >>> >>> >>> On Tue, Dec 17, 2019 at 4:55 PM James Dailey <jamespdai...@gmail.com> >>> wrote: >>> >>>> Courage - >>>> >>>> I can do $docker-machine start default >>>> and all the functionality works. >>>> e.g. $ docker run busybox echo hello world >>>> and $ docker run -d -p 8000:80 nginx >>>> >>>> $ docker --version >>>> >>>> Docker version 19.03.4, build 9013bf5 >>>> >>>> >>>> $ docker-compose --version >>>> >>>> docker-compose version 1.25.0, build unknown >>>> >>>> >>>> >>>> So, I agree it is probably a pre-requisite issue, but not sure what >>>> that might be. >>>> >>>> >>>> @jdailey67 >>>> >>>> >>>> On Tue, Dec 17, 2019 at 4:31 PM Courage Angeh <couragean...@gmail.com> >>>> wrote: >>>> >>>>> Hi James, >>>>> >>>>> That’s still an issue related to Docker. >>>>> Docker compose works with Docker. You installed Docker compose but you >>>>> probably didn’t install Docker. >>>>> You can follow this guide to install Docker, >>>>> https://docs.docker.com/docker-for-mac/install/ >>>>> >>>>> Best regards, >>>>> Courage. >>>>> >>>>> On Tue, Dec 17, 2019 at 7:16 PM James Dailey <jamespdai...@gmail.com> >>>>> wrote: >>>>> >>>>>> Rohit - >>>>>> >>>>>> Thanks for your patience with this. >>>>>> >>>>>> @Juhan - I also tried your instructions and am a bit stuck. >>>>>> >>>>>> First, I got an error "Abort trap: 6" >>>>>> on $ docker-compose up -d >>>>>> >>>>>> I figured this to be a docker-compose installation issue, so tried >>>>>> >>>>>> $ brew reinstall -s docker-compose >>>>>> >>>>>> >>>>>> which allowed me to check that docker-compose is working, >>>>>> >>>>>> i.e. $ docker-compose --help >>>>>> >>>>>> gives the right response >>>>>> >>>>>> So, then, >>>>>> $ docker-compose up -d >>>>>> >>>>>> WARNING: Some services (activemq, cassandra, eureka) use the >>>>>> 'deploy' key, which will be ignored. Compose does not support 'deploy' >>>>>> configuration - use `docker stack deploy` to deploy to a swarm. >>>>>> >>>>>> ERROR: Couldn't connect to Docker daemon - you might need to run >>>>>> `docker-machine start default`. >>>>>> >>>>>> I am not sure what to try next to get this working. >>>>>> >>>>>> Thanks, >>>>>> @jdailey67 >>>>>> >>>>>> >>>>>> On Tue, Dec 17, 2019 at 9:32 AM Rohit Jain <rohit.j...@esgyn.com> >>>>>> wrote: >>>>>> >>>>>>> When I ran into a dead end with the errors after following the build >>>>>>> recommendations >>>>>>> https://cwiki.apache.org/confluence/display/FINERACT/How+To+Build+Apache+Fineract+CN >>>>>>> that >>>>>>> no one could help resolve, Juhan recommended his recipe >>>>>>> https://cwiki.apache.org/confluence/display/FINERACT/Bare+minimum+to+run+Fineract-CN+locally. >>>>>>> I followed that and have run into another roadblock. Hope someone >>>>>>> can help me with this, since I have not been able to get a working set >>>>>>> of >>>>>>> Finearact, in order to proceed to the next step. Or perhaps suggest yet >>>>>>> another alternative. >>>>>>> >>>>>>> >>>>>>> >>>>>>> Thanks! >>>>>>> >>>>>>> Rohit >>>>>>> >>>>>>> >>>>>>> >>>>>>> *From:* Juhan Aasaru <aas...@gmail.com> >>>>>>> *Sent:* Thursday, December 12, 2019 1:57 AM >>>>>>> *To:* Dev <dev@fineract.apache.org> >>>>>>> *Cc:* Ebenezer Graham <egraha...@alustudent.com> >>>>>>> *Subject:* Re: help jump starting? >>>>>>> >>>>>>> >>>>>>> >>>>>>> Hi! >>>>>>> >>>>>>> I cannot help you with the error you got but instead I will propose >>>>>>> a better solution. >>>>>>> >>>>>>> Right now you have been trying to set up Fineract-CN using demo >>>>>>> server which is more >>>>>>> >>>>>>> suitable to demonstrate the solution. This doesn't help you much >>>>>>> with getting started with developmentent >>>>>>> >>>>>>> as you cannot run individual micro services directly from your IDE. >>>>>>> >>>>>>> >>>>>>> >>>>>>> Instead I wrote a new tutorial how to set up bare minimum of >>>>>>> Fineract-CN: >>>>>>> >>>>>>> >>>>>>> https://cwiki.apache.org/confluence/display/FINERACT/Bare+minimum+to+run+Fineract-CN+locally >>>>>>> >>>>>>> This only sets up Provisioner and Identity micro services >>>>>>> >>>>>>> but you should get them running with your IDE (I use IntelliJ) so >>>>>>> you can jump into development >>>>>>> >>>>>>> and maybe compose a proof-of-concept with only these two micro >>>>>>> services. >>>>>>> >>>>>>> >>>>>>> >>>>>>> It is possible to add other micro services step-by-step afterwards >>>>>>> but my instructions don't cover that. >>>>>>> >>>>>>> In the end of the tutorial I also propose starting up Fims Web App >>>>>>> (UI of fineract-cn) but >>>>>>> >>>>>>> currently I didn't manage to do complete it myself. >>>>>>> >>>>>>> >>>>>>> >>>>>>> Anyway I propose to test my instructions as you should get up to >>>>>>> speed quickly. >>>>>>> >>>>>>> Anyone else is welcome to give feedback as well (or fix directly in >>>>>>> Confluence). >>>>>>> >>>>>>> >>>>>>> >>>>>>> Kind regards >>>>>>> >>>>>>> Juhan >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> Kontakt Rohit Jain (<rohit.j...@esgyn.com>) kirjutas kuupäeval K, >>>>>>> 11. detsember 2019 kell 19:31: >>>>>>> >>>>>>> Hi guys, >>>>>>> >>>>>>> >>>>>>> >>>>>>> I am stuck. Any pointers? Advice on a different approach? >>>>>>> >>>>>>> >>>>>>> >>>>>>> Rohit >>>>>>> >>>>>>> >>>>>>> >>>>>>> *From:* Rohit Jain >>>>>>> *Sent:* Monday, December 9, 2019 1:11 PM >>>>>>> *To:* dev@fineract.apache.org >>>>>>> *Cc:* Ebenezer Graham <egraha...@alustudent.com> >>>>>>> *Subject:* RE: help jump starting? >>>>>>> >>>>>>> >>>>>>> >>>>>>> That is what I thought. I think it was the size of the log: >>>>>>> ezmlm-reject: >>>>>>> fatal: Sorry, I don't accept messages larger than 1000000 bytes (#5.2.3) >>>>>>> >>>>>>> >>>>>>> >>>>>>> I have attached a zipped version. >>>>>>> >>>>>>> >>>>>>> >>>>>>> *From:* Awasum Yannick <awa...@apache.org> >>>>>>> *Sent:* Monday, December 9, 2019 1:03 PM >>>>>>> *To:* Dev <dev@fineract.apache.org> >>>>>>> *Cc:* Ebenezer Graham <egraha...@alustudent.com> >>>>>>> *Subject:* Re: help jump starting? >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Mon, Dec 9, 2019 at 6:32 PM Rohit Jain <rohit.j...@esgyn.com> >>>>>>> wrote: >>>>>>> >>>>>>> This message got rejected because I had an attached log file. I am >>>>>>> resending it without the log file. If there is a way to share the log >>>>>>> file, let me know. … >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> This list supports attachments. I dont know why you are having >>>>>>> problems. Just paste the Logs in the body of the email. >>>>>>> >>>>>>> >>>>>>> >>>>>>> Hi guys, >>>>>>> >>>>>>> >>>>>>> >>>>>>> I appreciate your guidance. However, let me share some >>>>>>> considerations and perhaps you can guide me better: >>>>>>> >>>>>>> - My focus is to see if we can demonstrate Fineract working with >>>>>>> Apache Trafodion instead of PostgreSQL + Cassandra. Initially the >>>>>>> focus >>>>>>> will be to switch PostgreSQL with Trafodion using the EclipseLink/JPA >>>>>>> infrastructure that has been put in place. >>>>>>> - To that end I am not interested in exploring all the intricate >>>>>>> details of the components or tools used by Fineract, since that >>>>>>> would take >>>>>>> me a lot of time and effort with little value, when you experts are >>>>>>> already >>>>>>> taking care of that part. That is, I have no idea what npm does or >>>>>>> why. I >>>>>>> am just following the directions on the build web page so I can get >>>>>>> it >>>>>>> running with PostgreSQL + Cassandra, then see how I can switch >>>>>>> Fineract to >>>>>>> use Trafodion, and then run the same with Trafodion to hopefully get >>>>>>> the >>>>>>> same results. >>>>>>> - I am doing this on a Windows 10 Pro OS x64 PC Intel i7-6500U >>>>>>> 2.50 GHz CPU, 2592 MHz, 2 Core(s), 4 Logical Processor(s) with 16 GB >>>>>>> of >>>>>>> physical memory and total virtual memory of 35 GB with around 22.5 GB >>>>>>> available. If I need to start the process again on some other >>>>>>> system/OS I >>>>>>> can, but from what I have been told so far, it should work on this >>>>>>> laptop. >>>>>>> - I ignored putting the *fineract-cn-fims-web-app* directory in >>>>>>> a *integration-tests* directory since in the past the host >>>>>>> directory path has been irrelevant for most purposes. But I guess I >>>>>>> was >>>>>>> wrong in this case. So, I changed that and built Fineract CN again >>>>>>> successfully, i.e. completed Step 2 recommended option 1. But when >>>>>>> I ran >>>>>>> Step 3 Option B – with persistence Command I, I am still getting >>>>>>> errors. I >>>>>>> don’t have the log from the beginning (my bad) but have most of the >>>>>>> relevant parts of the log attached, if that gives any pointers as to >>>>>>> what >>>>>>> the issue may be. >>>>>>> - If I should follow a different recipe to do what I need to do >>>>>>> in order to move forward, I am more than willing. I don’t know if a >>>>>>> docker >>>>>>> build is what will work for what I want to do, since my intent is >>>>>>> not to >>>>>>> just demo / use the product, but rather to get it running with tests >>>>>>> as it >>>>>>> currently stands and then switch to Trafodion with whatever effort >>>>>>> that >>>>>>> requires (potentially source or configuration changes), and then run >>>>>>> the >>>>>>> tests again to prove that it all works just the same. Later I would >>>>>>> like >>>>>>> to run some performance tests at scale to demonstrate where >>>>>>> Trafodion can >>>>>>> really make a difference for Fineract customers needing >>>>>>> high-scalability. >>>>>>> But I need to get it all working first. >>>>>>> >>>>>>> >>>>>>> >>>>>>> So, any guidance would greatly be appreciated. Thanks for your >>>>>>> patience and all your help! >>>>>>> >>>>>>> Rohit >>>>>>> >>>>>>> >>>>>>> >>>>>>> *From:* Awasum Yannick <awa...@apache.org> >>>>>>> *Sent:* Friday, December 6, 2019 2:18 AM >>>>>>> *To:* Dev <dev@fineract.apache.org> >>>>>>> *Cc:* Rohit Jain <rohit.j...@esgyn.com>; Ebenezer Graham < >>>>>>> egraha...@alustudent.com> >>>>>>> *Subject:* Re: help jump starting? >>>>>>> >>>>>>> >>>>>>> >>>>>>> Hi Juhan, >>>>>>> >>>>>>> >>>>>>> >>>>>>> I think you are right and it is time to rewrite the build >>>>>>> instructions for Fineract CN to adopt the Docker approach. Anyone >>>>>>> interested in doing this work? >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Fri, Dec 6, 2019 at 7:50 AM Juhan Aasaru <aas...@gmail.com> >>>>>>> wrote: >>>>>>> >>>>>>> Hi! >>>>>>> >>>>>>> The problem with npm is caused by the fact that you have not cd into >>>>>>> correct directory. >>>>>>> >>>>>>> The instructions under step #4 have this: cd into >>>>>>> ‘integration-tests/fineract-cn-fims-web-app' >>>>>>> >>>>>>> >>>>>>> >>>>>>> Anyway, we can all agree that the build instructions of Fineract-CN >>>>>>> are almost impossible to properly follow. >>>>>>> >>>>>>> And actually there is no need to use demo server. Demo server sets >>>>>>> up the system but >>>>>>> >>>>>>> its quite untransparent and difficult to understand for a newcomer. >>>>>>> Don't get me wrong, it >>>>>>> >>>>>>> is a great resource afterwards when learning how to call micro >>>>>>> services from code and >>>>>>> >>>>>>> how to use listeners. >>>>>>> >>>>>>> >>>>>>> >>>>>>> To set up the system for the first time I recommend to use >>>>>>> Docker-Compose with Postman instead: >>>>>>> >>>>>>> >>>>>>> https://github.com/apache/fineract-cn-docker-compose#2-deploy-fineract-manually-using-postman >>>>>>> >>>>>>> This is all tested several times and should work like a charm. >>>>>>> >>>>>>> >>>>>>> >>>>>>> The following is an idea of mine that is not anywhere documented yet >>>>>>> due to lack of time. >>>>>>> >>>>>>> Based on Docker-Compose process we could also create instructions >>>>>>> where micro services are not >>>>>>> >>>>>>> started within Docker but they are started directly (run from IDE or >>>>>>> java -jar ...). >>>>>>> >>>>>>> >>>>>>> >>>>>>> Docker-Compose instructions include creating .env file with common >>>>>>> properties (and RSA keys). >>>>>>> >>>>>>> To run micro services directly basically a similar file should be >>>>>>> created, let's call it applciation-locally.yml >>>>>>> >>>>>>> and then when starting apps this file should be passed as flag: >>>>>>> >>>>>>> --spring.config.location=../application-locally.yml >>>>>>> >>>>>>> >>>>>>> >>>>>>> Provisioning is be done with Postman (see instructions at >>>>>>> fineract-cn-docker-compose) >>>>>>> >>>>>>> - this way one understands better what steps are taking place >>>>>>> during provisioning. >>>>>>> >>>>>>> >>>>>>> >>>>>>> Kind regards >>>>>>> >>>>>>> Juhan >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> Kontakt Awasum Yannick (<yannickawa...@gmail.com>) kirjutas >>>>>>> kuupäeval R, 6. detsember 2019 kell 04:35: >>>>>>> >>>>>>> Why are you running npm (x) on a non node, non js repo (demo-server) >>>>>>> ? >>>>>>> >>>>>>> >>>>>>> >>>>>>> The timeout might be showing a lack of memory problem. What is the >>>>>>> capacity of your machine? >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Thu, Dec 5, 2019 at 9:40 PM Rohit Jain <rohit.j...@esgyn.com> >>>>>>> wrote: >>>>>>> >>>>>>> Thanks guys! >>>>>>> >>>>>>> >>>>>>> >>>>>>> I think I got off the track right at the beginning of *Step 3: >>>>>>> Orchestrate Microservices Using The Demo-server*. It said “… >>>>>>> *consider* manually orchestrating …”. I thought I *needed to* go >>>>>>> to https://github.com/vishwasbabu/ProvisioningFineractCN. That is >>>>>>> where it says start ActiveMQ. Which is why I did. I abandoned that >>>>>>> effort >>>>>>> when I realized that “consider” meant optional, and I did not really >>>>>>> need >>>>>>> to do that, since that whole key generation was getting a bit >>>>>>> complicated >>>>>>> on Windows 10. But then ActiveMQ was still running when I proceeded >>>>>>> with >>>>>>> the rest of the instructions to build. My bad! >>>>>>> >>>>>>> Because I had started ActiveMQ, initially demo-server immediately >>>>>>> complained about not being able to use port 61616. In fact, the >>>>>>> instructions say that this port should not be in use before starting >>>>>>> demo-server. I guess I did not pay attention to that part until I got >>>>>>> that >>>>>>> error. I then stopped ActiveMQ, changed the port 61616 it was using, to >>>>>>> 61615, and restarted it (doh!). Demo-server then ran for a long time. >>>>>>> But >>>>>>> then it gave me a slew of *connection refused* errors for port >>>>>>> 61616, even though ActiveMQ was not using it, and *not that the >>>>>>> port was being used*. >>>>>>> >>>>>>> >>>>>>> >>>>>>> Regardless, I stopped ActiveMQ and this time ran with Command II in >>>>>>> the documentation. I did not run into the connection refused error! >>>>>>> >>>>>>> This time I got some [DicoverClient-*n*] errors that >>>>>>> c.n.discovery.TimedSupervisorTask >>>>>>> – task supervisor timed out >>>>>>> >>>>>>> >>>>>>> >>>>>>> But demo-server kept going after those timeouts and has now been >>>>>>> running for 3 hours with no message "INFO >>>>>>> o.e.jetty.server.AbstractConnector - >>>>>>> StoppedServerConnector@1bdb0376{HTTP/1.1,[http/1.1]}" written to >>>>>>> any of the logs as yet. I guess I should have direct standard out to a >>>>>>> log >>>>>>> since it does not seem to be capturing everything in the logs and I >>>>>>> might >>>>>>> have just missed that message. >>>>>>> >>>>>>> >>>>>>> >>>>>>> I decided to proceed to step 4 but I get the following when I run >>>>>>> npm i … >>>>>>> >>>>>>> c:\Apps\fineract-cn-demo-server>npm i >>>>>>> >>>>>>> npm WARN saveError ENOENT: no such file or directory, open >>>>>>> 'c:\Apps\fineract-cn-demo-server\package.json' >>>>>>> >>>>>>> npm notice created a lockfile as package-lock.json. You should >>>>>>> commit this file. >>>>>>> >>>>>>> npm WARN enoent ENOENT: no such file or directory, open >>>>>>> 'c:\Apps\fineract-cn-demo-server\package.json' >>>>>>> >>>>>>> npm WARN fineract-cn-demo-server No description >>>>>>> >>>>>>> npm WARN fineract-cn-demo-server No repository field. >>>>>>> >>>>>>> npm WARN fineract-cn-demo-server No README data >>>>>>> >>>>>>> npm WARN fineract-cn-demo-server No license field. >>>>>>> >>>>>>> >>>>>>> >>>>>>> up to date in 0.843s >>>>>>> >>>>>>> found 0 vulnerabilities >>>>>>> >>>>>>> >>>>>>> >>>>>>> c:\Apps\fineract-cn-demo-server>npm run dev >>>>>>> >>>>>>> npm ERR! code ENOENT >>>>>>> >>>>>>> npm ERR! syscall open >>>>>>> >>>>>>> npm ERR! path c:\Apps\fineract-cn-demo-server\package.json >>>>>>> >>>>>>> npm ERR! errno -4058 >>>>>>> >>>>>>> npm ERR! enoent ENOENT: no such file or directory, open >>>>>>> 'c:\Apps\fineract-cn-demo-server\package.json' >>>>>>> >>>>>>> npm ERR! enoent This is related to npm not being able to find a file. >>>>>>> >>>>>>> npm ERR! enoent >>>>>>> >>>>>>> >>>>>>> >>>>>>> There us a package-lock.json but no package.json. >>>>>>> >>>>>>> >>>>>>> >>>>>>> *From:* Ebenezer Graham <ebenezergraha...@gmail.com> >>>>>>> *Sent:* Thursday, December 5, 2019 7:39 AM >>>>>>> *To:* Awasum Yannick <yannickawa...@gmail.com> >>>>>>> *Cc:* dev@fineract.apache.org; Ebenezer Graham < >>>>>>> egraha...@alustudent.com> >>>>>>> *Subject:* Re: help jump starting? >>>>>>> >>>>>>> >>>>>>> >>>>>>> Thanks Awasum for the response. I think that's the issue too >>>>>>> >>>>>>> >>>>>>> >>>>>>> @Rohit, it's not necessary to configure a standalone ActiveMQ when >>>>>>> running the demo-server. This library ( >>>>>>> https://github.com/apache/fineract-cn-command) helps to set up an >>>>>>> embedded broker. >>>>>>> >>>>>>> >>>>>>> >>>>>>> Also, what is the state of this issue >>>>>>> https://github.com/flyway/flyway/issues/2103 >>>>>>> >>>>>>> >>>>>>> >>>>>>> Warm regards. >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Thu, Dec 5, 2019 at 11:07 AM Awasum Yannick < >>>>>>> yannickawa...@gmail.com> wrote: >>>>>>> >>>>>>> Hi >>>>>>> >>>>>>> >>>>>>> >>>>>>> Demo server at times runs with an embedded activemq and other data >>>>>>> stores. So if you already have an activemq installed on your host, then >>>>>>> thats what is causing the port in use exception. >>>>>>> >>>>>>> >>>>>>> >>>>>>> Hope this helps. >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Wed, Dec 4, 2019, 23:06 Rohit Jain <rohit.j...@esgyn.com> wrote: >>>>>>> >>>>>>> Hi Ebenezer, >>>>>>> >>>>>>> >>>>>>> >>>>>>> A thread by the same subject line was initiated by my colleague, >>>>>>> Eric Owhadi, on 06 Jun, 20:51. He ran into an issue: >>>>>>> >>>>>>> Could not connect to broker URL: tcp://localhost:61616. Reason: >>>>>>> java.net.ConnectException: Connection refused >>>>>>> >>>>>>> >>>>>>> >>>>>>> It so happens that 4 months later I have run into the exact same >>>>>>> issue. Except that I am running everything on my Windows 10 laptop. >>>>>>> Also, >>>>>>> I installed and ran ActiveMQ on my laptop. In fact, the demo server >>>>>>> got an >>>>>>> error initially since it found that port 61616 was being used. So, I >>>>>>> modified the activemq.xml file to change that port to avoid the >>>>>>> conflict. >>>>>>> Then the demo server started all the application services, and then at >>>>>>> the >>>>>>> end ran into the error above. >>>>>>> >>>>>>> >>>>>>> >>>>>>> You responded to Eric and said that you would provide a resolution >>>>>>> to this problem. Don’t know if you have a resolution that I can use to >>>>>>> move forward. The Demo server created the appropriate databases and >>>>>>> keyspaces in PostgreSQL and Cassandra respectively. >>>>>>> >>>>>>> >>>>>>> >>>>>>> Rohit >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> >>>>>>> *Best Regards,* >>>>>>> >>>>>>> *Ebenezer Graham* >>>>>>> >>>>>>> *BSc (Hons) Computing* >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> GitHub <https://ebenezergraham.me> | LinkedIn >>>>>>> <https://www.linkedin.com/in/ebenezer-graham/> | Personal Website >>>>>>> <https://ebenezergraham.me> >>>>>>> >>>>>>> skype: >>>>>>> >>>>>>> ebenezer.graham >>>>>>> >>>>>>> | Phone: >>>>>>> >>>>>>> +230 5840 9206 <+230%205840%209206> >>>>>>> >>>>>>> >>>>>>> >>>>>>> *“Talk is cheap, show me the Code” *- *Linus Torvalds* >>>>>>> >>>>>>>