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

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:dc="http://purl.org/dc/elements/1.1/"
         xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
         xmlns:rss="http://purl.org/rss/1.0/"
         xmlns:content="http://purl.org/rss/1.0/modules/content/">

    <rss:channel rdf:about="http://www.prontonet.eu/pavels-blog">

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

        
        <rss:description>Prontonet Blog RSS 1.0 feed.</rss:description>

        <rss:image rdf:resource="http://www.prontonet.eu/logo.png"/>

        <sy:updatePeriod>daily</sy:updatePeriod>
        <sy:updateFrequency>1</sy:updateFrequency>

        <rss:items>
            <rdf:Seq>
                
                <rdf:li rdf:resource="http://www.prontonet.eu/pavels-blog/archive/2010/06/19/let-plones-accesscontrol-speak-mysql"/>
                
                
                <rdf:li rdf:resource="http://www.prontonet.eu/pavels-blog/archive/2010/01/14/large-plone-ordner-hinzufugen"/>
                
                
                <rdf:li rdf:resource="http://www.prontonet.eu/pavels-blog/archive/2009/12/27/sprite-me"/>
                
                
                <rdf:li rdf:resource="http://www.prontonet.eu/pavels-blog/archive/2009/12/15/mx-eintrage-bei-hostsharing-andern"/>
                
            </rdf:Seq>
        </rss:items>
    </rss:channel>

    <rss:image rdf:about="http://www.prontonet.eu/logo.png">
        <rss:title>Prontonet Blog</rss:title>
        <rss:link>http://www.prontonet.eu/pavels-blog</rss:link>
        <rss:url>http://www.prontonet.eu/logo.png</rss:url>
    </rss:image>

    

    <rss:item rdf:about="http://www.prontonet.eu/pavels-blog/archive/2010/06/19/let-plones-accesscontrol-speak-mysql">

        <rss:title>Let Plone's AccessControl speak MySQL or ...</rss:title>

        <rss:link>http://www.prontonet.eu/pavels-blog/archive/2010/06/19/let-plones-accesscontrol-speak-mysql</rss:link>       

        <rss:description>how you can use any password encryption in Plone's user authentication. If you migrate a portal to plone, mostly you have to deal with user data and hashed passwords. You have two possibilities to make these datas accessible. You can connect Plone to MySQL by a Mysql Authentication Plugin like SQLPASPlugin or you import the userdata into Plone and teach Plone how to encrypt MySQL passwords. This post deals with the second approach.</rss:description>

        <content:encoded>
          <![CDATA[
          
&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;

          ]]>
        </content:encoded>        

        <dc:date>2010-06-19T09:41:59+02:00</dc:date>

        <dc:modified>2010-06-22T08:52:05+02:00</dc:modified>

        <dc:creator>Pavel Bogdanovic</dc:creator>

        

        
            <dc:subject>Zope</dc:subject>
        
        
            <dc:subject>python</dc:subject>
        
        
            <dc:subject>Plone</dc:subject>
        
        
            <dc:subject>Problemlösung</dc:subject>
        

    </rss:item>

    
    

    <rss:item rdf:about="http://www.prontonet.eu/pavels-blog/archive/2010/01/14/large-plone-ordner-hinzufugen">

        <rss:title>Large Plone Ordner hinzufügen</rss:title>

        <rss:link>http://www.prontonet.eu/pavels-blog/archive/2010/01/14/large-plone-ordner-hinzufugen</rss:link>       

        <rss:description>Wenn reguläre Plone Ordner mehrere Hundert Objekte enthalten, können Sie eine PloneSite verlangsamen. Dafür kann man aber Large Plone Folder einsetzen, die sich beispielsweise bei Suchen anders verhalten.</rss:description>

        <content:encoded>
          <![CDATA[
          
&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;

          ]]>
        </content:encoded>        

        <dc:date>2010-01-14T18:27:01+01:00</dc:date>

        <dc:modified>2010-01-14T18:27:33+01:00</dc:modified>

        <dc:creator>Pavel Bogdanovic</dc:creator>

        

        
            <dc:subject>deutsch</dc:subject>
        
        
            <dc:subject>Plone</dc:subject>
        
        
            <dc:subject>Problemlösung</dc:subject>
        

    </rss:item>

    
    

    <rss:item rdf:about="http://www.prontonet.eu/pavels-blog/archive/2009/12/27/sprite-me">

        <rss:title>Sprite Me!</rss:title>

        <rss:link>http://www.prontonet.eu/pavels-blog/archive/2009/12/27/sprite-me</rss:link>       

        <rss:description>Die Ladezeit von Websites lässt sich inbesondere durch Reduktion der Requests beschleunigen. Wenn eine Seite viele Hintergrundgrafiken verwendet, kann man alle Hintergrundbilder zu einem sogenannten Sprite zusammenfassen. Dieser Sprite wird per css so positioniert, dass der entsprechende Ausschnitt an der jeweilgen Stelle erscheint.</rss:description>

        <content:encoded>
          <![CDATA[
          
&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;

          ]]>
        </content:encoded>        

        <dc:date>2009-12-27T19:22:10+01:00</dc:date>

        <dc:modified>2009-12-27T19:22:10+01:00</dc:modified>

        <dc:creator>Pavel Bogdanovic</dc:creator>

        

        
            <dc:subject>Google</dc:subject>
        
        
            <dc:subject>Open Source</dc:subject>
        
        
            <dc:subject>css</dc:subject>
        

    </rss:item>

    
    

    <rss:item rdf:about="http://www.prontonet.eu/pavels-blog/archive/2009/12/15/mx-eintrage-bei-hostsharing-andern">

        <rss:title>MX-Einträge bei Hostsharing ändern</rss:title>

        <rss:link>http://www.prontonet.eu/pavels-blog/archive/2009/12/15/mx-eintrage-bei-hostsharing-andern</rss:link>       

        

        <content:encoded>
          <![CDATA[
          
&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;

          ]]>
        </content:encoded>        

        <dc:date>2009-12-15T13:21:59+01:00</dc:date>

        <dc:modified>2009-12-15T13:21:59+01:00</dc:modified>

        <dc:creator>Pavel Bogdanovic</dc:creator>

        

        
            <dc:subject>Google Apps</dc:subject>
        
        
            <dc:subject>Hostsharing</dc:subject>
        

    </rss:item>

    

</rdf:RDF>
