Posted
over 15 years
ago
by
RedTurtle Technology
Packages for integration of Google Docs services in Plone were released on pypi and on plone.org
|
Posted
over 15 years
ago
by
Ruslan's Blog
|
Posted
over 15 years
ago
by
RedTurtle Technology
A requirement from one of our customer lead us to develop a very tiny Plone add-ons... After all jQuery make all the dirty work!
|
Posted
over 15 years
ago
by
Reinout van Rees' weblog
is a new book for those that want to use Plone in an educational setting. The
author,
works at Penn State University, supporting many educational Plone websites.
So his credentials for writing the book are OK :-)
: well, you want a website for your
... [More]
course or your
university department or your group of teachers. You're able to get your
hands on a webserver where you can install Plone. You want multiple people to
be able to comfortably update the site without getting stuck on a single
webmaster. The book's subtitle rightfully is break the webmaster bottleneck
by empowering instructors and staff. You can set up a reliable, functional
and professional website yourself without needing to pay tens of thousands of
Dollars/Euros/whatever in license fees. You'll need to know about websites in
general and you'll need to be reasonably comfortable installing stuff on your
own PC and, possibly/probably with someone's help, on a webserver.
Non-educational audiences can get benefit from the book, too. A
results-oriented intro on skinning/theming doesn't hurt a small business
website. And the calendaring tips are also useful for a church or sports club
website. You might want to look up the online
: perhaps strange for a technical book, but I'd say it makes you
. It shows you how to accomplish things with Plone. How to
get specific things things done, as the book is laced with screenshots ("this
is what your course page can look like") and direction-giving introductions
("you'll probably need a staff directory, here's what you can accomplish").
The tone is friendly, but with experience-born firmness and personal opinion
in some cases.
is very positive. For a technical book it is
mercifully thin at some 190 pages compared to the customary 300. Yet it is
remarkably complete. You get to set up your site with content, tips on
essential add-on products, skinning/theming basics, web server installation
and setup instructions and basic maintenance (backup/restore) guidelines. All
the basics you really need. If you need more, there are other books.
Veda William's Plone
3 theming book and for
hard-core development
The first chapter shows you how to get most of the information you need to
present for a course done with out-of-the-box Plone. A couple of folders,
events for exam dates, agenda items for homework and assignments, some
overview pages. And practical advice, for instance on enabling comments: they
help invite feedback and increase interaction between students. And with the
proper settings, comment spam is virtually non-existant. The chapter has
effective screenshots that show what you can accomplish and how to do it. The
screenshots are especially handy for Plone's powerful collections ("smart
folders" that effectively show search results) as they can be tricky to
configure. A screenshot helps a lot in explaining the necessary settings.
The second chapter helps you install the first add-on product with reasonably
complete instructions. The add-on helps you show your date and event related
information in prettier ways than is possible with stock Plone. The chapter
has some side comment on security (group/user rights) setup which deserved
a more prominent spot. But where... The book is full of small helpful tips
and information, so perhaps such "oh, by the way" sidebars are ok. Also good:
the author is not afraid of pinpointing Plone pain points: in this case spotty
support for showing recurrences.
A university or school needs a list of faculty/staff. The author and his
colleages wrote a specific add-on for this purpose and documented it fully in
chapter three. A-z listings, per-department views, per-speciality views.
Handy is the documentation on how to best use the various grouping methods
(department, speciality, group) and how to connect the staff in this listing
with their actual login accounts.
But... every university is different and wants extra fields: a fax number, a
building floor, a list of published papers. Plone allows you to extend
existing products in a reasonably clean way and chapter 4 shows you how.
Watch out, though, as the instructions on how to set up a new site to test
your extension misses several steps and uses a program which full installation
instructions are only explained in chapter eight. One of the rare real
omissions in the book.
Chapter five helps you add blog and forum functionality. There are several
add-ons for that. Add-ons mean extra functionality but also extra risk: how
well are they maintained? The author helps you with criteria and gives you
his own recommendation. Most of the time I agree, but I was a bit surprised
at the "PloneBoard" add-on's description of recieving prompt updates all the
time: two or three years ago it was a problem child with a poor maintainance
record as far as I could see at the time. So take a good look at the
Chapter six has one of those attention-grabbing sentences in the introduction
that invite you to really delve into the chapter: "triple your traffic using
the iTunes store". And yes, later on it helps you set up podcasting for your
audio or video lecture notes with Plone and submit the podcast to iTunes.
Which apparently triples the incoming traffic for many educational
institutions. For video, collective.flowplayer is used instead of the
apparently aged plone4artists video add-on. I haven't used
collective.flowplayer, but it sure looks well-integrated. The one
plone4artists video functionality that seems to be missing is that links to
youtube videos aren't automatically detected and shown.
A Plone killer feature is introduced in chapter seven. PloneFormGen is a
fantastic add-on for creating forms without resorting to programming. Almost
all sites I deployed when working as a full-time Plone programmer included
PloneFormGen. The author heaps praise on this add-on and he's right. Good
point for the book: it shows all the available form field types as small
screenshots. That helps when building the forms.
Chapter eight is on theming/skinning/styling your Plone site. Theming is a
bit of a pain point in Plone right now. Plone is halfway the easier, but
sloppier and harder to debug Plone 2 style of skinning and some incredible (I
mean that!) probably-there-in-a-year Plone 5 goodness. And being halfway
means confusion, so this is a difficult chapter for a book author. In my
opinion, the author has done a good job explaining all the necessary
ingredients and the various ways in which you can get your hands on some
necessary adjustments of Plone's default style to your organisation's style.
For the real theming meat, you'll need
Chapter nine made me say "wow". A solid chapter on deploying your site on
the server. Including apache and squid setup and a Plone caching tutorial.
Yes, your site needs to be able to stand up agains a whole flock of students
hitting your site right after class (or five minutes before the final exam).
For educational settings, the tip to look at to integrate with Windows'
IIS server is a good one. One thing that surprised me was to see Squid as a
caching proxy: I thought Varnish was the standard by now. At least, it's been
at least two years since I last touched Squid.
The last chapter, ten, contained a personal pat on the back for me. It
finishes off the book with some maintentance tasks like backups. And for
backups, my is presented as the
"layer of sugary goodness" around Plone's default backup scripts. Yes, that's
one of those small tools that makes life easy and safe. Good chapter for
yourself or your sysadmin.
or [Less]
|
Posted
over 15 years
ago
by
Weekly Zope Development Meeting
|
Posted
over 15 years
ago
by
Weekly Zope Development Meeting
|
Posted
over 15 years
ago
by
Weekly Zope Development Meeting
|
Posted
over 15 years
ago
by
Weblog
.
(The story is the same or similar for Plone and
[buildout]
parts = instance
versions = versions
find-links =
http://dist.plone.org
http://dist.plone.org/thirdparty
eggs =
elementtree
[versions]
plone.recipe.plone = 3.0.6
... [More]
plone.recipe.zope2instance = 3.6
[plone]
recipe = plone.recipe.plone
[zope2]
recipe = plone.recipe.zope2install
fake-zope-eggs = true
url = ${plone:zope2-url}
[instance]
recipe = plone.recipe.zope2instance
zope2-location = ${zope2:location}
user = admin:secret
http-address = 8080
eggs =
${buildout:eggs}
${plone:eggs}
zcml =
products = ${plone:products}
Now you want to add an issue tracker product to this website. Okay,
you add
[buildout]
...
eggs =
elementtree
Products.Poi
Uninstalling instance.
Updating plone.
Updating zope2.
Updating fake eggs
Installing instance.
While:
Installing instance.
Error: There is a version conflict.
We already have: plone.app.layout 1.0.5
but Plone 4.0b1 requires 'plone.app.layout>=1.1.7dev-r23744'.
This is not the result that you hope to get. Seeing this error you
might think you need to do something about that
version. But the real error here is that tries to
install Plone version 4, where the has Plone version
3.0.6. It does this, because the added package
specifies a dependency on Plone 4, specifically
Error: There is a version conflict.
We already have: Plone 3.0.6
but Products.Poi requires 'Plone>=4.0a1'.
has no way of knowing that you have
version 3.0.6, because this Plone version is not "eggified". Simply
speaking, what this means is that there is no link to Plone 3.0.6 on
this page: . There you will only
find Plone 3.2 and higher, as that is the first eggified Plone
version. For Plone 3.0.x and 3.1.x, the
buildout recipe is used to pull Plone and the other not-eggified
products into your buildout. But this does not help when a third
party package has a dependency on Plone: will see
this and pull in the latest Plone egg it can find, resulting in errors
like above.
So how do we solve this? We could try to fake having a Plone egg.
egg, and lots
of , and other eggs, next to its main task
of actually installing Zope2. You could say that
is a workaround for the not-eggified
Zope2. So, how could you fake a Plone egg? You add Plone to the
[zope2]
recipe = plone.recipe.zope2install
fake-zope-eggs = true
url = ${plone:zope2-url}
additional-fake-eggs =
Plone
for a
moment and rerun you will now have a file
Metadata-Version: 1.0
Name: Plone
Version: 0.0
, you could specify a
different version in the recipe config:
additional-fake-eggs =
Plone = 3.0.6
to
use and will forget to update the
additional fake egg version, leading to confusion, so you might as
will accept the default
Anyway, we have a fake egg now, but does it actually help us?
Errr... no. Make sure is listed in the eggs again
and rerun buildout:
Error: There is a version conflict.
We already have: plone.app.layout 1.0.5
but Plone 4.0b1 requires 'plone.app.layout>=1.1.7dev-r23744'.
That is the same error we got earlier. So why did it not work? That
is easy: the picked at the time of
writing) depends on , like we mentioned before. Plone
is available in the buildout due to our additional fake egg,
but this version does not meet the requirements of ,
so gets the latest available Plone version instead,
leading to problems.
have worked if the picked
version would have specified a dependency on any
Plone version () or for example any Plone version lower than
4 (). So it might have its merits, but it is not
enough in our case. In fact, I can imagine that some add-on products
specify a dependency on expecting to get at least Plone
version , as that is the first eggified Plone version. Having
a fake Plone egg would go against that expectation and might cause
problems. So if you use this, use it with care.
Our problems is still not solved. But the solution is only one line
away. We add a version pin for Plone:
[buildout]
...
versions = versions
...
[versions]
plone.recipe.plone = 3.0.6
plone.recipe.zope2instance = 3.6
Plone = 0.0
in the
eggs, we get this error:
The version, 0.0, is not consistent with the requirement, 'Plone>=4.0a1'.
While:
Installing instance.
Error: Bad version 0.0
This error message is still not ideal, but at least this does not lead
us on a wild goose chase after , but clearly
points out that some package depends on a newer Plone version than we
want.
in verbose mode by adding one
or more options, you get more info, which hopefully helps in
debugging this (
Getting required 'collective.watcherlist>=0.2'
required by Products.Poi 2.0a1.
We have the best distribution that satisfies 'collective.watcherlist>=0.2'.
Picked: collective.watcherlist = 0.2
Getting required 'collective.autopermission'
required by Products.Poi 2.0a1.
We have the best distribution that satisfies 'collective.autopermission'.
Picked: collective.autopermission = 1.0b1
Getting required 'Products.DataGridField>=1.8a1'
required by Products.Poi 2.0a1.
We have the best distribution that satisfies 'Products.DataGridField>=1.8a1'.
Picked: Products.DataGridField = 1.8a1
Getting required 'Products.AddRemoveWidget>=1.4.2'
required by Products.Poi 2.0a1.
We have the best distribution that satisfies 'Products.AddRemoveWidget>=1.4.2'.
Picked: Products.AddRemoveWidget = 1.4.2
The version, 0.0, is not consistent with the requirement, 'Plone>=4.0a1'.
While:
Installing instance.
Error: Bad version 0.0
At this point, without further information, I would probably work my
way up from the bottom and start investigating if
specifies a dependency on Plone
(which it does not), and then checking (bingo).
Of course in this case we know that the buildout worked fine
before and is throwing errors after adding to the
eggs. So starting the investigation with would make
the most sense here. But knowing where to start looking is a matter
of knowledge, experience and luck. Also: do not change too many
things at the same time: do not update to a new Plone and Zope version
and at the same time add ten new products in your ; it
will only confuse you when things start going wrong.
you
currently see a list pointing to versions .
Version does not specify a dependency on Plone (speaking as
Poi maintainer: nor will future 1.2.x versions), so you pin that
version and things should work again:
[versions]
plone.recipe.plone = 3.0.6
plone.recipe.zope2instance = 3.6
Plone = 0.0
Products.Poi = 1.2.8
now works. This might change though
when one of the other not-pinned packages is updated and has unwanted
changes or starts depending on Plone 4. So to top this overly long
example off, we will add the buildout
extension, run and copy the reported versions to our
[buildout]
extensions = buildout.dumppickedversions
parts = instance
versions = versions
find-links =
http://dist.plone.org
http://dist.plone.org/thirdparty
eggs =
elementtree
Products.Poi
[versions]
Plone = 0.0
Products.AddRemoveWidget = 1.4.2
Products.DataGridField = 1.6.1
Products.Poi = 1.2.8
buildout.dumppickedversions = 0.4
distribute = 0.6.10
elementtree = 1.2.7-20070827-preview
plone.recipe.distros = 1.5
plone.recipe.plone = 3.0.6
plone.recipe.zope2install = 3.2
plone.recipe.zope2instance = 3.6
python-openid = 2.0.1
zc.buildout = 1.4.3
zc.recipe.egg = 1.2.2
[plone]
recipe = plone.recipe.plone
[zope2]
recipe = plone.recipe.zope2install
fake-zope-eggs = true
url = ${plone:zope2-url}
[instance]
recipe = plone.recipe.zope2instance
zope2-location = ${zope2:location}
user = admin:secret
http-address = 8080
eggs =
${buildout:eggs}
${plone:eggs}
zcml =
products = ${plone:products}
Incidentally, if you have an add-on product that simply depends on
without a minimum version, you would now get an error like
this when running
Getting distribution for 'Plone==0.0'.
While:
Installing instance.
Getting distribution for 'Plone==0.0'.
Error: Couldn't find a distribution for 'Plone==0.0'.
If you understand what you are doing you can still use the fake egg
trick from earlier to fix this. But probably you should instead
figure out which add-on is pulling in Plone, and see if an earlier
version of that add-on is available that works with your Plone version
without having to resort to faking eggs.
of
To avoid new Plone versions from being pulled in by add-on products
when you are on a not-eggified Plone version (,
[buildout]
...
versions = versions
...
[versions]
Plone = 0.0
This will not magically solve your buildout problems. Basically, this
tells that it should quit with an error when a
package is depending on a Plone version. Hopefully the lines before
the error message have a hint about which package this is; otherwise
try [Less]
|
Posted
over 15 years
ago
by
Weekly Zope Development Meeting
|
Posted
over 15 years
ago
by
Weekly Zope Development Meeting
|