Thinking aloud about project at hand

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
17 messages Options
Reply | Threaded
Open this post in threaded view
|

Thinking aloud about project at hand

eftomi
Dear all,

I'm thinking about implementing a software solution in Pharo (as one of the candidate environments), it's a project that I'm dealing with professionally. The goal is to develop a financial planning/simulation application on the country level, which is at present developed as a set of interrelated Excel spreadsheets. The requirement is that the solution should be more "manageable", resilient and straightforward than Excel permits, that it should present a workflow to the user - i.e. , that the tasks the user should do are suggested through the GUI.

The majority of the data is in a form of a time series (for instance: GDP for a series of years). There are many variables in the model which shoud be calculated from other variables, year by year. There are also lagged variables (the value for the current year depends from the value of previous year), and running averages. There are also some variables which are not time series (parameters). As a part of GUI, there is a need to present the results as diagrams, too (scatterplots, line charts), otherwise tables are the output.

I found Pharo to be a very elegant language and environment, with version 8.0 it became pretty stable, however I don't have any experiences in building software solutions of this type in Smalltalk. In other words, I'd like to be more confident in setting the architecture, both in the sense of the model content (variables interrelation) and the architecture of classes. Besides, for the calculated variables I'd like to have a relatively simple syntax to define them (like 'GDPpC <- GDP / Population').

My thoughts and questions:
- for easier maintenance I'd like to separate the data from the code - so the question is what would be the best way to implement persistence (another Pharo image  - with what?, some relational database, XML/JSON, flat files ...)
- I wonder what would be the best "architecture" of classes - so, we have a lot of aggregate variables like GDP and population, which can be grouped at least according to the stage in the planning workflow. There are also resulting (calculated) variables (e.g. GDP per capita). On the other hand, since this is a planning software, it's a kind of simulation, where we have a "data warehouse", experiments and results
- As a core packages I would use Spec2, Roassal, and PolyMath. 

I'm just thinking aloud, and would greatly appreciate any thoughts from experienced Pharoers  :-)

Best wishes,
Tomaz
Reply | Threaded
Open this post in threaded view
|

Re: Thinking aloud about project at hand

HilaireFernandes
Hi,

No doubt Pharo will fit the task. I developed a financial application
for mortgages debt consolidation where the sources of data were numerous.

With Pharo you will build a model with classes representing each part of
the domain of your data set. With Tests you will consolidate your model,
important when you change your model it will ensure your computations
are still valid. I use it a lot in mortgage, debt ratio and debt
consolidation calculus.

 From your description, it seems your application will be mono-user. If
so any text file to keep the data will be ok: xml, json, csv. But sqlite
could be a very nice option too, I think this is what I will use.

I think you will enjoy using Pharo to write your app.

Hilaire

Le 09/04/2020 à 21:12, Tomaž Turk a écrit :
> I'm thinking about implementing a software solution in Pharo (as one
> of the candidate environments), it's a project that I'm dealing with
> professionally. The goal is to develop a financial planning/simulation
> application on the country level, which is at present developed as a
> set of interrelated Excel spreadsheets. The requirement is that the
> solution should be more "manageable", resilient and straightforward
> than Excel permits, that it should present a workflow to the user -
> i.e. , that the tasks the user should do are suggested through the GUI.
>
--
Dr. Geo
http://drgeo.eu



Reply | Threaded
Open this post in threaded view
|

Re: Thinking aloud about project at hand

tesonep@gmail.com
In reply to this post by eftomi
Hi Tomaz,

From the comments about the requirements you do I suggest:

- For data storage, my recommendation goes depending on two factors:
1)Installation complexity, 2) volume of data. These are two variables
that will be against one and the other. I will recommend to use
MongoDB + Voyage, that goes very well. It grows excellent with the
amount of data, it has really cool integration with Pharo and Voyage
is an excellent mapping tool; also it is a mature solution and it has
a lot of support for back-up schemes and solutions. Using MongoDB
complicates the installation process, so if you have the idea of a
easy installable application maybe SQLlite is a good alternative.

- I think using Spec2 + GTK + Roassal3 + Polymath is a good idea.
Check that Spec2 and Roassal3 are still under heavy development. They
are getting much better, but of course, it will take some time to
stabilize; but both of them are progressing very fast and they are
already quite stable.

- For developing DSL and interactive programming for non-programmers
users, Pharo is ideal. It presents a lot of tools to easily develop
DSL and the UI to make them work excellent. The idea of live
manipulation of objects and inspection of all the instances can be
easily added to a DSL.

Thanks for your attention!

On Thu, Apr 9, 2020 at 9:13 PM Tomaž Turk <[hidden email]> wrote:

