Devops for Growth
107.5K views | +0 today
Follow
Devops for Growth
For Product Owners/Product Managers and Scrum Teams: Growth Hacking, Devops, Agile, Lean for IT, Lean Startup, customer centric, software quality...
Curated by Mickael Ruau
Your new post is loading...
Your new post is loading...

Popular Tags

Current selected tag: 'PHP'. Clear
Scooped by Mickael Ruau
Scoop.it!

List of JVM languages - Wikipedia

List of JVM languages - Wikipedia

This list of JVM Languages comprises notable computer programming languages that are used to produce computer software that runs on the Java virtual machine (JVM). Some of these languages are interpreted by a Java program, and some are compiled to Java bytecode and JIT-compiled during execution as regular Java programs to improve performance.

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Références de l’article « Et si on backdoorait /dev/urandom ? » publié dans GNU/Linux Magazine Hors-série n°84 | Le blog de GNU/Linux Magazine

Références de l’article « Et si on backdoorait /dev/urandom ? » publié dans GNU/Linux Magazine Hors-série n°84 | Le blog de GNU/Linux Magazine | Devops for Growth | Scoop.it
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Analyse statique en PHP avec PhpMetrics

Analyse statique en PHP avec PhpMetrics | Devops for Growth | Scoop.it
PhpMetrics est un outil d'analyse statique de code ; c'est-à-dire qu'il lit un code source pour en extraire des informations, notamment sur la maintenabilité, la complexité, la cohésion…

À la différence d'autres outils, comme l'excellent PhpDepend, ou la suite d'outils référencée PHPQATools (PhpLoc, PhpDcd, etc.), PhpMetrics se focalise sur des critères de qualité d'un code source : indice de maintenabilité, effort de compréhension ou encore difficulté de lecture du code… Il fournit un très grand nombre d'indicateurs.

L'un des premiers objectifs de cet outil est également de rendre lisibles les rapports d'analyse, même pour les débutants.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

PHP Security: Default Vulnerabilities, Security Omissions and Framing Programmers? — Survive The Deep End: PHP Security :: v1.0a1

PHP Security: Default Vulnerabilities, Security Omissions and Framing Programmers? — Survive The Deep End: PHP Security :: v1.0a1 | Devops for Growth | Scoop.it

Secure By Design is a simple concept in the security world where software is designed from the ground up to be as secure as possible regardless of whether or not it imposes a disadvantage to the end user.


The purpose of this principle is to ensure that users who are not security experts can use the software without necessarily being obliged to jump through hoops to learn how to secure their usage or, much worse, being tempted into ignoring security concerns which expose unaddressed security vulnerabilities due to ignorance, inexperience or laziness.

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Continuous Integration with PHP-CI

Continuous Integration with PHP-CI | Devops for Growth | Scoop.it
Peter Nijssen reviews PHP-CI, a new Continuous Integration tool focusing on PHP projects exclusively. See how it stacks up against the rest!
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Generating PHP Documentation with Sami

Generating PHP Documentation with Sami | Devops for Growth | Scoop.it

Younes Rafie demonstrates using Sami, the documentation generator, to extract docs from your code's docblocks - even across several tagged versions

Mickael Ruau's insight:

There are many API documentation generators out there, but one of the best is phpDocumentor. One of the main reasons I like Sami, however, is the ability to use your versioned documentation on Github, and you can also use Twig for generating the templates.

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

La qualité au delà du code - Forum PHP 2012

La qualité au-delà du code Forum PHP 2012 1
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Installing Phing Globally with Phar

Installing Phing Globally with Phar | Devops for Growth | Scoop.it
Phing is a build system that allows you to use one command to perform a whole group of actions. For example, with one command you could run code and unit tests, and if the tests pass, automatically upload the new code to your servers and make any neccessary database changes.

Without a tool like Phing, your workflow will be repetitive and time-consuming because you’ll need to go through each step manually.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Free eyeOS Applications - eyeOS-Apps.org

