<br><br><div class="gmail_quote">On Tue, Apr 21, 2009 at 11:56 AM, Klaus D. Witzel <span dir="ltr">&lt;<a href="mailto:klaus.witzel@cobss.com">klaus.witzel@cobss.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Dear SqueakDBX team,<br>
<br>
this is indeed great news and I hope that now people turn up and give SqueakDBX a try in their production environment. I recall at least 2 Squeakers who where in need of classical RDBMS support for their existing databases and took the freedom cc&#39;ing them.<br>

<br>
Frank, Rob, can you give us your impressions on using SqueakDBX in your shop?<br>
</blockquote><div><br>Klaus: Thanks for email. We also hope SqueakDBX be in real production enviorments. However, I think there are few things that should be consider right now:<br><br>- Remember SqueakDBX is just the driver. We don&#39;t have Glorp-SqueakDBX integration ready right now. So, they will have to right SQL queries &quot;by hand&quot;.<br>
<br>- Which OS and backend are they using ?<br><br>- Do they need thing we don&#39;t yet support/test ? (store procedures and large objects for example)<br><br>- Is it a web application or desktop ? We haven&#39;t, yet, a connection pool. However we have to plans: 1) in a future openDBX ( <a href="http://www.linuxnetworks.de/doc/index.php/OpenDBX/Future">http://www.linuxnetworks.de/doc/index.php/OpenDBX/Future</a>) will do one and will expose functions for it. 2) Adapt Ramon Leon connection pooling to SqueakDBX (<a href="http://onsmalltalk.com/making-a-connection-pool-for-glorp-in-seaside">http://onsmalltalk.com/making-a-connection-pool-for-glorp-in-seaside</a>)<br>
 <br><br>But know we really would love to have SqueakDBX in a real application and we will give all of our help to get it work. <br><br>Thanks!<br><br>Mariano<br><br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
