Richard Jones' Log: Bruce the Presentation Tool 2.0 (beta)
I've released Bruce 2.0 beta 1, yay.
On the project site you can see some screenshots and sample presentation source that was used to generate the screenshots. One of the goals of Bruce is to make it really easy to knock up a quick presentation in a plain-text format. The most basic presentation consists of:
--- text =This is a title This is a new line --- text =Another page, another title .You can have bullet points .If you must ..Even nested ones ...And nestedier ones .I call this BrucePoint --- video foot_stomp.mpg --- py sound=spanish_inquisition.ogg # generates an interactive Python session (with intro sound) --- image kitten.jpg # displays a kitten (and this is a comment)
Note that the above BrucePoint style stuff relies on some post-beta1 changes only in SVN.
Because it's using pyglet it's got some really nice features I've already implemented like the video and audio stuff. Also the screen control is nice too -- have it display the presentation on one screen (projector) and in the other screen (laptop) have the presentation source being displayed (along with your notes embedded in the source). It can display pages of HTML (though it's a little slow), and will be able to display pages of ReStructuredText soon. Hell, if you're on a Mac it can also display PDFs :)
It also generates some nice HTML running notes (which include the "#" comments for reference) which print up quite nicely.
I'm still working on it, and there's some bugs but nothing show-stopping. Still to do transitions, but they're not high on the priority list.
I tried it on python 2.4.4 on gentoo; no dice. I have pyglet 1.1alpha1 installed in a virtualenv, and I have openal 0.0.8-r2 installed on the system, but every time I run setup.py I get:
$ python setup.py installopen /dev/[sound/]dsp: No such file or directory open /dev/[sound/]dsp: No such file or directory Traceback (most recent call last): File "setup.py", line 8, in ? from bruce import __version__ File "/home/pw/brucetest/bruce-2.0beta1/bruce/__init__.py", line 9, in ? from bruce import parser File "/home/pw/brucetest/bruce-2.0beta1/bruce/parser.py", line 75, in ? from bruce.video import VideoPage File "/home/pw/brucetest/bruce-2.0beta1/bruce/video.py", line 7, in ? from pyglet import media File "build/bdist.linux-x86_64/egg/pyglet/media/__init__.py", line 1303, in ? File "build/bdist.linux-x86_64/egg/pyglet/media/drivers/openal/__init__.py", line 332, in driver_init Exception: No OpenAL device.Any idea what that's about? Also, the project page seems to be really flaky right now.
After googling a bit, apparently the gentoo build for openal doesn't create a necessary config file ... http://forums.gentoo.org/viewtopic-t-632339-highlight-openal+test.html
but now that that's sorted, Bruce apparently depends on python 2.5 ... which is fine, but should probably be explicitly documented somewhere:
$ python setup.py install
Traceback (most recent call last):
File "setup.py", line 8, in ?
from bruce import __version__
File "/home/pw/brucetest/bruce-2.0beta1/bruce/__init__.py", line 9, in ?
from bruce import parser
File "/home/pw/brucetest/bruce-2.0beta1/bruce/parser.py", line 78, in ?
from bruce.python_interpreter import PythonInterpreterPage
File "/home/pw/brucetest/bruce-2.0beta1/bruce/python_interpreter.py", line 1
from __future__ import absolute_import
SyntaxError: future feature absolute_import is not defined
Catherine: that's great, I hope you like the new version as much as (hopefully better than) the old Bruce!
slinkp: I've added some requirements info to the project page, thanks. Too bad the project page is having trouble responding...
Hi, the website and SVN seem to be down.
Ah, that's because it lives over here now:
http://code.google.com/p/bruce-tpt/
http://pypi.python.org/pypi/bruce
The above links should be copied and pasted: they appear to be merged somehow when you try to click them, and so are horribly broken. PyPi downloads are failing somehow, the above-advertised SVN repository isn't working and the latest links (over six months old) were broken when posted. I sense this project needs some love ... Try these for the project management page and the PyPi home page - they seem to work.
Please also note that the download link on http://pypi.python.org/pypi/bruce is borked, and should be this instead. Has anyone actually installed this package? As a Windoze user (fortunately with Cygwin available), should I just give up now?
OK, the cocos download link is similarly broken. If downloading and installing the correct one doesn't get me there I am regarding this project as dead of bitrot.
Well, I've seen video and heard sound, and many of the tests work, so Bruce is starting to live up to my expectations. Sadly I am getting a traceback from test_interpreter.py:
Traceback (most recent call last): File ".\scripts\bruce", line 5, in bruce.main() File "C:\Python25\lib\site-packages\bruce\__init__.py", line 121, in main pres.start_presentation() File "C:\Python25\lib\site-packages\bruce\presentation.py", line 33, in start_presentation director.run(self.page) File "c:\python25\lib\site-packages\cocos2d-0.3.0-py2.5.egg\cocos\director.py", line 287, in run event_loop.run() File "build/bdist.linux-x86_64/egg/pyglet/app/win32.py", line 47, in run File "build/bdist.linux-x86_64 /egg/pyglet/app/__init__.py", line 153, in _setup File "build/bdist.linux-x86_64/egg/pyglet/window/win32/__init__.py", line 842, in dispatch_pending_events File "build/bdist.linux-x86_64/egg/pyglet/window/win32/__init__.py", line 1120, in _event_size File "build/bdist.linux-x86_64/egg/pyglet/window/win32/__init__.py", line 1073, in _immediate_redraw File "build/bdist.linux-x86_64/egg/pyglet/window/__init__.py", line 1217, in dispatch_event File "build/bdist.linux-x86_64/egg/pyglet/event.py", line 340, in dispatch_event File "c:\python25\lib\site-packages\cocos2d-0.3.0-py2.5.egg\cocos\director.py", line 303, in on_draw self.scene.visit() File "c:\python25\lib\site-packages\cocos2d-0.3.0-py2.5.egg\cocos\cocosnode.py", line 577, in visit c.visit() File "c:\python25\lib\site-packages\cocos2d-0.3.0-py2.5.egg\cocos\cocosnode.py", line 570, in visit self.draw() File "C:\Python25\lib\site-packages\bruce\page.py", line 165, in draw self.batch.draw() File "build/bdist.linux-x86_64/egg/pyglet/graphics/__init__.py", line 538, in draw File "C:\Python25\lib\site-packages\bruce\interpreter.py", line 59, in set_state glScissor(parent_x + self._scissor_x - 1, AttributeError: 'MyScrollableTextLayoutGroup' object has no attribute '_scissor_ x'Windows Vista, Python 2.5.2
That's great! I've used Bruce in several presentations, and the new version should be even better. For the sake of anybody else who has trouble like I did figuring out the command for checking out a copy, it's svn co http://svn.bruce.python-hosting.com bruce