Makina-Corpus.org

Syndiquer le contenu
Updated: il y a 14h 29 min

TileMill on your Web server behind a reverse proxy

mar, 31/01/2012 - 12:12

In the last version (0.9), TileMill has an additional dedicated process to
serve the tiles. We had to change some bits of our server configuration.

Instead of documenting the new configuration in our internal Wiki,
I prefered to share here a few technical lines (quite rough though).

en lire plus

Merkopolo : a simple yet powerful starter kit for your Qt/C++ GIS application

jeu, 26/01/2012 - 12:30

Recently, while the whole world looks completely hyped up with Web applications,
we chose to design and develop a desktop software in Qt/C++.

Obviously, the choice was measured and justified ! We had to build a specific GIS application
with complex interactions and huge amounts of data, for a limited number of users.

en lire plus

Releases of the week

ven, 13/01/2012 - 16:05

I have worked with Raphael Gaziano during the week to improve oembed experience. The goal of oembed is to provide a way to display a content from outside (youtube, twitter, ...) just by using its URL.

To achieve this we use a set of providers, asking each one if they support the url. The first supporting it is used to get an embed HTML snippet that will be added to the page.

en lire plus

Canaliser les flux de communication

ven, 06/01/2012 - 18:51
<Paul> Je viens en renfort sur le projet, par ou est-ce que je commence ? <Stephane> 2 minutes, je t'envoie toutes les informations par e-mail. <Jerome> Je t'envoie aussi les infos que j'ai.

Qui n'a jamais rencontré cette situation ? C'est malheureusement un cas d'école de choses à éviter :

  • malgré ses bonnes intentions, Stéphane va oublier quelque chose, ou bien se tromper ;
  • ce qu'il corrigera dans d'autres e-mails, après qu'un problème eût été détecté ;
  • les informations envoyées par Jérôme seront différentes ;
  • on peut prédire que le prochain collaborateur obtiendra aussi des informations différentes ;
  • dans 6 mois il sera très difficile de retrouver ces informations ;
  • si tous les membres de l'équipe partent, alors la connaissance est perdue en même temps que leurs archives e-mail ;
  • et bien d'autres désagréments...

Pourtant, l'information est là, et les membres de l'équipe font l'effort de transmettre cette information. Une hypothèse fort plausible, c'est qu'ils utilisent un canal de communication inadapté à leur besoin. Ici, une documentation projet paraîtrait bien plus pertinente.

Des exemples comme celui-ci, on en rencontre beaucoup au cours de notre travail quotidien. Si on fait la somme, on se rend compte qu'ils peuvent générer de nombreux soucis.

Cet article est une réflexion sur les canaux de communication au sein d'une équipe projet. L'objectif est de partager des observations à propos de patterns plus ou moins adaptés, pour ensuite suggérer des solutions.

en lire plus

How to validate google webmaster tools with diazo

mer, 21/12/2011 - 18:20

On the CMS Plone I'm used to validate google webmaster tools by adding in ZMI the file provided by Google during the validation process.

en lire plus

Access a JSON webservice with Qt C++

ven, 16/12/2011 - 18:00

Original post at Makina Corpus

Webservices are everywhere ! There are relevant in many situations, and
accessing them from your Qt C++ application is not an heresy.

I will present here a very simple way to retrieve a JSON from a GET request.

en lire plus

Organiser les fichiers d'un projet pour le développement et le déploiement

jeu, 15/12/2011 - 15:15

Si vous avez réalisé plusieurs projets de développement web, vous vous êtes certainement aperçu que vous gagnez à utiliser toujours la même structure de répertoires. Et si vous travaillez en équipe, vous vous êtes certainement rendu compte que chacun a ses propres recettes en la matière. Comme cela pose des problèmes, il est utile d'adopter quelques standards.

Cet article propose deux solutions pour organiser les répertoires d'un projet afin qu'ils soient adaptés aux problématiques du développement autant qu'à celles du déploiement.

L'objectif est d'avoir suffisamment de matière pour faire le choix de l'une ou l'autre solution.

