Development of cross-platform GUI for Open Source DBs

Started by Ritesh Nadhaniover 19 years ago64 messagesgeneral
Jump to latest
#1Ritesh Nadhani
rn.mailing@gmail.com

Hello all

Let me introduce myself first. I am the ex-lead developer of SQLyog
(one of the most popular GUI for MySQL which is Windows only and runs
on Linux through WINE, more info at http://www.webyog.com).

===
New Project: wxWidgets based cross-platform GUI for Open Source databases
===

===
Motivation
===

I have recently shifted to US to study for MS (and hopefully PhD in Univ
of Iowa). I have also shifted to Mac OS X as my primary usage machine
(after lifetime of Windows devotion).

As part of my coursework, I work with MySQL and PostgreSQL
extensively. I searched but couldnt find any GUI which has similar
power like SQLyog by any means. I have tried (and have tried before
also) various GUIs for respective databases but somehow the features
in them are restrictive and are not powerful enough for developers
like me who writes lots of SQL queries and needs to get things done
fast.

We can say that we already have enough GUIs for all open source
databases (open source as well as commercial) available in the market
but are they powerful enough to suffice the needs of an experienced
SQL developer as well as newbies. The top three problems with existing
GUI managers are:

- Most of the usable/powerful GUIs are not open source which is one of
the most powerful motivation for us to look for an alternate solutions.

- 90% of such GUIs are DB specific. It becomes very hard for developers
who work with multiple DBs as part of their work. It forces them to
learn different user interface/softwares to work with the respective
databases.

- Of the few multiple-db GUIs, 99% (or probably 100%) use JDBC/ODBC
layer to connect and work with the databases and JAVA or some other kind
of high level toolkit/language to develop the GUI. This results in
applications being bulky and slow and never able to provide the speed
that a low level C/C++ client API provide and are supported by all of
the standard databases.

A simple to use GUI for all databases
===

The basic idea behind such a GUI is to develop a small footprint,
extremely fast, multilingual, cross platform administrator/development
tool for databases. One of the basic requirements thats this GUI will
fulfill is to allow a developer to efficiently execute/plan queries and
allow an administrator to quickly do jobs like backups/restores etc.
with fewest mouse clicks and across different databases.

Once the basic architecture has been set, I plan to extend it to support
advanced features like MS Access like form development, query builder,
scheduled backups, data synchronization, configuration management,
replication manager, user manager etc.

wxWidgets
===

Since last couple of years, wxWidgets (formerly wxWindows) has
transformed itself into a highly powerful cross-platform GUI library
which when compiled gives the native look and feel of the host operating
system. This is something which other libraries like Qt, JAVA lack.

More info about wxwidgets can be found at: http://www.wxwidgets.org.

Yet unnamed DB management environment
===

I dont have the time nor the resources to do everything by myself. As I
see, there are too many things which are best distributed among
people/developers who are good at those specific things. E.g. I will
require good graphics designer to develop the icons for the tool, web
developer to keep the website updated, db specific veterans to best code
individual db management code etc.

Also, it would be a great way to learn some programming and show it as
part of your undergraduate/graduate project development requirement :)

Is it viable?
===

I am not too big a fan of reinventing the wheel or work on a project
which will go bust in couple of years? So what I want is from you people
a little initial idea and discussion about such a tool. Is it viable? Is
it OK to develop such a tool? Will people use it?

I am cross posting this to various db mailing lists as well as relevant
newsgroups to get maximum idea about it. You can also contact me
directly at riteshn@gmail.com if you would be interested.

Waiting for your comments.

-- Ritesh

