<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blog of Andreas Jung, ZOPYX</title><link>https://blog.zopyx.com/</link><description>Recent content on Blog of Andreas Jung, ZOPYX</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 21 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.zopyx.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Index</title><link>https://blog.zopyx.com/archiv/</link><pubDate>Wed, 21 Oct 2026 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/archiv/</guid><description/></item><item><title>Search</title><link>https://blog.zopyx.com/search/</link><pubDate>Wed, 21 Oct 2026 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/search/</guid><description/></item><item><title>Cancer diagnosis and treatment</title><link>https://blog.zopyx.com/turbo-cancer-treatment/</link><pubDate>Sun, 17 Nov 2024 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/turbo-cancer-treatment/</guid><description>&lt;p&gt;The last few weeks have been quite eventful. On October 21st this year, I received a cancer diagnosis—prostate cancer. Based on earlier tests, the likelihood of this diagnosis was a 50:50 chance. Just four days later, I underwent surgery and was discharged from the hospital another four days after that. Eight days from diagnosis to leaving the hospital—what a whirlwind week!&lt;/p&gt;&#10;&lt;p&gt;As someone who has always been open about my life, I see no reason not to share this experience. For me, talking about cancer is a way of processing and dealing with it.&lt;/p&gt;</description></item><item><title>PyCON 2024 in Pittsburgh experience</title><link>https://blog.zopyx.com/pycon-2024-in-pittsburgh-experience/</link><pubDate>Fri, 31 May 2024 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/pycon-2024-in-pittsburgh-experience/</guid><description>&lt;p&gt;I am a regular visitior of PyCON US conference since 2001 and I visited most conference cities at least once.&lt;/p&gt;</description></item><item><title>New print-css.rocks release available</title><link>https://blog.zopyx.com/new-print-css-rocks-release/</link><pubDate>Mon, 11 Oct 2021 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/new-print-css-rocks-release/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2021/10/image-1.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;A new print-css.rocks &lt;a href="https://print-css.rocks"&gt;release&lt;/a&gt; is available with support for some new tools:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Typeset.sh&lt;/li&gt;&#10;&lt;li&gt;Vivliostyle&lt;/li&gt;&#10;&lt;li&gt;PagedJS&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>2021-08-03 Medizinische Leitlinien schneller online im Portal 'onkopedia'</title><link>https://blog.zopyx.com/2021-08-03medizinische-leitlinien-schneller-online-im-portal-onkopedia/</link><pubDate>Thu, 07 Oct 2021 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/2021-08-03medizinische-leitlinien-schneller-online-im-portal-onkopedia/</guid><description>&lt;p&gt;Unser befreundeter XML-Dienstleister &lt;a href="https://C-REX.net"&gt;C-REX.net&lt;/a&gt;, der für uns in Publishing Lösungen das XML Processing übernimmt, hat einen schönen &lt;a href="https://blog.c-rex.net/de-DE/posts/DGHO_DTS-conversion-services.html"&gt;Artikel&lt;/a&gt; über unser Hauptprojekt &lt;a href="https://onkopedia.com"&gt;Onkopedia&lt;/a&gt; aus XML Sicht veröffentlicht.&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://blog.c-rex.net/de-DE/posts/DGHO_DTS-conversion-services.html"&gt;&lt;strong&gt;Publikation wichtiger medizinischer Leitlinien auf onkopedia&lt;/strong&gt;&lt;/a&gt;&lt;br&gt;&#10;Umsetzung eines durchgängigen xml-basierten Publikationsprozesses&lt;/p&gt;</description></item><item><title>FastAPI for the next level of web applications</title><link>https://blog.zopyx.com/fastapi-for-the-next-level-of-web-applications/</link><pubDate>Wed, 09 Jun 2021 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/fastapi-for-the-next-level-of-web-applications/</guid><description>&lt;p&gt;We are building web applications since the mid-90s with Python.&lt;/p&gt;&#10;&lt;p&gt;Historically, we have used a bunch of related technologies and frameworks like&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;CGI&lt;/li&gt;&#10;&lt;li&gt;FastCGI&lt;/li&gt;&#10;&lt;li&gt;Pyramid&lt;/li&gt;&#10;&lt;li&gt;Flask&lt;/li&gt;&#10;&lt;li&gt;Sanic&lt;/li&gt;&#10;&lt;li&gt;Plone (of course, for CMS-ish applications)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;All technologies and web frameworks had their time, their pros and cons (which I do not want to discuss here). Now, we are moving on to &lt;a href="https://fastapi.tiangolo.com/"&gt;FastAPI&lt;/a&gt; for new web applications.&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2021/06/logo-teal.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://fastapi.tiangolo.com/"&gt;FastAPI&lt;/a&gt; is one of the most modern Python web frameworks for building applications and services. The primary focus of FastAPI is on micro-services or REST services, but you can of course plug-in your own template language for generating HTML and serving static content.&lt;/p&gt;</description></item><item><title>New major Produce &amp; Publish Server release</title><link>https://blog.zopyx.com/produce/</link><pubDate>Sun, 14 Feb 2021 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/produce/</guid><description>&lt;p&gt;Today, I released a new version of our &lt;a href="https://pypi.org/project/pp.server/"&gt;Produce &amp;amp; Publish server&lt;/a&gt;. The Produce &amp;amp; Publish Server is a REST server that provides a unified API for PDF generation using the &lt;a href="https://print-css.rocks"&gt;PrintCSS&lt;/a&gt; approach for a variety of converter tools.&lt;/p&gt;&#10;&lt;p&gt;The old codebase has its origins in the years before 2010, based on the Python Pyramid web framework. For several reasons, it was time to trash Pyramid for something better.&lt;/p&gt;&#10;&lt;p&gt;The new implementation is based on the FastAPI web framework for Python which gives us out of the box support for building nice REST APIs, data validation, full Python async support and &lt;a href="https://swagger.io/specification/"&gt;OpenAPI&lt;/a&gt; integration.&lt;/p&gt;</description></item><item><title>Medical Publishing Solutions</title><link>https://blog.zopyx.com/medical-publishing-solutions/</link><pubDate>Thu, 21 Jan 2021 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/medical-publishing-solutions/</guid><description>&lt;p&gt;Ein Tätigkeitsschwerpunkt von &lt;a href="https://zopyx.de"&gt;ZOPYX&lt;/a&gt; wird in 2021 im Bereich medizinischer Applikationen, insb. im Bereich  medizinischer Publishing Systeme liegen. Als Architekt und technischer Dienstleister der Leitlinien Plattform &lt;a href="https://medical-publishing.solutions/onkopedia/"&gt;Onkopedia&lt;/a&gt; und anderer Systeme haben wir in den vergangenen Jahre eine umfangreiche Expertise im Bereich Medizin aufgebaut, um auch als kleiner Player im Markt der medizinischen Dienstleistungen (und in dessen Umfeld) erfolgreich agieren zu können.&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2021/01/MPS-Logo.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;Im Rahmen dieser Fokussierung und Profilschärfung von ZOPYX haben wir die neue Website &lt;strong&gt;&lt;a href="https://medical-publishing.solutions"&gt;Medical Publishing Solutions&lt;/a&gt;&lt;/strong&gt;, die unsere Dienstleistungen und Expertise speziell im medizinischen Sektor bündelt und besser präsentiert.&lt;/p&gt;</description></item><item><title>Going Wordpress</title><link>https://blog.zopyx.com/going-wordpress/</link><pubDate>Tue, 05 Jan 2021 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/going-wordpress/</guid><description>&lt;p&gt;I am moving corporate sites to Wordpress  🤡 -t his is not an April 1st joke!!!&lt;/p&gt;&#10;&lt;p&gt;I am currently in progress moving some of my corporate sites and some project sites from Plone to Wordpress. I struggled a long with the decision what to do with my almost ten year old corporate sites. I spend almost two year into static site generators, custom HTML page builders, frameworks like Tailwind UI kit and many more.&lt;/p&gt;</description></item><item><title>Plone migrations: importing collective.jsonify export data into ArangoDB (Part 3)</title><link>https://blog.zopyx.com/importing-collective-jsonify-export-data-into-arangodb-part-3/</link><pubDate>Fri, 27 Nov 2020 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/importing-collective-jsonify-export-data-into-arangodb-part-3/</guid><description>&lt;p&gt;In the last blog post, I described how to export a Plone site using &lt;em&gt;collective.jsonify&lt;/em&gt; to the filesystem as directory of JSON data. This blog post will explain briefly to import the JSON data into &lt;a href="https://www.arangodb.com/"&gt;ArangoDB&lt;/a&gt; as interim migration database&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;strong&gt;Why ArangoDB?&lt;/strong&gt; We are using &lt;a href="https://www.arangodb.com/"&gt;ArangoDB&lt;/a&gt; as a document database for storing the JSON data. This allows us to introspect and query the data to be migrated and imported. This is often necessary in complex migration with unknown data and unknown object relations. Using &lt;em&gt;grep&lt;/em&gt; or similar tools on a huge JSON dump is unlikely the right approach. Using &lt;a href="https://www.arangodb.com/"&gt;ArangoDB&lt;/a&gt; also allows us to run partial migrations for testing purposes (e.g. for testing the migration on a particular folder or a particular content type).&lt;/p&gt;</description></item><item><title>Plone migrations: exporting a Plone site using collective.jsonify (Part 2)</title><link>https://blog.zopyx.com/exporting-a-plone-site-using-collective-jsonify/</link><pubDate>Wed, 25 Nov 2020 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/exporting-a-plone-site-using-collective-jsonify/</guid><description>&lt;p&gt;In this blog post, I describe to how to use &lt;em&gt;collective.jsonify&lt;/em&gt; for exporting a Plone to JSON.&lt;/p&gt;&#10;&lt;h3 id="buildout-preparation"&gt;Buildout preparation&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;install collective.json (we are using our &lt;em&gt;ugent-fixes&lt;/em&gt; branch. This branch will be merged back into the &lt;em&gt;master&lt;/em&gt; branch soon)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;[buildout]&lt;br&gt;&#10;sources = sources&lt;br&gt;&#10;auto-checkout =  &lt;br&gt;&#10;   collective.jsonify&lt;/p&gt;&#10;&lt;p&gt;[instance]&lt;/p&gt;&#10;&lt;p&gt;eggs +=&lt;br&gt;&#10;   collective.jsonify&lt;/p&gt;&#10;&lt;p&gt;[sources]&lt;br&gt;&#10;collective.jsonify = git &lt;a href="mailto:git@github.com"&gt;git@github.com&lt;/a&gt;:collective/collective.jsonify.git branch=ugent-fixes  &lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;h3 id="installation-of-collectivejsonify-inside-your-zopeplone-installation"&gt;Installation of collective.jsonify inside your Zope/Plone installation&lt;/h3&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;bin/instance run src/collective.jsonify/collective/jsonify/scripts/install_migration.py&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;h3 id="run-the-migration-export"&gt;Run the migration export&lt;/h3&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;bin/instance run src/collective.jsonify/collective/jsonify/scripts/migration_export.py &amp;lt;plone site id&amp;gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;</description></item><item><title>Plone Migration approaches (Part 1)</title><link>https://blog.zopyx.com/plone-migration-approaches/</link><pubDate>Tue, 24 Nov 2020 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/plone-migration-approaches/</guid><description>&lt;p&gt;This is the first of a series of blog posts that deals with Plone migrations. I am trying to tell the story about how we are doing large-scale Plone migrations which usually involves migration of code, switching add-ons and  reorganizing content. This is usually accomplished in our migration through an export of the original Plone site and &amp;ldquo;magic&amp;rdquo; importer script on the target system. This migration approach evolved over the years. Our current approach is based on the experience and the work over the last year when we worked on a large-scale migration for the University of Ghent (90.000 content objects, 50 GB of data) and some sites for an industrial customer in Stuttgart.&lt;/p&gt;</description></item><item><title>Some new Plone add-on releases</title><link>https://blog.zopyx.com/some-new-plone-add-on-releases/</link><pubDate>Mon, 23 Nov 2020 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/some-new-plone-add-on-releases/</guid><description>&lt;p&gt;Today, we released some small Plone add-ons as we developed and used over the last years for customer projects. In many cases we duplicated the same over and over again&amp;hellip;so it was time for some refactoring and moving the code into dedicated packages.&lt;/p&gt;&#10;&lt;h3 id="zopyxplonepersistentlogger"&gt;zopyx.plone.persistentlogger&lt;/h3&gt;&#10;&lt;p&gt;zopyx.plone.persistentlogger supports persistent logging where the log data is stored on an arbitrary persistent Plone object (as annotation). Typical usecases are application specific logging e.g. for logging a history per content object directly in Plone rather then having a huge common log on the filesystem. The log entries are stored using object annotations.&lt;/p&gt;</description></item><item><title>New print-css.rocks release</title><link>https://blog.zopyx.com/new-print-css-rocks-release-online/</link><pubDate>Fri, 16 Oct 2020 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/new-print-css-rocks-release-online/</guid><description>&lt;p&gt;Earlier this month, I released an update of my PrintCSS Portal &lt;a href="https://print-css.rocks"&gt;print-css.rocks&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;Thiis update includes support for new tools like&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;WeasyPrint&lt;/li&gt;&#10;&lt;li&gt;Typeset.sh&lt;/li&gt;&#10;&lt;li&gt;PagedJS&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/logo.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;I also want to mention the portal &lt;a href="https://printcss.live"&gt;printcss.live&lt;/a&gt; by Andreas Zettl. printcss.live is a very nice and supplementary addition to the PrintCSS community because it allows you to test tools directly within the browser. Andreas Zettl also maintains a list a PrintCSS articles on &lt;a href="https://medium.com/printcss"&gt;medium.com&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Imprint</title><link>https://blog.zopyx.com/imprint/</link><pubDate>Thu, 15 Oct 2020 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/imprint/</guid><description>&lt;p&gt;Information according to § 5 TMG:&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Andreas Jung&lt;/strong&gt;&lt;br&gt;&#10;Hundskapfklinge 33&lt;br&gt;&#10;72074 Tübingen&lt;br&gt;&#10;Germany&lt;/p&gt;&#10;&lt;p&gt;Represented by: Andreas Jung&lt;/p&gt;&#10;&lt;p&gt;Contact:&lt;/p&gt;&#10;&lt;p&gt;Email: &lt;a href="mailto:info@zopyx.com"&gt;info@zopyx.com&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;VAT ID: DE235809776&lt;/p&gt;</description></item><item><title>Privacy statement</title><link>https://blog.zopyx.com/privacy-statement/</link><pubDate>Thu, 15 Oct 2020 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/privacy-statement/</guid><description>&lt;p&gt;We are very delighted that you have shown interest in our enterprise. Data protection is of a particularly high priority for the management of the Andreas Jung/ZOPYX. The use of the Internet pages of the Andreas Jung/ZOPYX is possible without any indication of personal data; however, if a data subject wants to use special enterprise services via our website, processing of personal data could become necessary. If the processing of personal data is necessary and there is no statutory basis for such processing, we generally obtain consent from the data subject.&lt;/p&gt;</description></item><item><title>Blog moved to Ghost</title><link>https://blog.zopyx.com/blog-moved-to-ghost/</link><pubDate>Wed, 14 Oct 2020 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/blog-moved-to-ghost/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/2880px-Ghost-Logo.svg.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;em&gt;Ghost Logo&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;After almost 12 years I moved my personal blog blog.zopyx.com from Plone 4 to the Ghost blogging platform. You may ask why? First, my old Plone 4 installation reached end of lifetime a long time ago and it was time for moving the content to a different system. I investigated a lot of time into options like static site generators like Eleventy, Huge and others but I was not very much happy with them. I just wanted a simple system where I can add and publish content easily.&lt;/p&gt;</description></item><item><title>Plone and COVID-19</title><link>https://blog.zopyx.com/plone-and-covid-19/</link><pubDate>Thu, 02 Apr 2020 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/plone-and-covid-19/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-5.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;These days are tough and challenging for all of us. COVID-19 affects everyone across the globe. The Coronavirus hits every country differently. Fortunately, Germany seems to be better prepared than other countries. However, there will be a huge fallout from this crisis and many things will not be the same as they were for a while. So, please #stayathome and stay safe.&lt;/p&gt;&#10;&lt;p&gt;But let me tell you a small success story around Plone and COVID-19.&lt;/p&gt;</description></item><item><title>Released is released</title><link>https://blog.zopyx.com/released-is-released/</link><pubDate>Fri, 02 Aug 2019 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/released-is-released/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-6.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;Plone/Zope/ZEO depends on a module &lt;a href="https://pypi.org/project/trollius/2.2/"&gt;&lt;strong&gt;trollius&lt;/strong&gt;&lt;/a&gt; that suddenly disappeared from &lt;a href="https://pypi.org/"&gt;PyPI&lt;/a&gt; this week. The maintainer decided to remove the package because he does not want to maintain the package anymore. As a result it was impossible to build a Plone installation properly because of the missing dependency.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Core question&lt;/strong&gt;: should you be allowed to remove our own package from a public repository (independent of the eco system)?&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;First&lt;/strong&gt;: every package maintainer is of course allowed to remove its own deprecated packages, giving up maintenance for whatever reason.&lt;/p&gt;</description></item><item><title>Medical guideline portal Onkopedia.com relaunched - on top of Plone 5.2 and Python 3.7</title><link>https://blog.zopyx.com/medical-guideline-portal-onkopedia-com-relaunched-on-top-of-plone-5-2-and-python-3-7/</link><pubDate>Sun, 23 Jun 2019 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/medical-guideline-portal-onkopedia-com-relaunched-on-top-of-plone-5-2-and-python-3-7/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-7.png" alt=""&gt;&lt;/p&gt;&#10;&lt;h3 id="project-history"&gt;Project history&lt;/h3&gt;&#10;&lt;p&gt;The Deutsche Gesellschaft für Hämatologie und medizinische Onkologie (DGHO) e.V., known in English as the German Society for Haematology and Medical Oncology, is a medical association whose goals include the training and education of doctors and medical personnel and the drafting and publication of medical guidelines. Its members include scientists and doctors specializing in the research, diagnosis and treatment of blood diseases and malignant tumors.&lt;/p&gt;&#10;&lt;p&gt;Together with other medical societies and associations from Germany, Austria and Switzerland, the DGHO operates the online guidelines portal “Onkopedia”. In addition to providing medical guide- lines, it serves a source of important specialist information for patients and carers.&lt;/p&gt;</description></item><item><title>Auch bei Vodafone sind nur Sicherheitsdilletanten am Werk</title><link>https://blog.zopyx.com/auch-bei-vodafone-sind-nur-sicherheitsdilletanten-am-werk/</link><pubDate>Fri, 24 Aug 2018 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/auch-bei-vodafone-sind-nur-sicherheitsdilletanten-am-werk/</guid><description>&lt;p&gt;Gestern eine Begegung der dritten Art im lokalen Vodafone Shop in Tübingen.&lt;/p&gt;&#10;&lt;p&gt;Ich ging in den Laden wegen einer Vertragsfrage. Mein Kundenpasswort hatte ich vergessen, welches zum Zugriff auf meine Vertragsdaten durch den Shop Mitarbeiter notwendig gewesen wäre. Unter Angabe meiner Mobilfunknummer, des Geburtsdatums und der IBAN des hinterlegten Kontos konnte der Mitarbeiter dann mein Kundenkennwort im &lt;strong&gt;KLARTEXT&lt;/strong&gt; auslesen und damit auf meinen Vertragsdatensatz zu greifen.&lt;/p&gt;&#10;&lt;p&gt;In 2018 sollte jeder IT Firma von der kleinen Programmierklitsche bis zu einem großen Konzert wie Vodafone klar sein wie man mit sensitiven Daten umgeht. Die Nachrichten über Passwortklau, Datenlecks, Hacks etc. gehen ja mittlerweile fast schon täglich durch die Presse. Und was macht Vodafone: speichert weiterhin Passwörter im &lt;strong&gt;KLARTEXT&lt;/strong&gt;. Diese Vorgehensweise ist einfach grob fahrlässig, unprofessionell  und inakzeptabel.&lt;/p&gt;</description></item><item><title>Combining Plone Dexterity and VueJS Form Generator</title><link>https://blog.zopyx.com/combining-plone-dexterity-and-vuejs-form-generator/</link><pubDate>Wed, 31 Jan 2018 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/combining-plone-dexterity-and-vuejs-form-generator/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-8.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;In our current customer project we have some fancy requirements for content-types:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;large set of metadata per content-type (100-120 fields)&lt;/li&gt;&#10;&lt;li&gt;metadata grouped by fieldsets&lt;/li&gt;&#10;&lt;li&gt;metadata grouped inside a fieldset (all fields are grouped in two level deep hierachy)&lt;/li&gt;&#10;&lt;li&gt;client-side validation&lt;/li&gt;&#10;&lt;li&gt;configurable field visibility per-instance (each editor can turn the visibility of a field to public or internal in addition to the standard visibility of content objects based on their workflow state and the current security context)&lt;/li&gt;&#10;&lt;li&gt;custom formatting of numbers or texts&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;After some evaluation we came to the conclusion that working with Dexterity and Dexterity schemas would not work for us. In particular there is no straight forward way for grouping fields in a DX schema in a two level hierarchy.&lt;/p&gt;</description></item><item><title>Einladung zur Brownbag-Session "Smarte Content Erstellung mit SMASHDOCs und smarte Publishinglösungen" am 21.6.2017 in Berlin</title><link>https://blog.zopyx.com/einladung-zur-brownbag-session-smarte-content-erstellung-mit-smashdocs-und-smarte-publishinglosungen-am-21-6-2017-in-berlin/</link><pubDate>Thu, 11 May 2017 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/einladung-zur-brownbag-session-smarte-content-erstellung-mit-smashdocs-und-smarte-publishinglosungen-am-21-6-2017-in-berlin/</guid><description>&lt;p&gt;&lt;strong&gt;Am 21. Juni 2017 findet bei Abstract-Technology in der Krausenstraße 8, 10117 Berlin, eine Brownbag-Session zu kollaborativem Editing, Reviewing and Sharing von Dokumenten für kleine und große Organisationen statt. Mit der Brownbag-Session startet Abstract-Technology eine Reihe von Veranstaltungsserien, auf der regelmäßig Expertinnen und Experten aus Firmen über aktuelle Systeme und Entwicklungen referieren.&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-3.jpg" alt=""&gt;&lt;/p&gt;&#10;&lt;h3 id="agenda"&gt;AGENDA&lt;/h3&gt;&#10;&lt;p&gt;9.00 Uhr Begrüßung, Coffee and Breakfast in den Räumen der Abstract Technology GmbH&lt;/p&gt;&#10;&lt;h3 id="themen"&gt;THEMEN:&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;„Content creation für E-Learning-Projekte effizient erstellen und steuern“, Stefania Trabucchi&lt;/li&gt;&#10;&lt;li&gt;„Einführung und Demonstration von SMASHDOCs“, Christian Gericke&lt;/li&gt;&#10;&lt;li&gt;„content-gemeinsam-erstellen.de - Integration von SMASHDOCs in das CMS Plone 5“, Andreas Jung&lt;/li&gt;&#10;&lt;li&gt;„Schlanke XML-basierte Publishing Workflows am Beispiel Onkopedia“, Markus Wiedenmaier&lt;/li&gt;&#10;&lt;li&gt;12.00 Uhr Diskussion und Fragen und anschließende Verabschiedung&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="wichtiges-über-smashdocs-auf-einen-blick"&gt;WICHTIGES ÜBER SMASHDOCS AUF EINEN BLICK&lt;/h3&gt;&#10;&lt;p&gt;SMASHDOCs ist kein herkömmliches Textverarbeitungsprogramm wie Microsoft Word oder Google Docs, sondern ein intelligentes Web-Dokument. Und so funktioniert es: Alle Beteiligten arbeiten online an ein und demselben Dokument. Dabei speichert SMASHDOCs automatisch alle Änderungen und hebt neue Änderungen für Dich hervor. Wenn der Inhalt fertig ist, produziert SMASHDOCs mit einem Klick ein fertig designtes Dokument.&lt;/p&gt;</description></item><item><title>Creating Content Together - Collaborative CMS solutions</title><link>https://blog.zopyx.com/post/</link><pubDate>Wed, 29 Mar 2017 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/post/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-13.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;Earlier this year we started with the &lt;a href="https://www.andreas-jung.com/contents/integration-of-plone-5-with-the-smashdocs-authoring-solution"&gt;integration&lt;/a&gt; of the collaborative editor &lt;a href="http://www.smashdocs.net/"&gt;SMASHDOCs&lt;/a&gt; in Plone 5.&lt;/p&gt;&#10;&lt;p&gt;Our goal for 2017 is to provide integrations of SMASHDOCs for all major CMS implementations like Drupal, Joomla, Typo3, Wordpress and others.&lt;/p&gt;&#10;&lt;p&gt;The technical foundation of all CMS specific implementations are language specific wrappers of the SMASHDOCs webservice API.&lt;/p&gt;&#10;&lt;p&gt;At the moment we provide wrappers for the following languages:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://pypi.python.org/pypi/zopyx.smashdocs"&gt;Python 2.7, Python 3.3+&lt;/a&gt; (working, tested)&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://github.com/zopyx/zopyx.nodejs.smashdocs"&gt;Javascript/NodeJS&lt;/a&gt; (working, tested)&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://packagist.org/packages/zopyx/smashdocs"&gt;PHP 7.X&lt;/a&gt; (working, tested)&lt;/li&gt;&#10;&lt;li&gt;C# (work in progress)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;All wrappers will be provided for free under the GNU Public License V2 (GPL2). All wrapper share basically the same common API which is fully &lt;a href="http://smashdocs.readthedocs.io/en/latest/"&gt;documented&lt;/a&gt; for Python.&lt;/p&gt;</description></item><item><title>Interview with Andreas Jung on PDF generation and CSS Paged Media</title><link>https://blog.zopyx.com/interview-with-andreas-jung-on-pdf-generation-and-css-paged-media/</link><pubDate>Mon, 27 Feb 2017 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/interview-with-andreas-jung-on-pdf-generation-and-css-paged-media/</guid><description>&lt;p&gt;&lt;a href="http://tosbourn.com/andreas-jung-interview/"&gt;&lt;img src="https://blog.zopyx.com/images/Screenshot%202017-02-27%2016.47.01.png" alt="interview-andreas-jung-pdf" title="interview-andreas-jung-pdf"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Integration of Plone 5 with SMASHDOCS</title><link>https://blog.zopyx.com/integration-of-plone-5-with-smashdocs/</link><pubDate>Tue, 06 Dec 2016 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/integration-of-plone-5-with-smashdocs/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini.gif" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;We are proud to present the integration of  &lt;a href="http://www.smashdocs.net/"&gt;&lt;strong&gt;SMASHDOCS&lt;/strong&gt;&lt;/a&gt; - &amp;ldquo;a web-based intelligent word processing platform&amp;rdquo; - with &lt;a href="http://www.plone.org/"&gt;&lt;strong&gt;Plone 5&lt;/strong&gt;.&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Smashdocs allows you to work as a group of editors or commentators on documents. #&lt;/p&gt;&#10;&lt;p&gt;Smashdocs supports&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;the standard editor functionality in combination with change tracking&lt;/li&gt;&#10;&lt;li&gt;review of changes,&lt;/li&gt;&#10;&lt;li&gt;commenting,&lt;/li&gt;&#10;&lt;li&gt;approval or rejection of changes.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Smashdocs can be compared to Google Docs but it works completely different and it is much smarter about versioning, collaboration features and approving or rejecting changes.&lt;/p&gt;</description></item><item><title>Bringing real collaborative editing to Plone</title><link>https://blog.zopyx.com/bringing-real-collaborative-editing-to-plone/</link><pubDate>Tue, 08 Nov 2016 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/bringing-real-collaborative-editing-to-plone/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-1.gif" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;As part of our professional publishing strategy we will bring real collaborative editing to Plone.&lt;/p&gt;&#10;&lt;p&gt;We started with the integration of &lt;strong&gt;&lt;a href="http://www.smashdocs.net/"&gt;Smashdocs&lt;/a&gt;&lt;/strong&gt; - &amp;ldquo;a web-based intelligent word processing platform&amp;rdquo;.&lt;/p&gt;&#10;&lt;p&gt;Smashdocs is about collaborative editing in the browser with decent support for collaborative and concurrent authoring, tracking changes, discuss and comment on content, review and approve/reject content changes. Smashdocs support different roles: readers, commentators, editors and approvers.&lt;/p&gt;&#10;&lt;p&gt;Here is a quick&amp;amp;dirty &lt;a href="http://public.zopyx.com/Plone-Smashdocs.mp4"&gt;screencast&lt;/a&gt; showing the first cut of the integration with Plone 5.&lt;/p&gt;</description></item><item><title>Press release: XML-Director 2.0 released</title><link>https://blog.zopyx.com/press-release-xml-director-2-0-released/</link><pubDate>Fri, 16 Sep 2016 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/press-release-xml-director-2-0-released/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-14.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;Find the official &lt;a href="https://xml-director.info/files/PM-XML-Director-2.0-en.pdf"&gt;press release&lt;/a&gt; for the recent &lt;strong&gt;XML Director 2.0 release&lt;/strong&gt; &lt;a href="https://xml-director.info/files/PM-XML-Director-2.0-en.pdf"&gt;here&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Don't use "docker" in Github repo names or as Twitter handles</title><link>https://blog.zopyx.com/dont-use-docker-in-github-repo-names-or-as-twitter-handles/</link><pubDate>Tue, 13 Sep 2016 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/dont-use-docker-in-github-repo-names-or-as-twitter-handles/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-15.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;The &lt;a href="https://www.docker.com/trademark-guidelines"&gt;trademark guidlines of Docker Inc.&lt;/a&gt; for protecting the trademarks are dangerous and harmful to the open-source community around Docker.&lt;/p&gt;&#10;&lt;p&gt;In particular you are not allowed to use&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;repository names for your open-source projects &lt;strong&gt;starting with &amp;lsquo;docker&amp;rsquo;&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;use &lt;strong&gt;&amp;lsquo;docker&amp;rsquo; as part of a Twitter names&lt;/strong&gt; like @dockersucks, @dockerfan or @docker-usergroup-nyc&lt;/li&gt;&#10;&lt;li&gt;&amp;hellip;.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;I asked Docker Inc. about using &amp;lsquo;docker-&amp;rsquo; as part of some of my repository projects on Github.&lt;/p&gt;&#10;&lt;p&gt;So here is there answer:&lt;/p&gt;</description></item><item><title>XML-Director 2.0 update</title><link>https://blog.zopyx.com/xml-director-2-0-update/</link><pubDate>Fri, 26 Aug 2016 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/xml-director-2-0-update/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-16.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;XML-Director is our Plone-based integration and implementation platform for delivering enterprise-grade publishing solutions to customers.&lt;/p&gt;&#10;&lt;h3 id="the-core-features-of-xml-director-are"&gt;The core features of XML-Director are:&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;transparent application access to XML databases (&lt;a href="http://exist-db.org/"&gt;Exist-DB,&lt;/a&gt; &lt;a href="http://basex.org/"&gt;BaseX&lt;/a&gt;, &lt;a href="http://marklogic.com/"&gt;Marclogic Server&lt;/a&gt;), DMS (Alfresco), WebDAV-based storages (Dropbox, Sharepoint) and cloud storages like Dropbox, Google Drive or S3&lt;/li&gt;&#10;&lt;li&gt;registries for XML validation and XML transformations&lt;/li&gt;&#10;&lt;li&gt;export and import of data and content&lt;/li&gt;&#10;&lt;li&gt;a REST API for managing content, workflows and conversions&lt;/li&gt;&#10;&lt;li&gt;a very secure CMS with workflow support, user and group management etc. based on the CMS &lt;a href="http://www.plone.org/"&gt;Plone&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="due-to-its-modular-and-generic-design-xml-director-is-capable-to-integrate-third-party-conversion-services-easily-and-seamlessly"&gt;Due to its modular and generic design, XML-Director is capable to integrate third-party conversion services easily and seamlessly:&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;conversion from DOCX to XML (and back to DOCX lossless) using &lt;a href="http://www.c-rex.net/app/"&gt;C-REX&lt;/a&gt; conversion service&lt;/li&gt;&#10;&lt;li&gt;conversion from XML/HTML to high-quality PDF (supporting PDF converters like &lt;a href="http://princexml.com/"&gt;PrinceXML&lt;/a&gt;, &lt;a href="http://pdfreactor.com/"&gt;PDFreactor&lt;/a&gt; or &lt;a href="http://antennahouse.com/"&gt;Antennahouse&lt;/a&gt;)&lt;/li&gt;&#10;&lt;li&gt;EPUB conversion using &lt;a href="https://bookalope.net/"&gt;Bookalope&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;DITA conversion (using &lt;a href="http://www.dita-ot.org/"&gt;DITA-OT&lt;/a&gt; or XMLMind &lt;a href="http://www.xmlmind.com/ditac/"&gt;DITAC&lt;/a&gt;)&lt;/li&gt;&#10;&lt;li&gt;various XML related transformations using &lt;a href="http://transpect.github.io/"&gt;Transpect&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;integration with &lt;a href="https://calibre-ebook.com/"&gt;Calibre&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="in-xml-director-version-20-soft-released-lately-we-introduce-some-more-new-features"&gt;In XML-Director Version 2.0 (soft-released lately) we introduce some more new features&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;full support for Plone 5.0 and 5.1&lt;/li&gt;&#10;&lt;li&gt;a new user interface for navigating and filtering your content and data&lt;/li&gt;&#10;&lt;li&gt;a reimplemented import form for zipped content or a new multi-file upload&lt;/li&gt;&#10;&lt;li&gt;support for Dropbox as content source&lt;/li&gt;&#10;&lt;li&gt;integration Twitter and Facebook for pushing content updated directly to social media&lt;/li&gt;&#10;&lt;li&gt;integration with &lt;a href="http://eubeta.nimbudocs.com/"&gt;Nimbudocs&lt;/a&gt; editor for building decent &lt;a href="http://webtoprint.zopyx.com/"&gt;WYSIWYG  web-to-print applications&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="work-in-progress"&gt;Work-in-progress&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;an easy-to-use browser-based &lt;a href="https://en.wikipedia.org/wiki/Darwin_Information_Typing_Architecture"&gt;DITA&lt;/a&gt; topic editor&lt;/li&gt;&#10;&lt;li&gt;a graphical &lt;a href="https://en.wikipedia.org/wiki/Darwin_Information_Typing_Architecture"&gt;DITA&lt;/a&gt; map composer for creating maps from existing content repositories using drag &amp;amp; drop&lt;/li&gt;&#10;&lt;li&gt;integration with &lt;a href="http://smashdocs.net/"&gt;Smashdocs&lt;/a&gt; editor&lt;/li&gt;&#10;&lt;li&gt;planned: integration with &lt;a href="http://xeditor.com/"&gt;XEditor&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;planned: integration with &lt;a href="https://www.oxygenxml.com/xml_web_author.html"&gt;oXygen XML Web Author&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="our-references"&gt;Our References&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.produce-and-publish.com/showcase/references"&gt;Complete list of reference related to Produce &amp;amp; Publish and XML Director&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://xml-director.info/files/Onkopedia-EN.pdf"&gt;Onkopedia Casestudy - XML-based publishing with Plone, Exist-DB and XML-Director&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://xml-director.info/files/Onkopedia-DE.pdf"&gt;Onkopedia Casestudy - XML-based publishing with Plone, Exist-DB and XML-Director (German)&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="contact"&gt;Contact&lt;/h3&gt;&#10;&lt;p&gt;ZOPYX Andreas Jung&lt;br&gt;&#10;&lt;a href="mailto:info@zopyx.com"&gt;info@zopyx.com&lt;/a&gt;&lt;br&gt;&#10;&lt;a href="http://www.zopyx.com/"&gt;www.zopyx.com&lt;/a&gt;&lt;br&gt;&#10;&lt;a href="http://www.xml-director.info/"&gt;www.xml-director.info&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Stellungnahme der Antidiskriminierungsstelle des Bundes zur Beförderung von großen Personen bei Airlines</title><link>https://blog.zopyx.com/stellungnahme-der-antidiskriminierungsstelle-des-bundes-zur-beforderung-von-grossen-personen-bei-airlines/</link><pubDate>Fri, 29 Jul 2016 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/stellungnahme-der-antidiskriminierungsstelle-des-bundes-zur-beforderung-von-grossen-personen-bei-airlines/</guid><description>&lt;h4 id="in-einer-formlosen-anfrage-an-die-antidiskriminierungsstelle-des-bundes-habe-ich-gefragt-ob-es-das-zusammenpferchen-von-großen-personen-wie-mich-203cm-in-der-economy-klasse-der-meisten-airlines-auf-dem-platz-einer-legehenne-rechtlich-vereinbar-ist-und-ob-sich-aus-der-körpergrösse-ein-anrecht-auf-eine-menschenwürdige-beförderung-ableiten-lässt-die-antidiskriminierungsstelle-antwortet-mit-einer-interessanten-rechtseinschätzung"&gt;In einer formlosen Anfrage an die Antidiskriminierungsstelle des Bundes habe ich gefragt, ob es das Zusammenpferchen von großen Personen wie mich (203cm) in der Economy Klasse der meisten Airlines auf dem Platz einer Legehenne rechtlich vereinbar ist und ob sich aus der Körpergrösse ein Anrecht auf eine menschenwürdige Beförderung ableiten lässt. Die Antidiskriminierungsstelle antwortet mit einer interessanten Rechtseinschätzung&amp;hellip;.&lt;/h4&gt;&#10;&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/Screenshot-2016-07-29-11.42.04.png" alt=""&gt;&lt;/p&gt;</description></item><item><title>Cross-browser hyphenation support for Plone 5</title><link>https://blog.zopyx.com/cross-browser-hyphenation-support-for-plone-5/</link><pubDate>Thu, 28 Jul 2016 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/cross-browser-hyphenation-support-for-plone-5/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-21.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;Browsers - even in 2016 - are in general bad when it comes to hyphenation using CSS. CSS provides support for hyphenation for a long-time through &lt;strong&gt;hyphens: auto.&lt;/strong&gt; However most browser excepts Firefox do not support hyphenation of text. There are some Javascript add-ons around for providing  hyphenation support across all browsers and most common languages - solutions like &lt;a href="https://github.com/mnater/Hyphenator"&gt;Hyphenator&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;In general hyphenation on the web is not that important as hyphenation in print due to different display sizes, responsive design etc. However in some situations you want proper hyphenation for words or texts when the horizontal width of a box is limited and the standard word breaking algorithms of browser just generate a bad result.&lt;/p&gt;</description></item><item><title>Plone 5 and XML-Director 2.0 with Dropbox integration</title><link>https://blog.zopyx.com/plone-5-and-xml-director-2-0-with-dropbox-integration/</link><pubDate>Fri, 22 Jul 2016 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/plone-5-and-xml-director-2-0-with-dropbox-integration/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-22.png" alt=""&gt;&lt;/p&gt;</description></item><item><title>Searching for web/frontend freelancer (German-speaking, Germany-based)</title><link>https://blog.zopyx.com/searching-for-web-frontend-freelancer-german-speaking-germany-based/</link><pubDate>Fri, 10 Jun 2016 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/searching-for-web-frontend-freelancer-german-speaking-germany-based/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image.gif" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;We are looking for some upcoming projects support by a web/frontend developer.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;MUST speak GERMAN fluently&lt;/li&gt;&#10;&lt;li&gt;MUST be based in Germany&lt;/li&gt;&#10;&lt;li&gt;MUST be able to travel within Germany (&lt;strong&gt;Hamburg&lt;/strong&gt;, Berlin, Stuttgart area)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Applicant must be fluent with&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Javascript, jQuery and related frameworks&lt;/li&gt;&#10;&lt;li&gt;AngularJS 2 and/or ReactJS&lt;/li&gt;&#10;&lt;li&gt;CSS&lt;/li&gt;&#10;&lt;li&gt;tools like SaSS, Less, Bootstrap or related Frameworks&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Applicant must be able to able to design decent web user interface.&lt;br&gt;&#10;You should have a reasonable understand of the &amp;ldquo;mobile first&amp;rdquo; approach&lt;br&gt;&#10;and some background in building &amp;ldquo;progressive web apps&amp;rdquo;. You should be familar&lt;br&gt;&#10;with the most decent tools in web/mobile development etc.&lt;/p&gt;</description></item><item><title>Technical insights into our Web-to-Print solutions architecture</title><link>https://blog.zopyx.com/technical-insights-into-our-web-to-print-solutions-architecture/</link><pubDate>Tue, 03 May 2016 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/technical-insights-into-our-web-to-print-solutions-architecture/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-24.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;This is a followup to two earlier blog posts [&lt;a href="https://blog.zopyx.com/andreas-jung/contents/plone-5-as-foundation-for-xml-director-web-to-print-solutions"&gt;1&lt;/a&gt; &lt;a href="https://blog.zopyx.com/andreas-jung/contents/plone-5-as-foundation-for-xml-director-web-to-print-solutions-continued"&gt;2&lt;/a&gt;] related to our &lt;a href="https://xml-director.info/"&gt;XML-Director&lt;/a&gt; Web-to-Print  approach.&lt;/p&gt;&#10;&lt;p&gt;Today we added &lt;a href="http://web2print.xml-director.info/css-paged-media"&gt;section&lt;/a&gt; that describes some internals - in particular how to write templates and styling.&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="http://web2print.zopyx.com/"&gt;&lt;strong&gt;Web-to-Print demo portal&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Plone 5 as foundation for XML Director Web-to-Print solutions (continued)</title><link>https://blog.zopyx.com/plone-5-as-foundation-for-xml-director-web-to-print-solutions-continued/</link><pubDate>Wed, 27 Apr 2016 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/plone-5-as-foundation-for-xml-director-web-to-print-solutions-continued/</guid><description>&lt;h4 id="xml-director-is-an-generic-solution-for-building-xml-based-content-management-solutions-based-on-the-cms-plone-this-video-shows-how-we-build-easy-to-use-web-to-print-applications-using-css-paged-media-xmlhtml-for-input-css-for-layout-and-styling-this-demo-features-the-pdfreactor-pdf-converter-and-the-nimbudocs-wysiwyg-editor-by-realobjects-plone-5-as-foundation-for-xml-director-web-to-print-solutions"&gt;XML Director is an generic solution for building XML-based content management solutions based on the CMS Plone. This video shows how we build easy-to-use web-to-print applications using CSS Paged Media (XML/HTML for input, CSS for layout and styling). This demo features the PDFreactor PDF converter and the Nimbudocs WYSIWYG editor by RealObjects. Plone 5 as foundation for XML Director Web-to-Print solutions&lt;/h4&gt;&#10;&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-25.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;This is a follow of my blog entry from &lt;a href="https://blog.zopyx.com/andreas-jung/contents/plone-5-as-foundation-for-xml-director-web-to-print-solutions"&gt;yesterday&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Plone 5 as foundation for XML Director Web-to-Print solutions</title><link>https://blog.zopyx.com/plone-5-as-foundation-for-xml-director-web-to-print-solutions/</link><pubDate>Tue, 26 Apr 2016 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/plone-5-as-foundation-for-xml-director-web-to-print-solutions/</guid><description>&lt;h4 id="xml-director-is-an-generic-solution-for-building-xml-based-content-management-solutions-based-on-the-cms-plone-this-video-shows-how-we-build-easy-to-use-web-to-print-applications-using-css-paged-media-xmlhtml-for-input-css-for-layout-and-styling-this-demo-features-the-pdfreactor-pdf-converter-and-the-nimbudocs-wysiwyg-editor-by-realobjects"&gt;XML Director is an generic solution for building XML-based content management solutions based on the CMS Plone. This video shows how we build easy-to-use web-to-print applications using CSS Paged Media (XML/HTML for input, CSS for layout and styling). This demo features the PDFreactor PDF converter and the Nimbudocs WYSIWYG editor by RealObjects.&lt;/h4&gt;&#10;&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-26.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;The migration of &lt;a href="https://xml-director.info/"&gt;XML Director&lt;/a&gt; to Plone 5 is making big progress. As part of the ongoing effort I extended XML Director as web-to-print solution platform.&lt;/p&gt;</description></item><item><title>XML Director now with native Dropbox support</title><link>https://blog.zopyx.com/xml-director-now-with-native-dropbox-support/</link><pubDate>Thu, 31 Mar 2016 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/xml-director-now-with-native-dropbox-support/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-27.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;Our &lt;a href="https://xml-director.info/"&gt;&lt;strong&gt;XML Director&lt;/strong&gt;&lt;/a&gt; project now gained native support for Dropbox. &amp;ldquo;&lt;strong&gt;Native&lt;/strong&gt;&amp;rdquo; means that you no longer need a third-party SaaS bridge like &lt;a href="http://otixo.com/"&gt;Otixo&lt;/a&gt; or &lt;a href="http://www.storagemadeeasy.com/"&gt;StorageMadeEasy&lt;/a&gt;. Here is a quick and dirty &lt;a href="https://public.zopyx.com/dropbox-xmldirector.mp4"&gt;screencast&lt;/a&gt;. This complements the storage story of Plone with external storage system. See my talk &lt;strong&gt;&lt;a href="http://www.slideshare.net/ajung/building-bridges-plone-conference-2015-bucharest"&gt;&amp;quot;&lt;/a&gt;&lt;/strong&gt;&lt;a href="http://www.slideshare.net/ajung/building-bridges-plone-conference-2015-bucharest"&gt;&lt;strong&gt;Building bridges&amp;quot;&lt;/strong&gt;&lt;/a&gt; given at Plone Conference 2015. The Dropbox driver for XML Director will be made available against a small fee in order to compensate the upfront cost for updating the low-level Dropbox driver for &lt;a href="http://www.slideshare.net/ajung/pyfilesystem"&gt;&lt;strong&gt;pyfilesystem&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Survey on integrations of third-party services, clouds, storages with Plone</title><link>https://blog.zopyx.com/survey-on-integrations-of-third-party-services-clouds-storages-with-plone/</link><pubDate>Wed, 02 Mar 2016 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/survey-on-integrations-of-third-party-services-clouds-storages-with-plone/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-28.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;I created a small suvery on integrating Plone with third-party services, storages and clouds.&lt;/p&gt;&#10;&lt;p&gt;URL: &lt;a href="https://docs.google.com/forms/d/11A31lqYzlWaDUqVxD2VPeChlznfuJwSDzuzoqay0xCk/edit?usp=drive_web"&gt;https://docs.google.com/forms/d/11A31lqYzlWaDUqVxD2VPeChlznfuJwSDzuzoqay0xCk/edit?usp=drive_web&lt;/a&gt;&lt;/p&gt;</description></item><item><title>print-css.rocks launched</title><link>https://blog.zopyx.com/print-css-rocks-launched/</link><pubDate>Sun, 17 Jan 2016 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/print-css-rocks-launched/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/PRINT-CSS-BANNER-UPDATED.jpg" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;Today we lauched a new website &lt;a href="https://www.print-css.rocks/"&gt;www.print-css.rocks&lt;/a&gt; soley dedicated to CSS Paged Media.&lt;/p&gt;&#10;&lt;p&gt;CSS Paged Media is an approach for generating high-quality PDF document from XML or HTML as input and CSS for styling and layout.&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://www.print-css.rocks/"&gt;print-css.rocks&lt;/a&gt; is both a showcase and a tutorial for CSS Paged Media. In a growing number of lessons we show different features of CSS Paged Media and we learn how different converters behave with the same input.&lt;/p&gt;</description></item><item><title>CSS Paged Media workshop XML Prague 2016</title><link>https://blog.zopyx.com/css-paged-media-workshop-xml-prague-2016/</link><pubDate>Thu, 07 Jan 2016 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/css-paged-media-workshop-xml-prague-2016/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-29.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;I will attend the &lt;a href="http://www.xmlprague.cz/"&gt;XML Prague 201&lt;/a&gt;6 conference from February 11th to 13th and give a hands-on-training on&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="http://www.xmlprague.cz/day3-2016/"&gt;&lt;strong&gt;CSS Paged Media and generating high-quality PDF documents from XML/HTML&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;The training will involve a lot of live coding in order to show you what you ask and what want to see.&lt;/p&gt;&#10;&lt;p&gt;The training material will evolve over the next few weeks in our public repository &lt;a href="https://github.com/zopyx/css-paged-media-tutorial"&gt;https://github.com/zopyx/css-paged-media-tutorial&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;The training consists of two slots:&lt;/p&gt;</description></item><item><title>XML Director 1.3 released</title><link>https://blog.zopyx.com/xml-director-1-3-released/</link><pubDate>Mon, 21 Dec 2015 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/xml-director-1-3-released/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-30.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;I am pleased to announce the release of XML-Director &lt;a href="https://pypi.python.org/pypi/xmldirector.plonecore/1.3.0"&gt;Version 1.3&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;Version 1.3  now supports much more storage backends like finally the local filesystem, Amazon S3, Alfresco, Owncloud and third-party storage integrations like &lt;a href="http://storagemadeeasy.com/"&gt;StorageMadeEasy&lt;/a&gt; and &lt;a href="http://otixo.com/"&gt;Otixo&lt;/a&gt;. In addition a huge amount of effort went into testing XML-Director against various storages. Each single source commit is directly tested against more than a hundred unittests running agains 14 different software and storage combinations.&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://blog.zopyx.com/andreas-jung/contents/screenshot-2015-10-18-12-18-18.png/image_preview" alt="" title="XML Director Travis"&gt;&lt;/p&gt;</description></item><item><title>XML Director 1.3 update</title><link>https://blog.zopyx.com/xml-director-1-3-update/</link><pubDate>Sun, 18 Oct 2015 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/xml-director-1-3-update/</guid><description>&lt;h4 id="the-xml-director-add-on-for-plone-4-and-5-allows-you-to-mount-external-storage-and-web-services-into-plone-using-a-unified-approach-and-api-many-common-protocols-like-webdav-or-s3-are-supported-out-of-the-box-services-like-sharepoint-evernote-etc-can-be-connected-with-plone-through-3rd-party-saas-bridges"&gt;The &amp;ldquo;XML Director&amp;rdquo; add-on for Plone 4 and 5 allows you to mount external storage and web services into Plone using a unified approach and API. Many common protocols like WebDAV or S3 are supported out of the box. Services like Sharepoint, Evernote etc. can be connected with Plone through 3rd-party SaaS bridges.&lt;/h4&gt;&#10;&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-31.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;At Plone Conference 2015 in Bucharest I &lt;a href="http://de.slideshare.net/ajung/building-bridges-plone-conference-2015-bucharest"&gt;presented&lt;/a&gt; the state of the &lt;a href="http://www.xml-director.info/"&gt;XML Director&lt;/a&gt; project.&lt;/p&gt;&#10;&lt;p&gt;The upcoming version 1.3 will feature improved support for various external storages&lt;/p&gt;</description></item><item><title>Mount support for further filesystem types into Plone (Dropbox, Local FS)</title><link>https://blog.zopyx.com/mount-support-for-further-filesystem-types-into-plone-dropbox-local-fs/</link><pubDate>Sat, 26 Sep 2015 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/mount-support-for-further-filesystem-types-into-plone-dropbox-local-fs/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-32.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;This is a followup posting to &amp;ldquo;&lt;a href="https://blog.zopyx.com/andreas-jung/contents/towards-a-generic-integration-of-external-data-sources-into-plone"&gt;Towards a generic integration of external data sources into Plone&lt;/a&gt;&amp;rdquo; that I wrote last year.&lt;/p&gt;&#10;&lt;p&gt;The key to mounting arbitrary filesystems (local and remote) into a Plone instance is my &lt;a href="https://xml-director.info/"&gt;&lt;strong&gt;XML Director&lt;/strong&gt;&lt;/a&gt; (&lt;a href="https://pypi.python.org/pypi/xmldirector.plonecore"&gt;xmldirector.plonecore)&lt;/a&gt; project. Don&amp;rsquo;t be confused about the &amp;ldquo;&lt;strong&gt;XML&lt;/strong&gt;&amp;rdquo; in the project but the project started as an integration solution for accessing XML databases from within Plone with a tight integration and access to Plone functionality. XML Director became very mature over the last month and works since some month smooth and without problems in production as part of the &lt;a href="https://blog.zopyx.com/andreas-jung/contents/xml-driven-plone-portal-onkopedia-finally-only"&gt;Onkopedia&lt;/a&gt; (&lt;a href="https://www.onkopedia.com/"&gt;www.onkopedia.com&lt;/a&gt;) project. The current release features support for accessing XML databases like eXistDB (2.2 and 3.0) and BaseX (8.2, 8.3). The integration is build on top of pyfilesystem which abstracts lots of different filesystem types and makes them accessible through a transparent and unified API. This means (in theory) that your code will run against a local filesystem in the same way as against S3 or a WebDAV server.&lt;/p&gt;</description></item><item><title>collective.elasticindex: Plone integration with Elasticsearch</title><link>https://blog.zopyx.com/collective-elasticindex-plone-integration-with-elasticsearch/</link><pubDate>Sun, 30 Aug 2015 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/collective-elasticindex-plone-integration-with-elasticsearch/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-33.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;Over the last few weeks I had been working on a new enhanced version of collective.elasticindex. collective.elasticindex was originally written and maintained by &lt;a href="http://www.infrae.nl/"&gt;Infrae&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;A better fulltext search in Plone was always demanded by customers of the last years. TextIndexNG3 solved this problem for a long time. However no solution is perfect and every software has its time. So it was straight forward moving forward to Elasticsearch.&lt;/p&gt;&#10;&lt;p&gt;Why not Solr? &amp;hellip;too boring&amp;hellip;uses XML&amp;hellip;not sexy enough. Elasticsearch in general has a lot of momentum right now and is easier to setup and maintain.&lt;/p&gt;</description></item><item><title>Converting DITA to PDF using CSS Paged Media</title><link>https://blog.zopyx.com/converting-dita-to-pdf-using-css-paged-media/</link><pubDate>Wed, 26 Aug 2015 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/converting-dita-to-pdf-using-css-paged-media/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-4.jpg" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;Historically PDF conversion of &lt;a href="https://en.wikipedia.org/wiki/Darwin_Information_Typing_Architecture"&gt;DITA&lt;/a&gt; content is closely tied to XSL-FO. However there are alternative ways to get from DITA to PDF. The classic XML addicted will likely disagree but going from DITA XML to PDF through CSS Paged Media appears more reasonable and much easier. The first step is to generate a single-source (X)HTML file form a DITA map.&lt;/p&gt;&#10;&lt;p&gt;This can be done by either the &lt;a href="http://www.dita-ot.org/"&gt;DITA Open Toolkit&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;dita -f html5 -i my.ditamap -o out/my.html -Droot-chunk-override=to-content&lt;/code&gt;&lt;/p&gt;</description></item><item><title>XML-based Publishing with Plone, Exist-DB and XML-Director - onkopedia.com case study published</title><link>https://blog.zopyx.com/xml-based-publishing-with-plone-exist-db-and-xml-director-onkopedia-com-case-study-published/</link><pubDate>Fri, 17 Jul 2015 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/xml-based-publishing-with-plone-exist-db-and-xml-director-onkopedia-com-case-study-published/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-34.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;This is a followup to my former blog post &lt;a href="https://www.andreas-jung.com/contents/xml-driven-plone-portal-onkopedia-finally-only"&gt;&lt;strong&gt;XML-driven Plone portal &amp;ldquo;Onkopedia&amp;rdquo; finally online&amp;quot;&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;There is now a project case study available in &lt;a href="https://xml-director.info/files/Onkopedia-EN.pdf"&gt;English&lt;/a&gt; and &lt;a href="https://xml-director.info/files/Onkopedia-DE.pdf"&gt;German&lt;/a&gt;.&lt;/p&gt;&#10;&lt;h3 id="references"&gt;References&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://xml-director.info/files/Onkopedia-DE.pdf"&gt;https://xml-director.info/files/Onkopedia-DE.pdf&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://xml-director.info/files/Onkopedia-EN.pdf"&gt;https://xml-director.info/files/Onkopedia-EN.pdf&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.onkopedia.com/"&gt;www.onkopedia.com&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.onkopedia-guidelines.info/"&gt;www.onkopedia-guidelines.info&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>The Docker way on dealing with "security"</title><link>https://blog.zopyx.com/the-docker-way-on-dealing-with-security/</link><pubDate>Thu, 25 Jun 2015 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/the-docker-way-on-dealing-with-security/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-35.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;DOCKER - The next generation bullshit in IT&lt;/p&gt;&#10;&lt;p&gt;Docker recently launched the beta version of their new Docker image hub (&lt;a href="https://hub-beta.docker.com/"&gt;hub-beta.docker.com&lt;/a&gt;), a registry for public and private Docker images.&lt;/p&gt;&#10;&lt;p&gt;How serious is Docker about security?&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Completely unserious&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;p&gt;The first version of the new hub required a minimal password length of exactly one character. After laughing about their password security policy they changed it to four characters and recently the minimum password length is now finally six characters? What&amp;rsquo;s next? Seven chars? Eight chars? This is the best example that the Docker devs do not have the slighest idea about basic security. All services moved forward to longer password, more complex passwords, two factor authentication and these untalented Docker dev kids  introduce a one character minimum password policy for hub-beta.docker.com&amp;hellip;.find the problem yourself&amp;hellip;&lt;/p&gt;</description></item><item><title>Moving forward with Elasticsearch and Plone</title><link>https://blog.zopyx.com/moving-forward-with-elasticsearch-and-plone/</link><pubDate>Tue, 23 Jun 2015 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/moving-forward-with-elasticsearch-and-plone/</guid><description>&lt;p&gt;We are currently working on a better integration of Elasticsearch with Plone 4.3 and 5.0. The technical foundation of our work is the collective.elasticindex implementation by Infrae. While the collective.elasticindex add-on is working nicely out of the box, we have the need to bring the Elasticsearch integration of Plone a bit forward.&lt;/p&gt;&#10;&lt;p&gt;Project goals&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;support for Plone 4.3 and 5&lt;/li&gt;&#10;&lt;li&gt;proper support for multi-lingual content&lt;/li&gt;&#10;&lt;li&gt;language dependent analyzers on the Elasticsearch (german text should be analyzed in ES with the german analyzer etc)&lt;/li&gt;&#10;&lt;li&gt;more flexible configuration of the ES indicies&lt;/li&gt;&#10;&lt;li&gt;fast search feedback (find-as-you-type)&lt;/li&gt;&#10;&lt;li&gt;&amp;ldquo;real-time&amp;rdquo; filtering of search results by meta data (similar to extended search)&lt;/li&gt;&#10;&lt;li&gt;better highlighting support&lt;/li&gt;&#10;&lt;li&gt;easier customization of the search result list using Mustache&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Right now we are moving fast and ripping and replacing old code with new code where needed. We hope to create an alpha release within the next weeks that will hopefully run on Plone 4.3 and Plone 5.&lt;/p&gt;</description></item><item><title>XML-driven Plone portal "Onkopedia" finally online</title><link>https://blog.zopyx.com/xml-driven-plone-portal-onkopedia-finally-online/</link><pubDate>Fri, 22 May 2015 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/xml-driven-plone-portal-onkopedia-finally-online/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-5.jpg" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;I am pleased to announce the official (re)launch of the the &lt;a href="https://www.onkopedia.com/"&gt;&lt;strong&gt;Onkopedia&lt;/strong&gt;&lt;/a&gt; (&lt;a href="https://www.onkopedia.com"&gt;www.onkopedia.com&lt;/a&gt;) portal after one year of hard conceptual and implementation work.&lt;/p&gt;&#10;&lt;p&gt;Onkopedia is a medical guideline portal in the field of hematology and oncology. It features offical  guidelines for the diagnosis and treatment of diseases. The guidelines and supplementary documents are grouped by audience:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Onkopedia for physicians&lt;/li&gt;&#10;&lt;li&gt;My Onkopedia for patients and their relatives&lt;/li&gt;&#10;&lt;li&gt;Onkopedia-P for caregivers&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;The Onkopedia project started in 2010 with a simple DOCX to HTML/PDF publishing workflow. After some years with a growning amount of context, new external requirements it became obvious that an updated infrastructure and a new publishing workflow would be necessary. XML as document standard was directly on the desk and ZOPYX started in 2014 with the conceptual design and architecture of Onkopedia.&lt;/p&gt;</description></item><item><title>CSS Paged Media workshop @XML London 2015</title><link>https://blog.zopyx.com/css-paged-media-workshop-xml-london-2015/</link><pubDate>Mon, 18 May 2015 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/css-paged-media-workshop-xml-london-2015/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-36.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;I will attend the &lt;a href="http://www.xmllondon.com/"&gt;XML London 2015&lt;/a&gt; conference from June 5th to 7th and give a hands-on-training on&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="http://xmllondon.com/pre-conference#css2pdf"&gt;&lt;strong&gt;CSS Paged Media and generating high-quality PDF documents from XML/HTML&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;The training will involve a lot of live coding in order to show you what you ask and what want to see.&lt;/p&gt;&#10;&lt;p&gt;The training material will evolve over the next two week in our public repository &lt;a href="https://github.com/zopyx/css-paged-media-tutorial"&gt;https://github.com/zopyx/css-paged-media-tutorial&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;The training consists of two slots:&lt;/p&gt;</description></item><item><title>New hands-on training "Generating high-quality PDF documents from XML and HTML using CSS Paged Media"</title><link>https://blog.zopyx.com/new-hands-on-training-generating-high-quality-pdf-documents-from-xml-and-html-using-css-paged-media/</link><pubDate>Tue, 31 Mar 2015 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/new-hands-on-training-generating-high-quality-pdf-documents-from-xml-and-html-using-css-paged-media/</guid><description>&lt;h3 id="introduction"&gt;Introduction&lt;/h3&gt;&#10;&lt;p&gt;&amp;ldquo;CSS Paged Media&amp;rdquo; turned into a serious solution for generating high-quality PDF documents from XML or HTML over the last years. The advantages of the CSS Paged Media approach obvious:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;basic knowledge in XML/HTML and CSS sufficient (you do not need to be an XML expert)&lt;/li&gt;&#10;&lt;li&gt;separation between content and layout/styling&lt;/li&gt;&#10;&lt;li&gt;easy to learn, easy to use&lt;/li&gt;&#10;&lt;li&gt;lower costs&lt;/li&gt;&#10;&lt;li&gt;higher flexibility&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="usecases"&gt;Usecases&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;text-oriented publications (books, newspapers, documentation etc.).&lt;/li&gt;&#10;&lt;li&gt;layout-oriented publictions (flyers, brochures, web-to-print applications)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="contents"&gt;Contents&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Introduction CSS Paged Media&lt;/li&gt;&#10;&lt;li&gt;The region model of CSS Paged Media&lt;/li&gt;&#10;&lt;li&gt;Basic formatting&lt;/li&gt;&#10;&lt;li&gt;Multi-column layouts&lt;/li&gt;&#10;&lt;li&gt;Mehrspaltiger Satz&lt;/li&gt;&#10;&lt;li&gt;Pagination&lt;/li&gt;&#10;&lt;li&gt;Images&lt;/li&gt;&#10;&lt;li&gt;Footnotes&lt;/li&gt;&#10;&lt;li&gt;Header and footer&lt;/li&gt;&#10;&lt;li&gt;Automatic table of content generation&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="requirements"&gt;Requirements&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;basic knowledge in XML/HTML and cascading stylesheets&lt;/li&gt;&#10;&lt;li&gt;basic knowledge in typography&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="software"&gt;Software&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;PDFreactor 7.0 (alternative: PrinceXML 9)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="price-and-location"&gt;Price and Location&lt;/h3&gt;&#10;&lt;p&gt;Our hands-on trainings usually usually takes place at your company or organization. We teach in small groups of up to three people. We offer an individual training based on your requirements, needs and the skills of your employees. The price depends on the number of training days and the location of the training. &lt;a href="mailto:info@zopyx.com"&gt;Contact us&lt;/a&gt; directly for further information and quotes.&lt;/p&gt;</description></item><item><title>callas software GmbH releases pdfChip - a quick test</title><link>https://blog.zopyx.com/callas-software-gmbh-releases-pdfchip-a-quick-test/</link><pubDate>Thu, 05 Mar 2015 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/callas-software-gmbh-releases-pdfchip-a-quick-test/</guid><description>&lt;p&gt;c&lt;a href="http://www.callassoftware.com/"&gt;allas software GmbH&lt;/a&gt; released today their &lt;a href="http://www.callassoftware.com/callas/doku.php/en:products:pdfChip"&gt;pdfChip&lt;/a&gt; PDF converter product that follows the same CSS Paged Media approach. We are using CSS Paged Media converters like &lt;a href="http://www.princexml.com/"&gt;PrinceXML&lt;/a&gt; or &lt;a href="http://www.pdfreactor.com/"&gt;PDFreactor&lt;/a&gt; for years for generating high-quality PDF documents from XML and HTML content. As an expert in this field I did some quick tests with  the new converter based on real-world customer content that are running our Produce &lt;a href="http://www.produce-and-publish.com/"&gt;&amp;amp; Publish&lt;/a&gt; solution in production for years.&lt;/p&gt;&#10;&lt;h3 id="quick-results"&gt;Quick results&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;the feature set of pdfChip is comparable to where PrinceXML and PDFreactor were two or three years ago&lt;/li&gt;&#10;&lt;li&gt;PDF quality is ok but behind other tools due to missing features like build-in hyphenation&lt;/li&gt;&#10;&lt;li&gt;no build-in hyphenation support (except using Javascript)&lt;/li&gt;&#10;&lt;li&gt;no multi-column support (documented)&lt;/li&gt;&#10;&lt;li&gt;no flexbox support (at least undocumented)&lt;/li&gt;&#10;&lt;li&gt;no support for page regions, named pages (at least undocumented)&lt;/li&gt;&#10;&lt;li&gt;no footnote support (at least undocumented)&lt;/li&gt;&#10;&lt;li&gt;does not seem to implement all the CSS (3) features that we see in decent versions of PrinceXML and PDFreactor (CSS dot leaders missing, hyphenation, no repetitive table headers when a table spans multiple pages)&lt;/li&gt;&#10;&lt;li&gt;Poor documentation&lt;/li&gt;&#10;&lt;li&gt;Worth the money? Definitely &lt;strong&gt;NO.&lt;/strong&gt; This product is completely &lt;a href="http://www.callassoftware.com/callas/doku.php/en:about"&gt;overpriced&lt;/a&gt;. The smallest version &lt;strong&gt;pdfChip S&lt;/strong&gt; costs 5000 EUR + VAT and allows to generate documents with up to 25 (twenty five) pages only! The next bigger version supports up to 250 pages per document for 10.000 EUR + VAT. Our customers have in general between 1 and 250 pages&amp;hellip;so 10.000 is a huge investment. The unlimited version costs 25.000 EUR. Even Antennahouse Formatter offering much more features and much better typographical quality for a better price. Our tools (PDFreactor, PrinceXML) are in the price range from 2.250 EUR to 3800 USD with almost no restrictions (except: requires a box with 4 or less CPUs). So you have to pay a three or four times higher price for a tool with less features and many restrictions? I think this ridiculous.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="update"&gt;Update&lt;/h3&gt;&#10;&lt;p&gt;The statement &amp;ldquo;&lt;strong&gt;The Paged Media Module is currently not supported by pdfChip&amp;rdquo;&lt;/strong&gt; makes it clear that pdfChip does not want to support the defacto standard for HTML/CSS based publishing or only to a certain degree. pdfChip appears half-baked and essential features that exist in other tools for years are missing. Unfortunately this product is also marketed as being superior over all other tools. This is not the case. There are better and cheaper alternatives.&lt;/p&gt;</description></item><item><title>Docker - the pain of finding the right distribution+kernel+hardware combination</title><link>https://blog.zopyx.com/docker-the-pain-of-finding-the-right-distribution-kernel-hardware-combination/</link><pubDate>Thu, 05 Mar 2015 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/docker-the-pain-of-finding-the-right-distribution-kernel-hardware-combination/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-6.jpg" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;Since two months I have been very busy with finding a working combination of Linux kernel, hardware and Linux distribution that would actually stable for running Docker in production. Only one out of eight combination worked for me.&lt;/p&gt;&#10;&lt;p&gt;Feel the pain and frustration?&lt;/p&gt;&#10;&lt;p&gt;All tests done with Docker 1.5.0 final without special configuration of the underlaying driver (AUFS vs. device mapper).&lt;/p&gt;&#10;&lt;table style="width:100%;"&gt;&#10;&lt;colgroup&gt;&#10;&lt;col style="width: 16%" /&gt;&#10;&lt;col style="width: 16%" /&gt;&#10;&lt;col style="width: 16%" /&gt;&#10;&lt;col style="width: 16%" /&gt;&#10;&lt;col style="width: 16%" /&gt;&#10;&lt;col style="width: 16%" /&gt;&#10;&lt;/colgroup&gt;&#10;&lt;thead&gt;&#10;&lt;tr class="header"&gt;&#10;&lt;th&gt;Linux Distribution&lt;/th&gt;&#10;&lt;th&gt;Kernel&lt;/th&gt;&#10;&lt;th&gt;Hardware&lt;/th&gt;&#10;&lt;th&gt;Hoster&lt;/th&gt;&#10;&lt;th&gt;Comment&lt;/th&gt;&#10;&lt;th&gt;Status&lt;/th&gt;&#10;&lt;/tr&gt;&#10;&lt;/thead&gt;&#10;&lt;tbody&gt;&#10;&lt;tr class="odd"&gt;&#10;&lt;td&gt;Ubuntu 14.04&lt;/td&gt;&#10;&lt;td&gt;3.13&lt;/td&gt;&#10;&lt;td&gt;Bare metal&lt;/td&gt;&#10;&lt;td&gt;Hosteurope&lt;/td&gt;&#10;&lt;td&gt;the only working combination (using AUFS)&lt;/td&gt;&#10;&lt;td&gt;WORKING&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr class="even"&gt;&#10;&lt;td&gt;Ubuntu 14.04&lt;/td&gt;&#10;&lt;td&gt;3.13&lt;/td&gt;&#10;&lt;td&gt;VM&lt;/td&gt;&#10;&lt;td&gt;Hosteurope&lt;/td&gt;&#10;&lt;td&gt;hoster-patched kernel in order to fit its OpenVZ virtualization&lt;/td&gt;&#10;&lt;td&gt;FAIL&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr class="odd"&gt;&#10;&lt;td&gt;OpenSuse 13.1&lt;/td&gt;&#10;&lt;td&gt;2.6&lt;/td&gt;&#10;&lt;td&gt;Bare metal&lt;/td&gt;&#10;&lt;td&gt;self-hosted&lt;/td&gt;&#10;&lt;td&gt;kernel panics after some minutes during a Docker build &lt;/td&gt;&#10;&lt;td&gt;FAIL&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr class="even"&gt;&#10;&lt;td&gt;OpenSuse 13.1&lt;/td&gt;&#10;&lt;td&gt;3.11&lt;/td&gt;&#10;&lt;td&gt;Bare metal&lt;/td&gt;&#10;&lt;td&gt;self-hosted&lt;/td&gt;&#10;&lt;td&gt;kernel panics once or twice a day during Docker builds (possibly related to BTRFS crashes)&lt;/td&gt;&#10;&lt;td&gt;FAIL&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr class="odd"&gt;&#10;&lt;td&gt;CentOS 6.6&lt;/td&gt;&#10;&lt;td&gt;2.6&lt;/td&gt;&#10;&lt;td&gt;VM&lt;/td&gt;&#10;&lt;td&gt;Hetzner&lt;/td&gt;&#10;&lt;td&gt;slow IO, long Docker builds (10 times slower than on the same VM), likely related&lt;br /&gt;&#10;to CentOS and/or the Docker device mapper (although &lt;a href="https://docs.docker.com/installation/centos/#installing-docker---centos-6.5"&gt;supported&lt;/a&gt; by Docker)&lt;/td&gt;&#10;&lt;td&gt;FAIL&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr class="even"&gt;&#10;&lt;td&gt;CentOS 7.0&lt;/td&gt;&#10;&lt;td&gt;&amp;gt;3.10&lt;/td&gt;&#10;&lt;td&gt;VM&lt;/td&gt;&#10;&lt;td&gt;Hetzner&lt;/td&gt;&#10;&lt;td&gt;slow IO, long Docker builds (10 times slower than on the same VM), likely related&lt;br /&gt;&#10;to CentOS and/or the Docker device mapper (although &lt;a href="https://docs.docker.com/installation/centos/#installing-docker---centos-6.5"&gt;supported&lt;/a&gt; by Docker). Also: Docker did not play well with the 'firewalld' of CentOS. Reconfiguration of the firewalld caused a network loss of all Docker containers and the docker daemon had to be restart....a major fail.&lt;/td&gt;&#10;&lt;td&gt;FAIL&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr class="odd"&gt;&#10;&lt;td&gt;Ubuntu 14.04&lt;/td&gt;&#10;&lt;td&gt;3.13&lt;/td&gt;&#10;&lt;td&gt;VM&lt;/td&gt;&#10;&lt;td&gt;Contabo&lt;/td&gt;&#10;&lt;td&gt;Docker builds much slower than directly on the same VM, not as extreme as with CentOS, Docker container execution speed OK&lt;/td&gt;&#10;&lt;td&gt;partly WORKING&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr class="even"&gt;&#10;&lt;td&gt;CentOS 7.0&lt;/td&gt;&#10;&lt;td&gt;3.13&lt;/td&gt;&#10;&lt;td&gt;VM&lt;/td&gt;&#10;&lt;td&gt;Contabo&lt;/td&gt;&#10;&lt;td&gt;same problems as with other CentOS versions&lt;/td&gt;&#10;&lt;td&gt;FAIL&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h3 id="conclusions"&gt;Conclusions:&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;CentOS is completely unusable for running Docker - at least with the default device-mapper&lt;/li&gt;&#10;&lt;li&gt;OpenSuse 13.1 problems likely related to BTRFS issues (in combination with the device-mapper)&lt;/li&gt;&#10;&lt;li&gt;running Docker on virtual machines in general does not seem to make much sense&lt;/li&gt;&#10;&lt;li&gt;Ubuntu 14.04 on real hardware seems to be the only reasonable combination right now&lt;/li&gt;&#10;&lt;li&gt;Docker does not perform any reasonable runtime checks for checking the sanity of the Linux host (crashes and unrelated or non-speaking error messages are the only thing you get from Docker)&lt;/li&gt;&#10;&lt;li&gt;The general attitude of the Docker devs: we-don&amp;rsquo;t-care and works-for-us -&amp;gt; case closed&lt;/li&gt;&#10;&lt;li&gt;The monolithic design of Docker is broken. Restarting Docker - for whatever reason - implies a shutdown of all containers (using &amp;ndash;restart you can restart all containers upon restart of the Docker daemon)&lt;/li&gt;&#10;&lt;li&gt;The Docker documentation lies about working and supported distro and kernel support (see link above) and the Dockers obviously do not care about instead of fixing their documentation and in particular: testing Docker on different hardware and distros - apparently their testing producedures are broken from ground up.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;However there is hope&amp;hellip;the upcoming CoreOS Rocket runtime engine looks very promising&amp;hellip;however Rocket is still in early stages. At least Rocket already supports loading Docker images. On the other side: Rocket tried to place a pull request for Docker in order to achieve image compatibility between Docker and Rocket &amp;hellip;but typically for the ignorance and arrogance of the Docker devs: they give a shit and only care about their own thing. Unfortunately the Docker developers are corrupted by too much venture captial and became ignorant through the Docker hype.&lt;/p&gt;</description></item><item><title>XML Director 0.4.0 release/Newsletter #4</title><link>https://blog.zopyx.com/xml-director-0-4-0-release-newsletter-4/</link><pubDate>Fri, 20 Feb 2015 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/xml-director-0-4-0-release-newsletter-4/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-37.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;&lt;a href="http://t.co/E8bapXtLD9"&gt;Newsletter #4&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>MongoDB gate</title><link>https://blog.zopyx.com/mongodb-gate/</link><pubDate>Wed, 11 Feb 2015 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/mongodb-gate/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-38.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;Yesterday researchers of my home university &lt;a href="http://www.uni-saarland.de/en/home.html"&gt;Universität des Saarland&lt;/a&gt; published a &lt;a href="http://cispa.saarland/mongodb/"&gt;report&lt;/a&gt; about 40.000 &lt;a href="http://www.mongodb.org/"&gt;MongoDB&lt;/a&gt; servers in the world running on public ports and without authentication. This is kind of a nightmare. Disclosure of customer data, credit card numbers etc&amp;hellip;.but whom to blame? Of course MongoDB is (technology-wise) a crappy database and it would be easy to blame MongoDB altogether.&lt;/p&gt;&#10;&lt;p&gt;There are only two minor problems with MongoDB here:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;the MongoDB daemon binds to all public IP addresses by default depending on the distribution or download package. It is said that the standard installers bind to localhost only however the daemon distributed with the binary packages binds to 0.0.0.0 - &lt;strong&gt;BAD DESIGN DECISION&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;MongoDB does not require a password by default. So every MongoDB server is open without authentication by default - &lt;strong&gt;BAD DESIGN DECISION&lt;/strong&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;However there is no direct technical exploit in MongoDB responsible for the disclosure of private data - just bad design decisions (having their impact here). Unfortunately the &lt;a href="http://www.mongodb.com/blog/post/mongodb-security-best-practices"&gt;answer&lt;/a&gt; of MongoDB CTO Eliot Horowitz on this issue is both cheap, weak and poor and one does not seem to care about the implications from this report.&lt;/p&gt;</description></item><item><title>On Docker security: 'docker' group considered harmful</title><link>https://blog.zopyx.com/on-docker-security-docker-group-considered-harmful/</link><pubDate>Thu, 05 Feb 2015 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/on-docker-security-docker-group-considered-harmful/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-39.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;If you are member of the UNIX &amp;lsquo;docker&amp;rsquo; must be considered harmful. Being member of the &amp;lsquo;docker&amp;rsquo; group is not unusual because it gives you the right to build and execute containers as normal user but it also gives you full root access rights which I consider as a major security issue and a broken-by-design feature.&lt;/p&gt;&#10;&lt;p&gt;By default I can not access /etc/shadow because it is only readable by root or group wheel:&lt;/p&gt;</description></item><item><title>The case against Docker</title><link>https://blog.zopyx.com/the-case-against-docker/</link><pubDate>Thu, 22 Jan 2015 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/the-case-against-docker/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-44.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;Over the last week I tried to use Docker in production for the following usecases:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;putting eXist-db into a container for the &lt;a href="http://www.dgho-onkopedia.de/"&gt;Onkopedia&lt;/a&gt; relaunch in order to simply the eXist-db installation and adminstration (prod, dev, staging)&lt;/li&gt;&#10;&lt;li&gt;putting Plone 4.3 and eXist-db into a container for having an easy way to manage a demo instance of &lt;a href="http://www.xml-director.info/"&gt;XML Director&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;using eXist-db and Base-X in containers in order test the XML Director backend against different XML database backends in an automatized way&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;This blog post summerizes the former blog posts (&lt;a href="https://www.andreas-jung.com/contents/docker-experience-with-plone"&gt;link&lt;/a&gt;, &lt;a href="https://www.andreas-jung.com/contents/why-docker-is-broken-at-the-moment"&gt;link&lt;/a&gt;) about Docker.&lt;/p&gt;</description></item><item><title>XML Director project website launched</title><link>https://blog.zopyx.com/xml-director-project-website-launched/</link><pubDate>Sun, 11 Jan 2015 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/xml-director-project-website-launched/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-48.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;I am pleased to announce that the XML Director project has now its own polished website with updated information about the project, scope of the project and development information.&lt;/p&gt;&#10;&lt;p&gt;The site is available under &lt;a href="https://xml-director.info/?utm_source=XML-Director&amp;amp;utm_campaign=dd221aec9d-XML_Director_Newsletter_112_14_2014&amp;amp;utm_medium=email&amp;amp;utm_term=0_85754d15f7-dd221aec9d-"&gt;https://xml-director.info&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;The development of XML Director made some internal progress over the few weeks - basically the time over christmas was used to think about the design and technical issues. However all of internal code was refactored, the test coverage improved significantly and the documentation of the project was updated.&lt;br&gt;&#10;In addition we will release a &lt;a href="http://www.docker.io/?utm_source=XML-Director&amp;amp;utm_campaign=dd221aec9d-XML_Director_Newsletter_112_14_2014&amp;amp;utm_medium=email&amp;amp;utm_term=0_85754d15f7-dd221aec9d-"&gt;Docker&lt;/a&gt; based demo shortly and provide access to an online demo showing the basic functionality of the current implementation:&lt;/p&gt;</description></item><item><title>Why Docker is broken at the moment</title><link>https://blog.zopyx.com/why-docker-is-broken-at-the-moment/</link><pubDate>Sat, 10 Jan 2015 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/why-docker-is-broken-at-the-moment/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-49.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;Docker is broken right now in many ways.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Docker images are huge (typically for me in the range of 1 to 1.5 GB each)&lt;/li&gt;&#10;&lt;li&gt;Pushing and pulling Docker images to/from the Docker registry is slow - even if you push/pull only new layers. Nobody on the Docker forums could explain the widely differing loading times of layers (from slow to fast)&lt;/li&gt;&#10;&lt;li&gt;There is no trivial way to replicate Docker containers.&lt;/li&gt;&#10;&lt;li&gt;The concept of data containers is as long broken as there are no reasonable way to replicate and backup data containers. There is no trivial way for moving data between containers.&lt;/li&gt;&#10;&lt;li&gt;Backup methods specific to certain services do no longer work on the container level.&lt;/li&gt;&#10;&lt;li&gt;Docker builds are slow (even on fast machines).&lt;/li&gt;&#10;&lt;li&gt;Monitoring Docker containers is not trivial and hard to achieve. Our fat development server feels sluggish with a high load running only 3 Docker containers. I currently do not see obvious options for tracking down the real issue.&lt;/li&gt;&#10;&lt;li&gt;Docker runs stable (or not )depending on the underlaying Linux distro and kernel. I can not find any officially supported recommendations for distros and kernels.&lt;/li&gt;&#10;&lt;li&gt;The Docker registry is a huge bag of unsorted Docker image crap - it feels like the early PyPI years where every @@@@@ felt the power to upload every crap into the wild.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;I am still using Docker for a few usecases like providing a demo instance for XML Director or for having containers with Base-X and eXist-db used for running unittests.&lt;/p&gt;</description></item><item><title>Speaking at XML Prague</title><link>https://blog.zopyx.com/speaking-at-xml-prague/</link><pubDate>Mon, 29 Dec 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/speaking-at-xml-prague/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-50.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;I am pleased to announce that I will speak at &lt;strong&gt;&lt;a href="http://www.xmlprague.cz/"&gt;XML Prague 2015&lt;/a&gt;&lt;/strong&gt; from 13-15 February about&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;&amp;ldquo;Publishing with CSS Paged Media - A review of existing tools and techniques&amp;rdquo;&lt;/strong&gt;&lt;/p&gt;&#10;&lt;h3 id="references"&gt;References&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="http://www.xmlprague.cz/"&gt;http://www.xmlprague.cz/&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>Docker experience with Plone</title><link>https://blog.zopyx.com/docker-experience-with-plone/</link><pubDate>Thu, 18 Dec 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/docker-experience-with-plone/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-51.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;I have been working with Docker over the fews in order build a demo system for &lt;a href="http://xml-director.info/"&gt;XML Director&lt;/a&gt;. Docker in general looks nice and promising but there are lot of things that cause some headaches:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;incremental builds with caching is a nice feature in theory. In real life you often have to make changes at the begin of the Dockerfile and the complete build dance starts from scratch&lt;/li&gt;&#10;&lt;li&gt;Docker builds are slow&lt;/li&gt;&#10;&lt;li&gt;Pushing an image is slow&lt;/li&gt;&#10;&lt;li&gt;Pulling and updating images is slow and unreliable&lt;/li&gt;&#10;&lt;li&gt;Various kernel panics on OpenSuse 13.1 (no crashes with CentOS 6)&lt;/li&gt;&#10;&lt;li&gt;Docker &amp;ldquo;internal&amp;rdquo; corruptions that could be resolved only by removing the local /var/lib/docker folder&lt;/li&gt;&#10;&lt;li&gt;It is not possible to start a build at a certain point within the Dockerfile without some tricks&lt;/li&gt;&#10;&lt;li&gt;Fiddeling a buildout configuration takes a lot of time because you can not make use of buildout caches without tricks&lt;/li&gt;&#10;&lt;li&gt;Docker images can be big. In my case the XML Director image with Plone and eXist-db ended up with a final size of 2.1 GB&lt;/li&gt;&#10;&lt;li&gt;from reading/hearing: Docker had several severe security issues in the past&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Docker is a new project and moving and evolving at fast lightspeed. That&amp;rsquo;s why it is important keeping an eye on it.&lt;/p&gt;</description></item><item><title>Announcing the "XML-Director" XML CMS project</title><link>https://blog.zopyx.com/announcing-the-xml-director-xml-cms-project/</link><pubDate>Tue, 09 Dec 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/announcing-the-xml-director-xml-cms-project/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_preview-1.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;I am pleased to announce the start of a new big project in 2015: &lt;a href="http://xml-director.info/"&gt;&lt;strong&gt;XML Director&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;XML-Director&lt;/strong&gt; will be a new generation XML content-management-system focused on&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;openness&lt;/li&gt;&#10;&lt;li&gt;easy-to-use&lt;/li&gt;&#10;&lt;li&gt;flexibility&lt;/li&gt;&#10;&lt;li&gt;combining the best technologies on the market into a superb XML solution&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Based on almost 20 years of experience in the electronic publishing and publisher business and based on our experience with Produce &amp;amp; Publish over the last years it is time to bring our tools to the next level.&lt;/p&gt;</description></item><item><title>Moving on with Plone and eXist-db integration</title><link>https://blog.zopyx.com/moving-on-with-plone-and-exist-db-integration/</link><pubDate>Sat, 06 Dec 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/moving-on-with-plone-and-exist-db-integration/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-55.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;I decided to integrate eXist-db much tigher with Plone as initially planned (for strategic reasons). After heaving fighting with z3c.form I finally got to the point where I have now 4 new different Dexterity fields that store their data in eXist-db instead of the ZODB.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;XMLText:&lt;/strong&gt; this field holds an arbitrary XML document. XML validation is performed both client-side and server-side. The widget for &lt;strong&gt;XMLText&lt;/strong&gt; is the ACE editor.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;XMLXPath&lt;/strong&gt;: this field can be used to pull in parts of an content from an arbitrary XMLText field by specifying the name of the XMLText field and an arbitrary XPath expression&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;XMLImage&lt;/strong&gt;: as as the Dexerity image field but with eXist-db as storage&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;XMLBinary:&lt;/strong&gt; same as the Dexterity file field but with eXist-db as storage&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>Produce &amp; Publish XML Edition screencast</title><link>https://blog.zopyx.com/produce-publish-xml-edition-screencast/</link><pubDate>Thu, 20 Nov 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/produce-publish-xml-edition-screencast/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-56.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;Here is a screencast of the &lt;a href="https://www.youtube.com/watch?v=CjgH5xGysXA"&gt;Produce &amp;amp; Publish XML Edition&lt;/a&gt; that features an integrated environment for&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;conversion of DOCX to XML/HTML&lt;/li&gt;&#10;&lt;li&gt;conversion XML/HTML to PDF&lt;/li&gt;&#10;&lt;li&gt;publishing of PDF and HTML to the web or other services&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;The solution is powered by&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Plone CMS&lt;/li&gt;&#10;&lt;li&gt;C-REX for DOCX to XML/HTML conversion&lt;/li&gt;&#10;&lt;li&gt;PDFreactor for PDF generation&lt;/li&gt;&#10;&lt;li&gt;eXist-db XML database&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;The non-commercial and generic parts of the project will be released as open-source software early next year.&lt;/p&gt;</description></item><item><title>Towards a generic integration of external data sources into Plone</title><link>https://blog.zopyx.com/towards-a-generic-integration-of-external-data-sources-into-plone/</link><pubDate>Mon, 03 Nov 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/towards-a-generic-integration-of-external-data-sources-into-plone/</guid><description>&lt;p&gt;Over the last days I blogged several times (&lt;a href="https://www.andreas-jung.com/contents/mount-a-plone-site-into-another-plone-site"&gt;link&lt;/a&gt;, &lt;a href="https://www.andreas-jung.com/contents/mounting-webdav-folders-directly-into-plone"&gt;link)&lt;/a&gt; about the ongoing integration of Plone with XML databases (&lt;a href="http://www.exist-db.org/"&gt;eXist-db&lt;/a&gt; in particular as part of an ongoing XML publishing project with Plone). The integration is based on the WebDAV API of eXist-db and my module &lt;a href="http://pypi.python.org/pypi/zopyx.existdb"&gt;zopyx.existdb&lt;/a&gt; that integrates the hierarchical structure of eXist-db directly into Plone (similar to the Plone Reflecto add-on by Wichert Ackermann). Because of the integration layer is WebDAV it was almost trivial providing the same integration support for the XML database &lt;a href="http://basex.org/"&gt;BaseX.&lt;/a&gt; But wait&amp;hellip;there are other services providing access through WebDAV. During the Plone Conference in Bristo l gave OwnCloud a quick try and it was easily possible to mount OwnCloud (or a subfolder) into Plone for reading and writing. But then Asko had the crazy idea to try to mount Plone within Plone through WebDAV and it actually worked. Here is a &lt;a href="https://www.youtube.com/watch?v=UEt6ixxaORE"&gt;screencast&lt;/a&gt; where plone.org/events was mounted into my local Plone sandbox. Just saying: the integration with other services works best for binary stuff like images, videos, office documents etc. It is not very suitable to access Plone test-ish content because Plone provides such content either rendered as  complete HTML pages through the HTTP port or as document source over the WebDAV port. There might be options to deal with this some way but this is actually not the first scope of my project. So my eXist-db integration got a more wider scope: providing a unique way for attaching external data sources into Plone.&lt;/p&gt;</description></item><item><title>Mount a Plone site into another Plone sit</title><link>https://blog.zopyx.com/mount-a-plone-site-into-another-plone-site/</link><pubDate>Sat, 01 Nov 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/mount-a-plone-site-into-another-plone-site/</guid><description>&lt;p&gt;As part of the Plone Conference 2014 I finally ended up with the perversion to mount a Plone site through WebDAV into another Plone site. In this a quick and dirty  &lt;a href="https://www.youtube.com/watch?v=UEt6ixxaORE"&gt;screencast&lt;/a&gt; where you can see that it is possible to mount plone.org/events as a subfolder into a local Plone 4.3 installation with the option to navigate through the substructure and loading content like image, binary files etc. With some more further work it would be possible to render text-ish content from the remote site like news items or documents within the context of the local site.&lt;/p&gt;</description></item><item><title>Mounting WebDAV folders directly into Plone</title><link>https://blog.zopyx.com/mounting-webdav-folders-directly-into-plone/</link><pubDate>Sat, 01 Nov 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/mounting-webdav-folders-directly-into-plone/</guid><description>&lt;p&gt;As part on my work on &lt;a href="http://pypi.python.org/pypi/zopyx.existdb"&gt;zopyx.existdb&lt;/a&gt; I made some progres towards mounting arbitrary WebDAV services into Plone.  With only a few changes to the current zopyx.existdb codebase I was able to connect Plone with BaseX (another open-source XML database) and OwnCloud. In both cases I was able to create/remove folders and create/remove contents through Plone directly within BaseX or OwnCloud. So this solution is the best solution right for Plone to integrate with arbitrary WebDAV services.&lt;/p&gt;</description></item><item><title>Results of the Plone Developer Survey</title><link>https://blog.zopyx.com/results-of-the-plone-developer-survey/</link><pubDate>Wed, 15 Oct 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/results-of-the-plone-developer-survey/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-57.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;Here are the &lt;a href="https://docs.google.com/forms/d/1IVSygBNP8nI_woT-uasrS9pK01cwItaM1Rp4d08VlK0/viewanalytics"&gt;results of the Plone Developer Survey&lt;/a&gt; based on 103 submissions - thank you all.&lt;/p&gt;&#10;&lt;p&gt;While some of the charts deliver some interesting information and trends, the real valuable information can be found in the various comments left in the sections about likes and dislikes in Plone. I leave it to the community drawing their own conclusions from the numbers and comments. At least I have some more information and input for my &amp;ldquo;Why Plone will die&amp;rdquo; talk to be given at the Plone conference in Bristol in two weeks.&lt;/p&gt;</description></item><item><title>Plone Developer Survey</title><link>https://blog.zopyx.com/plone-developer-survey/</link><pubDate>Mon, 06 Oct 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/plone-developer-survey/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-58.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;Here is small &lt;a href="http://t.co/vYQvUi66cy"&gt;Plone developer survey&lt;/a&gt;. The aim is to get some metrics about the Plone developer community in preparation to my &amp;ldquo;&lt;strong&gt;Why Plone is going to die&lt;/strong&gt;&amp;rdquo; to be given at the Plone Conference in Bristol at the end of this month. Numbers and feedback will help to make this talk too personal and not too crushing :-)&lt;/p&gt;</description></item><item><title>Upcoming talks</title><link>https://blog.zopyx.com/upcoming-talks/</link><pubDate>Fri, 03 Oct 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/upcoming-talks/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-7.jpg" alt=""&gt;&lt;/p&gt;&#10;&lt;h2 id="onkopedia---ein-leitlinienportal-auf-dem-weg-zum-xml-basierten-publikationsworkflow"&gt;Onkopedia - Ein Leitlinienportal auf dem Weg zum XML-basierten Publikationsworkflow&lt;/h2&gt;&#10;&lt;p&gt;This talk will discuss our ongoing Onkopedia publishing project where we switch the customer to an XML-based publishing workflow. The basis of all publications are Word/DOCX documents that we convert to XML, store them into an XML database and generate HTML and PDF versions from XML content.&lt;/p&gt;&#10;&lt;p&gt;Where: &lt;strong&gt;DMS Expo 2014&lt;/strong&gt; Stuttgart, 08.10.2014&lt;/p&gt;&#10;&lt;h2 id="structured-content-rocks---integration-of-exist-db-xml-database-with-plone"&gt;Structured content rocks - Integration of eXist-db (XML database) with Plone&lt;/h2&gt;&#10;&lt;p&gt;Structured content (XML) is widely used in the publishing industry and documentation applications. This talk will demonstrate our approach of integrating XML content with Plone in a sane way. Instead of storing XML content natively in Plone we take a different approach and integrate Plone with the open-source XML database eXist-db. eXist-db is in some ways similar to Plone and provides an hierarchy storage model, support for latest XML technology like XPath 3, XQuery and XUpdate. Plone applications can communicate with eXist-DB both through WebDAV or through the REST API of eXist-db. The integration layer is provided through a small Plone add-on zopyx.existdb that makes provides out-of-the-box traversal support from Plone to eXist-db content, a generic API approach, ACEditor integration for basic content-management from within Plone. The overall talk is driven by an ongoing publishing project where we switching from an HTML-to-PDF workflow to XML-to-PDF with Plone as integration platform (&lt;a href="https://www.onkopedia-guidelines.info"&gt;https://www.onkopedia-guidelines.info&lt;/a&gt;).&lt;/p&gt;</description></item><item><title>Copying Dexterity fields from one instance to another instance</title><link>https://blog.zopyx.com/copying-dexterity-fields-from-one-instance-to-another-instance-2/</link><pubDate>Fri, 19 Sep 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/copying-dexterity-fields-from-one-instance-to-another-instance-2/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-59.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;In our current Plone project we have the usecase where we need to copy over all schema-defined values of a Dexterity-based content-type to a new &amp;ldquo;empty&amp;rdquo; instance of the same type. In Archetypes the functionality would be a three-liner however the Dexterity world with schemas, behaviors etc. is much more complicated and by a magnitude less approachable. The naive approach would be to read the values directly as attributes from the original object and assign them back to the target instance like&lt;/p&gt;</description></item><item><title>Berlin Python Sprint result: new PDF version of the "Plone Nutzerhandbuch"</title><link>https://blog.zopyx.com/berlin-python-sprint-result-new-pdf-version-of-the-plone-nutzerhandbuch/</link><pubDate>Fri, 12 Sep 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/berlin-python-sprint-result-new-pdf-version-of-the-plone-nutzerhandbuch/</guid><description>&lt;p&gt;As part of the &lt;a href="http://www.meetup.com/PySprints/events/197700692/"&gt;Berlin Python sprint&lt;/a&gt; this week at &lt;a href="http://www.veit-schiele.de/"&gt;Veit Schiele Communications GmbH&lt;/a&gt; I worked on a new PDF version of the &amp;ldquo;&lt;a href="http://www.plone-nutzerhandbuch.de/"&gt;Plone Nutzerhandbuch&lt;/a&gt;&amp;rdquo; generated using Sphinx and &lt;a href="http://www.pdfreactor.com/"&gt;PDFreactor&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;Here is the preliminary draft version of the &lt;a href="http://www.produce-and-publish.de/resources/plone-nutzerhandbuch-pysprint-version"&gt;PDF&lt;/a&gt; - a more detailed blog post will follow soon.&lt;/p&gt;</description></item><item><title>EuroPython 2014 finally over - some notes on the EuroPython Society</title><link>https://blog.zopyx.com/europython-2014-finally-over-some-notes-on-the-europython-society/</link><pubDate>Thu, 31 Jul 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/europython-2014-finally-over-some-notes-on-the-europython-society/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-63.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;EuroPython 2014 is finally over and it was a great success. We counted 1226 attendees which is an increase of more than 40 percent of the EuroPython 2013 in Florence. We received lots of positive and overwhelming feedback for organizing a full week with Python related stuff. I personally worked as head of communications since fall 2013 on EuroPython 2014. I wrote dozens of blog entries on blog.europython.eu, I was the public @europython voice on Twitter, most of the incoming helpdesk issues (more than 1200 JIRA tickets) went through my fingers and finally I worked together with Stefania Trabucchi on the automatic PDF generation for parts of the EuroPython 2014 brochure (generation of talks, speakers and schedule) and handled the setup of the EuroPython Guidebook application. I am personally very happy with the outcome of our work over the last nine months. This was really hard work with a small team, lots of ups and downs, lots of new experiences working many new people, many new challenges like dealing with upcoming shitstorm discussions (e.g. the diversity discussion around April on social media)&amp;hellip;I learned a lot, I had fun, I had frustration but in the end we all had the same common goal: a EuroPython 2014 that would rock - and EuroPython 2014 rocked!!!&lt;/p&gt;</description></item><item><title>EuroPython 2014 finally over - some notes ... Part 1</title><link>https://blog.zopyx.com/europython-2014-finally-over-some-notes-part-1/</link><pubDate>Wed, 30 Jul 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/europython-2014-finally-over-some-notes-part-1/</guid><description>&lt;p&gt;EuroPython 2014 is finally over and it was a great success. We counted 1226 attendees which is an increase of more than 40 percent of the EuroPython 2013 in Florence. We received lots of positive and overwhelming feedback for organizing a full week with Python related stuff. I personally worked as head of communications since fall 2013 on EuroPython 2014. I wrote dozens of blog entries on blog.europython.eu, I was the public @europython voice on Twitter, most of the incoming helpdesk issues (more than 1200 JIRA tickets) went through my fingers and finally I worked together with Stefania Trabucchi on the automatic PDF generation for parts of the EuroPython 2014 brochure (generation of talks, speakers and schedule) and handled the setup of the EuroPython Guidebook application. I am personally very happy with the outcome of our work over the last nine months. This was really hard work with a small team, lots of ups and downs, lots of new experiences working many new people, many new challenges like dealing with upcoming shitstorm discussions (e.g. the diversity discussion around April on social media)&amp;hellip;I learned a lot, I had fun, I had frustration but in the end we all had the same common goal: a EuroPython 2014 that would rock - and EuroPython 2014 rocked!!!&lt;/p&gt;</description></item><item><title>EuroPython 2014: Where Community makes the difference</title><link>https://blog.zopyx.com/europython-2014-where-community-makes-the-difference/</link><pubDate>Wed, 30 Jul 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/europython-2014-where-community-makes-the-difference/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-64.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;See the official press release of &lt;a href="https://ep2014.europython.eu/en/conference/press-releases/europython-where-community-makes-difference/"&gt;EuroPython 2014&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Plone - the broken parts - a non-pythonic programming model</title><link>https://blog.zopyx.com/plone-the-broken-parts-a-non-pythonic-programming-model/</link><pubDate>Wed, 09 Jul 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/plone-the-broken-parts-a-non-pythonic-programming-model/</guid><description>&lt;h4 id="this-is-a-loose-series-of-blog-posts-about-parts-of-plone-that-i-consider-as-broken-from-the-prospective-of-a-programmer-the-blog-entries-are-based-on-personal-experiences-with-plone-over-the-last-few-months-collected-in-new-plone-43-projects-and-some-legacy-projects-but-they-also-reflect-experienced-learned-from-other-non-core-plone-developers-involved-in-these-projects-developers-on-the-customer-side"&gt;This is a loose series of blog posts about parts of Plone that I consider as broken from the prospective of a programmer. The blog entries are based on personal experiences with Plone over the last few months collected in new Plone 4.3 projects and some legacy projects but they also reflect experienced learned from other non-core Plone developers involved in these projects (developers on the customer side).&lt;/h4&gt;&#10;&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-65.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;Archetypes served for than ten years as framework for building content-types in Plone. Dexterity had been designed as successor of Archetypes with the goal making the content-types development within Plone more easy with less boilerplate. Content-type development should become be more pythonic. Creating a new of a content-type in Plone in a &amp;ldquo;pythonic way&amp;rdquo; would look like this:&lt;/p&gt;</description></item><item><title>Plone - the broken parts - Member schema extenders and plone.api</title><link>https://blog.zopyx.com/plone-the-broken-parts-member-schema-extenders-and-plone-api/</link><pubDate>Wed, 09 Jul 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/plone-the-broken-parts-member-schema-extenders-and-plone-api/</guid><description>&lt;h4 id="this-is-a-loose-series-of-blog-posts-about-parts-of-plone-that-i-consider-as-broken-from-the-prospective-of-a-programmer-the-blog-entries-are-based-on-personal-experiences-with-plone-over-the-last-few-months-collected-in-new-plone-43-projects-and-some-legacy-projects-but-they-also-reflect-experienced-learned-from-other-non-core-plone-developers-involved-in-these-projects-developers-on-the-customer-side"&gt;This is a loose series of blog posts about parts of Plone that I consider as broken from the prospective of a programmer. The blog entries are based on personal experiences with Plone over the last few months collected in new Plone 4.3 projects and some legacy projects but they also reflect experienced learned from other non-core Plone developers involved in these projects (developers on the customer side).&lt;/h4&gt;&#10;&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-66.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;It is a common project requirement to extend the Plone user memberdata schema. The common approach is perhaps documented here (&lt;a href="https://pypi.python.org/pypi/collective.examples.userdata"&gt;https://pypi.python.org/pypi/collective.examples.userdata&lt;/a&gt;). The additional fields of the memberdata must be defined as a zope.schema. Nothing special - same as definining forms using z3c.form or writing content-types with Dexterity. In a recent project we had a working memberdata  extender and had to extend it with two schema.List fields. Both fields were added to the schema together with the following (working) adapter implementation:&lt;/p&gt;</description></item><item><title>Plone and eXist-db</title><link>https://blog.zopyx.com/plone-and-exist-db/</link><pubDate>Wed, 02 Jul 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/plone-and-exist-db/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-67.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;Since some years we maintain the &lt;a href="https://www.dgho-onkopedia.de/"&gt;Onkopedia&lt;/a&gt; site, a medical portal with guidelines in the field of hematology and medical oncology.&lt;/p&gt;&#10;&lt;p&gt;The simplified workflow is like this:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;authors (doctors) write their guidelines in Word&lt;/li&gt;&#10;&lt;li&gt;an internal editorial process brings the Word document in shape and checks the documents for consistency and for some style-guide compliance&lt;/li&gt;&#10;&lt;li&gt;we can convert the Word documents to XHTML/CSS using OpenOffice/LibreOffice&lt;/li&gt;&#10;&lt;li&gt;we generate PDF from XHTML/CSS based on a CSS3 Paged Media workflow and publish the PDF documents together with a HTML version on the web through Plone&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;For a variety of reasons the complete editorial process will be switched to an XML driven workflow where Plone remains the main web CMS but with a complete new workflow under the hood.  There will be a new Word to XML conversion workflow that will produce XML documents according to some XML schemas that are currently in the making. All documents including their assets (associated images (PNG+SVG), conversion reports etc.) will be stored within the &lt;strong&gt;eXist-db&lt;/strong&gt; XML database.Why eXist-db?&lt;/p&gt;</description></item><item><title>EuroPython 2014 schedule available</title><link>https://blog.zopyx.com/europython-2014-schedule-available/</link><pubDate>Tue, 03 Jun 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/europython-2014-schedule-available/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-68.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;We are happy to announce the availability of the EuroPython 2014 &lt;a href="http://ep2014.europython.eu/en/schedule/schedule"&gt;schedule&lt;/a&gt; containing the dates and times for trainings, talks and sprints.&lt;/p&gt;&#10;&lt;p&gt;If you want to participate in a training then you have to register for this particular training on the training detail page. Every training is limited to 70 participants. All trainings seats are available on a first-come first-served basis. So please register your training participation in advance and as early as possible.&lt;/p&gt;</description></item><item><title>EuroPython deadline for regular ticket sales: 23/06/2014</title><link>https://blog.zopyx.com/europython-deadline-for-regular-ticket-sales-23-06-2014/</link><pubDate>Tue, 27 May 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/europython-deadline-for-regular-ticket-sales-23-06-2014/</guid><description>&lt;p&gt;This is a short reminder that the regular ticket sale for standard EuroPython 2014 tickets ends on 23/06/2014.&lt;/p&gt;&#10;&lt;p&gt;After 23/06/2014 you can only purchase tickets for the (higher) on-desk rate.&lt;/p&gt;&#10;&lt;p&gt;So hurry up.&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://blog.zopyx.com/andreas-jung/fbtestimonialroot.jpg" alt=""&gt;&lt;/p&gt;</description></item><item><title>Finally migrated all ZOPYX sites to a new look &amp; feel</title><link>https://blog.zopyx.com/finally-migrated-all-zopyx-sites-to-a-new-look-feel/</link><pubDate>Tue, 27 May 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/finally-migrated-all-zopyx-sites-to-a-new-look-feel/</guid><description>&lt;p&gt;It&amp;rsquo;s done.&lt;/p&gt;&#10;&lt;p&gt;It only took almost 18 months to move all of my company and personal sites into one Plone version with one look &amp;amp; feel.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.zopyx.com"&gt;www.zopyx.com&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.zopyx.de"&gt;www.zopyx.de&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.produce-and-publish.com"&gt;www.produce-and-publish.com&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.produce-and-publish.de"&gt;www.produce-and-publish.de&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.andreas-jung.com"&gt;www.andreas-jung.com&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.andreas-jung.com/blog"&gt;www.andreas-jung.com/blog&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Yes, of course it uses Bootstrap. Bootstrap 2&amp;hellip;well, time to migrate to Bootstrap XX sometime in the future :-)Life is a never ending migration&amp;hellip;take care&amp;hellip;.&lt;/p&gt;</description></item><item><title>Do you have your EuroPython 2014 ticket already?</title><link>https://blog.zopyx.com/do-you-have-your-europython-2014-ticket-already/</link><pubDate>Mon, 24 Mar 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/do-you-have-your-europython-2014-ticket-already/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/andreas-jung/fbtestimonialsiprova.jpg" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://ep2014.europython.eu/en/registration/ticket-sale/"&gt;https://ep2014.europython.eu/en/registration/ticket-sale/&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Bad Dexterity application design - what the fuck?</title><link>https://blog.zopyx.com/bad-dexterity-application-design/</link><pubDate>Thu, 13 Mar 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/bad-dexterity-application-design/</guid><description>&lt;p&gt;I apologize for another Plone rant but the following issue costed my some nerves and customer money.&lt;/p&gt;&#10;&lt;p&gt;We are currently leading a large Plone 2 -&amp;gt; Plone 4.3 + Dexterity project and we are using plone.app.event.&lt;/p&gt;&#10;&lt;p&gt;According to every documentation and knowledge about Dexterity we created our events in our migration script using&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;event = invokeFactory('Event', ..)&#10;event.start = datetime(....)&#10;event.end = datetime(...)&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;We all learned that you can set/get the value of a content-type directly through attribute access. Unfortunately those events resulted in a &lt;a href="https://github.com/plone/plone.app.event/issues/147"&gt;broken view&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Debugging a ZODB bloat</title><link>https://blog.zopyx.com/debugging-a-zodb-bloat/</link><pubDate>Thu, 13 Mar 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/debugging-a-zodb-bloat/</guid><description>&lt;p&gt;We just earned a larger Plone 4.0 project where the majority of the code appeared in a very bad shape  - basically a summary of all coding mistakes you could do. While trying to migrated the codebase to Plone 4.2.6 we figured out that rendering a simple read-only view of an Archetypes based content-type caused a ZODB write operation of 3-4 KB each time. Inspecting the code of the content class did not directly reveal any pointer to the problem. The methods called during the rendering of the &amp;lsquo;view&amp;rsquo; view did not assign to &amp;lsquo;self&amp;rsquo; - so there was no obvious reason for any badly written code. But how to track this down?&lt;/p&gt;</description></item><item><title>EuroPython 2014: Early Bird ticket sale starts on Wednesday, 05/02/2014</title><link>https://blog.zopyx.com/europython-2014-early-bird-ticket-sale-starts-on-wednesday-05-02-2014/</link><pubDate>Fri, 31 Jan 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/europython-2014-early-bird-ticket-sale-starts-on-wednesday-05-02-2014/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-69.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://blog.zopyx.com/andreas-jung/contents/early-bird-ticket-sale-starts-on-wednesday-05-02-2014/image_mini" alt="EuroPython 2014: Early Bird ticket sale starts on Wednesday, 05/02/2014"&gt;&lt;/p&gt;&#10;&lt;p&gt;We are pleased to announce that the EuroPython 2014 ticket sale will start next Wednesday, 05/02/2014 with the Early Bird ticket phase.&lt;/p&gt;&#10;&lt;p&gt;There is a contingent of 300 tickets that will be sold to a reduced price in three categories:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Business&lt;/li&gt;&#10;&lt;li&gt;Personal&lt;/li&gt;&#10;&lt;li&gt;Student&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;If you are a student and want to get the student discount, please email a copy of your student identity card to &lt;a href="mailto:helpdesk@europython.eu"&gt;helpdesk@europython.eu&lt;/a&gt; once the sale has started.&lt;/p&gt;</description></item><item><title>Produce &amp; Publish cloud conversion service available for beta testing</title><link>https://blog.zopyx.com/produce-publish-cloud-conversion-service-available-for-beta-testing/</link><pubDate>Tue, 21 Jan 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/produce-publish-cloud-conversion-service-available-for-beta-testing/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-70.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;I am happy to announce that the &lt;a href="http://www.produce-and-publish.com/components-services/produce-publish-conversion-as-a-service"&gt;Produce &amp;amp; Publish cloud conversion service&lt;/a&gt; is now available for free for beta testing.&lt;/p&gt;&#10;&lt;p&gt;The conversion service is build on top of the &lt;a href="http://www.produce-and-publish.com/components-services/conversion-server"&gt;and provides transparent access to all conversions supported by the underlaying OpenOffice/LibreOffice implementation.&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;The service can be used from arbitrary programming language. However we support only the native Python API as provided through the &lt;a href="http://pythonhosted.org/pp.client-python/"&gt;Produce &amp;amp; Publish Python Client Connector&lt;/a&gt; at this time.&lt;/p&gt;</description></item><item><title>International Produce &amp; Publish website relaunched</title><link>https://blog.zopyx.com/international-produce-publish-website-relaunched/</link><pubDate>Wed, 15 Jan 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/international-produce-publish-website-relaunched/</guid><description>&lt;p&gt;We relaunched today the international/english version of our &lt;a href="http://www.produce-and-publish.com/"&gt;Produce &amp;amp; Publish website&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>EuroPython 2014 Call for Proposals open</title><link>https://blog.zopyx.com/europython-2014-call-for-proposals-open/</link><pubDate>Sat, 11 Jan 2014 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/europython-2014-call-for-proposals-open/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-72.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;The &lt;a href="https://ep2014.europython.eu/en/"&gt;Call for Proposals&lt;/a&gt; for the EuroPython 2014 conference in Berlin is now open!&lt;/p&gt;</description></item><item><title>EuroPython 2014 Conference in Berlin at the bcc Berlin Congress Center</title><link>https://blog.zopyx.com/europython-2014-conference-in-berlin-at-the-bcc-berlin-congress-center/</link><pubDate>Mon, 16 Dec 2013 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/europython-2014-conference-in-berlin-at-the-bcc-berlin-congress-center/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-73.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;The next EuroPython conference will be held from July 21 - 27, 2014 at the bcc Berlin Congress Center in the heart of Berlin. The EuroPython conference is the second largest global conference for the popular programming language Python, after the PyCon US conference in North America. The bcc is located at the central Alexander Square. It offers ideal facilities for a developer conference on 3,000 m2. The organizers are expecting up to 1,200 participants, continuing the growth of the EuroPython conference series. The very successful EuroPython this year attracted almost 900 Python enthusiasts. It was hosted in Florence, Italy for the third time running.&lt;/p&gt;</description></item><item><title>Produce and Publish Update - collaborative editing with Nimbudocs and Plone</title><link>https://blog.zopyx.com/produce-and-publish-update-collaborative-editing-with-nimbudocs-and-plone/</link><pubDate>Wed, 30 Oct 2013 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/produce-and-publish-update-collaborative-editing-with-nimbudocs-and-plone/</guid><description>&lt;p&gt;Over the weekend I hacked a quick integration of the Nimbudocs Editor with Plone 4.3 in order to demonstrate the collaboration modus of Nimbudocs Editor.&lt;/p&gt;&#10;&lt;p&gt;To make it short:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;an editor can enable the collaboration mode for the current Plone document opened in Nimbudocs Editor&lt;/li&gt;&#10;&lt;li&gt;other editors (with edit permission on the document) can join the editing session&lt;/li&gt;&#10;&lt;li&gt;the primary editor of the document can give control to other participants&lt;/li&gt;&#10;&lt;li&gt;all changes are directly reflected to other participants (like Google Docs or Etherpad)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Here is a quick (unedited) video showing the integration:&lt;a href="http://www.youtube.com/watch?v=lwVcrSi-qwI"&gt;http://www.youtube.com/watch?v=lwVcrSi-qwI&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Why Android was and remains an unusable piece of software shit?</title><link>https://blog.zopyx.com/why-android-was-and-remains-an-unusable-piece-of-software/</link><pubDate>Thu, 24 Oct 2013 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/why-android-was-and-remains-an-unusable-piece-of-software/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-8.jpg" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;&amp;lt;rant&amp;gt;&lt;/p&gt;&#10;&lt;p&gt;This is kind of a rant followup to a year-old posting of mine about using &lt;a href="http://www.andreas-jung.com/contents/my-samsung-galaxy-tab-10.1-review"&gt;Samsung Android on a Galaxy Tab&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;Some months ago I bought a &lt;a href="http://en.cloudnetgo.com/_d275927170.htm"&gt;Cloudnet CR 9/S&lt;/a&gt; Android stick - one of the fastest Android stick you could find at the time with a fast quad-core CPU running the lasted Android 4.2 version.&lt;/p&gt;&#10;&lt;p&gt;I bought it because I was looking for a small hardware solution for running some presentation videos at the our booth during the DMS Expo fair some weeks ago in Stuttgart.&lt;/p&gt;</description></item><item><title>Produce &amp; Publish Status Update 5 - Nimbudocs, our new Web-To-Print editor</title><link>https://blog.zopyx.com/produce-publish-status-update-5-nimbudocs-our-new-web-to-print-editor/</link><pubDate>Mon, 26 Aug 2013 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/produce-publish-status-update-5-nimbudocs-our-new-web-to-print-editor/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-9.jpg" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;The Produce &amp;amp; Publish platform got a new experimental editor: &lt;strong&gt;Nimbudocs Editor&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Nimbudocs is a HTML5+JS driven WYSIWYG editor that runs on all modern browsers.&lt;/p&gt;&#10;&lt;p&gt;It is the first editor that provides &lt;strong&gt;real&lt;/strong&gt; WYSIWYG to the end-user.&lt;/p&gt;&#10;&lt;p&gt;Its primary purpose is to provide &lt;strong&gt;exactly&lt;/strong&gt; the same layout to the document author as in the generated PDF document.&lt;/p&gt;&#10;&lt;p&gt;Nimbudocs Editor is not designed to be used as default editor for content as part of a CMS system.&lt;/p&gt;</description></item><item><title>Relaunch Produce &amp; Publish Website DE</title><link>https://blog.zopyx.com/relaunch-produce-publish-website-de/</link><pubDate>Mon, 12 Aug 2013 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/relaunch-produce-publish-website-de/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-10.jpg" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;Im Rahmen der Vorbereitung zur &lt;a href="https://blog.zopyx.com/produce-and-publish-de/informationen/aktuelles/zopyx-praesentiert-produce-publish-auf-der-dmsexpo"&gt;Teilnahme&lt;/a&gt; an der diesjährigen DMS Expo haben wir auch endlich die &lt;a href="http://www.produce-and-publish.info/"&gt;deutsche Version der Produce &amp;amp; Publish Website&lt;/a&gt; komplett neu realisiert. Die neue Website strukturiert alle Informationen über Produce &amp;amp; Publish wesentlich besser und bringt die Funktionalitäten von Produce &amp;amp; Publish auf den Punkt. Neben einer besserung Gliederung der Website haben wir auch Wert auf eine ausführliche Darstellung der verschiedenen Kompontenten und Konvertierungsoptionen gelegt. Eine umfangreiche Sektion mit Referenzen und herunterladbaren Beispieldokumenten runden den Relauch der Website ab.&lt;/p&gt;</description></item><item><title>Produce &amp; Publish Status Update 4</title><link>https://blog.zopyx.com/produce-publish-status-update-4/</link><pubDate>Mon, 15 Jul 2013 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/produce-publish-status-update-4/</guid><description>&lt;p&gt;A recent discussion with a customer brought me to the point rewriting the existing DOCX import into Plone (as it exists in the &amp;ldquo;old&amp;rdquo; Produce &amp;amp; Publish Authoring Environment) from scratch. The new functionality provides basically the following:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;an import form that can be called in the context of a Plone folder object&lt;/li&gt;&#10;&lt;li&gt;the import form allows you to upload a Word DOCX document&lt;/li&gt;&#10;&lt;li&gt;the conversion process in the background will send the file to the Produce &amp;amp; Publish Server where is it converted to XHTML using unoconv&lt;/li&gt;&#10;&lt;li&gt;the generated XHTML document is split into the contents and styles&lt;/li&gt;&#10;&lt;li&gt;the html-ish context is stored as Plone Document, the style sheets are stored as Plone files, images are stored as Plone images&lt;/li&gt;&#10;&lt;li&gt;a dedicated view will render the html-ish context together with the extracted styles from the DOCX document&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;The conversion result actually looks reasonably well.&lt;/p&gt;</description></item><item><title>PDF Generation with Plone and PhantomJS</title><link>https://blog.zopyx.com/pdf-generation-with-plone-and-phantomjs/</link><pubDate>Thu, 11 Jul 2013 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/pdf-generation-with-plone-and-phantomjs/</guid><description>&lt;h4 id="produce--publish-plone-client-connector-and-server-component-now-supports-the-generation-of-pdf-using-phantomjs-as-low-cost-free-alternative-to-commercial-high-quality-converters-like-princexml-pdfreactor-or-antennahouse-formatter-v6-the-quality-should-be-good-enough-for-most-cases-the-interesting-part-is-that-the-look--feel-of-the-pdf-can-be-influenced-using-css"&gt;Produce &amp;amp; Publish (Plone Client Connector and Server Component) now supports the generation of PDF using Phantom.js as low-cost (free) alternative to commercial high-quality converters like PrinceXML, PDFreactor or Antennahouse Formatter V6. The quality should be good enough for most cases. The interesting part is that the look &amp;amp; feel of the PDF can be influenced using CSS.&lt;/h4&gt;&#10;&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-75.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;Here is a quick walk-through on using the newest Produce &amp;amp; Publish Plone Client Connector together with the reimplementation of the Produce &amp;amp; Publish Server with Plone 4.3 and Phantom.js&lt;/p&gt;</description></item><item><title>Produce &amp; Publish Authoring Environment open-sourced</title><link>https://blog.zopyx.com/produce-publish-authoring-environment-open-sourced/</link><pubDate>Sat, 06 Jul 2013 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/produce-publish-authoring-environment-open-sourced/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-11.jpg" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;I am pleased to announce that our &lt;a href="http://www.produce-and-publish.com/"&gt;Produce &amp;amp; Publish Authoring Environment&lt;/a&gt; for Plone is now released as open-source. The Authoring Environment has been the only commercial component of Produce &amp;amp; Publish until today. With the ongoing work on the next generation of Produce &amp;amp; Publish I decided to make this remaining component available to the public in addition to all other components of the Produce &amp;amp; Publish stack that already existed in the past as open-source release. The Authoring Environment was formerly priced with 1500 €.&lt;/p&gt;</description></item><item><title>Produce &amp; Publish Status Update 3</title><link>https://blog.zopyx.com/produce-publish-status-update-3/</link><pubDate>Sat, 06 Jul 2013 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/produce-publish-status-update-3/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-13.jpg" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;I spend several hours this week during the EuroPython 2013 conference in Florence bringing the Produce &amp;amp; Publish implementation forward.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;The Produce &amp;amp; Publish server should be now in a stable state support both synchronous and asynchronous conversions.&lt;/li&gt;&#10;&lt;li&gt;Instead of using supervisord for controlling all processes I switched to Circus which fells more approachable and extensible.&lt;/li&gt;&#10;&lt;li&gt;The pp.server buildout now supports the automatic installation of all external converters (demo versions only!)&lt;/li&gt;&#10;&lt;li&gt;Support for PDF generation using PhantomJS has been added. This gives you decent PDF generation for free (including support for most CSS Paged Media extensions). PDF generation through PhantomJS should be good enough for sites that just need some kind of &amp;ldquo;good&amp;rdquo; PDF export. The feature list of PhantomJS and the quality is however clearly below the featured PrinceXML and PDFreactor converters.&lt;/li&gt;&#10;&lt;li&gt;The Python client bindings for Produce &amp;amp; Publish have also stabilized and support both synchronous and asynchronous conversion operations.&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>Produce &amp; Publish Status Update 2</title><link>https://blog.zopyx.com/produce-publish-status-update-2/</link><pubDate>Mon, 24 Jun 2013 00:00:00 +0000</pubDate><guid>https://blog.zopyx.com/produce-publish-status-update-2/</guid><description>&lt;p&gt;&lt;img src="https://blog.zopyx.com/images/2020/10/image_mini-17.jpg" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;Significant progress has been made on the reimplementation of the Produce &amp;amp; Publish Server. The Produce &amp;amp; Publish server provides some web service API methods that all arbitrary application to convert their content to PDF through a central conversion server. The PDF generation is (as in the past) based on one of the following PDF converters:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;PrinceXML 8&lt;/li&gt;&#10;&lt;li&gt;PDFreactor 6&lt;/li&gt;&#10;&lt;li&gt;Anntennahouse Formatter V 6&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;The general conversion approach remains the same:&lt;/p&gt;</description></item></channel></rss>