--- Begin Message ---
Quuve Moves to the Public Domain under MIT License
<https://opensource.org/licenses/MIT>

Quuve provides a pro-grade integrated environment for portfolio management
and research for securities investors. Professional grade in that it was
meant to be licensed out to firms/groups offering research & portfolio
management services. It is a virtualized, scaleable, web application
developed with Pharo and deployed on GemStone/S. See the Quuve Overview
video on YouTube
<https://www.youtube.com/watch?v=sraCv1VwJzQ&list=PLfTMPTPc22sGNrm2rXt8kD-9iFTgqbAUG>
for more information.

Quuve development stopped in the Fall of 2017 due to a lack of funding,
however it still has some cutting-edge features for the industry. Because
Quuve can function as an institutional level data server, tailored mobile
apps could be built as standalone technology - and such an approach could
even take advantage of Quuve’s analyst/site model subscription selections.

Software Positives:

   -

   Using a Glorp-like interface to access data: Quuve has successfully run
   on Pharo (stand alone for development, backed by Fuel), Gemstone
   (deployment), and with portions backed using a relational DB - not required
   nor used at present. Quuve provides DB admin tools including import/export
   of DB’s in part or full; deleted records access tables, and more. User
   permission-masks can be granted by DB, table, even patterns in records.
   -

   Generic CRUD tables UI allows for rapid class development/usage - see
   ApplicationContext (stack with preferences style inheritance).
   -

   3-tier model (application, site, user) for data and Rules, allows site
   (group) and user specific overrides, which is important in Finance, where
   few will agree on how to define “free cash flow” in one accounting system,
   or one industry, let alone globally.
   -

   Processors allow for dynamic code-based answers to data requests; they
   blur the lines between data and Rules. Any object can be wrapped with a
   Processor and have data and rules added dynamically. Rules allow
   data-requests to perform any operation a modern computer can perform, and
   most often these are simple math operations on series. Rules are organized
   by “analyst” names (akin to rules’ Classes), the specifications for
   analysts is user specific, allowing for dynamic-inheritance required for a
   pro-grade multi-user Finance application pulling in international data
   (using different source accounting standards). Rules are compiled on
   demand; all caching is dynamic and user specific. Rules can be defined
   using wild-card method-names to open up entire remote volumes of data, or
   data transformations, with a new pattern. Data series are very robust
   around missing data and math errors. Quuve includes time profiling and
   debugging method-trace system to understand data missing or debug errors -
   enabled in user-specific permissions.
   -

   Demonstrated integration of learning systems for analysis and portfolio
   management (“robo-trading”). Data-sampling uses “point in time view” to
   support accurate backtesting. Portfolios have the unique feature of being
   able to scroll backwards in time to any date to see the specific holdings
   there - as models are built from trade-event records.
   -

   Access to millions of FREE data series from sites like FRED (St. Louis
   Federal Reserve Bank - USA), World Bank, etc. - menu selectable in report
   writer!
   -

   NPI (Non-public information) masking tools - important for privacy in
   professional Finance office.
   -

   Script Tool allows for ad hoc testing - most tools like the company
   report tool also incorporates an ad hoc scripting area.
   -

   User-specific configurable DB tables access, window access, etc. User
   and DB bindings specified in CSV files for bootstrapping.
   -

   Programmer documentation in wiki & in-system help-notes. Some ‘company
   reports’ are training tools.


Software Issues (“opportunities”!):

   -

   Quuve development stopped in the Fall of 2017 due to a lack of funding;
   some dialogs already look a bit out-dated.


   -

   Some external libraries (e.g. javascript charting) require external
   licenses - see Credits listed below.
   -

   Professional grade data must be licensed for individual or larger group
   - please consult us. Note: we can provide small amounts of CSV data for
   testing company reports. Perhaps we can form a consortium to license
   pro-grade data - but we need a Champion to lead the way. CSV data can load
   on-demand and depends only on the user’s data-source selection via
   preference or dialog-input specification. Small amounts of data can be
   sourced from certain sites on an individual basis but not commercially,
   e.g. yahoo, google, etc.
   -

   Data loaded currently into one default currency - defined in
   data-loaders - the idea was to use “table decorators” model to map data to
   any currency at current exchange ratio or historical.
   -

   Dropbox was used for file-sharing on cloud servers - not required for
   local Pharo execution.
   -

   Quuve configuration has not been updated in 18 months.
   -

   In recent years only Apple platforms were used for Pharo development.
   -

   Currently there is minimal support for Quuve. We can add users to our
   existing programmer wiki and slack-threads to pick up where we left off. In
   adding users we would prefer a few dedicated champions. There are tools
   that can be harvested for non-Finance applications. We can add a few
   trusted users to our current demonstration server, but this contains data
   that cannot be shared, so we must be selective!
   -

   Latest working image was Pharo 6.1 32 bits and GemStone 3.4.0
   -

   Latest instructions to load code are in our devwiki titled
   DevelopmentBootstrapping_IAM - only a few dedicated users will be added
   initially.
   -

   Code is in smallhub and should become public, MIT, and possibly moved to
   Github. This is an immediate need!
   -

   GemStone scripts to build new sites, maintenance etc are in gitlab -
   again, we can start providing access selectively!
   -

   We have only one server, running in Linode:
   https://cloud.linode.com/linodes/866838/summary



