Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- 1 participants
- 144621 messages
Re: [Pharo-project] SqueakDBX and MacOS X
by Luc Fabresse
Perfect Mariano!
#Luc
2011/5/18 Mariano Martinez Peck <marianopeck(a)gmail.com>
> Thanks a lot Olivier.
> I know it is a pain. I suffered with my mac also.
> So....I will update:
> http://www.squeakdbx.org/Different%20backends%20under%20Mac
> with your data.
>
> Thanks
>
>
> On Wed, May 18, 2011 at 10:10 AM, Olivier Auverlot <
> olivier.auverlot(a)gmail.com> wrote:
>
>> After many hours to try to install OpenDBX and SqueakDBX on my Mac Intel
>> with a 64 bit processor, I'm very happy to propose you a little step by step
>> tutorial.
>>
>> 1. Download the client libraries for MySQL and PostgreSQL. Warning ! you
>> must get the 32 bits version. Create a temporary directory named "openDBX"
>> where you want. For me, I have put the directory at the root of my system
>> path.My directory contains :
>>
>> > mysql
>> > 5.0
>> > include
>> > lib
>> > PostgreSQL
>> > 9.0
>> > include
>> > lib
>>
>> 2. Download openDBX and compile it in 32 bits mode (because the Smalltalk
>> virtual machine is a 32 bits application). I have write a little shell
>> script to produce the configuration of the compiler.Of course, you must set
>> the directories for the include files and the librairies path.
>>
>> CFLAGS="-m32" \
>> CXXFLAGS="-m32" \
>> CPPFLAGS="-m32 -I/opendbx/PostgreSQL/9.0/include
>> -I/opendbx/mysql/5.0/include" \
>> LDFLAGS="-m32 -L/opendbx/PostgreSQL/9.0/lib -L/opendbx/mysql/5.0/lib" \
>> ./configure --disable-utils --with-backends="mysql pgsql sqlite3"
>>
>> Run it and do :
>> make
>> make install
>>
>> All the files are copied in the /usr/local/lib directory and the
>> /usr/local/lib/opendbx subdirectory.
>>
>> 3. Copy the MySQL and PostgreSQL clients librairies into /usr/local/bin
>> (the include files are unused).
>>
>> 4. Now, you must launch Pharo to install SqueakDBX.
>>
>>
>> Gofer new squeaksource: 'MetacelloRepository';
>> package: 'ConfigurationOfSqueakDBX';
>> load.
>>
>> ConfigurationOfSqueakDBX project latestVersion load.
>>
>> Gofer new squeaksource: 'MetacelloRepository';
>> package: 'ConfigurationOfGlorpDBX';
>> load.
>>
>> ConfigurationOfGlorpDBX project latestVersion load.
>>
>> 5. You could remove the temporary "openDBX" directory (step 1).
>>
>> 6. The installation is completed.
>>
>> Olivier ;-)
>> www.auverlot.fr
>>
>> Hi Olivier,
>>
>> IIRC, you should:
>> 1) fix the location problem by putting symlink in the right place.
>> 2) ensure that your dylib is compiled for the right architecture (32bit)
>> considering that current VMs are 32bits
>> Perhaps this is your problem?
>> what gives:
>>
>> $ lipo -info libopendbx.dylib
>>
>> #Luc
>>
>>
>>
>> 2011/5/17 Olivier Auverlot <olivier.auverlot(a)gmail.com>
>>
>>> Hi,
>>>
>>> I try to use SqueakDBX on Mac OS X 10.6. I have downloaded and compiled
>>> the libraries for PostgreSQL, MySQL and finaly compiled and installed
>>> openDBX.
>>>
>>> CPPFLAGS="-I/opendbx/PostgreSQL/9.0/include -I/opendbx/mysql/5.0/include"
>>>
>>> LDFLAGS="-L/opendbx/PostgreSQL/9.0/lib -L/opendbx/mysql/5.0/lib"
>>> ./configure --disable-utils --with-backends="pgsql mysql sqlite3"
>>>
>>> Now, I have in /usr/local/lib:
>>>
>>> -rwxr-xr-x 1 root wheel 17040 17 mai 09:10 libopendbx.1.dylib
>>> -rw-r--r-- 1 root wheel 32584 17 mai 09:10 libopendbx.a
>>> lrwxr-xr-x 1 root wheel 18 17 mai 09:10 libopendbx.dylib ->
>>> libopendbx.1.dylib
>>> -rwxr-xr-x 1 root wheel 1001 17 mai 09:10 libopendbx.la
>>> -rwxr-xr-x 1 root wheel 74624 17 mai 09:10 libopendbxplus.1.dylib
>>> -rw-r--r-- 1 root wheel 385056 17 mai 09:10 libopendbxplus.a
>>> lrwxr-xr-x 1 root wheel 22 17 mai 09:10 libopendbxplus.dylib ->
>>> libopendbxplus.1.dylib
>>> -rwxr-xr-x 1 root wheel 1054 17 mai 09:10 libopendbxplus.la
>>>
>>> and in /usr/local/opendbx :
>>> -rwxr-xr-x 1 root wheel 17232 17 mai 09:10 libmysqlbackend.1.so
>>> -rw-r--r-- 1 root wheel 38960 17 mai 09:10 libmysqlbackend.a
>>> -rwxr-xr-x 1 root wheel 1051 17 mai 09:10 libmysqlbackend.la
>>> lrwxr-xr-x 1 root wheel 20 17 mai 09:10 libmysqlbackend.so ->
>>> libmysqlbackend.1.so
>>> -rwxr-xr-x 1 root wheel 16904 17 mai 09:10 libpgsqlbackend.1.so
>>> -rw-r--r-- 1 root wheel 28624 17 mai 09:10 libpgsqlbackend.a
>>> -rwxr-xr-x 1 root wheel 1036 17 mai 09:10 libpgsqlbackend.la
>>> lrwxr-xr-x 1 root wheel 20 17 mai 09:10 libpgsqlbackend.so ->
>>> libpgsqlbackend.1.so
>>> -rwxr-xr-x 1 root wheel 16856 17 mai 09:10 libsqlite3backend.1.so
>>> -rw-r--r-- 1 root wheel 25936 17 mai 09:10 libsqlite3backend.a
>>> -rwxr-xr-x 1 root wheel 1053 17 mai 09:10 libsqlite3backend.la
>>> lrwxr-xr-x 1 root wheel 22 17 mai 09:10 libsqlite3backend.so ->
>>> libsqlite3backend.1.so
>>>
>>> ok...
>>>
>>> I have downloaded the OneClick distribution of Pharo 1.2.1 and installed
>>> SqueakDBX and GlorpDBX.
>>>
>>> Gofer new squeaksource: 'MetacelloRepository';
>>> package: 'ConfigurationOfSqueakDBX';
>>> load.
>>>
>>> ConfigurationOfSqueakDBX project latestVersion load.
>>>
>>> Gofer new squeaksource: 'MetacelloRepository';
>>> package: 'ConfigurationOfGlorpDBX';
>>> load.
>>>
>>> ConfigurationOfGlorpDBX project latestVersion load.
>>>
>>> Now, I try to do a SQL request to MySQL:
>>>
>>> connect
>>> | conn connectionSettings result |
>>>
>>> connectionSettings := DBXConnectionSettings
>>> host: 'mysql.domaine.fr'
>>> port: '3306'
>>> database: 'test'
>>> userName: 'username'
>>> userPassword: 'hello'.
>>>
>>> conn := DBXConnection
>>> platform: DBXMySQLPlatform new
>>> settings: connectionSettings.
>>>
>>> conn connect.
>>>
>>> conn open.
>>> result := conn execute: 'SELECT * from data'.
>>>
>>> DBXTranscript show: result.
>>>
>>> conn close.
>>>
>>> But I get an error : 'Unable to find function address'
>>>
>>> SqueakDBX didn't found the libraries ? I have try to copy the librairies
>>> in /usr/lib and /usr/lib/opendbx but with no results. In the Resources
>>> subdirectory, I have created a symbolic link to
>>> /usr/local/lib/libopendbx.dylib but without progress.
>>>
>>> ln -s /usr/local/lib/libopendbx.dylib opendbx
>>>
>>> I get the same error :-(
>>>
>>> If i modify the info.plist file to set the SqueakDebug key at 1 and the
>>> SqueakPluginsBuiltInOrLocalOnly key at false, I can see the search of
>>> librairies by the SqueakVM. The SqueakVM doesn't seem to try to load the
>>> openddbx libraries.
>>>
>>> You can download the log file at
>>> http://www.auverlot.fr/squeakdbx/squeakdbx.txt
>>>
>>> My previous tests under Linux have worked fine but i didn't find a
>>> solution with Mac OS X. Someone has an idea for help me ???
>>>
>>> Thanks for your help.
>>>
>>> Best regards
>>> Olivier
>>> www.auverlot.fr
>>>
>>>
>>>
>>
>>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
>
May 18, 2011
Re: [Pharo-project] SqueakDBX and MacOS X
by Mariano Martinez Peck
Thanks a lot Olivier.
I know it is a pain. I suffered with my mac also.
So....I will update:
http://www.squeakdbx.org/Different%20backends%20under%20Mac
with your data.
Thanks
On Wed, May 18, 2011 at 10:10 AM, Olivier Auverlot <
olivier.auverlot(a)gmail.com> wrote:
> After many hours to try to install OpenDBX and SqueakDBX on my Mac Intel
> with a 64 bit processor, I'm very happy to propose you a little step by step
> tutorial.
>
> 1. Download the client libraries for MySQL and PostgreSQL. Warning ! you
> must get the 32 bits version. Create a temporary directory named "openDBX"
> where you want. For me, I have put the directory at the root of my system
> path.My directory contains :
>
> > mysql
> > 5.0
> > include
> > lib
> > PostgreSQL
> > 9.0
> > include
> > lib
>
> 2. Download openDBX and compile it in 32 bits mode (because the Smalltalk
> virtual machine is a 32 bits application). I have write a little shell
> script to produce the configuration of the compiler.Of course, you must set
> the directories for the include files and the librairies path.
>
> CFLAGS="-m32" \
> CXXFLAGS="-m32" \
> CPPFLAGS="-m32 -I/opendbx/PostgreSQL/9.0/include
> -I/opendbx/mysql/5.0/include" \
> LDFLAGS="-m32 -L/opendbx/PostgreSQL/9.0/lib -L/opendbx/mysql/5.0/lib" \
> ./configure --disable-utils --with-backends="mysql pgsql sqlite3"
>
> Run it and do :
> make
> make install
>
> All the files are copied in the /usr/local/lib directory and the
> /usr/local/lib/opendbx subdirectory.
>
> 3. Copy the MySQL and PostgreSQL clients librairies into /usr/local/bin
> (the include files are unused).
>
> 4. Now, you must launch Pharo to install SqueakDBX.
>
>
> Gofer new squeaksource: 'MetacelloRepository';
> package: 'ConfigurationOfSqueakDBX';
> load.
>
> ConfigurationOfSqueakDBX project latestVersion load.
>
> Gofer new squeaksource: 'MetacelloRepository';
> package: 'ConfigurationOfGlorpDBX';
> load.
>
> ConfigurationOfGlorpDBX project latestVersion load.
>
> 5. You could remove the temporary "openDBX" directory (step 1).
>
> 6. The installation is completed.
>
> Olivier ;-)
> www.auverlot.fr
>
> Hi Olivier,
>
> IIRC, you should:
> 1) fix the location problem by putting symlink in the right place.
> 2) ensure that your dylib is compiled for the right architecture (32bit)
> considering that current VMs are 32bits
> Perhaps this is your problem?
> what gives:
>
> $ lipo -info libopendbx.dylib
>
> #Luc
>
>
>
> 2011/5/17 Olivier Auverlot <olivier.auverlot(a)gmail.com>
>
>> Hi,
>>
>> I try to use SqueakDBX on Mac OS X 10.6. I have downloaded and compiled
>> the libraries for PostgreSQL, MySQL and finaly compiled and installed
>> openDBX.
>>
>> CPPFLAGS="-I/opendbx/PostgreSQL/9.0/include -I/opendbx/mysql/5.0/include"
>> LDFLAGS="-L/opendbx/PostgreSQL/9.0/lib -L/opendbx/mysql/5.0/lib"
>> ./configure --disable-utils --with-backends="pgsql mysql sqlite3"
>>
>> Now, I have in /usr/local/lib:
>>
>> -rwxr-xr-x 1 root wheel 17040 17 mai 09:10 libopendbx.1.dylib
>> -rw-r--r-- 1 root wheel 32584 17 mai 09:10 libopendbx.a
>> lrwxr-xr-x 1 root wheel 18 17 mai 09:10 libopendbx.dylib ->
>> libopendbx.1.dylib
>> -rwxr-xr-x 1 root wheel 1001 17 mai 09:10 libopendbx.la
>> -rwxr-xr-x 1 root wheel 74624 17 mai 09:10 libopendbxplus.1.dylib
>> -rw-r--r-- 1 root wheel 385056 17 mai 09:10 libopendbxplus.a
>> lrwxr-xr-x 1 root wheel 22 17 mai 09:10 libopendbxplus.dylib ->
>> libopendbxplus.1.dylib
>> -rwxr-xr-x 1 root wheel 1054 17 mai 09:10 libopendbxplus.la
>>
>> and in /usr/local/opendbx :
>> -rwxr-xr-x 1 root wheel 17232 17 mai 09:10 libmysqlbackend.1.so
>> -rw-r--r-- 1 root wheel 38960 17 mai 09:10 libmysqlbackend.a
>> -rwxr-xr-x 1 root wheel 1051 17 mai 09:10 libmysqlbackend.la
>> lrwxr-xr-x 1 root wheel 20 17 mai 09:10 libmysqlbackend.so ->
>> libmysqlbackend.1.so
>> -rwxr-xr-x 1 root wheel 16904 17 mai 09:10 libpgsqlbackend.1.so
>> -rw-r--r-- 1 root wheel 28624 17 mai 09:10 libpgsqlbackend.a
>> -rwxr-xr-x 1 root wheel 1036 17 mai 09:10 libpgsqlbackend.la
>> lrwxr-xr-x 1 root wheel 20 17 mai 09:10 libpgsqlbackend.so ->
>> libpgsqlbackend.1.so
>> -rwxr-xr-x 1 root wheel 16856 17 mai 09:10 libsqlite3backend.1.so
>> -rw-r--r-- 1 root wheel 25936 17 mai 09:10 libsqlite3backend.a
>> -rwxr-xr-x 1 root wheel 1053 17 mai 09:10 libsqlite3backend.la
>> lrwxr-xr-x 1 root wheel 22 17 mai 09:10 libsqlite3backend.so ->
>> libsqlite3backend.1.so
>>
>> ok...
>>
>> I have downloaded the OneClick distribution of Pharo 1.2.1 and installed
>> SqueakDBX and GlorpDBX.
>>
>> Gofer new squeaksource: 'MetacelloRepository';
>> package: 'ConfigurationOfSqueakDBX';
>> load.
>>
>> ConfigurationOfSqueakDBX project latestVersion load.
>>
>> Gofer new squeaksource: 'MetacelloRepository';
>> package: 'ConfigurationOfGlorpDBX';
>> load.
>>
>> ConfigurationOfGlorpDBX project latestVersion load.
>>
>> Now, I try to do a SQL request to MySQL:
>>
>> connect
>> | conn connectionSettings result |
>>
>> connectionSettings := DBXConnectionSettings
>> host: 'mysql.domaine.fr'
>> port: '3306'
>> database: 'test'
>> userName: 'username'
>> userPassword: 'hello'.
>>
>> conn := DBXConnection
>> platform: DBXMySQLPlatform new
>> settings: connectionSettings.
>>
>> conn connect.
>>
>> conn open.
>> result := conn execute: 'SELECT * from data'.
>>
>> DBXTranscript show: result.
>>
>> conn close.
>>
>> But I get an error : 'Unable to find function address'
>>
>> SqueakDBX didn't found the libraries ? I have try to copy the librairies
>> in /usr/lib and /usr/lib/opendbx but with no results. In the Resources
>> subdirectory, I have created a symbolic link to
>> /usr/local/lib/libopendbx.dylib but without progress.
>>
>> ln -s /usr/local/lib/libopendbx.dylib opendbx
>>
>> I get the same error :-(
>>
>> If i modify the info.plist file to set the SqueakDebug key at 1 and the
>> SqueakPluginsBuiltInOrLocalOnly key at false, I can see the search of
>> librairies by the SqueakVM. The SqueakVM doesn't seem to try to load the
>> openddbx libraries.
>>
>> You can download the log file at
>> http://www.auverlot.fr/squeakdbx/squeakdbx.txt
>>
>> My previous tests under Linux have worked fine but i didn't find a
>> solution with Mac OS X. Someone has an idea for help me ???
>>
>> Thanks for your help.
>>
>> Best regards
>> Olivier
>> www.auverlot.fr
>>
>>
>>
>
>
--
Mariano
http://marianopeck.wordpress.com
May 18, 2011
Re: [Pharo-project] SqueakDBX and MacOS X
by Olivier Auverlot
After many hours to try to install OpenDBX and SqueakDBX on my Mac Intel
with a 64 bit processor, I'm very happy to propose you a little step by
step tutorial.
1. Download the client libraries for MySQL and PostgreSQL. Warning ! you
must get the 32 bits version. Create a temporary directory named
"openDBX" where you want. For me, I have put the directory at the root
of my system path.My directory contains :
> mysql
> 5.0
> include
> lib
> PostgreSQL
> 9.0
> include
> lib
2. Download openDBX and compile it in 32 bits mode (because the
Smalltalk virtual machine is a 32 bits application). I have write a
little shell script to produce the configuration of the compiler.Of
course, you must set the directories for the include files and the
librairies path.
CFLAGS="-m32" \
CXXFLAGS="-m32" \
CPPFLAGS="-m32 -I/opendbx/PostgreSQL/9.0/include
-I/opendbx/mysql/5.0/include" \
LDFLAGS="-m32 -L/opendbx/PostgreSQL/9.0/lib -L/opendbx/mysql/5.0/lib" \
./configure --disable-utils --with-backends="mysql pgsql sqlite3"
Run it and do :
make
make install
All the files are copied in the /usr/local/lib directory and the
/usr/local/lib/opendbx subdirectory.
3. Copy the MySQL and PostgreSQL clients librairies into /usr/local/bin
(the include files are unused).
4. Now, you must launch Pharo to install SqueakDBX.
Gofer new squeaksource: 'MetacelloRepository';
package: 'ConfigurationOfSqueakDBX';
load.
ConfigurationOfSqueakDBX project latestVersion load.
Gofer new squeaksource: 'MetacelloRepository';
package: 'ConfigurationOfGlorpDBX';
load.
ConfigurationOfGlorpDBX project latestVersion load.
5. You could remove the temporary "openDBX" directory (step 1).
6. The installation is completed.
Olivier ;-)
www.auverlot.fr
> Hi Olivier,
>
> IIRC, you should:
> 1) fix the location problem by putting symlink in the right place.
> 2) ensure that your dylib is compiled for the right architecture
> (32bit) considering that current VMs are 32bits
> Perhaps this is your problem?
> what gives:
>
> $ lipo -info libopendbx.dylib
>
> #Luc
>
>
>
> 2011/5/17 Olivier Auverlot <olivier.auverlot(a)gmail.com
> <mailto:olivier.auverlot@gmail.com>>
>
> Hi,
>
> I try to use SqueakDBX on Mac OS X 10.6. I have downloaded and
> compiled the libraries for PostgreSQL, MySQL and finaly compiled
> and installed openDBX.
>
> CPPFLAGS="-I/opendbx/PostgreSQL/9.0/include
> -I/opendbx/mysql/5.0/include"
> LDFLAGS="-L/opendbx/PostgreSQL/9.0/lib -L/opendbx/mysql/5.0/lib"
> ./configure --disable-utils --with-backends="pgsql mysql sqlite3"
>
> Now, I have in /usr/local/lib:
>
> -rwxr-xr-x 1 root wheel 17040 17 mai 09:10 libopendbx.1.dylib
> -rw-r--r-- 1 root wheel 32584 17 mai 09:10 libopendbx.a
> lrwxr-xr-x 1 root wheel 18 17 mai 09:10 libopendbx.dylib ->
> libopendbx.1.dylib
> -rwxr-xr-x 1 root wheel 1001 17 mai 09:10 libopendbx.la
> <http://libopendbx.la>
> -rwxr-xr-x 1 root wheel 74624 17 mai 09:10 libopendbxplus.1.dylib
> -rw-r--r-- 1 root wheel 385056 17 mai 09:10 libopendbxplus.a
> lrwxr-xr-x 1 root wheel 22 17 mai 09:10
> libopendbxplus.dylib -> libopendbxplus.1.dylib
> -rwxr-xr-x 1 root wheel 1054 17 mai 09:10 libopendbxplus.la
> <http://libopendbxplus.la>
>
> and in /usr/local/opendbx :
> -rwxr-xr-x 1 root wheel 17232 17 mai 09:10 libmysqlbackend.1.so
> <http://libmysqlbackend.1.so>
> -rw-r--r-- 1 root wheel 38960 17 mai 09:10 libmysqlbackend.a
> -rwxr-xr-x 1 root wheel 1051 17 mai 09:10 libmysqlbackend.la
> <http://libmysqlbackend.la>
> lrwxr-xr-x 1 root wheel 20 17 mai 09:10 libmysqlbackend.so
> -> libmysqlbackend.1.so <http://libmysqlbackend.1.so>
> -rwxr-xr-x 1 root wheel 16904 17 mai 09:10 libpgsqlbackend.1.so
> <http://libpgsqlbackend.1.so>
> -rw-r--r-- 1 root wheel 28624 17 mai 09:10 libpgsqlbackend.a
> -rwxr-xr-x 1 root wheel 1036 17 mai 09:10 libpgsqlbackend.la
> <http://libpgsqlbackend.la>
> lrwxr-xr-x 1 root wheel 20 17 mai 09:10 libpgsqlbackend.so
> -> libpgsqlbackend.1.so <http://libpgsqlbackend.1.so>
> -rwxr-xr-x 1 root wheel 16856 17 mai 09:10
> libsqlite3backend.1.so <http://libsqlite3backend.1.so>
> -rw-r--r-- 1 root wheel 25936 17 mai 09:10 libsqlite3backend.a
> -rwxr-xr-x 1 root wheel 1053 17 mai 09:10 libsqlite3backend.la
> <http://libsqlite3backend.la>
> lrwxr-xr-x 1 root wheel 22 17 mai 09:10 libsqlite3backend.so
> -> libsqlite3backend.1.so <http://libsqlite3backend.1.so>
>
> ok...
>
> I have downloaded the OneClick distribution of Pharo 1.2.1 and
> installed SqueakDBX and GlorpDBX.
>
> Gofer new squeaksource: 'MetacelloRepository';
> package: 'ConfigurationOfSqueakDBX';
> load.
>
> ConfigurationOfSqueakDBX project latestVersion load.
>
> Gofer new squeaksource: 'MetacelloRepository';
> package: 'ConfigurationOfGlorpDBX';
> load.
>
> ConfigurationOfGlorpDBX project latestVersion load.
>
> Now, I try to do a SQL request to MySQL:
>
> connect
> | conn connectionSettings result |
>
> connectionSettings := DBXConnectionSettings
> host: 'mysql.domaine.fr <http://mysql.domaine.fr>'
> port: '3306'
> database: 'test'
> userName: 'username'
> userPassword: 'hello'.
>
> conn := DBXConnection
> platform: DBXMySQLPlatform new
> settings: connectionSettings.
>
> conn connect.
>
> conn open.
> result := conn execute: 'SELECT * from data'.
>
> DBXTranscript show: result.
>
> conn close.
>
> But I get an error : 'Unable to find function address'
>
> SqueakDBX didn't found the libraries ? I have try to copy the
> librairies in /usr/lib and /usr/lib/opendbx but with no results.
> In the Resources subdirectory, I have created a symbolic link to
> /usr/local/lib/libopendbx.dylib but without progress.
>
> ln -s /usr/local/lib/libopendbx.dylib opendbx
>
> I get the same error :-(
>
> If i modify the info.plist file to set the SqueakDebug key at 1
> and the SqueakPluginsBuiltInOrLocalOnly key at false, I can see
> the search of librairies by the SqueakVM. The SqueakVM doesn't
> seem to try to load the openddbx libraries.
>
> You can download the log file at
> http://www.auverlot.fr/squeakdbx/squeakdbx.txt
>
> My previous tests under Linux have worked fine but i didn't find a
> solution with Mac OS X. Someone has an idea for help me ???
>
> Thanks for your help.
>
> Best regards
> Olivier
> www.auverlot.fr <http://www.auverlot.fr>
>
>
>
May 18, 2011
Re: [Pharo-project] [Esug-list] [ANN] SmallHarbour project
by Nick Ager
Hi Romain, Laurent,
> Having Amazon ec2 image is also a very good idea, and some
>>> Smalltalkers have already made first important steps like:
>>>
>>>
>>> http://www.nickager.com/blog/Create-a-free-Gemstone-server-in-the-cloud-in-…
>>>
>>
After having shared the above Amazon AMI (Amazon machine image), and
experimented with EC2 hosting, I realised there are some undesirable
properties of AMIs:
1) It's an image; with all the benefits and problems that entails; namely
either you like the whole thing or not. It's not composable; it's difficult
to know precisely what has been configured and how, and difficult to choose
the bits you like and replace the bits you don't like.
2) You can't (currently for Linux), create an AMI locally and upload it,
meaning everything has to be performed remotely and operating remotely in
the IDE over X11 forwarding can be slow.
3) It's difficult to share across regions. Amazon's data centres operate
autonomously. I created the image in EU-WEST and copying it to US-WEST or
US-EAST is non-trivial.
4) It's another configuration that I need to keep up to date and I don't.
5) Not everyone wants to use EC2; other cloud services are available eg
slicehost, linode, cloud-foudry etc
6) I configured the AMI using Amazon Linux, people might prefer Ubuntu,
RHEL, Suse, Windows!#*? etc
7) I configured the AMI using Nginx as a front-end server with added modules
(http://nickager.com/blog/compiling-nginx-to-add-extra-modules/) others
might require other modules or other different server eg Apache, Cherokee
etc. Even with the same server the configuration required can vary (url
redirection, static file serving etc).
8) Everyone has a different way of performing backups, monitoring the health
of the server.
9) I configured the AMI using Gemstone, others might prefer image based
persistence or MySQL, Postgres etc.
10) Ideally the configuration would allow you to specify the number of
images (or Gems for Gemstone) you'd like to respond to request, behind a
load balancer.
11) We currently require infrastructure support for https eg stunnel or
reverse proxy through a webserver eg
http://www.monkeysnatchbanana.com/posts/2010/06/23/reverse-proxying-to-seas…
Quite a list... The main issue is that I'd like to be able to build server
infrastructure from composable pieces and share configuration knowledge with
others. This led me to Chef (http://opscode.com/chef/) where people create
configuration "recipes" and a specific configuration is composed from these
recipes. The benefit of using something like Chef is that there are already
recipes for the standard parts of the server configuration eg installing and
configuring Apache, Nginx, MySql, Postgres etc have already been taken care
of. Chef abstracts the OS, and the cloud (eg EC2, slicehost etc).
The task is then to create recipes for Seaside specific parts. There are a
couple of Gemstone recipes already (
https://github.com/timfel/gemstone-cookbooks,
https://github.com/johnnyt/gemstone-cookbooks) A few of us (myself Norbert
Hartl, Stephen Eggermont) plan to investigate coding our configurations is
Chef - though it's still early days and it may prove that it's more complex
than we need.
Our basic requirements are to be able to rapidly deploy production, staging,
backup, Jenkins continuous integration and development VMs.
Do others have experience with Chef or something similar?
Ideally ESUG or someone else would provide http://www.heroku.com/ for
Seaside - but it would require formalising more of our stack and providing a
flexible solution to https.
Hope this helps,
Nick
May 18, 2011
Re: [Pharo-project] Basic tricks for improving a serializer?
by Martin Dias
On Tue, May 17, 2011 at 7:16 PM, Igor Stasenko <siguctua(a)gmail.com> wrote:
> On 17 May 2011 22:58, Mariano Martinez Peck <marianopeck(a)gmail.com> wrote:
> >
> >
> > On Tue, May 17, 2011 at 10:31 PM, Sven Van Caekenberghe <sven(a)beta9.be>
> > wrote:
> >>
> >> On 17 May 2011, at 21:57, Mariano Martinez Peck wrote:
> >>
> >> > Sven, I want to make it work :)
> >> >
> >> > so....the missing methods I told you that I need are:
> >> >
> >> > #nextStringPut:
> >> > #nextNumber:put:
> >> > #nextInt32Put:
> >> > #nextWordPut:
> >>
> >> I guess these are pretty easy. But I think they clutter the interface of
> >> ZnBufferedWriteStream, so maybe you should make a subclass.
> >>
> >
> > Yeah, don't worry. I can even duplicate the class hehehe
> >
> >>
> >> > #contents
> >> >
> >> > Implement #contents I guess it is something like:
> >> >
> >> > ZnBufferedWriteStream >> contents
> >> > ^ stream contents
> >>
> >> Why to you need #contents ?
> >
> > becasue I am an idiot. No, I don't need it. You are correct. Thanks for
> > asking.
> >
> >>
> >> I would say that it goes a bit against the concept of a stream as a sink
> >> of data.
> >> I haven't looked, but I would guess that saying #contents to a
> FileStream
> >> is not efficient.
> >>
> >> > Those missing methods I need are implemented PositionableStream. I
> took
> >> > the implementation from there and put it in ZnBufferedWriteStream.
> >> > I just added to them a first line " self flushBufferIfFull."
> >>
> >> That is probably OK, except when your string becomes larger than the
> >> buffer. Have a look at #nextPutAll:
> >>
> >
> > I am not sure if I understood. The following are correct for sure then:
> > #nextNumber:put:
> > #nextInt32Put:
> > #nextWordPut:
> >
> >
> > And #nextStringPut: is like this:
> >
> > nextStringPut: s
> > "Append the string, s, to the receiver. Only used by DataStream.
> Max
> > size of 64*256*256*256."
> >
> > | length |
> > self flushBufferIfFull.
> > (length := s size) < 192
> > ifTrue: [self nextPut: length]
> > ifFalse:
> > [self nextPut: (length digitAt: 4)+192.
> > self nextPut: (length digitAt: 3).
> > self nextPut: (length digitAt: 2).
> > self nextPut: (length digitAt: 1)].
> > self nextPutAll: s asByteArray.
> > ^s
> >
>
> Sorry, but i can't resist commenting on that.
> Why, if you demand from stream to implement #nextInt32Put:
> a the same time, you writing code like this
>
> self nextPut: (length digitAt: 4)+192.
> self nextPut: (length digitAt: 3).
> self nextPut: (length digitAt: 2).
> self nextPut: (length digitAt: 1)
>
> ?
> Then just extend your serializer with a notion of 'length' field,
> which you can use for anything where you need to encode length/size value,
> but not just for Strings.
> So, then the above method could be as short as:
>
> nextStringPut: s
> self putLength: s size.
> self nexPutAll: s asByteArray.
>
> and here you have a potential caveat because your string could be
> WideString .. muhahaha.
>
> So, i suggest you to reconsider the way how you serializing strings.
> Instead what you could do is to extend ByteString and WideString (and
> perhaps similarily do for ByteSymbol and WideSymbol),
> the methods which is responsible to turning a receiver in a sequence
> of bytes, and then simply put it into output stream,
> whatever it might be.
>
> Then you don't need #nextStringPut: because its
> a) not polymorphic, because apparently serializing ByteString should
> be different from serializing WideString
> b) instead you implementing this in
> Byte/WideString>>serializeToFuelStream: aStream and you done.
>
Yes, I am not sure if #nextStringPut: is not polymorphic, but I think that
with #serializeToFuelStream: we can avoid converting the WideString to
ByteArray just to write the ByteArray to the stream, and instead just write
the WideString to the stream. Right?
> >
> > which will finally send #nextPutAll: that does correct check.
> >
> >
> >>
> >> > The way I am creating it is like this:
> >> >
> >> > stream := ZnBufferedWriteStream on: ((FileDirectory default
> >> > forceNewFileNamed: 'mariano') binary).
> >> >
> >> > So...is this correct Sven? My tests are green :)
> >>
> >> That seems OK
> >
> > Ok.
> >
> >>
> >> > Still need to try benchmarks.
> >>
> >> You might also consider playing with making the buffer larger.
> >>
> >
> > yeah, I was trying that. Just by curious, why you put a 2^X number there?
> >
> > Ahh and for reading we don't need something special because it is already
> > buffered? (I have been told that)
> >
> > Thanks a lot Sven,
> >
> > --
> > Mariano
> > http://marianopeck.wordpress.com
> >
> >
>
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>
>
May 18, 2011
Re: [Pharo-project] [TODO] 1.3
by Marcus Denker
Current status:
==> all 1.3 builds are green
==> Open Issues Core: 20
==> Open Issues Full: 3
So we are now in the state of "we could release next Friday". Thus the idea is now to steadily integrate what will happen,
while keeping the status green.
Thus we can focus on other things as the Next Most Important Issue. e.g.
Get VM build system in a state so we can ship 1.3 with VMs build by or Hudson (soon Jenkins):
The idea here is to
a) simplify the VM story. There are too many VMs, each with each own version-number. Very confusing.
b) not have to wait with deployment for a "maintainer" to release a VM every 2 years, but instead use the latest code base
within hours of a bugfix.
c) be able to actually improve the VM while in unstable.
Thus we will
- provide a "Pharo Cog $VersionNumber" vm. This will make it easy to anwer the question of "which VM should I use"
- generate the archives one-click as well as the VMs listed on the website from the self-build VMs
The good news is that we now have a window build slave, so we will soon have all 3 major architectures covered.
On May 16, 2011, at 9:15 AM, Marcus Denker wrote:
> Core
> ====
>
> Open Issues: 20
> http://code.google.com/p/pharo/issues/list?can=2&q=Milestone%3D1.3
> Failing Tests: 1
> https://pharo-ic.lille.inria.fr/hudson/job/Pharo%20Core%201.3/lastCompleted…
>
> Full
> ===
> Open Issues: 8
> http://code.google.com/p/pharo/issues/list?can=2&q=Milestone%3D1.3-DevImage
> Failing Tests: 3
> https://pharo-ic.lille.inria.fr/hudson/job/Pharo%201.3/lastCompletedBuild/t…
>
>
> => Most important next Issue to tackle: Get all tests green.
>
> It would be nice to get both Core and Full green. Than the idea is that in the spirit of Continuous
> Delivery, we just keep it green. No degeneration of trivial problems (undeclards), fast roll-back of
> problematic changes...
>
> The idea is to keep it in a state that we could, at a minumum, always say "We could release next Friday".
> And the best would be: "We could release today".
>
> --
> Marcus Denker -- http://www.marcusdenker.de
> INRIA Lille -- Nord Europe. Team RMoD.
>
--
Marcus Denker -- http://www.marcusdenker.de
INRIA Lille -- Nord Europe. Team RMoD.
May 18, 2011
Re: [Pharo-project] Zodiac - 1st delivery - A new (binary) socket stream
by Sven Van Caekenberghe
Hi Luc,
On 18 May 2011, at 08:00, Luc Fabresse wrote:
> That's a really really news.
> I look forward when we will reach a stable point for Ocean to use Zodiac on top of it.
> FYI, Ocean is a re-implementation of Sockets (Netnameresolver, IpAddress, ....).
As I said the interface towards Socket is quite small, it should be really easy to plug in an alternative.
Apart from connect/disconnect and isConnected/isDataAvailable there are two key methods:
ZdcSimpleSocketStream>>fillBytes: bytes startingAt: offset count: count
"Ask the socket to read count elements into bytes starting at offset. Do not wait. Return read count."
ZdcSimpleSocketStream>>flushBytes: bytes startingAt: offset count: count
"Ask the socket to write count bytes starting from offset. Wait. Fail if not successful"
And then there is the logic to wait for input.
The optimized versions build on this interface.
Sven
May 18, 2011
Re: [Pharo-project] Zodiac - 1st delivery - A new (binary) socket stream
by Andreas Raab
On 5/17/2011 22:24, Sven Van Caekenberghe wrote:
> Hi,
>
> I would like to announce Zodiac, the project created in response to
>
> http://forum.world.st/WebClient-for-1-2-2-tt3485946.html#a3503921
>
> according to the plan described in
>
> http://forum.world.st/SSL-HTTPS-SecureSocketStream-SSLSession-for-Pharo-Squ…
Some comments:
> BTW, It will be (very) hard to get Pharo+WebClient+SSL+MacOSX working.
Not really. I just don't have a Mac, so all my Mac work is done in the
few hours that I actually have access to one. The stuff that's missing
in the Mac version of SqueakSSL isn't hard given a couple of days and a
Mac and WebClient ran fine on Pharo last time I tried it.
> - why was it [Cryptography] not used for SqueakSSL ?
Because the stated goal of SqueakSSL is to use the native platform
bindings for SSL on each platform. For reasons of a) performance, b)
upgradability, c) compliance, and d) size of implementation.
FWIW, I'm not sure I follow your reasoning regarding Zodiac. As it
stands, there are two working implementation of SSL: SqueakSSL and
Cryptography. You could just use one of the two and contribute to either
development if there are things you don't like about them.
Cheers,
- Andreas
May 18, 2011
Re: [Pharo-project] Zodiac - 1st delivery - A new (binary) socket stream
by Luc Fabresse
Hi Sven,
That's a really really news.
I look forward when we will reach a stable point for Ocean to use Zodiac on
top of it.
FYI, Ocean is a re-implementation of Sockets (Netnameresolver, IpAddress,
....).
Cheers,
#Luc
2011/5/17 Sven Van Caekenberghe <sven(a)beta9.be>
> Hi,
>
> I would like to announce Zodiac, the project created in response to
>
> http://forum.world.st/WebClient-for-1-2-2-tt3485946.html#a3503921
>
> according to the plan described in
>
>
> http://forum.world.st/SSL-HTTPS-SecureSocketStream-SSLSession-for-Pharo-Squ…
>
> You can follow the development by looking at the code in
>
> http://www.squeaksource.com/Zodiac.html
>
> Here is the first delivery: a new (binary) socket stream implementation.
>
> Warning: this is of course not yet code for general consumption, use the
> source and the comments. This is a proof of concept.
>
> This package has no further dependencies and does not add anything to
> system classes, it is thus safe to load.
>
> There are four stream classes, ZdcAbstractSocketStream,
> ZdcSimpleSocketStream, ZdcOptimizedSocketStream and ZdcSocketStream,
> inheriting from each other, adding successively more optimized
> implementations of the standard Smalltalk stream primitives. There is one
> helper class, ZdcIOBuffer to help in managing read and write buffers inside
> the streams. The interface towards Socket is also quite small (i.e. only a
> very small amount of the functionality in Socket is used).
>
> The 48 units tests as well as the functional test (see further) are all
> green on Pharo 1.2.x and 1.3 as well as on Squeak 4.2.
>
> The functional test is the following: Zinc HTTP Components recently got a
> its ZnNetworkingUtils class turned into a socket stream factory. By loading
> the new package Zinc-Zodiac from the ZincHTTPComponents repository, you can
> ask Zn to use the new socket stream implementation, like this:
>
> ZnNetworkingUtils default: ZnZodiacNetworkingUtils new.
>
> To reset, just do:
>
> ZnNetworkingUtils default: nil.
>
> The cool thing is: all of Zn's 151 unit tests, most doing actual HTTP
> client and server interactions (some over the internet) succeed using the
> new Zodiac socket stream implementation.
>
> Enjoy!
>
> Sven
>
>
>
May 18, 2011
Re: [Pharo-project] [Esug-list] [ANN] SmallHarbour project
by laurent laffont
On Tue, May 17, 2011 at 10:48 PM, Dale Henrichs <dhenrich(a)vmware.com> wrote:
> On 05/17/2011 12:37 PM, Davorin Rusevljan wrote:
>
>> On Tue, May 17, 2011 at 9:19 PM, laurent laffont
>> <laurent.laffont(a)gmail.com> wrote:
>>
>>> Actually we have several visions (nothing is final here, ideas welcome)
>>>
>> ..
>>
>> Having Amazon ec2 image is also a very good idea, and some
>> Smalltalkers have already made first important steps like:
>>
>>
>> http://www.nickager.com/blog/Create-a-free-Gemstone-server-in-the-cloud-in-…
>>
>> You probably already have enough on your plate, but I mentioned
>> CloudFoundry for following reasons:
>> - it has a promise that one would be able to deploy SmallHarbour to
>> different cloud providers
>> - CloudFoundry currently provides support for Java, Ruby and
>> Javascript, adding Smalltalk would be nice for visibility, and could
>> be used for other Smalltalk services not only SmallHarbour.
>>
>> As I said you probably have enough to do in the first place, but if
>> you just happen to have some student lurking that has some ruby
>> knowledge to hack the interface for Smalltalk to Cloudfoundry it would
>> be very nice to have :)
>>
>> As for your other goals - great!
>>
>> Davorin Rusevljan
>> http://www.cloud208.com/
>>
>> _______________________________________________
>> Esug-list mailing list
>> Esug-list(a)lists.esug.org
>> http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org
>>
>
> Laurent/Davorin,
>
> We are in the process of adding support for deploying GLASS applications
> into the Cloud Foundry, but I wouldn't mind helping folks who are interested
> in adding support for other Smalltalks into the Cloud Foundry ... The Cloud
> Foundry is written largely in ruby, so you'll need to be wearing your ruby
> dancing shoes:)
>
Thanks Dale, just need to wax my shoes first, haven't worn them for a long
time :)
Laurent.
>
> Dale
>
May 18, 2011