Hi Masashi,
I am currently developing a new Smalltalk Wiki implementation
(http://scgwiki.iam.unibe.ch:8080/SCG/520) and I am planning to use
SIXX to store my large tree-structures to xml. It seems to me the
perfect solution, because it can handle circular references and it
dialect independent.
My first attempt was to dump everything out into a XML file using the
following code from your tutorial:
sws := SixxWriteStream newFileNamed: 'root.xml'.
sws nextPut: wikiRootNode.
sws close.
The XML file looks fine, but unfortunately the XML parser is not able
to read that file again. The problem seems to be the huge binary data
(images, pdf) that is stored within ByteArray's.
I think storing binary-data to XML is not a good idea anyway, so I want
them to be put in special external files. The only thing to change - at
least I think so - is my Resource class, that contains this binary
data. So it should only dump the filename of the binary data and not
the data itself. To archive this goal, I wrote something similar to:
Resource>>sixxContentOn: aStream indent: level context: dictionary
| filename |
filename := self generateUniqueFilename.
self dumpToBinaryFile: filename.
super sixxContentOn: aStream ident: level context: dictionary
But how do I prevent SIXX from saving the binary data again, without
hardcoding the other i-vars? How do I archive the loading of the binary
data?
Could you give me some hints?
Thanks a lot for your help
Lukas
--
Lukas Renggli
http://renggli.freezope.org
Hi,
I'm not feeling very well, so I won't be able to come to the meeting
today. But of course I am reachable by e-mail.
I plan to do some heavy refactorings on the Structure hierarchy and
update the tests today. I don't know how far I will get.
What I plan to do is:
- find a good way to map title to urls
- include property management
- move the template, title, ... i-vars to properties
- create a management interface for properties
BTW, do we want to be able to access properties directly "structure
title" or only with special function calls like "structure propertyAt:
#title"?
Some further goals are (probably not for today):
- attach the security-model
- develop a more generic interface for storage
Sorry for yesterday's e-mail in german: I discussed with Hannes about
SIXX and how easy it is for a dump-out storage. As I already explained
the XML-Parser gets messed-up when parsing very long ByteArrays (used
to store resources). So I think the way to go is to store the
resource-data as external binary files. I don't know yet if this solves
the problems, but at least I hope so.
Cheers
Lukas
--
Lukas Renggli
http://renggli.freezope.org
Salut Lukas
Lukas Renggli <renggli(a)student.unibe.ch> wrote:
> SIXX hatten wir eigentlich schon ganz zu Beginn des Projektes als
> mögliche Erweiterung im Auge. Gerade letzte Woche habe ich es dann
> integriert, weil ich es für die Präsentation benötigte. Es ist wirklich
> faszinierend, wie einfach und schnell man dieses Framework einbauen und
> nutzen kann.
Schick doch bitte "Masashi Umezawa" <umejava(a)mars.dti.ne.jp>
ein Feedback mit diesem Inhalt. Er leistet eine gute Arbeit,
kriegt aber nicht so viel Echo von der Liste.
> Wir werden weiterhin mit SIXX arbeiten, die Bilder und andere binäre
> Daten müssen aber in separaten Dateien abgelegt werden. Das ist zwar
> auch vom Platzbedarf her gesehen vorteilhaft,
Ist vom Nutzer / Betreiber-Standpunkt aus sehr gut!
aber man kommt nicht mehr
> mit nur 3 Zeilen Code aus.
Ja, leider! Hoffentlich nicht allzuviel Mehrarbeit.
Liebe Grüsse
Hannes
Hallo Hannes,
> Ich denke eine relativ einfache Addition könnte den "Verkaufswert"
> für euer Wiki massiv erhöhen. Wenn ihr als Rendering-Option
> den Export nach XML (SIXX * in Squeakmap) einbaut.
>
> Es dürfte sich einfach darum handeln SIXX zu laden
> und einige wenige Zeilen am richtigen Ort einzubauen
> und ihr habt euren Export nach XML.
SIXX hatten wir eigentlich schon ganz zu Beginn des Projektes als
mögliche Erweiterung im Auge. Gerade letzte Woche habe ich es dann
integriert, weil ich es für die Präsentation benötigte. Es ist wirklich
faszinierend, wie einfach und schnell man dieses Framework einbauen und
nutzen kann.
Leider scheint es aber Probleme beim Laden der XML-Daten zu geben
(daran ist meine Präsentation fast gescheitert). Besonders bei den
Byte-Arrays, welche ich verwende um die binären Daten der Bilder
abzulegen, dreht der XML-Parser durch und es treten sehr komische
Fehler auf.
Wir werden weiterhin mit SIXX arbeiten, die Bilder und andere binäre
Daten müssen aber in separaten Dateien abgelegt werden. Das ist zwar
auch vom Platzbedarf her gesehen vorteilhaft, aber man kommt nicht mehr
mit nur 3 Zeilen Code aus.
> Das würde sicher auch einen guten CT-Artikel abgeben.
Ja, das denke ich mir auch. Es gab ja vor kurzem einen Vergleich von
verschiedenen Wiki-Implementationen im CT, leider wurde darin aber
nicht auf die Smalltalk-Varianten eingegangen. Aber es ist dennoch gut
zu wissen was die Konkurrenz kann
> Dies also ein Feedback auf die interessante Demo vom letzten
> Samstag
Vielen Dank und liebe Grüsse
Lukas
On Montag, Februar 17, 2003, at 08:46 Uhr, Hannes Hirzel wrote:
> Hallo Lukas
>
> Obwohl ich vielleicht etwas desinteressiert deiner Präsentation gefolgt
> bin, muss ich
> im nachhinein sagen, dass mich das was ihr macht sehr interessiert.
>
> Ich bin auch gerne bereit ggfs. ein Alphaversion zu testen....
>
> Der Gedanke im Smalltalk-Image drin ein komplette Objektnetz von
> Dokumenten zu haben, die sich auf verschiedene Weise rendern
> können ist wirklich faszinierend.
>
> Ich denke eine relativ einfache Addition könnte den "Verkaufswert"
> für euer Wiki massiv erhöhen. Wenn ihr als Rendering-Option
> den Export nach XML (SIXX * in Squeakmap) einbaut.
>
> Es dürfte sich einfach darum handeln SIXX zu laden
> und einige wenige Zeilen am richtigen Ort einzubauen
> und ihr habt euren Export nach XML.
>
> Damit habt ihr dann sogar ein Autorensystem (Wiki-Syntax)
> das XML produziert (ein Content Managemet System).
>
> Das würde sicher auch einen guten CT-Artikel abgeben.
>
> Dies also ein Feedback auf die interessante Demo vom letzten
> Samstag
>
> Grüsse und weiterhin 'happy squeaking'
>
>
> Hannes Hirzel
>
> --------------------------------------------------------------
> * Mail zu SIXX von heute
>> Date: Tue, 18 Feb 2003 00:55:17 +0900
>> From: "Masashi Umezawa" <umejava(a)mars.dti.ne.jp>
>> Subject: Re: port of prevayler
>> To: "The general-purpose Squeak developers list"
>> <squeak-dev(a)lists.squeakfoundation.org>
>> reply-to: The general-purpose Squeak developers list
>> <squeak-dev(a)lists.squeakfoundation.org>
>>
>> Hi,
>>
>>> Yes, much better. :-) We have one good language (Smalltalk) why not
>>> use
>>> it? All this focus on XML (in the IT industry over all that is) is
>>> really tiresome.
>>
>> Tiresome, indeed. But I think SIXX has some advantages for serious,
>> robust
>> systems.
>>
>> - It automatically resolves circular or shared references.
>> (In "do it" approach, you have to write it on your own).
>>
>> - It is safe.
>> ("Do it" could be a security hall. You can insert dangerous
>> expressions).
>>
>> - It is portable.
>> (SIXX has been ported to 3 Smalltalks. It can be converted to other
>> data
>> structures by processing parsed dom tree).
>>
>> So I think it is oversimplified to say "much better".
>>
>> ---
>> [:masashi | ^umezawa]
--
Lukas Renggli
http://renggli.freezope.org
Hi
What I would like to be able to say is for a given page that it get
automatically time-stamped with the lats update.
Stef
Prof. Dr. Stéphane DUCASSE (ducasse(a)iam.unibe.ch)
http://www.iam.unibe.ch/~ducasse/
"if you knew today was your last day on earth, what would you do
different? ... especially if, by doing something different, today
might not be your last day on earth" Calvin&Hobbes
Prof. Dr. Stéphane DUCASSE (ducasse(a)iam.unibe.ch)
http://www.iam.unibe.ch/~ducasse/
"if you knew today was your last day on earth, what would you do
different? ... especially if, by doing something different, today
might not be your last day on earth" Calvin&Hobbes
Hi all,
I think that tuesday we should look at a simple problem of integration
and see how
the extended actions works or not.
I was thinking that we will need a kind of configuration object that
represents
which kind of extension are required.
Stef
Prof. Dr. Stéphane DUCASSE (ducasse(a)iam.unibe.ch)
http://www.iam.unibe.ch/~ducasse/
"if you knew today was your last day on earth, what would you do
different? ... especially if, by doing something different, today
might not be your last day on earth" Calvin&Hobbes
Hi all
so I will do normally the lectures on Smalltalk during the summer
semester, at the place of the
interpreter model lectures. This way we will have one lecture in summer
and one lectures in winter.
I will send an announce soon when the schedule will be finalized. Lukas
we will have to discuss
because I want them to understand, write Unit tests, extend, SmallWiki.
Stef
I will start to check in which status is my current migration to
powerpoint is.
and let you know.
Prof. Dr. Stéphane DUCASSE (ducasse(a)iam.unibe.ch)
http://www.iam.unibe.ch/~ducasse/
"if you knew today was your last day on earth, what would you do
different? ... especially if, by doing something different, today
might not be your last day on earth" Calvin&Hobbes
Hi Smalltalkers,
As you already know I won't come to the meeting the coming week.
Therefore I thought it would be good to give you a brief list of the
things I did this week:
- First, I went a bit deeper into SIXX to archive xml persistence of
the data. It was a bit tricky, because SIXX does a deep-save by default
and we would have all data in one single xml-file. Therefore I added
code to create a directory structure in the filesystem and to put each
structure-item into a single file. Currently there is no loading
implemented and the code is not attached to the web-interface, but you
can see a small example in StoreTests>>testSave.
- Then I started a complete refactoring of the inheritance in the
action classes, because we currently had some ugly code-duplications.
Most of the problems are solved now but not all the code of the
view-actions have been pushed-up yet.
- At the same time I improved the versioning and history mechanism. You
have now the possibility to restore or to revert to an old version and
to truncate history information from any point. I did not write tests
for this new features, but more is expected to come. Also I did not add
code to handle these things for whole wiki trees, because I think that
will be the task for a special management plugin.
- I refactored the visitor-classes, because there was a lot of
unnecessary baggage and I had to deal with inheritance. Especially the
stuff with inheritance (e.g. when #acceptPage: is called also
#acceptStructure: has to be called because Page inherits from
Structure), but I think I found a good solution.
- Today I tested everything on my new mac ;-) , because I couldn't
leave that machine any longer without touching but learning exams next
to.
Cheers
Lukas
--
Lukas Renggli
http://renggli.freezope.org