flexiabler Titel Rotating Header Image

Plone

flexiLog July

In unregelmäßigen Abständen beschreibe ich in der Kategorie “FlexiLog” meine Siege über die Technik, Computer und die Matrix.
Die Lösungen und Gedanken möchte ich für mich – aber auch für alle anderen – dokumentieren.
Ich hoffe, es hilft jemandem! Ich freue mich aber auch über Kommentare oder Tipps.

Truecrypt 7 mit Debian 6 Squeeze

Nach dem Update auf Debian 6 bekam ich beim versuch meine Truecrypt Container zu mounten diese Fehlermeldung:

Error: Kernel cryptographic service test failed. The cryptographic service of your kernel most likely does not support volumes larger than 2 TB.

Erst durch das mounten mit dem Parameter  “- nokernelcrypt” verschwand dieser Fehler. Leider wird dadurch der Zugriff auf den Truecrypt Container sehr langsam und es können wohl auch Schreib/Lese -Fehler auftreten.

Das Problem kann gelöst werden indem man auf einen Kernel höher als 2.6.38 updated. Damit lassen sich dann auch Container größer als 2 TB erstellen.

Quellen:
http://forum.ubuntuusers.de/topic/ubuntu-kernel-bug/#post-2505980

http://debianforum.de/forum/viewtopic.php?f=33&t=122202&sid=ea4bcb5edb62963d3ebd6373321f8c8f

Subsonic reagiert langsamer nach Update auf Debian 6 Squezze

Da ich Subsonic täglich nutze ist mir die schlechtere Performance nach dem Debian Update sofort aufgefallen.

Das Debian Update wechselt auf das freie OpenJDK, dies ist jedoch langsamer als das JDK von Sun.

Die Installation von “sun-java6-jdk beschleunigt Subsonic wieder:

apt-get install sun-java6-jdk
update-java-alternatives -s java-6-sun

Quellen:
http://wiki.debian.org/Java
http://www.debian.org/doc/manuals/debian-java-faq/ch4.html

Akku Reset HTC Desire

Falls Euer HTC Desire schon bei einem Akku Stand von 20% ausgeht. Ist es Zeit für ein Battery Stats Reset:

1) Schritt: Den Akku bei eingeschaltetem Gerät vollständig laden bis die grüne LED leuchtet.

2) Schritt: Das Ladekabel abziehen und das Gerät dann ausschalten.

3) Schritt:  Das Ladekabel wieder anschließen und das Gerät im ausgeschaltetem Zustand wieder bis zur grünen LED laden.

4) Schritt: Das Ladekabel nun wieder abziehen und in das Recovery System booten.

5) Schritt: Dort navigiert ihr zu advanced -> Wipe Battery Stats

6) Schritt: Das Gerät neustarten und ganz normal benutzen.

Plone and TinyMCE

Wer in Plone 3 den TinyMCE als WYSIWYG Editor nutzt, sollte dies beachten:

Use version 1.1.9 for Plone 3 and 4.0. Products.TinyMCE 1.2.x is for Plone 4.1

 Plone und Solr

Um Solr in Plone einzubinden gibt es zwei Addons:
alm.solrindex und collective.solr

Für jeden der sich mit diesem Thema beschäftigt sollte dies gelesen habe:

Subversion global-ignores für SVN Projekte

Da ich es mir jetzt schon das zweite mal raus suchen musste, schreib ich es mir nun ein letztes mal in mein WebDing!

Unnötige python, macos, egg und eclipse Dateien kann man am Besten per “global-ignores” ignorieren:

global-ignores = *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store *.egg-info *.pyc *.pyo .project .pydevproject

Diese Zeile einfach in die Subversion Config im Home Verzeichnis einfügen (Windows: \Subversion\config, Linux ~\.subversion\config).

Achtung: Schon in SVN eingecheckte Dateien werden von global-ignores nicht beachtet. Diese aus dem SVN wieder löschen.

[Update 11.10.10]

Für VIM User ist noch das excluden der *.swp Dateien wichtig:

global-ignores = *.o *.lo *.swp *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store *.egg-info *.pyc *.pyo .project .pydevproject

[Update 11.11.10]