>
> Dear all,
>
> I'm thinking about implementing a software solution in Pharo (as one of the candidate environments), it's a project that I'm dealing with professionally. The goal is to develop a financial planning/simulation application on the country level, which is at present developed as a set of interrelated Excel spreadsheets. The requirement is that the solution should be more "manageable", resilient and straightforward than Excel permits, that it should present a workflow to the user - i.e. , that the tasks the user should do are suggested through the GUI.
>
> The majority of the data is in a form of a time series (for instance: GDP for a series of years). There are many variables in the model which shoud be calculated from other variables, year by year. There are also lagged variables (the value for the current year depends from the value of previous year), and running averages. There are also some variables which are not time series (parameters). As a part of GUI, there is a need to present the results as diagrams, too (scatterplots, line charts), otherwise tables are the output.
>
> I found Pharo to be a very elegant language and environment, with version 8.0 it became pretty stable, however I don't have any experiences in building software solutions of this type in Smalltalk. In other words, I'd like to be more confident in setting the architecture, both in the sense of the model content (variables interrelation) and the architecture of classes. Besides, for the calculated variables I'd like to have a relatively simple syntax to define them (like 'GDPpC <- GDP / Population').
>
> My thoughts and questions:
> - for easier maintenance I'd like to separate the data from the code - so the question is what would be the best way to implement persistence (another Pharo image  - with what?, some relational database, XML/JSON, flat files ...)
> - I wonder what would be the best "architecture" of classes - so, we have a lot of aggregate variables like GDP and population, which can be grouped at least according to the stage in the planning workflow. There are also resulting (calculated) variables (e.g. GDP per capita). On the other hand, since this is a planning software, it's a kind of simulation, where we have a "data warehouse", experiments and results
> - As a core packages I would use Spec2, Roassal, and PolyMath.
>
> I'm just thinking aloud, and would greatly appreciate any thoughts from experienced Pharoers  :-)
>
> Best wishes,
> Tomaz



--
Pablo Tesone.
[hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Thinking aloud about project at hand

Tim Mackinnon
Wasn’t there a recent financial app in Pharo that was made open source... there might be many ideas in it, and possibly a starting point.

It’s in the success pages of pharo: Quuve, there are posts from Mariano about what tech they used too

Tim

> On 10 Apr 2020, at 09:13, "[hidden email]" <[hidden email]> wrote:
>
> Hi Tomaz,
>
> From the comments about the requirements you do I suggest:
>
> - For data storage, my recommendation goes depending on two factors:
> 1)Installation complexity, 2) volume of data. These are two variables
> that will be against one and the other. I will recommend to use
> MongoDB + Voyage, that goes very well. It grows excellent with the
> amount of data, it has really cool integration with Pharo and Voyage
> is an excellent mapping tool; also it is a mature solution and it has
> a lot of support for back-up schemes and solutions. Using MongoDB
> complicates the installation process, so if you have the idea of a
> easy installable application maybe SQLlite is a good alternative.
>
> - I think using Spec2 + GTK + Roassal3 + Polymath is a good idea.
> Check that Spec2 and Roassal3 are still under heavy development. They
> are getting much better, but of course, it will take some time to
> stabilize; but both of them are progressing very fast and they are
> already quite stable.
>
> - For developing DSL and interactive programming for non-programmers
> users, Pharo is ideal. It presents a lot of tools to easily develop
> DSL and the UI to make them work excellent. The idea of live
> manipulation of objects and inspection of all the instances can be
> easily added to a DSL.
>
> Thanks for your attention!
>
>> On Thu, Apr 9, 2020 at 9:13 PM Tomaž Turk <[hidden email]> wrote:
>>
>> Dear all,
>>
>> I'm thinking about implementing a software solution in Pharo (as one of the candidate environments), it's a project that I'm dealing with professionally. The goal is to develop a financial planning/simulation application on the country level, which is at present developed as a set of interrelated Excel spreadsheets. The requirement is that the solution should be more "manageable", resilient and straightforward than Excel permits, that it should present a workflow to the user - i.e. , that the tasks the user should do are suggested through the GUI.
>>
>> The majority of the data is in a form of a time series (for instance: GDP for a series of years). There are many variables in the model which shoud be calculated from other variables, year by year. There are also lagged variables (the value for the current year depends from the value of previous year), and running averages. There are also some variables which are not time series (parameters). As a part of GUI, there is a need to present the results as diagrams, too (scatterplots, line charts), otherwise tables are the output.
>>
>> I found Pharo to be a very elegant language and environment, with version 8.0 it became pretty stable, however I don't have any experiences in building software solutions of this type in Smalltalk. In other words, I'd like to be more confident in setting the architecture, both in the sense of the model content (variables interrelation) and the architecture of classes. Besides, for the calculated variables I'd like to have a relatively simple syntax to define them (like 'GDPpC <- GDP / Population').
>>
>> My thoughts and questions:
>> - for easier maintenance I'd like to separate the data from the code - so the question is what would be the best way to implement persistence (another Pharo image  - with what?, some relational database, XML/JSON, flat files ...)
>> - I wonder what would be the best "architecture" of classes - so, we have a lot of aggregate variables like GDP and population, which can be grouped at least according to the stage in the planning workflow. There are also resulting (calculated) variables (e.g. GDP per capita). On the other hand, since this is a planning software, it's a kind of simulation, where we have a "data warehouse", experiments and results
>> - As a core packages I would use Spec2, Roassal, and PolyMath.
>>
>> I'm just thinking aloud, and would greatly appreciate any thoughts from experienced Pharoers  :-)
>>
>> Best wishes,
>> Tomaz
>
>
>
> --
> Pablo Tesone.
> [hidden email]
>