Free eyeOS Applications - eyeOS-Apps.org | Devops for Growth | Scoop.it
Free eyeOS Applications - eyeOS-Apps.org Community Portal for Applications eyeOS Apps Linux Multimedia Graphic Development Utilities
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Building and deploying PHP applications with Phing

Slides for my talk at the PHP UK Conference 2012. Some of the examples discussed during the talk can be found at http://www.touchdownconsulting.nl/conferences/…;
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

SensioLabsInsight

SensioLabsInsight | Devops for Growth | Scoop.it
SensioLabsInsight is a quality assurance tool that analyzes your source code to find problems that degrade the overall quality of your projects. It can analyze any application developed with PHP, but it's specially designed to perform advanced analysis of Symfony2 applications, Laravel websites and Drupal modules.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Umple: Merging Modeling with Programming

Umple: Merging Modeling with Programming | Devops for Growth | Scoop.it

Umple is a modeling tool and programming language family to enable what we call Model-Oriented Programming. It adds abstractions such as Associations, Attributes and State Machines derived from UML to object-oriented programming languages such as Java, C++, PHP and Ruby. Umple can also be used to create UML class and state diagrams textually.

Mickael Ruau's insight:


Umple is an open source project, so details will evolve. However, it is ready to be used for real systems. In fact the Umple compiler itself is written in Umple. Any Java, C++ or PHP project could use Umple. We have found the resulting code to be more readable and have many fewer lines. This is because Umple means you can avoid having to code a lot of 'boilerplate' code that would be needed to implement associations and attributes, a system based on Umple should also be less bug-prone.

Umple has also been found to help students learn UML faster in the classroom.

Umple works online, as an Eclipse plugin, and as a stand-alone command-line Jar. For further information and downloads, see the left margin.

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Practical PHP Testing Patterns

Practical PHP Testing Patterns | Devops for Growth | Scoop.it


PHP implementations of the xUnit testing patterns by Gerard Meszaros.

Practical PHP Testing Patterns: Behavior Verification
Practical PHP Testing Patterns: Recorded Test
Practical PHP Testing Patterns: Scripted Test
Practical PHP Testing Patterns: Data-Driven Test
Practical PHP Testing Patterns: Test Automation Framework
Practical PHP Testing Patterns: Minimal Fixture
Practical PHP Testing Patterns: Standard Fixture
Practical PHP Testing Patterns: Fresh Fixture
Practical PHP Testing Patterns: Shared Fixture
Practical PHP Testing Patterns: Back Door Manipulation
Practical PHP Testing Patterns: Layer Test
Practical PHP Testing Patterns: Four Phase Test
Practical PHP Testing Patterns: Assertion Method
Practical PHP Testing Patterns: Test Method
Practical PHP Testing Patterns: Assertion Message
Practical PHP Testing Patterns: Testcase Class
Practical PHP Testing Patterns: Test Runner
Practical PHP Testing Patterns: Testcase Object
Practical PHP Testing Patterns: Test Suite
Practical PHP Testing Patterns: Test Discovery
Practical PHP Testing Patterns: Inline Setup
Practical PHP Testing Patterns: Delegated Setup
Practical PHP Testing Patterns: Creation Method
Practical PHP Testing Patterns: Implicit Setup
Practical PHP Testing Patterns: Prebuilt Fixture
Practical PHP Testing Patterns: Lazy Setup
Practical PHP Testing Patterns: Suite Fixture Setup
Practical PHP Testing Patterns: Setup Decorator
Practical PHP Testing Patterns: Chained Tests
Practical PHP Testing Patterns: State Verification
Practical PHP Testing Patterns: Custom Assertion
Practical PHP Testing Patterns: Delta Assertion
Practical PHP Testing Patterns: Guard Assertion
Practical PHP Testing Patterns: Unfinished Test Assertion
Practical PHP Testing Patterns: Garbage-Collected Teardown
Practical PHP Testing Patterns: Automated Teardown
Practical PHP Testing Patterns: In-Line Teardown
Practical PHP Testing Patterns: Implicit Teardown
Practical PHP Testing Patterns: Test Double
Practical PHP Testing Patterns: Test Stub
Practical PHP Testing Patterns: Test Spy
Practical PHP Testing Patterns: Mock Object
Practical PHP Testing Patterns: Fake Object
Practical PHP Testing Patterns: Configurable Test Double
Practical PHP Testing Patterns: Hard-Coded Test Double
Practical PHP Testing Patterns: Test-Specific Subclass
Practical PHP Testing Patterns: Named Test Suite
Practical PHP Testing Patterns: Test Utility Method
Practical PHP Testing Patterns: Parameterized Test
Practical PHP Testing Patterns: Testcase Class Per Class
Practical PHP Testing Patterns: Testcase Class per Fixture
Practical PHP Testing Patterns: Testcase Superclass
Practical PHP Testing Patterns: Testcase Class per Feature
Practical PHP Testing Patterns: Test Helper
Practical PHP Testing Patterns: Database Sandbox
Practical PHP Testing Patterns: Stored Procedure Test
Practical PHP Testing Patterns: Table Truncation Teardown
Practical PHP Testing Patterns: Dependency Injection
Practical PHP Testing Patterns: Transaction Rollback Teardown
Practical PHP Testing Patterns: Dependency Lookup
Practical PHP Testing Patterns: Humble Object
Practical PHP Testing Patterns: Test Hook
Practical PHP Testing Patterns: Literal Value
Practical PHP Testing Patterns: Derived Value
Practical PHP Testing Patterns: Generated Value
Practical PHP Testing Patterns: Dummy Object

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Practical PHP refactoring

