473,385 Members | 1,347 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,385 software developers and data experts.

PyHtmlGUI Project is looking for developers

Hi all,

the PyHtmlGUI Project (http://www.sourceforge.net/projects/pyhtmlgui)
is looking for developers that want to join.

The aim of the project is to create a web application framework. The
API of PyHtmlGUI wants to be close to Trolltechs famous Qt API but
incooperates the idea of a text based renderengine instead of the pixel
based one. The obviouse target is html/css but through xml rendering
process nearly every textual output could be generated.

So far we finished a proof-of-concept prototype that is available via
CVS from sourceforge. Now we would like to extend this prototype to a
full useable framework. But therefore we would like to have more
developer involved. On the one hand because of time issues on the other
hand to get new ideas and comments for the project.

What skills you should have to join ?

Well, you should at least be able to program in python ;).

But of course a very big plus is knowledge about Qt because the basic
idea is to transfer Qt's API to PyHtmlGUI. But it is not necessary that
you are a Qt guru. And if you don't have the slightest idea what Qt is
you could still help us with bugfixing and unittesting.

The bottom line is that we are looking for people that can help us to
create a great web application framework.

How can you join ?

Just write me a email.
Greetings,
Ingo

Dec 26 '05 #1
19 1927
ph***********@gmx.de enlightened us with:
The aim of the project is to create a web application framework. The
API of PyHtmlGUI wants to be close to Trolltechs famous Qt API but
incooperates the idea of a text based renderengine instead of the
pixel based one. The obviouse target is html/css but through xml
rendering process nearly every textual output could be generated.
Why is your project better than simply embedding a KHTML control in a
GUI?
Just write me a email.


Just check this group for replies.

Sybren
--
The problem with the world is stupidity. Not saying there should be a
capital punishment for stupidity, but why don't we just take the
safety labels off of everything and let the problem solve itself?
Frank Zappa
Dec 26 '05 #2
Because embedding KHTML means that you have a GUI application that runs
on a special operation system.

But what we propose is that you can write a web application in the same
way like your GUI application and it appears like a "normal" GUI. Web
application means in these case that you have a application that has a
browser as a frontend client. The idea itself is a little bit like XUL
for mozilla. But there you are dependent to the mozilla browser.

Our main goal is plattform independence. Because our user are using os
x, linux and windows side by side and therefore we needed a os
independent system. As we started Qt was not around as open source for
windows.

Now you could ask why we didn't choose something like LAMP. The answer
is quite simple, we didn't want to fiddle around with html and some
embedded stuff or even worse with cgi scripts. So the result is a kind
of a abstraction layer that handles the normal web stuff but can be
programmed like a gui.

As a result the application programmer doesn't have to bother if it is
a web application delivered through a webserver or if it is a gui
application delivered through X11 or other pixel painting engines.

Dec 27 '05 #3
A good idea... but I would prefer it being abstracted from Zope...
Dec 27 '05 #4
Hi Sybren,

the idea of pyhtmlgui is that you can develop a web application the
same way like a standard gui application. So what you get is a widget
tree (buttons, forms, title bars, etc.) on the server side and a gui on
the client side. The server in our case would be something like Apache
or Zope webserver (in fact at the moment we only support Zope, but we
want to extend it to Apache as well). The client is a browser. So the
whole application is design as a thin-client-fat-server architecture.

KHTML is just a rendering engine like IE or gecko that renders incoming
html/css pages. That means that you need a plattform dependened program
where you embedd KHTML control. But than you are limited to a plattform
and you will have trouble to port the program to other systems. And the
biggest point is that the program is executed on the clients machine
whereas in our case the program is executed on the server and only the
htmlgui is delivered to the client.

Our dream is that established web applications like phpmyadmin or
squirrelmail will get a interface that can be recognized between
different applications. Through this approach you can expect that the
behaviour will be the same. That was pretty much the same idea behind
KDE or even more evil Windows.

So far every web application project used its own interface because
there is no common framework. What we see now is a growing development
of content managment systems. But these frameworks are limited to the
task of content managment. We propose a more general view of web
applications.
I hope that answers your question.

Greetings,
Ingo

Dec 27 '05 #5
Hi Marco,

that is one of our goals. But so far we didn't had the time to do it.

PyHtmlGUI is already complete independent from Zope but it still needs
some kind of request handling (another small script). One of our next
steps will be to create a abstraction of the request handling to be
independent of the web server.