Reply | Threaded
Open this post in threaded view
|

Re: Thinking aloud about project at hand

rko281
In reply to this post by tesonep@gmail.com
Hi Tomaz - since a couple of people have mentioned SQLite I’d like to suggest ReStore as an easy way to use this from Pharo:


ReStore lets you store your data in SQLite without needing to write any SQL, and offers an easy upgrade path to larger databases such as Postgres. Documentation (recently updated) is linked from the end of the Github readme.

Good luck with your application.

John Aspinall


On 10 Apr 2020, at 09:12, [hidden email] wrote:

Hi Tomaz,

From the comments about the requirements you do I suggest:

- For data storage, my recommendation goes depending on two factors:
1)Installation complexity, 2) volume of data. These are two variables
that will be against one and the other. I will recommend to use
MongoDB + Voyage, that goes very well. It grows excellent with the
amount of data, it has really cool integration with Pharo and Voyage
is an excellent mapping tool; also it is a mature solution and it has
a lot of support for back-up schemes and solutions. Using MongoDB
complicates the installation process, so if you have the idea of a
easy installable application maybe SQLlite is a good alternative.

- I think using Spec2 + GTK + Roassal3 + Polymath is a good idea.
Check that Spec2 and Roassal3 are still under heavy development. They
are getting much better, but of course, it will take some time to
stabilize; but both of them are progressing very fast and they are
already quite stable.

- For developing DSL and interactive programming for non-programmers
users, Pharo is ideal. It presents a lot of tools to easily develop
DSL and the UI to make them work excellent. The idea of live
manipulation of objects and inspection of all the instances can be
easily added to a DSL.

Thanks for your attention!

On Thu, Apr 9, 2020 at 9:13 PM Tomaž Turk <[hidden email]> wrote:

Dear all,

I'm thinking about implementing a software solution in Pharo (as one of the candidate environments), it's a project that I'm dealing with professionally. The goal is to develop a financial planning/simulation application on the country level, which is at present developed as a set of interrelated Excel spreadsheets. The requirement is that the solution should be more "manageable", resilient and straightforward than Excel permits, that it should present a workflow to the user - i.e. , that the tasks the user should do are suggested through the GUI.

The majority of the data is in a form of a time series (for instance: GDP for a series of years). There are many variables in the model which shoud be calculated from other variables, year by year. There are also lagged variables (the value for the current year depends from the value of previous year), and running averages. There are also some variables which are not time series (parameters). As a part of GUI, there is a need to present the results as diagrams, too (scatterplots, line charts), otherwise tables are the output.

I found Pharo to be a very elegant language and environment, with version 8.0 it became pretty stable, however I don't have any experiences in building software solutions of this type in Smalltalk. In other words, I'd like to be more confident in setting the architecture, both in the sense of the model content (variables interrelation) and the architecture of classes. Besides, for the calculated variables I'd like to have a relatively simple syntax to define them (like 'GDPpC <- GDP / Population').

My thoughts and questions:
- for easier maintenance I'd like to separate the data from the code - so the question is what would be the best way to implement persistence (another Pharo image  - with what?, some relational database, XML/JSON, flat files ...)
- I wonder what would be the best "architecture" of classes - so, we have a lot of aggregate variables like GDP and population, which can be grouped at least according to the stage in the planning workflow. There are also resulting (calculated) variables (e.g. GDP per capita). On the other hand, since this is a planning software, it's a kind of simulation, where we have a "data warehouse", experiments and results
- As a core packages I would use Spec2, Roassal, and PolyMath.

I'm just thinking aloud, and would greatly appreciate any thoughts from experienced Pharoers  :-)

Best wishes,
Tomaz



--
Pablo Tesone.
[hidden email]


Reply | Threaded
Open this post in threaded view
|

Re: Thinking aloud about project at hand

eftomi
Many thanks guys, you all gave me quite interesting suggestions. I'll explore most of them regarding the stability and "compactness" of the final solution as regards the deployment.  

I have one really silly question - when you create an app (with Spec2), how can you made it start automatically when the image starts, and avoid displaying the World? I browsed through many of Pharo books and documentation recently and cannot remember if this is mentioned anywhere.