Practical PHP refactoring | Devops for Growth | Scoop.it
PHP examples for Martin Fowler's Refactoring book.

Practical PHP Refactoring: Inline Temp
Practical PHP Refactoring: Move Method
Practical PHP Refactoring: Move Field
Practical PHP Refactoring: Extract Class
Practical PHP Refactoring: Hide Delegate
Practical PHP Refactoring: Inline Class
Practical PHP Refactoring: Remove Middle Man
Practical PHP Refactoring: Introduce Foreign Method
Practical PHP Refactoring: Introduce Local Extension
Practical PHP Refactoring: Self Encapsulate Field
Practical PHP Refactoring: Replace Data Value with Object
Practical PHP Refactoring: Change Value to Reference
Practical PHP Refactoring: Change Reference to Value
Practical PHP Refactoring: Replace Array with Object
Practical PHP Refactoring: Duplicate Observed Data
Practical PHP Refactoring: Change Unidirectional Association to Bidirectional
Practical PHP Refactoring: Change Bidirectional Association to Unidirectional
Practical PHP Refactoring: Replace Magic Number with Symbolic Constant
Practical PHP Refactoring: Encapsulate Field
Practical PHP Refactoring: Encapsulate Collection
Practical PHP Refactoring: Replace Type Code with Class
Practical PHP Refactoring: Replace Type Code with Subclasses
Practical PHP Refactoring: Replace Type Code with State or Strategy
Practical PHP Refactoring: Replace Subclass with Fields
Practical PHP Refactoring: Decompose Conditional
Practical PHP Refactoring: Consolidate Conditional Expression
Practical PHP Refactoring: Consolidate Duplicate Conditional Fragments
Practical PHP Refactoring: Remove Control Flag
Practical PHP Refactoring: Replace Nested Conditionals with Guard Clauses
Practical PHP Refactoring: Replace Conditional with Polymorphism
Practical PHP Refactoring: Introduce Null Object
Practical PHP Refactoring: Introduce Assertion
Practical PHP Refactoring: Rename Method
Practical PHP Refactoring: Add Parameter
Practical PHP Refactoring: Remove Parameter
Practical PHP Refactoring: Separate Query from Modifier
Practical PHP Refactoring: Parameterize Method
Practical PHP Refactoring: Replace Parameter with Explicit Methods
Practical PHP Refactoring: Preserve Whole Object
Practical PHP Refactoring: Replace Parameter with Method
Practical PHP Refactoring: Introduce Parameter Object
Practical PHP Refactoring: Hide Method
Practical PHP Refactoring: Replace Constructor with Factory Method
Practical PHP Refactoring: Encapsulate Downcast (and Wrapping)
Practical PHP Refactoring: Remove Setting Method
Practical PHP Refactoring: Replace Exception with Test
Practical PHP Refactoring: Pull Up Field
Practical PHP Refactoring: Pull Up Method
Practical PHP Refactoring: Replace Error Code with Exception
Practical PHP Refactoring: Pull Up Constructor Body
Practical PHP Refactoring: Push Down Method
Practical PHP Refactoring: Push Down Field
Practical PHP Refactoring: Extract Subclass
Practical PHP Refactoring: Replace Record with Data Class
Practical PHP Refactoring: Extract Superclass
Practical PHP Refactoring: Extract Interface
Practical PHP Refactoring: Collapse Hierarchy
Practical PHP Refactoring: Form Template Method
Practical PHP Refactoring: Replace Inheritance with Delegation
Practical PHP Refactoring: Replace Delegation with Inheritance
Practical PHP Refactoring: Tease Apart Inheritance
Practical PHP Refactoring: Convert Procedural Design to Objects
Practical PHP Refactoring: Separate Domain from Presentation
Practical PHP Refactoring: Extract Hierarchy
Practical PHP Refactoring: Extract Method
Practical PHP Refactoring: Inline Method
Practical PHP Refactoring: Replace Temp with Query
Practical PHP Refactoring: Introduce Explaining Variable
Practical PHP Refactoring: Split Temporary Variable
Practical PHP Refactoring: Remove Assignments to Parameters
Practical PHP Refactoring: Replace Method with Method Object
Practical PHP Refactoring: Substitute Algorithm
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Slim, API, Framework – Les bonnes pratiques pour créer une API avec le micro-framework PHP Slim

