Sur la route d'Oxiane digressions diverses

LeBlog OXiane

20 déc
2013

Ajouter un bouton « envoyer un article » dans buddypress

Quand on développe avec WordPress / Buddypress, il y a parfois des fonctionnalités qui ne sont pas natives et qui manquent.
De nombreux plugins permettent de partager des liens, des infos avec les membres, mais il n’existe pas (à ma connaissance) de module qui permet de partager du contenu interne à son site avec des membres du même site (de la communauté buddypress).

Il existe une fonction native qui permet de pré-remplir le nom d’un destinataire de message, elle se situe dans :
/plugins/buddypress/bp-messages/bp-messages-template.php

La fonction qui permet de remplir le contenu du message :

bp_messages_content_value()

Cette fonction expose un filter WordPress :

bp_get_messages_content_value()

Ce filtre permet tout simplement d’injecter des informations dans le message.
Mais le code ne prend en charge que les données en POST :

$content = '';
if ( !empty( $_POST['content'] ) )
	$content = $_POST['content'];
return apply_filters( 'bp_get_messages_content_value', $content );

Pour réaliser un simple bouton de partage d’article, nous n’avons peut-être pas besoin de faire un formulaire pour chaque article.
Nous allons donc étendre ce filtre avec la gestion des données en GET.
Dans notre fichier functions.php (ou autre suivant votre organisation de code) :

function add_message_content($content){
	if ( !empty( $_GET['content'] ) ) {
		return $content . $_GET['content'];
	}
}
add_filter( 'bp_get_messages_content_value', 'add_message_content' );

Et voilà, il ne reste plus qu’à ajouter un lien vers l’écran de composition de message de buddypress dans une boucle d’articles.
Dans un template d’archive par exemple :



   <p><a class="msg" href="<?php echo wp_nonce_url( bp_loggedin_user_domain() . bp_get_messages_slug() .
   '/compose/?r=' . bp_core_get_username( $user_id ). '&content=' . get_permalink() ); ?>">
   <?php echo __( 'Send'); ?></a></p>


Le paramètre content peut être un peu enrichi, mais il va falloir surveiller la longueur de la query string !
On peut bien sûr faire de même avec le champ « subject » qui a lui aussi un filtre wordpress.

Alain Boudard

aboudard

11 oct
2013

Partenariat XebiaLabs – Oxiane

XebiaLabs, éditeur spécialisé dans l’automatisation de déploiement d’applications, propose la solution Deployit. Cet outils permet aussi bien aux équipes de développement qu’à l’exploitation de déployer et configurer leurs applications sur leurs environnements en maîtrisant la fameuse phase critique de mise en production. Un des gros avantages de Deployit est d’assurer la compatibilité avec les serveurs de développement (Tomcat, Jboss,Websphere, Weblogic et MS/.Net IIS), d’intégration (Jenkins, Bamboo ou TFS ) et de production (Unix ou Windows).

C’est dans le cadre de notre expertise autour des outils de productivité qu’Oxiane s’est intéressé à Deployit. Nous avons décidé de devenir partenaire exclusif XebiaLabs pour l’animation des formations sur Deployit en France. Ce cours vient enrichir notre filière de formation Industrialisation Java proposant les formations sur Git, Jenkins, Subversion, Maven, etc.

wabden

17 sept
2013

ESUG 2013 : jours 4 et 5

Avec quelques jours de retards, une brève description des deux derniers jours à Annecy.
J’ai manqué plusieurs conférences en passant beaucoup de temps à discuter avec différentes personnes mais c’est ça aussi l’intérêt majeur de ce type de conférence.
De toutes façons, grâce à l’organisation exceptionnelle (un grand bravo aux organisateurs), les vidéos sont mises en ligne immédiatement sur YouTube et les slides des présentations sont disponibles sur le site de l’ESUG donc pas de problème pour revoir tout ça plus tard.

Voici un rapide aperçu des choses présentées pendant ces deux derniers jours (désolé pour ceux que j’ai oublié).

Lire la suite du bllet »

Jean-Francois Lefevre

jflefevre

12 sept
2013

ESUG 2013 : jours 2 et 3

