pyZui - anyone know about this?

D

Donn

Hi,
I happened upon this youtube link:
It fairly blew my socks off. In it a fellow by the name of David Roberts demos
a zui written in Python. Aside from the zooming (which is impressive enough)
it show embedding of images, pdf files, web pages and text.

He says nothing about what toolkits were used or how it might have been done.
It's Linux-based, but no other info. On some googling, I can only find a few
bug reports on pypi related to pyQt. I would really like to find out how that
ZUI was done, it's simply amazing.

Any clues out there?

\d
 
D

David Boddie

I happened upon this youtube link:
It fairly blew my socks off. In it a fellow by the name of David Roberts
demos a zui written in Python. Aside from the zooming (which is impressive
enough) it show embedding of images, pdf files, web pages and text.

He says nothing about what toolkits were used or how it might have been
done. It's Linux-based, but no other info. On some googling, I can only
find a few bug reports on pypi related to pyQt. I would really like to
find out how that ZUI was done, it's simply amazing.

Any clues out there?

Doesn't the author give his e-mail address at the end of the video?
(Maybe I'm thinking of a different video.)

David
 
D

Donn

Doesn't the author give his e-mail address at the end of the video?
(Maybe I'm thinking of a different video.)
Yes, in a quick and garbled way :) I have yet to try to contact the author or
the youtube poster -- been too busy.

I was hoping someone on the list may recognize what tools he was using, or
have some insight into how they would attack the problem.
I have pondered it from a wxPython pov, that being all I am experienced with
and I would have no chance of recreating that demo. Is it using some kind of
built-in QT/KDE voodoo?

\d
 
R

Rami Chowdhury

Yes, in a quick and garbled way :) I have yet to try to contact the author or
the youtube poster -- been too busy.

I was hoping someone on the list may recognize what tools he was using, or
have some insight into how they would attack the problem.
I have pondered it from a wxPython pov, that being all I am experienced with
and I would have no chance of recreating that demo. Is it using some kind of
built-in QT/KDE voodoo?

Doesn't look like he's using KDE -- the filemanager he's using to
choose images looks rather like Nautilus.

I know KDE 4's Plasma framework has a ZUI and pretty good Python
bindings, but I know very little about them other than that they
exist.
 
D

David Boddie

Yes, in a quick and garbled way :) I have yet to try to contact the author
or the youtube poster -- been too busy.

I managed to catch his address and sent him a message saying that people
were discussing PyZUI in this thread.

David
 
D

Donn

I managed to catch his address and sent him a message saying that people
were discussing PyZUI in this thread.
Oooh. Sits,fidgets and waits. I want my socks back! (OP) :D

\d
 
D

David Roberts

Hi,

Yes, the toolkit used is PyQt. The ZUI is implemented using a simple
QPainter, and employs pyramidal tiling for efficiency (I haven't used
any Qt/KDE voodoo in this regard). I'm using Gnome at the moment, but
it should work just as well on KDE. Web pages are rendered using
QtWebKit, and PDF with the pdftoppm utility.

The project is opensource (GPLv2), but just hasn't been published
yet :) . I'll try to make a release over the next few days, and I'll
post a link here when I do.
 
D

Donn

Yes, the toolkit used is PyQt.
\me makes note to start learning PyQt asap.
and employs pyramidal tiling for efficiency
\me ... time to hit Wikipedia :)
(I haven't used any Qt/KDE voodoo in this regard).
Imho, your code should *become* that voodoo -- from what I saw in that vid
it's unique and has such promise.
QtWebKit, and PDF with the pdftoppm utility.
Ah, thanks.
The project is opensource (GPLv2), but just hasn't been published
yet :) . I'll try to make a release over the next few days, and I'll
post a link here when I do.
Can't wait.

David, thanks for replying here on the list. Well done on your pyZui and I
hope it catches fire in people's imaginations. I think that fire may explain why
my socks are missing! :D

\d
 
D

Donn

You could do some really awesome stuff with that! I love the webpage
example where you zoom in on the exclamation mark and there's a new page.
It is very cool, but I would inject a note of caution here: I'd a hate a zui
to become a case of "hunt-the-zoom." A link is a link. They already work very
well, click and it goes to the page.
I find the notion of minute "hot" areas to be a little obscure -- Quick! Zoom
into the last full-stop, it's a whole word in there!
What I would enjoy is when you click a link - it zooms into the sub-page so
you get a feeling of traversal. Back buttons would zoom out again. Add to that
a kind of birds'-eye view of one's history (like a thumbnails node-graph of
some kind) and it would be perfect!