#2Thomas Kellerer
spam_eater@gmx.net
In reply to: Ritesh Nadhani (#1)
Re: Development of cross-platform GUI for Open Source DBs

- Of the few multiple-db GUIs, 99% (or probably 100%) use JDBC/ODBC
layer to connect and work with the databases and JAVA or some other kind
of high level toolkit/language to develop the GUI. This results in
applications being bulky and slow and never able to provide the speed
that a low level C/C++ client API provide and are supported by all of
the standard databases.

I am maintaining such an application and it is neither bulky nor slow. It's all
a matter of implementation.

Just an example: with the enhanced batching in Oracle's current JDBC driver
(yes, I know this is an Oracle list) I can even achieve the same import speed as
SQL*Loader when importing flat files.

Btw: coming from a Java world, I do consider HSQLDB and Derby belonging to the
list of "standard databases"

Thomas

#3Tomi NA
hefest@gmail.com
In reply to: Ritesh Nadhani (#1)
Re: Development of cross-platform GUI for Open Source DBs

2006/11/25, Ritesh Nadhani <rn.mailing@gmail.com>:

Hello all

Let me introduce myself first. I am the ex-lead developer of SQLyog
(one of the most popular GUI for MySQL which is Windows only and runs
on Linux through WINE, more info at http://www.webyog.com).

===
New Project: wxWidgets based cross-platform GUI for Open Source databases
===

===
Motivation
===

I have recently shifted to US to study for MS (and hopefully PhD in Univ
of Iowa). I have also shifted to Mac OS X as my primary usage machine
(after lifetime of Windows devotion).

As part of my coursework, I work with MySQL and PostgreSQL
extensively. I searched but couldnt find any GUI which has similar
power like SQLyog by any means. I have tried (and have tried before
also) various GUIs for respective databases but somehow the features
in them are restrictive and are not powerful enough for developers
like me who writes lots of SQL queries and needs to get things done
fast.

We can say that we already have enough GUIs for all open source
databases (open source as well as commercial) available in the market
but are they powerful enough to suffice the needs of an experienced
SQL developer as well as newbies. The top three problems with existing
GUI managers are:

- Most of the usable/powerful GUIs are not open source which is one of
the most powerful motivation for us to look for an alternate solutions.

- 90% of such GUIs are DB specific. It becomes very hard for developers
who work with multiple DBs as part of their work. It forces them to
learn different user interface/softwares to work with the respective
databases.

- Of the few multiple-db GUIs, 99% (or probably 100%) use JDBC/ODBC
layer to connect and work with the databases and JAVA or some other kind
of high level toolkit/language to develop the GUI. This results in
applications being bulky and slow and never able to provide the speed
that a low level C/C++ client API provide and are supported by all of
the standard databases.

A simple to use GUI for all databases
===

The basic idea behind such a GUI is to develop a small footprint,
extremely fast, multilingual, cross platform administrator/development
tool for databases. One of the basic requirements thats this GUI will
fulfill is to allow a developer to efficiently execute/plan queries and
allow an administrator to quickly do jobs like backups/restores etc.
with fewest mouse clicks and across different databases.

Once the basic architecture has been set, I plan to extend it to support
advanced features like MS Access like form development, query builder,
scheduled backups, data synchronization, configuration management,
replication manager, user manager etc.

wxWidgets
===

Since last couple of years, wxWidgets (formerly wxWindows) has
transformed itself into a highly powerful cross-platform GUI library
which when compiled gives the native look and feel of the host operating
system. This is something which other libraries like Qt, JAVA lack.

More info about wxwidgets can be found at: http://www.wxwidgets.org.

Yet unnamed DB management environment
===

I dont have the time nor the resources to do everything by myself. As I
see, there are too many things which are best distributed among
people/developers who are good at those specific things. E.g. I will
require good graphics designer to develop the icons for the tool, web
developer to keep the website updated, db specific veterans to best code
individual db management code etc.

Also, it would be a great way to learn some programming and show it as
part of your undergraduate/graduate project development requirement :)

Is it viable?
===

I am not too big a fan of reinventing the wheel or work on a project
which will go bust in couple of years? So what I want is from you people
a little initial idea and discussion about such a tool. Is it viable? Is
it OK to develop such a tool? Will people use it?

I am cross posting this to various db mailing lists as well as relevant
newsgroups to get maximum idea about it. You can also contact me
directly at riteshn@gmail.com if you would be interested.

Waiting for your comments.

-- Ritesh

---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

http://www.postgresql.org/docs/faq

The generalities of the project make sense to me: there really isn't a
very good tool that is cross-platform, cross-database and has a lot of
advanced options.
The feature list of sqlyog is rather comprehensive, although I think
that the missing relationship diagram editor leaves an obvious gap in
the company of the other advanced features.
Do I have time to contribute to the project? Depends. I don't have
time to hack the source, but do have a lot of advice to offer (what
people call consulting and usually charge a hefty sum for :)).
I don't think you'll like/agree with the bulk of my advice, though.

First of all, I'm sure that wxWidgets and also Qt and GTK+ are all
very nice frameworks to work with. C++? Great language, but is it the
right choice for this kind application?
As I don't intend to do any actual coding on the (possible) project I
really don't consider myself to have a vote on the subject, but it
seems to me a bit silly to go down that road when there's the NetBeans
platform and Eclipse RCP to build on.
Why sentence the programmers to writing another integrated help
system, actions and window management framework, options management,
updates management, modular architecture and module management and
message passing framework, just to name a few of the obvious
advantages of the two platforms?
As far as performance is concerned, a vanilla NetBeans-platform-based
application (i.e. justh the platform, no modules) uses about 5MB of
RAM and loads, well, not as fast as snapping your fingers, but fairly
close.
A quake2 engine was written in java and is within 20% of the framerate
of the original C-based game. And the mere mentioning of a jdbc driver
in the context of performance...I don't know...if you had thousands of
queries per second it might have made me take a pause for thought, but
I just don't see that kind of action happening in this kind of
application.
What's more, developing such a DB management tool as a set of NetBeans
of Eclipse modules leaves the option available to all the people using
one of these IDEs to complete their database tasks from the same IDE
they do their other programming in: it's a nice feat.

As for portability, I assume not a word need be said.

Native look and feel? Well, 1.5 swing-based apps don't offer a native
look and feel (although they can come fairly close), but the eclipse
UI is completely native and from what I've read, jdk 1.6 swing
applications will use native UI controls (at least on Longh...sorry,
Vista).

The fact that java is to be open sourced and that every new generation
of the jvm is really significantly faster (since 1.4) doesn't leave a
C++-based app much to boast.

On the other hand...if I were in your shoes, I would be very hard to
talk into dropping a language I know if favour of another. ;)

Have a nice weekend,
t.n.a.

