http://epiqo.com/en/drupal/rss.xml/modules/email
enWorking on Drupal 8's entity validation APIhttp://epiqo.com/en/working-drupal-8s-entity-validation-api
<div class="field field-name-field-intro field-type-text-long field-label-hidden"><div class="field-items"><div class="field-item even"><p>tl;dr: I'm going to work on <a href="https://drupal.org/node/2015613">Drupal 8's entity validation system</a> for the next two months with the goal to create a consistent API for entities and fields. Not only forms will be able to trigger validation constraints but also incoming data from web service interfaces, migration processes or any other code that wishes to execute the validation.</p></div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>I'm glad that I got funding again to professionally work on Drupal 8 core. Big thanks to <a href="https://www.acquia.com/">Acquia</a> and my employer epiqo who are sponsoring this effort, similar to <a href="https://groups.drupal.org/node/285663">my REST module work </a>earlier this year.</p><h2>What are you talking about?</h2><p>Consider the maximum length of a node title in Drupal. In Drupal 7 we specify a #maxlength of 255 for the title in the node edit form (note that we also specify the database definition of the title field length, but we cannot process database errors in a meaningful way for validation). Now the validation of the title field is completely tied to the form API, a web service module cannot easily reuse that validation information when it receives a data submission. The situation gets even more complicated if form validation callbacks are needed that perform some computation (example: the node title should be unique, which requires a database lookup). The entity system has no information what validators are registered with the form API and cannot provide that to the web service module. And reverse engineering some deeply nested form arrays and creating pseudo form states is not a solution to the problem that an API is missing here.</p><p>In Drupal 8 we are going to change that: Symfony validators to the rescue! We have now an architecture in place that allows us to retrieve validation constraint violations for individual fields and whole entities. Read up on that in <a href="https://drupal.org/node/2015613">the documentation</a>.</p><h2>Tasks</h2><p>I will tackle the <a href="https://drupal.org/node/1696648">conversion of all Drupal core entity forms</a> and validators, so that we leverage the full potential of our brand new validation API. I will also look into a generic implementation for all entity forms and how that aligns with configurable fields and entity base fields. Once that is completed I will <a href="https://drupal.org/node/1910658">integrate the entity validation into REST module</a>, so that it can verify all incoming data same as a usual form submission would do.</p><h2>Time frame</h2><p>Drupal 8 is now at <a href="https://drupal.org/core/release-cycle#polish-phase">API freeze</a> which means we need to be careful what we are going to change. I hope that we can keep API breaking changes to a minimum for entity validation, since we already have the concepts ready to use I'm optimistic. I'm dedicated to work on this for the next two months, so the goal is to finish off all validation implementation details until the beginning of September.</p><p>Your help with all the validation issues is appreciated, I'm not going to succeed on my own here, feel free to jump in! Special thanks to Wolfgang Ziegler (fago) and all other contributors who made this entity validation API possible. Let's finish this!</p></div></div></div>Mon, 01 Jul 2013 07:32:20 +0000klausi291 at http://epiqo.comhttp://epiqo.com/en/working-drupal-8s-entity-validation-api#commentsAll your pants are in danger - CSRF explainedhttp://epiqo.com/en/all-your-pants-are-danger-csrf-explained
<div class="field field-name-field-intro field-type-text-long field-label-hidden"><div class="field-items"><div class="field-item even"><p>Cross Site Request Forgery (CSRF) is a common form of attack against a web application. This post tries to shed some light on how it works and how exploits can be crafted. We will tailor this to a Drupal use case and example code.</p>
</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>Some general considerations:</p>
<ul><li>First, keep in mind how web browsers and authentication works: if you are logged-in on a site with cookies, then your browser will always send along the cookies with any request it makes to that site. If another site embeds resources from that site (images, javascript, iframes ...), then the resource will be requested with your cookies attached.</li>
<li>Second, it is important to know that CSRF can only be applied to write operations. That means that a page callback must change the application's data. Example: the path /node/1 cannot be vulnerable to CSRF exploits in a standard Drupal installation, because a node is only displayed and not changed.</li>
<li>Third, you must know that a CSRF attack is always performed on behalf of a particular user. That means that the attack is performed "blindly", which means that the original attacker cannot access the response during the attack.</li>
</ul><p>Confused? Me too, let's look at a "real" Drupal example.</p>
<h2>The simple GET case</h2>
<p>This pattern is probably most widely known among developers. Here's example module code that provides a menu callback to delete some example pants data:</p>
<div class="codeblock"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/**<br /> * Implements hook_menu().<br /> */<br /></span><span style="color: #007700">function </span><span style="color: #0000BB">mymodule_menu</span><span style="color: #007700">() {<br /> </span><span style="color: #0000BB">$items</span><span style="color: #007700">[</span><span style="color: #DD0000">'mymodule/pants/%/delete'</span><span style="color: #007700">] = array(<br /> </span><span style="color: #DD0000">'title' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'Delete pants'</span><span style="color: #007700">,<br /> </span><span style="color: #DD0000">'page callback' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'mymodule_delete_pants'</span><span style="color: #007700">,<br /> </span><span style="color: #DD0000">'page arguments' </span><span style="color: #007700">=&gt; array(</span><span style="color: #0000BB">2</span><span style="color: #007700">),<br /> </span><span style="color: #DD0000">'access arguments' </span><span style="color: #007700">=&gt; array(</span><span style="color: #DD0000">'delete pants objects'</span><span style="color: #007700">),<br /> );<br /> return </span><span style="color: #0000BB">$items</span><span style="color: #007700">;<br />}
<p></p></span><span style="color: #FF8000">/**<br /> * Page callback to delete pants.<br /> */<br /></span><span style="color: #007700">function </span><span style="color: #0000BB">mymodule_delete_pants</span><span style="color: #007700">(</span><span style="color: #0000BB">$pants_id</span><span style="color: #007700">) {<br /> </span><span style="color: #0000BB">db_delete</span><span style="color: #007700">(</span><span style="color: #DD0000">'mymodule_pants'</span><span style="color: #007700">)-&gt;</span><span style="color: #0000BB">condition</span><span style="color: #007700">(</span><span style="color: #DD0000">'pants_id'</span><span style="color: #007700">, </span><span style="color: #0000BB">$pants_id</span><span style="color: #007700">)-&gt;</span><span style="color: #0000BB">execute</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">drupal_set_message</span><span style="color: #007700">(</span><span style="color: #0000BB">t</span><span style="color: #007700">(</span><span style="color: #DD0000">'Deleted pants %id'</span><span style="color: #007700">, array(</span><span style="color: #DD0000">'%id' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">$pants_id</span><span style="color: #007700">)));<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
<p>Pretty straight forward, right? What could possibly go wrong with that code? The menu entry is protected with a permission, so everything is fine?</p>
<p>Wrong. The usual HTML snippet for exploiting CSRF here looks like this (example.com is your Drupal site):</p>
<div class="codeblock"><code>&lt;img src="http://example.com/mymodule/pants/1337/delete"&gt;</code></div>
<h2>Chain of an attack</h2>
<ul><li>The attacker posts a comment on your site: "Look what a nice picture I found" and the image snippet from above.</li>
<li>You are logged in as admin and you see that there is a new comment, so you go to that comment page.</li>
<li>Your browser renders the content, sees the image and tries to fetch it.</li>
<li>Your browser sends the cookies along, so permission is granted to the page callback (you as admin are allowed to delete pants).</li>
<li>The delete query is executed and pants with ID 1337 are removed.</li>
<li>Your browser receives an HTML response from Drupal and cannot display it. It will show a broken image or similar.</li>
<li>You think: "What a dumb comment, the image does not even work, LOL!"</li>
<li>Later you realize that somehow the 1337 pants are gone, but you have no idea why.</li>
</ul><p>The attacker does not even have to post the malicious HTML snippet on your site, she can also post it on her own site, or to Facebook for example. She only needs you to load the image or follow the link, and all your pants are in danger.</p>
<h2>Solution</h2>
<p>There are two common strategies to solve this problem:</p>
<ul><li><strong>Confirmation form</strong>: the action is not performed immediately and the user has to press an extra button in order to proceed with deleting pants.</li>
<li><strong>Security Tokens</strong>: the menu link has an additional security token in its path that is validated before executing the action. <a href="http://api.drupal.org/api/drupal/includes!common.inc/function/drupal_get_token/7">drupal_get_token()</a> and <a href="http://api.drupal.org/api/drupal/includes!common.inc/function/drupal_valid_token/7">drupal_valid_token()</a> can generate/validate the tokens for you and when the link is displayed the token is added. An attacker cannot know your token, so the validation will fail and access will be denied in that case.</li>
</ul><p>A typical use case for such action links that have to be protected is implemented in the <a href="http://drupal.org/project/rules_link">Rules Link module</a> that we heavily use for our <a href="http://drupal.org/project/recruiter">Recruiter</a> and <a href="http://epiqo.com/jobiqo">jobiqo</a> products. I would recommend to look at its hook_menu() implementations and access/page callbacks for examples for confirmation forms and token protection. There is also an interesting <a href="http://drupalscout.com/knowledge-base/protecting-your-drupal-module-against-cross-site-request-forgeries-csrf">Drupal Scout article about how to protect your Drupal site against CSRF</a>.</p>
<h2>More advanced POST cases</h2>
<p>I will follow-up with CSRF examples for POST requests in a future blog post. Stay tuned!</p>
</div></div></div>Tue, 26 Feb 2013 08:39:50 +0000klausi155 at http://epiqo.comhttp://epiqo.com/en/all-your-pants-are-danger-csrf-explained#commentsAnnouncing Recruiter 1.0 - the road to our Drupal 7 e-Recruitment distributionhttp://epiqo.com/en/announcing-recruiter-10-road-our-drupal-7-e-recruitment-distribution
<div class="field field-name-field-intro field-type-text-long field-label-hidden"><div class="field-items"><div class="field-item even"><p>After more than two years of development, our team at epiqo is excited to announce Recruiter 1.0 - the final release of our e-recruitment solution based on Drupal 7. Go and download the fresh and shiny <a href="http://drupal.org/node/1918136">Recruiter 1.0 from drupal.org</a> or read further, as I'd like to share some insights on how we have been creating the distribution as our base product over the last years.</p>
</div></div></div><div class="field field-name-field-preview-image field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><img typeof="foaf:Image" src="http://epiqo.com/sites/default/files/inhalt/vorschaubild/recruiter.png" width="594" height="206" alt="" /></div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><h3>Step 1: Creating a fresh platform for extensible e-recruitment websites based on Drupal 7</h3><p>At epiqo, we started developing Recruiter early on by September 2010. As one of the very first Drupal 7 based distributions, short time after Drupal 7 was released in January 2011, our first beta of Recruiter was <a href="/de/en/introducing-drupal-7-e-recruitment-distribution-erecruiter">announced on March 4th, 2011</a>. Creating the Recruiter distribution early on by that time involved figuring out the right feature-driven development workflow and working on fundamental Drupal contrib modules. <a href="http://drupal.org/project/entity">Entity API</a>, <a href="http://drupal.org/project/profile2"> Profile2</a>, <a href="http://drupal.org/project/field_collection">Field-collection</a>, the <a href="http://drupal.org/project/search_api">Search API</a>, <a href="http://drupal.org/project/rules">Rules</a>, the <a href="http://drupal.org/project/rules_autotag">Rules Autotagger</a> module and a <a href="http://drupal.org/project/term_level">Term-level</a> field is just a brief exerpt of the great variety of modules that have been sponsored during the creating of the Recruiter distribution.</p><h3>Step 2: Stabilizing the Recruiter platform</h3><p>Since our first beta release, we have been continously improving and expanding the Recruiter distribution which forms the basis of all our job boards. A lot of stabilizing happenend under the hood like figuring out the optimum of default field settings for job postings and our detailed resume feature. Over time, we also added a number of additional features to Recruiter like <em>job applications</em>, a <em>content admin role</em>, a <em>registration feature</em> and the ability to switch between <em>Search API Database</em> and <em>Solr backends</em>. It took a while until the drupal.org distribution infrastructure was able to build full releases, so since beta7 we are able to host them entirely on drupal.org.</p><h3>Step 3: Adding Cloudy, a Omega 4.x responsive base theme</h3><p>Back in early 2011, shipping Recruiter with a red Bartik theme was kind of cool because we were showcasing the new and fresh Drupal 7. Frontend web design has evolved dramatically since then, so we decided to create a modern, new base theme for our Recruiter based sites. Together with Sebastian Siemssen we worked on his complete rewrite of the Omega 4 base theme. In summer 2012, we <a href="/de/en/drupaljobs-responsively-relaunches-recruiter-rc1-and-omega-4">relaunched our demonstration platform DrupalJobs</a> just in time for DrupalCon Munich. Since then, our Recruiter-based job portals are based on our mobile-first and reponsive base theme Cloudy that leverages Sass, Compass and the Susy grid.</p><p>With the final release of Recruiter, we are glad to include the fully open-sourced <a href="http://drupal.org/project/cloudy">Cloudy</a> base theme within the distribution. Omega 4 is moving towards a stable release. For more information, consult the issue queue and or find a in-depth discussion in the comments of <a href="http://blog.amazeelabs.com/en/new-face-omega-4">Amazee Labs Blog post on the new face of Omega 4</a>.</p><h3>Step 4: Finalizing the Recruiter distribution with demo content</h3><p>So far, Recruiter was a great platform technology-wise, but after installing the distribution you didn't see anything. We have now added a <em>Recruiter Demo</em> feature to provide a good starting point when evaluating the Recruiter distribution. The installer will automatically import a set of demo data, including job postings and a complete applicant resumes. Similar to other modern Drupal distributions, Recruiter now provides a nice out-of-the-box experience that show cases the essential functionality provided by our distribution. </p><p>simplytest.me is a great way for evaluating Drupal projects online. Take a quick Recruiter 1.0 test ride using the direct link: <a href="http://simplytest.me/project/recruiter/7.x-1.0">http://simplytest.me/project/recruiter/7.x-1.0</a></p><h3>Conclusions and outlook</h3><p>Recruiter is a Drupal distribution that focuses on a specific nieche - job portals. By leveraging and actively contributing to the Drupal ecosystem we have found a great way of building on the shoulders of giants. The great amount of extension modules for Drupal is the perfect fit for creating flexible and extensible e-Recruitment solutions. epiqo also provides <a href="/de/en/jobiqo-packages">premium-features</a> built on top of Recruiter and we offer Recruiter consultancy from job board architecture over implementation details to related module development. Come and <a href="/de/en/about-us">contact us</a> to discuss how Recruiter can help bring success to your job board project. </p></div></div></div><div class="field field-name-field-content-images field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><img typeof="foaf:Image" src="http://epiqo.com/sites/default/files/inhalt/inlineimages/recruiter_start.png" width="801" height="706" alt="" /></div><div class="field-item odd"><img typeof="foaf:Image" src="http://epiqo.com/sites/default/files/inhalt/inlineimages/recruiter_start_mobile.png" width="382" height="564" alt="" /></div></div></div>Fri, 15 Feb 2013 13:43:41 +0000dasjo157 at http://epiqo.comhttp://epiqo.com/en/announcing-recruiter-10-road-our-drupal-7-e-recruitment-distribution#commentsDrupalJobs responsively relaunches on Recruiter RC1 and Omega 4http://epiqo.com/en/drupaljobs-responsively-relaunches-recruiter-rc1-and-omega-4
<div class="field field-name-field-intro field-type-text-long field-label-hidden"><div class="field-items"><div class="field-item even"><p>Just ready for <a href="http://munich2012.drupal.org/">DrupalCon Munich</a> here at epiqo we are excited to announce the relaunch of <a href="http://drupaljobs.epiqo.com/">DrupalJobs</a>. Our demonstration website for the <a href="http://drupal.org/project/recruiter">Recruiter distribution</a> is now driven by the brand new <a href="http://drupal.org/node/1738220">Omega 4 base theme</a>!</p>
</div></div></div><div class="field field-name-field-preview-image field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><figure><img typeof="foaf:Image" src="http://epiqo.com/sites/default/files/inhalt/vorschaubild/drupaljobs_logo_0.png" width="253" height="49" alt="Drupal Jobs Logo" title="Drupal Jobs Logo" /><figcaption class="image-caption">Drupal Jobs Logo</figcaption></figure></div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p><span style="font-family: Georgia, 'Times New Roman', 'DejaVu Serif', serif; font-size: 1.5em; line-height: 1.5em;">Omega 4 freshness</span></p><p>As we were planning to create a new base theme for Recruiter and our related service <a href="/de/en/jobiqo">jopiqo</a>, we sponsored Sebastian Siemssen to kickstart Omega 4 development. From May till last week, we have been working together intensively on crafting a slick, responsive base theme that leverages up to date technologies backed by Omega's magic. Omega 4 is still in the early stages but we are expecting it to stabilize soon. Here are some buzz words to get you going: </p><ul><li>SASS/Compass mixins</li><li>Mobile-first </li><li>Fluid, semantic, responsive grid via Susy</li><li>Alternative layouts with custom javascript and css</li><li>Performance-optimized</li></ul><p>Go and check out our demonstration site at <a href="http://drupaljobs.epiqo.com">http://drupaljobs.epiqo.com</a> to see how it all works. We are especially proud of using semantic css classes only and providing sensible defaults for field and form styles. Also check out the slick menu and sidebar implementation for small device widths!</p><h3>So when is this all available?</h3><p>Right now - the first <a href="http://drupal.org/node/1738220">omega 7.x-4.0-alpha1</a> is already available to test. The included epiqo layout extension provides the foundations for DrupalJobs and all our future theme implementations for the Recruiter distribution.</p><p>Also note that last week we pushed the first release candidate of <a href="http://drupal.org/project/recruiter">Recruiter</a> which we consider to be feature stable. Development started even before Drupal 7 was released with a <a href="http://drupal.org/node/1188426">first beta</a> being relased already in March 2011. Thus, we believe to have provided a stable and up-to-date foundation for future developments in the e-recruitment area based on contributed modules like <a href="http://drupal.org/project/profile2" rel="nofollow">Profile2</a>, <a href="http://drupal.org/project/entity" rel="nofollow">Entity</a>, <a href="http://drupal.org/project/search_api" rel="nofollow">Search API</a>, <a href="http://drupal.org/project/rules" rel="nofollow">Rules</a>, <a href="http://drupal.org/project/field_collection" rel="nofollow">Field collection</a>, <a href="http://drupal.org/project/term_level" rel="nofollow">Term level field</a>, <a href="http://drupal.org/project/autocomplete_deluxe" rel="nofollow">Autocomplete deluxe</a> amongst many others.</p><p> </p><p>Thanks to <a href="http://ausgetrock.net/en/nico-grienauer">Nico Grienauer</a> for the design, <a href="https://twitter.com/thefubhy">Sebastian Siemssen</a> for theme development, <a href="/de/en/team/dominik-kiss">Dominik Kiss</a> for theming and the rest of the <a href="/de/en/team/">epiqo team</a>.<br />See you at DrupalCon!</p></div></div></div><div class="field field-name-field-content-images field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><figure><img typeof="foaf:Image" src="http://epiqo.com/sites/default/files/inhalt/inlineimages/drupajobs.png" width="800" height="554" alt="Drupal Jobs desktop screenshot" title="Drupal Jobs desktop screenshot" /><figcaption class="image-caption">Drupal Jobs desktop screenshot</figcaption></figure></div><div class="field-item odd"><figure><img typeof="foaf:Image" src="http://epiqo.com/sites/default/files/inhalt/inlineimages/drupaljobs_mobile.png" width="487" height="568" alt="Drupal Jobs mobile screenshot" title="Drupal Jobs mobile screenshot" /><figcaption class="image-caption">Drupal Jobs mobile screenshot</figcaption></figure></div></div></div>Sat, 18 Aug 2012 14:15:31 +0000dasjo149 at http://epiqo.comhttp://epiqo.com/en/drupaljobs-responsively-relaunches-recruiter-rc1-and-omega-4#commentsMapping sprint at Drupal Developer Days Barcelona 2012http://epiqo.com/en/mapping-sprint-drupal-developer-days-barcelona-2012
<div class="field field-name-field-intro field-type-text-long field-label-hidden"><div class="field-items"><div class="field-item even"><p>This friday, we are running a sprint at <a href="http://barcelona2012.drupaldays.org/">Drupal Developer Days Barcelona 2012</a> with already 14 attendees signed up. Europe's biggest developer oriented conference with more than 300 people attending is a great chance to connect with coders and get things done.</p>
</div></div></div><div class="field field-name-field-preview-image field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><figure><img typeof="foaf:Image" src="http://epiqo.com/sites/default/files/inhalt/vorschaubild/openlayers_monster_.png" width="250" height="250" alt="Drupal OpenLayers monster by Saman Bemel Benrud" title="Drupal OpenLayers monster by Saman Bemel Benrud" /><figcaption class="image-caption">Drupal OpenLayers monster by Saman Bemel Benrud</figcaption></figure></div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><h2>When and where</h2><p>The sprint will happen on <strong>Friday, 15th of June 10:00-18:00 CEST (GMT+2)</strong><br />at the conference venue: Citilab grounds in Cornella de Llobregat, Barcelona.<br />Remote collaboration is very welcome and happens on our IRC Channel: <a href="irc://irc.freenode.net/drupal-geo">#drupal-geo</a>.</p><p>Please see our <a href="https://docs.google.com/document/d/1uI3ykJQUVXiuZPEHEeYtLvy9ZokeZ14gznxvjXZyDlM/edit?pli=1#">Google Doc for the sprint signup</a>.</p><p><!--break--></p><h2>Sprint topics</h2><p>Both module developers and site builders / users of the mapping modules have signed up. We will work on a mix of topics, so people may contribute where they are good at:</p><ul><li><b>Mapping documentation</b>: Improve and re-work existing documentation pages. Issues will be prepared with the <a href="http://drupal.org/project/issues/search?projects=&amp;status%5B%5D=Open&amp;issue_tags_op=and&amp;issue_tags=Mapping%2C+Documentation">Mapping, Documentation tags</a>.</li><li><strong>Novice patches</strong>: New contributors to mapping will get the chance to realize their first contributions by tackling low-hanging fruits and easy patches. Issues will be prepared with the <a href="http://drupal.org/project/issues/search?projects=&amp;status%5B%5D=Open&amp;issue_tags_op=and&amp;issue_tags=Mapping%2C+Novice">Mapping, Novice tags</a>. </li><li><strong>Views GeoJSON</strong> is a great new way to make maps in Drupal really Ajax-driven. We will be working on getting it closer to a stable release and <a href="http://drupal.org/node/1471026">document use cases</a>.</li><li><strong>Leaflet</strong> is another new addition to mapping with Drupal which has a lot of sympathy for being newer and faster than OpenLayers. Peter Vanhee wants to work on getting <a href="http://drupal.org/node/1338326">Views integration</a> done.</li><li><strong>Geocluster</strong> is my own initiative for having a server-side geo clustering solution with Drupal 7. See more information below and in this <a href="http://drupal.org/node/1547610">issue</a>.</li></ul><h2>Some background and why to sprint for mapping</h2><p>I have been following mapping and Drupal with interest for quite some time. In 2010, <a href="">epiqo</a> hired me for working on our research project <a href="http://www.austrofeedr.at/">AustroFeedr</a>. We explored possibilites of aggregating, processing and visualizing Open Data with Drupal 7. The <a href="http://demo.austrofeedr.at/">demonstration site</a> clearly shows our focus on maps for displaying the flood prevention data in Austria. AustroFeedr therefore leverages state-of-the-art Drupal 7 mapping modules like <a href="http://drupal.org/project/geofield">Geofield</a> and <a href="http://drupal.org/project/openlayers">OpenLayers</a>.</p><p>For my master thesis, I am working on a more technical detail of mapping with Drupal: <a href="http://drupal.org/project/geocluster">Geocluster</a> will allow to improve usability and performance of maps with lots of points by clustering them server-side. I have already built a quick prototype to discuss how to best integrate the clustering logic with views. I'm looking forward gathering feedback at the sprint and in the related <a href="http://drupal.org/node/1547610">issue</a>.</p><p> </p><h2>Wrap up</h2><p>Recently, we started holding Drupal Mapping Office Hours once a month - so far in <a href="http://groups.drupal.org/node/228708">May</a> and <a href="http://groups.drupal.org/node/235268">June</a> - which are announced in the <a href="http://groups.drupal.org/mapping">Location and Mapping Group</a>. It was great to see on what different people are working on at the moment. Feel free to review the <a href="https://docs.google.com/document/d/19F8XCwyxQc4JwouNxDDspiDCjPAWFsVb--xxOyedpmw/edit#heading=h.rg5jpdxkx7oj">office hours logs</a> to see what has been discussed so far. Also note, that by <a href="http://drupal.org/user/147331">zzolo</a>'s <a href="http://groups.drupal.org/node/235273">announcement</a>, we are officially looking for new maintainer for the OpenLayers module. Also make sure to check out the <a href="http://barcelona2012.drupaldays.org/sessions/mapping-drupal">Mapping with Drupal session</a> by <a href="http://drupal.org/user/22175">batigolix</a> after the sprint on Sunday at the Drupal Developer Days.</p><p>What are your thoughts on mapping and Drupal? See you at the <a href="http://barcelona2012.drupaldays.org/improve-mapping-drupal-7">sprint</a> and ping me in <a href="irc://irc.freenode.net/drupal-geo">#drupal-geo</a> (nick: dasjo).</p><p>Sprint image from <a href="http://ecsl2011.softwarelibre.ca/">ECSL 2011</a> by <a href="http://dasjo.at/">Josef Dabernig</a>. <br />Drupal OpenLayers monster by <a href="http://www.flickr.com/photos/samanpwbb/" rel="nofollow">Saman Bemel Benrud</a>.</p></div></div></div><div class="field field-name-field-content-images field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><figure><img typeof="foaf:Image" src="http://epiqo.com/sites/default/files/inhalt/inlineimages/img_2539.jpg" width="1600" height="1200" alt="Sprint image from ECSL 2011 by Josef Dabernig" title="Sprint image from ECSL 2011 by Josef Dabernig" /><figcaption class="image-caption">Sprint image from ECSL 2011 by Josef Dabernig</figcaption></figure></div></div></div>Wed, 13 Jun 2012 11:58:19 +0000dasjo146 at http://epiqo.comhttp://epiqo.com/en/mapping-sprint-drupal-developer-days-barcelona-2012#commentsjobiqo presentation at Drupal Business Dayshttp://epiqo.com/en/jobiqo-presentation-drupal-business-days
<div class="field field-name-field-intro field-type-text-long field-label-hidden"><div class="field-items"><div class="field-item even"><p>Last weekend the <a href="http://drupalbusiness.org/">Drupal Business Days</a> took place in Vienna. This event was the perfect opportunity for us to announce epiqo's new <a href="/en/jobiqo">jobiqo</a> service, a hosted version of our open source <a href="http://drupal.org/project/recruiter">Recruiter</a> distribution, including an extended feature set. With this service we focus on niche job portals and provide our customers a turnkey, easy-to-use and powerful solution.</p>
</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>On the first day we attended the CXO meetup at the Microsoft building, where we visited their new offices and discussed a lot of interesting topics with other Drupal companies. This gave us the chance to talk about topics like Drupal products, business models for distributions, marketing, corporations and many more. On the second day, together with <a href="/en/team/josef-dabernig">Josef Dabernig</a>, we presented our <a href="http://drupalbusinessdays.org/sessions/powerful-job-boards-erecruiter-distribution">session</a> at the Business days (feel free to download the session slides attached to this article). We received lots of valuable feedback concerning our approach and are incorporating it into our strategy. On the last day, as part of the <a href="http://www.drupal-austria.at/veranstaltungen/drupal-create-camp">Drupal Create Camp</a>, we started to port the <a href="http://www.drupal-austria.at/">Drupal Austria community website</a> to Drupal 7.</p>
<p>All in all it was a very inspiring and motivating event, where we had the opportunity to get in touch with many other Drupal shops. For further updates on jobiqo and the open source Recruiter distribution (a new beta release is on the way) check our website.</p>
</div></div></div><div class="field field-name-field-content-files field-type-file field-label-above"><div class="field-label">Dateianhänge:&nbsp;</div><div class="field-items"><div class="field-item even"><span class="file"><img class="file-icon" alt="" title="application/pdf" src="/modules/file/icons/application-pdf.png" /> <a href="http://epiqo.com/sites/default/files/inhalt/dateien/epiqo_jobcloud_drupal_business_days_2012.pdf" type="application/pdf; length=1241415">epiqo_jobcloud_drupal_business_days_2012.pdf</a></span></div></div></div>Tue, 08 May 2012 15:05:57 +0000mh143 at http://epiqo.comhttp://epiqo.com/en/jobiqo-presentation-drupal-business-days#commentsDrupal Developer Days Brusselshttp://epiqo.com/en/drupal-developer-days-brussels
<div class="field field-name-field-preview-image field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><img typeof="foaf:Image" src="http://epiqo.com/sites/default/files/inhalt/vorschaubild/devdays.png.crop_display.jpg" width="487" height="333" alt="" /></div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p><em>epiqo took part in the Drupal Developer Days last week, an event for sharing knowledge and exchanging ideas</em></p><p>The <a href="http://bxl2011.drupaldays.org/">mini-conference about Drupal development</a> took place from February 4th to 6th 2011 in Brussels and attracted many people as well as companies. It started with a code sprint on Friday where developers worked on Drupal core and other important modules. We were happy to connect with people from the community, to plan joint developments and to help each other in solving problems. The following two days offered many workshops, discussions, talks and other sessions about the Drupal ecosystem. One topic was especially discussed at the conference: the entity system in Drupal and how it can be leveraged by developers to write better code. There was a <a href="http://bxl2011.drupaldays.org/node/307">session by Ronald Ashri</a> about emerging patterns in using entities and there was a <a href="http://bxl2011.drupaldays.org/node/313">session by epiqo developer Wolfgang Ziegler</a> (fago) about the Entity API module and its benefits. Another <a href="http://bxl2011.drupaldays.org/node/274">interesting talk was given by Thomas Seidl</a> about the Search API module and its flexible search backends for Apache Solr, Xapian etc. All in all the developer days offered many informative sessions and the epiqo development team would like to thank the organizers for such a great networking opportunity and congratulate on such a successful event.</p></div></div></div>Tue, 17 May 2011 08:30:07 +0000klausi58 at http://epiqo.comDrupal 7.0 finally releasedhttp://epiqo.com/en/drupal-70-finally-released
<div class="field field-name-field-preview-image field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><img typeof="foaf:Image" src="http://epiqo.com/sites/default/files/inhalt/vorschaubild/d7.jpg.crop_display.jpg" width="300" height="250" alt="" /></div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p><em>A new milestone in web content management has been reached: Drupal 7.0 is out and ready for production use.</em></p><p>After nearly 3 years of hard work of the Drupal community a new major version of the popular content management system is available for download now. The <a href="http://drupal.org/drupal-7-released">official release announcement</a> gives credit to those individuals that contributed to the development of Drupal 7. Huge improvements have been made to the scalability, usability, accessibility and developer experience of Drupal and tons of new features have been implemented. epiqo is already working with Druapl 7 for some time now, so we are ready to quickly adapt Drupal 7 and are building our future projects on it.</p><p><a href="http://www.drupal7releaseparty.org/">Drupal 7 release parties</a> have been announced worldwide for Friday 7th January 2011, there will also be <a href="http://metalab.at/wiki/Drupal_7_Release_Party_Vienna">one in Vienna at the Metalab</a>. We will be there too and look forward to celebrate with fellow Drupal enthusiasts.</p></div></div></div>Tue, 17 May 2011 08:29:20 +0000klausi57 at http://epiqo.comSearch API Screencasthttp://epiqo.com/en/search-api-screencast
<div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p><em>The Search API module is a great way of managing search engines in Drupal 7. A screencast is now available.</em></p><p>The <a href="http://drupal.org/project/search_api">Search API module</a> was developed by Thomas Seidl (<a href="http://drupal.org/user/205582">drunken monkey</a>) as Google Summer of Code 2010 project and epiqo has sponsored some further developments. Now there is an interesting <a href="http://vimeo.com/15556855">screencast</a> available to demonstrate the module's power and flexibility. It leverages the <a href="/en/drupal/modules/entity">Entity API module</a> (another module significantly shaped by epiqo), which allows a search for all different kinds of entities (nodes, users, taxonomy terms, etc.) out of the box. Integration with the Views module and Apache Solr is in place and offers thereby a highly scalable and configurable search solution for Drupal 7.</p></div></div></div>Tue, 17 May 2011 08:27:22 +0000klausi54 at http://epiqo.comDrupal 7 beta 1 releasedhttp://epiqo.com/en/drupal-7-beta-1-released
<div class="field field-name-field-preview-image field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><img typeof="foaf:Image" src="http://epiqo.com/sites/default/files/inhalt/vorschaubild/drupal7.thumbnail_0.png.crop_display.jpg" width="300" height="160" alt="" /></div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>The first beta of the upcoming Drupal 7 is available for download.</p><p>Drupal 7 has been developed since spring 2008 and offers many new features and improvements. Now that it has reached beta status there is a working upgrade path from Drupal 6. <i>epiqo</i> has been involved in the developments of Drupal core and we are very excited about this step towards a final Drupal 7 release. All of our new projects that we currently plan and implement are based on Drupal 7 and rely on its great power and flexibilty. You can find more details about Drupal 7 in the <a href="http://drupal.org/drupal-7.0-beta1">official release announcement</a>.</p></div></div></div>Tue, 17 May 2011 08:26:29 +0000klausi53 at http://epiqo.com