Hi are you in need for really simple out of image persistency? If you like to use a small RDBMS solution with Pharo then there is the embeddable SQLite shared library and NBSQLite3 project  to access it. Combine it with Glorp  and you do not have to fight too much with SQL. On the other end of persistency world there are the so called "NoSQL databases" and beside Mongo and all the others that require special setup etc. there is this wonderful small UnQLite embeddable database  that similar to SQlite world only requires a simple library. Thanks to Masashi Umezawa there is a nice wrapper for Pharo already to access this tiny embeddable NoSQL database called "PUnQLite"  and , also including access to the Jx9 machinery of UnQLite. It is really cool that he made this available. This week I updated "PUnQLite" a little bit: - refactored the Native boost wrapper for UnQLite (using shared pools, ...) - documented classes - added a help topic - fixed a bug in cursors when accessing the keys in an empty database - and finally added a small spec based tool to work with a database file (see attached screenshot) One can use it to open an unqlite database, show the key value pairs and remove or add entries. If you are in latest Pharo 4 already you can load all of that right from the config browser. Be aware that you need the external unqlite shared library which is downloaded and extracted into a folder "pharo-vm" when loading the config. For instance on Windows it automagically downloads a file "pharo-vm/unqlite.dll" below your image directory and you just have to copy this shared library file to the folder where your VM (Pharo.exe) resides. Havent tried on other OS platforms. >From the Pharo side using the UnQLite database basically works like having some kind "external dictionary" in a database file. Just run that in a workspace:
|db|db := PqDatabase open: 'comments.db'. db disableAutoCommit. db transact: [ Object subclasses do: [:cls | | key | key := cls asString. db at: key put: cls comment ] ]. db close. Then open the "Database Browser" from the world menu and open the "comments.db" file. You can browse the keys and values, remove entries or add new. A filter for the keys is also included. Nothing fancy but hope you like it or find it usable. Couldnt make it to PharoConf 2015 but I hope all participants enjoy their time there. Keep the others updated by using the #pharodays2015 on Twitter. Have fun! Bye T.  http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/2015-January/104720.html  http://lists.pharo.org/pipermail/pharo-users_lists.pharo.org/2015-January/015809.html  http://unqlite.org/  https://github.com/mumez/PunQLite  http://smalltalkhub.com/#!/~MasashiUmezawa/PunQLite
Didier Besset offered his great book “Object-Oriented Implementation of Numerical Methods: An Introduction with Smalltalk and Java” to the community. We would like to thank Didier Besset for his great book and for his gift of the source and implementation to the community. You can find
Both book versions are maintained by Stéphane Ducasse and Serge Stinckwich. 27 Janvier 2015
14784 toggle show hierarchy gives: list receiver of “package” is nil
14779 fix #definitionString for subclasses of ClassVariable and IntanceVariableSlot
14768 MCClassDefinition: merge #createClass into #load
14755 Slot: do not call #index: on virtual slots
14753 add support for setting class comments to class builder
14636: spotter: remap cmd+enter to shift+enter
14641: spot on global vars
14741: GTInspector: add simple slot support
14252: Make collections browsable again in the tools
14722: Disable FreeType gives MNU and RMOD in GTools
14711: The Playground print popper should allow for inserting the text in the editor
14587: deleting the whole text in the inspector pane throws SubscriptOutOfBounds
14515: Damaged configurations in the image
14742 Fix: Allow defining simple ClassVariales using symbols
14712 The print-popper should have a different color than the selection in the default Pharo theme
14725 When using class side slot, show class definition for slots
14718 Move class instance variable def from #load to #createClass in MCClassDefinition
14699 Slot: #definingClass and #usingMethods should work on non-used slots
14698 Allow Slots to be saved with Monticello
14697 simplify extended search menu: case insensitive description not needed
12501 Duplicate shortcut case sensitive/insenstive method literal strings with it
14692 GTools version 2.0.8
14684 Spotter version 1.0.5
14683 GTools version 2.0.7
14681 Commiting to directory with subdirectory repo
14680 Improve printing of class definition of classes with Slots or ClassVars
14638 Avoid indirectly invoking the Refactoring Engine parser (thru CompiledMethod>>ast) when installing a method from an used trait
14679 Fix layout glitch in FileDialogWindows text preview
14678 fix DNU #index when redefining a class with slots that have no index
14652 Float class fromIEEE32Bit: gradual underflow handling is buggy
14658 cleaning/commenting SUnit classes
14643 find records for classcomment changes in SourceFileArray
10529 ToolRegistry need to support multiple registrations per tool
The Debris Publishing Team released its Toolkit!
This toolkit allows programmers to use the Glorp interface without a Glorp-system definition, and without needing any SQL servers up an running. If you use it right, you can back your application by Fuel files, SIXX files, any serializer, Gemstone, or Glorp/SQL, without modifying your application code. Therefore, it is perfect for prototyping concepts very quickly.
See the project description for more information.
Good Luck from the Debris Team!
Metrics to determine readability and comprehension difficulty for contemporary English text.
The Pharo Consortium is very happy to announce that the Ecole des Mines de Douai has joined the Consortium as an Academic Partner.
The goal of the Pharo Consortium is to allow companies and institutions to support the ongoing development and future of Pharo.
Individuals can support Pharo via the Pharo Association: http://association.pharo.org
Dear Friends and Colleagues,
I have about 1/2 of an application written to implement PERT, which is something management types study for doing project cost estimation, but usually don't use in reality. It has a nice container hierarchy (Project > Phase > Task > Task > ... > Task). I have part of the UI written in Glamour and part in Spec, but it isn't finished. I'm using this as a tutorial to teach my wife Pharo—although I'm probably not so great at it that I should be teaching anybody. :) The tutorial isn't as far along as the application and is probably wrongly titled at this point. I'm happy to give away the code and the tutorial but I'm a little stuck now since we have just had a baby and are now preparing to move in three weeks. So I apologize for the rough state of affairs, but since you asked I only hope it may be better than nothing. Code http://smalltalkhub.com/#!/~DanielLyons/PERT/ The tutorial can be read here: http://st.7gf.org/PERT/ PDF: http://st.7gf.org/PERT/PERT.pdf Markdown source: http://st.7gf.org/PERT/PERT.md Additionally I have a whiteboard capture of the interface I envision with Glamour (which may or may not be appropriate). The size is quite large despite the low quality, my apologies: http://st.7gf.org/PERT/project-window.jpg http://st.7gf.org/PERT/simulation-window.jpg http://st.7gf.org/PERT/project-graph-diagram.jpg It would be hard to come up with a more "boring" and "business" application domain than this… but for management people the problem is pretty well-known and for my wife, her only prior programming experience (not counting Excel) is C and the experience has been positive for her so far. She's also greatly enjoying going through my paper copy of Pharo by Example and the built-in tutorial. The basic concept, in case anyone is interested, is that you can form a directed acyclic graph between subtasks and then using min/max cost estimates, determine which tasks are "critical" and which tasks can be late without affecting the deadline or budget. The "project window" above uses a GLFinder-like approach to allow drilling down into subtasks from projects and phases. This means you're stuck with a tree instead of a DAG. The target level of sophistication for the final application is one that can use expected costs and a beta distribution to simulate thousands of different possible outcomes and then aggregate from there to see which tasks are likely to be troublesome or have bad estimates. This is what is pictured in the simulation-window mockup. All the best, — Daniel Lyons