#4Richard Troy
rtroy@ScienceTools.com
In reply to: Ritesh Nadhani (#1)
Re: Development of cross-platform GUI for Open Source DBs

Hi Ritesh,

I'm in support of Tomi's comments (especially those about consulting), and
have a few more thoughts to add. To wit:

First, as an aside, as I didn't know anything about SQLyog, I read your
post first, then went to the URL cited. Throughout your post, it wasn't
clear what the subject was exactly as it seemed you were talking in some
places about a database management interface and in other places some kind
of development environment for people to create cross-platform GUIs in. As
you expand your search for volunteers, you might consider making this more
clear - I'm sure I'm not the only one who doesn't/didn't know what SQLyog
is...

On Sat, 25 Nov 2006, Ritesh Nadhani wrote:

Hello all

Let me introduce myself first. I am the ex-lead developer of SQLyog
(one of the most popular GUI for MySQL which is Windows only and runs
on Linux through WINE, more info at http://www.webyog.com).

===
New Project: wxWidgets based cross-platform GUI for Open Source databases
===

===
Motivation
===

I have recently shifted to US to study for MS (and hopefully PhD in Univ
of Iowa). I have also shifted to Mac OS X as my primary usage machine
(after lifetime of Windows devotion).

As part of my coursework, I work with MySQL and PostgreSQL
extensively. I searched but couldnt find any GUI which has similar
power like SQLyog by any means. I have tried (and have tried before
also) various GUIs for respective databases but somehow the features
in them are restrictive and are not powerful enough for developers
like me who writes lots of SQL queries and needs to get things done
fast.

We can say that we already have enough GUIs for all open source
databases (open source as well as commercial) available in the market
but are they powerful enough to suffice the needs of an experienced
SQL developer as well as newbies. The top three problems with existing
GUI managers are:

- Most of the usable/powerful GUIs are not open source which is one of
the most powerful motivation for us to look for an alternate solutions.

- 90% of such GUIs are DB specific. It becomes very hard for developers
who work with multiple DBs as part of their work. It forces them to
learn different user interface/softwares to work with the respective
databases.

A few thoughts here; each db engine has its own;

- sql dialect, dispite the best efforts of SQL92 et al.

- sql query plan output mechanism and format

- naming restrictions (some know from context what table/attribute names
are while others absolutely demand reserved-words remain reserved, even
when they'll never be found in a particular context) - presuming you want
to provide, "works here but not there" advice.

- system catalogs

- index structures

- transaction log semantics

- lock management - presuming you wish to include a "which transaction has
the lock" functionality

- activity/error/security log systems - presuming you wish to provide
error resolution assistance

- maintenance tools suite, like Postgres' vacuum

- backup and recovery suite

- Of the few multiple-db GUIs, 99% (or probably 100%) use JDBC/ODBC
layer to connect and work with the databases and JAVA or some other kind
of high level toolkit/language to develop the GUI. This results in
applications being bulky and slow and never able to provide the speed
that a low level C/C++ client API provide and are supported by all of
the standard databases.

The reason - a reason - JDBC (and I presume ODBC) is so popular for these
purposes is that it helps resolve a handful - a large handful - of the
challenges of writing cross-database-platform.

A simple to use GUI for all databases
===

The basic idea behind such a GUI is to develop a small footprint,
extremely fast, multilingual, cross platform administrator/development
tool for databases. One of the basic requirements thats this GUI will
fulfill is to allow a developer to efficiently execute/plan queries and
allow an administrator to quickly do jobs like backups/restores etc.
with fewest mouse clicks and across different databases.

Once the basic architecture has been set, I plan to extend it to support
advanced features like MS Access like form development, query builder,
scheduled backups, data synchronization, configuration management,
replication manager, user manager etc.

...This is where your stated goals become confusing; What does MS Access
have anything to do with this subject? When you say data synchronization,
do you mean replication - then why mention it separately? (rhetorical
questions)

wxWidgets
===

Since last couple of years, wxWidgets (formerly wxWindows) has
transformed itself into a highly powerful cross-platform GUI library
which when compiled gives the native look and feel of the host operating
system. This is something which other libraries like Qt, JAVA lack.

More info about wxwidgets can be found at: http://www.wxwidgets.org.

Yet unnamed DB management environment
===

I dont have the time nor the resources to do everything by myself. As I
see, there are too many things which are best distributed among
people/developers who are good at those specific things. E.g. I will
require good graphics designer to develop the icons for the tool, web
developer to keep the website updated, db specific veterans to best code
individual db management code etc.

Also, it would be a great way to learn some programming and show it as
part of your undergraduate/graduate project development requirement :)

Is it viable?
===

I am not too big a fan of reinventing the wheel or work on a project
which will go bust in couple of years? So what I want is from you people
a little initial idea and discussion about such a tool. Is it viable? Is
it OK to develop such a tool? Will people use it?

Because the distinctive features between RDBMSes I cited above - and
others I didn't cite - change with time, you don't want to hard-code them.
Nor, does it seem to me, do you wish to hard code which database engines
are supported. Therefore, it's clear to me that you want to develop a way
to support any new / new version RDBMS in a way that's easily extensible,
or configurable, if you will. I think it's a lot harder to do than might
sound.

I am cross posting this to various db mailing lists as well as relevant
newsgroups to get maximum idea about it. You can also contact me
directly at riteshn@gmail.com if you would be interested.

Well, I think we expect you're still on our email list so you can receive
replies, yes? Not everybody replies to both list and author separately.
-shrug-

Waiting for your comments.

-- Ritesh

All that said, I'd use such a tool if one were available...

Richard

--
Richard Troy, Chief Scientist
Science Tools Corporation
510-924-1363 or 202-747-1263
rtroy@ScienceTools.com, http://ScienceTools.com/

#5John DeSoi
desoi@pgedit.com
In reply to: Ritesh Nadhani (#1)
Re: Development of cross-platform GUI for Open Source DBs

New Project: wxWidgets based cross-platform GUI for Open Source
databases

You might also want to investigate XUL (http://en.wikipedia.org/wiki/
XUL). In addition to having low level C/C++, you can provide the
ability to create interfaces with XML and JavaScript. Applications
can run stand alone (XUL Runner) and perhaps interesting XUL browser
plugins would be possible.

John DeSoi, Ph.D.
http://pgedit.com/
Power Tools for PostgreSQL

#6Ritesh Nadhani
rn.mailing@gmail.com
In reply to: Thomas Kellerer (#2)
Re: Development of cross-platform GUI for Open Source DBs

Hello

On 11/25/06, Thomas Kellerer <spam_eater@gmx.net> wrote:

- Of the few multiple-db GUIs, 99% (or probably 100%) use JDBC/ODBC
layer to connect and work with the databases and JAVA or some other kind
of high level toolkit/language to develop the GUI. This results in
applications being bulky and slow and never able to provide the speed
that a low level C/C++ client API provide and are supported by all of
the standard databases.

I am maintaining such an application and it is neither bulky nor slow. It's all
a matter of implementation.

Can I have a link to the application or more info on that? I would be
interested to take a look into it.

Just an example: with the enhanced batching in Oracle's current JDBC driver
(yes, I know this is an Oracle list) I can even achieve the same import speed as
SQL*Loader when importing flat files.

I have nothing against JDBC or JAVA (did my words sounded petulant
towards it?) but 90% of the databases do provide lowest level APIs in
C. Having an app in C helps us to use very very less memory (this I
say from my experience where I could get million record from a remote
server to my client at much faster rates then a another app). Lot of
times it has happened that the C API (atleast with MySQL and PGSQL C
API) provides some extra information which when smartly used can make
things lot efficient.

Also, why I started a thread with wxWidgets was because C/C++ is what
I have been using all my life and from my experience of developing
couple of cross platform simple GUI, I fount wxWidgets to most mature
and easy to use.

But somebody in one of his replies suggested XUL. I will read about it tomorrow.

Btw: coming from a Java world, I do consider HSQLDB and Derby belonging to the
list of "standard databases"

I am sure there would be ways to provide for support for them too but
I am not sure as of now.

Thomas

Ritesh

Show quoted text

---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

http://www.postgresql.org/docs/faq

#7Ritesh Nadhani
rn.mailing@gmail.com
In reply to: Richard Troy (#4)
Re: Development of cross-platform GUI for Open Source DBs

Hello

On 11/25/06, Richard Troy <rtroy@sciencetools.com> wrote:

Hi Ritesh,

I'm in support of Tomi's comments (especially those about consulting), and
have a few more thoughts to add. To wit:

First, as an aside, as I didn't know anything about SQLyog, I read your
post first, then went to the URL cited. Throughout your post, it wasn't
clear what the subject was exactly as it seemed you were talking in some
places about a database management interface and in other places some kind
of development environment for people to create cross-platform GUIs in. As
you expand your search for volunteers, you might consider making this more
clear - I'm sure I'm not the only one who doesn't/didn't know what SQLyog
is...

Well, sorry if my words were confusing. I was thinking of an MS SQL
Query Analyzer, SQLyog, PGAdmin kind of tool to start with which will
provide a basic admin tool initially. And based upon that
layer/architecture we will provide more advanced tools like query
builder etc.

I think I jumped the boat far too quickly, I also meant a development
environment to be provided by this tool later on but come to think of
it, it is already provided by OpenOffice so we wont probably need to
think on that line.

So I guess, the tool that I have in mind is a database management
interface - something like Toad for Oracle (which probably everybody
knows).

On Sat, 25 Nov 2006, Ritesh Nadhani wrote:

Hello all

Let me introduce myself first. I am the ex-lead developer of SQLyog
(one of the most popular GUI for MySQL which is Windows only and runs
on Linux through WINE, more info at http://www.webyog.com).

===
New Project: wxWidgets based cross-platform GUI for Open Source databases
===

===
Motivation
===

I have recently shifted to US to study for MS (and hopefully PhD in Univ
of Iowa). I have also shifted to Mac OS X as my primary usage machine
(after lifetime of Windows devotion).

As part of my coursework, I work with MySQL and PostgreSQL
extensively. I searched but couldnt find any GUI which has similar
power like SQLyog by any means. I have tried (and have tried before
also) various GUIs for respective databases but somehow the features
in them are restrictive and are not powerful enough for developers
like me who writes lots of SQL queries and needs to get things done
fast.

We can say that we already have enough GUIs for all open source
databases (open source as well as commercial) available in the market
but are they powerful enough to suffice the needs of an experienced
SQL developer as well as newbies. The top three problems with existing
GUI managers are:

- Most of the usable/powerful GUIs are not open source which is one of
the most powerful motivation for us to look for an alternate solutions.

- 90% of such GUIs are DB specific. It becomes very hard for developers
who work with multiple DBs as part of their work. It forces them to
learn different user interface/softwares to work with the respective
databases.

A few thoughts here; each db engine has its own;

- sql dialect, dispite the best efforts of SQL92 et al.

- sql query plan output mechanism and format

- naming restrictions (some know from context what table/attribute names
are while others absolutely demand reserved-words remain reserved, even
when they'll never be found in a particular context) - presuming you want
to provide, "works here but not there" advice.

- system catalogs

- index structures

- transaction log semantics

- lock management - presuming you wish to include a "which transaction has
the lock" functionality

- activity/error/security log systems - presuming you wish to provide
error resolution assistance

- maintenance tools suite, like Postgres' vacuum

- backup and recovery suite

Yes I know that. So we can make our architecture to be modular where
each db interface use its own most efficient way rather then a generic
way which would make things slow. And if a feature is not provided by
a DB, that option would be just turned off for that DB.

My motivation for the idea comes from the plauggable engine support
that MySQL provides.

- Of the few multiple-db GUIs, 99% (or probably 100%) use JDBC/ODBC
layer to connect and work with the databases and JAVA or some other kind
of high level toolkit/language to develop the GUI. This results in
applications being bulky and slow and never able to provide the speed
that a low level C/C++ client API provide and are supported by all of
the standard databases.

The reason - a reason - JDBC (and I presume ODBC) is so popular for these
purposes is that it helps resolve a handful - a large handful - of the
challenges of writing cross-database-platform.

As I replied in my previous two mails, my motivation for using
wxWidgets/C/C++ remains same.

A simple to use GUI for all databases
===

The basic idea behind such a GUI is to develop a small footprint,
extremely fast, multilingual, cross platform administrator/development
tool for databases. One of the basic requirements thats this GUI will
fulfill is to allow a developer to efficiently execute/plan queries and
allow an administrator to quickly do jobs like backups/restores etc.
with fewest mouse clicks and across different databases.

Once the basic architecture has been set, I plan to extend it to support
advanced features like MS Access like form development, query builder,
scheduled backups, data synchronization, configuration management,
replication manager, user manager etc.

...This is where your stated goals become confusing; What does MS Access
have anything to do with this subject? When you say data synchronization,
do you mean replication - then why mention it separately? (rhetorical
questions)

Nope. Data sync and replication are two different things. I will
explain it sometime soon. Atleast, that was my notion when I
developing a sync feature in SQLyog.

wxWidgets
===

Since last couple of years, wxWidgets (formerly wxWindows) has
transformed itself into a highly powerful cross-platform GUI library
which when compiled gives the native look and feel of the host operating
system. This is something which other libraries like Qt, JAVA lack.

More info about wxwidgets can be found at: http://www.wxwidgets.org.

Yet unnamed DB management environment
===

I dont have the time nor the resources to do everything by myself. As I
see, there are too many things which are best distributed among
people/developers who are good at those specific things. E.g. I will
require good graphics designer to develop the icons for the tool, web
developer to keep the website updated, db specific veterans to best code
individual db management code etc.

Also, it would be a great way to learn some programming and show it as
part of your undergraduate/graduate project development requirement :)

Is it viable?
===

I am not too big a fan of reinventing the wheel or work on a project
which will go bust in couple of years? So what I want is from you people
a little initial idea and discussion about such a tool. Is it viable? Is
it OK to develop such a tool? Will people use it?

Because the distinctive features between RDBMSes I cited above - and
others I didn't cite - change with time, you don't want to hard-code them.
Nor, does it seem to me, do you wish to hard code which database engines
are supported. Therefore, it's clear to me that you want to develop a way
to support any new / new version RDBMS in a way that's easily extensible,
or configurable, if you will. I think it's a lot harder to do than might
sound.

I am cross posting this to various db mailing lists as well as relevant
newsgroups to get maximum idea about it. You can also contact me
directly at riteshn@gmail.com if you would be interested.

Well, I think we expect you're still on our email list so you can receive
replies, yes? Not everybody replies to both list and author separately.
-shrug-

Hehehehe...my mistake. No need to double me :)

Waiting for your comments.

-- Ritesh

All that said, I'd use such a tool if one were available...

Richard

Ritesh

Show quoted text

--
Richard Troy, Chief Scientist
Science Tools Corporation
510-924-1363 or 202-747-1263
rtroy@ScienceTools.com, http://ScienceTools.com/

#8Ritesh Nadhani
rn.mailing@gmail.com
In reply to: John DeSoi (#5)
Re: Development of cross-platform GUI for Open Source DBs

Thanks for the info. I will take a look at it soon.

Show quoted text

On 11/25/06, John DeSoi <desoi@pgedit.com> wrote:

New Project: wxWidgets based cross-platform GUI for Open Source
databases

You might also want to investigate XUL (http://en.wikipedia.org/wiki/
XUL). In addition to having low level C/C++, you can provide the
ability to create interfaces with XML and JavaScript. Applications
can run stand alone (XUL Runner) and perhaps interesting XUL browser
plugins would be possible.

John DeSoi, Ph.D.
http://pgedit.com/
Power Tools for PostgreSQL

#9Thomas Kellerer
spam_eater@gmx.net
In reply to: Ritesh Nadhani (#6)
Re: Development of cross-platform GUI for Open Source DBs

Hi,

I am maintaining such an application and it is neither bulky nor slow.
It's all
a matter of implementation.

Can I have a link to the application or more info on that? I would be
interested to take a look into it.

Sure: http://www.sql-workbench.net

I have nothing against JDBC or JAVA (did my words sounded petulant
towards it?) but 90% of the databases do provide lowest level APIs in
C. Having an app in C helps us to use very very less memory (this I
say from my experience where I could get million record from a remote
server to my client at much faster rates then a another app).

That might be true, but then how often do you really *need* millions of records
on the client especially in a DB GUI where the primary task (at least that's how
I see it) is to run ad-hoc queries or check other results.

Which leads me to the (most important?) question: what do "we" understand under
the term "GUI for DB" is that a full featured data-entry where a normal end-user
can update data? Is that an admin tool for the DBA, which is intended to run
daily DBA taks? Or maybe even some kind of ETL tool?

Lot of
times it has happened that the C API (atleast with MySQL and PGSQL C
API) provides some extra information which when smartly used can make
things lot efficient.

That is true, but then a tool supporting multiple DBMS will (most probably) have
to comprise now and then. Otherwise you'll wind up writing one tool for each
DBMS and simply combining them under a common GUI.

Also, why I started a thread with wxWidgets was because C/C++ is what
I have been using all my life and from my experience of developing
couple of cross platform simple GUI, I fount wxWidgets to most mature
and easy to use.

As I already mentioned, I'm a Java developer and naturally I find Swing most
mature and easy to use ;)
Actually if I look at tools that are written with wxWidgets (not that often) I
tend to find they look less like native Windows apps as a well written Swing
application using a recent JDK (1.5 or 1.6)

But that is largely a matter of taste I'd say, and everybody tends to prefer the
environment that he/she is familiar with

Thomas

#10Ritesh Nadhani
rn.mailing@gmail.com
In reply to: Thomas Kellerer (#9)
Re: Development of cross-platform GUI for Open Source DBs

Hello

On 11/26/06, Thomas Kellerer <spam_eater@gmx.net> wrote:

Hi,

I am maintaining such an application and it is neither bulky nor slow.
It's all
a matter of implementation.

Can I have a link to the application or more info on that? I would be
interested to take a look into it.

Sure: http://www.sql-workbench.net

Thanks. If I ever start a project like I am thinking, your application
would be definitely of lot of help. I have added the website in my
bookmark.

I have nothing against JDBC or JAVA (did my words sounded petulant
towards it?) but 90% of the databases do provide lowest level APIs in
C. Having an app in C helps us to use very very less memory (this I
say from my experience where I could get million record from a remote
server to my client at much faster rates then a another app).

That might be true, but then how often do you really *need* millions of records
on the client especially in a DB GUI where the primary task (at least that's how
I see it) is to run ad-hoc queries or check other results.

Even I thought so but a newbie who works on couple of earlier project
do execute such queries and in the end it becomes a good marketing
paradigm also where you can show off that it can handle X million row
result also without any problem. Agreed, such people would be less
then 5% of the total userbase but it does gives us good
differentiating option then other GUIs.

Which leads me to the (most important?) question: what do "we" understand under
the term "GUI for DB" is that a full featured data-entry where a normal end-user
can update data? Is that an admin tool for the DBA, which is intended to run
daily DBA taks? Or maybe even some kind of ETL tool?

That is a very legitimate question. The project will start off as a
data entry app where a user can see all the DB objects like tables,
columns, indexes etc. Exceute queries, create db objects like table,
columns, etc. As the project becomes more mature, we add more features
for a DBA like backup, restore db, user management, log management
etc. And finally a good and state of the art query builder & designer
and if technology permits, a two-way query builder is what I intend to
target.

Lot of
times it has happened that the C API (atleast with MySQL and PGSQL C
API) provides some extra information which when smartly used can make
things lot efficient.

That is true, but then a tool supporting multiple DBMS will (most probably) have
to comprise now and then. Otherwise you'll wind up writing one tool for each
DBMS and simply combining them under a common GUI.

Yes. That is exactly what I am thinking of. It definitely looks
daunting but with community support, I think it i possible. The first
and foremost thing that needs to be done is coming up with a very
flexible and pluggable architecture where I define a common set of
interface for all DBs and then what remains is to just fill in the gap
for individual databases.

This would be best done if inidividual DB expert takes up an interface
to code for their respective DB. This way we would be able to extract
the maximum juice from each DB.

Also, why I started a thread with wxWidgets was because C/C++ is what
I have been using all my life and from my experience of developing
couple of cross platform simple GUI, I fount wxWidgets to most mature
and easy to use.

As I already mentioned, I'm a Java developer and naturally I find Swing most
mature and easy to use ;)
Actually if I look at tools that are written with wxWidgets (not that often) I
tend to find they look less like native Windows apps as a well written Swing
application using a recent JDK (1.5 or 1.6)

Fair enough. Maybe, there is a way where we could integrate wxWidgets
and JAVA Swing but I am not sure if its possible. Maybe, somebody can
put more pointer on this one.

But that is largely a matter of taste I'd say, and everybody tends to prefer the
environment that he/she is familiar with

Thomas

Ritesh

Show quoted text

---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

#11Richard Troy
rtroy@ScienceTools.com
In reply to: Ritesh Nadhani (#7)
Re: Development of cross-platform GUI for Open Source DBs

On Sun, 26 Nov 2006, Ritesh Nadhani wrote:

Well, sorry if my words were confusing. I was thinking of an MS SQL
Query Analyzer, SQLyog, PGAdmin kind of tool to start with which will
provide a basic admin tool initially. And based upon that
layer/architecture we will provide more advanced tools like query
builder etc.

I think I jumped the boat far too quickly, I also meant a development
environment to be provided by this tool later on but come to think of
it, it is already provided by OpenOffice so we wont probably need to
think on that line.

There's room for something other than what OpenOffice provides, but a
morphed DB Admin tool certainly isn't it because they have very different
goals. I, for example, would like a toolset that helps take the drudgery
out of making a db-connected application and convert it into both/either a
more traditional client/application-server and/or a web application. I'm
sure there are a lot of people who'd like to see this, too, but these
application-perspective based needs are _dramatically_ different from
database admin needs. Combining them is bound to be more trouble than it's
worth as they have virtually nothing in common.

So I guess, the tool that I have in mind is a database management
interface - something like Toad for Oracle (which probably everybody
knows).

Toad? No, everybody doesn't know. But the idea of going for a
cross-datrabase-platform db-admin tool is a fine one.

Also, repeating for emphasis my brief and incomplete "differences list:"

A few thoughts here; each db engine has its own;

- sql dialect, dispite the best efforts of SQL92 et al.

- sql query plan output mechanism and format

- naming restrictions (some know from context what table/attribute names
are while others absolutely demand reserved-words remain reserved, even
when they'll never be found in a particular context) - presuming you want
to provide, "works here but not there" advice.

- system catalogs

- index structures

- transaction log semantics

- lock management - presuming you wish to include a "which transaction has
the lock" functionality

- activity/error/security log systems - presuming you wish to provide
error resolution assistance

- maintenance tools suite, like Postgres' vacuum

- backup and recovery suite

Yes I know that. So we can make our architecture to be modular where
each db interface use its own most efficient way rather then a generic
way which would make things slow. And if a feature is not provided by
a DB, that option would be just turned off for that DB.

My motivation for the idea comes from the plauggable engine support
that MySQL provides.

OK, "pluggable," but please read my words carefully and get the hint: If
you do _not_ provide features like accessing the query plans, finding lock
holders to sort out deadlocks, and these other database-specific items
listed above - and others I didn't list - you will NOT be providing
functionality that's worth the time.

Let me put it this way; Right now I have to support (at least) five
RDBMSes: Postgres, Informix, Sybase, DB2, Oracle - and we're considering
ANTS. The idea of a cross-dbms admin tool sounds great but is USELESS -
not worth my time - if it doesn't address these every-day-in-production
needs because, lets face it, I'll _still_ have to use those platform
specific mechanisms - and if I have to access them _anyway,_ why bother
with yet another tool that doesn't do the job?

The answer is, it won't have the user base you're looking for.

Seems to me, you need to get back to square one: What problem(s) are you
trying to solve? And an answer that says, "Oh, all this DBMS admin stuff
and - eventually! - an app builder too!" is not an answer I can believe as
it's too ambitious, and not focused on any core user group.

Good luck,
Richard

--
Richard Troy, Chief Scientist
Science Tools Corporation
510-924-1363 or 202-747-1263
rtroy@ScienceTools.com, http://ScienceTools.com/

#12Guy Rouillier
guyr@masergy.com
In reply to: Richard Troy (#11)
Re: Development of cross-platform GUI for Open Source DBs

Richard Troy wrote:

Let me put it this way; Right now I have to support (at least) five
RDBMSes: Postgres, Informix, Sybase, DB2, Oracle - and we're
considering ANTS. The idea of a cross-dbms admin tool sounds great
but is USELESS - not worth my time - if it doesn't address these
every-day-in-production needs because, lets face it, I'll _still_
have to use those platform specific mechanisms - and if I have to
access them _anyway,_ why bother with yet another tool that doesn't
do the job?

I missed the beginning of this thread, but I agree with Richard. Not to
be a wet rag, but I think a cross-DBMS admin tool is doomed, other than
at a level that Aqua Data Studio already provides. To provide the deep
functionality that work-a-day DB admins require, you'll have to provide
DBMS-specific functionality. You've thought about that already - allow
plugins. But do some graphical design that considers how all this will
fit together. At a minimum, you'll need a general section or page *per
object type* that contains things that are consistent across DBMSs, then
you'll need a corresponding section or page *per object type* that
handle DBMS-specific extensions. Once you start laying all that out,
you'll see why DBMS-specific admin tools exist.

As for language, I don't agree that Java is too restrictive. "Millions
of rows" typically occur in the application space, not in the admin
space. The only time admins encounter that type of volume is backups,
recoveries, copies, etc., which will likely be in the DBMS-specific
realm.

--
Guy Rouillier

#13Merlin Moncure
mmoncure@gmail.com
In reply to: Ritesh Nadhani (#1)
Re: Development of cross-platform GUI for Open Source DBs

On 11/25/06, Ritesh Nadhani <rn.mailing@gmail.com> wrote:

Hello all

Let me introduce myself first. I am the ex-lead developer of SQLyog
(one of the most popular GUI for MySQL which is Windows only and runs
on Linux through WINE, more info at http://www.webyog.com).

===
New Project: wxWidgets based cross-platform GUI for Open Source databases
===

===
Motivation
===

I have recently shifted to US to study for MS (and hopefully PhD in Univ
of Iowa). I have also shifted to Mac OS X as my primary usage machine
(after lifetime of Windows devotion).

As part of my coursework, I work with MySQL and PostgreSQL
extensively. I searched but couldnt find any GUI which has similar
power like SQLyog by any means. I have tried (and have tried before
also) various GUIs for respective databases but somehow the features
in them are restrictive and are not powerful enough for developers
like me who writes lots of SQL queries and needs to get things done
fast.

I think you should look for inspiration in the EMS suite, which while
windows-only and closed source is a pretty feature packed and cross
(db) platform. You are on very well traveled ground here.

IMO, I think the 'enterprise manager' style tool market is pretty well
saturated for most databases. I also think dropping standard drivers
(jdbc) from your project is a mistake unless you think you can do
better. Also now you are writing two projects. I'm not trying to
discourage you...it's just a lot of work...ask Dave Page :-) This is
coming from someone who implemented a driver of sorts from the ground
up for PostgreSQL, namely ISAM support. Your efforts might be better
spent improving the standard driver you most feel comfortable with.

Another thing is that the current crop of gui admin tools focus on
wizards and dialogs and not so much on classic code management. What
I personally would really want to see is a souped up text editor with
very smart code completion tools (auto completing tables, columns,
etc) sort of like ctags but optimized for sql. I would avoid emphasis
of dialog based sql property editing which I consider orthogonal to
good sql development practices.

If these comments seem a bit generic, take a good look at Source
Insight (windows only, sigh) as a tool more geared towards code
management. It's really quite amazing.

merlin

#14Harald Armin Massa
haraldarminmassa@gmail.com
In reply to: Merlin Moncure (#13)
Re: Development of cross-platform GUI for Open Source DBs

Ritesh,

what you are trying to do sound very similiar to dabo:

http://dabodev.com/

Maybe have a look at it first?

best wishes

Harald

--
GHUM Harald Massa
persuadere et programmare
Harald Armin Massa
Reinsburgstraße 202b
70197 Stuttgart
0173/9409607
-
Python: the only language with more web frameworks than keywords.

#15Ritesh Nadhani
rn.mailing@gmail.com
In reply to: Harald Armin Massa (#14)
Re: Development of cross-platform GUI for Open Source DBs

Hello Herald

Somebody mailed me earlier also regarding dabodev but its not what I
am talking about.

I took a look at dabo and it definitely serves one part of application
that I have in mind but more specifically I was thinking of starting
with a admin/developer tool like TOAD, MS Query Analyzer, MySQL GUI
tools rather then those form building but yes, in the long run - it
will be part of the tool or in form of another specific tool. Maybe we
can just integrate it with our tool line up later on.

All others, I will reply to you in could of days. I have two
assignments due in next 2 days so things are little crazy. Will reply
to each and every point.

Show quoted text

On 11/27/06, Harald Armin Massa <haraldarminmassa@gmail.com> wrote:

Ritesh,

what you are trying to do sound very similiar to dabo:

http://dabodev.com/

Maybe have a look at it first?

best wishes

Harald

--
GHUM Harald Massa
persuadere et programmare
Harald Armin Massa
Reinsburgstraße 202b
70197 Stuttgart
0173/9409607
-
Python: the only language with more web frameworks than keywords.

#16Tony Caduto
tony_caduto@amsoftwaredesign.com
In reply to: Merlin Moncure (#13)
Re: Development of cross-platform GUI for Open Source DBs

Merlin Moncure wrote:

I think you should look for inspiration in the EMS suite, which while
windows-only and closed source is a pretty feature packed and cross
(db) platform. You are on very well traveled ground here.

Not to mention Lightning Admin for Postgresql and MySQL:-)

(http://www.amsoftwaredesign.com)

Which does run great with WINE, so while not native cross platform it
does run well any where newer versions of
WINE do.

The EMS stuff is nice, but I found them to be to a little bloated and
cumbersome to work with during my research of competing products.

One could also use Mono 1.2 and any .net 1.1 IDE such as Borland Turbo
C# or Delphi.net (with npgsql .net data provider) both of which you can
get for free here:
http://www.turboexplorer.com
or SharpDevelop which you can get here: http://www.icsharpcode.com

You can take the exes these IDEs create and simply run them as is on
Linux or where ever Mono 1.2 does.
It really does work well. Much nicer than Java. You do have to stick to
fully managed code when you develop your apps on win32 as any win32 API
pinvoke commands will not work in Mono.

Currently there is no IDE available on Linux or other Unix systems that
has the productivity of the tools mentioned above. (except for the
unfortunate Kylix IDE)

Sure you could use Wxwidgets with Python or whatever, but you
development time is going to be more than twice as long as compared to a
application built
with Delphi. The closest to Delphi in a cross platform system is
NetBeans and even with their form designer it's still tedious working
with databases compared to
Delphi. If you want to speak to the Oracle, you have to go to Delphi :-)

I have also tried MonoDevelop, but it has a way to go before being
really useful.

--
Tony Caduto
AM Software Design
http://www.amsoftwaredesign.com
Home of PG Lightning Admin for Postgresql
Your best bet for Postgresql Administration

#17Thomas Kellerer
spam_eater@gmx.net
In reply to: Tony Caduto (#16)
Re: Development of cross-platform GUI for Open Source DBs

On 27.11.2006 17:36 Tony Caduto wrote:

The closest to Delphi in a cross platform system is
NetBeans and even with their form designer it's still tedious working
with databases compared to Delphi.

What about Lazarus? It claims to be cross-platform, but I don't know how
it compares with regards to the data-aware controls.

Thomas

#18Olexandr Melnyk
omelnyk@gmail.com
In reply to: Tony Caduto (#16)
Re: Development of cross-platform GUI for Open Source DBs

2006/11/27, Tony Caduto <tony_caduto@amsoftwaredesign.com>:

One could also use Mono 1.2 and any .net 1.1 IDE such as Borland
Turbo C# or Delphi.net (with npgsql .net data provider) both of which
you can get for free here:
http://www.turboexplorer.com
or SharpDevelop which you can get here: http://www.icsharpcode.com

Mono/.NET is definately worth the consideration. However, I'd advice you not
to go with Turbo C#, as it only supports .NET 1.*, so you won't be able to
use such goodies as: generics and nullable types, which are quite handy,
especially for the database-oriented applications.

But I'm not sure about .NET 2.0 support of the full-featured Delphi.NET.

Sure you could use Wxwidgets with Python or whatever, but you
development time is going to be more than twice as long as compared to > a

application built with Delphi.

I have also tried MonoDevelop, but it has a way to go before being
really useful.

Initial development phase is really short with Delphi/VCL, I agree. But when
project evolves, many problems appear, which show how odd VCL is in this or
that place. The same, but to a lesser extent, applies to Windows.Forms.

I suggest going with some mature GUI platform, such as Gtk. It has bindings
for .NET and is included in standard Mono download. With it you will get all
benefits of layout-based GUI toolkit, like: you won't have to write extra
code for rendering forms correctly when they are internationalised.

So my advice goes towards Mono/Gtk#. There is a bunch of programming
languages for Mono/.NET to choose from, so choosing one of them mostly
depends on your taste.

---------------------------------
Olexandr Melnyk,
http://omelnyk.net/

#19Tony Caduto
tony_caduto@amsoftwaredesign.com
In reply to: Thomas Kellerer (#17)
Re: Development of cross-platform GUI for Open Source DBs

Thomas Kellerer wrote:

On 27.11.2006 17:36 Tony Caduto wrote:

The closest to Delphi in a cross platform system is NetBeans and even
with their form designer it's still tedious working with databases
compared to Delphi.

What about Lazarus? It claims to be cross-platform, but I don't know
how it compares with regards to the data-aware controls.

Thomas

---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings

Yes,
Lazarus is not bad and very very similar to Delphi. It does have issues
though.
It could be a good choice if you don't mind working around it's bugs. It
is getting better all the time.

--
Tony Caduto
AM Software Design
http://www.amsoftwaredesign.com
Home of PG Lightning Admin for Postgresql
Your best bet for Postgresql Administration

#20Tony Caduto
tony_caduto@amsoftwaredesign.com
In reply to: Olexandr Melnyk (#18)
Re: Development of cross-platform GUI for Open Source DBs

Olexandr Melnyk wrote:

Mono/.NET is definately worth the consideration. However, I'd advice
you not to go with Turbo C#, as it only supports .NET 1.*, so you
won't be able to use such goodies as: generics and nullable types,
which are quite handy, especially for the database-oriented applications.

Initial development phase is really short with Delphi/VCL, I agree.
But when project evolves, many problems appear, which show how odd VCL
is in this or that place. The same, but to a lesser extent, applies to
Windows.Forms.

Mono 1.2 only fully supports .net 1.1 (for winforms) so the Turbo C#
would be a good choice as would Delphi.net.
You would have to stick to the standard winforms controls, but you can
create a very rich application with just the stock controls.

What kind of problems have you seen with the VCL as a project matures?
I have never run into any issues and have several mature/large projects.

Later,

--
Tony Caduto
AM Software Design
http://www.amsoftwaredesign.com
Home of PG Lightning Admin for Postgresql
Your best bet for Postgresql Administration

#21Andrus
eetasoft@online.ee
In reply to: Ritesh Nadhani (#1)
#22Olexandr Melnyk
omelnyk@gmail.com
In reply to: Tony Caduto (#20)
#23Tomi NA
hefest@gmail.com
In reply to: Andrus (#21)
#24Joshua D. Drake
jd@commandprompt.com
In reply to: Andrus (#21)
#25Joshua D. Drake
jd@commandprompt.com
In reply to: Tomi NA (#23)
#26John DeSoi
desoi@pgedit.com
In reply to: Andrus (#21)
#27Merlin Moncure
mmoncure@gmail.com
In reply to: Olexandr Melnyk (#22)
#28Joshua D. Drake
jd@commandprompt.com
In reply to: John DeSoi (#26)
#29Rich Shepard
rshepard@appl-ecosys.com
In reply to: Merlin Moncure (#27)
#30Tony Caduto
tony_caduto@amsoftwaredesign.com
In reply to: John DeSoi (#26)
#31Rich Shepard
rshepard@appl-ecosys.com
In reply to: Tony Caduto (#30)
#32Thomas Kellerer
spam_eater@gmx.net
In reply to: Andrus (#21)
#33Tony Caduto
tony_caduto@amsoftwaredesign.com
In reply to: Rich Shepard (#31)
#34Tony Caduto
tony_caduto@amsoftwaredesign.com
In reply to: Thomas Kellerer (#32)
#35Merlin Moncure
mmoncure@gmail.com
In reply to: Tony Caduto (#34)
#36John DeSoi
desoi@pgedit.com
In reply to: Tony Caduto (#30)
#37Ritesh Nadhani
rn.mailing@gmail.com
In reply to: Rich Shepard (#29)
#38Ritesh Nadhani
rn.mailing@gmail.com
In reply to: Ritesh Nadhani (#37)
#39Ritesh Nadhani
rn.mailing@gmail.com
In reply to: John DeSoi (#36)
#40John DeSoi
desoi@pgedit.com
In reply to: Ritesh Nadhani (#39)
#41Marcus Engene
mengpg@engene.se
In reply to: John DeSoi (#36)
#42John McCawley
nospam@hardgeus.com
In reply to: Ritesh Nadhani (#38)
#43Joshua D. Drake
jd@commandprompt.com
In reply to: Marcus Engene (#41)
#44Tony Caduto
tony_caduto@amsoftwaredesign.com
In reply to: Joshua D. Drake (#43)
#45Ritesh Nadhani
rn.mailing@gmail.com
In reply to: John McCawley (#42)
#46Joshua D. Drake
jd@commandprompt.com
In reply to: Tony Caduto (#44)
#47John McCawley
nospam@hardgeus.com
In reply to: Ritesh Nadhani (#45)
#48Joshua D. Drake
jd@commandprompt.com
In reply to: John McCawley (#47)
#49Richard Troy
rtroy@ScienceTools.com
In reply to: Ritesh Nadhani (#45)
#50Tomi NA
hefest@gmail.com
In reply to: Joshua D. Drake (#46)
#51Joshua D. Drake
jd@commandprompt.com
In reply to: Tomi NA (#50)
#52Ritesh Nadhani
rn.mailing@gmail.com
In reply to: Joshua D. Drake (#48)
#53Tony Caduto
tony_caduto@amsoftwaredesign.com
In reply to: Ritesh Nadhani (#52)
#54Tomi NA
hefest@gmail.com
In reply to: Joshua D. Drake (#51)
#55Joshua D. Drake
jd@commandprompt.com
In reply to: Tony Caduto (#53)
#56Ritesh Nadhani
rn.mailing@gmail.com
In reply to: Joshua D. Drake (#55)
#57Thomas Kellerer
spam_eater@gmx.net
In reply to: Joshua D. Drake (#46)
#58Guy Rouillier
guyr@masergy.com
In reply to: John DeSoi (#26)
#59Tomi NA
hefest@gmail.com
In reply to: Guy Rouillier (#58)
#60Tony Caduto
tony_caduto@amsoftwaredesign.com
In reply to: Ritesh Nadhani (#37)
#61Tony Caduto
tony_caduto@amsoftwaredesign.com
In reply to: Ritesh Nadhani (#37)
#62Joshua D. Drake
jd@commandprompt.com
In reply to: Tony Caduto (#61)
#63John McCawley
nospam@hardgeus.com
In reply to: Tony Caduto (#61)
#64Merlin Moncure
mmoncure@gmail.com
In reply to: John McCawley (#63)