Slim, API, Framework – Les bonnes pratiques pour créer une API avec le micro-framework PHP Slim | Devops for Growth | Scoop.it
Il s’agit de comprendre rapidement comment concevoir puis de coder « grosses mailles » une API. Les objectifs de cette expérience étaient les suivants : Découvrir les pr…
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Supercharge Continuous Delivery in Jenkins with the Workflow Plugin

Supercharge Continuous Delivery in Jenkins with the Workflow Plugin | Devops for Growth | Scoop.it
Peter Nijssen takes a look at the new Workflow plugin for Jenkins, which makes continuous delivery much more streamlined.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

More Useful Jenkins Plugins for PHP Projects

More Useful Jenkins Plugins for PHP Projects | Devops for Growth | Scoop.it
Peter Nijssen installs CSSLint, JSHint and Task Scanner into Jenkins, helping you automate the scanning of your PHP project even further.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de c…

De nos jours de plus en plus d'entreprises ne jurent que par les tests unitaires. Faire du test, faire du test, faire du test ! “Une application n'est pérenne …
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Réplication de sessions PHP d'une application distribuée (cluster PHP) par un filesystem NFS - Le blog des experts IT

Réplication de sessions PHP d'une application distribuée (cluster PHP) par un filesystem NFS - Le blog des experts IT | Devops for Growth | Scoop.it
L'objectif de cet article est de montrer comment correctement répliquer des sessions PHP dans une application PHP distribuée entre n noeud.
Mickael Ruau's insight:

Dans le cas ou vous avez une application PHP répliquée sur deux ou plus serveurs d’un cluster avec en amont un load balancer (NGINX par exemple) qui redistribue la charge de manière uniforme sur les noeuds (serveur, ou VM), vous pouvez avoir des problèmes pour répliquer les sessions PHP.

Le problème est que lorsque vous créé une session en PHP, PHP crée un fichier de la forme sess_******. Ce fichier sert de stockage de session, malheureusement si vous avez plusieurs serveurs, ce fichier n’est pas répliqué entre les noeuds du cluster.

Par exemple, lors d’un formulaire de connexion si vous stockez dans la session de l’utilisation des informations, lors de la réactualisation de la page, il se peut et il est fort probable que votre loadbalancer vous envoi sur un autre noeud ou ne se trouve pas votre session, le traitement ne fonctionne plus car PHP ne retrouve plus les variables de session.

Comment résoudre le problème? 