\d
 
A

alex23

Donn said:
I find the notion of minute "hot" areas to be a little obscure -- Quick! Zoom
into the last full-stop, it's a whole word in there!

This aspect reminds me of the Red Dwarf episode "Back to Reality", in
which Rimmer is criticised for not finding information contained in a
microdot hidden in the dot on the 'i' of his name on a swimming
certificate.

ZUIs are useful for particular types of data - images & mapping
especially - but I'd hate to have to navigate my desktop using its
approach.
 
D

David Roberts

and employs pyramidal tiling for efficiency
\me ... time to hit Wikipedia :)
It involves scaling an image to various resolutions, and partitioning
them into fixed-size tiles. It's roughly the same technique used by
Google Maps/Earth.
It is very cool, but I would inject a note of caution here: I'd a hate a zui
to become a case of "hunt-the-zoom." A link is a link. They already work very
well, click and it goes to the page.
I find the notion of minute "hot" areas to be a little obscure -- Quick! Zoom
into the last full-stop, it's a whole word in there!
What I would enjoy is when you click a link - it zooms into the sub-page so
you get a feeling of traversal. Back buttons would zoom out again. Add to that
a kind of birds'-eye view of one's history (like a thumbnails node-graph of
some kind) and it would be perfect!
Sure, it was just a quick mockup of a potential application. A proper
implementation would probably have more sophisticated features such as
that.
This aspect reminds me of the Red Dwarf episode "Back to Reality", in
which Rimmer is criticised for not finding information contained in a
microdot hidden in the dot on the 'i' of his name on a swimming
certificate.
Haha, true.
ZUIs are useful for particular types of data - images & mapping
especially - but I'd hate to have to navigate my desktop using its
approach.
Obviously there will be some applications that suit more traditional
GUIs better than ZUIs, just like there's plenty of applications more
suited to the command-line than a GUI. After all, things such as the
web and the desktop metaphor came into being long before ZUIs.
 
D

Daniel Fetchinson

PyZUI 0.1 has been released:

Cool, thanks very much!

I'm using python 2.6 these days and noticed that you use the sha
module which makes py2.6 spit out a deprecation warning:

/home/fetchinson/pyzui/pyzui/tilestore.py:22: DeprecationWarning: the
sha module is deprecated; use the hashlib module instead
import sha

It's no big deal but if you want to be future proof maybe you can
switch to hashlib for py2.6 and stay with sha for py2.5 and before (a
try/except block would suffice).

Cheers,
Daniel
 
D

Donn

It involves scaling an image to various resolutions, and partitioning
them into fixed-size tiles. It's roughly the same technique used by
Google Maps/Earth.
Thanks. That gives me something to go on. Wikipedia didn't like my search
terms.
Ever since Corel Draw in the 90's zoomed into my life I have been in love with
the idea of an endless canvas that makes me feel like a satellite on a bungee
cord. I think it would fit the desktop very well.

Personally I see a merging of normal app windows and a zui: some kind of new
window manager.
If I planned it out it would look something like this:
Your apps all run as they do now*, but they live on this endless plain.
Perhaps it can be divided up into 'zones' or 'galaxies' or something. I would
have a 'hyperspace' or 'hyperlink' or 'jump' facility (like alt-tab, I guess)
to make transits from one custom-defined area to another quick.

I would have a home position for the view -- like Inkscape does in terms of
show all, zoom to selected, zoom to last, etc.

I would have rules about traversing. Things like file-managers need some kind
of static display - like the bread crumbs and up, back, home etc.

Each app would only be active when 'locked-in', beyond that it's a bitmap of
the last paint. You could drag apps around when you zoom out, and you can
resize them at any time too.
(Just imagine OOCalc in a zui! Super/Capslock and mouse wheel for scroll/pan)

