Hi all,
I'm happy to announce a new release of OmniBrowser. It's been quite a
while since the last official release, and that has force folks that
want to run the current code base to download and install directly
from the Monticello repositories used for development. There have been
a lot of contributors, each pulling in different directions, and it's
been difficult for the various Squeak distributions that use
OmniBrowser to put together a coherent installation. I think moving to
more formal release practices, with explicit version numbers,
supported platforms, release testing and so on will make it a lot
easier to install and use OmniBrowser without having to understand the
ins and outs of the code base and development community.
In putting together this release, I wanted to tighten up and repackage
the existing functionality–b=new features can wait until 2.1. I've
tried to find the best mix of framework flexibility, browser features,
code quality and performance that I could. This has meant cutting some
features, and probably will mean further simplification and
streamlining in subsequent releases. It'll also mean pulling
OmniBrowser "extensions" into the standard distribution as the become
stable.
This is the third release in the 2.0 series; the first two releases
were "private" releases announced only on the omnibrowser-dev list, to
gain feedback and flush out issues with the distribution format.
Download it from: http://www.wiresong.ca/static/releases/OmniBrowser-2.0.3.zip
Colin
Andreas Raab uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-ml.196.mcz
==================== Summary ====================
Name: Morphic-ml.196
Author: ml
Time: 2 October 2009, 6:14:51 am
UUID: 702387f4-17e2-4cf2-a319-26761312c653
Ancestors: Morphic-ar.195
Using minWidth and minHeight instead of minExtent to determine the bounds within a ProportionalSplitterMorph can be dragged.
This gives more predictable and expected results than previously. It also results in better behaviour when the system window gets resized to a smaller size.
=============== Diff against Morphic-ar.195 ===============
Item was added:
+ MorphicModel subclass: #MorphicModel3
+ instanceVariableNames: ''
+ classVariableNames: ''
+ poolDictionaries: ''
+ category: 'Morphic-Models'!
Item was changed:
----- Method: ProportionalSplitterMorph>>minimumWidthOf: (in category 'as yet unclassified') -----
minimumWidthOf: aCollection
"Answer the minimum width needed to display any of the morphs in aCollection."
^ aCollection inject: 0 into: [ :width :morph |
+ (morph minWidth + self width) max: width]!
- morph minExtent x max: width]!
Item was changed:
----- Method: ProportionalSplitterMorph>>minimumHeightOf: (in category 'as yet unclassified') -----
minimumHeightOf: aCollection
"Answer the minimum height needed to display any of the morphs in aCollection."
^ aCollection inject: 0 into: [ :height :morph |
+ (morph minHeight + self height) max: height]!
- morph minExtent y max: height]!
We are proud to announce the release of Iliad version 0.7!
New features include:
- The ability to bookmark AJAX applications
- Important optimizations (Thanks to Paolo Bonzini and Stefan Schmiedl)
- A new XHTMLElement api which follows closely XHTML tags and attribute
names, the old one has been moved to deprecated
- A new RSS elements hierarchy
- The javascript layer has been rewritten from scratch
- More widgets in the UI package
- View methods in applications are now called controller methods (this
is what they really are about)
- New methods in Widget for control flow like #replace:* methods
- More unit tests - A lot of cleanup and bug fixes
Squeakers can download it from the SqueakSource repository:
http://www.squeaksource.com/Iliad
Load packages it in this order: Iliad-Core, Iliad-Swazoo,
Iliad-More-RSS, Iliad-More-UI, Iliad-More-Magritte, Iliad-More-Examples,
Iliad-Tests
and download static files from:
http://iliad.bioskop.fr/attachments/1/Public.zip
then start Swazoo: SwazooIliad startOn: PORT
You can browse examples at: http://localhost:PORT/browse
Happy Iliad hacking!
Nicolas Petton & Sébastien Audier
Hi Folks,
A new release of Cuis is at http://www.jvuletich.org/Cuis/Index.html .
News are lots of cleanup and simplification in Morphic, the text
subsystem, and event dispatching.
Comments welcome.
Cheers,
Juan Vuletich
Had the same problem and was not able to reproduce it yet...
Bye
T.
--
Jetzt kostenlos herunterladen: Internet Explorer 8 und Mozilla Firefox 3 -
sicherer, schneller und einfacher! http://portal.gmx.net/de/go/atbrowser
Andreas Raab uploaded a new version of Collections to project The Trunk:
http://source.squeak.org/trunk/Collections-ar.150.mcz
==================== Summary ====================
Name: Collections-ar.150
Author: ar
Time: 30 September 2009, 9:29:03 am
UUID: ed19ab06-dd57-0e4f-a80c-0c5cba39e948
Ancestors: Collections-ul.148, Collections-ul.149
Merging Collections-ul.149:
- removed zero check from WeakSet >> #like:
=============== Diff against Collections-ul.148 ===============
Item was changed:
----- Method: WeakSet>>like: (in category 'public') -----
like: anObject
"Answer an object in the receiver that is equal to anObject,
nil if no such object is found. Relies heavily on hash properties"
+ | element |
+ ^(element := array at: (self scanFor: anObject)) == flag
+ ifFalse: [ element ]!
- | index element |
-
- ^(index := self scanFor: anObject) = 0
- ifFalse: [(element := array at: index) == flag ifFalse: [element]]!
Andreas Raab uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-ul.254.mcz
==================== Summary ====================
Name: Kernel-ul.254
Author: ul
Time: 30 September 2009, 3:04:30 am
UUID: e908dda7-2b3b-3d4b-b301-08b2a4d289bf
Ancestors: Kernel-ar.253
- replaced #whileFalse: with #whileFalse in MethodDictionary >> #scanFor:
=============== Diff against Kernel-ar.253 ===============
Item was changed:
----- Method: MethodDictionary>>scanFor: (in category 'private') -----
scanFor: anObject
"Scan the key array for the first slot containing either a nil (indicating an empty slot) or an element that matches anObject. Answer the index of that slot or raise an error if no slot is found. This method will be overridden in various subclasses that have different interpretations for matching elements."
| index start |
index := start := anObject identityHash \\ array size + 1.
[
| element |
((element := self basicAt: index) == nil or: [ element == anObject ])
ifTrue: [ ^index ].
+ (index := index \\ array size + 1) = start ] whileFalse.
- (index := index \\ array size + 1) = start ] whileFalse: [ ].
self errorNoFreeSpace!
Andreas Raab uploaded a new version of Compiler to project The Trunk:
http://source.squeak.org/trunk/Compiler-ul.86.mcz
==================== Summary ====================
Name: Compiler-ul.86
Author: ul
Time: 30 September 2009, 3:03:27 am
UUID: aed23852-da1c-3b4f-88e8-33c860f282dd
Ancestors: Compiler-jcg.85
- new #scanFor: for LiteralDictionary too
=============== Diff against Compiler-jcg.85 ===============
Item was changed:
----- Method: LiteralDictionary>>scanFor: (in category 'as yet unclassified') -----
scanFor: anObject
+ "Scan the key array for the first slot containing either a nil (indicating an empty slot) or an element that matches anObject. Answer the index of that slot or raise an error if no slot is found. This method will be overridden in various subclasses that have different interpretations for matching elements."
- "Scan the key array for the first slot containing either a nil (indicating an empty slot) or an element that matches anObject. Answer the index of that slot or zero if no slot is found. This method will be overridden in various subclasses that have different interpretations for matching elements."
- | element start finish |
- finish := array size.
- start := (anObject hash \\ finish) + 1.
+ | index start |
+ index := start := anObject hash \\ array size + 1.
+ [
+ | element |
+ ((element := array at: index) == nil or: [
+ self literalEquality: element key and: anObject ])
+ ifTrue: [ ^index ].
+ (index := index \\ array size + 1) = start ] whileFalse.
+ self errorNoFreeSpace!
- "Search from (hash mod size) to the end."
- start to: finish do:
- [:index | ((element := array at: index) == nil
- or: [self literalEquality: element key and: anObject])
- ifTrue: [^ index ]].
-
- "Search from 1 to where we started."
- 1 to: start-1 do:
- [:index | ((element := array at: index) == nil
- or: [self literalEquality: element key and: anObject])
- ifTrue: [^ index ]].
-
- ^ 0 "No match AND no empty slot"!