{"action":"created","comment":{"url":"https://api.github.com/repos/ePages-de/epages-docs/pulls/comments/57943393","id":57943393,"diff_hunk":"@@ -0,0 +1,56 @@\n+---\n+layout: post\n+title: \"Visiting the eCommerceCamp in Jena\"\n+date: \"2016-03-24 09:03:24\"\n+icon: shopping-cart\n+categories: events\n+authors: [\"Benjamin\"]\n+---\n+\n+The [eCommerceCamp](http://www.ecommerce-camp.de) is an annual [BarCamp](http://barcamp.org) that takes place in Jena, the capital of the eCommerce sphere in Germany, where a lot of the magic of online shopping started and still happens today. As always the highly affordable tickets for the unconference were sold out upfront and around 300 participants from near and far were expected. The orga team from [tritum](http://www.tritum.de) and [marmalade](http://www.marmalade.de) did a terrific job by creating an inspiring environment, which let everyone look forward to up-to-date topics about shop systems, productivity habits, email marketing, new technologies, customer satisfaction and team collaboration or even juggling with circus balls.\n+\n+## The participants\n+\n+The clientele consists mainly of UI and UX designers, frontend and backend developers, project managers, some marketing people and also a few dedicated testers from web agencies with 1 to 20 people, who typically work with self-contained content management systems like [Magento](https://magento.com), [OXID](http://www.oxid-esales.com), [Shopware](https://en.shopware.com), [TYPO3](https://typo3.org) or even [WordPress](https://wordpress.com). Attendees from the global eCommerce players are typically lesser represented, but this doesn't mean that local matadors like [Intershop](http://www.intershop.com) or ePages are not there as well.\n+\n+{% image blog/blog-ecommerce-barcamp-1.jpg %}{% endimage %}\n+\n+## The setting\n+\n+The event began with a dinner on Thursday evening in the famous local restaurant [Zur Noll](http://www.zur-noll.de/), which should break the ice of everyone's comfort zone and kickoff the communication flow.\n+\n+On Friday morning all participants met in the auditorium at the [Ernst-Abbe-Hochschule Jena](http://www.eah-jena.de/), University of Applied Sciences, which served as hosting space. After a collective breakfast the session planning for both days took place. Everybody can suggest an own Open Space talk. The crowd expresses interest in a suggestion via raising their hands. This immediate reaction allows a proper planning of the time slot and room allocation for the session.\n+\n+## The sessions\n+\n+To give you a better impression of the actual contents of the conference I want to outline some of the sessions. As I am a backend software craftsman you may recognise easily that I skipped the marketing and lawfully oriented parts of the event and tried to focus on the more technical talks.\n+\n+{% image blog/blog-ecommerce-barcamp-2.jpg %}{% endimage %}\n+\n+The first session was held by Christoph Rüger, who is part of a small team that has built a new cloud service that reads data from files (uploaded CSV, XML, Google Drive etc.) and let's the user create workflows via Drag'n'Drop (e.g. cronjobs with conditions and scheduling) that can interact with other service providers. Christopher revealed which tools his team used for internal project management and customer communication. He also explained the process of finding the fitting frameworks for developing their service, which was a quite interesting to follow.\n+\n+The next presentation dealt with the topic \"Infrastructure as Code\". Jan Peschke and Manuel Dieckmann prepared a talk about how they automated the rollout and development of Shopware environments with [Ansible](https://www.ansible.com/) and [OpenStack](https://www.openstack.org), a solution similar to [Amazon AWS](https://aws.amazon.com). Currently this cloud technology is on the transition to the state of production-readyness but not there yet. However a lot of minor service providers already emphasize OpenStack in the marketing ads as a blazing part of their customer portfolio. In the session it was made clear that developers have to be very careful with such announced offers as the promises of most providers can be very disappointing and do not hold up to an usable support of OpenStack. So be careful, if you opt against rackspace. Nevertheless, the framework in general is very interesting and already provides a lot of functionality. It will be worth to follow in the future.\n+\n+{% image blog/blog-ecommerce-barcamp-4.jpg 45% right %}The orga team{% endimage %}\n+\n+Another interesting session was a guided discussion about [Magento 2](https://magento.com/developers/magento2). Björn Jacob and Tobias Vogt explained in an entertaining fashion the new functio set in frequent interplay with the strongly involved audience. Over the whole session length, the enhancement of the productivity and performance improvement as well as the overall stability of the new major relase were questioned very often. The consolidated experience of the session room concluded that serveral good architectural decisions for this release were made, e.g.: [less](http://lesscss.org/) compiler, modes (default, env, prod), stricter separation of layout and logic via templates and modules, dependency injection, service contracts, XML schema definition for config files. The software project has become much more open and community driven. Another observation was that version 2.1 might be able to offer a competive performance.\n+\n+The last track on Friday was offered by Andreas Ziethen, who humbly claims to be the senior apprentice at his company. In fact he is the highly likeable head of RND that flawlessly proved his comprehensive knowledge about deployment automation in front of a full room. The encouraging talk focused on the usage of [GitLab](https://www.gitlab.com) for deployment and [Rundeck](http://rundeck.org) for job scheduling and runbook automation. Today, the interplay of both technologies is already at a very mature quality level and typical tasks like staging and conditional build steps can be represented within versioned job descriptions. If you have a small shop project with a minimal set of requirements for your CI and CD pipeline setup the discussed solution might be competitive with [Jenkins](https://jenkins-ci.org), [Bamboo](https://confluence.atlassian.com/bamboo) or [TeamCity](https://www.jetbrains.com/teamcity/).\n+\n+On Saturday there were only three time slots before the closing speech. \n+\n+The first session, presented by Oliver Reißig, centered around Continuous Integration in a large-scale shop platform utilizing [Gradle](http://gradle.org/). In the second one Eimantas Kaleiva showcased frontend acceptance testing, where the test cases were written by the product owner in a [BDD](http://behaviourdriven.org/)-style webinterface similar to [Cucumber](https://cucumber.io). The very last session comprised the findings for relaunches of large shops under various key aspects (e.g. the usage of [Atomic Design](http://bradfrost.com/blog/post/atomic-web-design) for the storefront layout or the establishment of worthwhile meeting structures) and was moderated by Jan Persiel.\n+\n+## The surroundings\n+\n+To brighten the mood of all participants the facilitators supplied superb food which fulfilled multitudinous desires: crispy chicken legs, juicy steaks, grilled roast beefs, 5 different soups, plenty of vegetarian food, fresh asparagus and salmon, many sandwich variations, 10 dessert cremes, cake pops, tropical fruits and even a popcorn machine wagon was present. Consistently, I could spot happy foodies everywhere!\n+\n+Another form of active relaxation between the session breaks could be accomplished by a short visit of the gaming corner. Several retro consoles awaited their live field-test in battle matches with Super Mario Kart and other classics.\n+\n+{% image blog/blog-ecommerce-barcamp-3.jpg %}{% endimage %}\n+\n+## Resume\n+\n+All in all, the conference offered a friendly atmosphere to meet new people with a wide range of backgrounds. Many sessions were quite enjoyable with a wide variety of topics. There were some great ones, too. From what I have seen, the conference can totally be recommended for PHP developers and ecommerce newcomers.","path":"_posts/2016/2016-03-24-ecommerce-barcamp-jena.md","position":54,"original_position":54,"commit_id":"5bd7a24cfa8b8ba66dabd0b83e7e73a5c575c9c7","original_commit_id":"5bd7a24cfa8b8ba66dabd0b83e7e73a5c575c9c7","user":{"login":"BirgitBader","id":10460958,"avatar_url":"https://avatars.githubusercontent.com/u/10460958?v=3","gravatar_id":"","url":"https://api.github.com/users/BirgitBader","html_url":"https://github.com/BirgitBader","followers_url":"https://api.github.com/users/BirgitBader/followers","following_url":"https://api.github.com/users/BirgitBader/following{/other_user}","gists_url":"https://api.github.com/users/BirgitBader/gists{/gist_id}","starred_url":"https://api.github.com/users/BirgitBader/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BirgitBader/subscriptions","organizations_url":"https://api.github.com/users/BirgitBader/orgs","repos_url":"https://api.github.com/users/BirgitBader/repos","events_url":"https://api.github.com/users/BirgitBader/events{/privacy}","received_events_url":"https://api.github.com/users/BirgitBader/received_events","type":"User","site_admin":false},"body":"All in all, the BarCamp offered...\r\n\r\nMany sessions were quite enjoyable with a wide variety of topics. There were some great ones, too. > Many sessions were quite enjoyable with a wide variety of topics, and there were some outstanding ones, too.\r\n\r\nFrom what I have seen, I can totally recommend this unconference for PHP developers and ecommerce newcomers.","created_at":"2016-03-30T18:55:12Z","updated_at":"2016-03-30T18:55:12Z","html_url":"https://github.com/ePages-de/epages-docs/pull/454#discussion_r57943393","pull_request_url":"https://api.github.com/repos/ePages-de/epages-docs/pulls/454","_links":{"self":{"href":"https://api.github.com/repos/ePages-de/epages-docs/pulls/comments/57943393"},"html":{"href":"https://github.com/ePages-de/epages-docs/pull/454#discussion_r57943393"},"pull_request":{"href":"https://api.github.com/repos/ePages-de/epages-docs/pulls/454"}}},"pull_request":{"url":"https://api.github.com/repos/ePages-de/epages-docs/pulls/454","id":63907740,"html_url":"https://github.com/ePages-de/epages-docs/pull/454","diff_url":"https://github.com/ePages-de/epages-docs/pull/454.diff","patch_url":"https://github.com/ePages-de/epages-docs/pull/454.patch","issue_url":"https://api.github.com/repos/ePages-de/epages-docs/issues/454","number":454,"state":"open","locked":false,"title":"Add post about the eCommerceCamp in Jena","user":{"login":"dataduke","id":2657402,"avatar_url":"https://avatars.githubusercontent.com/u/2657402?v=3","gravatar_id":"","url":"https://api.github.com/users/dataduke","html_url":"https://github.com/dataduke","followers_url":"https://api.github.com/users/dataduke/followers","following_url":"https://api.github.com/users/dataduke/following{/other_user}","gists_url":"https://api.github.com/users/dataduke/gists{/gist_id}","starred_url":"https://api.github.com/users/dataduke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dataduke/subscriptions","organizations_url":"https://api.github.com/users/dataduke/orgs","repos_url":"https://api.github.com/users/dataduke/repos","events_url":"https://api.github.com/users/dataduke/events{/privacy}","received_events_url":"https://api.github.com/users/dataduke/received_events","type":"User","site_admin":false},"body":"","created_at":"2016-03-23T16:06:55Z","updated_at":"2016-03-30T18:55:12Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d69f3c737450bf9ae34e0a955ccff23acf560f18","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/ePages-de/epages-docs/pulls/454/commits","review_comments_url":"https://api.github.com/repos/ePages-de/epages-docs/pulls/454/comments","review_comment_url":"https://api.github.com/repos/ePages-de/epages-docs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ePages-de/epages-docs/issues/454/comments","statuses_url":"https://api.github.com/repos/ePages-de/epages-docs/statuses/5bd7a24cfa8b8ba66dabd0b83e7e73a5c575c9c7","head":{"label":"dataduke:posts/2016/ecommercecamp-jena","ref":"posts/2016/ecommercecamp-jena","sha":"5bd7a24cfa8b8ba66dabd0b83e7e73a5c575c9c7","user":{"login":"dataduke","id":2657402,"avatar_url":"https://avatars.githubusercontent.com/u/2657402?v=3","gravatar_id":"","url":"https://api.github.com/users/dataduke","html_url":"https://github.com/dataduke","followers_url":"https://api.github.com/users/dataduke/followers","following_url":"https://api.github.com/users/dataduke/following{/other_user}","gists_url":"https://api.github.com/users/dataduke/gists{/gist_id}","starred_url":"https://api.github.com/users/dataduke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dataduke/subscriptions","organizations_url":"https://api.github.com/users/dataduke/orgs","repos_url":"https://api.github.com/users/dataduke/repos","events_url":"https://api.github.com/users/dataduke/events{/privacy}","received_events_url":"https://api.github.com/users/dataduke/received_events","type":"User","site_admin":false},"repo":{"id":50191008,"name":"epages-docs","full_name":"dataduke/epages-docs","owner":{"login":"dataduke","id":2657402,"avatar_url":"https://avatars.githubusercontent.com/u/2657402?v=3","gravatar_id":"","url":"https://api.github.com/users/dataduke","html_url":"https://github.com/dataduke","followers_url":"https://api.github.com/users/dataduke/followers","following_url":"https://api.github.com/users/dataduke/following{/other_user}","gists_url":"https://api.github.com/users/dataduke/gists{/gist_id}","starred_url":"https://api.github.com/users/dataduke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dataduke/subscriptions","organizations_url":"https://api.github.com/users/dataduke/orgs","repos_url":"https://api.github.com/users/dataduke/repos","events_url":"https://api.github.com/users/dataduke/events{/privacy}","received_events_url":"https://api.github.com/users/dataduke/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/dataduke/epages-docs","description":"Source of ePages Developer Portal","fork":true,"url":"https://api.github.com/repos/dataduke/epages-docs","forks_url":"https://api.github.com/repos/dataduke/epages-docs/forks","keys_url":"https://api.github.com/repos/dataduke/epages-docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dataduke/epages-docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dataduke/epages-docs/teams","hooks_url":"https://api.github.com/repos/dataduke/epages-docs/hooks","issue_events_url":"https://api.github.com/repos/dataduke/epages-docs/issues/events{/number}","events_url":"https://api.github.com/repos/dataduke/epages-docs/events","assignees_url":"https://api.github.com/repos/dataduke/epages-docs/assignees{/user}","branches_url":"https://api.github.com/repos/dataduke/epages-docs/branches{/branch}","tags_url":"https://api.github.com/repos/dataduke/epages-docs/tags","blobs_url":"https://api.github.com/repos/dataduke/epages-docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dataduke/epages-docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dataduke/epages-docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/dataduke/epages-docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dataduke/epages-docs/statuses/{sha}","languages_url":"https://api.github.com/repos/dataduke/epages-docs/languages","stargazers_url":"https://api.github.com/repos/dataduke/epages-docs/stargazers","contributors_url":"https://api.github.com/repos/dataduke/epages-docs/contributors","subscribers_url":"https://api.github.com/repos/dataduke/epages-docs/subscribers","subscription_url":"https://api.github.com/repos/dataduke/epages-docs/subscription","commits_url":"https://api.github.com/repos/dataduke/epages-docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/dataduke/epages-docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/dataduke/epages-docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/dataduke/epages-docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/dataduke/epages-docs/contents/{+path}","compare_url":"https://api.github.com/repos/dataduke/epages-docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dataduke/epages-docs/merges","archive_url":"https://api.github.com/repos/dataduke/epages-docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dataduke/epages-docs/downloads","issues_url":"https://api.github.com/repos/dataduke/epages-docs/issues{/number}","pulls_url":"https://api.github.com/repos/dataduke/epages-docs/pulls{/number}","milestones_url":"https://api.github.com/repos/dataduke/epages-docs/milestones{/number}","notifications_url":"https://api.github.com/repos/dataduke/epages-docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dataduke/epages-docs/labels{/name}","releases_url":"https://api.github.com/repos/dataduke/epages-docs/releases{/id}","deployments_url":"https://api.github.com/repos/dataduke/epages-docs/deployments","created_at":"2016-01-22T15:54:21Z","updated_at":"2016-01-22T15:54:22Z","pushed_at":"2016-03-23T17:38:31Z","git_url":"git://github.com/dataduke/epages-docs.git","ssh_url":"git@github.com:dataduke/epages-docs.git","clone_url":"https://github.com/dataduke/epages-docs.git","svn_url":"https://github.com/dataduke/epages-docs","homepage":"https://developer.epages.com/","size":64351,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"develop"}},"base":{"label":"ePages-de:master","ref":"master","sha":"648a91649596cea1179a2acf290d463e0c7b6924","user":{"login":"ePages-de","id":1125854,"avatar_url":"https://avatars.githubusercontent.com/u/1125854?v=3","gravatar_id":"","url":"https://api.github.com/users/ePages-de","html_url":"https://github.com/ePages-de","followers_url":"https://api.github.com/users/ePages-de/followers","following_url":"https://api.github.com/users/ePages-de/following{/other_user}","gists_url":"https://api.github.com/users/ePages-de/gists{/gist_id}","starred_url":"https://api.github.com/users/ePages-de/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ePages-de/subscriptions","organizations_url":"https://api.github.com/users/ePages-de/orgs","repos_url":"https://api.github.com/users/ePages-de/repos","events_url":"https://api.github.com/users/ePages-de/events{/privacy}","received_events_url":"https://api.github.com/users/ePages-de/received_events","type":"Organization","site_admin":false},"repo":{"id":30595510,"name":"epages-docs","full_name":"ePages-de/epages-docs","owner":{"login":"ePages-de","id":1125854,"avatar_url":"https://avatars.githubusercontent.com/u/1125854?v=3","gravatar_id":"","url":"https://api.github.com/users/ePages-de","html_url":"https://github.com/ePages-de","followers_url":"https://api.github.com/users/ePages-de/followers","following_url":"https://api.github.com/users/ePages-de/following{/other_user}","gists_url":"https://api.github.com/users/ePages-de/gists{/gist_id}","starred_url":"https://api.github.com/users/ePages-de/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ePages-de/subscriptions","organizations_url":"https://api.github.com/users/ePages-de/orgs","repos_url":"https://api.github.com/users/ePages-de/repos","events_url":"https://api.github.com/users/ePages-de/events{/privacy}","received_events_url":"https://api.github.com/users/ePages-de/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ePages-de/epages-docs","description":"Source of ePages Developer Portal","fork":false,"url":"https://api.github.com/repos/ePages-de/epages-docs","forks_url":"https://api.github.com/repos/ePages-de/epages-docs/forks","keys_url":"https://api.github.com/repos/ePages-de/epages-docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ePages-de/epages-docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ePages-de/epages-docs/teams","hooks_url":"https://api.github.com/repos/ePages-de/epages-docs/hooks","issue_events_url":"https://api.github.com/repos/ePages-de/epages-docs/issues/events{/number}","events_url":"https://api.github.com/repos/ePages-de/epages-docs/events","assignees_url":"https://api.github.com/repos/ePages-de/epages-docs/assignees{/user}","branches_url":"https://api.github.com/repos/ePages-de/epages-docs/branches{/branch}","tags_url":"https://api.github.com/repos/ePages-de/epages-docs/tags","blobs_url":"https://api.github.com/repos/ePages-de/epages-docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ePages-de/epages-docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ePages-de/epages-docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/ePages-de/epages-docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ePages-de/epages-docs/statuses/{sha}","languages_url":"https://api.github.com/repos/ePages-de/epages-docs/languages","stargazers_url":"https://api.github.com/repos/ePages-de/epages-docs/stargazers","contributors_url":"https://api.github.com/repos/ePages-de/epages-docs/contributors","subscribers_url":"https://api.github.com/repos/ePages-de/epages-docs/subscribers","subscription_url":"https://api.github.com/repos/ePages-de/epages-docs/subscription","commits_url":"https://api.github.com/repos/ePages-de/epages-docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/ePages-de/epages-docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/ePages-de/epages-docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/ePages-de/epages-docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/ePages-de/epages-docs/contents/{+path}","compare_url":"https://api.github.com/repos/ePages-de/epages-docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ePages-de/epages-docs/merges","archive_url":"https://api.github.com/repos/ePages-de/epages-docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ePages-de/epages-docs/downloads","issues_url":"https://api.github.com/repos/ePages-de/epages-docs/issues{/number}","pulls_url":"https://api.github.com/repos/ePages-de/epages-docs/pulls{/number}","milestones_url":"https://api.github.com/repos/ePages-de/epages-docs/milestones{/number}","notifications_url":"https://api.github.com/repos/ePages-de/epages-docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ePages-de/epages-docs/labels{/name}","releases_url":"https://api.github.com/repos/ePages-de/epages-docs/releases{/id}","deployments_url":"https://api.github.com/repos/ePages-de/epages-docs/deployments","created_at":"2015-02-10T14:20:56Z","updated_at":"2016-03-16T16:18:52Z","pushed_at":"2016-03-30T09:36:58Z","git_url":"git://github.com/ePages-de/epages-docs.git","ssh_url":"git@github.com:ePages-de/epages-docs.git","clone_url":"https://github.com/ePages-de/epages-docs.git","svn_url":"https://github.com/ePages-de/epages-docs","homepage":"https://developer.epages.com/","size":89514,"stargazers_count":6,"watchers_count":6,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":34,"mirror_url":null,"open_issues_count":4,"forks":34,"open_issues":4,"watchers":6,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/ePages-de/epages-docs/pulls/454"},"html":{"href":"https://github.com/ePages-de/epages-docs/pull/454"},"issue":{"href":"https://api.github.com/repos/ePages-de/epages-docs/issues/454"},"comments":{"href":"https://api.github.com/repos/ePages-de/epages-docs/issues/454/comments"},"review_comments":{"href":"https://api.github.com/repos/ePages-de/epages-docs/pulls/454/comments"},"review_comment":{"href":"https://api.github.com/repos/ePages-de/epages-docs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ePages-de/epages-docs/pulls/454/commits"},"statuses":{"href":"https://api.github.com/repos/ePages-de/epages-docs/statuses/5bd7a24cfa8b8ba66dabd0b83e7e73a5c575c9c7"}}}}