<?xml version="1.0" ?>
<?xml-stylesheet href="" type="text/css"?>

<rss version="2.0">

    <channel>

        <title>Prontonet Blog</title>
        <link>http://www.prontonet.eu/pavels-blog</link>
        <description></description>

        <generator>basesyndication</generator>
        <!-- TODO
        <lastBuildDate>Mon, 30 Sep 2002 11:00:00 GMT</lastBuildDate>
        <copyright>Copyright 1997-2002 Dave Winer</copyright>
        <docs>http://backend.userland.com/rss</docs>
        <category domain="Syndic8">1765</category>
        <managingEditor>dave@userland.com</managingEditor>
        <webMaster>dave@userland.com</webMaster>
        -->

        <!-- TODO: Should there be an individual image associatable with each
        Weblog object?  I think so... -->
        <image>
            <title>Prontonet Blog</title>
            <url>http://www.prontonet.eu/logo.png</url>
            <link>http://www.prontonet.eu/pavels-blog</link>
        </image>

        
            <item>
                <title>Let Plone's AccessControl speak MySQL or ...</title>
                <guid>http://www.prontonet.eu/pavels-blog/archive/2010/06/19/let-plones-accesscontrol-speak-mysql</guid>
                <link>http://www.prontonet.eu/pavels-blog/archive/2010/06/19/let-plones-accesscontrol-speak-mysql</link>
                <description>
&lt;p&gt;Since version 4.1&amp;nbsp;MySQL&amp;nbsp;changed the hash pattern &amp;nbsp;to a procedure which is not implemented in Zope's AccessControl. But it is very easy to add.&amp;nbsp;Register a MYSQL41DigestScheme with the new encrypt method. Comment it because the passwords you want to insert are already encrypted.&lt;/p&gt;
&lt;pre&gt;class MYSQL41DigestScheme:
    def encrypt(self, pw):
        #return '*%s' % sha1(sha1(unicode(pw, "utf-8")).digest()).hexdigest().upper()
        return pw

    def validate(self, reference, attempt):
        a = self.encrypt(attempt)
        return (a == reference)

registerScheme('MYSQL41', MYSQL41DigestScheme())&lt;/pre&gt;
&lt;p&gt;Plone's default digest scheme is SSHA.&amp;nbsp;Search for the string "SSHA" in your setup. You will find to locations (AccessControl.AuthEncoding and AccessControl.User.BasicUserFolder). Replace it with "MYSQL41".&amp;nbsp;Now you can import the users by exporting it f.e. as csv and use a small script. Details can be found&amp;nbsp;&lt;a class="external-link" href="http://tomster.org/blog/archive/2006/11/03/batch-add-users-to-plone"&gt;here&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;After a successfull import uncomment the pattern in the MYSQL41DigestScheme. MySQL applies two times "sha" to the password and places a "*" at the beginning of the hash. Set the default scheme back to "SSHA" and restart your instance.That's it. Do not forget to substitute the MYSQL41 strings.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</description>
                <author>Pavel Bogdanovic</author>

                
                    <category>Zope</category>
                
                
                    <category>python</category>
                
                
                    <category>Plone</category>
                
                
                    <category>Problemlösung</category>
                

                <!--
                <dc:creator tal:content="feedentry/getAuthor"></dc:creator>
                <dc:rights tal:content="feedentry/getRights"></dc:rights>
                -->

                <pubDate>Sat, 19 Jun 2010 09:41:59 +0200</pubDate>

                
            </item>
        
        
            <item>
                <title>Large Plone Ordner hinzufügen</title>
                <guid>http://www.prontonet.eu/pavels-blog/archive/2010/01/14/large-plone-ordner-hinzufugen</guid>
                <link>http://www.prontonet.eu/pavels-blog/archive/2010/01/14/large-plone-ordner-hinzufugen</link>
                <description>
&lt;p&gt;Unter "Hinzufügen" findet man den "Large Plone Folder" nicht. Dazu geht man ins ZMI, wählt portal_types, klickt auf Large Plone Folder. Dort besteht die Möglichkeit "implicitly addable" zu checken. Wenn man jetzt seine Seite neu lädt, ist der "große Ordner" auswählbar.&lt;/p&gt;
</description>
                <author>Pavel Bogdanovic</author>

                
                    <category>deutsch</category>
                
                
                    <category>Plone</category>
                
                
                    <category>Problemlösung</category>
                

                <!--
                <dc:creator tal:content="feedentry/getAuthor"></dc:creator>
                <dc:rights tal:content="feedentry/getRights"></dc:rights>
                -->

                <pubDate>Thu, 14 Jan 2010 18:27:01 +0100</pubDate>

                
            </item>
        
        
            <item>
                <title>Sprite Me!</title>
                <guid>http://www.prontonet.eu/pavels-blog/archive/2009/12/27/sprite-me</guid>
                <link>http://www.prontonet.eu/pavels-blog/archive/2009/12/27/sprite-me</link>
                <description>