More info:

Currently copyrighted to Debris Publishing, Inc. - This is changing to MIT
License.

Quuve is intended to assist investors manage portfolios and perform
research.

Quuve was built and deployed using tools from various sources. The
following firms, organizations, communities, and individuals have not
endorsed Quuve nor Debris, but we offer due credit whether they are aware
of us or not. Many thanks for/to...

Development and deployment environments and platforms

Pharo (c) Pharo.org <http://pharo.org/> Pharo is our development platform,
language and environment.

GemStone (c) GemTalk Systems <http://gemtalksystems.com/> We use GemStone
system to deploy and run each Quuve site for production. In addition,
GemStone serves as our scalable object database.
Web frameworks

Seaside Web Framework <http://seaside.st/> The web UI of Quuve is built
using Seaside: a great web framework ideal for developing dynamic and
complex applications

Twitter Bootstrap for Seaside
<http://smalltalkhub.com/#!/~TorstenBergmann/Bootstrap> Bootstrap is very
nicely integrated in Seaside web framework and we use it for styling and
designing Quuve web components.

Highcharts for Seaside <http://smalltalkhub.com/#!/~Mercap/HighchartsSt>
All our web charts use Highcharts JS bindings for Seaside

Magritte <https://github.com/magritte-metamodel/magritte> Magritte provides
us a nice and small meta-description framework which allow us to build a
fully featured CRUD system. Most of Quuve forms and reports are
automatically generated from our CRUD framework build on top of Magritte.
Development tools and frameworks

Fuel Serializer <http://rmod.inria.fr/web/software/Fuel> We use Fuel to
save and load our development and testing databases when working in Pharo
platform

SIXX Serializer
<http://www.mars.dti.ne.jp/~umejava/smalltalk/sixx/index.html'> SIXX is
used to move small databases from GemStone to Pharo or vice-versa or
between different GemStone instances

Metacello
<https://github.com/dalehenrich/metacello-work/blob/master/docs/MetacelloUserGuide.md>
To manage software dependencies, releases, environment building, deploying,
etc. we use Metacello

Zinc and Zodiac HTTP Components <http://zn.stfx.eu/zn/index.html> Both are
used as HTTP and HTTPS clients. In Addition, Zinc is used as the web server
when using Seaside in Pharo

Blowfish <http://smalltalkhub.com/mc/Cryptography/Cryptography/main> We use
Blowfish as part of our encryption and decryption tools.

XMLParser <http://smalltalkhub.com/mc/PharoExtras/XMLParser/main> We also
need to parse and write XML in many places
Javascript Libraries

JQuery and JQuery-UI <https://jquery.com/> Even if small, most of our JS
development is using JQuery when possible. In addition, a couple of
components like autocompletion, popups, sortable lists, etc are used from
JQuery-UI

TinyMCE <http://www.tinymce.com/> For nicely editing notes, documents, etc.
we use the fully WYSIWYG editor TinyMCE

Datatables <https://www.datatables.net/> To improve or HTML tables and
reports we use Datatables. This allow us to have fixed header, fixed
columns and many many other features.

CodeMirror <http://codemirror.net/> For scripting, editing accounting and
computation rules, and many other places, we use CodeMirror to color
highlight code, autocomplete, etc.
Infrastructure

CentOS Linux <https://www.centos.org/> All our guest/virtual operating
systems are CentOS Linux, with latest stable release and security updates.

Nginx <http://nginx.org/> Our web server for production purposes is nginx.

Monit <https://mmonit.com/monit/> We use monit to monitor all processes,
being that Quuve ones or the ones we need from the Operating System. Monit
will, for example, automatically restart Quuve processes upon crashes.

Fail2ban <http://www.fail2ban.org/> As part of our security efforts we use
fail2ban to protect us from DOS attacks and from malicious user

Firewalld <https://fedoraproject.org/wiki/FirewallD> We also use firewalld
as out OS firewall

--- End Message ---

Reply via email to