[Glass] Updating code from seaside gem

Dale Henrichs via Glass glass at lists.gemtalksystems.com
Wed Oct 22 17:10:48 PDT 2014


Mariano,

We have a characterized the problem and will have a bugfix (internal bug
44745) in 3.2.4 or 3.3 which ever comes first.

The bug is a bit tricky in that it is triggered when a) an exception is
resumed with no handler on the stack and b) if there are at least 2
handlers on the stack with non-standard handler classes (in this case
WaExceptionHandlers).

We do not plan to release a 3.1.0.7, but the workaround for this bug would
be to put in explicit handlers and not allowing the defaultAction to fire .
I used the following and it appears to load without errors:

blockToLoad
  ^ [ :iam |
  [
  [
  [
  Metacello new
    baseline: 'Seaside3';
    repository: 'github://GsDevKit/Seaside31:v3.1.3-gs/repository';
    onLock: [ :ex | ex honor ];
    load: #('Development' 'Examples' 'Zinc') ]
    on: MetacelloAllowConflictingProjectUpgrade
    do: [ :ex | ex defaultAction ] ]
    on: MetacelloAllowLockedProjectChange
    do: [ :ex | ex disallow ] ]
    on: MetacelloNameNotDefinedError
    do: [ :ex | ex resume ] ]

It turns out to be a bit tricky to get this right, since defaultActions
unwind the stack before running so it's not quite the same and in the
normal course of things additional exceptions could expose you to the bug
again ...

Hope this helps,

Dale

On Tue, Oct 21, 2014 at 4:00 PM, Mariano Martinez Peck <
marianopeck at gmail.com> wrote:

> Coooool!  I trust your lab! :)
>
> On Tue, Oct 21, 2014 at 7:04 PM, Dale Henrichs <
> dale.henrichs at gemtalksystems.com> wrote:
>
>> Excellent ... I've reproduced the bug and I've got it under the
>> microscope ...
>>
>> Thanks man!
>>
>> Dale
>>
>> On Tue, Oct 21, 2014 at 2:32 PM, Mariano Martinez Peck <
>> marianopeck at gmail.com> wrote:
>>
>>>
>>>
>>> On Tue, Oct 21, 2014 at 6:04 PM, Dale Henrichs <
>>> dale.henrichs at gemtalksystems.com> wrote:
>>>
>>>> So you've got Seaside3.1.3 loaded, then install the component that does
>>>> the load, then reload Seaside3.1.3 and boom?
>>>>
>>>>
>>> Yes.
>>>
>>>
>>>
>>>> On Tue, Oct 21, 2014 at 1:54 PM, Mariano Martinez Peck <
>>>> marianopeck at gmail.com> wrote:
>>>>
>>>>> Hi Dale,
>>>>>
>>>>> I was using Seaside 3.1.3. Here I paste the output of the report. Let
>>>>> me know if I can help with something else.
>>>>>
>>>>> Cheers,
>>>>>
>>>>>
>>>>>  '-----------------------------
>>>>> Metacello Registration REPORT
>>>>> -----------------------------
>>>>> Bootstrap 0.4.0 [release]
>>>>> FileTree 3855a2d [gemstone2.4]
>>>>> GLASS 1.0-beta.9 [release]
>>>>> GLASS1 93aec3b [master]
>>>>> Gofer 1.0.5.2 [release]
>>>>> GoferProjectLoader 1.0-alpha2.2 [development]
>>>>> |Grease| 27ae1e2 [master]
>>>>> GsCore 0.247 [release]
>>>>> GsFastCGI 0.235 [release]
>>>>> GsMisc 0.243 [release]
>>>>> GsMonticello 0.244.2 [release]
>>>>> GsOB 0.242.1 [release]
>>>>> GsPharo 0.9.2 [development]
>>>>> GsSqueakCommon 0.9.4 [release]
>>>>> HighchartsSt 1.0 [development]
>>>>> IAM 1.5 [development]
>>>>> Magritte3 3.1.4 [release]
>>>>> Metacello e46c95f [master]
>>>>> MetacelloPreview stable [release]
>>>>> MetacelloVersionQueryExampleConfig 2.1-baseline [release]
>>>>> MetacelloVersionQueryLatestVersionConfig 1.3.2 [development]
>>>>> MockGemStone 1.0 [release]
>>>>> MyApp 0.1 [development]
>>>>> Seaside3 3.1.3 [stable]
>>>>> SIXX 606a93f [master]
>>>>> Swazoo2 2.2.0.4 [development]
>>>>> XMLSupport 1.2.2 [development]
>>>>> XMLWriter 1.0.5 [release]
>>>>> Zinc a304216 [gemstone3.1]
>>>>> ZincHTTPComponents 2.4.3 [release]
>>>>> --------------
>>>>> PACKAGE REPORT
>>>>> --------------
>>>>> Announcements.v3-dkh.18
>>>>> Base-Bootstrap.v3-dkh.30
>>>>> BaselineOfFileTree-dkh.4
>>>>> BaselineOfGLASS1-dkh.32
>>>>> BaselineOfGrease-dkh.5
>>>>> BaselineOfMetacello-dkh.79
>>>>> BaselineOfSeaside3-JohanBrichau.21
>>>>> BaselineOfSIXX-dkh.1
>>>>> BaselineOfZinc-dkh.4
>>>>> Blowfish-MarianoMartinezPeck.11
>>>>> Bootstrap.v3-dkh.239
>>>>> Bootstrap-Core-TorstenBergmann.52
>>>>> BugLoadingCode-MarianoMartinezPeck.1
>>>>> Change-Notification.v310-dkh.21
>>>>> Collections-BitmapCharacterSet-JAA.5
>>>>> Collections-OrderPreservingDictionary.g-JohanBrichau.9
>>>>> Collections-Support.g-OttoBehrens.45
>>>>> ConfigurationOfBootstrap-TorstenBergmann.38
>>>>> ConfigurationOfFileTree-dkh.36
>>>>> ConfigurationOfGettext-JohanBrichau.33
>>>>> ConfigurationOfGLASS-dkh.249
>>>>> ConfigurationOfGofer-dkh.42
>>>>> ConfigurationOfGoferProjectLoader-DaleHenrichs.21
>>>>> ConfigurationOfGrease-JohanBrichau.259
>>>>> ConfigurationOfGsCore-dkh.297
>>>>> ConfigurationOfGsFastCGI-dkh.16
>>>>> ConfigurationOfGsMisc-dkh.116
>>>>> ConfigurationOfGsMonticello-dkh.173
>>>>> ConfigurationOfGsOB-dkh.89
>>>>> ConfigurationOfGsPharo-dkh.15
>>>>> ConfigurationOfGsSqueakCommon-dkh.25
>>>>> ConfigurationOfHighchartsSt-MarianoMartinezPeck.6
>>>>> ConfigurationOfIAM-MarianoMartinezPeck.77
>>>>> ConfigurationOfMagritte3-DiegoLont.97
>>>>> ConfigurationOfMetacello-dkh.796
>>>>> ConfigurationOfMetacelloPreview-dkh.49
>>>>> ConfigurationOfMockGemStone-PaulDeBruicker.6
>>>>> ConfigurationOfMyApp-MarianoMartinezPeck.1
>>>>> ConfigurationOfNeoCSV-SvenVanCaekenberghe.12
>>>>> ConfigurationOfSeaside3-dkh.213
>>>>> ConfigurationOfSwazoo2-mivsek.53
>>>>> ConfigurationOfXMLSupport-PaulDeBruicker.71
>>>>> ConfigurationOfXMLWriter-StephaneDucasse.21
>>>>> ConfigurationOfZincHTTPComponents-SvenVanCaekenberghe.64
>>>>> Core.v3-dkh.89
>>>>> Core31x-dkh.4
>>>>> DP-MarianoMartinezPeck.12101
>>>>> DPOFX-MarianoMartinezPeck.129
>>>>> EncryptionUtilsExternal-MarianoMartinezPeck.1
>>>>> FA-MarianoMartinezPeck.12079
>>>>> FACompatibility-CamSanders.24
>>>>> FAGemStoneCompatibility-MarianoMartinezPeck.55
>>>>> FAGemStonePersistency-MarianoMartinezPeck.22
>>>>> FastCGI-dkh.33
>>>>> FastCGIPool-dkh.2
>>>>> Fuel-MarianoMartinezPeck.793, Fuel-MarianoMartinezPeck.794
>>>>> FuelGemstone-MarianoMartinezPeck.1
>>>>> FuelTests-MarianoMartinezPeck.375, FuelTests-MarianoMartinezPeck.376
>>>>> GemStone-ANSI-Streams-dkh.12
>>>>> GemStone-Compression-dkh.7
>>>>> GemStone-Deployment.v310-dkh.26
>>>>> GemStone-Indexing-Extensions-dkh.4
>>>>> GemStone-Interactions-dkh.10
>>>>> GemStone-Release-Support-dkh.67
>>>>>
>>>>> Gofer-Core.gemstone-dkh.136
>>>>> Gofer-Tests.gemstone-dkh.131
>>>>> GoferProjectLoader-DaleHenrichs.25
>>>>> Grease-Core-pmm.93
>>>>> Grease-GemStone-Core-dkh.53
>>>>> Grease-GemStone300-Core-dkh.4
>>>>> Grease-Tests-Core-pmm.99
>>>>> Grease-Tests-GemStone-Core-dkh.14
>>>>> GsPharo-Core-JohanBrichau.15
>>>>> GsPharo-Tests-MarianoMartinezPeck.10
>>>>> GsSqueakCommon-Core-dkh.11
>>>>> GsSqueakCommon-Core.3x-dkh.4
>>>>> GsSqueakCommon-Tests-dkh.2
>>>>> GsUpgrader-Core-dkh.37
>>>>> HighchartsStAutoGenerated-MarianoMartinezPeck.3
>>>>> HighchartsStAutoGeneratedTests-MarianoMartinezPeck.1
>>>>> HighchartsStCore-MarianoMartinezPeck.11
>>>>> HighchartsStExamples-MaximilianoTabacman.4
>>>>> HighchartsStExtensions-MaximilianoTabacman.3
>>>>> JadeServer-dkh.13
>>>>> Javascript-Core-pmm.97
>>>>> Javascript-GemStone-Core-dkh.5
>>>>> Javascript-Tests-Core-pmm.71
>>>>> JQuery-Core-JohanBrichau.132
>>>>> JQuery-JSON-JohanBrichau.3
>>>>> JQuery-Tests-Core-JohanBrichau.141
>>>>> JQuery-Tests-UI-JohanBrichau.86
>>>>> JQuery-UI-JohanBrichau.91
>>>>> Magritte-GemStone-Model-NickAger.3
>>>>> Magritte-GemStone-Seaside-DaleHenrichs.2
>>>>> Magritte-Model-DiegoLont.450
>>>>> Magritte-Seaside-DiegoLont.357
>>>>> Magritte-Tests-GemStone-Model-DaleHenrichs.1
>>>>> Magritte-Tests-Model-DiegoLont.38
>>>>> Metacello-Base-dkh.117
>>>>> Metacello-Bitbucket-dkh.2
>>>>> Metacello-Core-dkh.777
>>>>> Metacello-Cypress-dkh.2
>>>>> Metacello-FileTree-dkh.36
>>>>> Metacello-GemStone-TestsMCB-dkh.1
>>>>> Metacello-GitBasedRepository-dkh.1
>>>>> Metacello-GitHub-dkh.41
>>>>> Metacello-MC-dkh.716
>>>>> Metacello-Platform.gemstone-dkh.49
>>>>> Metacello-Reference-dkh.36
>>>>> Metacello-TestsCommonMC.common-dkh.3
>>>>> Metacello-TestsCore-dkh.36
>>>>> Metacello-TestsMC-dkh.390
>>>>> Metacello-TestsMCA-dkh.30
>>>>> Metacello-TestsMCB-dkh.110
>>>>> Metacello-TestsMCCore-dkh.5
>>>>> Metacello-TestsMCResources-dkh.24
>>>>> Metacello-TestsPlatform.gemstone-dkh.8
>>>>> Metacello-TestsReference-dkh.20
>>>>> Metacello-TestsTutorial-ChristopheDemarey.41
>>>>> Metacello-ToolBox-dkh.136
>>>>> Metacello-Tutorial-dkh.26
>>>>> MockGemStone.g-NorbertHartl.3
>>>>> Monticello.v3-dkh.476
>>>>> MonticelloFileTree-Core-dkh.166
>>>>> MonticelloFileTree-FileDirectory-Utilities-dkh.15
>>>>> MonticelloGs-dkh.2
>>>>> Multilingual-TextConversion-MarianoMartinezPeck.18
>>>>> Neo-CSV-Core-SvenVanCaekenberghe.16
>>>>> Neo-CSV-Tests-SvenVanCaekenberghe.15
>>>>> OB-GemStone-Platform-dkh.76
>>>>> OB-Metacello-dkh.83
>>>>> OB-Monticello-dkh.105
>>>>> OB-Standard.v3-dkh.449
>>>>> OB-SUnitGUI.g-dkh.61
>>>>> OB-SUnitIntegration-dkh.10
>>>>> OB-SymbolListBrowser-DaleHenrichs.4
>>>>> OB-Tools.v3-dkh.140
>>>>> OFX-MarianoMartinezPeck.103
>>>>> OFXTests-MarianoMartinezPeck.28
>>>>> OmniBrowser-DaleHenrichs.447
>>>>> PackageInfo-Base.g-dkh.36
>>>>> Prototype-Core-pmm.29
>>>>> Prototype-Tests-Core-pmm.17
>>>>> Regex-Core-DaleHenrichs.3
>>>>> Regex-Tests-Core-DaleHenrichs.5
>>>>> RSS-Core-pmm.70
>>>>> RSS-Examples-pmm.27
>>>>> RSS-Tests-Core-lr.30
>>>>> Scriptaculous-Components-pmm.114
>>>>> Scriptaculous-Core-pmm.105
>>>>> Scriptaculous-Tests-Components-pmm.42
>>>>> Scriptaculous-Tests-Core-pmm.63
>>>>> Seaside-Adaptors-FastCGI-dkh.26
>>>>> Seaside-Adaptors-Swazoo-pmm.45
>>>>> Seaside-Canvas-pmm.130
>>>>> Seaside-Component-pmm.102
>>>>> Seaside-Core.gemstone-JohanBrichau.818
>>>>> Seaside-Development-pmm.165
>>>>> Seaside-Email-pmm.26
>>>>> Seaside-Environment.gemstone-dkh.81
>>>>> Seaside-Examples-pmm.24
>>>>> Seaside-FileSystem-JohanBrichau.28
>>>>> Seaside-Flow-pmm.25
>>>>> Seaside-GemStone-Adaptors-Swazoo-dkh.5
>>>>> Seaside-GemStone-Adaptors-Zinc-JohanBrichau.7
>>>>> Seaside-GemStone-Basic-Development-JohanBrichau.29
>>>>> Seaside-GemStone-Continuation-DaleHenrichs.20
>>>>> Seaside-GemStone-Core-dkh.67
>>>>> Seaside-GemStone-Development-dkh.29
>>>>> Seaside-GemStone-Email-JohanBrichau.14
>>>>> Seaside-GemStone-Environment-dkh.12
>>>>> Seaside-GemStone-Flow-dkh.12
>>>>> Seaside-GemStone-JSON-Core-JohanBrichau.2
>>>>> Seaside-GemStone-Session-DaleHenrichs.3
>>>>> Seaside-GemStone-Tools-OmniBrowser-DaleHenrichs.4
>>>>> Seaside-GemStone-Tools-Production-dkh.21
>>>>> Seaside-GemStone-Tools-Web-DaleHenrichs.4
>>>>> Seaside-GemStone-Welcome-DaleHenrichs.1
>>>>> Seaside-GemStone300-Core-dkh.5
>>>>> Seaside-HTML5-pmm.28
>>>>> Seaside-InternetExplorer-pmm.8
>>>>> Seaside-JSON-Core-DiegoLont.31
>>>>> Seaside-RenderLoop-pmm.96
>>>>> Seaside-Session.gemstone-JohanBrichau.169
>>>>> Seaside-Swazoo-pmm.20
>>>>> Seaside-Tests-Canvas-pmm.64
>>>>> Seaside-Tests-Component-pmm.36
>>>>> Seaside-Tests-Core-dkh.280
>>>>> Seaside-Tests-Development-pmm.45
>>>>> Seaside-Tests-Email-JohanBrichau.23
>>>>> Seaside-Tests-Environment-pmm.30
>>>>> Seaside-Tests-Examples-pmm.11
>>>>> Seaside-Tests-FileSystem-JohanBrichau.15
>>>>> Seaside-Tests-Flow-pmm.37
>>>>> Seaside-Tests-Functional-pmm.162
>>>>> Seaside-Tests-GemStone-Continuation-DaleHenrichs.12
>>>>> Seaside-Tests-GemStone-Core-dkh.15
>>>>> Seaside-Tests-GemStone-Development-DaleHenrichs.4
>>>>> Seaside-Tests-GemStone-Flow-dkh.4
>>>>> Seaside-Tests-GemStone-Functional-dkh.12
>>>>> Seaside-Tests-HTML5-pmm.28
>>>>> Seaside-Tests-InternetExplorer-pmm.10
>>>>> Seaside-Tests-RenderLoop-JohanBrichau.14
>>>>> Seaside-Tests-Session-pmm.73
>>>>> Seaside-Tests-Tools-Web-pmm.23
>>>>> Seaside-Tests-UTF8-pmm.16
>>>>> Seaside-Tests-Welcome-lr.6
>>>>> Seaside-Tools-Core.gemstone-dkh.23
>>>>> Seaside-Tools-OmniBrowser-lr.25
>>>>> Seaside-Tools-Web-pmm.121
>>>>> Seaside-Welcome-pmm.47
>>>>> Seaside-Widgets-StephanEggermont.35
>>>>> SIXX.310-PaulDeBruicker.182
>>>>> SMTPMail-dkh.11
>>>>> SocketStream-dkh.14
>>>>> SplitPasswordStore-MarianoMartinezPeck.4
>>>>> Sport3.010.v3-dkh.30
>>>>> Squeak.v3-dkh.307
>>>>> Swazoo-2.2.gemstone-DataCurator.34
>>>>> System-Digital-Signatures-dkh.5
>>>>> TestsTasks-dkh.2
>>>>> Utf8Encoding.310-dkh.31
>>>>> XML-Observable-JohanBrichau.1
>>>>> XML-Parser.g-NorbertHartl.119
>>>>> XML-Tests-Parser-JAA.14
>>>>> XML-Writer-JAAyer.5
>>>>> Zinc-Character-Encoding-Core-dkh.6
>>>>> Zinc-Character-Encoding-Tests-dkh.5
>>>>> Zinc-FileSystem-Legacy-dkh.6
>>>>> Zinc-HTTP-dkh.349
>>>>> Zinc-Resource-Meta-Core-JohanBrichau.10
>>>>> Zinc-Resource-Meta-Tests-SvenVanCaekenberghe.6
>>>>> Zinc-Seaside-SvenVanCaekenberghe.41
>>>>> Zinc-Tests-dkh.178
>>>>> '
>>>>>
>>>>> On Tue, Oct 21, 2014 at 5:18 PM, Dale Henrichs <
>>>>> dale.henrichs at gemtalksystems.com> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Tue, Oct 21, 2014 at 1:08 PM, Mariano Martinez Peck <
>>>>>> marianopeck at gmail.com> wrote:
>>>>>>
>>>>>>> Hi Dale,
>>>>>>>
>>>>>>> I found I could reproduce it even easier... I am trying to built a
>>>>>>> fresh extent...but everything I try fails...
>>>>>>>
>>>>>>
>>>>>> Not needed for this, but I am curious what you are trying and what is
>>>>>> failing...
>>>>>>
>>>>>>
>>>>>>> maybe, if you can easily get a fresh extent + stone, then try:
>>>>>>>
>>>>>>
>>>>>> What version of Seaside do you have loaded when you start? Perhaps
>>>>>> just send me the result of:
>>>>>>
>>>>>>  Gofer new
>>>>>>   package: 'GsUpgrader-Core';
>>>>>>   url: 'http://ss3.gemtalksystems.com/ss/gsUpgrader';
>>>>>>   load.
>>>>>> (Smalltalk at: #GsUpgrader) metacelloReport.
>>>>>>
>>>>>> Than I'll take things for a spin...
>>>>>>
>>>>>>
>>>>>>> 1)
>>>>>>>
>>>>>>> Gofer new
>>>>>>>   package: 'GsUpgrader-Core';
>>>>>>>   url: 'http://ss3.gemtalksystems.com/ss/gsUpgrader';
>>>>>>>   load.
>>>>>>> (Smalltalk at: #GsUpgrader) upgradeGrease.
>>>>>>>
>>>>>>>
>>>>>>> 2)  File in this class:
>>>>>>>
>>>>>>> BugLoadingCode class >> initialize
>>>>>>> (WAAdmin register: self asApplicationAt: 'bug')
>>>>>>>
>>>>>>> BugLoadingCode class >> canBeRoot
>>>>>>> ^ true
>>>>>>>
>>>>>>> BugLoadingCode class >> blockToLoad
>>>>>>> ^ [:iam |
>>>>>>>  Metacello new
>>>>>>>     baseline: 'Seaside3';
>>>>>>>     repository: 'github://GsDevKit/Seaside31:v3.1.3-gs/repository';
>>>>>>>     onLock: [:ex | ex honor];
>>>>>>>     load: #('Development' 'Examples' 'Zinc').
>>>>>>>  ]
>>>>>>>
>>>>>>> BugLoadingCode class >> renderContentOn: html
>>>>>>> html anchor
>>>>>>> callback: [ self blockToLoad value: nil ];
>>>>>>> with: 'Load'.
>>>>>>>
>>>>>>> 3) Evaluate "BugLoadingCode initialize" and fire a seaside adaptor
>>>>>>> 4) Go to /bug and click "load" link.
>>>>>>>
>>>>>>> I can reproduce it even in 3.1.0.4 and 3.1.0.6. In Unix and in OSX.
>>>>>>> With and without native code enabled.
>>>>>>>
>>>>>>> Let me know if you can reproduce it. Otherwise, I keep trying to get
>>>>>>> a working/fresh extent...
>>>>>>>
>>>>>>> Thanks!
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Tue, Oct 21, 2014 at 4:00 PM, Dale Henrichs <
>>>>>>> dale.henrichs at gemtalksystems.com> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Tue, Oct 21, 2014 at 11:51 AM, Mariano Martinez Peck <
>>>>>>>> marianopeck at gmail.com> wrote:
>>>>>>>>
>>>>>>>>>
>>>>>>>>> extent that exhibits the problem.
>>>>>>>>>
>>>>>>>>> Hi Dale,
>>>>>>>>>
>>>>>>>>> Stupid question...if I send the simple extent, are you able to run
>>>>>>>>> it just like that? No problem which OS user I was using, which gemtone
>>>>>>>>> username/pass I was using, etc?
>>>>>>>>>
>>>>>>>>
>>>>>>>> I probably would need some sort of credentials to allow me to log
>>>>>>>> and run the seaside gems edit code, etc. but I probably wouldn't need
>>>>>>>> SystemUser credentials ... I would need a way to reproduce the load issue
>>>>>>>> without having to have copies of your code repos ... from the look of
>>>>>>>> things it should break just trying to load a project with a block so
>>>>>>>> Seaside31 with a Grease lock might do the trick ... perhaps you could
>>>>>>>> verify that the bug reproduces before sending us the extent ...
>>>>>>>>
>>>>>>>>   I guess you can also use a swazoo adaptor to avoid nginx..
>>>>>>>>> would you need anything else besides the extent file and maybe
>>>>>>>>> tranlogs?
>>>>>>>>>
>>>>>>>>
>>>>>>>> The extent file should be all that we need ...
>>>>>>>>
>>>>>>>> Dale
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Mariano
>>>>>>> http://marianopeck.wordpress.com
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Mariano
>>>>> http://marianopeck.wordpress.com
>>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Mariano
>>> http://marianopeck.wordpress.com
>>>
>>
>>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20141022/b6220515/attachment-0001.html>


More information about the Glass mailing list