Best wishes,
Tomaz
Reply | Threaded
Open this post in threaded view
|

Re: Thinking aloud about project at hand

HilaireFernandes
Take a look at the DrGeo example app, it shows how to do that  (link
bellow).

Hilaire

Le 11/04/2020 à 12:43, Tomaž Turk a écrit :
> I have one really silly question - when you create an app (with
> Spec2), how can you made it start automatically when the image starts,
> and avoid displaying the World? I browsed through many of Pharo books
> and documentation recently and cannot remember if this is mentioned
> anywhere.
>
--
Dr. Geo
http://drgeo.eu



Reply | Threaded
Open this post in threaded view
|

Re: Thinking aloud about project at hand

eftomi
> Take a look at the DrGeo example app, it shows how to do that  (link bellow).

> you hook in a startUpList: and shutDownList: of your main class. 

Great, I'll check it out.

> You can start with a simple Pharo image (look at the blog of Leon Ramon on activeRecord in Pharo). 
> So my suggestion is the following
> - start with what makes you the fastest and focus on your domain.

For persistence I'll start with the minimal effort - Fuel. At first glance it looks that it has everything that I need.

Thanks for all the tips, I'll report my experiences as I progress.

Best wishes,
Tomaz


Reply | Threaded
Open this post in threaded view
|

Re: Thinking aloud about project at hand

CyrilFerlicot


On Tue 14 Apr 2020 at 15:45, Tomaž Turk <[hidden email]> wrote:
> Take a look at the DrGeo example app, it shows how to do that  (link bellow).

> you hook in a startUpList: and shutDownList: of your main class. 

Hi, 

If you need to hook startup/shutdown actions, you can read this documentation: 



Great, I'll check it out.

> You can start with a simple Pharo image (look at the blog of Leon Ramon on activeRecord in Pharo). 
> So my suggestion is the following
> - start with what makes you the fastest and focus on your domain.

For persistence I'll start with the minimal effort - Fuel. At first glance it looks that it has everything that I need.

Thanks for all the tips, I'll report my experiences as I progress.

Best wishes,
Tomaz


--
Cyril Ferlicot
https://ferlicot.fr
Reply | Threaded
Open this post in threaded view
|

Re: Thinking aloud about project at hand

eftomi
> If you need to hook startup/shutdown actions, you can read this documentation: 
https://github.com/pharo-open-documentation/pharo-wiki/blob/master/General/SessionsManagement.md

Thanks! - How could I miss this document ...

Best wishes,
Tomaz
Reply | Threaded
Open this post in threaded view
|

Re: Thinking aloud about project at hand

eftomi
In reply to this post by eftomi
> Pay attention that Fuel can serialize a lot :) (including classes and more than you may not want) and it is binary. 
> So to start easy I usually use STON because I can see what I saved. 

OK - I counted on graph customization, but you are right. I'll see what's best.

Best wishes,
Tomaz
Reply | Threaded
Open this post in threaded view
|

Re: Thinking aloud about project at hand

