On Mon, Nov 30, 2015 at 2:42 PM, Dimitris Chloupis <kilon.al...@gmail.com>
wrote:

> ah this is very good news for me thanks. I really like Fuel, well done
> guys, looks very well designed.
>
> Yeah feature wise I dont care about something advanced, If I need
> something much more advanced I will use a proper database.
>
> I am slightly surprised that none or at least AFAIK has not create a
> lightweight database API based on Fuel . Something similar to SQLite.
>
> https://www.sqlite.org/
>
>
Well, we did and my client agree to open source it:
http://smalltalkhub.com/#!/~Debris/DebrisDB
So...you could either try that or SimplePersistentcy.

About scale, I guess I can brake things to multiple files.
>

That's what we do in our application. Not necessary as for performance but
also as for domain logic. We have advisorDB, clientsDB, securitiesDB, etc,
which are all logic app-dependent databases. And then all these logic
databases are stored (somehow) into real databases.


> On other thread someone mention that STON is a good choice for version
> control but that is not a problem for me either since Git can handle binary
> files like fuel files too.
>
> On Mon, Nov 30, 2015 at 4:49 PM Mariano Martinez Peck <
> marianop...@gmail.com> wrote:
>
>> On Mon, Nov 30, 2015 at 11:40 AM, Dimitris Chloupis <
>> kilon.al...@gmail.com> wrote:
>>
>>> Yes I have read the docs on how to use Fuel on how to use it and how to
>>> exclude things I dont want to be stored in fuel file, I was just curious.
>>> As a matter of fact I like deep copies.
>>>
>>> Is it ok to use Fuel to make my own , super light, database ? Just a way
>>> to manage and port my objects between images. Nothing very sophisticated.
>>>
>>
>> Yes, we did this for Quuve application when it runs (for development)
>> under Pharo. Of course, it will only work up to certain scale (since every
>> commit will serialize the whole database) and you do not have ACID, nor DB
>> users, no security, nor any other features of a real DB.
>>
>> You may want to take a look to simple persistence to save some of your
>> development time since it has a Fuel backend:
>> http://smalltalkhub.com/#!/~TorstenBergmann/SimplePersistence
>>
>>
>>> On Mon, Nov 30, 2015 at 3:08 PM Mariano Martinez Peck <
>>> marianop...@gmail.com> wrote:
>>>
>>>> On Mon, Nov 30, 2015 at 8:41 AM, Dimitris Chloupis <
>>>> kilon.al...@gmail.com> wrote:
>>>>
>>>>> I have a class A that has an instance variable the references an
>>>>> instance of Class B , but also Class B has an instance variable the
>>>>> references an instance of Class A. Basically its a GUI that references its
>>>>> model and the same model referencing the same instance of GUI.
>>>>>
>>>>>
>>>> Dimitris,
>>>>
>>>> Fuel solves the circular references in the traditional way, that is,
>>>> while traversing the graph, after processing each objects it stores it in a
>>>> IdentityDictionary. Then, for each object to be processed, it first checks
>>>> if the dictionary already includes that object. If true, then it has
>>>> already been processed. If not, then lets process/traverse.
>>>>
>>>>
>>>>
>>>>> How Fuel deals with such scenario because I saw that it created an
>>>>> output of 1.5 mbs for several instances of my model class ? Is there any
>>>>> danger of having such circular references or it does not matter because
>>>>> afterall they are just pointers ?
>>>>>
>>>>
>>>> As Sven said, you need to be careful because you cannot be sure exactly
>>>> all what Fuel can reach from a certain graph. If the graph was serialized
>>>> into a 1.5mb then it has nothing to do to the fact of having circular
>>>> references. It's simply the fact of the graph that ended up traversed.
>>>>
>>>> There are some tools inside Fuel to know what has been
>>>> "traversed/processed" and that will next be serialized. This may help you
>>>> realize that you are including in the graph things you don't want. We have
>>>> http://rmod.inria.fr/web/software/Fuel/Version1.9/Documentation/Debugging
>>>> but I am not sure if that's a bit outdated. Give it a try and if not ask.
>>>> The ideally is to at least get the list of classes and instances that are
>>>> being serialized. That's quite a help in a first place.
>>>>
>>>> Finally, if you found parts of the graph that you didn't want to
>>>> serialize, then you can use different Fuel hooks to solve that
>>>> (substitutions, ignoring certain intsVars, etc etc).
>>>>
>>>> Best,
>>>>
>>>>
>>>>
>>>> --
>>>> Mariano
>>>> http://marianopeck.wordpress.com
>>>>
>>>
>>
>>
>> --
>> Mariano
>> http://marianopeck.wordpress.com
>>
>


-- 
Mariano
http://marianopeck.wordpress.com

Reply via email to