The document discusses building a cloud-based social network using agile development methods. It describes using Scrum with sprints, a product backlog and potentially shippable increments. The architecture is designed for scalability with front-end and back-end nodes that can be scaled independently in the cloud. Simplicity and extensibility were priorities with decoupled modules, automated infrastructure provisioning, and a development process allowing rapid feature iteration.
2012 Confoo: Changing the Face of Identity in EcommerceJonathan LeBlanc
March 2012 talk on "Changing the Face of Identity in Ecommerce" at Confoo in Montreal, QC.
The audio recording from this session is available at http://archive.org/details/ChangingTheFaceOfOpenIdentityInEcommerce
Nowadays many modern web applications are solely relying on JavaScript to render their frontend. But if you want to create mashups, load data from many different places or include external widgets into your site, you are quickly running into boundaries because of browser and security restrictions. In this presentation I will talk about techniques helping you with such problems.
2012 Confoo: Changing the Face of Identity in EcommerceJonathan LeBlanc
March 2012 talk on "Changing the Face of Identity in Ecommerce" at Confoo in Montreal, QC.
The audio recording from this session is available at http://archive.org/details/ChangingTheFaceOfOpenIdentityInEcommerce
Nowadays many modern web applications are solely relying on JavaScript to render their frontend. But if you want to create mashups, load data from many different places or include external widgets into your site, you are quickly running into boundaries because of browser and security restrictions. In this presentation I will talk about techniques helping you with such problems.
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...Mayflower GmbH
Nach dem erfolgreichen Launch einer Software gibt es immer das gleiche Dilemma: Neue Features konkurrieren mit Bugs und Anpassungen an der bestehenden Software, die aus dem operativen Betrieb kommen. Und die Gretchenfrage nach dem dringenden und dem wichtigsten stellt sich kontinuierlich und es braucht einen Mechanismus um diese zu Balancieren. Ich möchte die Auswirkungen von Maintenance parallel zur Produktentwicklung aufzeigen, die Folgeprobleme benennen und Strategien vorstellen um dieses Dilemma zu umgehen.
Unsere Anti-Pattern Karten sind aus unserer jahrelangen Arbeit mit Kunden, und den daraus gewonnenen Erfahrungen entstanden. Sie sollen euch dabei helfen, selbst Fettnäpfchen zu erkennen, die wir schon von außen erlebt haben, oder in die wir sogar teilweise selbst schon getreten sind. Wenn ihr noch andere Anti-Patterns kennt, dann schickt sie uns unter https://mayflower.de/agile-antipattern.
Wenn der größte Teil der Logik in JavaScript stattfindet, dann findet auch der größere Teil der Sicherheitsrisiken dort sein Zuhause. Und auch Angreifer finden mit JavaScript eine interessante neue Spielwiese, denn die Sprache selbst und auch Ihre Heimat in Browser und Node.js bringen neue Probleme.
Genau da setzt der Vortrag an: die verblüffenden Unterschiede von JavaScript zu anderen Sprachen, wenn es um Security geht. Die Risiken und auch die Besonderheiten von Browsern und anderen JavaScript-Engines wie Node.js. Die Security-Implikationen von JavaScript-Frameworks bis hin zu speziellen Problemen wie mXSS, ReDOS und HTML5-Security.
Warum gilt Management bei Entwicklern als notorisch schlecht? Wie kann es kommen, dass ein Entwickler der eben noch auf die Leitung schimpfte sich selbst identisch verhält, sobald er in die Funktion rückt? Wie würde gutes Management in der IT denn aussehen? Wir berichten über unserer naiven Fehler am Anfang, unsere Erfahren auf der agilen Reise und über das, bei dem wir heute angekommen sind. Und wir haben wirklich viel falsch gemacht.
Viele PHP-Applikationen sind über Jahre erfolgreich, haben jede Änderung mitgemacht und sind inzwischen weder wartbar noch entsprechen sie aktuellen Standards. Doch um am Markt zu bestehen braucht man neue Features, und damit einen Rewrite auf ein modernes Framework wie Zend Framework 2, Laravel 4 oder Symfony 2. Aber Rewrites schlagen häufig durch jede Deadline oder ganz fehl, und währenddessen übernimmt die Konkurrenz den Markt. Wie man aus der Rewrite-Falle kommt und verlässlich eine wartbare Version der Software herstellt – das erklärt dieser Talk mit Methoden, Beispielen und Praxiswissen.
Wenn der größte Teil der Logik in JavaScript stattfindet, dann findet auch der größere Teil der Sicherheitsrisiken dort seine Heimat. Und Angreifer finden mit JavaScript eine interessante neue Umwelt, denn die Sprache selbst und auch Ihre Heimat im Browser und Node.js bringen viele neue Probleme. Und genau da setzt der Vortrag an: die verblüffenden Unterschiede von JavaScript zu anderen Sprachen, wenn es um Security geht. Die Risiken und auch die Besonderheiten von Browsern und anderen JavaScript-Engines wie Node.js. Die Securityimplikationen von JavaScript-Frameworks bishin zu speziellen Problemen wie mXSS, ReDOS und HTML5-Security.
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...Mayflower GmbH
Soll ich Entwickler pro Stunde einkaufen? Lohnt es sich für mich, spontan ein Team zu staffen? Brauche ich einen Rockstar-Developer im Team, um die Deadline zu retten?
Woher kommt die Performance von Development-Teams? Ist es wirklich eine magische Eigenschaft von bestimmten Entwicklern, die Produkte erfolgreich macht? Oder kommt herausragende Performance von einer ganz anderer Seite?
Was Responsive Webdesign meint, ist klar: Ein Layout, das sich flexibel an die Bildschirmgröße des Clients anpasst. Für einen perfekten Auftritt auf dem Smartphone ebenso wie dem UltraHD-TV.
Was so schön klingt, birgt aber auch viele Fallstricke. Der Vortrag wird einige von ihnen Vorstellen: Von extravaganten Kundenwünschen, überraschender Browser-Inkompatibilität und der Verwendung von iFrames bis hin zu responsiven HTML-Newslettern. Abgerundet wird der Talk durch verschiedene Beispiele für den Workflow, Testing-Strategien und dem Thema SEO im Zusammenhang mit Responsive Webdesign.
Native Cross-Platform-Apps mit Titanium Mobile und AlloyMayflower GmbH
Dank der Webtechnologien stehen Ihnen viele Möglichkeiten bereit, auf dem mobilen Markt präsent zu sein. Da sind unter anderem W3C Widgets, mobile Webseiten, Webapplikationen und als native App verpackte Webapplikationen. Eine weitere Möglichkeit stellt das Titanium-Mobile-SDK dar. Das Besondere: Mit Titanium erstellte Apps sind nativ. Aus nur einer Codebasis können Sie eine native Anwendung für iOS, Android, BlackBerry und Tizen generieren, sowie eine Webapplikation. Nativ bedeutet, die Apps werden nicht nur sehr schnell ausgeführt, sondern es stehen Ihnen für eine optimale Usability auch native UI Widgets zur Verfügung. Interessant ist das SDK daher nicht nur für Webentwickler, sondern auch für Entwickler, die ihre Apps bisher aufwändig individuell nativ entwickelt haben. Mit Titanium benötigen Sie lediglich JavaScript-Kenntnisse.
Aussagen wie "Pair Programming ist langsam", "Pair Programming ist nur was für Junior Entwickler zum Übertragen von Domainwissen", "Pair Programming verbrennt zu viele Resourcen und ist nichts für mein Projekt", "Meine Tasks sind zu komplex fürs Pair Programming" oder "Im Moment haben wir keine Zeit fürs Pair Programming, wir müssen liefern (fertig werden)" werden oft als Argumente gegen Pair Programming vorgebracht.
Mit diesem Talk/Webinar möchte Martin Ruprecht den Aussagen entgegentreten und seine Erfahrungen aus den letzten Kundenprojekten weitergeben und zeigen, wann Pair Programming sinnvoll eingesetzt werden kann und warum in jedem Projekt im Pair programmiert werden sollte.
Zielgruppe:
Wenn Sie Entwickler oder Projektverantwortlicher sind, dann ist dieser Talk/dieses Webinar genau richtig für Sie.
Über Martin Ruprecht:
Martin Ruprecht arbeitet seit mehreren Jahren bei Mayflower und ist JavaScript und PHP-Entwickler. Zuvor studierte er erfolgreich Medientechnik/Medieninformatik an der FH Deggendorf. Neben seiner Tätigkeit als Entwickler bei Mayflower organisiert Martin regelmäßig Coding Dojos in München, tritt auf Konferenzen auf und hält Vorträge und Workshops zum Thema JavaScript, Testing und Qualitätssicherung in Webprojekten.
Vorstellung der Technologiedemo www.shoeism.de mit unserem LSH Algorithmus zur Ähnlichkeitssuche von hochdimensionalen Daten am Beispiel von E-Commerce Produktbildern.
Kennen Sie das? Während Sie noch fleißig wochen- und monatelang an Ihrer mobilen App konzipieren/konzipieren lassen, stehen schon die Mitbewerber auf dem Plan und haben eine ähnliche App herausgebracht. Besonders mobile Apps müssen zügig auf den Markt kommen, um Wettbewerbsvorteile in einer neuen, sich immer schneller drehenden Welt für sich entscheiden zu können. Doch welches Handwerkzeug braucht es hierzu?
Der Vortrag möchte Sie entführen in die agile Welt, in der in regelmäßigen, kurzen Zyklen neue Teilabschnitte Ihres Gesamtprojekts für Ihre Nutzerschaft veröffentlicht werden. Richtig angewendet bekommen Sie so einen Nutzersog, der Ihre Mitbewerber in den Schatten stellen wird. Warum warten, bis alle Funktionen komplett fertig sind, wenn Sie zunächst auch mit dem "Minimum Viable Product" starten können, um gleichzeitig wertvolle automatisierte Marktforschung über Nutzerfeedback für die nächsten Versionen zu erhalten? Wir stellen Ihnen hier das konzeptionelle Rüstzeug vor, das Sie hierfür benötigen.
Mit weit über 1 Million Downloads hat sich die quelloffene Piwik-Suite als zuverlässige und beliebte Alternative zu Traffic-Analysewerkzeugen wie Google Analytics etabliert. Heute lassen sich mit Piwik nahezu beliebige Statistiken zur Nutzung von Webseiten erfassen, auch das Monitoring komplexer Marketing-Kampagnen ist möglich. Das besondere an der Software: Ihr Funktionsumfang lässt sich über ein Plug-in-System nahezu beliebig erweitern.
Im Webinar zeigt Ihnen Thomas Steur, selbst Core-Mitglied im Piwik-Projektteam und Lead Developer für Piwik Mobile, wie Entwickler Piwik richtig nutzen können, was es mit der Plug-in-Entwicklung auf sich hat und worauf man im Umgang mit Echtzeit-Traffic-Daten (Stichwort: Skalierung) achten muss.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...Mayflower GmbH
Nach dem erfolgreichen Launch einer Software gibt es immer das gleiche Dilemma: Neue Features konkurrieren mit Bugs und Anpassungen an der bestehenden Software, die aus dem operativen Betrieb kommen. Und die Gretchenfrage nach dem dringenden und dem wichtigsten stellt sich kontinuierlich und es braucht einen Mechanismus um diese zu Balancieren. Ich möchte die Auswirkungen von Maintenance parallel zur Produktentwicklung aufzeigen, die Folgeprobleme benennen und Strategien vorstellen um dieses Dilemma zu umgehen.
Unsere Anti-Pattern Karten sind aus unserer jahrelangen Arbeit mit Kunden, und den daraus gewonnenen Erfahrungen entstanden. Sie sollen euch dabei helfen, selbst Fettnäpfchen zu erkennen, die wir schon von außen erlebt haben, oder in die wir sogar teilweise selbst schon getreten sind. Wenn ihr noch andere Anti-Patterns kennt, dann schickt sie uns unter https://mayflower.de/agile-antipattern.
Wenn der größte Teil der Logik in JavaScript stattfindet, dann findet auch der größere Teil der Sicherheitsrisiken dort sein Zuhause. Und auch Angreifer finden mit JavaScript eine interessante neue Spielwiese, denn die Sprache selbst und auch Ihre Heimat in Browser und Node.js bringen neue Probleme.
Genau da setzt der Vortrag an: die verblüffenden Unterschiede von JavaScript zu anderen Sprachen, wenn es um Security geht. Die Risiken und auch die Besonderheiten von Browsern und anderen JavaScript-Engines wie Node.js. Die Security-Implikationen von JavaScript-Frameworks bis hin zu speziellen Problemen wie mXSS, ReDOS und HTML5-Security.
Warum gilt Management bei Entwicklern als notorisch schlecht? Wie kann es kommen, dass ein Entwickler der eben noch auf die Leitung schimpfte sich selbst identisch verhält, sobald er in die Funktion rückt? Wie würde gutes Management in der IT denn aussehen? Wir berichten über unserer naiven Fehler am Anfang, unsere Erfahren auf der agilen Reise und über das, bei dem wir heute angekommen sind. Und wir haben wirklich viel falsch gemacht.
Viele PHP-Applikationen sind über Jahre erfolgreich, haben jede Änderung mitgemacht und sind inzwischen weder wartbar noch entsprechen sie aktuellen Standards. Doch um am Markt zu bestehen braucht man neue Features, und damit einen Rewrite auf ein modernes Framework wie Zend Framework 2, Laravel 4 oder Symfony 2. Aber Rewrites schlagen häufig durch jede Deadline oder ganz fehl, und währenddessen übernimmt die Konkurrenz den Markt. Wie man aus der Rewrite-Falle kommt und verlässlich eine wartbare Version der Software herstellt – das erklärt dieser Talk mit Methoden, Beispielen und Praxiswissen.
Wenn der größte Teil der Logik in JavaScript stattfindet, dann findet auch der größere Teil der Sicherheitsrisiken dort seine Heimat. Und Angreifer finden mit JavaScript eine interessante neue Umwelt, denn die Sprache selbst und auch Ihre Heimat im Browser und Node.js bringen viele neue Probleme. Und genau da setzt der Vortrag an: die verblüffenden Unterschiede von JavaScript zu anderen Sprachen, wenn es um Security geht. Die Risiken und auch die Besonderheiten von Browsern und anderen JavaScript-Engines wie Node.js. Die Securityimplikationen von JavaScript-Frameworks bishin zu speziellen Problemen wie mXSS, ReDOS und HTML5-Security.
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...Mayflower GmbH
Soll ich Entwickler pro Stunde einkaufen? Lohnt es sich für mich, spontan ein Team zu staffen? Brauche ich einen Rockstar-Developer im Team, um die Deadline zu retten?
Woher kommt die Performance von Development-Teams? Ist es wirklich eine magische Eigenschaft von bestimmten Entwicklern, die Produkte erfolgreich macht? Oder kommt herausragende Performance von einer ganz anderer Seite?
Was Responsive Webdesign meint, ist klar: Ein Layout, das sich flexibel an die Bildschirmgröße des Clients anpasst. Für einen perfekten Auftritt auf dem Smartphone ebenso wie dem UltraHD-TV.
Was so schön klingt, birgt aber auch viele Fallstricke. Der Vortrag wird einige von ihnen Vorstellen: Von extravaganten Kundenwünschen, überraschender Browser-Inkompatibilität und der Verwendung von iFrames bis hin zu responsiven HTML-Newslettern. Abgerundet wird der Talk durch verschiedene Beispiele für den Workflow, Testing-Strategien und dem Thema SEO im Zusammenhang mit Responsive Webdesign.
Native Cross-Platform-Apps mit Titanium Mobile und AlloyMayflower GmbH
Dank der Webtechnologien stehen Ihnen viele Möglichkeiten bereit, auf dem mobilen Markt präsent zu sein. Da sind unter anderem W3C Widgets, mobile Webseiten, Webapplikationen und als native App verpackte Webapplikationen. Eine weitere Möglichkeit stellt das Titanium-Mobile-SDK dar. Das Besondere: Mit Titanium erstellte Apps sind nativ. Aus nur einer Codebasis können Sie eine native Anwendung für iOS, Android, BlackBerry und Tizen generieren, sowie eine Webapplikation. Nativ bedeutet, die Apps werden nicht nur sehr schnell ausgeführt, sondern es stehen Ihnen für eine optimale Usability auch native UI Widgets zur Verfügung. Interessant ist das SDK daher nicht nur für Webentwickler, sondern auch für Entwickler, die ihre Apps bisher aufwändig individuell nativ entwickelt haben. Mit Titanium benötigen Sie lediglich JavaScript-Kenntnisse.
Aussagen wie "Pair Programming ist langsam", "Pair Programming ist nur was für Junior Entwickler zum Übertragen von Domainwissen", "Pair Programming verbrennt zu viele Resourcen und ist nichts für mein Projekt", "Meine Tasks sind zu komplex fürs Pair Programming" oder "Im Moment haben wir keine Zeit fürs Pair Programming, wir müssen liefern (fertig werden)" werden oft als Argumente gegen Pair Programming vorgebracht.
Mit diesem Talk/Webinar möchte Martin Ruprecht den Aussagen entgegentreten und seine Erfahrungen aus den letzten Kundenprojekten weitergeben und zeigen, wann Pair Programming sinnvoll eingesetzt werden kann und warum in jedem Projekt im Pair programmiert werden sollte.
Zielgruppe:
Wenn Sie Entwickler oder Projektverantwortlicher sind, dann ist dieser Talk/dieses Webinar genau richtig für Sie.
Über Martin Ruprecht:
Martin Ruprecht arbeitet seit mehreren Jahren bei Mayflower und ist JavaScript und PHP-Entwickler. Zuvor studierte er erfolgreich Medientechnik/Medieninformatik an der FH Deggendorf. Neben seiner Tätigkeit als Entwickler bei Mayflower organisiert Martin regelmäßig Coding Dojos in München, tritt auf Konferenzen auf und hält Vorträge und Workshops zum Thema JavaScript, Testing und Qualitätssicherung in Webprojekten.
Vorstellung der Technologiedemo www.shoeism.de mit unserem LSH Algorithmus zur Ähnlichkeitssuche von hochdimensionalen Daten am Beispiel von E-Commerce Produktbildern.
Kennen Sie das? Während Sie noch fleißig wochen- und monatelang an Ihrer mobilen App konzipieren/konzipieren lassen, stehen schon die Mitbewerber auf dem Plan und haben eine ähnliche App herausgebracht. Besonders mobile Apps müssen zügig auf den Markt kommen, um Wettbewerbsvorteile in einer neuen, sich immer schneller drehenden Welt für sich entscheiden zu können. Doch welches Handwerkzeug braucht es hierzu?
Der Vortrag möchte Sie entführen in die agile Welt, in der in regelmäßigen, kurzen Zyklen neue Teilabschnitte Ihres Gesamtprojekts für Ihre Nutzerschaft veröffentlicht werden. Richtig angewendet bekommen Sie so einen Nutzersog, der Ihre Mitbewerber in den Schatten stellen wird. Warum warten, bis alle Funktionen komplett fertig sind, wenn Sie zunächst auch mit dem "Minimum Viable Product" starten können, um gleichzeitig wertvolle automatisierte Marktforschung über Nutzerfeedback für die nächsten Versionen zu erhalten? Wir stellen Ihnen hier das konzeptionelle Rüstzeug vor, das Sie hierfür benötigen.
Mit weit über 1 Million Downloads hat sich die quelloffene Piwik-Suite als zuverlässige und beliebte Alternative zu Traffic-Analysewerkzeugen wie Google Analytics etabliert. Heute lassen sich mit Piwik nahezu beliebige Statistiken zur Nutzung von Webseiten erfassen, auch das Monitoring komplexer Marketing-Kampagnen ist möglich. Das besondere an der Software: Ihr Funktionsumfang lässt sich über ein Plug-in-System nahezu beliebig erweitern.
Im Webinar zeigt Ihnen Thomas Steur, selbst Core-Mitglied im Piwik-Projektteam und Lead Developer für Piwik Mobile, wie Entwickler Piwik richtig nutzen können, was es mit der Plug-in-Entwicklung auf sich hat und worauf man im Umgang mit Echtzeit-Traffic-Daten (Stichwort: Skalierung) achten muss.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™UiPathCommunity
In questo evento online gratuito, organizzato dalla Community Italiana di UiPath, potrai esplorare le nuove funzionalità di Autopilot, il tool che integra l'Intelligenza Artificiale nei processi di sviluppo e utilizzo delle Automazioni.
📕 Vedremo insieme alcuni esempi dell'utilizzo di Autopilot in diversi tool della Suite UiPath:
Autopilot per Studio Web
Autopilot per Studio
Autopilot per Apps
Clipboard AI
GenAI applicata alla Document Understanding
👨🏫👨💻 Speakers:
Stefano Negro, UiPath MVPx3, RPA Tech Lead @ BSP Consultant
Flavio Martinelli, UiPath MVP 2023, Technical Account Manager @UiPath
Andrei Tasca, RPA Solutions Team Lead @NTT Data
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Welocme to ViralQR, your best QR code generator.ViralQR
Welcome to ViralQR, your best QR code generator available on the market!
At ViralQR, we design static and dynamic QR codes. Our mission is to make business operations easier and customer engagement more powerful through the use of QR technology. Be it a small-scale business or a huge enterprise, our easy-to-use platform provides multiple choices that can be tailored according to your company's branding and marketing strategies.
Our Vision
We are here to make the process of creating QR codes easy and smooth, thus enhancing customer interaction and making business more fluid. We very strongly believe in the ability of QR codes to change the world for businesses in their interaction with customers and are set on making that technology accessible and usable far and wide.
Our Achievements
Ever since its inception, we have successfully served many clients by offering QR codes in their marketing, service delivery, and collection of feedback across various industries. Our platform has been recognized for its ease of use and amazing features, which helped a business to make QR codes.
Our Services
At ViralQR, here is a comprehensive suite of services that caters to your very needs:
Static QR Codes: Create free static QR codes. These QR codes are able to store significant information such as URLs, vCards, plain text, emails and SMS, Wi-Fi credentials, and Bitcoin addresses.
Dynamic QR codes: These also have all the advanced features but are subscription-based. They can directly link to PDF files, images, micro-landing pages, social accounts, review forms, business pages, and applications. In addition, they can be branded with CTAs, frames, patterns, colors, and logos to enhance your branding.
Pricing and Packages
Additionally, there is a 14-day free offer to ViralQR, which is an exceptional opportunity for new users to take a feel of this platform. One can easily subscribe from there and experience the full dynamic of using QR codes. The subscription plans are not only meant for business; they are priced very flexibly so that literally every business could afford to benefit from our service.
Why choose us?
ViralQR will provide services for marketing, advertising, catering, retail, and the like. The QR codes can be posted on fliers, packaging, merchandise, and banners, as well as to substitute for cash and cards in a restaurant or coffee shop. With QR codes integrated into your business, improve customer engagement and streamline operations.
Comprehensive Analytics
Subscribers of ViralQR receive detailed analytics and tracking tools in light of having a view of the core values of QR code performance. Our analytics dashboard shows aggregate views and unique views, as well as detailed information about each impression, including time, device, browser, and estimated location by city and country.
So, thank you for choosing ViralQR; we have an offer of nothing but the best in terms of QR code services to meet business diversity!
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
2. Team Lead
Scrum Master
Head of Open Source Labs
@ThorstenRinne
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 2
1th 1
3. Last year a new customer
came up with an idea...
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 3
1th 1
4. A Social Network!
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 4
1th 1
5. A Social Network?
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 5
1th 1
6. for friends.
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 6
1th 1
7. for business.
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 7
1th 1
8. for videos.
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 8
1th 1
9. for photos.
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 9
1th 1
10. for real estate?
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 10
1th 1
11. The idea:
Connect people, buildings
and businesses.
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 1
1th 1 1
12. People
Building Business
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 12
1th 1
13. People
... is living at ...
Building Business
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 12
1th 1
14. People
... is living at ...
... is the home of ...
Building Business
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 12
1th 1
15. People
... is living at ... ... is an employee of ...
... is the home of ...
Building Business
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 12
1th 1
16. People
... is living at ... ... is an employee of ...
... is the home of ...
... has as employee ...
Building Business
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 12
1th 1
17. People
... is living at ... ... is an employee of ...
... is the home of ...
... has as employee ...
Building Business
... has its office at ...
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 12
1th 1
18. People
... is living at ... ... is an employee of ...
... is the home of ...
... has as employee ...
... is the office location of ...
Building Business
... has its office at ...
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 12
1th 1
19. We thought:
Nice idea, let‘s start!
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 13
1th 1
20. 4 Requirements
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 14
1th 1
21. 1
Agile software
development with Scrum
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 15
1th 1
23. 1 product owner (customer)
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 16
1th 1
24. 1 product owner (customer)
1 scrum master (myself)
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 16
1th 1
25. 1 product owner (customer)
1 scrum master (myself)
1 development team
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 16
1th 1
26. Scrum
Return
Gift wrap
Cancel
Product
backlog
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 17
1th 1
27. Scrum
Sprint
2 weeks
Return
Gift wrap
Cancel
Product
backlog
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 17
1th 1
28. Scrum
Sprint
2 weeks
Sprint goal
Return
Gift wrap
Cancel
Product
backlog
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 17
1th 1
29. Scrum
Sprint
2 weeks
Sprint goal
Return
Sprint
backlog
Gift wrap
Cancel
Product
backlog
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 17
1th 1
30. Scrum
Sprint
2 weeks
Sprint goal
Return
Sprint
Potentially shippable
backlog product increment
Gift wrap
Cancel
Product
backlog
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 17
1th 1
31. Scrum
Sprint
2 weeks
Sprint goal
Return
Sprint
Potentially shippable
backlog product increment
Gift wrap
Cancel Coupons
Product
backlog
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 17
1th 1
32. Scrum
Sprint
2 weeks
Sprint goal
Return
Sprint
Potentially shippable
Cancel backlog product increment
Coupons
Gift wrap
Product
backlog
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 17
1th 1
33. Scrum 24 hours
Sprint
2 weeks
Sprint goal
Return
Sprint
Potentially shippable
Cancel backlog product increment
Coupons
Gift wrap
Product
backlog
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 17
1th 1
34. 2
Scalability
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 18
1th 1
35. Classic web architecture
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 19
1th 1
36. Browser
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 20
1th 1
37. Browser
Appserver 1 Appserver 2
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 20
1th 1
38. Browser
Appserver 1 Appserver 2
DB Master DB Slave
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 20
1th 1
39. We built a simple, scalable
n-tier architecture.
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 21
1th 1
57. 3
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 39
1th 1
58. 3
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 40
1th 1
59. 3
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 40
1th 1
60. 3
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 40
1th 1
61. 3
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 40
1th 1
62. 3
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 40
1th 1
63. 3
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 40
1th 1
64. 3
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 40
1th 1
65. 3
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 40
1th 1
66. Multiple Frontnodes
3
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 40
1th 1
67. Multiple Frontnodes
3
Backend Sharding
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 40
1th 1
68. Infrastructure
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 41
1th 1
69. One Ubuntu package to
rule them all.
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 42
1th 1
70. Development VMs
Jenkins CI Server
Selenium Server
Monitoring Server
Testing Server
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 43
1th 1
71. http://www.flickr.com/photos/nirak/644337888/
Only on production:
Frontend Nodes 11.04
Backend Nodes 10.04 LTS
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 44
1th 1
73. http://www.flickr.com/photos/nirak/644337888/
Mayflower DMZ
Developer Laptopamazon AWS
with Ubuntu VM
(Git repo + complete
Eucalyptus Cloud
software stack)
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 46
1th 1
74. http://www.flickr.com/photos/nirak/644337888/
Mayflower DMZ
Gitorious Server amazon AWS
Jenkins CI Server
Puppet Master
Eucalyptus Cloud
Selenium Server
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 47
1th 1
75. http://www.flickr.com/photos/nirak/644337888/
2 Frontnodes
3 Backendnodes
Mayflower DMZ
Development Monitor
Staging Monitor
amazon AWS
Eucalyptus Cloud
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 48
1th 1
76. http://www.flickr.com/photos/nirak/644337888/
Mayflower DMZ
2 Frontnodes amazon AWS
2 Backendnodes
Drupal Cloud
Eucalyptus
Live Monitor
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 49
1th 1
79. Application
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 52
1th 1
80. Do you remember?
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 53
1th 1
81. Frontend 1 Frontend 2
Varnish Varnish
nginx nginx
PHP 5.3 PHP 5.3
Backendnode 1 Backendnode 2
Backendnode 3
MySQL Master MySQL Slave
RabbitMQ
MogileFS MogileFS
Apache Solr
Memcached Memcached
PHP 5.3
PHP 5.3 PHP 5.3
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 54
1th 1
82. Backendnode 1 Backendnode 2
Backendnode 3
MySQL Master MySQL Slave
RabbitMQ
MogileFS MogileFS
Apache Solr
Memcached Memcached
PHP 5.3
PHP 5.3 PHP 5.3
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 55
1th 1
83. Backendnode 3
RabbitMQ
Backendnode 1 Apache Solr
Backendnode 2
MySQL Master
MogileFS PHP 5.3
MySQL Slave
MogileFS
Memcached Memcached
PHP 5.3 PHP 5.3
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 55
1th 1
85. Apache Solr XML REST API
Profiles Profiles Profiles Autosuggest
DE EN i18n
Lucene Core Lucene Core Lucene Core Lucene Core
Various transformations such as
lowercasing, removing plurals, or
stemming to increase relevancy.
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 57
1th 1
86. Search string: „mapolis“
LL(1) parser
„q=mapolis&sort=name desc&fl=name,id,country“
Search queries tokenized
with a LL(1) Parser
implemented in PHP.
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 58
1th 1
87. Profile information
autosuggestions
user generated content
Apache
MySQL
Solr
Indexing is done with
asynchronous jobs with
RabbitMQ.
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 59
1th 1
91. c
c
yn
n
sy
as
PHP
Publish Routes Consumes PHP CLI
Exchange Queue
Application Script
Apache
MySQL
Solr
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 63
1th 1
92. Why RabbitMQ?
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 64
1th 1
93. Backendnode 1 Backendnode 2
Backendnode 3
MySQL Master MySQL Slave
RabbitMQ
MogileFS MogileFS
Apache Solr
Memcached Memcached
PHP 5.3
PHP 5.3 PHP 5.3
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 65
1th 1
94. Backendnode 1
MySQL Master
MogileFS
Memcached Backendnode 3
Backendnode 2
MySQL Slave
RabbitMQ
PHP 5.3
MogileFS
Memcached
Apache Solr
PHP 5.3
PHP 5.3
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 65
1th 1
95. MogileFS
an open source distributed filesystem
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 66
1th 1
96. Application level
No single point of failure
Automatic file replication
Shared nothing architecture
Local filesystem agnostic
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 67
1th 1
97. Client
(API: Perl)
Trackers
Trackers Storage Nodes
Storage Nodes
Trackers Storage Nodes
(mogilefsd)
(mogilefsd) (mogstored)
(mogstored)
(mogilefsd) (mogstored)
Tracker‘s database
(MySQL)
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 68
1th 1
99. Application
Host 1 Host 2
R/W
MySQL Replication MySQL
Master Slave
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 70
1th 1
100. Application
Keepalive
Host 1 Host 2
W
R/W R
MySQL Replication MySQL
Master Slave
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 70
1th 1
101. Some notes on our
database architecture.
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 71
1th 1
102. We use MySQL as
key/value storage.
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 72
1th 1
103. We implemented all
relations in the application.
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 73
1th 1
104. We already prepared the
database design for sharding
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 74
1th 1
105. Benefits:
Very simple, scalable and
flexible architecture
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 75
1th 1
106. Drawbacks:
More complexity in the
PHP code. But that‘s okay.
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 76
1th 1
107. Frontend 1 Frontend 2
Varnish Varnish
nginx nginx
PHP 5.3 PHP 5.3
Backendnode 1 Backendnode 2
Backendnode 3
MySQL Master MySQL Slave
RabbitMQ
MogileFS MogileFS
Apache Solr
Memcached Memcached
PHP 5.3
PHP 5.3 PHP 5.3
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 77
1th 1
108. Frontend 1 Frontend 2
Varnish Varnish
nginx nginx
PHP 5.3 PHP 5.3
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 78
1th 1
109. Frontend 2
Varnish
Frontend 1 nginx
PHP 5.3
Varnish
nginx
PHP 5.3
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 78
1th 1
111. Doctrine 2
is a data-mapper,
not ActiveRecord.
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 80
1th 1
112. We use Doctrine 2 as ORM.
And we think it‘s great.
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 81
1th 1
113. /**
ORM with Doctrine 2
* @Entity
* @Table(name="role")
*
*/
class Mapolis_Entity_Role
{
/**
* @Id
* @Column(name="id", type="integer")
* @generatedValue(strategy="IDENTITY")
*/
protected $_roleId;
/**
* @Column(name="parent_id", type="integer")
* @var int
*/
protected $_parentId;
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 82
1th 1
114. Working with objects
/**
* Saves the personal interests of user.
*
* @param Mapolis_Entity_Person $profile
*
* @return void
*/
public function savePersonalInterests(
Mapolis_Entity_Person $profile
)
{
$this->getManager()
->getRepository(self::ENTITY_PERSON)
->update($profile);
}
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 83
1th 1
115. Working with objects
/**
* Deletes a building.
*
* @param Mapolis_Entity_Building $building
*
* @return boolean
*/
public function deleteBuilding($building)
{
$this->getManager()->remove($building);
return $this->getManager()->flush();
}
★ Transactional write-behind (batch writes)
★ Very fast for small UnitOfWorks
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 84
1th 1
116. Working with objects
/**
* Show recent invitations
*
* @return array of $count recent invitations
*/
public function recent($inviter, $count = 5)
{
$invitations = $this->getManager()
->getRepository(self::ENTITY_INVITATION)
->findBy(
array('_inviterId' => $inviter),
array('_modified' => 'DESC'),
$count
);
return $invitations;
}
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 85
1th 1
118. Why did we choose Zend
Framework?
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 87
1th 1
119. 60 colleagues using Zend
Framework in other projects.
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 88
1th 1
120. We use Zend Framework
more like a component
library.
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 89
1th 1
121. We use Doctrine 2 instead
of Zend_Db_Table.
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 90
1th 1
122. We built our own
Autoloader.
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 91
1th 1
123. What did we use from
Zend Framework?
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 92
1th 1
124. Zend_Application
Zend_Controller
Zend_View
Zend_Validate
Zend_Translation
Zend_Locale
Zend_Cache
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 93
1th 1
125. Frontnode 1
Varnish
nginx
PHP 5.3
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 94
1th 1
126. PHP 5.3 from Ubuntu 11.04
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 95
1th 1
129. HTTP Request
Varnish HTTP accelerator
mapolis mapolis
Core Drupal
nginx on port 81 nginx on port 81
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 98
1th 1
130. HTTP Request
GET mapolis.com 80
Varnish HTTP accelerator
mapolis mapolis
Core Drupal
nginx on port 81 nginx on port 81
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 98
1th 1
131. HTTP Request
GET mapolis.com 80
Varnish HTTP accelerator
mapolis mapolis
Core Drupal
nginx on port 81 nginx on port 81
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 98
1th 1
132. HTTP Request
GET mapolis.com 80
Varnish HTTP accelerator
mapolis mapolis
Core Drupal
nginx on port 81 nginx on port 81
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 98
1th 1
133. HTTP Request
Varnish HTTP accelerator
mapolis mapolis
Core Drupal
nginx on port 81 nginx on port 81
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 99
1th 1
134. HTTP Request
GET mapolis.com/de/start 80
Varnish HTTP accelerator
mapolis mapolis
Core Drupal
nginx on port 81 nginx on port 81
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 99
1th 1
135. HTTP Request
GET mapolis.com/de/start 80
Varnish HTTP accelerator
mapolis mapolis
Core Drupal
nginx on port 81 nginx on port 81
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 99
1th 1
136. HTTP Request
GET mapolis.com/de/start 80
Varnish HTTP accelerator
mapolis mapolis
Core Drupal
nginx on port 81 nginx on port 81
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 99
1th 1
137. Frontend
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 100
1th 1
139. JavaScript Framework
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 102
1th 1
140. Supported browsers
7 3.6 14 5.0
8 7 (latest) 5.1
9 (latest) (latest)
(10) (iOS)
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 103
1th 1
141. Development
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 104
1th 1
142. The Team:
1 Scrum Master
2 DevOps
4 PHP/JS Developers
1 Frontend Developer
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 105
1th 1
143. Development Tools
Used IDE:
Zend Studio, PhpStorm, vi and Textmate
Database change management:
Liquibase
CSS helper:
SASS / Compass
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 106
1th 1
144. Development Laptop
Ubuntu VM with
Local Git repo
Complete software stack
ant <everything>
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 107
1th 1
145. Some ant commands
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 108
1th 1
146. Some ant commands
$ ant db-development
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 108
1th 1
147. Some ant commands
$ ant db-development
$ ant sync
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 108
1th 1
148. Some ant commands
$ ant db-development
$ ant sync
$ ant phpunit
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 108
1th 1
149. Some ant commands
$ ant db-development
$ ant sync
$ ant phpunit
$ ant jslint
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 108
1th 1
150. Some ant commands
$ ant db-development
$ ant sync
$ ant phpunit
$ ant jslint
$ ant deb
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 108
1th 1
151. Some ant commands
$ ant db-development
$ ant sync
$ ant phpunit
$ ant jslint
$ ant deb
$ ant build-vm
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 108
1th 1
152. Typical commit workflow
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 109
1th 1
153. Typical commit workflow
$ vi Foo.php
$ ant phpunit
$ ant jslint
$ git add Foo.php
$ git commit -m ”Bar”
$ git pull
$ git push
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 109
1th 1
154. ant phpunit
<target
name="phpunit"
depends="db-test"
description="Run all tests">
<exec executable="phpunit"
failonerror="true">
<arg line="--configuration $
{basedir}/tests/phpunit-verbose.xml $
{basedir}/tests/AllTests.php" />
</exec>
</target>
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 1
1th 1 10
155. One click deployment
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 1 1
1th 1 1
156. And how does it look now?
Building a Cloud-based social network I Mayflower GmbH I 1 October 201 I 1
1th 1 12