en lire plus

Drupal and Jenkins: continuous integration howto

mer, 07/12/2011 - 16:13

Once you know how to run tests with Drupal [1], you'd like some automation...

Here is a recipe to set up a continuous integration service for Drupal, using the well-known Jenkins [2] software.

en lire plus

Running tests with Drupal

mer, 07/12/2011 - 15:55

Here are some notes about running tests with Drupal 7, using bundled scripts/run-tests.sh or drush.

en lire plus

Remove django form field validation errors manually

mar, 06/12/2011 - 10:00

Original post at Makina Corpus

Sometimes I look for something which seems so simple and stupid that I can't imagine
it does not exist. It makes me wonder why and who is the fool. Worse, I can't be sure about my search keywords to prove me anything.

en lire plus

An equivalent of Django's select_related for ManyToMany and OneToMany relationships

lun, 05/12/2011 - 12:09

Original post at Makina Corpus

Using an ORM simplifies and reduces greatly the amount of code to interact with databases.
Nevertheless, it can easily hide database design defects or become a source of serious performance issues.

en lire plus

Documenter un projet

ven, 02/12/2011 - 16:11

Quelques réflexions et conseils pratiques à propos de la documentation des projets.

en lire plus

How to replace virtualenv + pip by buildout

ven, 02/12/2011 - 15:44

I was used to virtualenv and pip, and buildout first seems hard to understand. In fact, I thought that I didn't need buildout.

Then, with some practice, I came to think the opposite. I mean I no longer need virtualenv or pip. And buildout has strong features I really need.

Thus, I am wondering why so many people keep on using virtualenv and pip, and even often refuse to use buildout. One hypothesis is that buildout is hard to discover. During first steps with buildout, you don't understand what happens. And documentation about available options is a bit obscure.

So, here is an article about reproducing a virtualenv+pip workflow with buildout. Let's try it

en lire plus

Drupalcamp organization DOs and DON'Ts

jeu, 01/12/2011 - 15:05

On the 26-27th november 2011, I had the pleasure to host the Drupalcamp Toulouse, as a part of a big free software event: the Capitole du libre. I'd like to use that experience to present you what worked / what didn't, or what I could / should / shouldn't have done.

en lire plus

Des cartes collaboratives avec Livetitude

mer, 23/11/2011 - 15:00

Article original publié chez Makina Corpus

Cela fait plusieurs semaines que je voulais présenter ma petite application
de partage de cartes, dont je me sers déjà comme alternative aux marqueurs de Google Maps.

en lire plus

How to list views used in your Plone site

lun, 21/11/2011 - 15:28
catalog = container.portal_catalog types = container.portal_types.objectIds() views = {} for t in types: brains = catalog(portal_type=t) for brain in brains: ob = brain.getObject() layout = ob.getLayout() if t not in views:views[t] = [] if layout not in views[t]: views[t].append(layout) print views return printed

nantes-developpement.com

mar, 15/11/2011 - 15:13

Remember from July 7 2010 the release of the website nantes-developpement.com . This project has been updated and it uses lots of add-ons.

en lire plus

A Fail event had been detected on md device /dev/md3

jeu, 03/11/2011 - 19:00

  Votre serveur fonctionne très bien, votre Raid1 synchronise correctement vos disques, impeccable. Puis un matin … c'est la cata la cata … vous recevez un mail :   """"" A Fail event had been detected on md device /dev/md3. …

Lire la suite »

Git : annuler proprement un commit après un push

jeu, 03/11/2011 - 15:15
Ce qu'il faut éviter

Pour annuler des commits, il existe la commande git reset.

en lire plus

xm destroy problem

lun, 31/10/2011 - 19:10

Ce matin encore un problème du à la tdb sur un serveur Xen (voir mon précédent article http://blog.cheramy.name/2011/07/08/xen-nettoyer-la-tdb/). En essayant de détruire une vm qui était dans l'état s : # xm list vm012 Name ID Mem VCPUs State Time(s) …

Lire la suite »