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 <[email protected]> wrote:

> Happy to help.☺
>
> On Tue, Dec 17, 2019 at 8:18 PM James Dailey <[email protected]>
> 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 <[email protected]>
>> 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 <[email protected]>
>>> 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 <[email protected]>
>>>> 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 <[email protected]>
>>>>> 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 <[email protected]>
>>>>>> *Sent:* Thursday, December 12, 2019 1:57 AM
>>>>>> *To:* Dev <[email protected]>
>>>>>> *Cc:* Ebenezer Graham <[email protected]>
>>>>>> *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 (<[email protected]>) 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:* [email protected]
>>>>>> *Cc:* Ebenezer Graham <[email protected]>
>>>>>> *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 <[email protected]>
>>>>>> *Sent:* Monday, December 9, 2019 1:03 PM
>>>>>> *To:* Dev <[email protected]>
>>>>>> *Cc:* Ebenezer Graham <[email protected]>
>>>>>> *Subject:* Re: help jump starting?
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Mon, Dec 9, 2019 at 6:32 PM Rohit Jain <[email protected]>
>>>>>> 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 <[email protected]>
>>>>>> *Sent:* Friday, December 6, 2019 2:18 AM
>>>>>> *To:* Dev <[email protected]>
>>>>>> *Cc:* Rohit Jain <[email protected]>; Ebenezer Graham <
>>>>>> [email protected]>
>>>>>> *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 <[email protected]> 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 (<[email protected]>) 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 <[email protected]>
>>>>>> 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 <[email protected]>
>>>>>> *Sent:* Thursday, December 5, 2019 7:39 AM
>>>>>> *To:* Awasum Yannick <[email protected]>
>>>>>> *Cc:* [email protected]; Ebenezer Graham <
>>>>>> [email protected]>
>>>>>> *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 <
>>>>>> [email protected]> 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 <[email protected]> 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*
>>>>>>
>>>>>>

Reply via email to