Pharo Smalltalk Users mailing list
In reply to this post by Tim Mackinnon
Yes, See the overview video at youtube (https://www.youtube.com/watch?v=sraCv1VwJzQ&t=233s). It has a lot of support tools to grab time-series data from FRED or World Bank, even if you don't want to use the full web app. The framework for multi-user handles DB's and is lightweight in practice. If you think you will go web, to gemstone, or multi-users, there are advantages.

To use full app, the warnings are: 
  1. uses HighCharts for display, which you would need a developer license for - i guess, and I don't know configuration mess as Quuve last ran on Pharo 6.x 
  2. there is a little directory structure with a few start-up files you need to copy into place (under your root directory)
  3. Many powerful financial rules were made easiest to use via this full app, as there are "pattern methods" that expand (creating concrete methods) to allow access to FRED and WorldBank as if each series were coded as a method

To simply use some of the toolkit from the "FA" package, which are general "functional analyst" tools, not involving GUI stuff, nor requiring much app framework, you can do the following to get CME crude prices front-month (CL1). Looks like they provide full FRED data access... but ... I know we provided tools to go directly to FRED and WorldBank too - i'd have to relearn how! (Been a few years.)

|q |
q := FaQuandlDownloader new  "#initialize method has an authorizationToken based on Debri's old account. When using the full application, the runtime uses specs for these to be created, and those specs are stored in DB's, at app-level, site-level, or user-level, allowing users to have extended subscriptions (from base app). We no longer have subscriptions, only a base account - and we get in trouble if you draw too much data like this. Please create your own account and change #initialize method. "
dataSourceSpec: 'SCF/';
series: 'CL1' for: 'CME' withPeriodSuffix: 'FN';
yourself.
q fetch.
q answerAsTable "returns FaTableAccess which allows string-indexed lookups or numbered index"

... my memory is you can extract that data as a FaDatedSeries too... mmm... i'd have to look.

Good luck, let me know if you have questions.
-cam

--
last loading I did went something like this...
Metacello new
    configuration: 'Seaside3';
    repository: 'http://smalltalkhub.com/mc/Seaside/MetacelloConfigurations/main';
 version: '3.2.4';
 load: #('Core' 'Zinc-Seaside' 'Javascript' 'JQuery' 'JSON' 'Email');
    lock.
 
 
Gofer it
url: 'http://smalltalkhub.com/mc/Debris/Quuve/main'
username: monticelloUsername
password: monticelloPassword;
 package: 'ConfigurationOfQuuve';
load.
 
 
Metacello new
configuration: 'Quuve';
smalltalkhubUser: 'Debris' project: 'Quuve';
version: '1.9';
onLock: [ :ex | ex honor ];
load: #('Core' 'DPOFX' 'DebrisREST').
---


On Fri, Apr 10, 2020 at 4:57 AM Tim Mackinnon <[hidden email]> wrote:
Wasn’t there a recent financial app in Pharo that was made open source... there might be many ideas in it, and possibly a starting point.

It’s in the success pages of pharo: Quuve, there are posts from Mariano about what tech they used too

Tim

> On 10 Apr 2020, at 09:13, "[hidden email]" <[hidden email]> wrote:
>
> Hi Tomaz,
>
> From the comments about the requirements you do I suggest:
>
> - For data storage, my recommendation goes depending on two factors:
> 1)Installation complexity, 2) volume of data. These are two variables
> that will be against one and the other. I will recommend to use
> MongoDB + Voyage, that goes very well. It grows excellent with the
> amount of data, it has really cool integration with Pharo and Voyage
> is an excellent mapping tool; also it is a mature solution and it has
> a lot of support for back-up schemes and solutions. Using MongoDB
> complicates the installation process, so if you have the idea of a
> easy installable application maybe SQLlite is a good alternative.
>
> - I think using Spec2 + GTK + Roassal3 + Polymath is a good idea.
> Check that Spec2 and Roassal3 are still under heavy development. They
> are getting much better, but of course, it will take some time to
> stabilize; but both of them are progressing very fast and they are
> already quite stable.
>
> - For developing DSL and interactive programming for non-programmers
> users, Pharo is ideal. It presents a lot of tools to easily develop
> DSL and the UI to make them work excellent. The idea of live
> manipulation of objects and inspection of all the instances can be
> easily added to a DSL.
>
> Thanks for your attention!
>
>> On Thu, Apr 9, 2020 at 9:13 PM Tomaž Turk <[hidden email]> wrote:
>>
>> Dear all,
>>
>> I'm thinking about implementing a software solution in Pharo (as one of the candidate environments), it's a project that I'm dealing with professionally. The goal is to develop a financial planning/simulation application on the country level, which is at present developed as a set of interrelated Excel spreadsheets. The requirement is that the solution should be more "manageable", resilient and straightforward than Excel permits, that it should present a workflow to the user - i.e. , that the tasks the user should do are suggested through the GUI.
>>
>> The majority of the data is in a form of a time series (for instance: GDP for a series of years). There are many variables in the model which shoud be calculated from other variables, year by year. There are also lagged variables (the value for the current year depends from the value of previous year), and running averages. There are also some variables which are not time series (parameters). As a part of GUI, there is a need to present the results as diagrams, too (scatterplots, line charts), otherwise tables are the output.
>>
>> I found Pharo to be a very elegant language and environment, with version 8.0 it became pretty stable, however I don't have any experiences in building software solutions of this type in Smalltalk. In other words, I'd like to be more confident in setting the architecture, both in the sense of the model content (variables interrelation) and the architecture of classes. Besides, for the calculated variables I'd like to have a relatively simple syntax to define them (like 'GDPpC <- GDP / Population').
>>
>> My thoughts and questions:
>> - for easier maintenance I'd like to separate the data from the code - so the question is what would be the best way to implement persistence (another Pharo image  - with what?, some relational database, XML/JSON, flat files ..)
>> - I wonder what would be the best "architecture" of classes - so, we have a lot of aggregate variables like GDP and population, which can be grouped at least according to the stage in the planning workflow. There are also resulting (calculated) variables (e.g. GDP per capita). On the other hand, since this is a planning software, it's a kind of simulation, where we have a "data warehouse", experiments and results
>> - As a core packages I would use Spec2, Roassal, and PolyMath.
>>
>> I'm just thinking aloud, and would greatly appreciate any thoughts from experienced Pharoers  :-)
>>
>> Best wishes,
>> Tomaz
>
>
>
> --
> Pablo Tesone.
> [hidden email]
>


Reply | Threaded
Open this post in threaded view
|