The other cool idea I had was to (handwavium here) graphically convey the
notion of pipes and import/export between apps. Also between any nodes across
the Universe of the zui. Perhaps a special 'node view' that overlays and shows
all the conduits between them -- sharp where your mouse is, faded away from
that so the whole thing is not too complex.
Imagine the flow from Inkscape to Gimp and back. Instead of File -> Export and
then File -> Import, you connect pipes along the side of each app.
Inkscape, [save selected as png (properties preset)] goes to Gimp [import to
layers by names (a script perhaps)] Now as you work in Inkscape and hit a
hotkey, all your selected vectors are sent to Gimp which reacts as if you were
there and places the new pngs into layers.
This can work both ways and between multiple programs. Mix-in Blender and
Scribus and Lyx and some grep and a loop or two and some imagemagick...

Ah, I better stop. I can ramble on sometimes :)

*I have many issues with the endless variety of re-invented wheels afa gui
toolkits go. This is another whole can of shai-Hulud...

I wrote some stuff about this a while back, if anyone wants to be put to sleep:
http://otherwise.relics.co.za/wiki/Particles/DreamDesignApp/
:)

\d
 
D

David Roberts

/home/fetchinson/pyzui/pyzui/tilestore.py:22: DeprecationWarning: the
sha module is deprecated; use the hashlib module instead
  import sha
Yeah, I'd noticed that. It's fixed in the repository now.
 
D

David Roberts

Personally I see a merging of normal app windows and a zui: some kind of new
window manager.
Have you seen Eagle Mode[1]?

[1] http://eaglemode.sourceforge.net/

them into fixed-size tiles. It's roughly the same technique used by
Google Maps/Earth.

Thanks. That gives me something to go on. Wikipedia didn't like my search
terms.

Ever since Corel Draw in the 90's zoomed into my life I have been in love with
the idea of an endless canvas that makes me feel like a satellite on a bungee
cord. I think it would fit the desktop very well.

Personally I see a merging of normal app windows and a zui: some kind of new
window manager.
If I planned it out it would look something like this:
Your apps all run as they do now*, but they live on this endless plain.
Perhaps it can be divided up into 'zones' or 'galaxies' or something. I would
have a 'hyperspace' or 'hyperlink' or 'jump' facility (like alt-tab, I guess)
to make transits from one custom-defined area to another quick.

I would have a home position for the view -- like Inkscape does in terms of
show all, zoom to selected, zoom to last, etc.

I would have rules about traversing. Things like file-managers need some kind
of static display - like the bread crumbs and up, back, home etc.

Each app would only be active when 'locked-in', beyond that it's a bitmap of
the last paint. You could drag apps around when you zoom out, and you can
resize them at any time too.
(Just imagine OOCalc in a zui! Super/Capslock and mouse wheel for scroll/pan)

The other cool idea I had was to (handwavium here) graphically convey the
notion of pipes and import/export between apps. Also between any nodes across
the Universe of the zui. Perhaps a special 'node view' that overlays and shows
all the conduits between them -- sharp where your mouse is, faded away from
that so the whole thing is not too complex.
Imagine the flow from Inkscape to Gimp and back. Instead of File -> Export and
then File -> Import, you connect pipes along the side of each app.
Inkscape, [save selected as png (properties preset)] goes to Gimp [import to
layers by names (a script perhaps)] Now as you work in Inkscape and hit a
hotkey, all your selected vectors are sent to Gimp which reacts as if you were
there and places the new pngs into layers.
This can work both ways and between multiple programs. Mix-in Blender and
Scribus and Lyx and some grep and a loop or two and some imagemagick...

Ah, I better stop. I can ramble on sometimes :)

*I have many issues with the endless variety of re-invented wheels afa gui
toolkits go. This is another whole can of shai-Hulud...

I wrote some stuff about this a while back, if anyone wants to be put to sleep:http://otherwise.relics.co.za/wiki/Particles/DreamDesignApp/
:)

\d

--
\/\/ave: (e-mail address removed)
home:http://otherwise.relics.co.za/
2D vector animation :https://savannah.nongnu.org/projects/things/
Font manager :https://savannah.nongnu.org/projects/fontypython/
 
D

Donn

Have you seen Eagle Mode[1]?
Yes. It's a strange beast. Good start I think; but addicted to zooming, to the
detriment of the managing aspects I think. Still, here I sit writing no code
and pontificating!

\d
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,905
Latest member
Kristy_Poole

Latest Threads

Top