&lt;p&gt;Die Produktion von Sprites wird durch "Sprite Me", ein Open Source Projekt aus dem Hause Google, extrem vereinfacht. Man muss lediglich &lt;a class="external-link"&gt;diesen Link&lt;/a&gt;&amp;nbsp;bookmarken. Danach besucht man die zu spritende Seite und klickt den Bookmark. Alle Hintergrundbildern werden zu einem Sprite zusammengefasst. Außerdem erhält man die korrespondierenden css-Styles.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Weiterführende Links:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://spriteme.org/"&gt;http://spriteme.org/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/spriteme/"&gt;http://code.google.com/p/spriteme/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</description>
                <author>Pavel Bogdanovic</author>

                
                    <category>Google</category>
                
                
                    <category>Open Source</category>
                
                
                    <category>css</category>
                

                <!--
                <dc:creator tal:content="feedentry/getAuthor"></dc:creator>
                <dc:rights tal:content="feedentry/getRights"></dc:rights>
                -->

                <pubDate>Sun, 27 Dec 2009 19:22:10 +0100</pubDate>

                
            </item>
        
        
            <item>
                <title>MX-Einträge bei Hostsharing ändern</title>
                <guid>http://www.prontonet.eu/pavels-blog/archive/2009/12/15/mx-eintrage-bei-hostsharing-andern</guid>
                <link>http://www.prontonet.eu/pavels-blog/archive/2009/12/15/mx-eintrage-bei-hostsharing-andern</link>
                <description>
&lt;p&gt;Möchte man für eine Domain Google Apps nutzen, so müssen die MX-Einträge und optional CNAME Einträge beim Provider geändert werden. Bei Hostsharing legt man ein&amp;nbsp;vollständiges Zonefile im Konfigurationsverzeichnis etc der Domain ab. Eine beispielhaftes Zonefile mit Google Apps spezifischen Anpassungen &amp;nbsp;sollte &lt;em&gt;pri.mydomain.tld&lt;/em&gt; heißen und sieht folgendermaßen aus:&lt;/p&gt;
&lt;p&gt;&lt;span class="Apple-style-span"&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;pre&gt;$TTL {TTL}
{DOM_HOSTNAME}. IN SOA {HS_DNS1_HOSTNAME}. hostmaster.hostsharing.net. (
                {SIO} ; serial secs since Jan 1 1970 
                6H              ; refresh (&amp;gt;=10000)
                1H              ; retry (&amp;gt;=1800)
                1W              ; expire
                1H              ; minimum
		)

; please read https://wiki.hostsharing.net/index.php?title=Domains:Verwalten_der_Zonendaten
		IN      NS      {HS_DNS1_HOSTNAME}.
        IN      NS      {HS_DNS2_HOSTNAME}.
        IN      NS      {HS_DNS3_HOSTNAME}.

	IN	MX	1 ASPMX.L.GOOGLE.COM.
	IN	MX	5 ALT1.ASPMX.L.GOOGLE.COM.
	IN	MX	5 ALT2.ASPMX.L.GOOGLE.COM.
	IN	MX	10 ASPMX2.GOOGLEMAIL.COM.
	IN	MX	10 ASPMX3.GOOGLEMAIL.COM.
	IN	MX	10 ASPMX4.GOOGLEMAIL.COM.
	IN	MX	10 ASPMX5.GOOGLEMAIL.COM.

	IN	A	{DOM_IPNUMBER}
www     IN      A       {DOM_IPNUMBER}
ftp     IN      A       {FTP_IPNUMBER}
pop3    IN      A       {POP3_IPNUMBER}
mysql   IN      A       {MYSQL_IPNUMBER}
pgsql   IN      A       {PGSQL_IPNUMBER}
start   IN	CNAME	ghs.google.com.
cal	IN	CNAME	ghs.google.com.
mail	IN	CNAME	ghs.google.com.
docs	IN	CNAME	ghs.google.com.
sites	IN	CNAME	ghs.google.com.
*.{DOM_HOSTNAME}. IN	A	{PAC_IPNUMBER}&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;Angaben in geschweiften Klammern sind Platzhalter und werden vom Hostsharing-Robot automatisch mit aktuellen Werten ersetzt.&lt;/p&gt;
&lt;p&gt;Damit die Angaben vom Domain-Robot angenommen werden, muss im gleichen Verzeichnis eine leere Datei mit dem Namen&amp;nbsp;&lt;span class="Apple-style-span"&gt;zonefile.upd angelegt, bzw. deren Zeitstempel aktualisiert werden.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="Apple-style-span"&gt;Nach wenigen Minuten kann man bei &lt;a class="external-link" href="http://www.google.com/support/a/bin/answer.py?answer=140038"&gt;hier &lt;/a&gt;oder &lt;a class="external-link" href="http://www.dnsstuff.com/tools"&gt;hier &lt;/a&gt;(advanced) checken, ob die Änderungen erfolgreich waren.&lt;/span&gt;&lt;/p&gt;
</description>
                <author>Pavel Bogdanovic</author>

                
                    <category>Google Apps</category>
                
                
                    <category>Hostsharing</category>
                

                <!--
                <dc:creator tal:content="feedentry/getAuthor"></dc:creator>
                <dc:rights tal:content="feedentry/getRights"></dc:rights>
                -->

                <pubDate>Tue, 15 Dec 2009 13:21:59 +0100</pubDate>

                
            </item>
        

    </channel>
</rss>