Um auch kompilierte *.po Dateien auszuschließen (http://tinyurl.com/24j3jff):

global-ignores = *.mo *.o *.lo *.swp *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store *.egg-info *.pyc *.pyo .project .pydevproject
http://tinyurl.com/24j3jff

Quick and a little dirty: Add TinyMCE & remove Kupu in Plone 3

If you installed Products.TinyMCE (which is the default editor on Plone 4) to your Plone 3 site and you want to force your editors to use this new WYSIWYG-Editor, add this two GenericSetup files into your policy product:

memberdata_properties.xml:

<?xml version="1.0"?>
<object name="portal_memberdata" meta_type="Plone Memberdata Tool" purge="False">
<property name="wysiwyg_editor" type="string">TinyMCE</property>
</object>

propertiestool.xml:

<?xml version="1.0"?>
<object name="portal_properties" meta_type="Plone Properties Tool">
 <object name="site_properties" meta_type="Plone Property Sheet">
  <property name="available_editors" type="lines" purge="False">
   <element value="Kupu" remove="True" />
  </property>
 </object>
</object>

On existing sites you can execute this script to switch all editors to TinyMCE.

Plone (buildout) verliert Dateien – ImportError: No module named … (Windows only)

Windows erlaubt sich hin und wieder (wann und warum konnte ich noch nicht raus finden) Files im eggs Verzeichnis des buildouts zu löschen. Unter Linux/Mac passiert dies nicht! Ich vermute es liegt an den Symlinks (junction.exe) welche Windows in Verbindung mit omelette durcheinander bringen. Beim Starten der Instanz findet Plone dann benötigte Module nicht mehr:

2010-03-30 10:10:41 ERROR Application Could not import Products.FCKeditor
Traceback (most recent call last):
  File "D:\dev\test\parts\zope2\lib\python\OFS\Application.py", line 709, in im
port_product
    product=__import__(pname, global_dict, global_dict, silly)
  File "d:\dev\test\eggs\products.fckeditor-2.6.3.test.0.1-py2.4.egg\Products\FC
Keditor\__init__.py", line 5, in ?
    from Products.CMFCore.DirectoryView import registerDirectory
ImportError: No module named CMFCore.DirectoryView
Traceback (most recent call last):
  File "D:\dev\test\parts\instance-dev\bin\servicewrapper.py", line 140, in ?
    run.run()
  File "D:\dev\test\parts\zope2\lib\python\Zope2\Startup\run.py", line 21, in r
un
    starter.prepare()
  File "D:\dev\test\parts\zope2\lib\python\Zope2\Startup\__init__.py", line 102
, in prepare
    self.startZope()
  File "D:\dev\test\parts\zope2\lib\python\Zope2\Startup\__init__.py", line 278
, in startZope
    Zope2.startup()
  File "D:\dev\test\parts\zope2\lib\python\Zope2\__init__.py", line 47, in star
tup
    _startup()
  File "D:\dev\test\parts\zope2\lib\python\Zope2\App\startup.py", line 45, in s
tartup
    OFS.Application.import_products()
  File "D:\dev\test\parts\zope2\lib\python\OFS\Application.py", line 686, in im
port_products
    import_product(product_dir, product_name, raise_exc=debug_mode)
  File "D:\dev\test\parts\zope2\lib\python\OFS\Application.py", line 709, in im
port_product
    product=__import__(pname, global_dict, global_dict, silly)
  File "d:\dev\test\eggs\products.fckeditor-2.6.3.test.0.1-py2.4.egg\Products\FC
Keditor\__init__.py", line 5, in ?
    from Products.CMFCore.DirectoryView import registerDirectory
ImportError: No module named CMFCore.DirectoryView

Schaut man in eggs/Products.CMFCore nach, sieht man das dort keine Files mehr vorhanden sind.

Als sichere Lösung empfiehlt es sich die Files von buildout neu erstellen zu lassen:

  1. Im buildout directory das parts / bin und eggs Verzeichnis löschen
  2. “python bootstrap.py” neu ausführen
  3. “bin/buildout” ausführen

Nun sollte buildout alle eggs neu laden und installieren. Außerdem wird Zope und die Instance neu erstellt.

Wer die Ursache kennt, kann es mir gern mitteilen :)

Erstellen von Python Eggs per setuptools (in 3 Minuten)

Hier wird beschrieben welche Schritte zum Erstellen eines neuen Python Eggs oder einer neuen Version notwendig sind.

Generierung von *.egg Files aus Development Eggs (meist im /src Ordner)

  1. In setup.py und profiles/default/metadata.xml die Version erhöhen.
  2. Im docs/ Verzeichnis die HISTORY.txt aktualisieren. Um Versionsnummer erweitern und die Änderungen vermerken.
  3. Mögliche Anpassungen in der README.txt oder docs/INSTALL.txt vornehmen.
  4. Im Egg-Verzeichnis z.B: flex.plonetheme/ diesen Befehl ausführen:
  5. python setup.py bdist_egg
  6. Im dist/ Verzeichnis befindet sich das automatisch erstellte Egg.

Weitere Infomationen

Detailierte Versionsinformationen

Über die Datei setup.cfg können weitere Versionseigenschaften gesteuert werden.

Z.B:

[egg_info]
tag_build = dev
tag_svn_revision = true

Hier bekommt das Egg diesen Namen “flex.plonetheme-0.9.9dev_r584-py2.4.egg”. Es wird ein “dev” sowie die SVN Revision angehängt. Löscht man die setup.cfg wir ein Produktiv-Egg erstellt (flex.plonetheme-0.9.9-py2.4.egg).

Versionen und Buildout

Buildout versucht immer das aktuellste Egg zu holen. Höhere Versionen haben Vorrang!

Verweise

http://log.onthebrink.de/2008/02/python-egg-fun.html

http://ianbicking.org/docs/setuptools-presentation/

Beschleunigung Zope im Debug Mode (nur unter Windows)

Durch das auskommentieren dieses if- Blocks wird der Reload der Plone/Zope Seiten wesentlich schneller:

Im vom Buildout erstellten Verzeichnis “parts/plone/CMFCore/” die Datei “DirectoryView.py” öffnen.

Ab Zeile 166 steht dort:

mtime = stat(self._filepath)[8]
if platform == 'win32':
# some Windows directories don't change mtime
# when a file is added to or deleted from them :-(
# So keep a list of files as well, and see if that
# changes
path.walk(self._filepath, self._walker, filelist)
filelist.sort()

Die Zeile 167 “if platform == ‘win32′:” mit “if platform == ‘xxxwin32′:” ersetzen. Zope nun neu starteten.

Soweit ich das verstanden habe, benötigt “path.walk” sehr lange, dieser Check ist unter Windows mit NTFS Filesystem jedoch unnötig. Änderungen werden auch ohne diesen Check erkannt.

Funktioniert nur unter Windows und wenn der Zope Server mit “debug-mode on” läuft.