Re: Thinking aloud about project at hand

Pharo Smalltalk Users mailing list
In reply to this post by Tim Mackinnon
If you use Quuve, local data on Pharo is stored in Fuel files. There are tools to export these to SIXX format in the web-app Admin tools - that's how we migrated data back and forth between Gemstone and Pharo. The admin tools allow exporting parts or full, DB, incremental import or replacement; as well, one can keep around deleted records. Important thing to remember is that Fuel stores the object graph, so be clear about cross-DB access by reference.

Again, the warning: full app is a serious app with levels of abstraction.
-cam

On Wed, Apr 15, 2020 at 6:42 PM Cameron Sanders <[hidden email]> wrote:
Yes, See the overview video at youtube (https://www.youtube.com/watch?v=sraCv1VwJzQ&t=233s). It has a lot of support tools to grab time-series data from FRED or World Bank, even if you don't want to use the full web app. The framework for multi-user handles DB's and is lightweight in practice. If you think you will go web, to gemstone, or multi-users, there are advantages.

To use full app, the warnings are: 
  1. uses HighCharts for display, which you would need a developer license for - i guess, and I don't know configuration mess as Quuve last ran on Pharo 6.x 
  2. there is a little directory structure with a few start-up files you need to copy into place (under your root directory)
  3. Many powerful financial rules were made easiest to use via this full app, as there are "pattern methods" that expand (creating concrete methods) to allow access to FRED and WorldBank as if each series were coded as a method

To simply use some of the toolkit from the "FA" package, which are general "functional analyst" tools, not involving GUI stuff, nor requiring much app framework, you can do the following to get CME crude prices front-month (CL1). Looks like they provide full FRED data access... but ... I know we provided tools to go directly to FRED and WorldBank too - i'd have to relearn how! (Been a few years.)

|q |
q := FaQuandlDownloader new  "#initialize method has an authorizationToken based on Debri's old account. When using the full application, the runtime uses specs for these to be created, and those specs are stored in DB's, at app-level, site-level, or user-level, allowing users to have extended subscriptions (from base app). We no longer have subscriptions, only a base account - and we get in trouble if you draw too much data like this. Please create your own account and change #initialize method. "
dataSourceSpec: 'SCF/';
series: 'CL1' for: 'CME' withPeriodSuffix: 'FN';
yourself.
q fetch.
q answerAsTable "returns FaTableAccess which allows string-indexed lookups or numbered index"

... my memory is you can extract that data as a FaDatedSeries too... mmm... i'd have to look.

Good luck, let me know if you have questions.
-cam

--
last loading I did went something like this...
Metacello new
    configuration: 'Seaside3';
    repository: 'http://smalltalkhub.com/mc/Seaside/MetacelloConfigurations/main';
 version: '3.2.4';
 load: #('Core' 'Zinc-Seaside' 'Javascript' 'JQuery' 'JSON' 'Email');
    lock.
 
 
Gofer it
url: 'http://smalltalkhub.com/mc/Debris/Quuve/main'
username: monticelloUsername
password: monticelloPassword;
 package: 'ConfigurationOfQuuve';
load.
 
 
Metacello new
configuration: 'Quuve';
smalltalkhubUser: 'Debris' project: 'Quuve';
version: '1.9';
onLock: [ :ex | ex honor ];
load: #('Core' 'DPOFX' 'DebrisREST').
---


On Fri, Apr 10, 2020 at 4:57 AM Tim Mackinnon <[hidden email]> wrote:
Wasn’t there a recent financial app in Pharo that was made open source... there might be many ideas in it, and possibly a starting point.

It’s in the success pages of pharo: Quuve, there are posts from Mariano about what tech they used too

Tim

> On 10 Apr 2020, at 09:13, "[hidden email]" <[hidden email]> wrote:
>
> Hi Tomaz,
>
> From the comments about the requirements you do I suggest:
>
> - For data storage, my recommendation goes depending on two factors:
> 1)Installation complexity, 2) volume of data. These are two variables
> that will be against one and the other. I will recommend to use
> MongoDB + Voyage, that goes very well. It grows excellent with the
> amount of data, it has really cool integration with Pharo and Voyage
> is an excellent mapping tool; also it is a mature solution and it has
> a lot of support for back-up schemes and solutions. Using MongoDB
> complicates the installation process, so if you have the idea of a
> easy installable application maybe SQLlite is a good alternative.
>
> - I think using Spec2 + GTK + Roassal3 + Polymath is a good idea.
> Check that Spec2 and Roassal3 are still under heavy development. They
> are getting much better, but of course, it will take some time to
> stabilize; but both of them are progressing very fast and they are
> already quite stable.
>
> - For developing DSL and interactive programming for non-programmers
> users, Pharo is ideal. It presents a lot of tools to easily develop
> DSL and the UI to make them work excellent. The idea of live
> manipulation of objects and inspection of all the instances can be
> easily added to a DSL.
>
> Thanks for your attention!
>
>> On Thu, Apr 9, 2020 at 9:13 PM Tomaž Turk <[hidden email]> wrote:
>>
>> Dear all,
>>
>> I'm thinking about implementing a software solution in Pharo (as one of the candidate environments), it's a project that I'm dealing with professionally. The goal is to develop a financial planning/simulation application on the country level, which is at present developed as a set of interrelated Excel spreadsheets. The requirement is that the solution should be more "manageable", resilient and straightforward than Excel permits, that it should present a workflow to the user - i.e. , that the tasks the user should do are suggested through the GUI.
>>
>> The majority of the data is in a form of a time series (for instance: GDP for a series of years). There are many variables in the model which shoud be calculated from other variables, year by year. There are also lagged variables (the value for the current year depends from the value of previous year), and running averages. There are also some variables which are not time series (parameters). As a part of GUI, there is a need to present the results as diagrams, too (scatterplots, line charts), otherwise tables are the output.
>>
>> I found Pharo to be a very elegant language and environment, with version 8.0 it became pretty stable, however I don't have any experiences in building software solutions of this type in Smalltalk. In other words, I'd like to be more confident in setting the architecture, both in the sense of the model content (variables interrelation) and the architecture of classes. Besides, for the calculated variables I'd like to have a relatively simple syntax to define them (like 'GDPpC <- GDP / Population').
>>
>> My thoughts and questions:
>> - for easier maintenance I'd like to separate the data from the code - so the question is what would be the best way to implement persistence (another Pharo image  - with what?, some relational database, XML/JSON, flat files ..)
>> - I wonder what would be the best "architecture" of classes - so, we have a lot of aggregate variables like GDP and population, which can be grouped at least according to the stage in the planning workflow. There are also resulting (calculated) variables (e.g. GDP per capita). On the other hand, since this is a planning software, it's a kind of simulation, where we have a "data warehouse", experiments and results
>> - As a core packages I would use Spec2, Roassal, and PolyMath.
>>
>> I'm just thinking aloud, and would greatly appreciate any thoughts from experienced Pharoers  :-)
>>
>> Best wishes,
>> Tomaz
>
>
>
> --
> Pablo Tesone.
> [hidden email]
>