Ingo

Dec 27 '05 #6
ph***********@gmx.de enlightened us with:
the idea of pyhtmlgui is that you can develop a web application the
same way like a standard gui application. So what you get is a
widget tree (buttons, forms, title bars, etc.) on the server side
and a gui on the client side.


Ah, okay - it's the other way around than what I thought ;-)

I would love to be able to create an app using a real GUI toolkit, and
then transparently be able to create it online.

Sybren
--
The problem with the world is stupidity. Not saying there should be a
capital punishment for stupidity, but why don't we just take the
safety labels off of everything and let the problem solve itself?
Frank Zappa
Dec 27 '05 #7
ph***********@gmx.de writes:
the PyHtmlGUI Project (http://www.sourceforge.net/projects/pyhtmlgui)
is looking for developers that want to join.

The aim of the project is to create a web application framework. The
API of PyHtmlGUI wants to be close to Trolltechs famous Qt API but
incooperates the idea of a text based renderengine instead of the pixel
based one. The obviouse target is html/css but through xml rendering
process nearly every textual output could be generated.

So far we finished a proof-of-concept prototype that is available via
CVS from sourceforge. Now we would like to extend this prototype to a

[...]

This is great news.

I hope you manage to keep it pragmatic enough that people can always
be confident of getting their work done, but without losing the
benefits of abstraction.

I wonder how you're dealing with client-side code (ie. JavaScript)?
Have you looked at crackajax or PyPy?
John

Dec 28 '05 #8
Hi John,
I wonder how you're dealing with client-side code (ie. JavaScript)?
At the moment we don't work with javascript. But it should not be to
hard to create a JavaScript Renderer similar to the css one we already
have.
Have you looked at crackajax or PyPy?


Not really close so far. On of our aims is the avoidance of scripting
languages on the client side. But it could be that these will change a
bit in the future. Some of the parameter checking functionality could
be done on the client side. So i guess we will have a closer look.

Greetings,
Ingo

Jan 2 '06 #9
ph***********@gmx.de enlightened us with:
At the moment we don't work with javascript. But it should not be to
hard to create a JavaScript Renderer similar to the css one we already
have.


Isn't CSS for rendering, and JavaScript for client-side scripting?

Sybren
--
The problem with the world is stupidity. Not saying there should be a
capital punishment for stupidity, but why don't we just take the
safety labels off of everything and let the problem solve itself?
Frank Zappa
Jan 2 '06 #10
Sybren Stuvel <sy*******@YOURthirdtower.com.imagination> writes:
ph***********@gmx.de enlightened us with:
At the moment we don't work with javascript. But it should not be to
hard to create a JavaScript Renderer similar to the css one we already
have.


Isn't CSS for rendering, and JavaScript for client-side scripting?


I guess this is 'rendering' in a more general/abstract sense than
'graphical rendering'.
John
Jan 2 '06 #11

John J. Lee schrieb:
Sybren Stuvel <sy*******@YOURthirdtower.com.imagination> writes:
ph***********@gmx.de enlightened us with:
At the moment we don't work with javascript. But it should not be to
hard to create a JavaScript Renderer similar to the css one we already
have.


Isn't CSS for rendering, and JavaScript for client-side scripting?


I guess this is 'rendering' in a more general/abstract sense than
'graphical rendering'.
John


Exactly. In these case rendering means that you traverse a tree with
widget objects and every is "rendered" to a text representation of
itself. So if you traverse the object tree in the right order you will
get a complet text representation of such a object tree.

If you familiar with GUI programming then you can compare it to the
graphical rendering where you get a pixel representation of your form
elements (again a tree of widget objects).

Bottom line, PyHtmlGUI generates on the fly one or more text
representations from a object tree (e.g. Html, CSS, XML and maybe also
JavaScript).

Ingo

Jan 3 '06 #12
ph***********@gmx.de wrote:
John J. Lee schrieb:

I guess this is 'rendering' in a more general/abstract sense than
'graphical rendering'.
Exactly. In these case rendering means that you traverse a tree with
widget objects and every is "rendered" to a text representation of
itself. So if you traverse the object tree in the right order you will
get a complet text representation of such a object tree.

From my experimentation with PyQt so far, it would appear that Qt

Designer provides such a representation that various tools and the
QWidgetFactory can then employ to recreate widgets in the Qt
environment. Of course, it's entirely possible to take the Qt Designer
..ui file and generate an alternative representation instead, and in my
XSLTools distribution [1] you'll find an XSL stylesheet which does
this, along with various as-yet-undocumented modules and programs which
provide a Web front-end to somewhat restricted PyQt form-based
programs.

The big challenge is reconciling event-based frameworks, where you get
to handle events individually and to change the user interface at any
time, with Web-based environments, where you could potentially receive
a batch of updates occurring and where you only get one chance to
update the user interface, all within the same framework. Of course,
many would advocate using "AJAX" techniques and dropping support for
conventional Web interactions, but I think that such advocacy and the
resulting applications threaten the usability of the Web for fairly
large groups of people.

Paul

[1] http://www.python.org/pypi/XSLTools

Jan 4 '06 #13
This is a *great* idea. Shame you've chosen Qt as your GUI API though.
;-)