Une solution efficace si votre système n’est pas trop chargé est de partager un répertoire entre vos différents noeuds du cluster et ainsi de répliquer les sessions PHP (fichier sess_****).

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Lucid Desktop - Web Desktop and WebOS - Open Source

Lucid Desktop - Web Desktop and WebOS - Open Source | Devops for Growth | Scoop.it
Lucid is a free, open source web desktop, or webOS that lets you:

Access your media, office documents, and other files anywhere
Stay up to date with Twitter, RSS feeds, and what's happening on the web
Create great web applications in ridiculously short amounts of time
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

eyeOS — Wikipédia

eyeOS - Wikipédia

eyeOS est un webOS, environnement de bureau de type cloud computing, basé sur une interface Web, libre jusqu'à la version 2.5 (sous licence AGPL v3). En 2005, deux jeunes catalans Pau García-Milà et Marc Cercós (ils avaient alors 17 ans) initient le projet depuis leur village d' Olesa de Montserrat (Baix Llobregat).

Mickael Ruau's insight:

eyeOS est écrit en PHP, un langage de script libre et utilise JavaScript. On peut ainsi l'installer sur la plupart des systèmes d'exploitation existants en tant que serveur à condition de disposer d'un serveur HTTP gérant le PHP (MAMP ou WAMP permettent de réaliser des essais très facilement). Il est également possible d'utiliser un serveur eyeOS existant en se créant simplement un compte.

De plus en plus d'applications sont disponibles pour eyeOS, des applications de bureautique (traitement de texte, tableur, etc.) aux jeux, en passant par des applications internet (messagerie instantanée, mail, etc.). Il est donc possible de réaliser toutes les tâches courantes à partir d'un simple navigateur.

Un répertoire des applications disponibles peut être enrichi par les développeurs qui souhaitent proposer leurs logiciels. Il est très facile d'adapter à eyeOS les applications existantes (JavaScript, applets JavaFlash, etc) en utilisant les bibliothèques mises à disposition par l'équipe eyeOS.

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Atelier de Génie logiciel (AGL) Web PHP et open-source - Web, php, internet, le blog de François Lasselin

Atelier de Génie logiciel (AGL) Web PHP et open-source - Web, php, internet, le blog de François Lasselin | Devops for Growth | Scoop.it
Le paquet pear php_uml permet le reverse engineering en ligne de commande. Il ne s'agit pas d'un outil de modélisation mais simplement d'un utilitaire de reverse engineering. En traitant un code source existant avec cet outil, on obtient un fichier xmi que l'on peut ensuite visualiser et modifier, en théorie, avec n'importe quelle éditeur. Dans la pratique, seul BoUML exploite ce fichier.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

WePloy – WePay’s Deployment Tool

WePloy – WePay’s Deployment Tool | Devops for Growth | Scoop.it

What we need is a deploy mechanism that is smart enough to do the right thing. This could be Capistrano with some scripts. This is what we used at WePay for quite a while and it works ok, but most of our code is in PHP and it made sense to have our deploy system better integrated so I stole the parts of Capistrano I liked, dumped the rest and wrote a PHP-based deploy tool that we now use. I called it Ploy and the Web interface came to be known as WePloy. Dumb name, I know, but as they say, naming things, cache invalidation and off-by-one errors are the two hardest things in computer science.



Mickael Ruau's insight:

Un outil de déploiement en PHP, par Rasmus Lerdorf

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Stratégie de tests: Automatisation de tests fonctionnels de non-regression. PHP-unit Selenium et PHP - Web, php, internet, le blog de François Lasselin

Stratégie de tests: Automatisation de tests fonctionnels de non-regression. PHP-unit Selenium et PHP - Web, php, internet, le blog de François Lasselin | Devops for Growth | Scoop.it

La mise en place d'une plateforme de test et la mise en œuvre de celle-ci est un exercice délicat. Obtenir une plateforme de test multi-navigateur, des scénarios répétés avec des jeux de données différents, éprouver les cas d'erreurs et générer un rapport de test détaillée sont autant de problématiques détaillées dans ce billet.

No comment yet.