Reply | Threaded
Open this post in threaded view
|

Re: Thinking aloud about project at hand

eftomi
> I'm thinking about implementing a software solution in Pharo (as one of the
candidate environments), it's
> a project that I'm dealing with professionally. The goal is to develop a
> financial planning/simulation
> application on the country level, which is at present developed as a set
> of interrelated Excel spreadsheets.
> The requirement is that the solution should be more "manageable",
> resilient and straightforward than
> Excel permits, that it should present a workflow to the user - i.e. , that
> the tasks the user should do are
> suggested through the GUI.

Thanks again for all the ideas regarding my project. So far I prepared the
domain model and all the calculations. The model might be changed in the
future, but that's basically it. Now I'm going to focus on the user's
workflow and GUI.

I have to say that I'm positively surprised by Pharo. Besides Pharo, I
explored the feasibility of using other environments for the same project,
namely VBA, .NET, Python. What took me in VBA and C#.NET roughly two weeks -
and these are my 'native' programming environments - I finished in five days
in Pharo. If GUI and finalization will go smoothly, this will be a success.
I'm playing with Pharo for some time, but until now I haven't done any
serious work with it. Nice!

Best wishes,
Tomaz





--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html

Reply | Threaded
Open this post in threaded view
|

Re: Thinking aloud about project at hand

Stéphane Ducasse

>
>> I'm thinking about implementing a software solution in Pharo (as one of the
> candidate environments), it's
>> a project that I'm dealing with professionally. The goal is to develop a
>> financial planning/simulation
>> application on the country level, which is at present developed as a set
>> of interrelated Excel spreadsheets.
>> The requirement is that the solution should be more "manageable",
>> resilient and straightforward than
>> Excel permits, that it should present a workflow to the user - i.e. , that
>> the tasks the user should do are
>> suggested through the GUI.
>
> Thanks again for all the ideas regarding my project. So far I prepared the
> domain model and all the calculations. The model might be changed in the
> future, but that's basically it. Now I'm going to focus on the user's
> workflow and GUI.
>
> I have to say that I'm positively surprised by Pharo. Besides Pharo, I
> explored the feasibility of using other environments for the same project,
> namely VBA, .NET, Python. What took me in VBA and C#.NET roughly two weeks -
> and these are my 'native' programming environments - I finished in five days
> in Pharo. If GUI and finalization will go smoothly, this will be a success.
> I'm playing with Pharo for some time, but until now I haven't done any
> serious work with it. Nice!
>