All the best,

Fuzzyman
http://www.voidspace.org.uk/python/index.shtml

Jan 5 '06 #14
"Paul Boddie" <pa**@boddie.org.uk> writes:
[...]
many would advocate using "AJAX" techniques and dropping support for
conventional Web interactions, but I think that such advocacy and the
resulting applications threaten the usability of the Web for fairly
large groups of people.


That may well be true in practice, but I don't see any intrinsic
reason for it. Do you {,care}?
John
Jan 8 '06 #15
John J. Lee wrote:
"Paul Boddie" <pa**@boddie.org.uk> writes:
[...]
many would advocate using "AJAX" techniques and dropping support for
conventional Web interactions, but I think that such advocacy and the
resulting applications threaten the usability of the Web for fairly
large groups of people.


That may well be true in practice, but I don't see any intrinsic
reason for it. Do you {,care}?


As I've probably said before, it's tempting for some people to demand
JavaScript for their Web applications whilst claiming that JavaScript
implementations are ready for serious use. Yet, aside from some of the
more hyped toolkits managing either to crash my
not-particularly-incapable browser or failing to do anything visible,
there's still a lot to be said for simple, "old school" Web
interactions. Would I prefer a silky drag-and-drop experience on an
Internet banking site, or would I rather be presented with the
pertinent facts for a transaction with some buttons on the page to
either confirm or cancel my actions? The latter approach quite probably
reduces the "what's going on now?" factor amongst large sections of
society familiar (but not intimately so) with computers - ie. more than
95% of users, I'd imagine. In attempting to replicate some dubious user
interface metaphor from their Mac, I imagine that most of the more
vocal "AJAX" advocates forget this.

Paul

Jan 9 '06 #16
John J. Lee wrote:
"Paul Boddie" <pa**@boddie.org.uk> writes:
[...]
many would advocate using "AJAX" techniques and dropping support for
conventional Web interactions, but I think that such advocacy and the
resulting applications threaten the usability of the Web for fairly
large groups of people.


That may well be true in practice, but I don't see any intrinsic
reason for it. Do you {,care}?


As I've probably said before, it's tempting for some people to demand
JavaScript for their Web applications whilst claiming that JavaScript
implementations are ready for serious use. Yet, aside from some of the
more hyped toolkits managing either to crash my
not-particularly-incapable browser or failing to do anything visible,
there's still a lot to be said for simple, "old school" Web
interactions. Would I prefer a silky drag-and-drop experience on an
Internet banking site, or would I rather be presented with the
pertinent facts for a transaction with some buttons on the page to
either confirm or cancel my actions? The latter approach quite probably
reduces the "what's going on now?" factor amongst large sections of
society familiar (but not intimately so) with computers - ie. more than
95% of users, I'd imagine. In attempting to replicate some dubious user
interface metaphor from their Mac, I imagine that most of the more
vocal "AJAX" advocates forget this.

Paul

Jan 9 '06 #17
Good Morning everybody.

Maybe it didn't get clear in the previous discussion: We didn't choose
Qt as GUI API, we build an own GUI which is able to produce XML and
html output, but whose structure is close to Qt. We even built a basic
factory which produces PyHtmlGUI widgets from a Qt Designer .ui file,
but it is still in development.
The GUI is used by another project (a data management framework for
Zope) which hasn't been anounced yet, but could generally be used for
any python based webapplication (it enfolds its full capacity when it
comes to forms, dialogs and wizards).
The lack of client-side functionality (Javascript etc.) didn't cause
any urgent problems, so we decided to postpone that, but since there
are almost no constraints on widget customization, it is even now
possible to build in javascript while building a layout, we just didn't
try.
The main goal of the project is to have a real GUI creating html and
thus to avoid something like dtml, jsp or php etc., where you have to
fiddle code into html. It's the other way around and since the css
update it is even looking nice ;)

