Web ServicesData PersistanceElasticSearch is the new kid on the search block. Built on top of Lucene and adhering to the best concepts of so-called NoSQL movement, ElastcSearch is a distributed, highly available, fast RESTful search engine, ready to be plugged into Web applications. Come to this session and learn how to set up, index, search, and tune ElasticSearch in less time than it takes to order a latte [disclaimer: at sufficiently busy central Starbucks locations. Side effects may include euphoria, stuff getting done, and extra time to spend with girlfriend.]
Data PersistanceVoldemort is a leading NoSQL solution for scalable key-value storage. Using HailDB with Voldemort provides significant performance and stability gains as well as improved failure recovery over the default Voldemort storage engine. In this talk, we discuss the major wins of using HailDB and Java via a JNA-based library, including tuning tips that are relevant for any use of InnoDB (including MySQL).
Front-endParce que faire un site web pour terminal mobile, ce n’est pas fixer sa largeur à 320px ou proposer une version iPhone, voici un tour d'horizon de toutes les solutions offertes par CSS pour adapter un design existant au mobinautes.
* vous aimez les chiffres ? bon, c'est pas grave
* un mobile c'est : 1 écran, et... plusieurs largeurs
* le Viewport : c'est quoi et comment le gérer ?
* le messie CSS3 media query en renfort
Pour finir, une méthodologie générale d'adaptation grâce aux CSS :
* gérer la largeur,
* redimensionner les éléments,
* passer à une seule colonne,
* gérer les débordements,
* supprimer le superflu,
* adapter les liens et les polices,
* un zeste de HTML5
System AdministrationOne of the most undiscussed subjects in web application development today is application deployment. In this talk, we'll discuss how to use a great deployment tool Puppet to not only deploy your application into staging or production, but how that exact same work can be used to build robust development environments quickly and easily that are entirely consistent with their staging and production counterparts. In this talk you'll learn actionable techniques, tips and tricks to take your deployments and development environments from self-created hacks to robust maintainable processes.
PHPYou already know Singleton, Signal/Observer, Factory and friends. But, which object oriented patterns are en vogue in the PHP world and how can you seize their power? This talk gives you an overview on Dependency Injection, Data Mapper and more OO patterns the PHP world talks about right know, using practical code examples.
PHPTesting / QAArbit is open source and aims to be the next project tracker for your software projects, and is written in PHP. Besides issue tracking and Wikis it also provides integration with quality assurance tools, like PHPUnit, PHPCS and phpDepend. This talk will give an overview on its architecture, current state and how it will contribute to your development and maintance of PHP software.
FrameworksPHPA new Hierarchical MVC framework for PHP 5.3+ with a modular organization and REST-centered architecture. Alloy strikes a balance between well-structured and well designed object-oriented code that adheres to the best programming practices and code that is truly simple and enjoyable for programmers who use it on a daily basis.
This talk will focus on introducing Alloy Framework, its philosophies and concepts, why it is Hierarchal MVC and what that means for you as a developer, and showing how easy it is to build an app with both HTML output and a full REST API using a single controller.
Data PersistanceThis session is a comprehensive look at the state of flash storage today. There's so much new technology that it's hard to understand what's available. This session explains technologies and products: Flash, SSD, FusionIO, MLC, SLC, NAND, and NOR. It looks at benefits and drawbacks of each of them, including a price/space/performance comparison. You'll see benchmarks and you'll learn how to get the most from flash storage for MySQL - but the improvements will likely translate similar for other databases as well.
Scaling / PerformanceSlow websites are sad, your site doesn't need to be one of them. By installing XHProf on your _production_ webservers_ you can obtain real, detailed information on why your pages behave the way they do. Thanks the the great graphical interface in XHGui this information can be easy to read an interpret.
PythonThe Mozilla addons site (http://addons.mozilla.org) hosts addons for Mozilla products, including Firefox. The addons site gets a large amount of traffic and this talk covers how the site has been built.
There is special focus on: how traffic impacts the site development, specific reusable modules from the site and localisation of the site.
The site was a conversion from CakePHP and now serves about 120 million web requests per month and 1.4 million visitors per day.
MobileIf you are new to Android or even been developing with Android for a while it can be hard to navigate around all that Android can offer. This talk will go over setting up your project in ant, understanding the visual layout utilizing XML for layouts, menus and strings, features such as tabs, browsers, local storage, c2dm (for notifications and synchronization), utilizing http / web services and debugging your code.
This talk will have several examples and we will build an example application during this talk leveraging the features and functionality above. If there is internet access, this example application will be published to the Android Market.
PHPScaling / PerformanceWhen it comes to making things faster, nothing beats caching. This presentation will provide you with an overview of the best caching tools when it comes to PHP, Memcache PHP. The talk will cover through examples the applications of each extension and demonstrate which situations lend themselves better for each caching solution. For the memcache portion of the talk, the new & improved Memcached interface will be covered.
JavaLe développement Web Java a subit une forte évolution depuis les 6 dernières année. On retrouve dans ce langage énormément de framework Web, qui ont tous leurs contraintes et leurs avantages, mais dont le but commun est d'essayer de faciliter et accélérer le développement en fournissant un certain cadre.
Mais avec l'arrivée de nouveaux concepts comme Cometd (push Ajax), l'événementiel, les architectures Web distribuées telles que Amazon, Linked'In, Facebook, Twitter et avec les nouveau besoins en expérience utilisateur, un écart se creuse avec le monde des frameworks Web.
Nous allons voir à travers une expérience vécue sur une architecture Web de haute disponibilité les contraintes que nous avons eues et pourquoi nous avons choisi d'écrire notre propre framewok.
Web ServicesYou will definitively hear the name of the open-source PBX „Asterisk“ when you search for an enterprise-ready voip telephone system.
This session will illustrate the possibilities to integrate asterisk with php, focusing on tasks required by an CRM-system, such as reviewing call details, initiating calls from your CRM and retrieving the callers name from your CRM.
All techniques could be easily applied to other programming languages such as ruby, python, …
There will be some examples using php, though.
PythonProject Management / AgileMercurial fait partie des DVCS modernes, comme Git et Bazaar. Cet
atelier permettra à des programmeurs ne connaissant pas ou peu Mercurial
d’en apprendre assez pour une utilisation quotidienne assez avancée.
Plan :
* Mercurial face à la concurrence
* Utilisation basique
- créer un dépôt, ajouter des fichiers, valider
- explorer l’historique et rechercher
- comprendre Mercurial : le DAG
* Collaboration et travail en équipe
- partager sans dépôt public
- suivre plusieurs dépôts
- publier son dépôt
* Des branches efficaces
- branches anonymes, branches nommées, branches style Git
- branche vs. clones
- tout sur les diffs
* Situations difficiles
- tout sur les fusions (merges)
- éditer l’historique
PHPL'analyse de code PHP se fait le plus souvent manuellement : il faut lire le code pour le comprendre.
L'analyse statique permet d'aller plus vite, et dans tous les recoins de l'application : elle travaille sans se lasser, exhaustivement, mais sous direction.
Durant la session, nous mettrons en place un analyseur statique pour PHP, pour détecter automatiquement l'arbre des inclusions, les arguments jamais utilisés, les affectations de GPC, et produire un inventaire à la Prévert du code.
CMSL'année 2010, peut être considérée comme une année charnière pour les CMS. Les différents outils de gestion de contenus ont vus apparaître une nouvelle version majeure, provoquant un large choix pour les développeurs et les utilisateurs.
Chacun de ces outils possèdent leurs avantages, aux yeux des programmeurs PHP / Python / Ruby / Perl, mais est-ce qu'ils vont répondre au final, au besoin souhaité ?
La définition du besoin et le choix des acteurs du projet seront des critères importants et donc présentés à cette session.
Scaling / PerformanceAs a web developer, you probably care deeply about the performance, security, accessibility and internationalisation aspects of your site. You do a lot of testing during development to make sure your web site follows best practices. Tools like YSlow and PageSpeed help you identify and fix performance problems during development, but it's still hard to tell how your site performs from your end user's point of view.
Are your users on dial-up, wireless or broadband? Do they have fast computers, are they on a shared network, what else do they have installed that can slow down their browsing experience? It's almost impossible to simulate all conditions that a user will experience your site through, but it is possible to measure what they experience.
This talk will show you how to use the Boomerang library to test your site's performance from your user's point of view. At the end of this talk, attendees will be able to measure the perceived performance of their sites.
FrameworksPHPSymfony2 first stable release is scheduled for the first week of March 2011. During this session, we will have a look at the new framework architecture and most of its powerfull features.
We will show you how Symfony2 implements the MVC pattern and an HTTP request is processed and converted as a response for the end user. Of course, we will talk about the configuration principles and how it's easy to configure Symfony2 project parts like the routing system or the data model. We will also focus on other major components of the framework like the Doctrine2 integration, forms, security (authentication and authorizations) or HTTP cache management.
Web ServicesJavaThis presentation provides an overview of developing RESTful web services using the Jersey framework. It assumes a working knowledge of Java. This overview includes examples from a specific case study including the following:
* Setting up a Jersey development environment using Maven
* Best practices for service architecture and proper HTTP method and response code usage
* Handling multiple input and output formats such as JSON and XML
* Unit testing Jersey web services
* Useful related resources
Node.js allows developers to rapidly build network applications that can handle tens of thousands of users. At least, that's the promise. This talk introduces developers to Node.js and its ecosystem. It separates the hype from the reality and helps them answer the question "is Node right for me?"
Text mining (aka Text Analytics) technology has been present in the market for the past decade. However, very few applications integrate and leverage it. The goal of this talk is to discuss the use and the integration of this technology and to show you the potential and possibilities it may offer to your applications.
We will start with a quick review of Text Mining's key concepts. Then, we will talk about existing technologies in the market, we will review their features and their limits (entity annotation, concept extraction, taxonomy categorization, summarizer, sentiment analysis, language detection, exchange format, etc.). Finally, we will discuss how Text Mining could be integrated and leveraged inside a (or your) Web application, we will go through some examples of existing integrations with open source solutions such as Wordpress and Drupal.
Social NetworkingStartupsStatusNet (http://status.net/) is the Open Source microblogging server. This LAMP software has an extensible plugin architecture, so you can develop other tools that use the "microcasting" metaphor: distributing social activities to an opted-in group. In this session, I'll give an overview of the StatusNet plugin architecture, describe the key classes needed to build a plugin, and make an example plugin for photo sharing.
Data PersistanceMongoDB -- from "humongous" -- is an open source, non-relational,
document-oriented database. Trading off a few traditional features of
databases (notably joins and transactions) in order to achieve much
better performance, MongoDB is fast, scalable, and designed for web
development. The goal of the MongoDB project is to bridge the gap
between key-value stores (which are fast and highly scalable) and
traditional RDBMS systems (which provide rich queries and deep
functionality). This talk will provide an introduction to MongoDB for
engineers and database architects, from one of the developers working
on the project. The presentation will be accessible to those who are
completely new to MongoDB and non-relational databases, but will touch
on some of the advanced functionality that makes MongoDB a compelling
option for all web developers.
Scaling / PerformanceBesides obvious optimizations like using APC, you probably have some caching strategy for your PHP projects. Most frameworks nowadays provide tools to cache pages, and interfaces to software like Memcache. But did you know that caching is a large part of the HTTP specification (RFC 2616)? In the first part of this session, I will show how you can take advantage of HTTP caching and how to leverage gateway caches.
Akamaï wrote the ESI language specifications (Edge Side Includes) in 2001 to provide a means to build pages with different HTTP resources. It brings a lot of flexibility to the table. Varnish, one of the most popular reverse proxy, support ESI out of the box. The second part of this session will show how you can use ESI in your next PHP project.
PHPCakePHP has undergone massive changes recently with the development push to complete features for our 2.0 version.
Through this process we've learnt a lot about developing with PHP, enhancing the experience for developers, and managing legacy users through careful deprecation and feature removal process.
This talk covers extensively the changes in the 2.0 version upcoming for CakePHP, but also details the feature enhancement and deprecation process we've employed to ensure retention of users for a successful push forward on a long standing stable open source project.
FrameworksPHPBring along your laptop, hack up in a live session with one of the CakePHP core team, and build an app live.
We'll take a short period of time to define the project, design the database, and then jump in and build the project through to completion.
This session is great for new and old CakePHP users, and a great opportunity to get an insight into CakePHP if you have never had the opportunity, or have not been able to find the time.
Code resulting from this talk will be made available under the MIT license, and freely available for users to take and use, extend and build on as they like.
PHPEven bad code can function. But if code isn't clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn't have to be that way. In this session you will learn how you can offset your technical debt with clean code that is readable and testable as well as reusable.
PHPMost developers use PHP in a web context and run their code via Apache.
The command line interface (CLI) is another approach to run PHP without the overhead of your webserver.
This talk not only illustrates the usage of the PHP binary, but also some use cases for which the CLI is the better tool.
I'll be touching subjects such as:
- Configuration checking
- Syntax validation
- Function and object documentation
- Batch tasks
- Reading from STDIN
- Writing to STDOUT/STDERR
- Interacting with other binaries via piping
- Process forking
- ...
System AdministrationProficiency at the commandline is essential for any developer who develops on, or deploys to a Linux system. With enough commandline knowledge, an enormous amount of power is at your disposal and your productivity can sky-rocket.
This talk will detail a range of techniques for getting the most out of your local shell, ranging from little-known environmental settings to spectacular one-liners that will transform the way you work. This won't be an introduction to basic commands but an exposition of the most useful, time-saving tricks for developers, drawing in part on the community-submitted gems of commandlinefu.com.
Il est bien plus facile de parler de stratégie web que de le faire. Que met-on dans une stratégie web? Comment choisissons-nous la stratégie à prendre?
La présentation va proposer un processus pour définir une bonne stratégie web. Les bénéfices de ce processus sont (1) des besoins clairs à mettre dans l'appel d'offre (2) éventuellement, un meilleur rendement sur l'investissement.
Web ServicesAlthough browser apps replace more and more desktop application, a tight integration of both is often desirable, not only when it comes to data manegement. The HTTP based WebDAV protocol allows you to integrate your web applications with users favorized desktop environment. This talk gives you an introduction to WebDAV, its beauty & pitfalls and shows you how to integrate it easily into your applications.
Web Services25 years later, domains are still the way most of us envision the web, but for how much longer?
Authorization standards (such as OAuth) are becoming more and more popular. Bookmarklets and web browsers add-ons are rising. APIs aren’t scary anymore. We have found ways to bypass cross-domain policies (with JSONP for example), and JavaScript frameworks are already taking advantage of it all.
Not only the technology is evolving but, as equally important, Internet users expectations are growing too. The simple fact that more and more people are willing to use their Facebook or Twitter credentials to sign in to a 3rd-party application is an early indication that frontiers between domains are fading away.
During the talk, we’ll go over technical aspects of cross-domain web development and highlight new opportunities for designers, developers, and managers. We’ll use concrete examples from Facebook, Twitter, Hunch, and readon.ly to imagine the web of tomorrow.
MobileDevelop full-featured native iPhone and Android apps from a single codebase using Appcelerator's Titanium mobile development platform. Titanium uses a developer-friendly javascript syntax with custom APIs and methods that get translated and cross-compiled to native Objective-C and Java. These apps are not HTML/CSS web views wrapped in a "native" package - they are real native apps with native UI components.
You will be introduced to Titanium, what it is, how it works, what the code looks like, pros and cons of the platform, and just how easy it is to make mobile applications with it with a few live demonstrations. My first experience with Titanium took me from being brand new to the platform to built and submitted Android and iPhone apps with identical functionality in 2 weeks.
Front-endSi les CSS ne sont pas une technologie jeune, ses évolutions récentes offrent des fonctions étonnantes qui vont radicalement transformer notre manière d'écrire des sites Web. Dans cette intervention, je présenterai brièvement l'historique des CSS, qui n'est pas forcément connu et qui aide à comprendre ce que sont les CSS aujourd'hui. J'embrayerai sur la standardisation et son processus, avec un éclairage sur le fonctionnement du CSS Working Group dont je suis Co-chairman. Je continuerai ensuite par un détail plus approfondi des travaux en cours dans le CSS WG, ce que CSS 3 offre déjà et offrira bientôt. Je finirai enfin en parlant de l'impact de CSS 3 sur le Web en général et par une courte démonstration d'un outil d'édition Web wysiwyg permettant de manipuler très finement les CSS sans avoir de compétence technique profonde tant de la grammaire que des propriétés et valeurs de CSS.
Nota bene: je peux effectuer cette présentation en français ou en anglais, c'est selon votre choix.
SecurityWeb application developers are very comfortable getting into the bits and bytes of their programs and data, however few take advantage of the network analysis tools available to inspect, test and troubleshoot the network interactions of their applications. This session will provide instruction for using three network security tools to analyze web applications on the network. Wireshark will be used to capture web session to analyze headers and content, extract and save objects, gather performance statistics, and other web app troubleshooting techniques. Webscarab will be used to capture SSL session traffic and modify HTTP requests and responses on the wire. Finally, netcat will be used to perform automated replay tests against a web application.
PHPProject Management / AgileAvec la taille croissante des équipes de développement, un nouvel aspect du métier de développeur PHP apparaît : rassurer les clients et managers en produisant des rapports. Ils portent les noms de document de conception, convention de code, référentiel de sécurité, planning de travail, diagrammes de classes, plan d'urbanisme.
Nous passerons en revue ces documents, leur type et leur structuration. Nous verrons aussi les outils qui permettent de relier ces documents avec le code, pour avoir simultanément une vue d'ensemble, un suivi des évolutions et moins de travail d'implémentation.
Web ServicesA lot of Web Services today claim to be RESTful APIs. But are they really? Do the URLs accurately identify resources? Are the powers of HTTP leveraged properly? What is "hypermedia", what is the Uniform Interface, and what is the secret behind the HATEOAS acronym that is so essential to the REST architectural style? This talk gives answers and guidelines using real-life examples.
PHPData PersistanceAs PHP matures and enters the enterprise, it must address mission critical requirements such as: massive scalability, high availability, cache coherency, and end-to-end tracing. This demo packed session will illustrate how the combination of PHP and Oracle database meet those requirements including: how to sustain tens of thousands of concurrents users. How to implement transactional HTTP requests. How to failover database connections in real time (fast connection failover). How to upgrade database-driven 24x7 Web applications online. Transparent client-side caching of Result Set caching and cache invalidation. How to trace PHP applications from the browser to the SQL operations.
MobileThanks the new Adobe AIR 2.5 runtime, web developers can develop mobile applications using the open source Flex framework. AIR is available on Android, BlackBerry tablets, iOS, interactive TVs by Samsung... With the same codebase, you can reach millions of users. Using the last release of the Flex framework ("Hero"), you can rapidly develop rich and engaging applications connected to your back-end (PHP, JAVA, .NET...). During this session, you'll discover how to code and deploy a mobile application for Android leveraging specific mobile APIs such as Multi-touch, the Accelerometer, access to the Camera and the microphone, StageWeb view… and many new features to develop the best user-experience for your application.
AccessibilityNous avons tous, au moins une fois dans notre vie, été aux prises avec un CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) impossible à résoudre. Que ce soit parce qu'il demandait un trop grand effort cognitif ou parce que sa nature même était incompatible avec un handicap, le résultat était le même : échec total et exclusion.
L'utilisation des CAPTCHA a toujours été difficile, voire impossible pour plusieurs utilisateurs et tout particulièrement pour les personnes handicapées. Plus les robots parviennent à interpéter les CAPTCHAs, plus ceux-ci deviennent complexes, ce qui entraîne un cercle vicieux duquel l'utilisateur sort grand perdant. Et s'il existait une solution différente, sécurisée, accessible et indépendante des périphériques pour remplacer CAPTCHA une fois pour toutes?
Data PersistanceCouchDB is a prominent representative of the NoSQL movement. Using its integrated web server and eventual consistent replication you can not only distribute data, but also full application code. This even works for clients which are not always connected to the internet, like e.g. mobile devices. This session gives you an insight Couch apps, their beauty and pitfalls.
SecurityThe era of many separated logins and identities in the web is slowly coming to an end. Currently many of the big players are spurring this on with their own proprietary solutions, but open standards are starting to get more support as well with OpenID being the most promising one. In this session I will show how OpenID works for users and developers, where it currently fails and how OpenID is planned to evolve in the future.
RubyTwo awesome languages meet, Ruby and Objective-C, and so MacRuby's story begins. This special Ruby flavour, aiming at 100% compatibility with RubySpecs 1.9, also integrates Objective-C's libraries and advanced technologies. Far gone from it's experimental status, MacRuby now rides on the fast lanes with Apple's support in the back seat, getting closer to a stable 1.0 release somewhere in 2011. With already impressive performance figures, far surpassing any other Ruby implementation, running rumours says its future may be as an iOS programming language. Given these conditions, most will agree its road seems paved with gold and so deserve a bit of attention. This presentation aims to prepare you for the ultimate MacRuby experience.
It will cover:
How MacRuby differs from Ruby MRI.
Objective-C integration with MacRuby.
Some Objective-C basics.
MacRuby and the web.
MacRuby's workflow with Xcode and Interface Builder.
Building a simple MacRuby Cocoa app (Live Coding).
Project Management / AgileStartupsDo you have what it takes to become a CTO in a Startup? Can you stomach the politics? Heard about Minimum Viable Product? Is it your job to raise a new round of financing with Angels and VCs? You can ship alone, can you ship as a team?
This session is constructed as a howto for senior developers thinking about what's next for their career.
I will recap the lessons learned in the last 10 years as CTO/CEO of a few internet startups and provide advice on how to "level up" to CTO and what it entails.
Front-endjQuery is one of the global players in the world of JavaScript frameworks. It's
small. It's fast. It's concise. It changes the way you write JavaScript. But
how does this library accomplish all this?
Its developers concentrate on the main aspects of any JavaScript application:
Document traversing, document manipulation, event handling, animation and AJAX
interactions. Only these components are part of the core library. Everything
else needs to be added using so called plugins.
Whole applications can be built creating and combining plugins to bring into
being a fully featured user experience.
In this session I will give a short overview about the different possible plugin
types, before presenting the most common ones in detail. During the talk a reusable
base structure will be created which can be easily adapted to any personal
developmental needs. This skeleton will allow you to start writing your own
jQuery extensions in no time.
One of my favourite things about meeting up with other developers to hack on
a project is that they'll see how I'm doing things and chime in "hey, did
you know that you could use ($someTool) to do that better?" I've been doing
this web thing for a long time, and thus have built up a significant bag of
tricks, such as Screen, OpenVPN, RRDTool, SSH tunnels, and git hooks to deploy code on push. In this talk, I'll share as many of these tips, tricks and tools as
I can, as quickly as possible. The goal: leave with new ideas.
PythonFormAlchemy est une librairie de génération de formulaire bas niveau.
FormAlchemy déduis des formulaire depuis les données et permets ainsi
d'éviter la duplication de description de schémas de données et un
développement rapide.
FormAlchemy est dors et déjà compatible avec Pyramid, le futur Pylons
2 et peut être utilisé avec n'importe quel framework web.
FormAlchemy permet de générer des interfaces CRUD basiques pour pylons
et pyramid.
Dans un futur proche, FormAlchemy devrait supporter le html5,
permettre d'utiliser des templates chameleon et fournir un squelette
d'application pyramid.
PHPSocial NetworkingData PersistanceFacebook can figure out people that you might already know, Digg can recommend article submissions that you might like, and LastFM suggests music based on your current listening habits. We’ll take a look at the basic theory behind how some of these features work (no computer science degree required!), and show how you can implement them in storage engines such as Redis, Cassandra & even MySQL, as well as go over the advantages and disadvantages of each implementation.
SecurityVega is a free and open-source vulnerability scanner developed by Montreal-based startup Subgraph.
During this presentation, we first explain the common classes of vulnerability and survey the landscape of existing scanner technologies.
We will then present Vega and explain how it can be used to perform security assessments of web applications.
We will also be demonstrating the flexibility offered by Vega through the development of custom modules that run in its embedded Javascript scripting engine, which we hope web developers will love.
PHPPHP has been growing and evolving as a language for over a decade now and in this time managed to accumulate many functionalities and features. In fact so great is it breadth of functionality much of it lies unknown to most users. This session will focus on uncovering various functionality gems and developers may not know PHP has, but can help in their day to day development efforts.
Scaling / PerformanceFront-endModern web applications rely heavily on JavaScript. However the JavaScript interpreters of many browsers still are tailored to the JavaScript usage of the 1990s. Inefficient JavaScript code may heavily slow down the browser or even lead to memory leaks. This session will identifyy common mistakes and provide performance best practices when it comes to using JavaScript in a web application. Topics covered include the loading of JavaScript, DOM access, string and array operations, and effective Ajax.
PHPScaling / PerformanceWhat do you do when your PHP is as optimised as its going to get?
Facebook created it's own version of PHP which transforms the code into C++.
HipHop allows developers to continue writing complex logical directly with PHP but leverages the speed benefits of C++. HipHop is more than just a theoretical exercise and currently powers the majority of Facebook servers. This session will cover using HipHop and some of the code changes required to use it.
SEOHow Google Analytics can demonstrate the effectiveness of a web application and how it can help a developer become a better one. Learn to use Google Analytics as a toolkit for your online projects.
High level functional overview and review of the main concepts related to Google Analytics. How to get away from the perception most geeks have of Google Analytics: it is actually much more than just page views.
Showcase of different tracking techniques for rich web applications, including Flash, Silverlight, Android, iPhones, JS, Ajax, etc.
Final note on optimization techniques using A/B testing.
Cloud ComputingAt nytimes.com, we have been migrating many new applications and platforms onto Amazon's EC2 infrastructure. By moving towards a service oriented approach to communication between platforms and systems, we have been able to accelerate this process. In this talk, we will cover the hurdles of moving to a service based approach as well as how doing so lessens many other infrastructure concerns and allows flexibility on determining server environments.
MobileLocation-based services are more than just a trend, they are a set of tools that can help you create personalized, immediate, user-centric applications for your users. Of course, there's more than just getting a latitude & longitude - you need a rich data set to provide information about the user's surroundings. Many developers have tried methods such as scraping, buying lists or using student interns to input data - but there is a better way. Luckily, there are Canadian focused APIs to help you reach your goals & you monetize your apps in the process! In this session, you'll learn how to build from scratch both an iPhone and Android application that leverages GPS, maps and business listings using the YellowAPI.
Social NetworkingSocial apps have become very popular in the last years. In this session I will show you how to create an OpenSocial app which can be used by over 900 million users on many social networks around the world. After introducing you to the main concepts behind OpenSocial I will demonstrate live that it is easier than you think to develop a rich social app. Additionally to the basics like accessing the user's social graph or integration with external APIs, I will also highlight features that will help you with a quick viral distribution, tight integration into the user's social experience and access through mobile devices.
Front-endHTML5 is here and we should use it right now. It is fun and interesting to look at cool CSS3, Canvas and Video demos but our main goal should be to make our day-to-day life easier by using the cool things browsers offer us right now. Learn about local storage, simplifying interfaces and using HTML5 right now!
Front-endHTML5 is upon us and it offers a wide range of exciting possibilities when it comes to developing rich web interfaces. This talk will introduce you to a number of them, give a good overview and introduction and hopefully inspire you to create amazing things!
AccessibilityHTML5 et javascript sont de plus en plus utilisés dans les sites et les applications web. Va-t-on reproduire les mêmes erreurs que par le passé et empêcher certains publics d'avoir accès à ces évolutions ou au contraire peut-on réussir à concilier innovation et accessibilité ?
Dans le détail, nous allons voir en quoi, dans l'état actuel des spécifications, HTML5 peut améliorer ou détériorer l'accessibilité et comment il est possible de concevoir et utiliser du code javascript non obstrusif notamment en utilisant WAI-ARIA.
PHPTesting / QAEveryone talks about raising the bar on quality of code, but it's always hard to start implementing it when you have no clue where to start. With this talk I'm showing that there are many levels developers can improve themselves by using the right tools.
* Syntax checking with PHPLint (php -l)
* Validating code with PHP_CodeSniffer
* Testing code with PHPUnit
* Debugging code with XDebug
* Documenting code with PHPDocumentator
* Building with Phing
* Packaging with Phar
* Automation with Xinc (Continuous Integration)
I will discuss each tool in detail and will show with a demo how to use this tool with an example code base.
PHPTesting / QACette session a pour objectif de vous présenter dans un premier temps la plateforme d'intégration continue java Hudson ainsi que les étapes d'installation et de configuration de cette dernière.
Dans un second temps, vous découvrirez comment configurer Hudson pour assurer le suivi qualité d'un projet PHP à l'aide de cette plateforme d'intégration continue. Nous porterons un regard attentif au couplage de Hudson avec un dépôt de code Git ou Subversion, à l'exécution d'une suite de tests unitaires PHPUnit ou bien encore aux outils d'analyse statistique du code tels que PHP_CodeSniffer, PMD ou PHP_Depend.
AccessibilityL’accessibilité fait maintenant partie intégrante des objectifs à se fixer pour un projet Web.
Pourtant – délais serrés, budgets restreints, équipes surchargées - de très nombreux facteurs viennent régulièrement contrarier nos belles ambitions.
Dès lors, comment intégrer durablement l’accessibilité dans les processus de conception, de développement et de publication ? Ne serait-ce pas l’occasion rêvée pour initier une démarche qualité ?
L’intérêt d’une telle démarche est d’industrialiser les impératifs d’accessibilité pour en faire des éléments totalement intégrés dans les processus de production.
Quels objectifs d’accessibilité se fixer, comment les intégrer et les atteindre ? C’est à ces questions et à travers des exemples concrets que les intervenants répondront.
Web standards are a means to achieving interoperability; the same markup working the same way across browsers. At Microsoft, we are committed to an interoperable Web, as demonstrated by products like Internet Explorer 9 and our active participation in standards bodies such as the W3C. In this session, we invite you to join us to hear about our commitment to interoperability and Web standards and some of the exciting work that's been done in this space.
Project Management / AgileTesting / QAEveryone is talking about test driven development (TDD) being so cool and elaborating for both developers and persons responsible for the projects success ( like project managers, project owners, and customers ). But very few projects are using TDD to gain its relieving aspects. How does that go along? Seems many project responsibles are uncertain about the efforts and direct benefits of TDD and step back. This talk is about a transition from a usual project to TDD. Within this talk I will raise some questions to be answered before moving and show the benefits of TDD for each party of the project setup. We will find possible impediments to be faced and will see how to get rid of them.
Quel que soit le secteur d'activité, plus de 80% des données que nous traitons ont une référence spatiale et la cartographie est une façon simple et efficace de les visualiser, qu'elle soit au coeur de la solution ou seulement une composante de l'application.
Au-delà des API gratuits de Google Maps et ses compétiteurs, le monde de la géomatique open source propose une suite d'outils vous permettant de repousser les limites de la cartographie Web. En ayant en main cette gamme complète de logiciels, une entreprise peut exploiter à fond ses données à référence spatiale en intégrant cette composante essentielle qu'est la carte à sa solution.
De la base de données spatiales PostgreSQL/PostGIS à l'interface usager ExtJS/GeoExt, en passant par le moteur de cartographie en ligne MapServer, cette présentation vous propose une introduction à la géomatique libre et open source ainsi qu'une vue d'ensemble des différents logiciels disponibles et de la façon de les adapter à vos besoins.
.NET“The best reason to learn a new programming language is to learn to think differently.” --Chad Fowler
Il n’y a pas si longtemps je me suis lancé un défi d’apprendre un nouveau langage. F# m’a semblé tout indiqué car ce langage propose une façon différente de réfléchir aux problèmes que nous essayons de résoudre dans notre quotidien d’informaticien tout en restant arrimer à la plateforme .Net. Je propose de partager avec vous mes découvertes sur les fondements de la programmation fonctionnelle, le style de programmation déclaratif, les fonctions d’ordre supérieur (higher order functions) et plein d’autres concepts que j’illustrerai par du code simple et concis. Nous terminerons par une utilisation de ces concepts dans un exemple complet afin d’illustrer comment ils peuvent être mis à profit dans nos solutions.
FrameworksPythonPyramid est un nouveau framework web inspiré par Zope, Pylons et Django et a vu le jour suite à l'union entre repoze.bfg et Pylons; il est simple, léger, documenté, testé, extensible, rapide, fiable et versatile.
Cette présentation est une introduction à Pyramid et à sa philosophie en démontrant différentes approches possibles au développement d'une application, les différentes contributions apportées au projet et les préférences de la communauté pour créer une plateforme de développement web flexible.
NOTE: Pour faire suite à cette introduction de Pyramid je vous propose d'assister à la session d'Alexandre Bourget
FrameworksRubyLorsqu’on pense à Ruby pour le Web, on pense souvent à Ruby on Rails. Par contre, Sinatra, un petit framework, commence à faire son chemin auprès des développeurs qui n’ont pas besoin de tous les composants de Rails. Sinatra permet de créer des applications de toutes tailles : du petit site Web de quelques pages à l’API complet d’un service Web.
Cette présentation se veut un atelier d'introduction à Sinatra, portant sur ses fonctionnalités de base et ses possibilités, tout en restant fidèle à son minimalisme et sa rapidité de développement.
FrameworksPHPZeta Components (formerly eZComponents) provide a lightweight php component stack apart from the mainstream of full blown frameworks. Integrating some of the components, you can build your very own "framework" which consists only of those features, that you really need. This sessions gives a brief introduction in the utilization of the components needed while implementing a MVC-architecture.
MobileQt was recently bought by Nokia, since then there was a significant effort put forth to simplify development on multiple platforms, including MeeGo, the joint venture between Nokia & Intel. From this effort Qt QUICK was born, and the QML (Qt Markup Language) has become an efficient way to rapidly develop proofs of concept that will run on multiple platforms. QML Is simple, elegant and efficient; in fact HTML should be jealous. In this talk I will introduce you to the basics of QML, the Qt Creator Development environment and show you a few things you can do with it. If the first Nokia MeeGo phone is released to the public by then I will demonstrate how to run your QML projects on the phone.
JavaJava web development has the stigma of being bloated, complex, and difficult to deploy. The Play! Framework changes all of that with a application stack focused on development rather than boilerplate code. Built on established and proven Java server technologies including Hibernate and Netty, Play! allows developers to work with a robust and mature set of tools in a way that remotes most of the leg work.
In this talk, we'll take a look at the Play! Framework foundations and fundamentals, along with building a sample application that includes baked in database access, scaffolding, and modular extension support. We'll also take a tour of the Play! extension modules and example ways to deploy Play! applications.
JavaFront-endIn this session, I will first introduce what is Comet Programming and the limitations. Then I will describe in details the new W3C's WebSocket proposal, how it work and what it solve. I will then build a WebSocket's application using the Atmosphere Framework, JQuery and the Scala Programming Language. I will conclude by showing how the same application can be done using the JRuby Programming Language.
JavaJ2EE has been very successful in the enterprise to build all sorts of applications. Yet, developers often times needed third-party frameworks to ease the development process or to simply extend the feature set offered by the platform. With Java EE 5 released in 2006 and now with Java EE 6, developments have been simplified radically. In this session and demonstrations we'll offer an overview of the new capabilities of Java EE 6, from JAX-RS for RESTful Web Services to unified dependency injection (finally), but also Servlet 3.0, EJB 3.1, JSF 2.0, BeanValidation, JPA 2.0, the Web Profile and more. There's been so much progress that one could now wonder why Java EE hasn't always been that simple and lightweight.
JavascriptJavaScript is used more and more in websites, it is now also used server-side, or to build mobile applications. Yet many developers see it as some toy language and do not study it at all. If you have never heard of variable hoisting, love to "return false" to prevent clicks or are not sure what event bubbling means, this talk should give you deeper insights into the JavaScript language.
JavascriptMore and more PHP developers are writing JavaScript - everyone's favorite love/hate language. In this session we'll explore what is very similar and what very different between the two languages, including:
- objects
- classes
- inheritance
- patterns
- arrays
- strings
Front-endJavascriptnodeJS, claypool, APE, map reduce en nosql, yql... Le javascript server side est un sujet d'actualité, une tendance de fond est en train d'émerger. Et la mise en avant des outils dans la communauté progresse rapidement.
La promesse d'un seul langage sur le client et le serveur d'une application web est très attirante alors que HTML5, les websockets, les webworker, les local storage sont en train de se faire une place dans le futur du web.
Cette conférence a pour but de vous permettre de mieux appréhender cet écosystème à travers son historique, l'exposé des standards émergeant, des avantages et défauts des différentes solutions proposées et en présentant les briques communes.
Quels projets pouvez vous entreprendre sur ces technologies ?
Est-ce possible à intégrer en production ?
L'administration et l'intégration de ces outils au SI d'une entreprise est il possible ?
Ces technologies vont elles s'implanter ou rester des expérimentations de techniciens sous stéroïdes ?
Front-endUn des avantages de jQuery est le niveau de facilité de sa courbe d’apprentissage. Il est très facile de grimper la courbe et d’atteindre un plateau où créer des sites et des applications Web simples, propulsées par Javascript, est un jeu d’enfant.
Cependant, lorsqu’on s’aventure plus profondément dans le monde de jQuery, on y découvre des fonctionnalités avancées empruntées aux langages de programmation fonctionels, un modèle de vérification des fonctionnalités du navigateur, un gestionnaire d’évènements complexe, un moteur d’animations personnalisables, des analyseurs syntaxiques JSON et XML ainsi que plusieurs autres fonctionnalités souvent moins connues chez les débutants, mais pouvant s’avérer très utiles.
Cette présentation couvrira un maximum de fonctionnalités de jQuery au-delà de celles abordées par les tutoriels et introductions habituelles.
MobileWindows Phone 7 is a fresh mobile platform for Microsoft. With Xbox Live, Office and Zune all bundled into a single device there is no doubt that Windows Phone 7 will compete with other mobile offerings. Watch Cory Fowler build out a Podcast Streaming Application for Windows Phone 7. He will be pulling from both Silverlight and the XNA Framework to create this Application right before your eyes.
Scaling / PerformanceThis talk will analyze several common problems in large websites, and discuss how complimentary technologies like Gearman, Memcached and Sphinx can be used to improve site performance. Excellently paired with Paul's talk on XHGui
Project Management / AgileAfin de devenir plus agile, de plus en plus d'entreprises tentent le passage à la méthodologie Scrum.
Le Scrum Master, l'équipe, le product owner sont les rôles formels et documentés du processus. Mais en construisant l'équipe indépendante et autonome, le 'pack' Scrum exclut par définition le gestionnaire. La littérature le considère comme un 'chicken', son rôle est souvent interpreté comme passif et caricaturé par : "buy pizza and get out of the way".
Quel espace existe pour le gestionnaire dans une équipe Scrum ?
Qu'elle devient le rôle du coordonateur, du chef d'équipe, du directeur, voir
même parfois du VP/CTO/COO dans un contexte de processus de projet Agile ?
Dans cette session, nous parlerons de gestion du changement, de progression personnelle, de gérer des humains au-délà des métriques, des faiblesses de Scrum, des pièges à éviter pour le gestionnaire Agile, de récompenser, et de toujours, toujours rester soit-même agile.
JavaThe introduction of the Java Persistence API signalled the beginning of the end of proprietary ORM mapping files and session APIs to persist your domain objects to a relational database. While many developers have flocked to the new standard and have been happily developing persistence applications on JPA 1.0, the specification has continued to evolve. We will start by describing the basic features of JPA 1.0 and through examples and sample code move on to illustrate the new functionality introduced by JPA 2.0. Valuable tips and tricks will be given along the way to help you develop your own JPA applications.
SecurityLemonLDAP::NG (http://www.lemonldap-ng.org) est un logiciel libre de WebSSO et de contrôle d'accès aux applications Web. C'est également un fournisseur d'identités SAML, CAS et OpenID.
Vous découvrirez lors de cette conférence comment il est possible de s'affranchir de la gestion du mot de passe de ses utilisateurs, en déléguant l'authentification et les contrôle d'accès à une application à un produit de WebSSO.
Cela permet d'intégrer l'application sans effort dans des systèmes d'informations hétérogènes, en reposant sur des méthodes aussi diverses que les annuaires LDAP, les bases de données, les certificats SSL, Kerberos, etc.
La fonctionnalité de fournisseur d'identité permet également d'établir un cercle de confiance, pour par exemple propager l'authentification des utilisateurs aux applications "cloud", comme Google Apps ou SalesForce.
Front-endIncreasing amounts of Linked Data are being created, especially by governments, life sciences, social networks, and media organisations. This presentation will address design principles for Linked Data, how to make statements about the relationship between the things in our world and gather useful information from various sources, and why it might play an important role in creating a Web of things. This presentation is intended for directors, programmers, journalists, analysts, and user experience designers.
FrameworksPHPFrameworks come in all shapes and sizes, with some touting themselves as being "lightweight" or "micro-frameworks", and others brand themselves as a more "full-stack" solution. With Lithium, a new PHP 5.3+ framework, there's nothing stopping you from having both. In this talk, we explore how to trim down lithium to a lightweight, highly performant RESTful JSON & XML API that can fit in a single file. No hair-pulling required.
PHPAlthough PHP has many different methods for creating graphics, there aren't many currently for interpreting them. By using the OpenCV image processing library, it is possible to let PHP be able to detect features in images, such as people's faces and other objects, and process them further. This presentation will show how.
Frameworks.NETManos de Mono is a new web application framework that targets the Mono runtime. It is a completely fresh take on web application development with C#. Taking nothing at all from ASP.NET.
Manos is inspired by the Unix philosophy of application development. Things are small, simple and reusable.
This session will be an introduction to development with Manos by the creator of the project.
PythonMarrow is a suite of loosely-related components for general and web application development. All of the packages are compatible with Python 2.6+ and 3.1+.
Included is a fully functional ultra-performant HTTP/1.1 server implementing WSGI 2, low-level Server/Protocol API, configuration, command-line script tools, WSGI 2 OO environment wrappers, ingress/egress filters, common middleware, and more.
This presentation will cover the design of the various components, optimizations (making extensive use of the timeit module), Python cross-compatibility, and the use of Marrow as a meta-framework (framework to create web frameworks with).
Want to be the first megaframework with Python 2/3 cross-compatiblity? Marrow can make it happen!
Attendees will be given a thumb drive of reference material, examples, as well as a PIP distribution for offline installation of all required Python packages. Time post-presentation will be arranged for group and/or one-on-one work.
RubyProgramming programs is fun! Programming programs to program other programs is even more fun! Sounds confusing? It doesn't have to be. With Ruby, metaprogramming becomes a thing of joy. In this talk we'll investigate:
We'll explore the capabilities and limitations of these techniques, exploring ways to create programs not typically possible. We'll use lots of practical examples so that you can follow along and learn how to use these techniques yourself!
Frameworks.NETAt the recent Professional Developers Conference, Microsoft announced that they would be bringing a new HTTP stack into the .Net framework. It is built on top of WCF but treats HTTP as a first class distributed application protocol. One reason this stack is important is because it will bridge the gap between web sites built on ASP.NET and HTTP based web services built on WCF. It also introduces a new HTTP client stack that shares many components with the server stack to deliver a symmetric experience. It is also backward compatible with the existing WCF REST libraries.
This talk will cover the processor pipeline, the lightweight HTTP channel stack, configuration by convention and the extensibility points. I will demonstrate how to build RESTful services using the default conventions and what options are available for replacing those conventions.
SecurityThe password is currently the most commonly used way to identify a user. It does not, however, have the level of security required to protect sensitive information.
The addition of new identification allows to solve this problem. In this presentation we will see the concepts of strong authentication, the presentation of alternative free or low cost multi-factor identification.
StartupsBen Yoskovitz discusses his most recent startup experience, founding and selling Standout Jobs. The company started in 2007 and raised $1.8 million in venture and angel capital. The company was sold in 2010 (although it was not a financial success story.)
Ben discusses his 3 years at Standout Jobs, along with past experience and more recent experience founding Year One Labs, an early stage seed accelerator that helps startups get started in the first critical year of existence.
During the talk, Ben will give the audience an inside look into the roller coaster ride of startups. Topics covered include: fundraising, hiring, product/market fit, product management, board management, marketing, and more.
Although a great deal of Ben's experience was challenging, his goal is to encourage people (technical people especially!) to start companies. It's essential that more engineers and programmers launch startups. Consider this presentation a motivational speech (based in reality)!
PHPIf there is one thing most developers can agree on its this: Documenting Code is annoying! This is especially true when OOP code practically describes itself because of type hints, dependency injection and clear visibility specifications. This session will demonstrate how phpDox, the xml driven PHP Documentation framework, combines the power of docblock with PHP's reflection api and how its flexible output can be used to generate the documentation format you always craved for.
RubyPerl has their 'there's more than one way to do it.'
There's also 'it's already been done lots of different
ways,' which is common among open libraries (like Ruby
gems, Perl's CPAN, etc.).
One of the problems tackled in 'lots of ways' is dealing
with the fields in an HTTP header. Ken Coar was one of
the early developers of the Apache HTTP server, and has
worked with HTTP headers for years. In this session,
he'll go through *his* approach to dealing with the
vagaries of this common data collection.
SecurityAs web applications become the norm for application delivery mechanisms,
there is more and more demand for managing access control at the
application framework level. As is immediately obvious, managing this
access control becomes an overwhelming overhead for the actual
application, and should be handled by the underlying framework used for
application delivery.
In this presentation I will discuss how the OpenAM authN and AuthZ
layers can be simply and easily integrated into an enterprise
application, allowing fine grained access control to be enforced at the
application layer, while allowing the administration and management of
the policies to be handled by the service provider.
PHPSecurityOWASP Enterprise Security API Toolkits help software developers guard against security-related design and implementation flaws. Because it's an API, it can be easely be add to applications and services to protect themselves from attackers. In this talk, I'll present the project, it's PHP implantation and how to add it to your projects.
SecurityThe OWASP foundation recently published the 2010 version of its reference document describing the top 10 web application security risks.
During this talk, ten intrusion techniques will be shown to the audience, to have a better understanding of the risks described in the OWASP Top 10 2010 document.
Agenda:
- Basic theory on risks, threats and software vulnerabilities
- Presentation of the 10 intrusion techniques
- Best practices when working with the OWASP Top 10 2010
- Discussion, questions
Note: due to the reduced time available, the talk will focus on explaining the intrusion techniques on web applications. Developers interested in working on the defensive coding aspects should also participate in the secure development training.
FrameworksRubyWith the Sinatra's light clean syntax, many web developers have delighted in its its unencumbered approach. However, there is often a need for something a more than what Sinatra provides. Enter Padrino. It aims to offer a set of standard tools usable within Sinatra, which can be picked to exactly suit your requirements. With Padrino, you can currently pick and choose from the following modules:
Generators: Create applications, models, controllers
Routing: URL named routes, named params
Tag & Asset Helpers: Easy to add tags, css, and javascript
Form Helpers: Creation of forms for models
Mailer: Simple delivery support for sending emails
Admin: Built-in admin interface (akin to Django)
Localization: Full support for I18n
Caching: Support for fragment & page caching with a variety of backing stores
This talk will provide a whirlwind tour of these features. We will also compare the speed and memory usage of Padrino vs other frameworks. Have it your own way!
Data PersistanceInvite speakers representing MongoDB, Cassandra, CouchDB.
My Role: Moderator.
I don't like completely open panels for audience - so this will be 1/2 scripted. 1hr session with initial questions:
- Who are you, and which database do you represent?
- Why should we use your database?
- When should we not use your database?
- How does your database scale? (Sharding type, etc).
- What is your approach to CAP theorem? (aka "Choose any two")
PythonHow to make software available to others? How to get software made by others? Currently, there is more than one way to do it in Python. In this talk, we’ll walk through the dark history of Python packaging to get a clear picture of the current situation and a good idea of what’s coming.
Outline:
* A short history of packaging
— distutils: origins, design and problems
— setuptools: improvements, new problems and drama
* The present situation
— A myriad of new tools
- Zoom on Web deployment: pip, virtualenv, buildout
- Python 3 support
— Standardization efforts
- Python Enhancement Proposals
- Implementing the standards: distutils2
* Perspectives
— The three faces of distutils2
- How to add d2 support to your software without losing distutils/setuptools compatibility
- How to use d2 to get software
- How to use d2 as a support library in your packaging tools
— Timeline, TODOs and contribution: we want you!
Scaling / PerformanceFront-endWith the increasingly rich client-side interactions on websites these days, performance in the browser has become a critical topic. From the new W3C Web Performance APIs that allow you to profile your pages in detail, to the optimization of CSS selectors and the ways to keep your DOM reflows under control, countless techniques exist to improve the speed of your website after the backend has done its job.
PHPMobileAlthough PHP is traditionally a web-only language, that doesn't mean that it
can only be used for web applications. This presentation will show you how
PHP can be used on embedded devices—running on Linux. As an example I will use
a phone and a Kindle. Getting PHP to run is a first step, but after that you
need to get applications on it as well. I will cover some basics for GUI
design (with directfb and PHP-GTK), but also cover issues that come along when
you have to take care of low-memory, low-bandwidth situations as well as
restrictions with input methods. In those cases solutions need to be picked
to make the whole experience on embedded devices usable.
AccessibilityLes standards d’accessibilité introduisent des préoccupations qui bouleversent les habitudes de développement au sein des organisations qui entreprennent de les mettre en œuvre. Ces standards remettent en question des pratiques souvent jugées optimales et éprouvées, ce qui entraîne d'importants changements, susceptibles de mettre en péril la rentabilité d'une production de site Web. Dans le cadre de cette présentation, le conférencier expliquera en quoi les standards gouvernementaux d'accessibilité SGQRI 008 introduisent une pratique qui, contrairement aux autres pratiques liées au Web, est d'abord et avant tout caractérisée par sa transversalité. Puisque les principes de l'accessibilité touchent tous les intervenants d'une chaîne de production, il importe d'éviter certains pièges et de répartir l'ensemble de ces responsabilités entre les différents spécialistes afin d'en assurer la réussite dans toutes les phases d'une production.
Apparu en 2007 sous la forme d'une extension PECL, le format PHAR permet d'encapsuler une application PHP complète dans un fichier unique pour une installation, une configuration et une utilisation plus aisée et efficace.
Pourtant, malgré le fait que PHAR soit intégré nativement dans PHP depuis sa version 5.3, il est encore rarement utilisé alors qu'il dispose de nombreux atouts.
Au cours de cette conférence, je tenterais donc de faire toute la lumière sur ce format méconnu, en décrivant sa mise en œuvre dans le cadre d'un cas réel d'utilisation.
Git is hard; at least if you listen to the naysayers. Actually, you need to know a handful of commands to navigate Git successfully. This talk demystifies Git. Once we're finished you'll know everything you need to start using Git in your day-to-day projects and collaboratively with other developers.
PHPPHP expose dans son espace utilisateur un large éventail de classes et de fonctions regroupées sous forme d'extensions (mysql, pdo, json, date, etc.). Il existe deux principales raisons qui généralement poussent un développeur à écrire une extension : permettre l'utilisation d'une libraire externe ou la performance. Toutefois, un tel développement peut s'avérer difficile dû au manque de documentation sur le sujet. Nous aborderons différents concepts de base sur le fonctionnement interne de PHP. Puis, nous discuterons de certains outils (GDB, Valgrind, etc.) et des ressources (Opengrok, Mailing list) qui vous permettrons de mieux comprendre le fonctionnement des extensions.
JavaUsing a combination of Java, JMS, and Flash, data can be visualized in real time on a client. Real-time visualizations can be in dashboards, heat maps, charts, and numerous other interactive controls. Intended for developers looking to create applications with real-time data visualizations, this session will show how to set up a system that pushes real-time messages to a client from a Java EE server and how to create a rich internet application that renders the data. It will demonstrate how to:
- Configure a Java EE system that can push JMS messages to a client in
real-time or near real-time
- Build a Flash client application that renders data from the server
- Connect a client to messages using HTTP Streaming and HTTP Long Polling
We'll also discover how to enable in few minutes a text chat application, a video chat app, and a even a shared whiteboard application.
Real-time experiences will become the next generation of web applications.
RubyThe Ruby community is well known for its agility and facility for rapid prototyping. Many Rubyists attribute these qualities to features of Ruby itself. We'll talk about how you can rely on the best parts of Ruby to reach your goals relentlessly and efficiently.
CMSAccessibilityTYPO3 est le SGC libre le plus utilisé au gouvernement du Québec avec plus d'une centaine d'organismes et ministères qui l'ont adopté. Aujourd'hui le respect des standards n'est plus un défi, mais une étape essentielle à respecter. Que vous soyez déjà webmestre d'un site Web ou futur utilisateur d'un CMS (TYPO3, Drupal, Wordpress ...) cette conférence vous permettra de prendre connaissance des travaux nécessaires pour rendre conforme votre site Web aux normes d'accessibilité "SGQRI 008-01". À travers 20 étapes indispensables, nous présenterons les configurations utiles et automatismes à mettre en place afin d'offrir des sites au code HTML accessibles avec plusieurs CMS dont TYPO3.
Scaling / PerformanceEver wonder what it is like to scale from a single server to an enterprise level cluster? This talk will go over several components into scaling your web platform.
This talk will go over load balancing, web servers, databases, caching, job servers (message queues), session handling, front-end performance and more.
At the end of this talk, you should have the knowledge to go and put together your own cluster and highly available; highly scalable environment in no time.
Scaling / PerformanceIn this talk I'll discuss several messaging scenarios that can help scale our web applications. From using RabbitMQ as a simple "queue server" to run background tasks to implementing RPC over AMQP. See how message multicast can simplify the logic of our apps to make them scalable and fault tolerant. We'll learn how to do load balancing with RabbitMQ and how real time logging and monitoring has never been easier.
The following messaging patterns will be presented:
- Fire and Forget
- Message multicast
- RPC over RabbitMQ
- Parallel Processing
- Pub/Sub
All this theory is backed by more than one year of running RabbitMQ in production for a PHP5 based deployment that has proved to simplify our code while increasing our productivity and the website reliability.
SecurityBeing the good developer that you are, all the applications you create are being designed with security in mind. So of course you are following all the known best practices, you know you did your job well. You did, didn't you? In this session we will take a look at various common security myths and why quite many approaches, tutorials and common solutions just don't quite cut it. Find out what your options are to really get the job done and what you might have been missing in your current implementation!
PythonPython has grown to one of the most important programming languages for web applications. Almost everyone uses a framework to create web apps with Python - and Django, which was first published in 2005, is one of the most widely used ones. Beside great features, Django is still hard to use - and this is where Pinax comes into the game. Pinax is a meta-framework for Django which enables to create website even faster, because it contains something like a fixed Django template for almost any type of website users want to built. This session gives an introduction to the concept of Pinax, the installation procedure and how a new projects can be created. It includes a detailed demo-app.
Web ServicesThe Apache Solr search engine has become almost the default choice for adding superior search capabilities to a web application. In this talk we will go beyond the basics of Solr, and look up at what it offers and how to set it up robustly and properly for production use. We will plan and implement a document model in Solr, and look at how to index different document types with Solr Cell or index data from the web with the Nutch crawler. We will cover options for tuning queries and performance, and examine how best to use more advanced features like faceting, spelling correction and 'more like this'. Solr offers a language agnostic web service, so client examples will be in PHP and Python, but the bulk of the content will be applicable to anyone looking to work well with Solr.
FrameworksJavaMeet Grails, an agile development framework based on Java, Groovy and the Spring framework, designed to bring the simplicity and power of Ruby on Rails to java developers.
Do you need to reuse java libraries? Do your applications need to run in Java containers? With Grails, you can build web applications in seconds, and in a way that always keeps them easy to maintain and evolve, by minimizing the amount of code you need to write, leveraging the power and conciseness of the Groovy programming language and convention over configuration.
This session introduces the concepts of Grails, runs through two example use cases (build a new web application and modify an existing one), and finishes with lessons learned over a few years of using this framework to develop production applications.
JavaGarbage collection tuning in Java has long been challenging for Java developers. This presentation illustrates a step-by-step process for tuning the HotSpot JVM garbage collectors for an application. The presentation includes choosing an appropriate garbage collector based on the application's requirements, choosing / refining Java heap sizes and tuning a garbage collector for throughput or responsiveness.
Project Management / AgileThis talk introduces the various strategies you can use to ensure that developing and releasing new features to a live website is stress-free.
Firstly we will look at how organising your source code into branches can provide confidence and allow for features to go-live in any order. We will the consider the mechanics of deploying a new version of the website to the server, ensuring that we can repeat the process the same way every time. Finally we will look at how to roll back a deployment easily and quickly when something goes wrong.
SEOSEO is an essential part of making sure that your websites are found and fully indexed by Google. In this session, we will examine the technical factors that influence how search engines index a website, and audience members will learn how to optimize both websites and CMS for search engine visibility.
Specifically, this session will address issues such as:
• Proper implementation of various HTML elements,
• Effective use of AJAX and Flash,
• Use of redirections (301 vs 302),
• Proper URL structuring and rewriting,
• Duplicate content and the canonical tag
PythonTesting / QAL'Agilité considère les tests comme vital, préconisant de les coder avant (Test Driven Development) et même une couverture de code de 100%. Mais que signifie un projet bien testé ? Est ce qu'une couverture de code de 100% nous garantie une fiabilité maximale ? Doit on privilégier les tests unitaires ou fonctionnels ? Comemnt tester une IHM ou simuler une base de données ?
Cette session est un tour d'horizon des techniques de tests. Nous passerons en revue les tests unitaires, fonctionnels, de non régression, de bout en bout et enfin les tests «boite noire». Différentes stratégies de test seront abordées, selon l'importance du projet et les objectifs visés.
Nous terminerons par un retour d'expérience sur un projet de 120 KLOC chez un éditeur logiciel.
Testing / QAJavaTestatoo est un ensemble de librairies qui facilitent l'écriture de tests d'interface graphique.
L'objectif principal de Testatoo est de mettre en pratique une approche TDD au niveau de la
création des interfaces graphiques.
Les créateurs de Testatoo pensent qu'un test de UI doit être écrit avant son implémentation et qu'il doit être :
- écrit dans un format lisible
- écrit dans un language de programmation proche du développeur
- le plus abstrait possible pour mieux resister aux changements des besoins et des technologies.
Nous verrons au travers d'exemples concrets comment un même jeu de tests permet d'adresser des interfaces graphiques dans différentes technologies (Flex, Html4/4, ExtJs).
Developing and managing an open source project is both fun and frustrating. We contribute to these projects for a variety of reasons, but in the end, successful projects have either funding provided or a successful business model in place to support the project.
I'll discuss business models that work, and ones that don't.
This session will be somewhat interactive, drawing on the audience for experiences, and calling for comments on the business strategies that I will talk about.
If you are a successful open source business manager, or an upcoming open source project manager that wants to drive a money making business out of your open source project, this session should be entertaining and helpful.
Examples and discussions will be drawn from previous experiences, both good and bad.
Project Management / AgileThe methodologists seem to rise and I suppose they are somewhat right. From the early days when we used things like the V-Model or the Waterfall a lot of things happened in Development Space that tried to:
- grow the rate of success in projects
- use wisdom of the crowds
- simply result in more enjoyable jobs
- get stuff delivered bugfree
This talk will try to give a brief introduction to agile by looking at:
- History of Agile
- Extreme programming
- Scrum
- Kanban
- Innovation Games
The aim is to provide basic information for the agile newbie, fill gaps on the map that you might have if you use one of the methods named or another one left out and leaves lots of space for listener feedback. Agile is not a fixed concept, it's a idea in development for more than a decade and still there is lot of space for improvements.
Isn’t it enough to see that software development is beautiful without having to believe that there are fairies at the bottom of it too? NO!
PHPTesting / QAA lot of people using PHPUnit for testing their source code. While I was observing my team I recognized most of them are only using the standard assertions like 'assertEquals()' or 'assertTrue()' and are complaining about how hard it is to test the code even when the tests are written first. This talk is about all the stuff not used on a daily basis. It shows you some nice features of PHPUnit and how to use them for your benefit.
PythonHang on tight on March 9-10-or-11th 2010, as we're going to use Pyramid/Pylons to build a real-time WebSockets application using the Gevent lightweight-threading library, allowing thousands of simultaneous users to connect to one single process. To this end, we'll demo RabbitMQ and tie it to our application.
We will also explore Pyramid features new to Pylons users, e.g. URL traversal.
Finally, we'll show off some MongoDB integration, along with some FFmpeg video extraction/rendering.
All of this, in the clean, elegant, first-class object-oriented Python language (plus some HTML5 goodies, obviously).
Warning: this should be a highly dynamic presentation, make sure you're awake. And yes, you shall have dark chocolate this year too.
NOTE: you might want to see Blaise Laflamme's presentation of Pyramid beforehand!
FrameworksPHPFirst, I will give a very short background on Solar: when it started and why, what informs its architecture, and what other frameworks take hints from Solar. Next, I will present an overview of major concepts in Solar: everything is a library, the unified constructor, unified configuration, inheritance fallbacks (including inherited configuration and localization), the unified factory and adapter systems, the lazy-loading registry, and the dependency-injection system. Next, I outline the dynamic dispatch cycle, give an overview of how it works in Solar (bootstrap, front controller, page controller, action method, and view) and how it compares to other framework dispatch cycles. From there I will move on to the SQL system, including the MysqlReplicated adapter, and build on that to give an overview of the ORM system. The ORM system itself is another major section of the talk, covering models, collection, records, automated filters, automated form generation, and more. After discussing t
MobileThe rise of Mobile devices in North America starts to catch up with the rest of the world. Information is being accessed and interact with in many circumstances. We will give you an overview of what it means to think "Mobile First" when developing a Web site. What are the tricks in HTTP, CSS (@viewport, etc) and markup? What are the caveats you should avoid? How to use remote debugging features?
SecurityParticipants who attended the Confoo 2010 security track learned several activities for reducing risks in web applications.
This talk entirely focuses on threat analysis & modeling (TAM) for developers and architects. TAM is a security activity conducted early in the development lifecycle, when we only have ideas, early design specifications and no source code is produced yet.
If conducted correctly, TAM can be highly cost-effective as all changes in the project are applied before the coding phase.
Participants will learn the basics of TAM:
- Understanding major threats in web applications
- Drawing data-flow-diagrams the fast and efficient way
- Locating critical assets in the application, and their security requirements
- Identifying threats and appropriate countermeasures
- Modifying the project design and specifications accordingly
The talk is "hands-on": participants will be working on a model based on a famous multi-million users web application.
CMSTiki Wiki CMS Groupware is a full-featured, web-based, multilingual (40+ languages), tightly integrated, all-in-one Wiki+CMS+Groupware, Free Source Software (GNU/LGPL), using PHP, MySQL, Zend Framework, jQuery and Smarty.
Tiki is the Open Source Web Application with the most built-in features. Yet, the appetite for features is insatiable and some things are just not possible (ex.: video editing in PHP)
Thus is born Tiki Suite, an integrated suite of open source collaboration & publishing tools for small & medium-sized organizations, featuring Wiki + CMS + Groupware + Commerce + Document Management + CRM + Web conferencing + Video editing + E-learning, etc.
Tiki Suite integrates other open source apps such as OpenLDAP, BigBlueButton Chat/Voice/video/Screensharing/Whiteboard, Kaltura Collaborative video editing, Clipperz online password manager password manager, Piwik web analytics and many others.
Related links:
http://dev.tiki.org/Suite
http://tiki.org/Model
Scaling / PerformancePerformance is the white unicorn of this generation of web applications. The difference between converting a user and increasing your bounce rate can come down to a matter of milliseconds. In this talk, we'll examine tools and applications that can help the responsiveness of your web application from presentation to back end services.
We'll examine common ways to identify problems through tools including Google Pagespeed and YSlow, ways to change out of the box server deployments into speed demons, and best practices for caching including content and application layer caches that can reduce round trips from your clients to the server and from your application to the database.
The talk is somewhat focused on LAMP stack deployments, however caching and best practices can be used by applications developed in any language.
System AdministrationTracing is a particular form of logging which collect information about frequent, low level events with a low impact on the mesured system. Each events contains various parameters and a precise timestamp.
This talk will present the LTTng project and demonstrate its use to analyse latency and other problems in a typical Linux webserver context. LTTng provides a Linux Kernel tracer and a userspace tracer (UST) with the corresponding control and visualisation tools. The kernel tracer can log information about a wide range of kernel events (Drivers, virtual memory, disk block i/o, scheduling, etc). The userspace tracer allow the instrumentation of any application with a simple API and the easy execution of the program to collect those events in a trace file.
You will learn how to instrument your program with examples in a web and database server, how to collect trace in several applications and in the kernel and what kind of analysis you can do with the collected information.
Scaling / PerformanceVarnish is a reverse caching proxy that is steadily becoming the default standard in enterprise environments. A lot of people know what Varnish is and what it can do out of the box, but there’s plenty more it can do with the necessary tweaking/tuning. During my talk I will show you which tools it comes with and how it can be configured/programmed to serve the most common use cases.
Web ServicesFront-endJavascriptIf your app provides or consumes and API, you need a smart tool for handling
HTTP. We built Webshell for just that. Sure, cURL is available everywhere,
but you need something better, faster, stronger. Webshell speaks your
language (JavaScript) and will change the way you debug HTTP. This talk will
give you an overview, and show you some specific examples of how Webshell
saves me hours of frustration every week.
Scaling / PerformancePerformance is not a single dimensional problem - it is at the minimum three dimensions:
- How long a task takes to complete (response time).
- How many tasks are you completing per unit of time (throughput).
- What is the maximum number of tasks you can complete (capacity).
Understanding what you are measuring is key for successful optimization. For example - many developers make the mistake of optimizing for 'throughput', or looking at system 'capacity' number (loadavg, util %). What they don't realize is as throughput increases - response time goes up (think of this as the same traffic-jam effect from many cars going down a highway).
Cloud Computing.NETMicrosoft Sync Framework is a comprehensive synchronization platform that enables collaboration and offline access for applications, services and devices. It features technologies and tools that enable roaming, sharing, and taking data offline. Using Microsoft Sync Framework, developers can build sync ecosystems that integrate any application, with any data from any store using any protocol over any network.
In this presentation I will introduce you to this new platform and we will take a look at how it's works and how you can integrate this in your applications.
Data PersistanceWith the released of SQL Server 2008 R2 new opportunity for productivity just surfaces. Microsoft is introducing new ways to do Self-Service BI and Reporting Services is playing a big role in this. R2 is providing new ways to empower your users and increase productivity. This session is about what new in Reporting Services and the new Report Builder 3.0. Come and see why it’s important you know what new in SSRS R2.
Scaling / PerformanceThis talk will examine in detail the choices and tradeoffs made in implementing several successive versions of the home timeline, which is the core of the twitter web service.
PHP... and how this should affect your code. Pretty much every PHP framework is based on MVC. We will explore what MVC was originally meant to be and how it is used (and abused) in web applications these days. We will find out where the model hides, and how to organize an application's business logic and clearly separate concerns. As a bonus, unit testing will become a lot easier.
CMSWordPress est de plus en plus utilisé comme système de gestion de contenu (CMS), mais est-il prêt à aller jouer dans la cour des Ruby On Rails, Django et Symfony de ce monde? Venez découvrir ce qui arrive quand on lance WordPress dans le monde du développement d'applications web.
PHPCloud ComputingAs a PHP developer building web applications is besides making a living a lot of fun too, especially when you can deploy your apps to any kind of environment and on any platform. In this session I take a non-standard PHP application (based on Zend Framework) and deploy it to a bare metal environment running LAMP, Windows 2008 Server with IIS7 and to cloud instances like Azure and Amazon.
The goal is to provide information on how to deploy to these various environments manual and automatic, but also to show it doesn't really matter anymore what the targeted platform is, as long the apps are written in PHP.
RubyYou've seen all the Ruby gems available, and heard a
lot about them. Where do they come from? How do you
create one? And why would you want to?
There is no One True Way to create a gem, and different people
will give you different recommendations.
Using his own code for examples, Ken Coar will walk through
one of the many paths available from 'why?' to 'ta-daah!'
describing what was done, why, and what pitfalls he remembers
encountering. It worked for him; it might work for
you too.
PHPThis session teaches you how to detect and debug PHP scripts with the free
open source tool Xdebug, which is an extension to PHP. The first part will
quickly show how to get started with Xdebug. The second part of the session
will cover detecting problems in your scripts by showing how Xdebug provides
debugging aides in the form of stack/function traces, dumps of variables,
modified PHP functions. In the last part I will show the remote debugger
capabilities of Xdebug with different IDEs, where you can: set breakpoints on
functions, methods and file/line combinations and evaluating error messages.
On top of this you will also see how you can use Xdebug's profiler to find
bottlenecks in your applications. I will be focussing on the least known
features of Xdebug.
Testing / QAUnit Tests help reducing the cost and risk of any individual change smaller. But how do you know that your tests are not lying and give you a false sense of confidence?
In this session you will learn how to automatically detect problems in your test code, so called Test Smells, and how to avoid them. You will also learn how to write effective tests that will pay you back with information.
FrameworksPHPWith Zend Framework 2 in active development and coming 'soon', this session will look at the current state of ZF1, the goals of ZF2 along with what's new and what's different with ZF2 compared to ZF1.
the new ways that components are referenced now that namespaces exist along with a look at the new features of individual components that make development easier, with code samples to explain how to do it the new way.
Montreal 2011 sponsored by
Cookie Consent
To provide the best experiences, the usage of cookies are necessary. Some are essential for the proper functioning of the site, while others help us better cater to your interests.