Thanks Tomaz.
This is a really interesting story.
Let us know and we will do our best to help you.
Spec20 has still some rough edges. But one step at a time.
I think that we will get to a point where we can start to breath a bit around Spec2.0.

S.


Reply | Threaded
Open this post in threaded view
|

R: Thinking aloud about project at hand

Lorenzo
Hi Stephane,

may be you remeber me as I helped you for a ESUG in Brescia.
At present I am working on a revision of fuzzy expert system generator that,
IMHO, could be used for the project.
If you believe that it could be interesting, please, let me know.

Ciao

Lorenzo

-----Messaggio originale-----
Da: Pharo-users [mailto:[hidden email]] Per conto di
Stéphane Ducasse
Inviato: sabato 2 maggio 2020 22:01
A: Any question about pharo is welcome <[hidden email]>
Oggetto: Re: [Pharo-users] Thinking aloud about project at hand


>
>> I'm thinking about implementing a software solution in Pharo (as one
>> of the
> candidate environments), it's
>> a project that I'm dealing with professionally. The goal is to
>> develop a financial planning/simulation application on the country
>> level, which is at present developed as a set of interrelated Excel
>> spreadsheets.
>> The requirement is that the solution should be more "manageable",
>> resilient and straightforward than Excel permits, that it should
>> present a workflow to the user - i.e. , that the tasks the user
>> should do are suggested through the GUI.
>
> Thanks again for all the ideas regarding my project. So far I prepared
> the domain model and all the calculations. The model might be changed
> in the future, but that's basically it. Now I'm going to focus on the
> user's workflow and GUI.
>
> I have to say that I'm positively surprised by Pharo. Besides Pharo, I
> explored the feasibility of using other environments for the same
> project, namely VBA, .NET, Python. What took me in VBA and C#.NET
> roughly two weeks - and these are my 'native' programming environments
> - I finished in five days in Pharo. If GUI and finalization will go
smoothly, this will be a success.
> I'm playing with Pharo for some time, but until now I haven't done any
> serious work with it. Nice!
>

Thanks Tomaz.
This is a really interesting story.
Let us know and we will do our best to help you.
Spec20 has still some rough edges. But one step at a time.
I think that we will get to a point where we can start to breath a bit
around Spec2.0.

S.



--
Questa e-mail è stata controllata per individuare virus con Avast antivirus.
https://www.avast.com/antivirus


Reply | Threaded
Open this post in threaded view
|

Re: Thinking aloud about project at hand

Stéphane Ducasse


On 3 May 2020, at 11:03, Lorenzo <[hidden email]> wrote:

Hi Stephane,

may be you remeber me as I helped you for a ESUG in Brescia.

Yes I remember. 

At present I am working on a revision of fuzzy expert system generator that,
IMHO, could be used for the project.

Please publish it. 

S. 

If you believe that it could be interesting, please, let me know.

Ciao

Lorenzo

-----Messaggio originale-----
Da: Pharo-users [[hidden email]] Per conto di
Stéphane Ducasse
Inviato: sabato 2 maggio 2020 22:01
A: Any question about pharo is welcome <[hidden email]>
Oggetto: Re: [Pharo-users] Thinking aloud about project at hand



I'm thinking about implementing a software solution in Pharo (as one
of the
candidate environments), it's
a project that I'm dealing with professionally. The goal is to
develop a financial planning/simulation application on the country
level, which is at present developed as a set of interrelated Excel
spreadsheets.
The requirement is that the solution should be more "manageable",
resilient and straightforward than Excel permits, that it should
present a workflow to the user - i.e. , that the tasks the user
should do are suggested through the GUI.

Thanks again for all the ideas regarding my project. So far I prepared
the domain model and all the calculations. The model might be changed
in the future, but that's basically it. Now I'm going to focus on the
user's workflow and GUI.

I have to say that I'm positively surprised by Pharo. Besides Pharo, I
explored the feasibility of using other environments for the same
project, namely VBA, .NET, Python. What took me in VBA and C#.NET
roughly two weeks - and these are my 'native' programming environments
- I finished in five days in Pharo. If GUI and finalization will go
smoothly, this will be a success.
I'm playing with Pharo for some time, but until now I haven't done any
serious work with it. Nice!


Thanks Tomaz.
This is a really interesting story.
Let us know and we will do our best to help you.
Spec20 has still some rough edges. But one step at a time.
I think that we will get to a point where we can start to breath a bit
around Spec2.0.

S.



--
Questa e-mail è stata controllata per individuare virus con Avast antivirus.
https://www.avast.com/antivirus



--------------------------------------------
Stéphane Ducasse
03 59 35 87 52
Assistant: Julie Jonas 
FAX 03 59 57 78 50
TEL 03 59 35 86 16
S. Ducasse - Inria
40, avenue Halley, 
Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
Villeneuve d'Ascq 59650
France