Have a nice day,

Peter

Jan 19 '06 #18

Veri wrote:
Good Morning everybody.

Maybe it didn't get clear in the previous discussion: We didn't choose
Qt as GUI API, we build an own GUI which is able to produce XML and
html output, but whose structure is close to Qt. We even built a basic
factory which produces PyHtmlGUI widgets from a Qt Designer .ui file,
but it is still in development.
The GUI is used by another project (a data management framework for
Zope) which hasn't been anounced yet, but could generally be used for
any python based webapplication (it enfolds its full capacity when it
comes to forms, dialogs and wizards).
The lack of client-side functionality (Javascript etc.) didn't cause
any urgent problems, so we decided to postpone that, but since there
are almost no constraints on widget customization, it is even now
possible to build in javascript while building a layout, we just didn't
try.
The main goal of the project is to have a real GUI creating html and
thus to avoid something like dtml, jsp or php etc., where you have to
fiddle code into html. It's the other way around and since the css
update it is even looking nice ;)

So you'e creating a Python API to a GUI, which generates HTML
interfaces with appropriate callbacks to the relevant widgets. This API
*resembles* the Qt API.

What would be nice is a compatibility layer which means that the same
application could be created for the Web or the desktop, just using the
appropriate GUI toolkit (web or desktop). This wasa what I thought you
were doing. With appropriate AJAX type calls it's not unfeasible.

All the best,

Fuzzyman
http://www.voidspace.org.uk/python/index.shtml

Have a nice day,

Peter


Jan 19 '06 #19

Fuzzyman wrote:

So you'e creating a Python API to a GUI, which generates HTML
interfaces with appropriate callbacks to the relevant widgets. This API
*resembles* the Qt API.
Exactly.
What would be nice is a compatibility layer which means that the same
application could be created for the Web or the desktop, just using the
appropriate GUI toolkit (web or desktop). This wasa what I thought you
were doing. With appropriate AJAX type calls it's not unfeasible.
The mentioned compatibility layer are the Renderer and a
RequestHandler. Instead of rendering html it would be possible to
render pixelbased widgets, the renderer could use any other
python-GUI-API to produce the layouts. But I don't really see why this
could be neccessary at the moment. Whatever works for the web can be
used via browser on the desktop as well. But it could be great to have
it the other way around. Imagine some Qt-based desktop application
being accessible via browser.

Peter

All the best,

Fuzzyman
http://www.voidspace.org.uk/python/index.shtml


Jan 19 '06 #20

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

44
by: Will Stuyvesant | last post by:
Suppose you have the time and the money to start a new project in Python. What would you like to do? I can think of: - A civilization like game in Python, with multiplayer support via...
51
by: nospam | last post by:
THIS IS the DOTNETJUNKIES MESSAGE ------------------------- We're Sorry As many of you know we have recently launched SqlJunkies.com. We have overhauled our runtime and will be using it on...
5
by: David Webb | last post by:
The problem started when the Working Folder for a project was somehow set to the folder of another project. I set the correct working folder in VSS and deleted the .vbproj files that had been...
23
by: Steve Jorgensen | last post by:
Hi all, I'm working on a project through a consulting company, and I'm writing some database code for use in another programmer's project in Excel/VBA. The other programmer is working through...
5
by: Piotrek Stachowicz | last post by:
Hi, Sorry, it's gonna be a bit off-topic but I'm looking for experienced ..NET (c#) developers and I guess there're quite many here. I'm looking for a topic for my final year project (B.sc). It...
4
by: Josh Golden | last post by:
i lead a small development team (based on some of my posts that might cause some people to choke themselves, but have no fear, i am NOT the lead developer, the people on my team are great - i'm...
3
by: ChrisB | last post by:
Hello: I am in involved in the creation of a .NET application and was wondering if there are any "rules of thumb" in terms of the percentage of time typically required for each step in the...
3
by: Adem | last post by:
Projects looking for Developer Help Wanted - 174 Developer - 9 Project Manager - 1 Unix Admin - 47 Doc Writer - 29 Tester - 4 Support Manager - 27 Graphic/Other Designer
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.