From Serge.Stinckwich at info.unicaen.fr Wed Oct 1 07:55:39 2003 From: Serge.Stinckwich at info.unicaen.fr (Serge Stinckwich) Date: Wed, 01 Oct 2003 07:55:39 +0200 Subject: [IMPORTANT] SmallWiki Alpha Release In-Reply-To: References: Message-ID: <1064987551.2034.1.camel@hoegaarden.noos.fr> Le mar 30/09/2003 ? 19:46, ducasse a ?crit : > But serge (may be I'm wrong) you can change the template to point to > for the css in another place > using the > stylesheet link in the tmeplate editor > Lukas what are the possible expressions that we can have instead of > @import > "http://www.iam.unibe.ch/~scg/smallwiki/standard_blue/style.css"; Yes, i know. But i think we need some default local style-sheet that works without being online. And when you are offline, you can't change the style-sheets, it doesn't work ... -- Serge Stinckwich -< ) Universit? de Caen>CNRS UMR 6072>GREYC>MAD /~\ http://www.iutc3.unicaen.fr/serge/ (/ | Smalltalkers do: [:it | All with: Class, (And love: it)] _|_/ From Serge.Stinckwich at info.unicaen.fr Sun Oct 5 15:29:12 2003 From: Serge.Stinckwich at info.unicaen.fr (Serge Stinckwich) Date: Sun, 05 Oct 2003 15:29:12 +0200 Subject: Tests failed Message-ID: <1065360551.18660.11.camel@hoegaarden.noos.fr> Hi all, i try to run the tests for the last version of SmallWiki available on the Cincom public store. 17 tests failed all in the ParserTests ... -- Serge Stinckwich -< ) Universit? de Caen>CNRS UMR 6072>GREYC>MAD /~\ http://www.iutc3.unicaen.fr/serge/ (/ | Smalltalkers do: [:it | All with: Class, (And love: it)] _|_/ From renggli at student.unibe.ch Sun Oct 5 16:36:34 2003 From: renggli at student.unibe.ch (Lukas Renggli) Date: Sun, 5 Oct 2003 16:36:34 +0200 Subject: Tests failed In-Reply-To: <1065360551.18660.11.camel@hoegaarden.noos.fr> Message-ID: <515F22C6-F741-11D7-9C20-000393CFE6C8@student.unibe.ch> Hi Serge, > i try to run the tests for the last version of SmallWiki available on > the Cincom public store. 17 tests failed all in the ParserTests ... thanks for reporting this problem! I didn't know that there was a new version of SmaCC available that handles the line-endings slightly different. However the parser updated did not break the functionality of the wiki-editing itself, but most of the tests failed as there was an additional empty paragraph at the end of every document. I just updated the code on Cincom and SCG StORE to work with the latest SmaCC release. See also the announcement in the proceeding e-mail for other fixes and updates I have done during the last days. Cheers, Lukas -- Lukas Renggli http://renggli.freezope.org From renggli at student.unibe.ch Sun Oct 5 18:16:49 2003 From: renggli at student.unibe.ch (Lukas Renggli) Date: Sun, 5 Oct 2003 18:16:49 +0200 Subject: [ANN] Alpha Version Updated Message-ID: <531321B4-F74F-11D7-A709-000393CFE6C8@student.unibe.ch> Hi, I just published a new version to SCG and Cincom StORE that fixes several problems and double-checked that everything runs out of the box, including the tests and the examples: - clicking on save when editing a page returns to the view - creating a new structure entity directly goes into edit-mode - uploading a resource returns to the page where the resource has been added from - folders are a subclass of page, so they might also contain a wiki document describing the content of the folder and giving a selection of links to its children - the default document for a folder is a script generating a list of the folder content automatically, so to the end-user it looks the same as before - when creating new structures from within a folder, a child of that folder will be created by default - when creating new structures form within a page, a brother/sister of that page will be created by default - fixed the parser problem reported by Serge - several other minor fixes The documentation of SmallWiki is also available now, download it from: http://www.iam.unibe.ch/~scg/smallwiki/smallwiki.pdf If there are no further comments about this version, I will release version 1.0 on Monday or Tuesday and hand it in into the Cincom goodie collection. I will leave for holiday on Friday, therefor I want everything to be done before ... Cheers, Lukas -- Lukas Renggli http://renggli.freezope.org From renggli at student.unibe.ch Tue Oct 7 07:46:06 2003 From: renggli at student.unibe.ch (Lukas Renggli) Date: Tue, 7 Oct 2003 07:46:06 +0200 Subject: smallwiki In-Reply-To: <003801c38c83$a9325b80$0201a8c0@d8100> Message-ID: <8BA2878F-F889-11D7-A256-000393CFE6C8@student.unibe.ch> Hi John, thanks a lot for you report! I have to go to work now and will only have a closer look at all those things today evening. Just wanted to answer your last question: > *) Is there some location I can download the .css files from? If I run > a > server, I'd prefer not to have to go to your server for each of the > .css > files. Also, are those files under the same MIT license? You can download the design and some documentation from the SmallWiki resource pool at: http://www.iam.unibe.ch/~scg/smallwiki/ Everything is released under the same MIT license, I should probably mention that somewhere inside those files ... Thanks, Lukas -- Lukas Renggli http://renggli.freezope.org From renggli at student.unibe.ch Tue Oct 7 07:46:06 2003 From: renggli at student.unibe.ch (Lukas Renggli) Date: Tue, 7 Oct 2003 07:46:06 +0200 Subject: smallwiki In-Reply-To: <003801c38c83$a9325b80$0201a8c0@d8100> Message-ID: <8BA2878F-F889-11D7-A256-000393CFE6C8@student.unibe.ch> Hi John, thanks a lot for you report! I have to go to work now and will only have a closer look at all those things today evening. Just wanted to answer your last question: > *) Is there some location I can download the .css files from? If I run > a > server, I'd prefer not to have to go to your server for each of the > .css > files. Also, are those files under the same MIT license? You can download the design and some documentation from the SmallWiki resource pool at: http://www.iam.unibe.ch/~scg/smallwiki/ Everything is released under the same MIT license, I should probably mention that somewhere inside those files ... Thanks, Lukas -- Lukas Renggli http://renggli.freezope.org From ducasse at iam.unibe.ch Tue Oct 7 09:13:23 2003 From: ducasse at iam.unibe.ch (ducasse) Date: Tue, 7 Oct 2003 09:13:23 +0200 Subject: Fwd: smallwiki Message-ID: Begin forwarded message: > From: ducasse > Date: Mar oct 7, 2003 09:00:08 Europe/Zurich > To: "John Brant" > Cc: Lukas Renggli , Alexandre Bergel > > Subject: Re: smallwiki > > Thanks john, > Excellent, I wish I would have you as a teacher, really! > > I learned something too. Could you let us know the bugs that you fixed > so that we can add tests? > By the way, will you work on another back-end storage? > > Another question that we have is how to bundle SmallWiki. I was > thinking that the version of the required package such as > SmaCC, SIXX, Swazoo should be fixed so that we do not have a bug > because one package is loaded while another version is expected. > > > Stef > > On Mardi, oct 7, 2003, at 05:32 Europe/Zurich, John Brant wrote: > >> I finally got around to porting SmallWiki to #Smalltalk. I've gotten >> it to >> run. I don't have any storage hooked up yet, but most things appear >> to be >> working. Anyway, here are some more comments: >> >> *) The Folder>>defaultDocument method adds a Code item instead of a >> Paragraph -- there's a missing ";". >> >> *) SwazooServer>>start has hard coded the ip to be '*'. >> >> *) The tests don't have great coverage. I had to fix several bugs >> after all >> tests passed. >> >> *) You can't save the Syntax page after you edit it. This occurs in >> VW also. >> It appears that it is interpreting the "*" inside the >> "*". >> >> *) When you have an exception handler, the exception block shouldn't >> just >> return since that isn't legal ANSI Smalltalk. For example, instead of >> having >> "[self something] on: Error do: [:ex | 5]" it should be "[self >> something] >> on: Error do: [:ex | ex return: 5]". >> >> *) Does the #nextVersionBecome: message ever get sent where the >> argument's >> class isn't the same as the receiver's class? I didn't see any places >> where >> that would happen so I changed it to be: >> >> nextVersionBecome: aStructure >> | previous | >> previous := self copy. >> self instanceVariableNames do: [:each | self instanceVariableNamed: >> each put: (aStructure instanceVariableNamed: each)]. >> self version: previous version + 1. >> self predecessor: previous. >> ^self >> >> This version gets around having to #become: the versions. >> >> *) Here's an ANSI version of the moveDown:ifError: >> >> moveDown: anObject ifError: aBlock >> | index temp | >> index := self indexOf: anObject. >> (index between: 1 and: self size - 1) >> ifTrue: [ temp := self at: index. >> self at: index put: (self at: index + 1). >> self at: index + 1 put: temp ] >> ifFalse: [ aBlock value ] >> >> #swap:with: and #find: are VW messages (probably Squeak also has >> them, but I >> don't think VA or Dolphin does). >> >> *) It would be nice if the integer comparisons used #= instead of >> #==. In >> #Smalltalk, "1 + 2 == 3" is false since I have to use real objects for >> integers. >> >> *) The VisitorRendererWiki>>contents message assumes that "stream cr" >> only >> puts one character in the string. It would be better if the #cr >> wasn't put >> on the stream to begin with so we didn't need the #copyFrom:to:. >> >> *) The Folder>>remove: method assumes that #remove: throws an error >> if the >> item isn't in the collection -- the ANSI standard says that the >> behavior is >> undefined, so #Smalltalk doesn't throw an error. Anyway, I doubt that >> it is >> really necessary, but there are a few tests for the error. >> >> *) Is there some location I can download the .css files from? If I >> run a >> server, I'd prefer not to have to go to your server for each of the >> .css >> files. Also, are those files under the same MIT license? >> >> >> John Brant >> >> >> > From renggli at student.unibe.ch Tue Oct 7 19:03:21 2003 From: renggli at student.unibe.ch (Lukas Renggli) Date: Tue, 7 Oct 2003 19:03:21 +0200 Subject: SmallWiki Message-ID: <2810DDDC-F8E8-11D7-917B-000393CFE6C8@student.unibe.ch> Hi Vassili, SmallWiki is almost ready for including into the goodie collection, I will just fix some bugs tonight that John Brant detected during his code-review and while porting to S#. So my question is the following: how is it the best to deploy and make sure that all the prerequisites (SmaCC, Swazoo, SIXX) work when installing? I think SmaCC and Swazoo will be included into the goodie collection anyway, but I don't know what version and if the auto-loading work properly. I played a bit around with 'Publish as Parcel ...' but it seemed to have problems while loading Swazoo and SmaCC and while initializing the classes of SmallWiki. Do you have any suggestion how to proceed? Thanks, Lukas -- Lukas Renggli http://renggli.freezope.org From renggli at student.unibe.ch Tue Oct 7 22:51:49 2003 From: renggli at student.unibe.ch (Lukas Renggli) Date: Tue, 7 Oct 2003 22:51:49 +0200 Subject: SmallWiki In-Reply-To: <003801c38c83$a9325b80$0201a8c0@d8100> Message-ID: <1288B4A0-F908-11D7-917B-000393CFE6C8@student.unibe.ch> Hi John, thanks a lot for your review! I really appreciate it, as you are the first one to report real bugs and to give lots of useful hints and suggestions. I am just writing this as kind of a log while looking at my code and trying to solve the problems. > *) The Folder>>defaultDocument method adds a Code item instead of a > Paragraph -- there's a missing ";". > > *) SwazooServer>>start has hard coded the ip to be '*'. Those bugs are fixed. > *) The tests don't have great coverage. I had to fix several bugs > after all > tests passed. > > [...] > > BTW, you could use my coverage tool to improve the tests. Currently, it > shows about 60% method coverage for the tests. Wow, that is really a great tool, I didn't knew about it. I will used it in the feature more regularly when writing tests. > *) You can't save the Syntax page after you edit it. This occurs in VW > also. > It appears that it is interpreting the "*" inside the "*". Yeah, that is a know problem: I build the parse-tree manually, because one would need to escape all the special characters like *, [, etc. using &xxx; Right now this is not on top of my to-do-list, but I will fix that some time. > *) When you have an exception handler, the exception block shouldn't > just > return since that isn't legal ANSI Smalltalk. For example, instead of > having > "[self something] on: Error do: [:ex | 5]" it should be "[self > something] > on: Error do: [:ex | ex return: 5]". > > [...] > > *) I found a few non-#return: exceptions while running the tests, but I > found others after. I finally ran the rewrite rule: > > ``@a > on: ``@b > do: [:`var | ``@c > `{:node | node isMessage not > or: [node receiver ~= `var]}] > -> > ``@a on: ``@b do: [:`var | `var return: ``@c] > > Most of these showed up as bugs in the permissions. For example, I > would get > a message saying that I couldn't do something, but it would also show > me the > stuff that I wasn't supposed to do. For example, I could see the > history or > edit blocks when I wasn't logged in. Didn't know about that, the way I wrote it seemed to me more natural. But if this is the ANSI standard, I will change it of course. Thanks for providing the rewrite rule, this is really a great tool to use for such kind of refactorings. However the rule did not detect that piece of code, what should have been probably also rewritten: ^[ WikiParser parse: input readStream for: nil ] on: Refactory.SmaCC.SmaCCParserError do: [ :error | Transcript show: 'WARNING: Unable to parse '; show: aClass name; cr. nil ] I didn't notice the problem with the permissions and could not reproduce in VisiualWorks. Is this only a problem with #Smalltalk? > *) Does the #nextVersionBecome: message ever get sent where the > argument's > class isn't the same as the receiver's class? I didn't see any places > where > that would happen so I changed it to be: > > nextVersionBecome: aStructure > | previous | > previous := self copy. > self instanceVariableNames do: [:each | self instanceVariableNamed: > each put: (aStructure instanceVariableNamed: each)]. > self version: previous version + 1. > self predecessor: previous. > ^self > > This version gets around having to #become: the versions. That makes the tests pass, but unfortunately the real issue doesn't seem to be covered by the tests. There might be links with references to that structure anywhere within the wiki that have to be updated. The cleanest solution (but maybe a bit slow) I can think of, would be to write a visitor walking through the documents and all its versions of the whole wiki and check manually all the internal links. As I have a test case for that behavior now, it should be easy to get rid of the one and only #become: in SmallWiki ... > *) Here's an ANSI version of the moveDown:ifError: > > moveDown: anObject ifError: aBlock > | index temp | > index := self indexOf: anObject. > (index between: 1 and: self size - 1) > ifTrue: [ temp := self at: index. > self at: index put: (self at: index + 1). > self at: index + 1 put: temp ] > ifFalse: [ aBlock value ] > > #swap:with: and #find: are VW messages (probably Squeak also has them, > but I > don't think VA or Dolphin does). Ok, I replaced the old code with your suggestion and added two test to check if it is really working as expected. > *) It would be nice if the integer comparisons used #= instead of #==. > In > #Smalltalk, "1 + 2 == 3" is false since I have to use real objects for > integers. Now I know that it is stupid to use #== when it wouldn't be needed. When starting with the project I had a different opinion, that is why there are still a lot of unnecessary #== in the code. I hope that I cleaned everything now ... > *) The VisitorRendererWiki>>contents message assumes that "stream cr" > only > puts one character in the string. It would be better if the #cr wasn't > put > on the stream to begin with so we didn't need the #copyFrom:to:. Well, this is just a dirty trick to make the parser work. As the wiki-syntax is line-based, I basically parse every line on its own up to the line-ending. Therefor I have to make sure that also the last line ends with a #cr. Another problem is, that the parser does not allow nested lists. I couldn't figure out how to parse this properly. The visitors however, would be able to render it correctly. #1 ##1.1 ##1.2 #2 #-2.1 #-#2.1.1 I am usually learning from examples, but I couldn't find a wiki-grammar anywhere on the web, so this is probably the first one ever written. Furthermore I must admit that I wrote the parse before I had any lecture about scanners, parsers and compilers, therefor there are even more such ugly things that might have been written in a much nicer way. If I find some time in the future I might try to rethink the whole parsing and look if I manage to make it better. > *) The Folder>>remove: method assumes that #remove: throws an error if > the > item isn't in the collection -- the ANSI standard says that the > behavior is > undefined, so #Smalltalk doesn't throw an error. Anyway, I doubt that > it is > really necessary, but there are a few tests for the error. Ok, I changed the code and raise the exception manually if necessary. > *) The tests didn't test evaluating code that returns a block and then > doing > a renderOn: that block. In #Smalltalk, it just evaluates the parse > trees > instead of compiling the code so evaluated code blocks are instances of > RBFakeEvaluationBlock instead of BlockClosure. When I loaded the > initial > page, it displayed "a RBFakeEvaluationBlock" instead of the items in > the > collection. Are you taking about code in the wiki-documents? I haven't thought about returning blocks and don't even know what this could be useful for? So instead of writing something like Current time is: [ [ :h | h render: Timestamp now ] ] you can always rewrite as Current time is: [ html render: Timestamp now. nil ] or even shorter Current time is: [ Timestam now ] These lines are all equivalent in VisualWorks, but I don't know about #Smalltalk. You must have seen that I am also using dirty tricks with the thisContext to setup global variables for that block. How do you manage that? Would you prefer just to have the current action passed as a parameter, even-tough the code written by the user would be longer in case he didn't want just to return a value? Current time is: [ :action |?action html render: Timestamp now. nil ] > *) The PageEdit>>exception: method wasn't covered in the tests. It > sends > #nextAvailable: which isn't implemented in #Smalltalk. I implement > #next: to > work that way. The ANSI standard says that the behavior is undefined > when > the integer is larger than the amount available, so I defined it to > just > return the remaining elements. Ok, that has been fixed. A long time ago I decided not to cover the action-package with tests. However, time has changed and there is a lot of code that is somehow critical, I probably have to write some tests in that area too. > *) The RecentChanges>>renderDate:changes: method isn't covered. > #Smalltalk > uses the ANSI DateAndTime and Duration classes. It doesn't have the > Date, > Time & Timestamp classes like VW. Anyway, the #asTime method isn't > implemented in #Smalltalk. Unfortunately there is no class DateAndTime and Duration in VisualWorks 7.1, so I cannot fix that problem easily. In that case Squeak seems to have better ANSI comparability than VisualWorks. > *) TemplateEdit>>repositoryIndex wasn't covered. #Smalltalk doesn't > have > #upToSeparator. I changed it to be #upTo: a space. Ok, I implemented it this way too. > *) PageHistory>>renderDocument: sends #contractTo: which wasn't > implemented > in #Smalltalk. I am using a more portable form of code there ... > BTW, are you using the latest version of SmaCC? I put one on the public > archive a week or two ago. It fixes a bug in the scanner generator > where > some token might be scanned correctly. For example, if you had > something > like: > : aa; > : .; > It might scan "aa" as instead of . In > addition to > that fix, I also explicitly put it under the MIT license. Yeah I noticed that, because Serge Stinckwich reported failing parser-tests when downloading SmallWiki from the Cincom Repository. I checked out the new version and had to tweak some minor things to make all the tests pass again. However the new SmaCC version had never been a problem when editing the page from the web. Today I have just published the changes to the SCG repository and I will push them to the Cincom Public repository tomorrow evening, after having written some more additional tests. Regards, Lukas -- Lukas Renggli http://renggli.freezope.org From brant at refactory.com Wed Oct 8 02:06:05 2003 From: brant at refactory.com (John Brant) Date: Tue, 7 Oct 2003 19:06:05 -0500 Subject: SmallWiki In-Reply-To: <1288B4A0-F908-11D7-917B-000393CFE6C8@student.unibe.ch> Message-ID: <006901c38d2f$fb1d8120$0201a8c0@d8100> > From: Lukas Renggli [mailto:renggli at student.unibe.ch] > > > *) You can't save the Syntax page after you edit it. This occurs in VW > > also. > > It appears that it is interpreting the "*" inside the "*". > > Yeah, that is a know problem: I build the parse-tree manually, because > one would need to escape all the special characters like *, [, etc. > using &xxx; Right now this is not on top of my to-do-list, but I will > fix that some time. I was wondering how to escape characters... How about using double characters (e.g., ** for a *)? > > *) When you have an exception handler, the exception block shouldn't > > just > > return since that isn't legal ANSI Smalltalk. For example, instead of > > having > > "[self something] on: Error do: [:ex | 5]" it should be "[self > > something] > > on: Error do: [:ex | ex return: 5]". > > Didn't know about that, the way I wrote it seemed to me more natural. > But if this is the ANSI standard, I will change it of course. Well, I may be telling you wrong. I just read the #signal method on the ANSI standard, and it appears that "[self foo] on: Error do: [:e | 5]" should be "5". Now, I can't remember where I saw that it was undefined. Anyway, I'll change the #Smalltalk implementation so that "[self foo] on: Error do: [:e | 5]" returns 5. You shouldn't need to change your code. > I didn't notice the problem with the permissions and could not > reproduce in VisiualWorks. Is this only a problem with #Smalltalk? You can't reproduce it in VW -- it was in #Smalltalk. #Smalltalk treated the behavior as undefined, which means that it was effectively resuming the exception and the code continued to run so you would get a message saying that you didn't have the permissions to do something and then it would show you want you weren't supposed to do. > > *) Does the #nextVersionBecome: message ever get sent where the > > argument's > > class isn't the same as the receiver's class? I didn't see any places > > where > > that would happen so I changed it to be: > > > > nextVersionBecome: aStructure > > | previous | > > previous := self copy. > > self instanceVariableNames do: [:each | self instanceVariableNamed: > > each put: (aStructure instanceVariableNamed: each)]. > > self version: previous version + 1. > > self predecessor: previous. > > ^self > > > > This version gets around having to #become: the versions. > > That makes the tests pass, but unfortunately the real issue doesn't > seem to be covered by the tests. There might be links with references > to that structure anywhere within the wiki that have to be updated. The > cleanest solution (but maybe a bit slow) I can think of, would be to > write a visitor walking through the documents and all its versions of > the whole wiki and check manually all the internal links. As I have a > test case for that behavior now, it should be easy to get rid of the > one and only #become: in SmallWiki ... I might not be understanding you, but I believe that it does handle that case. In my version, everyone only references the current page. When you create a new version, it creates a copy of the current object for history and then copies all of the data to the current object. The current page is always the same object -- it just gets different data copied into it. Anyway, I don't believe either approach is the best. Instead I would like to see an object that is a structure holder. It would contain things like the title, parent, and the current structure. The structure object would contain the stuff that changes between edits. When a page object referenced another structure, it would hold the structure holder object instead of a particular structure. This gets around the #become: hack by putting another level of indirection in there. Furthermore, I believe it would be easier to model this in a db than the current approach. BTW, it appears that only the root structure has dependents. You could get around having the dependents by having the root structure be a child of the server and then adding a #changed:with: method to the server to update the storage (of course this would limit the root to only be in one server). Also, it might be better to have storage be a dependent of server instead of an instance variable. > > *) It would be nice if the integer comparisons used #= instead of #==. > > In > > #Smalltalk, "1 + 2 == 3" is false since I have to use real objects for > > integers. > > Now I know that it is stupid to use #== when it wouldn't be needed. > When starting with the project I had a different opinion, that is why > there are still a lot of unnecessary #== in the code. I hope that I > cleaned everything now ... I still have lots of code lying around that uses #== when it isn't necessary. Anyway, for the SmallWiki, I was able to change most of them using: ``@a == `#l `{:node | node value isKindOf: Number} -> ``@a = `#l > > *) The tests didn't test evaluating code that returns a block and then > > doing > > a renderOn: that block. In #Smalltalk, it just evaluates the parse > > trees > > instead of compiling the code so evaluated code blocks are instances of > > RBFakeEvaluationBlock instead of BlockClosure. When I loaded the > > initial > > page, it displayed "a RBFakeEvaluationBlock" instead of the items in > > the > > collection. > > Are you taking about code in the wiki-documents? I haven't thought > about returning blocks and don't even know what this could be useful > for? So instead of writing something like Essentially, this was a shortcoming in the tests. Even though all the tests passed under #Smalltalk, the folders didn't display correctly. Instead of a list of the items in the folder, I just got "a RBFakeEvaluationBlock". BTW, if you press the move up/down buttons in the template settings when nothing is selected, you'll get a walkback. The bug is the #find: message send -- it gives an error if the object isn't in the collection. My ANSI versions of these methods should fix the bug... John Brant From ducasse at iam.unibe.ch Wed Oct 8 08:57:20 2003 From: ducasse at iam.unibe.ch (ducasse) Date: Wed, 8 Oct 2003 08:57:20 +0200 Subject: SmallWiki In-Reply-To: <006901c38d2f$fb1d8120$0201a8c0@d8100> Message-ID: Hi john >>> *) When you have an exception handler, the exception block shouldn't >>> just >>> return since that isn't legal ANSI Smalltalk. For example, instead of >>> having >>> "[self something] on: Error do: [:ex | 5]" it should be "[self >>> something] >>> on: Error do: [:ex | ex return: 5]". >> >> Didn't know about that, the way I wrote it seemed to me more natural. >> But if this is the ANSI standard, I will change it of course. > > Well, I may be telling you wrong. I just read the #signal method on > the ANSI > standard, and it appears that "[self foo] on: Error do: [:e | 5]" > should be > "5". Now, I can't remember where I saw that it was undefined. Anyway, > I'll > change the #Smalltalk implementation so that "[self foo] on: Error do: > [:e | > 5]" returns 5. You shouldn't need to change your code. If you can check that this would be good to know what is the good way to write exception handlers. > I might not be understanding you, but I believe that it does handle > that > case. In my version, everyone only references the current page. When > you > create a new version, it creates a copy of the current object for > history > and then copies all of the data to the current object. The current > page is > always the same object -- it just gets different data copied into it. > > Anyway, I don't believe either approach is the best. Instead I would > like to > see an object that is a structure holder. It would contain things like > the > title, parent, and the current structure. The structure object would > contain > the stuff that changes between edits. When a page object referenced > another > structure, it would hold the structure holder object instead of a > particular > structure. This gets around the #become: hack by putting another level > of > indirection in there. Furthermore, I believe it would be easier to > model > this in a db than the current approach. This is an interesting idea. I like this discussion because SmallWiki can become really excellent. stef From brant at refactory.com Wed Oct 8 17:57:04 2003 From: brant at refactory.com (John Brant) Date: Wed, 8 Oct 2003 10:57:04 -0500 Subject: remove from folder bug & cache comment Message-ID: <009101c38db4$d174d370$0201a8c0@d8100> There is a bug when deleting pages. Here is a test case: 1) Add a *Test* link to the Introduction page 2) Click the Page link to create a new Test page 3) Save the Test page 4) Go to the Information folder and "remove" the Test page 5) Go back to the Introduction page and click the Page link to create a new Test page 6) Save the new Test page 7) Go back to the Introduction page -- the Folder, Page, Resource items are still there. However the Information page contains a Test page. If you click the Page link again, it will create a Test1 page, but it won't update the Introduction page. Also, the cache uses a simple scheme for assigning keys (+1). Isn't this scheme too simple for web apps? For example, I could look at the page source, and come up with callbacks that are likely to be valid. For example, if I see callbacks for 341-344, I could try evaluating code for 340. This might execute a callback for some other person. Shouldn't the keys be some large random number instead? John Brant From renggli at student.unibe.ch Wed Oct 8 21:54:10 2003 From: renggli at student.unibe.ch (Lukas Renggli) Date: Wed, 8 Oct 2003 21:54:10 +0200 Subject: remove from folder bug & cache comment Message-ID: <2F12A7B2-F9C9-11D7-AFBD-000393CFE6C8@student.unibe.ch> Hi John, > There is a bug when deleting pages. Here is a test case: > 1) Add a *Test* link to the Introduction page > 2) Click the Page link to create a new Test page > 3) Save the Test page > 4) Go to the Information folder and "remove" the Test page > 5) Go back to the Introduction page and click the Page link to create > a new > Test page > 6) Save the new Test page > 7) Go back to the Introduction page -- the Folder, Page, Resource > items are > still there. However the Information page contains a Test page. If you > click > the Page link again, it will create a Test1 page, but it won't update > the > Introduction page. - This bug has been fixed. At the same time I have cleaned the code with the internal links a little bit, as this was not the only case where they showed wrong behavior. The look-up of the link-target is now done dynamically whenever the page is rendered, so I am always up-to-date. However the new implementation does not update automatically when renaming the target. In a future version a visitor could be added to fix that kind of problem. Of course I've also added some new tests. - I have added a couple of missing tests, especially for the serving part with the chain-of-responsibility pattern. This raises the overall coverage of the tests to about 75% immediately. > Also, the cache uses a simple scheme for assigning keys (+1). Isn't > this > scheme too simple for web apps? For example, I could look at the page > source, and come up with callbacks that are likely to be valid. For > example, > if I see callbacks for 341-344, I could try evaluating code for 340. > This > might execute a callback for some other person. Shouldn't the keys be > some > large random number instead? - The tricky thing about the callbacks is, that they have to be evaluated in the right order. To archive this, I sort the callbacks according to their number to make sure that they are evaluated in the same order as they had been defined on the page. In most cases this is no security-issue as the the global permission of the action is checked before evaluating the callbacks. However, and in that part your concerns were absolutely right, there are some links in the EditFolder action that require special permission (remove, copy) and that had not been checked properly before. I've added some additional code to handle this. The optimal solution would be to have a huge and random session key combined with small callback-numbers unique to that session. Probably this will come in the future, when there is a proper session support in SmallWiki. I've committed the changes to Cincom StORE. Cheers, Lukas -- Lukas Renggli http://renggli.freezope.org From brant at refactory.com Thu Oct 9 17:04:09 2003 From: brant at refactory.com (John Brant) Date: Thu, 9 Oct 2003 10:04:09 -0500 Subject: remove from folder bug & cache comment In-Reply-To: <2F12A7B2-F9C9-11D7-AFBD-000393CFE6C8@student.unibe.ch> Message-ID: <00ca01c38e76$9aa86c40$0201a8c0@d8100> > From: Lukas Renggli [mailto:renggli at student.unibe.ch] > > - This bug has been fixed. At the same time I have cleaned the code > with the internal links a little bit, as this was not the only case > where they showed wrong behavior. The look-up of the link-target is now > done dynamically whenever the page is rendered, so I am always > up-to-date. However the new implementation does not update > automatically when renaming the target. In a future version a visitor > could be added to fix that kind of problem. Of course I've also added > some new tests. Instead of having a visitor walk all pages looking for links, you could either (a) have indirection between links and structures or (b) have structures remember what pages are linked to them. You could implement (a) using a simple table (number <-> structure) or StructureHolder objects. Option (b) would make it easy to implement "references to" tools. John Brant From brant at refactory.com Thu Oct 9 17:43:07 2003 From: brant at refactory.com (John Brant) Date: Thu, 9 Oct 2003 10:43:07 -0500 Subject: change notification Message-ID: <00cb01c38e7c$0bfe2600$0201a8c0@d8100> I was looking at adding a file based storage mechanism. I want it to save each change to a file whenever it happens, instead of waiting some interval and then saving all pages. Anyway, I've added my new class, but it appears that the #changed: message is getting the wrong argument. The argument name is "aStructure", but it is rarely a structure. It appears that most of the time it is an Action (e.g., PageEdit, Login, etc.). The only time that I noticed a structure was when I added something to the folder using the Contents page. I would recommend renaming Storage>>changed: and Storage>>changed. These messages are already defined on Object for dependents handling, but these methods are doing something different. Finally, I'd recommend against modifying collections outside of their containing object. For example, the FolderEdit>>moveDown: reaches inside the Folder object and manipulates the children collection. The Folder should be the only object that manipulates its children collection. Externally modifying the collection makes it hard to change the representation in the future. John Brant From ducasse at iam.unibe.ch Thu Oct 9 19:36:48 2003 From: ducasse at iam.unibe.ch (ducasse) Date: Thu, 9 Oct 2003 19:36:48 +0200 Subject: change notification In-Reply-To: <00cb01c38e7c$0bfe2600$0201a8c0@d8100> Message-ID: <2903220E-FA7F-11D7-B778-000A9573EAE2@iam.unibe.ch> > I was looking at adding a file based storage mechanism. I want it to > save > each change to a file whenever it happens, instead of waiting some > interval > and then saving all pages. Excellent. > Anyway, I've added my new class, but it appears > that the #changed: message is getting the wrong argument. The argument > name > is "aStructure", but it is rarely a structure. It appears that most of > the > time it is an Action (e.g., PageEdit, Login, etc.). The only time that > I > noticed a structure was when I added something to the folder using the > Contents page. > > I would recommend renaming Storage>>changed: and Storage>>changed. > These > messages are already defined on Object for dependents handling, but > these > methods are doing something different. I agree because this is confused, especially as they implement the update part of dependency > > Finally, I'd recommend against modifying collections outside of their > containing object. For example, the FolderEdit>>moveDown: reaches > inside the > Folder object and manipulates the children collection. The Folder > should be > the only object that manipulates its children collection. Externally > modifying the collection makes it hard to change the representation in > the > future. Yes. Stef From renggli at student.unibe.ch Thu Oct 9 20:58:57 2003 From: renggli at student.unibe.ch (Lukas Renggli) Date: Thu, 9 Oct 2003 20:58:57 +0200 Subject: change notification In-Reply-To: <00cb01c38e7c$0bfe2600$0201a8c0@d8100> Message-ID: Hi John, > I was looking at adding a file based storage mechanism. I want it to > save > each change to a file whenever it happens, instead of waiting some > interval > and then saving all pages. Anyway, I've added my new class, but it > appears > that the #changed: message is getting the wrong argument. The argument > name > is "aStructure", but it is rarely a structure. It appears that most of > the > time it is an Action (e.g., PageEdit, Login, etc.). The only time that > I > noticed a structure was when I added something to the folder using the > Contents page. > > I would recommend renaming Storage>>changed: and Storage>>changed. > These > messages are already defined on Object for dependents handling, but > these > methods are doing something different. I know that this part is not perfect right now. St?phane already told me that I misuse the method-names #changed: and #changed, but as that part of SmallWiki isn't used at all up-to-now, I didn't felt the need to fix it immediately. I will correct it as soon as I am back from the Netherlands, but if you want to fix it directly in the Cincom repository, feel free to do so and I will be glad to continue working on this version. I won't be able to touch the sources the next 10 days. > Finally, I'd recommend against modifying collections outside of their > containing object. For example, the FolderEdit>>moveDown: reaches > inside the > Folder object and manipulates the children collection. The Folder > should be > the only object that manipulates its children collection. Externally > modifying the collection makes it hard to change the representation in > the > future. I noticed this problem when using code-critics with my code and I will fix it as soon as possible. Probably I should even remove the direct accessors to the children of a folder. Especially as a speed-up to look-up the children might be needed in the near future. Regards, Lukas -- Lukas Renggli http://renggli.freezope.org From Roel.Wuyts at ulb.ac.be Fri Oct 10 12:36:53 2003 From: Roel.Wuyts at ulb.ac.be (Roel Wuyts) Date: Fri, 10 Oct 2003 12:36:53 +0200 Subject: change notification In-Reply-To: Message-ID: [cut stuff] > I noticed this problem when using code-critics with my code and I will > fix it as soon as possible. Probably I should even remove the direct > accessors to the children of a folder. Especially as a speed-up to > look-up the children might be needed in the near future. First profile if you want to optimize for speed. -- Roel From brant at refactory.com Tue Oct 14 02:32:56 2003 From: brant at refactory.com (John Brant) Date: Mon, 13 Oct 2003 19:32:56 -0500 Subject: parser Message-ID: <019d01c391ea$b94816b0$0201a8c0@d8100> I published a new version of SmallWiki to the public repository. I rewrote the parser. It is ~8x faster parsing the introduction page. Also, it doesn't need an extra CR at the end of the stream. Finally, it has support for special characters inside the text (e.g., ** is parsed as text for * not an empty link -- you can also use \*), and also support for nested list items (e.g., ## to nest two numbered lists). However, the last two aren't hooked up for round tripping yet (i.e., when you re-edit the page, it won't display properly). In addition to the parser, I added a #withAll: method to DocumentComposite class and fixed a bug where Server assumed that its storage was a SnapshotStorage. Whenever you set the storage, the server told the storage to #start/stopThread. Besides the SmallWiki changes, I published a package (SmallWiki WikiWorks Importer) that extracts pages from a WikiWorks site. You can run it using "WikiWorksWikiExtractor download: 'Refactoring Browser' from: 'http://wiki.cs.uiuc.edu/RefactoringBrowser'". It will download the page and everything in the wiki reachable from that page. I've used it to download the RB and VW wikis from http://wiki.cs.uiuc.edu. BTW, I'd suggest caching the Structure>>id. After I loaded the VW wiki into SmallWiki and did a search, it was about 5x slower than the wiki.cs.uiuc.edu search (and my machine is likely 10x faster). 90% of the search time was the asWikiIdentifier from Structure>>id. John Brant From renggli at student.unibe.ch Thu Oct 16 09:06:23 2003 From: renggli at student.unibe.ch (Lukas Renggli) Date: Thu, 16 Oct 2003 09:06:23 +0200 Subject: SmallWiki suggestion In-Reply-To: Message-ID: <403C392D-FFA7-11D7-8B7C-000393CFE6C8@student.unibe.ch> Hi Michele, > PS. Let's give it a try: on the 'Changes' page of the Swiki I would > like to see who made the changes by listing either an IP address and > some machine info (Swiki does it like that) or (hmm.. ;-) even better: > The 'Role' of the Person editing the page (was it the creator, a > maintainer, a (supposedly) read-only person, or some stranger). The > information should be displayed in a nice table (perhaps on a > on-the-fly generated page) when I inspect the changes. (This could be > pushed even further in case a SmallWiki is highly used: an automatic > 'hacker' detector which correlates some information (for example > consistent uploads etc.) and triggers automatic defense mechanisms > like making the Swiki unreadable.. ;-\) the problem here is that this information is not collected right now, but of course one could add it easily. I am usually adding that kind of things when there is the need, but right now I am on holiday, therefor you have to implement it for yourself or wait a few weeks. > PPS. You have to protect the top-page (which is the admin page) of the > current Smallwiki on kilana by means of a password or something like > that. The top-page (it is actually a folder) is no different to other pages. If one wants to simulate the SWiki behavior it is possible to protect it, of course, but I try to keep everything as open as possible and just protect the things that might harm your system per default. Cheers, Lukas -- Lukas Renggli http://renggli.freezope.org From ducasse at iam.unibe.ch Fri Oct 17 09:18:54 2003 From: ducasse at iam.unibe.ch (ducasse) Date: Fri, 17 Oct 2003 09:18:54 +0200 Subject: About indexation for SmallWiki Message-ID: <2A76D6E8-0072-11D8-95B7-000A9573EAE2@iam.unibe.ch> Sorry in french but this is related to search facility and indexing > Comme source d'inspiration, il faudrait regarder du c?t? de Luc?ne, un > moteur d'indexation et recherche ?crit en Java > (http://jakarta.apache.org/lucene/) > ainsi que de sa version Python Lupy (http://www.divmod.org/Lupy/). La > version Python permet de lire > notamment les index cr??s par la version Java. > > On doit pouvoir faire aussi bien en Smalltalk et avoir une certaine > compatibilit? avec Luc?ne ! Il n'y a pas un ?tudiant > sur la liste qui cherche un projet ? ;-) Je peux essayer de proposer > cela > chez moi comme projet de maitrise ?galement. From nic at soops.nl Fri Oct 17 10:28:18 2003 From: nic at soops.nl (Nicole) Date: Fri, 17 Oct 2003 10:28:18 +0200 Subject: Smallwiki -> add picture in pages Message-ID: Hallo, i started working with smallwiki! I use pages and internal links for viewing my textest.. I have some picture that must be includes in my text pages. How can i do this in Smallwiki? I can not find some area where i can upload pictures, or other files? TIA Nic ``-'' ( @ @ ) ------ooooO--(_)--Ooooo------ From vogel at iam.unibe.ch Fri Oct 17 11:35:59 2003 From: vogel at iam.unibe.ch (david vogel) Date: Fri, 17 Oct 2003 11:35:59 +0200 Subject: status of the roels admin interface Message-ID: <3F8FB7FF.90608@iam.unibe.ch> Hi lukasand others, This is stef on the keyboard :) we got a meeting today with david and michele here is the summary: next steps: - david will release soon (next week) the simplest version of his role management interface then release regurlarly new version. - David will work on tests!!!YES - alex should finish the SwikiImporter so put pressure on him :) - alex should also check with Eric how to provide IP blocking and other functionality. Could you sync with with so that you review his code and integrate in the new release of SmallWiki and we get the kilana SmallWiki always running the latest version ? - David should check with you how/if this is possible to have sessions information to improve the folder/paste editions - David should release soon folder/page copy /paste utilities - Michele started to use SmallWiki for his lecture so we have a real customer, may be you can arrange a coding session with michele so that he learns how to extend SmallWiki. Stef and the others :) From ducasse at iam.unibe.ch Fri Oct 17 12:30:30 2003 From: ducasse at iam.unibe.ch (ducasse) Date: Fri, 17 Oct 2003 12:30:30 +0200 Subject: Smallwiki -> add picture in pages In-Reply-To: Message-ID: Just create a link with ** then select resources :) Let us know if this is ok (we know that a upload button could be cool) Stef On Vendredi, oct 17, 2003, at 10:28 Europe/Zurich, Nicole wrote: > Hallo, > i started working with smallwiki! > > I use pages and internal links for viewing my textest.. > I have some picture that must be includes in my text pages. > How can i do this in Smallwiki? > > I can not find some area where i can upload pictures, or other files? > > TIA Nic > ``-'' > ( @ @ ) > ------ooooO--(_)--Ooooo------ > From nic at soops.nl Fri Oct 17 15:05:01 2003 From: nic at soops.nl (Nic) Date: Fri, 17 Oct 2003 15:05:01 +0200 Subject: Smallwiki -> add picture in pages In-Reply-To: Message-ID: it works .. i create a resource and i can "upload" my picture but i create a test page with one of my pictures: How can i remove this resources (not the link -> the real resources) ? TH NIC -----Original Message----- From: owner-smallwiki at iam.unibe.ch [mailto:owner-smallwiki at iam.unibe.ch]On Behalf Of ducasse Sent: 17 October 2003 12:31 To: Nicole Cc: smallwiki at iam.unibe.ch Subject: Re: Smallwiki -> add picture in pages Just create a link with ** then select resources :) Let us know if this is ok (we know that a upload button could be cool) Stef On Vendredi, oct 17, 2003, at 10:28 Europe/Zurich, Nicole wrote: > Hallo, > i started working with smallwiki! > > I use pages and internal links for viewing my textest.. > I have some picture that must be includes in my text pages. > How can i do this in Smallwiki? > > I can not find some area where i can upload pictures, or other files? > > TIA Nic > ``-'' > ( @ @ ) > ------ooooO--(_)--Ooooo------ > From renggli at student.unibe.ch Fri Oct 17 21:20:21 2003 From: renggli at student.unibe.ch (Lukas Renggli) Date: Fri, 17 Oct 2003 21:20:21 +0200 Subject: Smallwiki -> add picture in pages In-Reply-To: Message-ID: Hi Nicole, > I use pages and internal links for viewing my textest.. > I have some picture that must be includes in my text pages. > How can i do this in Smallwiki? you should have asked this question earlier this week, because I visited your company with Adriaan on Monday morning this week ;) Well, Stef already told you how to upload images, so there is only the following comment to add: pictures are not handled the same as this had been made with WikiWorks or SWiki. I think the documentation, even-tough it is quite technical, should shed some more light on this: http://www.iam.unibe.ch/~scg/smallwiki/smallwiki.pdf > How can i remove this resources (not the link -> the real resources) ? Go to the parent folder of the resource you uploaded and edit that folder. There you have the possibility to remove any resource, page, folder, etc when logged in. The above explanation only applies for the old beta-version of SmallWiki, as far as I have seen you are still using that one. I think you should consider updating to the latest alpha-version as there are some important bug-fixes and also the handling with resource- and folder-handling is simpler and more convenient for the end-users. As soon as I am back from the Netherlands, I will release SmallWiki 1.0, unfortunately everything has been slightly delayed because of my holidays. As I won't have time to do that during the coming week (university starts again, a lot of other work, etc), it definitely won't be before the next weekend. Cheers, Lukas -- Lukas Renggli http://renggli.freezope.org From bergel at iam.unibe.ch Sat Oct 18 10:52:38 2003 From: bergel at iam.unibe.ch (Alexandre Bergel) Date: Sat, 18 Oct 2003 10:52:38 +0200 Subject: Suggestion about this mailing list Message-ID: <20031018085238.GD1001@iam.unibe.ch> Hello I do not know if you share my feeling, but perhaps the administrator of this list can set the reply address to smallwiki instead of the sender of the mail. Cheers, Alexandre -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.iam.unibe.ch/~bergel ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. From bergel at iam.unibe.ch Sat Oct 18 13:34:39 2003 From: bergel at iam.unibe.ch (Alexandre Bergel) Date: Sat, 18 Oct 2003 13:34:39 +0200 Subject: Test, do not read Message-ID: <20031018113439.GB5361@iam.unibe.ch> -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.iam.unibe.ch/~bergel ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. From bergel at iam.unibe.ch Sat Oct 18 13:35:47 2003 From: bergel at iam.unibe.ch (Alexandre Bergel) Date: Sat, 18 Oct 2003 13:35:47 +0200 Subject: It Works now Re: Test, do not read In-Reply-To: <20031018113439.GB5361@iam.unibe.ch> References: <20031018113439.GB5361@iam.unibe.ch> Message-ID: <20031018113547.GC5361@iam.unibe.ch> Okay, it works by now... When you reply, to reply to the mailing list, and not to the sender of the email. Alexandre On Sat, Oct 18, 2003 at 01:34:39PM +0200, Alexandre Bergel wrote: > > -- > _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: > Alexandre Bergel http://www.iam.unibe.ch/~bergel > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.iam.unibe.ch/~bergel ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. From renggli at student.unibe.ch Sun Oct 19 18:32:01 2003 From: renggli at student.unibe.ch (Lukas Renggli) Date: Sun, 19 Oct 2003 18:32:01 +0200 Subject: Problem starting SmallWiki In-Reply-To: Message-ID: Hi, > perhaps you can help me: I've loaded SmallWiki from Public Store > (V0.9.18 for SmallWiki and V.5 for Swazzo), and if I try > > [...] > > I'm using vw-nc release 7. We are using vw-nc 7.1 for development, but if you load the latest version of Swazoo and the other prerequisites from Cincom StORE it should just work fine. > 'Unhandled exception: Message not understood: #ip:' > Swazoo.HTTPServer(Object)>>doesNotUnderstand: > SmallWiki.SwazooServer>>start > SmallWiki.SwazooServer class(SmallWiki.Server class)>>startOn:host:ip: > SmallWiki.SwazooServer class(SmallWiki.Server class)>>startOn: > ... That is strange, because in my image there is the message #ip: implemented in SmallWiki.Server, the superclass of SmallWiki.SwazooServer. You could try to reload the latest version of SmallWiki from the Cincom StORE, to see if that help. Well, this is the only suggestion I can think of at the moment ... Cheers, Lukas -- Lukas Renggli http://renggli.freezope.org From renggli at student.unibe.ch Sun Oct 19 20:14:36 2003 From: renggli at student.unibe.ch (Lukas Renggli) Date: Sun, 19 Oct 2003 20:14:36 +0200 Subject: Problem starting SmallWiki In-Reply-To: <9CCDB4BC-025E-11D8-B170-000393BE4B6A@t-online.de> Message-ID: <1899514D-0260-11D8-B266-000393CFE6C8@student.unibe.ch> > Thats the same in my image, there is really a message ip and ip: . so > the problem may have other reasons ? StORE is sometimes a mystery to me, I already experienced quite a lot of strange bugs while developing SmallWiki. One more thing that you could check, is if SmallWiki.SwazooServer is a subclass of SmallWiki.Server, else I do not understand why it cannot find the message #ip: > Of course, I will also load the newest version (must I remove the old > package before doing this ?) Usually it should work without unloading. > Perhaps we could talk a little bit about Smallwiki on Smalltalk Party > in november....... Yep, I will be there and could also present some new features and decisions made recently. Until then the Version 1.0 should be ok ;) Cheers, Lukas -- Lukas Renggli http://renggli.freezope.org From renggli at student.unibe.ch Sun Oct 19 20:50:32 2003 From: renggli at student.unibe.ch (Lukas Renggli) Date: Sun, 19 Oct 2003 20:50:32 +0200 Subject: status of the roels admin interface In-Reply-To: <3F8FB7FF.90608@iam.unibe.ch> Message-ID: <1DB3FE82-0265-11D8-B266-000393CFE6C8@student.unibe.ch> > - david will release soon (next week) the simplest version of his role > management interface then release regurlarly new version. > > [...] > > Could you sync with with so that you review his code and integrate in > the new release of SmallWiki and we get the kilana SmallWiki always > running the latest version ? Cool, I did had a brief look at the source-code and the functionality of the latest version. Some things you might want to consider: - The generated output has to be valid XHTML, that means you have to remove all the layout information (e.g. attributeAt: 'bgcolor' put: '#D5D5FF' or #bold:) from your rendering-code. This is like going to the roots using only
, and , well I do not take it too serious: you might see some

,

and in rare cases some tags in my code. - You still don't use the callback mechanism properly. Why are you creating submit-buttons and then deciding what to do by comparing the button strings? It is possible to directly assign blocks or message-sends to buttons! I should probably consider writing some additional SmallLint rules ... - Please do not use JavaScript, the things you are doing might be done easily with simple http. The application shows quite a strange behaviour if you have disabled JavaScript, as I usually do on my machines. - You have references to non-standard (non-existing) css-styles. - There is 1 message sent not implemented. - You have 7 references to undeclared variables. - You should get rid of all those #isKindOf: message sends. - Instead of using the #, operator you might want to use "String new streamContents: [ :stream | stream nextPutAll: ... ]", a great thing that I 'ported' from Squeak to build up strings. - What the hell are you doing on the class side of Utilities? I don't understand ... Wouldn't be "SmallWiki at: aString asSymbol ifAbsent: [ nil ]" or "self environment at: aString asSymbol ifAbsent: [ nil ]" do exactly the same thing? - There are some code duplications, e.g. AdminRoles>>renderContent and AdminUsers>>renderContent - In the same messages as stated in the above example you should use "aString isEmpty ifTrue: [ ..." instead of "aString = '' ifTrue: [ ..." > - David should check with you how/if this is possible to have sessions > information to improve the folder/paste editions It is quite simple doing like Zope and using cookies. You might want to have a look at the python source-code, it is quite instructive ... Hope that helps, Lukas -- Lukas Renggli http://renggli.freezope.org From ducasse at iam.unibe.ch Mon Oct 20 15:30:31 2003 From: ducasse at iam.unibe.ch (ducasse) Date: Mon, 20 Oct 2003 15:30:31 +0200 Subject: Fwd: Problem starting SmallWiki Message-ID: <938F4304-0301-11D8-BB93-000A9573EAE2@iam.unibe.ch> Hi hans Lukas will certainly reply soon to you. We know that we have to find a good to package SmallWiki. In fact wtih store before 7.1, it was impossible to specify the exact version of bundles. So we never use this and it may happen that you load the wrong version of Swazoo. In vw 7.1 store does not have this problem anymore so we should think about having a one click SmallWiki. May be try with vw7.1? Stef Begin forwarded message: > From: HNBeck at t-online.de (Hans Nikolaus Beck) > Date: Dim oct 19, 2003 09:12:46 Europe/Zurich > To: ducasse Stephane , renggli at iam.unibe.ch > Subject: Problem starting SmallWiki > > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Hi, > > perhaps you can help me: I've loaded SmallWiki from Public Store > (V0.9.18 for SmallWiki and V.5 for Swazzo), and if I try > > server := SmallWiki.SwazooServer startOn: 8080. > > I got these errors on stack: > > 'Unhandled exception: Message not understood: #ip:' > Swazoo.HTTPServer(Object)>>doesNotUnderstand: > SmallWiki.SwazooServer>>start > SmallWiki.SwazooServer class(SmallWiki.Server class)>>startOn:host:ip: > SmallWiki.SwazooServer class(SmallWiki.Server class)>>startOn: > UndefinedObject>>unboundMethod > UndefinedObject(Object)>>performMethod:arguments: > UndefinedObject(Object)>>performMethod: > TextEditorController(ParagraphEditor)>>evaluateCompiled: > optimized [] in ParagraphEditor>>evaluateSelection > BlockClosure>>ensure: > Cursor>>showWhile: > TextEditorController(ParagraphEditor)>>evaluateSelection > optimized [] in ParagraphEditor>>doIt > BlockClosure>>on:do: > TextEditorController(ParagraphEditor)>>doIt > WorkspacePage>>doIt > Workspace(AbstractWorkspace)>>smalltalkDoIt > optimized [] in ApplicationModel>>actionFor: > optimized [] in ToolBar>>newButtonFor: > PluggableAdaptor>>setValue: > PluggableAdaptor(ValueModel)>>value: > TriggerButtonController>>pressAction > TriggerButtonTracker(BasicButtonTracker)>>finishSelectionFor: > TriggerButtonTracker>>finishSelectionFor: > TriggerButtonTracker(SelectionTracker)>>redButtonReleasedEvent: > RedButtonReleasedEvent>>dispatchTo: > TriggerButtonTracker(SelectionTracker)>>handleEvent: > EventDispatcher>>dispatch:to: > EventDispatcher>>dispatchEvent: > optimized [] in ApplicationStandardSystemController>>dispatchEvent: > BlockClosure>>ensure: > ApplicationStandardSystemController>>dispatchEvent: > ApplicationStandardSystemController>>eventLoop > ApplicationStandardSystemController>>controlLoop > ApplicationStandardSystemController(Controller)>>startUp > optimized [] in StandardSystemController>>startUp > BlockClosure>>on:do: > BlockClosure>>on:from:do: > ApplicationStandardSystemController(StandardSystemController)>>startUp > optimized [] in ControlManager>>activeControllerLoop > BlockClosure>>on:do: > ControlManager>>activeControllerLoop > optimized [] in ControlManager>>launchBaseProcess > BlockClosure>>on:do: > optimized [] in Process class>>forBlock:priority: > > I'm using vw-nc release 7. > > Greetings and thanks > > Hans > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.2.1 (Darwin) > > iD8DBQE/kjlyX8NXna8434cRAguwAJ0RHvv1NITZTShHEKENQ96D9mGwswCeJL9n > XqyokqxzpA2hk1TBc0VHgpI= > =Uxct > -----END PGP SIGNATURE----- > From HNBeck at t-online.de Mon Oct 20 20:20:08 2003 From: HNBeck at t-online.de (Hans Nikolaus Beck) Date: Mon, 20 Oct 2003 20:20:08 +0200 Subject: Problem starting SmallWiki In-Reply-To: <938F4304-0301-11D8-BB93-000A9573EAE2@iam.unibe.ch> Message-ID: <09144985-032A-11D8-89A3-000393BE4B6A@t-online.de> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi, Am Montag, 20.10.03 um 15:30 Uhr schrieb ducasse: > Hi hans > > Lukas will certainly reply soon to you. We know that we have to find a > good to package SmallWiki. In fact wtih store > before 7.1, it was impossible to specify the exact version of bundles. > So we never use this and it may happen that you load the wrong version > of Swazoo. In vw 7.1 store does not have this problem anymore so we > should think about having a one click SmallWiki. > > May be try with vw7.1? I will try it, both, loading the package again from public store and setting up vw 7.1 Thanks ! Greetings Hans -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (Darwin) iD8DBQE/lCdcX8NXna8434cRAhy9AJwISLqN6W2dCo0NsItKo/SJK/s3pQCdF6k6 90qLY/NRManYMQt3uBYhXOE= =O9ZQ -----END PGP SIGNATURE----- From renggli at student.unibe.ch Mon Oct 20 21:04:56 2003 From: renggli at student.unibe.ch (Lukas Renggli) Date: Mon, 20 Oct 2003 21:04:56 +0200 Subject: parser In-Reply-To: <019d01c391ea$b94816b0$0201a8c0@d8100> Message-ID: <4B695F35-0330-11D8-B266-000393CFE6C8@student.unibe.ch> Hi John, > I published a new version of SmallWiki to the public repository. I > rewrote > the parser. It is ~8x faster parsing the introduction page. Also, it > doesn't > need an extra CR at the end of the stream. Finally, it has support for > special characters inside the text (e.g., ** is parsed as text for * > not an > empty link -- you can also use \*), and also support for nested list > items > (e.g., ## to nest two numbered lists). However, the last two aren't > hooked > up for round tripping yet (i.e., when you re-edit the page, it won't > display > properly). that looks great and is also much shorter than the previous parser. I've fixed the wiki-renderer to allow a full round-trip and created a class testing parsing and rendering, however the old tests are still there. The ** doesn't seem to work, but that is all-right with me as I prefer the escaping using the backslash. > Besides the SmallWiki changes, I published a package (SmallWiki > WikiWorks > Importer) that extracts pages from a WikiWorks site. You can run it > using > "WikiWorksWikiExtractor download: 'Refactoring Browser' from: > 'http://wiki.cs.uiuc.edu/RefactoringBrowser'". It will download the > page and > everything in the wiki reachable from that page. I've used it to > download > the RB and VW wikis from http://wiki.cs.uiuc.edu. That is really a cool extension, I've tried it and it works just great! Alexandre is working on the SWiki importer and when this is done, we should be able to import most Wiki of the Smalltalk community. > BTW, I'd suggest caching the Structure>>id. After I loaded the VW wiki > into > SmallWiki and did a search, it was about 5x slower than the > wiki.cs.uiuc.edu > search (and my machine is likely 10x faster). 90% of the search time > was the > asWikiIdentifier from Structure>>id. Actually this had been implemented in an older version of SmallWiki, but then removed again. Recreating the id all the time again seems to take a lot of time, as a new string-stream has to be created. The current implementation caches the id, but it is lazy initialized to not break SmallWiki's currently running. This feature will be removed again for the final version. Thanks a lot for your help, Lukas -- Lukas Renggli http://renggli.freezope.org From renggli at student.unibe.ch Tue Oct 21 08:49:11 2003 From: renggli at student.unibe.ch (Lukas Renggli) Date: Tue, 21 Oct 2003 08:49:11 +0200 Subject: [SmallWiki] Folder Bug In-Reply-To: <3F945BF0.8080309@chrisburkert.de> Message-ID: Hi, > Ich nehme an, ich hab beim Portieren von SmallWiki auf Squeak einen > Bug gefunden. Es existiert keine Message 'notFound' in VW7.1. Ich > vermute du meinst 'notFoundSignal'. > > Folder>>remove: aStructure > aStructure parent: nil. > ^(children includes: aStructure) > ifTrue: [ children remove: aStructure ] > ifFalse: [ self class notFound signal ] jup, this is obviously wrong. I hope that the following code is working without additional changes in Squeak: Folder>>remove: aStructure aStructure parent: nil. ^(children includes: aStructure) ifTrue: [ children remove: aStructure ] ifFalse: [ self class notFoundSignal signal ] Even-tough I tried to make my code as portable as possible, there were quite a lot of VW specific message-calls that John Brant pointed out. If you find some more, please report them so that porting of new versions of SmallWiki will be only a matter of a few clicks ... What about some SmallLint rules to detect unportable non-ansi code? > Mal sehen, ob ich in den n?chsten Tagen noch weitere Sachen finde :) Great, I am looking forward hearing from you. Cheers, Lukas -- Lukas Renggli http://renggli.freezope.org From renggli at student.unibe.ch Tue Oct 21 08:49:11 2003 From: renggli at student.unibe.ch (Lukas Renggli) Date: Tue, 21 Oct 2003 08:49:11 +0200 Subject: [SmallWiki] Folder Bug In-Reply-To: <3F945BF0.8080309@chrisburkert.de> Message-ID: Hi, > Ich nehme an, ich hab beim Portieren von SmallWiki auf Squeak einen > Bug gefunden. Es existiert keine Message 'notFound' in VW7.1. Ich > vermute du meinst 'notFoundSignal'. > > Folder>>remove: aStructure > aStructure parent: nil. > ^(children includes: aStructure) > ifTrue: [ children remove: aStructure ] > ifFalse: [ self class notFound signal ] jup, this is obviously wrong. I hope that the following code is working without additional changes in Squeak: Folder>>remove: aStructure aStructure parent: nil. ^(children includes: aStructure) ifTrue: [ children remove: aStructure ] ifFalse: [ self class notFoundSignal signal ] Even-tough I tried to make my code as portable as possible, there were quite a lot of VW specific message-calls that John Brant pointed out. If you find some more, please report them so that porting of new versions of SmallWiki will be only a matter of a few clicks ... What about some SmallLint rules to detect unportable non-ansi code? > Mal sehen, ob ich in den n?chsten Tagen noch weitere Sachen finde :) Great, I am looking forward hearing from you. Cheers, Lukas -- Lukas Renggli http://renggli.freezope.org From chris at chrisburkert.de Tue Oct 21 22:45:31 2003 From: chris at chrisburkert.de (Chris Burkert) Date: Tue, 21 Oct 2003 22:45:31 +0200 Subject: Porting to squeak In-Reply-To: References: Message-ID: <3F959AEB.4090608@chrisburkert.de> Hi, when porting SmallWiki 0.9.19 to squeak I have found some points that could eventually be solved better. - #displayString should be #asString ?!? - #internal_templates contains $_ Regards Chris Burkert -- http://www.chrisburkert.de/ From renggli at student.unibe.ch Tue Oct 21 23:21:17 2003 From: renggli at student.unibe.ch (Lukas Renggli) Date: Tue, 21 Oct 2003 23:21:17 +0200 Subject: Porting to squeak In-Reply-To: <3F959AEB.4090608@chrisburkert.de> Message-ID: <821E328A-040C-11D8-AC37-000393CFE6C8@student.unibe.ch> Hi Chris, > when porting SmallWiki 0.9.19 to squeak I have found some points that > could eventually be solved better. > > - #displayString should be #asString ?!? as far as I know #displayString and #printString are ANSI standard, but not #asString, e.g. in VisualWorks there is no #asString. The Purple Book only describes #displayString and #printString too. > - #internal_templates contains $_ Indeed, this is not portable at all. #'internal_templates' should work, but this looks ugly. What I did here was to prefix with some special string to avoid conflicts with user-defined properties. The next time I publish an updated version it will be renamed to #internalTemplate. Cheers, Lukas -- Lukas Renggli http://renggli.freezope.org From brant at refactory.com Wed Oct 22 03:09:10 2003 From: brant at refactory.com (John Brant) Date: Tue, 21 Oct 2003 20:09:10 -0500 Subject: Porting to squeak In-Reply-To: <821E328A-040C-11D8-AC37-000393CFE6C8@student.unibe.ch> Message-ID: <00a001c39839$19ef0b00$0201a8c0@d8100> > From: owner-smallwiki at iam.unibe.ch [mailto:owner-smallwiki at iam.unibe.ch] > On Behalf Of Lukas Renggli > > > when porting SmallWiki 0.9.19 to squeak I have found some points that > > could eventually be solved better. > > > > - #displayString should be #asString ?!? > > as far as I know #displayString and #printString are ANSI standard, but > not #asString, e.g. in VisualWorks there is no #asString. The Purple > Book only describes #displayString and #printString too. Only #printString is ANSI. I just added a #displayString on Object when I ported to #Smalltalk. > > - #internal_templates contains $_ > > Indeed, this is not portable at all. #'internal_templates' should work, > but this looks ugly. What I did here was to prefix with some special > string to avoid conflicts with user-defined properties. The next time I > publish an updated version it will be renamed to #internalTemplate. This is ANSI. The ANSI standard has: identifier ::= letter (letter | digit)* letter ::= uppercaseAlphabetic | lowercaseAlphabetic | nonCaseLetter | "implementation defined letters" nonCaseLetter ::= '_' This means that your selectors can have _'s in them. Of course, just because something is ANSI, doesn't mean that it is portable... John Brant From ducasse at iam.unibe.ch Wed Oct 22 10:41:23 2003 From: ducasse at iam.unibe.ch (ducasse) Date: Wed, 22 Oct 2003 10:41:23 +0200 Subject: Some feedback on SmallWiki Message-ID: <840D053A-046B-11D8-9B81-000A9573EAE2@iam.unibe.ch> Hi lukas - Here I cannot be connected all the time, so it would be good to have one way to have the css locally by for example having a method generating it. - as I cannot be connected all the time I downloaded the style.css file and put just near the image, then I edited the stylesheet and put @import "file:///Volumes/Data/Users/ducasse/Workspace/FirstCircle/Coding/ style.css"; and it worked :) cooooool - I spent more than half and hour to upgrade to get the new version and at the end SmallWiki could not work because Smacc was not updated (idiot store). I think that we should pay attention to have the right number of the right components. I do not know what is the solution but we should try to find one. - for the templates it would be nice to have a title above the pane so that we know which list represent the possible choices and which one is the current one. - we should remove the code from the first page and put it in a page called how to access your children programmatically because we can scare a lot of people that way. - removed the validator by login and modify the templates and it works. - I started small and wanted to add a button inspect Smalltalk.SmallWiki defineClass: #Inspect superclass: #{SmallWiki.Action} indexedType: #none private: false instanceVariableNames: '' classInstanceVariableNames: '' imports: '' category: 'SmallWiki Moka' renderContent html submitButtonWithAction: #inspect text: 'inspect' class>>title ^'Inspect' I can see it in the action list, I can remove predefined actions from the list but when I add 'inspect' nothing changes. When I typed http://localhost:8080/?action=Inspect I can see the button rendered but there is no inspector that show up in VW two questions: 1- What should I do to get the actions showing up in the actions list once I modify the template? 2- When I redefined renderContent as renderContent self inspect The inspector pops up in VW but not with html submitButtonWithAction: #inspect text: 'inspect' I looked at the permission but you mentioned that the default for permission is that everybody can see the action. I think that we should start a FAQ :) Stef From renggli at student.unibe.ch Wed Oct 22 11:18:31 2003 From: renggli at student.unibe.ch (Lukas Renggli) Date: Wed, 22 Oct 2003 11:18:31 +0200 Subject: Some feedback on SmallWiki In-Reply-To: <840D053A-046B-11D8-9B81-000A9573EAE2@iam.unibe.ch> Message-ID: Hi Stef, > - Here I cannot be connected all the time, so it would be good to have > one way to have the css locally by for example having a method > generating it. > > - as I cannot be connected all the time I downloaded the style.css > file and put just near the image, then I edited the stylesheet and put > @import > "file:///Volumes/Data/Users/ducasse/Workspace/FirstCircle/Coding/ > style.css"; and it worked :) cooooool You could even put the style.css and the image as resource into your wiki and serve it from the wiki itself, so you don't need to give a local file-url. > - I spent more than half and hour to upgrade to get the new version > and at the end SmallWiki could not work because Smacc was not updated > (idiot store). That are the timeframes I get at home too, when loading the whole code into a fresh image. Even-tough Monticello is considered to be slow, I would rather consider StORE to be terribly slow using remote connections ... ;) > I think that we should pay attention to have the right number of the > right components. I do not know what is the solution but we should try > to find one. I updated the SmaCC on the SCG-StORE with the one of Cincom StORE, so it should be the latest. What if you try to load SmallWiki from Cincom StORE, I think it should work with the latest version from there. > - for the templates it would be nice to have a title above the pane so > that we know which list represent the possible choices and which one > is the current one. Ok, this is an easy thing to change ... > - we should remove the code from the first page and put it in a page > called how to access your children programmatically because we can > scare a lot of people that way. I am not sure: that code is put into every folder to simulate the look of the old folders that were no subclasses of Page. Like this you have an dynamically created list of children by default on all the folders. But probably we should extract that code into an external method, so it would only look like this for the end-user: [ self renderChildrenOn: html ] > - removed the validator by login and modify the templates and it works. Pages containing code can only be saved (reparsed) when being logged in as administrator. We should probably generate more specific error-messages, to help the user in that case. > I can see it in the action list, I can remove predefined actions from > the list but when I add 'inspect' nothing changes. An action has to register to the structures it is able to handle, so to make it show up on pages and folders, but not on resources, you have to add the following code to the class-side of your action: InfoAction class>>initilize Page registerAction: self. Folder registerAction: self. > When I typed http://localhost:8080/?action=Inspect I can see the > button rendered but there is no inspector that show up in VW HTML requires a form-tag around any form-element (buttons, combo-boxes, list-boxes, text-input, text-areas, etc) inside a page. Your code should look somehow like this and your browser will understand: Inspect>>renderContent html form: [ html submitButtonWithAction: #inspect text: 'inspect' ] > 1- What should I do to get the actions showing up in the actions list > once I modify the template? See above :) > 2- When I redefined renderContent as > renderContent > self inspect > > The inspector pops up in VW but not with html submitButtonWithAction: > #inspect text: 'inspect' See above :) Probably it is easier to start with a link, as links do no require additional HTML-tags around: Inspect>>renderContent html anchorWithAction: #inspect text: 'inspect' Hope that helps! I have to go to university now, Lukas -- Lukas Renggli http://renggli.freezope.org From chris at chrisburkert.de Wed Oct 22 20:24:23 2003 From: chris at chrisburkert.de (Chris Burkert) Date: Wed, 22 Oct 2003 20:24:23 +0200 Subject: Porting to squeak In-Reply-To: <821E328A-040C-11D8-AC37-000393CFE6C8@student.unibe.ch> References: <821E328A-040C-11D8-AC37-000393CFE6C8@student.unibe.ch> Message-ID: <3F96CB57.9000607@chrisburkert.de> Hi, I have started with SmallWiki 0.9.20. The first steps of porting are done. Lukas Renggli wrote: >> when porting SmallWiki 0.9.19 to squeak I have found some points that >> could eventually be solved better. >> >> - #displayString should be #asString ?!? > > > as far as I know #displayString and #printString are ANSI standard, but > not #asString, e.g. in VisualWorks there is no #asString. The Purple > Book only describes #displayString and #printString too. OK I put a #displayString into Object. >> - #internal_templates contains $_ > > > Indeed, this is not portable at all. #'internal_templates' should work, > but this looks ugly. What I did here was to prefix with some special > string to avoid conflicts with user-defined properties. The next time I > publish an updated version it will be renamed to #internalTemplate. This is also in #internal_stylesheet I changed this to #internalTemplates and #internalStylesheet. What I did was: - put 'SW' as prefix to every SmallWiki class. - change Timestamp to TimeStamp - change #raiseSignal: to #signal:. - I had to paste the following Methods in by hand: - HtmlWriteStream class>>defaultEscapeTable - ParserTests>>wikiText - ParserTests>>docText - ParserTestsOld>>defaultWikiChars - ParserTestsOld>>testDefaultWikiChars because Rosetta produced special characters which saxon didn't know. - I had to compile a new Parser and Scanner. - The VW Set can #add: nil without an Exception. I added #silentAdd:. - The #resourcesFor* Methods in ParserTests are bad, because they use the class name which I have prefixed with 'SW'. I did a hack to solve this. - I didn't find a class for Base64EncodingReadStream. For now I took ReadStream. - change #sameCharacters: to #charactersExactlyMatching: For today this is the result: green Tests - CacheTests - ExtensionTests - ResponseTests - StorageTests - TemplateTests yellow Tests - ParserTests - PropertyTests - RequestTests - SecurityTests redTests - DocumentTests - ParserTestsOld - ServerTests - StructureTests When all tests are green I will post a changeset. Further comments? regards Chris Burkert -- http://www.chrisburkert.de/ From renggli at student.unibe.ch Fri Oct 24 18:49:54 2003 From: renggli at student.unibe.ch (Lukas Renggli) Date: Fri, 24 Oct 2003 18:49:54 +0200 Subject: Some feedback on SmallWiki In-Reply-To: Message-ID: <17BD7812-0642-11D8-AC37-000393CFE6C8@student.unibe.ch> Hi Stef, >> An action has to register to the structures it is able to handle, so >> to make it show up on pages and folders, but not on resources, you >> have to add the following code to the class-side of your action: >> >> InfoAction class>>initilize >> Page registerAction: self. >> Folder registerAction: self. > > Lukas I looked for search and I could not see where it was registered. The actions of the core are registered within the appropriate structures; have a look at Structure class>>initializeActions and its subclasses. I did move the registration to the structure for the core-actions to make SmallWiki loadable from StORE, because the package containing the actions is loaded before the package containing the structures. I not sure if it is still a problem to do the registration in the action itself, but it was when I implemented it. Cheers, Lukas -- Lukas Renggli http://renggli.freezope.org From ducasse at iam.unibe.ch Sun Oct 26 09:09:05 2003 From: ducasse at iam.unibe.ch (ducasse) Date: Sun, 26 Oct 2003 09:09:05 +0100 Subject: Some feedback on SmallWiki In-Reply-To: Message-ID: Hi lukas > You could even put the style.css and the image as resource into your > wiki and serve it from the wiki itself, so you don't need to give a > local file-url. Then what should I write in the import statement of the template? Lukas I saved the image and reopen it and it seems to me that the import I specified was lost. Is it possible or my mistake? - I do not have any reference or doc at hand but I found the following code difficult because you mix accept and visit in the same method Visitor>>acceptPage: aPage self acceptStructure: aPage. self visit: aPage document I was programming using the visitor that roel defined for bibtext processing and he uses BibVisitor>>visitFile: BibVisitor>>visitField: Then the structure provide the acceptMethod: BibVisitor>> visitEntry: anEntry anEntry body acceptVisitor: self I checked and in SmallWiki you have accept on the Structure and accept* on all the visitor and this is confusing. Do am I wrong? Visitor been a big double dispatch I would prefer to have: Visitor visiting and Structure accepting (I also checked in the GOF book) So may be it would be good to deprecate some methods and offer new ones. This would improve the readibility and avoid to get lost.... - I saw that the parent of a resource is not the page having a reference to it but the folder in which the resource is located. I can understand why: multiple pages in the same folder can refer to the same resource. Now is there a simple way to know from which page a resource is accessed? I saw that in the searchVisitor you use the currentPage to keep this information and I did the same but I would like to know if there is a way to know that information directly. - how can I find the name and not the title of an uploaded image? - My first dummy version of a wiki analyzer works :) (look at the SmallWiki - Moka package). You can get all the pages that contain uploads. I took me some hours and now I'm sure that I could redo it in less than 20 min. Now the real questions is how to provide and categorize results. I will continue to extend it. My idea is that after this functionality should be built via the search engine. I would like to be able to plug different results renderers for example I will try to have thumbnails. Stef From ducasse at iam.unibe.ch Sun Oct 26 16:08:23 2003 From: ducasse at iam.unibe.ch (ducasse) Date: Sun, 26 Oct 2003 16:08:23 +0100 Subject: [ANN] SmallWiki 0.9.20 for Squeak (pre alpha ... full of bugs) In-Reply-To: <3F9AFEB5.3030209@chrisburkert.de> Message-ID: <3E2F2EDC-07C6-11D8-91B3-000A9573EAE2@iam.unibe.ch> Hi chris excellent, I really hope that we will be able to exchange code between the squeak and VW versions this is really important to create a synergy between the two versions. Stef On Dimanche, oct 26, 2003, at 00:52 Europe/Zurich, Chris Burkert wrote: > Hi, > > I have done more work on porting SmallWiki AND IT IS STILL FULL OF > BUGS, but I hope that won't last a long time. > > There is one yellow test in ParserTests and three in DocumentTests. > This is a problem with the Compiler. Unfortunatly I couldn't fix it > yet. But you will only need this, if you want to embed code. > Everything else runs green. > > Besides this I could set up the comanche server and got the right > Response in my Mozilla (that was exciting :). > > Most Links won't work. I'll fix this next week. > > If you want to try it, get a fresh image (I use 3.6 #5424) and load > the following Packages from SqueakMap: > - SUnit (3.1) > - SmaCC Runtime (1.0) > - SIXX (0.1f) > - Refactoring Browser (0.94) > - KomHttpServer (6.2) > > Then fileIn the attached changeset. A Workspace should open and tell > you more. If not, look at SWServer class>>defaultWorkspace. > > It would be a great if one of you (familiar with the Squeak-Compiler) > could help me and figure out the problem with the code (Maybe the new > ClosureCompiler would do it?!?). Try something with > SWCode>>evaluateWith: and take a look at SWDocumentTests>>testCode*. > > I think I could publish a .sar at SqueakMap in some weeks ... after > cleaning those issues above. > > Regards > Chris Burkert > -- > http://www.chrisburkert.de/ > From renggli at student.unibe.ch Sun Oct 26 19:23:39 2003 From: renggli at student.unibe.ch (Lukas Renggli) Date: Sun, 26 Oct 2003 19:23:39 +0100 Subject: Some feedback on SmallWiki In-Reply-To: Message-ID: <853170BC-07E1-11D8-8851-000393CFE6C8@student.unibe.ch> Hi Stef, >> You could even put the style.css and the image as resource into your >> wiki and serve it from the wiki itself, so you don't need to give a >> local file-url. > > Then what should I write in the import statement of the template? Basically the url to your resource, that means if you upload the style-sheet to your root folder as a resource and give it the title 'Style Sheet', it is accessible with: @import "http://localhost:8080/StyleSheet"; For a production server you have to replace the host-name with your real domain-name, else people from outside won't see your design. > Lukas I saved the image and reopen it and it seems to me that the > import I specified was lost. Is it possible or my mistake? This should not happen, as the template and the style-sheet are saved as a property within the structure where you defined it. One thing that could cause that problem is if you use this line to start your server again: server := SmallWiki.SwazooServer startOn: 8080. As I write in the comment is only intended to be executed the first time and should be removed afterwards, because it initializes a completely new wiki. Just use server start. to restart the wiki again, after you opened an image. Of course, shutting-down and starting-up the server could be made automatically, but it is not easy in VW as it is in Squeak, I think. > - I do not have any reference or doc at hand but I found the following > code difficult because you mix accept and visit in the same method > > Visitor>>acceptPage: aPage > self acceptStructure: aPage. > self visit: aPage document > > I was programming using the visitor that roel defined for bibtext > processing and he uses > BibVisitor>>visitFile: > BibVisitor>>visitField: > Then the structure provide the acceptMethod: > BibVisitor>> visitEntry: anEntry > anEntry body acceptVisitor: self > > I checked and in SmallWiki you have accept on the Structure and > accept* on all the visitor and this is confusing. Do am I wrong? > Visitor been a big double dispatch I would prefer to have: > > Visitor visiting and Structure accepting (I also checked in the GOF > book) > > So may be it would be good to deprecate some methods and offer new > ones. This would improve the readibility and avoid to get lost.... You are basically suggesting the naming-conventions of the design patterns book. When I implemented those visitors I didn't had that book yet, so I copied the conventions of the refactoring-browser. I don't know what is better and what the idea of John Brant was when writing his visitors. Of course it is easy to change the message-names, but I don't know if that really helps much. I can life with both conventions, in 'ROE' the design-pattern and in 'Formulator' a modified refactoring-browser approach is taken. > - I saw that the parent of a resource is not the page having a > reference to it but the folder in which the resource is located. I can > understand why: multiple pages in the same folder can refer to the > same resource. Now is there a simple way to know from which page a > resource is accessed? Pages do not have children and they might even reference resources from different folders than their parent. If you want to know all the structures referencing a specific other structure (this doesn't have to be a resource necessarily) just use something similar to the code below. One could even add a message to Structure itself to get all the references more easily: Structure>>references "Return all the structures referencing the receiver." ^(VisitorReferences collect: self root to: self) collection > - how can I find the name and not the title of an uploaded image? The name? You might call #id to get the id of the image or call #url to get the full path of it. But the filename where it is was uploaded from is not stored anywhere, I think this is not really needed and platform-dependant anyway. Cheers (& see you tomorrow in the Java lecture :P), Lukas -- Lukas Renggli http://renggli.freezope.org From chris at chrisburkert.de Sun Oct 26 20:41:55 2003 From: chris at chrisburkert.de (Chris Burkert) Date: Sun, 26 Oct 2003 20:41:55 +0100 Subject: SmallWiki Cleanup proposal - initialize Message-ID: <3F9C2383.3030205@chrisburkert.de> Hi, I would like to talk about cleaning an initialize issue. I had the problem that Squeak Changesets don't sort the initialize messages of some classes in the right order and it happend that after init the subclasses of Structure, the later init of Structure itself destroyed the inits before. So I propose to change it to lazy init like: SWStructure>>initialize self initializeActions. self initializePermissions. SWStructure>>initializeActions self actions add: SWLogin; add: SWLogout; add: SWSearch; add: SWTemplateEdit; add: SWRecentChanges; add: SWPreviousStructure; add: SWParentStructure; add: SWNextStructure. SWStructure>>permissions ^permissions ifNil: [permissions := Set new] SWStructure>>actions ^actions ifNil: [actions := Set new] Also we should change every direct reference to 'actions' or 'permissions' to 'self actions' and 'self permissions' in this example. This lazy init would affect Structure, HtmlWriteStream and Template (AFAIK). regards Chris Burkert -- http://www.chrisburkert.de/ From Serge.Stinckwich at info.unicaen.fr Sun Oct 26 21:36:24 2003 From: Serge.Stinckwich at info.unicaen.fr (Serge Stinckwich) Date: Sun, 26 Oct 2003 21:36:24 +0100 Subject: Search Engine for SmallWiki Message-ID: <87ptgjenxz.fsf@hoegaarden.noos.fr> Hi all, i vould like to propose a my students a project about building a search engine for Smallwiki. What do you think about the idea ? You could look at the current description of the project here : http://www.iutc3.unicaen.fr/serge/SergeStinckwich/ProjetsMaitriseInformatique/MoteurDeRecherchePourSmallWiki Sorry, it's in french. You could add some comments on my personal Wiki page. -- Serge Stinckwich -< ) Universit? de Caen>CNRS UMR 6072>GREYC>MAD /~\ http://www.iutc3.unicaen.fr/serge/ (/ | Smalltalkers do: [:it | All with: Class, (And love: it)] _|_/ From ducasse at iam.unibe.ch Mon Oct 27 10:33:07 2003 From: ducasse at iam.unibe.ch (ducasse) Date: Mon, 27 Oct 2003 10:33:07 +0100 Subject: Some feedback on SmallWiki In-Reply-To: <853170BC-07E1-11D8-8851-000393CFE6C8@student.unibe.ch> Message-ID: <9287089D-0860-11D8-B7E4-000A9573EAE2@iam.unibe.ch> > Basically the url to your resource, that means if you upload the > style-sheet to your root folder as a resource and give it the title > 'Style Sheet', it is accessible with: > > @import "http://localhost:8080/StyleSheet"; > > For a production server you have to replace the host-name with your > real domain-name, else people from outside won't see your design. We should start a FAQ on SmallWiki :) > >> Lukas I saved the image and reopen it and it seems to me that the >> import I specified was lost. Is it possible or my mistake? > > This should not happen, as the template and the style-sheet are saved > as a property within the structure where you defined it. > > One thing that could cause that problem is if you use this line to > start your server again: > > server := SmallWiki.SwazooServer startOn: 8080. > > As I write in the comment is only intended to be executed the first > time and should be removed afterwards, because it initializes a > completely new wiki. Just use > > server start. OK > > to restart the wiki again, after you opened an image. Of course, > shutting-down and starting-up the server could be made automatically, > but it is not easy in VW as it is in Squeak, I think. I do not know but I can think that this is more robust in VW but we should simply ask. > You are basically suggesting the naming-conventions of the design > patterns book. When I implemented those visitors I didn't had that > book yet, so I copied the conventions of the refactoring-browser. I > don't know what is better and what the idea of John Brant was when > writing his visitors. > > Of course it is easy to change the message-names, but I don't know if > that really helps much. I can life with both conventions, in 'ROE' the > design-pattern and in 'Formulator' a modified refactoring-browser > approach is taken. Sure I can live with that too, but imagine all the newbie that will follow my lecture and the lecture of roel, so this is only a cosmetic change but it is really worth because it helps the people to know where they are. I realized that because I was coding at least 5 visitors for the bibtex stuff of roel and I was confused not to find the same. >> - I saw that the parent of a resource is not the page having a >> reference to it but the folder in which the resource is located. I >> can understand why: multiple pages in the same folder can refer to >> the same resource. Now is there a simple way to know from which page >> a resource is accessed? > > Pages do not have children and they might even reference resources > from different folders than their parent. Ok > > If you want to know all the structures referencing a specific other > structure (this doesn't have to be a resource necessarily) just use > something similar to the code below. One could even add a message to > Structure itself to get all the references more easily: > > Structure>>references > "Return all the structures referencing the receiver." > > ^(VisitorReferences collect: self root to: self) > collection We should add that. > >> - how can I find the name and not the title of an uploaded image? > > The name? You might call #id to get the id of the image or call #url > to get the full path of it. But the filename where it is was uploaded > from is not stored anywhere, I think this is not really needed and > platform-dependant anyway. It is important because imagine I want to upload a collection of picture and then after some reason I want to transform them (thumbnail or what ever) and I want to save them. I do not want to have image1, or just the title. Here we are losing an important semantical information. Note that I did not talked about the path but the file name like stairInteractif.tif vs stair.tif (those are just images of my books and their names are really important). > > Cheers (& see you tomorrow in the Java lecture :P), I cannot attend it, but I will follow all the other ones. > Lukas > > -- > Lukas Renggli > http://renggli.freezope.org > From ducasse at iam.unibe.ch Mon Oct 27 10:37:08 2003 From: ducasse at iam.unibe.ch (ducasse) Date: Mon, 27 Oct 2003 10:37:08 +0100 Subject: Search Engine for SmallWiki In-Reply-To: <87ptgjenxz.fsf@hoegaarden.noos.fr> Message-ID: <21FE9432-0861-11D8-B7E4-000A9573EAE2@iam.unibe.ch> > i vould like to propose a my students a project about building a > search engine > for Smallwiki. What do you think about the idea ? This is a good idea. I was starting to play with this idea too because we need that. I think that a good search engine should support - multiple search criteria (tags, timeStamp, creator, keywords) - multiple renderer of the results It should be the basis for all kind of tools: - I started to code a simple analyser showing me all the pages containing uploads. > You could look at the current description of the project here : > http://www.iutc3.unicaen.fr/serge/SergeStinckwich/ > ProjetsMaitriseInformatique/MoteurDeRecherchePourSmallWiki > > Sorry, it's in french. You could add some comments on my personal Wiki > page. > > -- > Serge Stinckwich -< ) > Universit? de Caen>CNRS UMR 6072>GREYC>MAD /~\ > http://www.iutc3.unicaen.fr/serge/ (/ | > Smalltalkers do: [:it | All with: Class, (And love: it)] _|_/ > > From bergel at iam.unibe.ch Mon Oct 27 13:29:04 2003 From: bergel at iam.unibe.ch (Alexandre Bergel) Date: Mon, 27 Oct 2003 13:29:04 +0100 Subject: Comments... Message-ID: <20031027122904.GF22247@iam.unibe.ch> Hello We started this morning to work on Smallwiki, but unfortunately we encountered several issues: - From store at SCG we cannot run smallwiki without getting an exception. So forth we are using store at Cincom, for which it is okay - We cannot create a new page! What is the meaning of editing and viewing the content of a folder? - Why do we have this smalltalk sequence when editing a folder? -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= [ "If you are not logged-in as administrator, please remove everything between the square-brackets before saving the page!" structure children isEmpty ifFalse: [ html unorderedList: [ structure children do: [ :each | html listItem: [ html anchorWithUrl: each url do: each title ] ] ] ]. nil] -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Cheers, Alexandre -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.iam.unibe.ch/~bergel ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. From Roel.Wuyts at ulb.ac.be Mon Oct 27 13:58:31 2003 From: Roel.Wuyts at ulb.ac.be (Roel Wuyts) Date: Mon, 27 Oct 2003 13:58:31 +0100 Subject: Some feedback on SmallWiki In-Reply-To: <9287089D-0860-11D8-B7E4-000A9573EAE2@iam.unibe.ch> Message-ID: <4467B388-087D-11D8-B1C1-003065CC9F36@ulb.ac.be> I was just going to say: that information should be in the workspace. I want my students to be able to load SmallWiki, read a bit on the workspace, start serving their thing and start playing. So everything related to that should be there. Most of it is, but some of these new things are not. Other stuff that is good to know should be on a FAQ page somewhere, yes. On Monday, Oct 27, 2003, at 10:33 Europe/Zurich, ducasse wrote: >> Basically the url to your resource, that means if you upload the >> style-sheet to your root folder as a resource and give it the title >> 'Style Sheet', it is accessible with: >> >> @import "http://localhost:8080/StyleSheet"; >> >> For a production server you have to replace the host-name with your >> real domain-name, else people from outside won't see your design. > > We should start a FAQ on SmallWiki :) > >> >>> Lukas I saved the image and reopen it and it seems to me that the >>> import I specified was lost. Is it possible or my mistake? >> >> This should not happen, as the template and the style-sheet are saved >> as a property within the structure where you defined it. >> >> One thing that could cause that problem is if you use this line to >> start your server again: >> >> server := SmallWiki.SwazooServer startOn: 8080. >> >> As I write in the comment is only intended to be executed the first >> time and should be removed afterwards, because it initializes a >> completely new wiki. Just use >> >> server start. > > OK > >> >> to restart the wiki again, after you opened an image. Of course, >> shutting-down and starting-up the server could be made automatically, >> but it is not easy in VW as it is in Squeak, I think. > > I do not know but I can think that this is more robust in VW but we > should simply ask. > >> You are basically suggesting the naming-conventions of the design >> patterns book. When I implemented those visitors I didn't had that >> book yet, so I copied the conventions of the refactoring-browser. I >> don't know what is better and what the idea of John Brant was when >> writing his visitors. >> >> Of course it is easy to change the message-names, but I don't know if >> that really helps much. I can life with both conventions, in 'ROE' >> the design-pattern and in 'Formulator' a modified refactoring-browser >> approach is taken. > > Sure I can live with that too, but imagine all the newbie that will > follow my lecture and the lecture of roel, so this is only a cosmetic > change but it is really worth because it helps the people to know > where they are. I realized that because I was coding at least 5 > visitors for the bibtex stuff of roel and I was confused not to find > the same. > > >>> - I saw that the parent of a resource is not the page having a >>> reference to it but the folder in which the resource is located. I >>> can understand why: multiple pages in the same folder can refer to >>> the same resource. Now is there a simple way to know from which page >>> a resource is accessed? >> >> Pages do not have children and they might even reference resources >> from different folders than their parent. > > Ok >> >> If you want to know all the structures referencing a specific other >> structure (this doesn't have to be a resource necessarily) just use >> something similar to the code below. One could even add a message to >> Structure itself to get all the references more easily: >> >> Structure>>references >> "Return all the structures referencing the receiver." >> >> ^(VisitorReferences collect: self root to: self) >> collection > > We should add that. > >> >>> - how can I find the name and not the title of an uploaded image? > >> >> The name? You might call #id to get the id of the image or call #url >> to get the full path of it. But the filename where it is was uploaded >> from is not stored anywhere, I think this is not really needed and >> platform-dependant anyway. > > It is important because imagine I want to upload a collection of > picture and then after some reason > I want to transform them (thumbnail or what ever) and I want to save > them. I do not want to have image1, or just the title. Here we are > losing an important semantical information. Note that I did not talked > about the path but the file name like stairInteractif.tif vs stair.tif > (those are just images of my books and their names are really > important). > > >> >> Cheers (& see you tomorrow in the Java lecture :P), > > I cannot attend it, but I will follow all the other ones. > >> Lukas >> >> -- >> Lukas Renggli >> http://renggli.freezope.org >> > > Roel Wuyts DeComp roel.wuyts at ulb.ac.be Universit? Libre de Bruxelles http://homepages.ulb.ac.be/~rowuyts/ Belgique Board Member of the European Smalltalk User Group: www.esug.org From Roel.Wuyts at ulb.ac.be Mon Oct 27 14:15:03 2003 From: Roel.Wuyts at ulb.ac.be (Roel Wuyts) Date: Mon, 27 Oct 2003 14:15:03 +0100 Subject: Comments... In-Reply-To: <20031027122904.GF22247@iam.unibe.ch> Message-ID: <93BCB8FE-087F-11D8-B1C1-003065CC9F36@ulb.ac.be> What do you mean by 'cannot run SmallWiki without getting an error' ? I just replicated the store at SCG version so I'd to know what I get my students into before giving them the link :-) I could successfully replicate and load the version 1.301, so maybe it is something a while further (I have not tried serving anything and really connecting to it). On Monday, Oct 27, 2003, at 13:29 Europe/Zurich, Alexandre Bergel wrote: > Hello > > We started this morning to work on Smallwiki, but unfortunately we > encountered several issues: > - From store at SCG we cannot run smallwiki without getting an > exception. So forth we are using store at Cincom, for which it is okay > - We cannot create a new page! What is the meaning of editing and > viewing the content of a folder? > > - Why do we have this smalltalk sequence when editing a folder? > -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= > [ "If you are not logged-in as administrator, please remove everything > between the square-brackets before saving the page!" > structure children isEmpty ifFalse: [ > html unorderedList: [ > structure children do: [ :each | > html listItem: [ html anchorWithUrl: each url do: each title ] ] ] > ]. > nil] > -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= > > Cheers, > Alexandre > -- > _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: > Alexandre Bergel http://www.iam.unibe.ch/~bergel > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. > > Roel Wuyts DeComp roel.wuyts at ulb.ac.be Universit? Libre de Bruxelles http://homepages.ulb.ac.be/~rowuyts/ Belgique Board Member of the European Smalltalk User Group: www.esug.org From bergel at iam.unibe.ch Mon Oct 27 14:41:05 2003 From: bergel at iam.unibe.ch (Alexandre Bergel) Date: Mon, 27 Oct 2003 14:41:05 +0100 Subject: Porting to squeak In-Reply-To: <3F96CB57.9000607@chrisburkert.de> References: <821E328A-040C-11D8-AC37-000393CFE6C8@student.unibe.ch> <3F96CB57.9000607@chrisburkert.de> Message-ID: <20031027134105.GH22247@iam.unibe.ch> Hello I think it is very important to port Smalltwiki as much as you can automatically. I think you do not want to redo everythink by hand whenever a major update of Smallwiki is out... Did you had a look at Rosetta? If not, it might help you... Cheers, Alexandre On Wed, Oct 22, 2003 at 08:24:23PM +0200, Chris Burkert wrote: > Hi, > > I have started with SmallWiki 0.9.20. The first steps of porting > are done. > > Lukas Renggli wrote: > >>when porting SmallWiki 0.9.19 to squeak I have found some points that > >>could eventually be solved better. > >> > >>- #displayString should be #asString ?!? > > > > > >as far as I know #displayString and #printString are ANSI standard, but > >not #asString, e.g. in VisualWorks there is no #asString. The Purple > >Book only describes #displayString and #printString too. > > OK I put a #displayString into Object. > > >>- #internal_templates contains $_ > > > > > >Indeed, this is not portable at all. #'internal_templates' should work, > >but this looks ugly. What I did here was to prefix with some special > >string to avoid conflicts with user-defined properties. The next time I > >publish an updated version it will be renamed to #internalTemplate. > > This is also in #internal_stylesheet > > I changed this to #internalTemplates and #internalStylesheet. > > What I did was: > > - put 'SW' as prefix to every SmallWiki class. > - change Timestamp to TimeStamp > - change #raiseSignal: to #signal:. > - I had to paste the following Methods in by hand: > - HtmlWriteStream class>>defaultEscapeTable > - ParserTests>>wikiText > - ParserTests>>docText > - ParserTestsOld>>defaultWikiChars > - ParserTestsOld>>testDefaultWikiChars > because Rosetta produced special characters which saxon > didn't know. > - I had to compile a new Parser and Scanner. > - The VW Set can #add: nil without an Exception. > I added #silentAdd:. > - The #resourcesFor* Methods in ParserTests are bad, because > they use the class name which I have prefixed with 'SW'. > I did a hack to solve this. > - I didn't find a class for Base64EncodingReadStream. > For now I took ReadStream. > - change #sameCharacters: to #charactersExactlyMatching: > > For today this is the result: > green Tests > - CacheTests > - ExtensionTests > - ResponseTests > - StorageTests > - TemplateTests > yellow Tests > - ParserTests > - PropertyTests > - RequestTests > - SecurityTests > redTests > - DocumentTests > - ParserTestsOld > - ServerTests > - StructureTests > > When all tests are green I will post a changeset. > > Further comments? > > regards > Chris Burkert > -- > http://www.chrisburkert.de/ -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.iam.unibe.ch/~bergel ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. From renggli at student.unibe.ch Mon Oct 27 15:50:26 2003 From: renggli at student.unibe.ch (Lukas Renggli) Date: Mon, 27 Oct 2003 15:50:26 +0100 Subject: SmallWiki Cleanup proposal - initialize In-Reply-To: <3F9C2383.3030205@chrisburkert.de> Message-ID: > SWStructure>>permissions > ^permissions ifNil: [permissions := Set new] > > SWStructure>>actions > ^actions ifNil: [actions := Set new] All-right, I will change the code accordingly and publish it to SCG and Cincom StORE the next time. Cheers, Lukas -- Lukas Renggli http://renggli.freezope.org From renggli at student.unibe.ch Mon Oct 27 15:50:32 2003 From: renggli at student.unibe.ch (Lukas Renggli) Date: Mon, 27 Oct 2003 15:50:32 +0100 Subject: Some feedback on SmallWiki In-Reply-To: <9287089D-0860-11D8-B7E4-000A9573EAE2@iam.unibe.ch> Message-ID: >> Of course it is easy to change the message-names, but I don't know if >> that really helps much. I can life with both conventions, in 'ROE' >> the design-pattern and in 'Formulator' a modified refactoring-browser >> approach is taken. > > Sure I can live with that too, but imagine all the newbie that will > follow my lecture and the lecture of roel, so this is only a cosmetic > change but it is really worth because it helps the people to know > where they are. I realized that because I was coding at least 5 > visitors for the bibtex stuff of roel and I was confused not to find > the same. > > [...] > >> If you want to know all the structures referencing a specific other >> structure (this doesn't have to be a resource necessarily) just use >> something similar to the code below. One could even add a message to >> Structure itself to get all the references more easily: >> >> Structure>>references >> "Return all the structures referencing the receiver." >> >> ^(VisitorReferences collect: self root to: self) >> collection > > We should add that. The same here, I will change the code accordingly an publish it to SCG and Cincom StORE. Unfortunately my time is quite limited at the moment (there is a whole bunch of lectures starting at university right now), so it will take some more time. Cheers, Lukas -- Lukas Renggli http://renggli.freezope.org From renggli at student.unibe.ch Mon Oct 27 15:50:37 2003 From: renggli at student.unibe.ch (Lukas Renggli) Date: Mon, 27 Oct 2003 15:50:37 +0100 Subject: Comments... In-Reply-To: <20031027122904.GF22247@iam.unibe.ch> Message-ID: > - From store at SCG we cannot run smallwiki without getting an > exception. So forth we are using store at Cincom, for which it is okay I already noticed, that there is some problem loading SmallWiki from the SCG StORE. The strange thing is that it works perfectly from Cincom StORE whereas this is exactly the same version. So this is one more bug in StORE, that can be probably never reproduced, understood and fixed :( > - We cannot create a new page! No? There are two possibilities to create a page. The first one is go to another page (or folder) and create a link to a non-existing structure there, after saving you should be offered a link to create a new page within the same folder. The second possibility is to go to a folder, click on 'Contents' and add your page manually. > What is the meaning of editing and viewing the content of a folder? As it was requested by the community, a Folder is a subclass of Page now: as folders do inherit now all the functionality of a page, their handling got somehow more complex and difficult to understand. Let me conclude the actions available to a folder: - View: The wiki-page associated with the folder will be rendered. As this functionality is inherited from the Page-Class, the PageView action is reused. - Edit: The wiki-page associated with the folder will be edited. As this functionality is inherited from Page-Class, the PageEdit action is reused. - Contents: The contents of the folder (its children) will be edited. As this functionality *isn't* inherited from Page, I created a new action called FolderEdit. It provides means to create, remove, copy and move children. > - Why do we have this smalltalk sequence when editing a folder? > -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= > [ "If you are not logged-in as administrator, please remove everything > between the square-brackets before saving the page!" > structure children isEmpty ifFalse: [ > html unorderedList: [ > structure children do: [ :each | > html listItem: [ html anchorWithUrl: each url do: each title ] ] ] > ]. > nil] > -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= As explained in a earlier post, this code is necessary to make the folders look like they did in previous versions of SmallWiki. This block renders a list with all the children of the current folder. I plan to factor the code out to an external message, so it will look much simpler in further version of SmallWiki: [ structure renderChildrenListOn: html ] Hope that helps, Lukas -- Lukas Renggli http://renggli.freezope.org From chris at chrisburkert.de Mon Oct 27 15:54:46 2003 From: chris at chrisburkert.de (Chris Burkert) Date: Mon, 27 Oct 2003 15:54:46 +0100 Subject: Porting to squeak In-Reply-To: <20031027134105.GH22247@iam.unibe.ch> References: <821E328A-040C-11D8-AC37-000393CFE6C8@student.unibe.ch> <3F96CB57.9000607@chrisburkert.de> <20031027134105.GH22247@iam.unibe.ch> Message-ID: <3F9D31B6.20202@chrisburkert.de> Alexandre Bergel wrote: > I think it is very important to port Smalltwiki as much as you can automatically. > I think you do not want to redo everythink by hand whenever a major update of Smallwiki is out... > Did you had a look at Rosetta? If not, it might help you... Sure this is very important and I have used Rosetta but ... - [snip] - ... there were a few points, that Rosetta didn't do. So at the end I had to do handwork. For future releases I plan to use the feature of store to display changes between versions. This would allow that development is mainly done in VW. Adapting the port to a newer release should be quite easy. What I realized in the last days is, that it is most important to concentrate on ANSI. Besides this I am happy that it was sooooo easy to plug in Comanche instead of Swazoo. regards Chris Burkert > On Wed, Oct 22, 2003 at 08:24:23PM +0200, Chris Burkert wrote: > >>Hi, >> >>I have started with SmallWiki 0.9.20. The first steps of porting >>are done. >> >>Lukas Renggli wrote: >> >>>>when porting SmallWiki 0.9.19 to squeak I have found some points that >>>>could eventually be solved better. >>>> >>>>- #displayString should be #asString ?!? >>> >>> >>>as far as I know #displayString and #printString are ANSI standard, but >>>not #asString, e.g. in VisualWorks there is no #asString. The Purple >>>Book only describes #displayString and #printString too. >> >>OK I put a #displayString into Object. >> >> >>>>- #internal_templates contains $_ >>> >>> >>>Indeed, this is not portable at all. #'internal_templates' should work, >>>but this looks ugly. What I did here was to prefix with some special >>>string to avoid conflicts with user-defined properties. The next time I >>>publish an updated version it will be renamed to #internalTemplate. >> >>This is also in #internal_stylesheet >> >>I changed this to #internalTemplates and #internalStylesheet. >> >>What I did was: >> >>- put 'SW' as prefix to every SmallWiki class. >>- change Timestamp to TimeStamp >>- change #raiseSignal: to #signal:. >>- I had to paste the following Methods in by hand: >> - HtmlWriteStream class>>defaultEscapeTable >> - ParserTests>>wikiText >> - ParserTests>>docText >> - ParserTestsOld>>defaultWikiChars >> - ParserTestsOld>>testDefaultWikiChars >> because Rosetta produced special characters which saxon >> didn't know. >>- I had to compile a new Parser and Scanner. >>- The VW Set can #add: nil without an Exception. >> I added #silentAdd:. >>- The #resourcesFor* Methods in ParserTests are bad, because >> they use the class name which I have prefixed with 'SW'. >> I did a hack to solve this. >>- I didn't find a class for Base64EncodingReadStream. >> For now I took ReadStream. >>- change #sameCharacters: to #charactersExactlyMatching: >> >>For today this is the result: >>green Tests >> - CacheTests >> - ExtensionTests >> - ResponseTests >> - StorageTests >> - TemplateTests >>yellow Tests >> - ParserTests >> - PropertyTests >> - RequestTests >> - SecurityTests >>redTests >> - DocumentTests >> - ParserTestsOld >> - ServerTests >> - StructureTests >> >>When all tests are green I will post a changeset. >> >>Further comments? >> >>regards >> Chris Burkert >>-- >>http://www.chrisburkert.de/ > > -- http://www.chrisburkert.de/ From renggli at student.unibe.ch Mon Oct 27 15:56:09 2003 From: renggli at student.unibe.ch (Lukas Renggli) Date: Mon, 27 Oct 2003 15:56:09 +0100 Subject: Porting to squeak In-Reply-To: <20031027134105.GH22247@iam.unibe.ch> Message-ID: > I think it is very important to port Smalltwiki as much as you can > automatically. I think you do not want to redo everythink by hand > whenever a major update of Smallwiki is out... That is a good point. I don't know the status of Monticello for VisualWorks, but this would be a very nice solution as we could use the same repository then. Btw, Monticello for Squeak is able to export any Squeak package as a VisualWorks package with a simple mouse-click. That is the reason why there is always the latest Seaside version available to Squeak and to VisualWorks at the same time. Cheers, Lukas -- Lukas Renggli http://renggli.freezope.org From bergel at iam.unibe.ch Mon Oct 27 16:32:04 2003 From: bergel at iam.unibe.ch (Alexandre Bergel) Date: Mon, 27 Oct 2003 16:32:04 +0100 Subject: Comments... In-Reply-To: References: <20031027122904.GF22247@iam.unibe.ch> Message-ID: <20031027153203.GK22247@iam.unibe.ch> > > - We cannot create a new page! > > No? There are two possibilities to create a page. The first one is go > to another page (or folder) and create a link to a non-existing > structure there, after saving you should be offered a link to create a > new page within the same folder. The second possibility is to go to a > folder, click on 'Contents' and add your page manually. I know :-) but we get some nice rollbacks when we try such as "Message not understood: #keysAndValuesDo:". Have you already seen it? We use an 7.1nc image with the very last release of Smallwiki from Cincom. Alexandre > > > What is the meaning of editing and viewing the content of a folder? > > As it was requested by the community, a Folder is a subclass of Page > now: as folders do inherit now all the functionality of a page, their > handling got somehow more complex and difficult to understand. Let me > conclude the actions available to a folder: > > - View: The wiki-page associated with the folder will be rendered. As > this functionality is inherited from the Page-Class, the PageView > action is reused. > > - Edit: The wiki-page associated with the folder will be edited. As > this functionality is inherited from Page-Class, the PageEdit action is > reused. > > - Contents: The contents of the folder (its children) will be edited. > As this functionality *isn't* inherited from Page, I created a new > action called FolderEdit. It provides means to create, remove, copy and > move children. > > > - Why do we have this smalltalk sequence when editing a folder? > >-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= > >[ "If you are not logged-in as administrator, please remove everything > >between the square-brackets before saving the page!" > >structure children isEmpty ifFalse: [ > > html unorderedList: [ > > structure children do: [ :each | > > html listItem: [ html anchorWithUrl: each url do: > > each title ] ] ] ]. > >nil] > >-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= > > As explained in a earlier post, this code is necessary to make the > folders look like they did in previous versions of SmallWiki. This > block renders a list with all the children of the current folder. I > plan to factor the code out to an external message, so it will look > much simpler in further version of SmallWiki: > > [ structure renderChildrenListOn: html ] > > Hope that helps, > Lukas > > -- > Lukas Renggli > http://renggli.freezope.org -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.iam.unibe.ch/~bergel ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. From renggli at student.unibe.ch Mon Oct 27 19:32:02 2003 From: renggli at student.unibe.ch (Lukas Renggli) Date: Mon, 27 Oct 2003 19:32:02 +0100 Subject: Comments... In-Reply-To: <20031027153203.GK22247@iam.unibe.ch> Message-ID: >>> - We cannot create a new page! >> >> No? There are two possibilities to create a page. The first one is go >> to another page (or folder) and create a link to a non-existing >> structure there, after saving you should be offered a link to create a >> new page within the same folder. The second possibility is to go to a >> folder, click on 'Contents' and add your page manually. > > I know :-) but we get some nice rollbacks when we try such as "Message > not understood: #keysAndValuesDo:". Have you already seen it? > We use an 7.1nc image with the very last release of Smallwiki from > Cincom. No, and what do they tell you? ;) Lukas -- Lukas Renggli http://renggli.freezope.org From ducasse at iam.unibe.ch Mon Oct 27 21:04:32 2003 From: ducasse at iam.unibe.ch (ducasse) Date: Mon, 27 Oct 2003 21:04:32 +0100 Subject: Some feedback on SmallWiki In-Reply-To: Message-ID: Sure lectures have top priority! no problem, just create a public to do list, and when we have a meeting we just do the dummy ones. I think that we should deprecate the old methods and not remove them completely. Stef On Lundi, oct 27, 2003, at 15:50 Europe/Zurich, Lukas Renggli wrote: >>> Of course it is easy to change the message-names, but I don't know >>> if that really helps much. I can life with both conventions, in >>> 'ROE' the design-pattern and in 'Formulator' a modified >>> refactoring-browser approach is taken. >> >> Sure I can live with that too, but imagine all the newbie that will >> follow my lecture and the lecture of roel, so this is only a cosmetic >> change but it is really worth because it helps the people to know >> where they are. I realized that because I was coding at least 5 >> visitors for the bibtex stuff of roel and I was confused not to find >> the same. >> >> [...] >> >>> If you want to know all the structures referencing a specific other >>> structure (this doesn't have to be a resource necessarily) just use >>> something similar to the code below. One could even add a message to >>> Structure itself to get all the references more easily: >>> >>> Structure>>references >>> "Return all the structures referencing the receiver." >>> >>> ^(VisitorReferences collect: self root to: self) >>> collection >> >> We should add that. > > The same here, I will change the code accordingly an publish it to SCG > and Cincom StORE. Unfortunately my time is quite limited at the moment > (there is a whole bunch of lectures starting at university right now), > so it will take some more time. > > Cheers, > Lukas > > -- > Lukas Renggli > http://renggli.freezope.org > From bergel at iam.unibe.ch Tue Oct 28 15:47:17 2003 From: bergel at iam.unibe.ch (Alexandre Bergel) Date: Tue, 28 Oct 2003 15:47:17 +0100 Subject: Comments... In-Reply-To: References: <20031027153203.GK22247@iam.unibe.ch> Message-ID: <20031028144717.GG24959@iam.unibe.ch> Lukas, I use a fresh image (VisualWorks NonCommercial, Release 7 of March 21, 2003) without having installed anythink but the Store parcel, I have installed SmallWiki from the cincom store repository, and I cannot create save an edited page: I always get an "Message not understood: #keysAndValuesDo:" related to an instance of Swazoo.HTTPPostDataArray. First I though it might come from Swazoo, I have tried many release, but each time I have the same result. When are you at the Uni? Anyone has already encouter this problem? Stephane, you have worked recently on Smallwiki aren't you? Cheers, Alexandre On Mon, Oct 27, 2003 at 07:32:02PM +0100, Lukas Renggli wrote: > >>> - We cannot create a new page! > >> > >>No? There are two possibilities to create a page. The first one is go > >>to another page (or folder) and create a link to a non-existing > >>structure there, after saving you should be offered a link to create a > >>new page within the same folder. The second possibility is to go to a > >>folder, click on 'Contents' and add your page manually. > > > >I know :-) but we get some nice rollbacks when we try such as "Message > >not understood: #keysAndValuesDo:". Have you already seen it? > >We use an 7.1nc image with the very last release of Smallwiki from > >Cincom. > > No, and what do they tell you? ;) > > Lukas > > -- > Lukas Renggli > http://renggli.freezope.org -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.iam.unibe.ch/~bergel ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. From ducasse at iam.unibe.ch Tue Oct 28 13:24:46 2003 From: ducasse at iam.unibe.ch (ducasse) Date: Tue, 28 Oct 2003 13:24:46 +0100 Subject: Comments... In-Reply-To: Message-ID: Lukas did you report the problem we have with store on the vwnc mailing-list or the dev mailing-list because we can provide them access to our store repository if they need. On Lundi, oct 27, 2003, at 19:32 Europe/Zurich, Lukas Renggli wrote: >>>> - We cannot create a new page! >>> >>> No? There are two possibilities to create a page. The first one is go >>> to another page (or folder) and create a link to a non-existing >>> structure there, after saving you should be offered a link to create >>> a >>> new page within the same folder. The second possibility is to go to a >>> folder, click on 'Contents' and add your page manually. >> >> I know :-) but we get some nice rollbacks when we try such as >> "Message not understood: #keysAndValuesDo:". Have you already seen >> it? >> We use an 7.1nc image with the very last release of Smallwiki from >> Cincom. > > No, and what do they tell you? ;) > > Lukas > > -- > Lukas Renggli > http://renggli.freezope.org > From ducasse at iam.unibe.ch Tue Oct 28 20:37:40 2003 From: ducasse at iam.unibe.ch (ducasse) Date: Tue, 28 Oct 2003 20:37:40 +0100 Subject: Comments... In-Reply-To: <20031028144717.GG24959@iam.unibe.ch> Message-ID: <318F1E87-097E-11D8-B527-000A9573EAE2@iam.unibe.ch> Hi alex I got no problem with SmallWiki at all. I do not use the latest version because I left and here the bandwith is rather small. Stef On Mardi, oct 28, 2003, at 15:47 Europe/Zurich, Alexandre Bergel wrote: > Lukas, > > I use a fresh image (VisualWorks NonCommercial, Release 7 of March 21, > 2003) without having installed anythink but the Store parcel, I have > installed SmallWiki from the cincom store repository, and I cannot > create save an edited page: I always get an "Message not understood: > #keysAndValuesDo:" related to an instance of Swazoo.HTTPPostDataArray. > First I though it might come from Swazoo, I have tried many release, > but each time I have the same result. > > When are you at the Uni? > > Anyone has already encouter this problem? Stephane, you have worked > recently on Smallwiki aren't you? > > Cheers, > Alexandre > > On Mon, Oct 27, 2003 at 07:32:02PM +0100, Lukas Renggli wrote: >>>>> - We cannot create a new page! >>>> >>>> No? There are two possibilities to create a page. The first one is >>>> go >>>> to another page (or folder) and create a link to a non-existing >>>> structure there, after saving you should be offered a link to >>>> create a >>>> new page within the same folder. The second possibility is to go to >>>> a >>>> folder, click on 'Contents' and add your page manually. >>> >>> I know :-) but we get some nice rollbacks when we try such as >>> "Message >>> not understood: #keysAndValuesDo:". Have you already seen it? >>> We use an 7.1nc image with the very last release of Smallwiki from >>> Cincom. >> >> No, and what do they tell you? ;) >> >> Lukas >> >> -- >> Lukas Renggli >> http://renggli.freezope.org > > -- > _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: > Alexandre Bergel http://www.iam.unibe.ch/~bergel > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. > From chris at chrisburkert.de Tue Oct 28 20:51:16 2003 From: chris at chrisburkert.de (Chris Burkert) Date: Tue, 28 Oct 2003 20:51:16 +0100 Subject: Comments... In-Reply-To: <20031027153203.GK22247@iam.unibe.ch> References: <20031027122904.GF22247@iam.unibe.ch> <20031027153203.GK22247@iam.unibe.ch> Message-ID: <3F9EC8B4.4070101@chrisburkert.de> Alexandre Bergel wrote: >>> - We cannot create a new page! >> >>No? There are two possibilities to create a page. The first one is go >>to another page (or folder) and create a link to a non-existing >>structure there, after saving you should be offered a link to create a >>new page within the same folder. The second possibility is to go to a >>folder, click on 'Contents' and add your page manually. > > I know :-) but we get some nice rollbacks when we try such as "Message not understood: #keysAndValuesDo:". Have you already seen it? > We use an 7.1nc image with the very last release of Smallwiki from Cincom. This seems to be a Swazoo problem. The HTTPRequest provides the post fields as HTTPPostDataArray which is not a Dictionary and thus doesn't understand #keysAndValuesDo:. Regards Chris Burkert -- http://www.chrisburkert.de/ From bjorne at nada.kth.se Wed Oct 29 01:45:29 2003 From: bjorne at nada.kth.se (=?ISO-8859-1?Q?Bj=F6rn_Eiderb=E4ck?=) Date: Wed, 29 Oct 2003 01:45:29 +0100 Subject: [SmallWiki] Can't login In-Reply-To: References: Message-ID: <3F9F0DA9.8090404@nada.kth.se> I've just downloaded the latest version of SmallWiki (0.9.20) with Swazoo (0.9.76- bb08) and SmaCC (1.3) from Cincom Pub. Repos. I am using VW7.2 beta oct03.4. Started SmallWiki. It starts but I can't login or edit the pages! I got an error while trying to login or edit. Unhandled exception: Message not understood: #keysAndValuesDo: Swazoo.HTTPPostDataArray(Object)>>doesNotUnderstand: SmallWiki.SwazooSite>>prepareRequestFields: SmallWiki.SwazooSite>>prepareRequest: SmallWiki.SwazooSite>>helpResolve: Swazoo.URIResolution>>visitResource: [] in Swazoo.URIResolution>>visitChildrenOf:advancing: OrderedCollection>>do: Swazoo.URIResolution>>visitChildrenOf:advancing: Swazoo.URIResolution>>resolveTransparentComposite: Swazoo.URIResolution>>resolveServerRoot: Swazoo.ServerRootComposite>>helpResolve: Swazoo.URIResolution>>visitResource: Swazoo.URIResolution class>>resolveRequest:startingAt: Swazoo.HTTPServer>>answerTo: optimized [] in Swazoo.HTTPConnection>>getAndDispatchMessages BlockClosure>>on:do: Swazoo.HTTPConnection>>getAndDispatchMessages optimized [] in [] in Swazoo.HTTPConnection>>interact BlockClosure>>on:do: optimized [] in Swazoo.HTTPConnection>>interact BlockClosure>>on:do: optimized [] in Process class>>forBlock:priority: ---------------------------------------------------------------------- Swazoo.HTTPPostDataArray(Object)>>doesNotUnderstand: Receiver: a Swazoo.HTTPPostDataArray Instance Variables: underlyingCollection = an OrderedCollection[4] Arguments: aMessage = a Message with selector: #keysAndValuesDo: and arguments: #(BlockClosure [] in SmallWiki.SwazooSite>>prepareRequestFields:) Temporaries: excpt = a MessageNotUnderstood resumeValue = nil Context PC = 25 ---------------------------------------------------------------------- SmallWiki.SwazooSite>>prepareRequestFields: Receiver: a SmallWiki.SwazooSite Instance Variables: enabled = true uriPattern = '' parent = a Swazoo.ServerRootComposite server = a SmallWiki.SwazooServer Arguments: aHTTPRequest = an HTTPRequest from: 127.0.0.1 at: 29.10.2003 1:31 url: http://localhost:8080/?action=Login Temporaries: fields = a Dictionary[1] Context PC = 25 ---------------------------------------------------------------------- SmallWiki.SwazooSite>>prepareRequest: Receiver: a SmallWiki.SwazooSite Instance Variables: enabled = true uriPattern = '' parent = a Swazoo.ServerRootComposite server = a SmallWiki.SwazooServer Arguments: aHTTPRequest = an HTTPRequest from: 127.0.0.1 at: 29.10.2003 1:31 url: http://localhost:8080/?action=Login Context PC = 15 ---------------------------------------------------------------------- SmallWiki.SwazooSite>>helpResolve: Receiver: a SmallWiki.SwazooSite Instance Variables: enabled = true uriPattern = '' parent = a Swazoo.ServerRootComposite server = a SmallWiki.SwazooServer Arguments: aResolution = a Swazoo.URIResolution Temporaries: request = nil Context PC = 6 ---------------------------------------------------------------------- Swazoo.URIResolution>>visitResource: Receiver: an Swazoo.URIResolution Instance Variables: position = 1 request = an HTTPRequest from: 127.0.0.1 at: 29.10.2003 1:31 url: http://localhost:8080/?action=Login Arguments: aResource = a SmallWiki.SwazooSite Context PC = 4 ---------------------------------------------------------------------- [] in Swazoo.URIResolution>>visitChildrenOf:advancing: Receiver: an Swazoo.URIResolution Instance Variables: position = 1 request = an HTTPRequest from: 127.0.0.1 at: 29.10.2003 1:31 url: http://localhost:8080/?action=Login Arguments: each = a SmallWiki.SwazooSite Temporaries: .self = a Swazoo.URIResolution response = nil Context PC = 7 ---------------------------------------------------------------------- OrderedCollection>>do: Receiver: an OrderedCollection Instance Variables: firstIndex = 1 lastIndex = 1 Arguments: aBlock = BlockClosure [] in Swazoo.URIResolution>>visitChildrenOf:advancing: Temporaries: index = 1 Context PC = 17 ---------------------------------------------------------------------- Swazoo.URIResolution>>visitChildrenOf:advancing: Receiver: an Swazoo.URIResolution Instance Variables: position = 1 request = an HTTPRequest from: 127.0.0.1 at: 29.10.2003 1:31 url: http://localhost:8080/?action=Login Arguments: aResource = a Swazoo.ServerRootComposite aBoolean = false Temporaries: response = nil Context PC = 30 ---------------------------------------------------------------------- Swazoo.URIResolution>>resolveTransparentComposite: Receiver: an Swazoo.URIResolution Instance Variables: position = 1 request = an HTTPRequest from: 127.0.0.1 at: 29.10.2003 1:31 url: http://localhost:8080/?action=Login Arguments: aCompositeResource = a Swazoo.ServerRootComposite Context PC = 6 ---------------------------------------------------------------------- Swazoo.URIResolution>>resolveServerRoot: Receiver: an Swazoo.URIResolution Instance Variables: position = 1 request = an HTTPRequest from: 127.0.0.1 at: 29.10.2003 1:31 url: http://localhost:8080/?action=Login Arguments: aServerRoot = a Swazoo.ServerRootComposite Context PC = 5 ---------------------------------------------------------------------- Swazoo.ServerRootComposite>>helpResolve: Receiver: a Swazoo.ServerRootComposite Instance Variables: enabled = true uriPattern = '' parent = nil children = an OrderedCollection[1] Arguments: aResolution = a Swazoo.URIResolution Context PC = 4 ---------------------------------------------------------------------- Swazoo.URIResolution>>visitResource: Receiver: an Swazoo.URIResolution Instance Variables: position = 1 request = an HTTPRequest from: 127.0.0.1 at: 29.10.2003 1:31 url: http://localhost:8080/?action=Login Arguments: aResource = a Swazoo.ServerRootComposite Context PC = 4 ---------------------------------------------------------------------- Swazoo.URIResolution class>>resolveRequest:startingAt: Receiver: an Swazoo.URIResolution class Instance Variables: superclass = Object methodDict = a MethodDictionary[24] format = 16386 subclasses = nil instanceVariables = an Array[2] organization = ('private' #advance #currentIdentifier #currentPath #getAnswerFrom: #position: #request: #retreat #siteMatch: #stringMatch: #tailStream) ('private-initialize' #initializeRequest:) ('accessing' #atEnd #fullPath #position #request #resourcePath #tailPath) ('visiting' #resolveCompositeResource: #resolveLeafResource: #resolveServerRoot: #resolveSite: #resolveTransparentComposite: #visitChildrenOf:advancing: #visitResource:) name = #URIResolution classPool = a NameSpaceOfClass[0] environment = a NameSpace[82] Arguments: aRequest = an HTTPRequest from: 127.0.0.1 at: 29.10.2003 1:31 url: http://localhost:8080/?action=Login aResource = a Swazoo.ServerRootComposite Context PC = 8 ---------------------------------------------------------------------- Swazoo.HTTPServer>>answerTo: Receiver: a Swazoo.HTTPServer Instance Variables: loop = a Process in Semaphore>>wait ip = '127.0.0.1' port = 8080 connections = an OrderedCollection[1] sites = a Swazoo.ServerRootComposite socket = a Swazoo.SwazooSocket Arguments: aRequest = an HTTPRequest from: 127.0.0.1 at: 29.10.2003 1:31 url: http://localhost:8080/?action=Login Temporaries: response = nil Context PC = 7 ---------------------------------------------------------------------- optimized [] in Swazoo.HTTPConnection>>getAndDispatchMessages Receiver: an UndefinedObject Temporaries: .self = a Swazoo.HTTPConnection .request = an HTTPRequest from: 127.0.0.1 at: 29.10.2003 1:31 url: http://localhost:8080/?action=Login Context PC = 8 ---------------------------------------------------------------------- BlockClosure>>on:do: Receiver: a BlockClosure Instance Variables: method = CompiledBlock [] in Swazoo.HTTPConnection>>getAndDispatchMessages outerContext = nil copiedValues = an Array[2] Arguments: anExceptionSelector = Error handlerBlock = BlockClosure [] in Swazoo.HTTPConnection>>getAndDispatchMessages Context PC = 18 ---------------------------------------------------------------------- Swazoo.HTTPConnection>>getAndDispatchMessages Receiver: a Swazoo.HTTPConnection Instance Variables: stream = a Swazoo.SwazooStream loop = a Process in Process>>resume server = a Swazoo.HTTPServer Temporaries: request = an HTTPRequest from: 127.0.0.1 at: 29.10.2003 1:31 url: http://localhost:8080/?action=Login response = nil Context PC = 34 ---------------------------------------------------------------------- optimized [] in [] in Swazoo.HTTPConnection>>interact Receiver: an UndefinedObject Temporaries: .self = a Swazoo.HTTPConnection Context PC = 9 ---------------------------------------------------------------------- BlockClosure>>on:do: Receiver: a BlockClosure Instance Variables: method = CompiledBlock [] in [] in Swazoo.HTTPConnection>>interact outerContext = nil copiedValues = a Swazoo.HTTPConnection Arguments: anExceptionSelector = Error handlerBlock = BlockClosure [] in [] in Swazoo.HTTPConnection>>interact Context PC = 18 ---------------------------------------------------------------------- optimized [] in Swazoo.HTTPConnection>>interact Receiver: an UndefinedObject Temporaries: .self = a Swazoo.HTTPConnection Context PC = 14 ---------------------------------------------------------------------- BlockClosure>>on:do: Receiver: a BlockClosure Instance Variables: method = CompiledBlock [] in Swazoo.HTTPConnection>>interact outerContext = nil copiedValues = a Swazoo.HTTPConnection Arguments: anExceptionSelector = TerminateException handlerBlock = BlockClosure [] in [] in Process class>>forBlock:priority: Context PC = 18 ---------------------------------------------------------------------- optimized [] in Process class>>forBlock:priority: Receiver: an UndefinedObject Temporaries: .aBlock = BlockClosure [] in Swazoo.HTTPConnection>>interact Context PC = 9 From bjorne at nada.kth.se Wed Oct 29 02:16:40 2003 From: bjorne at nada.kth.se (=?ISO-8859-1?Q?Bj=F6rn_Eiderb=E4ck?=) Date: Wed, 29 Oct 2003 02:16:40 +0100 Subject: [SmallWiki] Can't login In-Reply-To: <3F9F0DA9.8090404@nada.kth.se> References: <3F9F0DA9.8090404@nada.kth.se> Message-ID: <3F9F14F8.2040701@nada.kth.se> A solution seems to be to implement Swazoo.HTTPPostDataArray>>keysAndValuesDo: aBlock self associations do: [:anAssoc | aBlock value: anAssoc key value: anAssoc value] Then I can login and edit. Bj?rn Bj?rn Eiderb?ck wrote: > I've just downloaded the latest version of SmallWiki (0.9.20) with > Swazoo (0.9.76- bb08) and SmaCC (1.3) from Cincom Pub. Repos. I am > using VW7.2 beta oct03.4. > Started SmallWiki. > It starts but I can't login or edit the pages! > > I got an error while trying to login or edit. > > Unhandled exception: Message not understood: #keysAndValuesDo: > Swazoo.HTTPPostDataArray(Object)>>doesNotUnderstand: > SmallWiki.SwazooSite>>prepareRequestFields: > SmallWiki.SwazooSite>>prepareRequest: > SmallWiki.SwazooSite>>helpResolve: > Swazoo.URIResolution>>visitResource: > [] in Swazoo.URIResolution>>visitChildrenOf:advancing: > OrderedCollection>>do: > Swazoo.URIResolution>>visitChildrenOf:advancing: > Swazoo.URIResolution>>resolveTransparentComposite: > Swazoo.URIResolution>>resolveServerRoot: > Swazoo.ServerRootComposite>>helpResolve: > Swazoo.URIResolution>>visitResource: > Swazoo.URIResolution class>>resolveRequest:startingAt: > Swazoo.HTTPServer>>answerTo: > optimized [] in Swazoo.HTTPConnection>>getAndDispatchMessages > BlockClosure>>on:do: > Swazoo.HTTPConnection>>getAndDispatchMessages > optimized [] in [] in Swazoo.HTTPConnection>>interact > BlockClosure>>on:do: > optimized [] in Swazoo.HTTPConnection>>interact > BlockClosure>>on:do: > optimized [] in Process class>>forBlock:priority: > > ---------------------------------------------------------------------- > Swazoo.HTTPPostDataArray(Object)>>doesNotUnderstand: > Receiver: > a Swazoo.HTTPPostDataArray > Instance Variables: > underlyingCollection = an OrderedCollection[4] > Arguments: > aMessage = a Message with selector: #keysAndValuesDo: and > arguments: #(BlockClosure [] in > SmallWiki.SwazooSite>>prepareRequestFields:) > Temporaries: > excpt = a MessageNotUnderstood > resumeValue = nil > Context PC = 25 > > ---------------------------------------------------------------------- > SmallWiki.SwazooSite>>prepareRequestFields: > Receiver: > a SmallWiki.SwazooSite > Instance Variables: > enabled = true > uriPattern = '' > parent = a Swazoo.ServerRootComposite > server = a SmallWiki.SwazooServer > Arguments: > aHTTPRequest = an HTTPRequest from: 127.0.0.1 at: 29.10.2003 1:31 > url: http://localhost:8080/?action=Login > Temporaries: > fields = a Dictionary[1] > Context PC = 25 > > ---------------------------------------------------------------------- > SmallWiki.SwazooSite>>prepareRequest: > Receiver: > a SmallWiki.SwazooSite > Instance Variables: > enabled = true > uriPattern = '' > parent = a Swazoo.ServerRootComposite > server = a SmallWiki.SwazooServer > Arguments: > aHTTPRequest = an HTTPRequest from: 127.0.0.1 at: 29.10.2003 1:31 > url: http://localhost:8080/?action=Login > Context PC = 15 > > ---------------------------------------------------------------------- > SmallWiki.SwazooSite>>helpResolve: > Receiver: > a SmallWiki.SwazooSite > Instance Variables: > enabled = true > uriPattern = '' > parent = a Swazoo.ServerRootComposite > server = a SmallWiki.SwazooServer > Arguments: > aResolution = a Swazoo.URIResolution > Temporaries: > request = nil > Context PC = 6 > > ---------------------------------------------------------------------- > Swazoo.URIResolution>>visitResource: > Receiver: > an Swazoo.URIResolution > Instance Variables: > position = 1 > request = an HTTPRequest from: 127.0.0.1 at: 29.10.2003 1:31 url: > http://localhost:8080/?action=Login > Arguments: > aResource = a SmallWiki.SwazooSite > Context PC = 4 > > ---------------------------------------------------------------------- > [] in Swazoo.URIResolution>>visitChildrenOf:advancing: > Receiver: > an Swazoo.URIResolution > Instance Variables: > position = 1 > request = an HTTPRequest from: 127.0.0.1 at: 29.10.2003 1:31 url: > http://localhost:8080/?action=Login > Arguments: > each = a SmallWiki.SwazooSite > Temporaries: > .self = a Swazoo.URIResolution > response = nil > Context PC = 7 > > ---------------------------------------------------------------------- > OrderedCollection>>do: > Receiver: > an OrderedCollection > Instance Variables: > firstIndex = 1 > lastIndex = 1 > Arguments: > aBlock = BlockClosure [] in > Swazoo.URIResolution>>visitChildrenOf:advancing: > Temporaries: > index = 1 > Context PC = 17 > > ---------------------------------------------------------------------- > Swazoo.URIResolution>>visitChildrenOf:advancing: > Receiver: > an Swazoo.URIResolution > Instance Variables: > position = 1 > request = an HTTPRequest from: 127.0.0.1 at: 29.10.2003 1:31 url: > http://localhost:8080/?action=Login > Arguments: > aResource = a Swazoo.ServerRootComposite > aBoolean = false > Temporaries: > response = nil > Context PC = 30 > > ---------------------------------------------------------------------- > Swazoo.URIResolution>>resolveTransparentComposite: > Receiver: > an Swazoo.URIResolution > Instance Variables: > position = 1 > request = an HTTPRequest from: 127.0.0.1 at: 29.10.2003 1:31 url: > http://localhost:8080/?action=Login > Arguments: > aCompositeResource = a Swazoo.ServerRootComposite > Context PC = 6 > > ---------------------------------------------------------------------- > Swazoo.URIResolution>>resolveServerRoot: > Receiver: > an Swazoo.URIResolution > Instance Variables: > position = 1 > request = an HTTPRequest from: 127.0.0.1 at: 29.10.2003 1:31 url: > http://localhost:8080/?action=Login > Arguments: > aServerRoot = a Swazoo.ServerRootComposite > Context PC = 5 > > ---------------------------------------------------------------------- > Swazoo.ServerRootComposite>>helpResolve: > Receiver: > a Swazoo.ServerRootComposite > Instance Variables: > enabled = true > uriPattern = '' > parent = nil > children = an OrderedCollection[1] > Arguments: > aResolution = a Swazoo.URIResolution > Context PC = 4 > > ---------------------------------------------------------------------- > Swazoo.URIResolution>>visitResource: > Receiver: > an Swazoo.URIResolution > Instance Variables: > position = 1 > request = an HTTPRequest from: 127.0.0.1 at: 29.10.2003 1:31 url: > http://localhost:8080/?action=Login > Arguments: > aResource = a Swazoo.ServerRootComposite > Context PC = 4 > > ---------------------------------------------------------------------- > Swazoo.URIResolution class>>resolveRequest:startingAt: > Receiver: > an Swazoo.URIResolution class > Instance Variables: > superclass = Object > methodDict = a MethodDictionary[24] > format = 16386 > subclasses = nil > instanceVariables = an Array[2] > organization = ('private' #advance #currentIdentifier #currentPath > #getAnswerFrom: #position: #request: #retreat #siteMatch: > #stringMatch: #tailStream) > ('private-initialize' #initializeRequest:) > ('accessing' #atEnd #fullPath #position #request #resourcePath #tailPath) > ('visiting' #resolveCompositeResource: #resolveLeafResource: > #resolveServerRoot: #resolveSite: #resolveTransparentComposite: > #visitChildrenOf:advancing: #visitResource:) > > name = #URIResolution > classPool = a NameSpaceOfClass[0] > environment = a NameSpace[82] > Arguments: > aRequest = an HTTPRequest from: 127.0.0.1 at: 29.10.2003 1:31 url: > http://localhost:8080/?action=Login > aResource = a Swazoo.ServerRootComposite > Context PC = 8 > > ---------------------------------------------------------------------- > Swazoo.HTTPServer>>answerTo: > Receiver: > a Swazoo.HTTPServer > Instance Variables: > loop = a Process in Semaphore>>wait > ip = '127.0.0.1' > port = 8080 > connections = an OrderedCollection[1] > sites = a Swazoo.ServerRootComposite > socket = a Swazoo.SwazooSocket > Arguments: > aRequest = an HTTPRequest from: 127.0.0.1 at: 29.10.2003 1:31 url: > http://localhost:8080/?action=Login > Temporaries: > response = nil > Context PC = 7 > > ---------------------------------------------------------------------- > optimized [] in Swazoo.HTTPConnection>>getAndDispatchMessages > Receiver: > an UndefinedObject > Temporaries: > .self = a Swazoo.HTTPConnection > .request = an HTTPRequest from: 127.0.0.1 at: 29.10.2003 1:31 url: > http://localhost:8080/?action=Login > Context PC = 8 > > ---------------------------------------------------------------------- > BlockClosure>>on:do: > Receiver: > a BlockClosure > Instance Variables: > method = CompiledBlock [] in > Swazoo.HTTPConnection>>getAndDispatchMessages > outerContext = nil > copiedValues = an Array[2] > Arguments: > anExceptionSelector = Error > handlerBlock = BlockClosure [] in > Swazoo.HTTPConnection>>getAndDispatchMessages > Context PC = 18 > > ---------------------------------------------------------------------- > Swazoo.HTTPConnection>>getAndDispatchMessages > Receiver: > a Swazoo.HTTPConnection > Instance Variables: > stream = a Swazoo.SwazooStream > loop = a Process in Process>>resume > server = a Swazoo.HTTPServer > Temporaries: > request = an HTTPRequest from: 127.0.0.1 at: 29.10.2003 1:31 url: > http://localhost:8080/?action=Login > response = nil > Context PC = 34 > > ---------------------------------------------------------------------- > optimized [] in [] in Swazoo.HTTPConnection>>interact > Receiver: > an UndefinedObject > Temporaries: > .self = a Swazoo.HTTPConnection > Context PC = 9 > > ---------------------------------------------------------------------- > BlockClosure>>on:do: > Receiver: > a BlockClosure > Instance Variables: > method = CompiledBlock [] in [] in Swazoo.HTTPConnection>>interact > outerContext = nil > copiedValues = a Swazoo.HTTPConnection > Arguments: > anExceptionSelector = Error > handlerBlock = BlockClosure [] in [] in > Swazoo.HTTPConnection>>interact > Context PC = 18 > > ---------------------------------------------------------------------- > optimized [] in Swazoo.HTTPConnection>>interact > Receiver: > an UndefinedObject > Temporaries: > .self = a Swazoo.HTTPConnection > Context PC = 14 > > ---------------------------------------------------------------------- > BlockClosure>>on:do: > Receiver: > a BlockClosure > Instance Variables: > method = CompiledBlock [] in Swazoo.HTTPConnection>>interact > outerContext = nil > copiedValues = a Swazoo.HTTPConnection > Arguments: > anExceptionSelector = TerminateException > handlerBlock = BlockClosure [] in [] in Process > class>>forBlock:priority: > Context PC = 18 > > ---------------------------------------------------------------------- > optimized [] in Process class>>forBlock:priority: > Receiver: > an UndefinedObject > Temporaries: > .aBlock = BlockClosure [] in Swazoo.HTTPConnection>>interact > Context PC = 9 > > > > From Roel.Wuyts at ulb.ac.be Wed Oct 29 08:47:52 2003 From: Roel.Wuyts at ulb.ac.be (Roel Wuyts) Date: Wed, 29 Oct 2003 08:47:52 +0100 Subject: Urgent: making it run Message-ID: <33574CCE-09E4-11D8-BD16-003065CC9F36@ulb.ac.be> Hello guys, next monday all the students here will start working on SmallWiki. I put a version in a dedicated Store repository they can load from, thinking that the latest version worked, but this is not the case (I guess it is the same problem that Alex mentioned). Since yesterday Alex told us that the version at the Cincom Store also gives problems I am really wondering what to do (and it is quite urgent - my assistents need to be able to load it before the course next monday). So what version/combination of versions is known to work? I am trying to make some time to test as much as I can myself, and will let you know my findings. -- Roel Wuyts DeComp roel.wuyts at ulb.ac.be Universit? Libre de Bruxelles http://homepages.ulb.ac.be/~rowuyts/ Belgique Board Member of the European Smalltalk User Group: www.esug.org From bjorne at nada.kth.se Wed Oct 29 09:38:35 2003 From: bjorne at nada.kth.se (=?ISO-8859-1?Q?Bj=F6rn_Eiderb=E4ck?=) Date: Wed, 29 Oct 2003 09:38:35 +0100 Subject: Comments... In-Reply-To: <20031028144717.GG24959@iam.unibe.ch> References: <20031027153203.GK22247@iam.unibe.ch> <20031028144717.GG24959@iam.unibe.ch> Message-ID: <3F9F7C8B.6020609@nada.kth.se> As I said in another post I also encounter this problem and made a solution that have worked so far. I just implemented: Swazoo.HTTPPostDataArray>>keysAndValuesDo: aBlock self associations do: [:anAssoc | aBlock value: anAssoc key value: anAssoc value] Bj?rn > Bj?rn Eiderb?ck wrote: > > I've just downloaded the latest version of SmallWiki (0.9.20) with > Swazoo (0.9.76- bb08) and SmaCC (1.3) from Cincom Pub. Repos. I am > using VW7.2 beta oct03.4. > Started SmallWiki. > It starts but I can't login or edit the pages! > > I got an error while trying to login or edit. > > ... SNIP ... Alexandre Bergel wrote: >Lukas, > >I use a fresh image (VisualWorks NonCommercial, Release 7 of March 21, 2003) without having installed anythink but the Store parcel, I have installed SmallWiki from the cincom store repository, and I cannot create save an edited page: I always get an "Message not understood: #keysAndValuesDo:" related to an instance of Swazoo.HTTPPostDataArray. >First I though it might come from Swazoo, I have tried many release, but each time I have the same result. > >When are you at the Uni? > >Anyone has already encouter this problem? Stephane, you have worked recently on Smallwiki aren't you? > >Cheers, >Alexandre > >On Mon, Oct 27, 2003 at 07:32:02PM +0100, Lukas Renggli wrote: > > >>>>>- We cannot create a new page! >>>>> >>>>> >>>>No? There are two possibilities to create a page. The first one is go >>>>to another page (or folder) and create a link to a non-existing >>>>structure there, after saving you should be offered a link to create a >>>>new page within the same folder. The second possibility is to go to a >>>>folder, click on 'Contents' and add your page manually. >>>> >>>> >>>I know :-) but we get some nice rollbacks when we try such as "Message >>>not understood: #keysAndValuesDo:". Have you already seen it? >>>We use an 7.1nc image with the very last release of Smallwiki from >>>Cincom. >>> >>> >>No, and what do they tell you? ;) >> >>Lukas >> >>-- >>Lukas Renggli >>http://renggli.freezope.org >> >> > > > From bergel at iam.unibe.ch Wed Oct 29 11:37:51 2003 From: bergel at iam.unibe.ch (Alexandre Bergel) Date: Wed, 29 Oct 2003 11:37:51 +0100 Subject: Urgent: making it run In-Reply-To: <33574CCE-09E4-11D8-BD16-003065CC9F36@ulb.ac.be> References: <33574CCE-09E4-11D8-BD16-003065CC9F36@ulb.ac.be> Message-ID: <20031029103750.GB9835@iam.unibe.ch> Roel, Use the hack provided by Bjorn Eiderback, it works well enought for not having the rollback. But I agree, it is a hack... Alexandre On Wed, Oct 29, 2003 at 08:47:52AM +0100, Roel Wuyts wrote: > Hello guys, > next monday all the students here will start working on SmallWiki. I > put a version in a dedicated Store repository they can load from, > thinking that the latest version worked, but this is not the case (I > guess it is the same problem that Alex mentioned). Since yesterday Alex > told us that the version at the Cincom Store also gives problems I am > really wondering what to do (and it is quite urgent - my assistents > need to be able to load it before the course next monday). > > So what version/combination of versions is known to work? > > I am trying to make some time to test as much as I can myself, and will > let you know my findings. > -- > Roel Wuyts > DeComp > roel.wuyts at ulb.ac.be Universit? Libre de > Bruxelles > http://homepages.ulb.ac.be/~rowuyts/ > Belgique > Board Member of the European Smalltalk User Group: www.esug.org -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.iam.unibe.ch/~bergel ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. From ducasse at iam.unibe.ch Wed Oct 29 14:18:03 2003 From: ducasse at iam.unibe.ch (ducasse) Date: Wed, 29 Oct 2003 14:18:03 +0100 Subject: Urgent: making it run In-Reply-To: <33574CCE-09E4-11D8-BD16-003065CC9F36@ulb.ac.be> Message-ID: <535799AB-0A12-11D8-9FE7-000A9573EAE2@iam.unibe.ch> I used SmallWiki (0.9.19,lukas)* and it works. This is true that we have a problem of packaging with store. I think that this is important to use version number of the required packages else we cannot be sure to have a working system. Stef On Mercredi, oct 29, 2003, at 08:47 Europe/Zurich, Roel Wuyts wrote: > Hello guys, > next monday all the students here will start working on SmallWiki. I > put a version in a dedicated Store repository they can load from, > thinking that the latest version worked, but this is not the case (I > guess it is the same problem that Alex mentioned). Since yesterday > Alex told us that the version at the Cincom Store also gives problems > I am really wondering what to do (and it is quite urgent - my > assistents need to be able to load it before the course next monday). > > So what version/combination of versions is known to work? > > I am trying to make some time to test as much as I can myself, and > will let you know my findings. > -- > Roel Wuyts > DeComp > roel.wuyts at ulb.ac.be Universit? Libre de > Bruxelles > http://homepages.ulb.ac.be/~rowuyts/ > Belgique > Board Member of the European Smalltalk User Group: www.esug.org > From ducasse at iam.unibe.ch Wed Oct 29 17:13:41 2003 From: ducasse at iam.unibe.ch (ducasse) Date: Wed, 29 Oct 2003 17:13:41 +0100 Subject: About permissions in SmallWiki Message-ID: Hi lukas I restarted to read SmallWiki code because I lost the changes of my previous image. Anyway, if I understand correctly there are permissions and users. Permission are grants to perform action. A role contains a list of permissions. A user play certain roles. Before performing an action, sw checks whether the user has the right permissions obtained by playing a certain role. Now the structure itself is not involved, this means that if I want to have a special page that only a certain person can edit but everybody else cannot I have to create a special role for that. Am I correct? Or is it possible to grant permission at the instance level like a page? For example how do I say that a folder can only be edited by admin or User X, or a person playing the role editFolderX? Stef From Roel.Wuyts at ulb.ac.be Thu Oct 30 14:17:56 2003 From: Roel.Wuyts at ulb.ac.be (Roel Wuyts) Date: Thu, 30 Oct 2003 14:17:56 +0100 Subject: Some observations... Message-ID: <79B0038C-0ADB-11D8-A236-003065CC9F36@ulb.ac.be> Hi all, I loaded the 'latest' version of SmallWiki in my experiments to assemble a working version for which I do not have to touch the code. I tested my assembly by running the unit tests (all run green) and by then starting a server and adding some pages here and there. Below I describe from which repository I took what version to make it work (half from the scgStore, half from the Cincom public store). I then started to reconcile things to find the corresponding versions in the store repositories, in the hope that this helps in getting everything syned again. My assembly was the following: Swazoo, scgStore, 1.5 ?can'find same version on Cincom store (see below) SIXX, scgStore, 3.5 (= 0.1g on cincom public store) SmaCC, cincom public store, 1.3 (was on scg store - I put it as 1.3Cincom) SmallWiki, cincom public store, 0.9.20 (=0.301 on scg store) (note: the same configuration using SmaCC 2.0 from the scgStore did not work). So what I did: I published SmaCC 1.3 from the Cincom store in the scg store. That way you can load everything from the scgStore and use it. This is also what I will use for my students' repository. To be done: Sync everything properly, especially Swazoo... it is the really different between the scgStore and the Cincom store, and I can't make any sense from it. I tried to sync the scg version with 6 versions on the Cincom public store, but it never worked. So I guess that these should be properly merged or, if that is not possible, the delta should be put in its own package. -- Roel Wuyts DeComp roel.wuyts at ulb.ac.be Universit? Libre de Bruxelles http://homepages.ulb.ac.be/~rowuyts/ Belgique Board Member of the European Smalltalk User Group: www.esug.org From luisi at iam.unibe.ch Thu Oct 30 16:08:51 2003 From: luisi at iam.unibe.ch (Eric Luisi) Date: Thu, 30 Oct 2003 16:08:51 +0100 Subject: Overloading in Smallwiki Message-ID: <3FA12983.8060606@iam.unibe.ch> Hello, I am a trainee working on a small project with Smallwiki. I am mainly interested in all the security issues. Formally, my project was about the IP filtering. This approach seems to be not really relevant because of the dynamic IP distribution by internet providers. Just by logging out and logging in a new IP can be obtained, and could potentially upload again, whereas an innocent user can be banned because her/his ISP just could have given a banned IP. So, let's take an another approach. Do you think it would be useful to only grant the upload of some Mimes-types and only allocate a clear space disk to users and groups of users like 50MB/day/user or 100MB/user, or define a clear file size allowed to avoid the flood. I could maybe do it if you think it is useful. Let me know. Thanks Cheers Eric Luisi From vogel at iam.unibe.ch Thu Oct 30 21:22:11 2003 From: vogel at iam.unibe.ch (David Vogel) Date: Thu, 30 Oct 2003 21:22:11 +0100 Subject: About permissions in SmallWiki In-Reply-To: References: Message-ID: <3FA172F3.8050101@iam.unibe.ch> ducasse wrote: > Hi lukas > > I restarted to read SmallWiki code because I lost the changes of my > previous image. > Anyway, if I understand correctly there are permissions and users. > Permission are grants to perform action. > A role contains a list of permissions. > A user play certain roles. correct. > > Before performing an action, sw checks whether the user has the right > permissions obtained > by playing a certain role. > > Now the structure itself is not involved, this means that if I > want to have a special page that only a certain person can edit but > everybody else cannot I have to create a special role for that. Am I > correct? Or is it possible to grant permission at the instance level > like a page? well, the structure is also involved: you can also append a role to a structure: e.g. if a user with role a wants to perform an action on structure 1, sw will look for role a on the current structure 1 and apply these permissions. if structure 1 doesn't have role a, sw will look for role a in the parents structure and so on... > > For example how do I say that a folder x can only be edited by admin > or User X, or a person playing the role editFolderX? - append role editFolderX to folder x with permission to edit. - append all other roles to folder x and remove permission to edit. I'll try to integrate my admintool on monday. if you want to have a look at it (might still have some bugs..): http://badefix.unibe.ch:8080/?action=AdminAction ...hope this will help. ...the action "admin" doesn't show up yet, so you always have to type ......?action=AdminAction on a certain folder. cheers, david. ps. I'll work on it on friday, so the server might be down. From renggli at student.unibe.ch Thu Oct 30 22:31:52 2003 From: renggli at student.unibe.ch (Lukas Renggli) Date: Thu, 30 Oct 2003 22:31:52 +0100 Subject: About permissions in SmallWiki In-Reply-To: Message-ID: <7A8299FE-0B20-11D8-874D-000393CFE6C8@student.unibe.ch> Hi Stef, sorry that I could not replay the last days, I have too much other things to do right now. Yesterday night I started trying to fix some of the bugs and suggestions made during that week, but I could not finish yet. Also I have problems reproducing the Swazoo bug, as I cannot download the whole package from Cincom into a new image. After about 10 or 20 minutes I get a timeout before it has been loaded completely. When updating to the latest version of Swazoo in my development image, no bug occurs; but the updating doesn't seem to work as I don't have a class called HTTPPostDataArray and the message #keysAndValuesDo: works properly. > Anyway, if I understand correctly there are permissions and users. > Permission are grants to perform action. > A role contains a list of permissions. > A user play certain roles. The class diagram looks like this: SecurityInformation A | +-----------------------+--------------------------+ | | | | | | User (1) -------> (1..) Role (1) -------> (1..) Permission Users are defined in the server class. Existing roles are just the union of all roles assigned to all the users in the system. The comparison #= of Roles and Permission is done using their name. When processing a query, e.g. /a/b?action=MyAction, the following actions are taken: - The server is looking for a username and password given in the request header. The username is looked-up in the server and checked if the password matches, if so a copy of that user is assigned to the current request. If there is no authentication given or if the authentication does not match, the anonymous-user is assigned automatically. - As you know, the chain-of-responsibilities is started and the request is passed to the root structure. Every structure has the possibility to redefine roles. If there is the role X defined in the root folder and the user of the current request has got the role X defined too, then the role of the user is replaced with the role of the structure. This happens for all the roles of the user, if there are any redefinition in the structure. - It is important to understand that during processing there are roles added or removed from the user, existing roles are just replaced with roles having the same name but contain different permissions. - The request with the updated user is then passed to next child within the chain, etc. - At the of the chain the given action (if there is nothing given, the default action will be executed) is execute. By default actions have the possibility to override the message #executePermission to assert the permissions the user needs to execute it. If such an an permission fails, the actions is aborted and error action is executed instead. > Now the structure itself is not involved, this means that if I want to > have a special page that only a certain person can edit but everybody > else cannot I have to create a special role for that. Am I correct? Or > is it possible to grant permission at the instance level like a page? Just define the anonymous role in that structure without the edit-permissions. Hope that helps, Lukas -- Lukas Renggli http://renggli.freezope.org From renggli at student.unibe.ch Thu Oct 30 22:42:39 2003 From: renggli at student.unibe.ch (Lukas Renggli) Date: Thu, 30 Oct 2003 22:42:39 +0100 Subject: About permissions in SmallWiki In-Reply-To: <3FA172F3.8050101@iam.unibe.ch> Message-ID: Hi David, > ps. I'll work on it on friday, so the server might be down. I don't know what server you are talking about, but if it is http://kilana.unibe.ch:9090 bear in mind that this server is used for production stuff, like the ESE lecture and by Stefan for his lectures and his book. So nothing should happen to the content at all. After all, why do you think a Smalltalk server needs to have a downtime? Adrian and I are selling Smalltalk web-applications to real customers. One advantage we are used to tell them is that there is (usually) no server-downtime even during updates. This is exactly the same for SmallWiki. Change and test the code on your machine and once you are done download it to the production machine using your favourite source-management tool. It works even with StORE, even-tough this is not my favourite source-management tool. Cheers, Lukas -- Lukas Renggli http://renggli.freezope.org From vogel at iam.unibe.ch Fri Oct 31 10:30:05 2003 From: vogel at iam.unibe.ch (david vogel) Date: Fri, 31 Oct 2003 10:30:05 +0100 Subject: About permissions in SmallWiki In-Reply-To: References: Message-ID: <3FA22B9D.4070400@iam.unibe.ch> Lukas Renggli wrote: > Hi David, > >> ps. I'll work on it on friday, so the server might be down. > > > I don't know what server you are talking about, but if it is > > http://kilana.unibe.ch:9090 > > bear in mind that this server is used for production stuff, like the > ESE lecture and by Stefan for his lectures and his book. So nothing > should happen to the content at all. > > After all, why do you think a Smalltalk server needs to have a > downtime? Adrian and I are selling Smalltalk web-applications to real > customers. One advantage we are used to tell them is that there is > (usually) no server-downtime even during updates. cool. I was talking about the machine I' m developping with. It is not a productive machine but my latest version is running on it. this machine is also for other students and they are able to turn it off; or maybe I'll have to reboot since windows is running on it. that's what I meant with 'the server could be down'. cheers, david. From chris at chrisburkert.de Sun Oct 26 00:52:37 2003 From: chris at chrisburkert.de (Chris Burkert) Date: Sun, 26 Oct 2003 00:52:37 +0200 Subject: [ANN] SmallWiki 0.9.20 for Squeak (pre alpha ... full of bugs) Message-ID: <3F9AFEB5.3030209@chrisburkert.de> Hi, I have done more work on porting SmallWiki AND IT IS STILL FULL OF BUGS, but I hope that won't last a long time. There is one yellow test in ParserTests and three in DocumentTests. This is a problem with the Compiler. Unfortunatly I couldn't fix it yet. But you will only need this, if you want to embed code. Everything else runs green. Besides this I could set up the comanche server and got the right Response in my Mozilla (that was exciting :). Most Links won't work. I'll fix this next week. If you want to try it, get a fresh image (I use 3.6 #5424) and load the following Packages from SqueakMap: - SUnit (3.1) - SmaCC Runtime (1.0) - SIXX (0.1f) - Refactoring Browser (0.94) - KomHttpServer (6.2) Then fileIn the attached changeset. A Workspace should open and tell you more. If not, look at SWServer class>>defaultWorkspace. It would be a great if one of you (familiar with the Squeak-Compiler) could help me and figure out the problem with the code (Maybe the new ClosureCompiler would do it?!?). Try something with SWCode>>evaluateWith: and take a look at SWDocumentTests>>testCode*. I think I could publish a .sar at SqueakMap in some weeks ... after cleaning those issues above. Regards Chris Burkert -- http://www.chrisburkert.de/ -------------- next part -------------- A non-text attachment was scrubbed... Name: SmallWiki-0.9.20-chbu.1.cs.gz Type: application/gzip Size: 72183 bytes Desc: not available Url : http://www.iam.unibe.ch/pipermail/smallwiki/attachments/20031026/45b39a27/SmallWiki-0.9.20-chbu.1.cs.bin