Found the client side libs for com, c#, java, php and python clients with
various dates from 2001 to 2008. That either indicates they work so well
that they don't need updating or they are defunct. No doubt we will find out
in time. The wire protocol looks very easy.
I understand that, as I have worked on several opensource project. But
as we have many websites using jd3, it s probably easier for us to port
jd3 to QM. No that principles are here, any help is welcome.
Cedric Fontaine
Is that Dad or Sis ? ;-) - (Only kidding around)
> If I'm honest the weight of being the only developer for QMClient was
> getting a bit much, for server and all libs :P And combining effort
> would be great.
This JD3 project was completely unknown to me, but then I'm mainly
familiar with the Revelation family of MV products. It looks like a
nice little project that's been running for years, and it's time had
finally come. Good work Cedric in bring it to our attention, and
doing a QM port.
I wonder what other, similar projects are out there?
> Martin has already told me that he has a couple of plans for QMClient,
> one secret, the other is encryption. Neither of which he will be
> releasing to GPL-QM. Wasn't even particularly responsive to keeping
> each other informed so we could remain cross compatible (IE his
> commercial customers could use my libs/mods). Which amazes me, he'd
> essentially be getting multi platform API library's for a tiny bit of
> co-operation, but alas no. I have no qualms about developing SSL
> encryption for QMClient, had planned it way before Martin mentioned it
> to me (from day 1 of my involvement in fact).
> So I have to emphasize we will be getting nothing from Ladybridge.
Let's not prod that hornet nest...
> I'll bow to popular vote, but i'm leaning towards serious trial and
> joint venture with JD3. Extensive testing would be needed before we
> actually decide anything.
Lovely.
> Everyone whos giving JD3 a go, keep at it. As much research/trial data
> as possible pls1 :D (C#? we dont have that?! lol)
Actually, I've got a C# prospective project, that might come up. But
it's way over the horizon at the moment.
> Steve, yeah pooling is partly a licence fandango, but as has been
> pointed out to me, web developers also seem to really want it for
> performance.
I've seen a simple page that reported in the bottom line that it took
83 SQL queries to generate. With that sort of thing, the
startup/shutdown overhead would be very significant. I wonder if
that's the root problem? Much less of a problem with multivalue.
Just my theory. Shoot it down in flames if I'm talking rubbish.
Ashley Chapman
> Martin has already told me that he has a couple of plans for QMClient,
> one secret, the other is encryption. Neither of which he will be
Secret? Must be huffing the same paint the TigerLogic guys are. :)
He's apparently not beyond purposefully breaking communication layer
compatibility to make sure
he can still cast aspersions on the GPL version. "See! They can't
even talk to the Commercial version any more!"
*ahem*
> Potentially we can work to keep JD3 going for Commercial QM as well,
> if people like Kevin will test it for us.
>
If Kevin's not available, the single-user developer version would be
sufficient to do compatibility testing.
> Gnome vs KDE gives diversity and competition, true. But as i see it
> it's gonna be Cedric vs me with JD3 vs QMClient, and I'd rather work
> together ;)
>
> I'll bow to popular vote, but i'm leaning towards serious trial and
> joint venture with JD3. Extensive testing would be needed before we
> actually decide anything.
>
As an opposite to the question I asked above, would any benefit be
realized in making the jd3 client understand the QMClient protocol?
> Also, Ashley. Good point. Don't think any extra work is necessary to
> make them work on the same system already. Providing they work on
> different ports. JD3 is just a BASIC program that you compile and run
> on QM. QMClient is a basic program compiled into QM and callable via a
> switch at command line (Allowing xinitd to call it from command-line).
I'll be damned. Ya learn something new every day. :) Maybe add jd3
compatibility into the QMCLIENT subroutine then?
g.
That's not quite what I meant. I'll try to be clearer...
In order to build a page, a PHP application might have to use many
more SQL queres, than if it was a MV application. In the SQL
scenario, the database connection startup/shutdown overhead is a high
proportion of the whole page build time. This is perhaps why
connection pooling is seen as so important to the PHP developer, and
the connection limit/licence count further enhances the desire for a
this pooling mechanism.
What this does imply to me, is that the application is being
constructed as a simple client server application. Much of the
business logic being in the PHP layer, outside of the database
connection.
An alternative would be to have an intermediate layer, within the
database, providing the business logic. Then there really would be
much less need for this pooling mechanism.
This is what I've done on a few of my applications, and the result is
that only one database login/logout is performed per page. Thus the
overhead is reduced to a tiny percentage, and not worth fussing over.
It's not particularly clever, as MV has a nice simple language for
building this. Doing the same with a SQL database often requires a
third party add-on. Unless you're masochistic enough to try it in
PL/SQL!
This is one of the really powerful features of Multivalue, which is so
poorly communicated to outsiders.
Ashley Chapman
We might want to rename that class to MVItem now that it's no longer
exclusively a D3 interface. :)
g.
--
Proud owner of F-15C 80-0007
http://www.f15sim.com - The only one of its kind.
OpenQM - A Multi-Value database for the masses, not the classes.
http://gpl.openqm.com - Get it _today_!
>
> Nice.
> *Burns his QMClient API Docs then realises he left his pin number
> written in there*
> Dang it!?
> (I am joking, besides you'd need to figure out my card number :D )
>
> Ruby + rails research today. On-Site work tomorrow. Will try and look
> at JD3 properly friday.
Diccon, if you have any questions, drop into ##pick or #openqm.
Currently only call is supported... Feel free to test the d3item part.
Cedric
D3CLIENT compiles but with warnings that SKT$STREAM AND SKT$TCP are
not assigned.
These values should be defined in SYSCOM:KEYS.H, but are only present
in the commercial version. So it looks like new flags have been added
to the socket interface. These new values appear in KEYS.H:-
* Socket types:
$define SKT$STREAM 0x00000000
$define SKT$DGRM 0x00000100
* Protocols:
$define SKT$TCP 0x00000000
$define SKT$UDP 0x00010000
$define SKT$ICMP 0x00020000
It appears that commercial version, which Cedric has ported JD3
against, has been updated. Anybody know how to apply similar updates
to the GPL release?
Ashley Chapman
Replying to my own post. :-)
The subversion repository has been updated to include these bits. I
should update my system first...
--
Ashley Chapman
Ashley, you're not using the "right" version. :) Those two options were
added when I re-wrote all the socket interface code. You need to update
your version to the workdev1 branch.
g.
--
Proud owner of F-15C 80-0007
http://www.f15sim.com - The only one of its kind.
ScarletDME - The red hot Data Management Environment
A Multi-Value database for the masses, not the classes.
http://www.scarletdme.org - Get it _today_!
Okay, I've tried to update, using tortoise. I get this message, and
the checkout halts at the beginning of SYSCON...
Can't open file 'C:\tmp\q\SYSCOM\.svn\tmp\text-base\QMClient.bas.svn-base': The
system cannot find the file specified.
Something is up with SVN I guess.
Can I use the snapshot
"http://gpl.openqm.com/downloads/snapshots/openqm-gpl-dev-2.6.6-r67.tar.gz"
instead? Will that be current enough?
Ashley Chapman
That should be fine Ashley.
I have never been able to checkout scarlet into windows. I think it is
because there are both QMClient.bas and QMCLIENT.BAS files in the linux
version whereas win32 cant handle that.
Error: In directory 'D:\scarletdme\SYSCOM'
Error: Can't open file
Error: 'D:\scarletdme\SYSCOM\.svn\tmp\text-base\QMClient.bas.svn-base': The
system
Error: cannot find the file specified.
That will be handy. I've got a few little changes to make, but don't
want to wait until we've done the upcoming 9.6 release. I might lose
them! Presumably, there is no problem putting them into
workdevbranch1, or should I make a new branch?
Also, I'm setting up another Ubuntu box, where I can run subversion,
which will mean I can do things the "normal" way.
--
Ashley Chapman