[Cuis] ContentPack

H. Hirzel hannes.hirzel at gmail.com
Wed Jan 2 09:13:13 CST 2013


Hello Juan and Casey

Is the ContentPack something like Fuel?
http://rmod.lille.inria.fr/web/pier/software/Fuel
(BTW it is now available for Squeak as well, see announcement on the
Squeak list)?



I found class 'ContentPack', I copy it in below. The nice thing is
that it only has 11 instance methods and 7 class methods. However most
of the comment I do not understand.

I copy in the class comment below.
I put in comments in uppercase.

Kind regards
Hannes


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ContentPack lets you read in and write out the (supported files in
the) contents of a directory on your file system. It also allows you
to trivially create "messenger" subclasses that capture the
information containted (TYPO) in these directory trees, including any
implicit communication that's there in the structure of the directory
hierarchy itself, which are captured in your changes file.

NOTE: I DO NOT UNDERSTAND THIS LANGUAGE. EXAMPLES of supported file types?


You can then file out a change set that contains a representation of
the (supported file/object types and directory structurein) TYPO the
stuff on your disk, or in your image. This subclass is a dummy which
ContentPack compiles methods into containing base 64 encoded data. You
can load this into another image, as long as that image has
ContentPack loaded. The filed in class can then recreate the
ContentPack on the other end with the media files and structure
intact.

The current implementation is based on #storeString, but the plan is
to change that to SmartRefStream in the long run to support
serializing things like morphs.

ContentPack instances hang onto the actual tree of media objects.(I DO
NOT UNDERSTAND)  It has a nice simple EDSL ???? that just interprets
an array of strings from beginning to end as a "path" to a file
(really a series of dictionary lookups to a Smalltalk object, wherin
the dictionaries mirror the structure of what was on the disk, sans
unsupported files.) This mechanism will likely change a little bit at
some point,


ContentPack came into the world a little faster than I expected, as I
ended up using it to send some icons back in time to fix the Cuis
update stream without having to sort my changes all over again. As
such it had some unusual design pressures... it had to be able to
carry information in and out of both the change set stream and the
filesystem, as well as function in a slightly earlier (unreleased)
version of Cuis than it was written in, and not break anything on it's
way back up through the build to head.

SENDING ICONS BACK IN TIME????


The code, in particular the way things are named, has not settled yet,
and that's why this comment contains no code examples. Use with care
and read the code first, for now.

IN THE MEANTIME THE CODE SEEMS TO HAVE SETTLED OTHERWISE IT WOULD NOT
BE IN CORE.


Currently, .bmp import and .png import are implemented, and both can
be exported. Anything you can import, you can also shuffle into a
change set. Plans are in the works to support audio, change sets, and
text files.

PLEASE DO SO. GIVEN THE FACT THAT THIS CLASS ONLY HAS 18 METHODS THIS
SHOULD NOT BE A LARGE EFFORT.

I'll support video if someone has a good importer, exporter, and
player under the MIT license that'll work under Cuis.

Currently, objects are serialized into single methods, which works for
small icons, but likely doesn't work well (if at all) for larger
files. My intent is to add some behavior that breaks up large objects
into smaller chunks so that this becomes a non-issue. I'll likely get
to that when I've removed most of the repetitive subtle variations of
the same recursive tree walking visitor-trick from the code, and
renamed everything. I think in essence this class is slightly smaller
than it is as represented currently.

Hopefully I will be able to explain all of this better once I've
clarified the code a bit so that I can show off some examples.

YES.   EXAMPLES WILL HELP A LOT   :-)

	- cbr

On 1/2/13, Juan Vuletich <juan at jvuletich.org> wrote:
> Hi Folks,
>
> I think it should work ok. I don't recall doing any changes that would
> obviously affect it.
>
> BTW, a bit more of documentation wouldn't hurt, but the code is all
> there, and there's a reasonable class comment. It is just a matter of
> learning and playing a bit with it.
>
> Cheers,
> Juan Vuletich
>
> Casey Ransberger wrote:
>> Oh wow and ouch. I wrote it. My fault. I didn't document it. I
>> expected, after I'd used it to muck with the time stream, that we'd
>> throw it away once the paradox was resolved, but Juan liked it, and
>> wanted to keep it.
>>
>> Anyway, it's my dog and I've been terrible about feeding it. I should
>> fix that.
>>
>> On Tue, Jan 1, 2013 at 9:58 PM, H. Hirzel <hannes.hirzel at gmail.com
>> <mailto:hannes.hirzel at gmail.com>> wrote:
>>
>>     Hello Casey and Juan
>>
>>     Good to see you active on this list.
>>     How to I try out the ContentPack in Cuis 4.1?
>>
>>     Casey mentions in another thread that it might not work anymore.
>>
>>     --Hannes
>>
>>     On 12/30/12, Juan Vuletich <juan at jvuletich.org
>>     <mailto:juan at jvuletich.org>> wrote:
>>     > Hi Hannes,
>>     >
>>     > You might be thinking on Casey's ContentPack, that is part of
>>     Cuis. It
>>     > allows us to use only change sets for updating Cuis, while at
>>     the same
>>     > time, using external tools for editing resources (like .bmp,
>>     .png and
>>     > jpg files, etc).
>>     >
>>     > Cheers,
>>     > Juan Vuletich
>>     >
>>     > H. Hirzel wrote:
>>     .....
>>     >>
>>     >> If I remember well you once did a package for managing
>>     resources, right?
>>     >>
>>     >> Where is it?
>>     >>
>>     >> --Hannes
>>     >>
>>
>>     _______________________________________________
>>     Cuis mailing list
>>     Cuis at jvuletich.org <mailto:Cuis at jvuletich.org>
>>     http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>>
>>
>>
>>
>> --
>> Casey Ransberger
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Cuis mailing list
>> Cuis at jvuletich.org
>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>>
>
>
> _______________________________________________
> Cuis mailing list
> Cuis at jvuletich.org
> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>




More information about the Cuis mailing list