<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Hi Hilaire</p>
<p>I am also thinking about a persistence solution for Cuis. In 2025
I am planning to gradually move to Cuis and I need one.</p>
<p>At the moment I use</p>
<p>- external CSV files. This is good as a lot of information comes
in tables. CSV is the de-facto standard for data. Input comes in
this format. Noteworthy Excel/LibreOffice Calc and text processor
tables. The LibreOffice database component can deal with them.<br>
</p>
<p>- I use the ReferenceStream to send a fat object (a tree of
objects, top level is a dictionary) from Squeak to Cuis, see my
mail 'Importing String objects from Squeak' at the beginning of
this month. I am working on getting it to work also in the other
direction.<br>
</p>
<p>- I also have large PNG image files (30MB * 200 .. 600) and a lot
of smaller picture files (2MB each) to manage. I keep them out of
the Cuis image in folders and have a small representation of them
in the Cuis image. These smaller files are also in an external
folder.</p>
<p>- You may have a look at the Squeak wiki page 'Databases and
Persistence' <a class="moz-txt-link-freetext" href="https://wiki.squeak.org/squeak/512">https://wiki.squeak.org/squeak/512</a> for some ideas.<br>
</p>
<p>- Noteworthy there is the remark about image persistence[1]. Very
doable if the content is not too large. I guess this is a solution
good enough for the upcoming 3 .. 10 months of your Dynabook
development but probably not for longer. </p>
<p>- You earlier expressed your interest in SQLite on this list. The
most frequent deployed database in the world. Also a de-facto
standard. The two Cuis SQLite implementations are unfortunately
currently broken. Not sure how much effort it takes to fix that. I
would like to have this done but at the moment my time does not
allow this. Maybe some time next February / March. Not all needs
to go into one SQLite db file. For example one could be used for
each document your dynabook user is annotating and the school,
teacher and student information could go into another one.</p>
<p>- And one should not forget that the Cuis idea is not to do
something others have done well (e.g git as version control
system). A home grown persistence solution will absorb quite some
energy and put a delay on working on what others can not do.
Support of a ODB solution is an issue.<br>
</p>
<p>Could you please elaborate about your mixed experience with
ReferenceStream? To know that would be helpful.<br>
</p>
<p>Regards</p>
<p>Hannes<br>
</p>
<p><br>
</p>
<p>[1]</p>
<p><strong>Squeak Image</strong><br>
Squeak (as all Smalltalk implementations worthy of that name)
implements persistency in a way which is (almost) unseen in any
other computational environment. It does not need databases, XML
or any similar superfluous stuff to be persistent. Just try: </p>
<pre>Smalltalk snapshot: true andQuit: false.</pre>
<br>
You can also create a process which saves the image periodically
instead of you.<br>
<pre>[[true] whileTrue:
[(Delay forSeconds: 1000) wait.
Smalltalk snapshot: true andQuit: false ]]
forkAt: 49.
</pre>
<br>
But keep in mind that this type of persistence is not <a
class="external" href="http://en.wikipedia.org/wiki/ACID">ACID</a>.
You may lose data. In cases where it is not acceptable to lose data,
some of us think databases are not superfluous at all (<a
class="internal" href="https://wiki.squeak.org/squeak/2578"
title="Gerald Zincke: last edited 6907 days ago by bchm-d9bae9b0.pool.mediaWays.net">Gerald
Zincke</a>). It also involves shutting down and restarting all
those objects that involve external resources; see the various
implementors of #shutDown etc.
<p> <br>
</p>
<div class="moz-cite-prefix">On 14/12/2024 3:40 pm, Hilaire
Fernandes via Cuis-dev wrote:<br>
</div>
<blockquote type="cite"
cite="mid:939f82bd-63e1-4d1c-b910-b9d42ff4fda4@free.fr">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<p><font size="4">Hi !</font></p>
<p><font size="4">What are our options for ODB?<br>
</font></p>
<p><font size="4">Experimented with ReferenceStream, but I have a
mixed experience so far, hard to control what is and is not
persisted.<br>
</font></p>
<p><font size="4">Thanks<br>
</font></p>
<pre class="moz-signature" cols="72">--
<a class="moz-txt-link-freetext" href="http://mamot.fr/@drgeo"
moz-do-not-send="true">http://mamot.fr/@drgeo</a></pre>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
</blockquote>
</body>
</html>