Thanks for the good work SqueakDBXers !<br>
<br>
/Klaus<br>
<br>
On Mon, 20 Apr 2009 22:17:30 +0200, Mariano Martinez Peck wrote:<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi folks:<br>
<br>
After a continuous work since January 08, we are very glad to announce our<br>
first stable version of SqueakDBX.<br>
<br>
For those who don&#39;t know what this is about, the aim of this project is to<br>
build an OpenDBX (<a href="http://www.linuxnetworks.de/doc/index.php/OpenDBX/" target="_blank">http://www.linuxnetworks.de/doc/index.php/OpenDBX/</a>)<br>
wrapper which will allow users to perform relational database operations<br>
(DDL, DML and SQL) through a truly open source library. Through this<br>
feature, the squeak community will hopefully be able to interact with major<br>
database engines, such as Oracle and SQL Server, besides those which are<br>
open source, like PostgreSQL, MySQL or Sqlite. Moreover, by integrating this<br>
with GLORP (<a href="http://www.glorp.org/" target="_blank">http://www.glorp.org/</a>), will allow us to generate a complete and<br>
open source solution to relational data base access.<br>
<br>
<br>
Why did we do squeakDBX?<br>
<br>
reeThere are several approaches to persistence in Squeak, some very<br>
interesting: OODB like Gemstone and magma, image, CouchDB or TokyoT/C, and<br>
so on. All of this options get sense if you can actually decide the way you<br>
will persist your objects.<br>
<br>
However, this is not something that happens very frequently. FREQUENTLY, the<br>
client (the one who pays you for making the software) requires you to use a<br>
particular persistence strategy (RDBMS). Not only that, but also a database<br>
in particular (like Oracle, MS SQL, and so on). They have lots of reasons:<br>
they already have license for it, they have support and companies for it,<br>
they know SQL, they want to do selects, legacy systems, and so on. But<br>
Squeak only provides drivers for MySQL and PostgreSQL natively, so... what<br>
would you do in the rest of the cases? move to another language? OK, we<br>
don&#39;t. We want to program systems in Squeak.<br>
<br>
If you know about SqueakDBX you can just see changelog here:<br>
<a href="http://wiki.squeak.org/squeak/6109" target="_blank">http://wiki.squeak.org/squeak/6109</a>; If you don&#39;t, you should continue<br>
reading ;)<br>
<br>
SqueakDBX features:<br>
<br>
-Cross-platform support: Linux, Windows (using MinGW) and Mac. See<br>
<a href="http://wiki.squeak.org/squeak/6108" target="_blank">http://wiki.squeak.org/squeak/6108</a><br>
-Runs on Squeak and Pharo.<br>
-Mini VM blocks when using FFI (asynchronous queries). See<br>
<a href="http://wiki.squeak.org/squeak/6060#External%20call%20implementation" target="_blank">http://wiki.squeak.org/squeak/6060#External%20call%20implementation</a>.<br>
-Own SqueakDBX plugin (experimental). Ability to easily change the external<br>
call strategy (FFI or our own plugin).<br>
-Support for: Oracle, PostgreSQL, MySQL, MS SQL Server, ODBC and SQLite3<br>
-Transactional concept: begin transaction, commit and rollback. See<br>
<a href="http://wiki.squeak.org/squeak/6071" target="_blank">http://wiki.squeak.org/squeak/6071</a><br>
-Mappings from String to specific types in selects. See<br>
<a href="http://wiki.squeak.org/squeak/6075" target="_blank">http://wiki.squeak.org/squeak/6075</a><br>
-Special OpenDBX options: multistatements, encryption, compression, paged<br>
results, MySQL modes, and more. See <a href="http://wiki.squeak.org/squeak/6068" target="_blank">http://wiki.squeak.org/squeak/6068</a><br>
-Automated database connection ralease (although manual disconnection is<br>
recommended ;-)<br>
-Automated results retrieving in order to do another query, after doing a<br>
query and not iterating ALL results<br>
-Lots of unit tests that buck up our project ;-) (85 right now). See<br>
<a href="http://wiki.squeak.org/squeak/6077" target="_blank">http://wiki.squeak.org/squeak/6077</a>.<br>
-Lots of benchmarks and comparison with native drivers (PostgreSQL and<br>
MySQL). See <a href="http://wiki.squeak.org/squeak/6063" target="_blank">http://wiki.squeak.org/squeak/6063</a>.<br>
-Error handling: Not only errors, but levels associated with an error in<br>
order to avoid FFI calls (if you get a fatal error, it has no sense to do<br>
another query and the resources must be free). See<br>
<a href="http://wiki.squeak.org/squeak/6076" target="_blank">http://wiki.squeak.org/squeak/6076</a><br>
-Query timeout (this is very useful for web applications) and page size can<br>
be set for each query. See <a href="http://wiki.squeak.org/squeak/6069" target="_blank">http://wiki.squeak.org/squeak/6069</a><br>
-Very completed documentation in wiki and getting started.<br>
-Code critics and SwaLint were run several times.<br>
-Good design (at least all the major refactors demonstrated that).<br>
<br>
Full documentation, installation and getting started instructions can be<br>
found at wiki page: <a href="http://wiki.squeak.org/squeak/6052" target="_blank">http://wiki.squeak.org/squeak/6052</a> . We spent a lot of<br>
time in it. It has all the information you may need and is in continuos<br>
development.<br>
<br>
Benchmarks: We have a lot of SqueakDBX benchmarks and also some for native<br>
squeak drivers (PostgreSQL and MySQL) and SqueakDBX seems to be faster than<br>
both of them. You can read more here: <a href="http://wiki.squeak.org/squeak/6063" target="_blank">http://wiki.squeak.org/squeak/6063</a><br>
<br>
Packages can be installed from Universe (3.10) or SqueakMap. Current version<br>
is 1.0. Sources can be download from SqueakSource<br>
<a href="http://www.squeaksource.com/SqueakDBX" target="_blank">http://www.squeaksource.com/SqueakDBX</a> (it requires FFI installed).<br>
OpenDBX version: 1.4.<br>
<br>
Remember that you can compile OpenDBX by yourself or use precompiled<br>
binaries. For more information please read:<br>
<a href="http://wiki.squeak.org/squeak/6129" target="_blank">http://wiki.squeak.org/squeak/6129</a>.<br>
<br>
GLORP integration: Actually, this may include two parts:<br>
<br>
1) The integration of GLORP with squeak is completely hardcoded with<br>
PostgreSQL native driver. Because of this, first we will do a refactor in<br>
GLORP in order to enable it to support different drivers. We will create a<br>
PostgreSQL driver with the things that GLORP already has. We invited Alan<br>
Night to have dinner with us when he came to Argentina. We told him our<br>
ideas and discuss for a while till we got a first design of this refactor.<br>
We have already started this part.<br>
2) Create a SqueakDBX driver for GLORP just like the one we are planning to<br>
do for PostgreSQL.<br>
<br>
The last squeak port of GLORP is very old and there is nobody to do it. A<br>
friend of us, Diogenes Moreira, has accepted this job, so, thanks to him, we<br>
hope to have latest GLORP releases in Squeak.<br>
You can see our Glorp progress here: <a href="http://wiki.squeak.org/squeak/6132" target="_blank">http://wiki.squeak.org/squeak/6132</a><br>
<br>
<br>
Help is always wanted. We would really appreciate if you:<br>
<br>
-Give us opinions, comments, ideas, new features, complaints and so on.<br>
-Tell us if you find a bug.<br>
-Tell us if you test SqueakDBX with other RDMBS or OS different from the<br>
ones we tested. Just to know if it works or not :)<br>
<br>
If you try SqueakDBX and you write something somewhere like a blog, let us<br>
know. We have this link: <a href="http://wiki.squeak.org/squeak/6131" target="_blank">http://wiki.squeak.org/squeak/6131</a> where we put<br>
useful links for all the people.<br>
<br>
Special thanks to:<br>
<br>
-ESUG, for supporting us through Summer of Talk 08;<br>
<br>
-To Norbert (author of openDBX) for his help and to all the people who<br>
tested it and help us.<br>
<br>
Cheers,<br>
<br>
SqueakDBX team<br>
</blockquote>
<br>
<br>
<br>
-- <br>
&quot;If at first, the idea is not absurd, then there is no hope for it&quot;. Albert Einstein<br>
<br>
<br>
</blockquote></div><br>