podium des ESUG 2013 awardsMa deuxième journée à l’ESUG 2013 a commencé par une présentation, d’abord commerciale puis technique, de GemStone/S, une des rares bases de données objets qui ait survécue.
Les nouveautés de la dernière version ne me passionnent évidemment pas (je n’utilise pas GemStone mais c’est vrai que ça donne envie de regarder). Je retiendrai quand même un chiffre significatif : 20% des expéditions de conteneurs maritimes seraient gérés par GemStone/S.
Racheté par VMWare en 2010, le produit est maintenant géré par la société GemTalk Systems (http://gemtalksystems.com/) dont le nom fait explicitement référence à Smalltalk (pour 50%)

Je profite ensuite d’un tutoriel sur NativeBoost (l’équivalent Pharo du DLL&CConnect de VisualWorks) pour enfin commencer à utiliser Pharo et découvrir par la même occasion la librarie Chipmunk(un moteur physique 2D).
Lire la suite du bllet »

Jean-Francois Lefevre

jflefevre

10 sept
2013

ESUG 2013 : jour 1

Cette semaine est un peu le prolongement des vacances pour moi car je suis à Annecy pour les conférences ESUG (European Smalltalk User Group).
Je vais pouvoir me ressourcer en suivant les dernières avancées du plus beau langage du monde (je sais, je ne suis pas tout à fait neutre quand il s’agit de Smalltalk :-)).
Aujourdh’hui pas de grandes conférences à tout casser mais quelques moments forts que l’on peut revoir sur YouTube (chercher ESUG2013).

Pas de chance ce matin, j’ai manqué la première partie de la matinée, c’est à dire l’ouverture et les news sur l’implémentation VA Smalltallk mais je sais qu’une nouvelle version est récemment sortie donc c’est pas trop grave.

La présentation suivante (MVC Revival on the Web) nous rappelle brillamment que le MVC est né à la fin des années 70 dans le giron du projet Smalltalk chez Xerox et qu’après son adaptation au web, sur la base des Servlet/JSP notamment, il revient en force, plus ou moins sous sa forme d’origine, avec des frameworks JavaScript tels que Backbone.js et AngularJS.

La présentation « Beach Parasol » nous montre l’utilisation de WebDriver (l’évolution du célèbre SeleniumRC) pour tester ses applications Seaside écrites avec Pharo.

« Dry-ing Magritte » nous présente des extensions intelligentes au framework Magritte, compagnon idéal de Seaside pour la description du domain model et permettant la génération des écrans ou de la base de son application.

La présentation « Towards a Smalltalk VM for the 21st Century » me laisse dubitatif. En fait, j’ai rien compris mais c’est vrai que c’est un peu trop bas niveau pour moi. J’ai quand même retenu deux choses importantes : il existe des outils de simulations (Simics, GEM5, OVPSim, …) qui permettent de simuler du hardware (apparemment beaucoup plus bas niveau que VirtualBox que j’utilise de temps en temps) et ce type d’outils est indispensable pour espérer améliorer les VM car il permet de capturer tout un tas d’informations (état de la machine, …) impossibles à obtenir sur du matériel physique.
La seconde chose importante c’est que augmenter la rapidité d’exécution augmente au carré l’énergie consommée. La conséquence c’est qu’on ne veut pas toujours aller le plus vite possible. Par exemple, si on souhaite que le traitement d’un événement soit réalisé en 50ms, ça n’est pas la peine de dépenser 25 fois plus d’énergie pour qu’il soit traité en 10ms. Un des enjeux du futur est effectivement de trouver le moyen de fournir cette indication à la VM.

Enfin, la société MediaGeniX, qui avait brillé dans ses présentations l’année dernière sur sa mise en place de l’Intégration Continue et sur sa manière de gérer les spécificités de ses nombreux clients, nous a présenté cette fois ses choix en matière d’agilité. Après une rapide description de XP, Scrum, Kanban et du Lean thinking, elle nous présente son marché dans les pratiques de ces différentes méthodes.

La fin de la journée est consacrée à l’« Innovation Technology Awards », pendant laquelle les candidats nous présentent leurs projets respectifs, pendant qu’on s’empiffre de fantastiques tranches de charcuterie et de fromages régionales et de bière locale humoristiquement renommée « ifTrue: [ » et « ifFalse:[« . Comme chaque année, le vote est difficile tant les projets sont de qualité. Je retiens tout de même en priorité Amber qui me bluffe toujours autant. Pour rappel, il s’agit d’une implémentation de Smalltalk directement basée sur JavaScript (le code Smalltalk est compilé en JavaScript). Tout le confort d’un vrai environnement de développement Smalltalk dans le navigateur, voilà qui donne un nouveau souffle à mon langage préféré.
L’autre chose qui me bluffe aussi, c’est la qualité et la performance de Pharo. C’est décidé, il faut que je trouve du temps pour m’y intéresser vraiment.

Jean-Francois Lefevre

jflefevre