"…mais ce serait peut-être l'une des plus grandes opportunités manquées de notre époque si le logiciel libre ne libérait rien d'autre que du code…"

Posts Tagged ‘subversion’

Les projets python de la semaine 37: Tornado (web) , sqlkit (database), HeeChee (mercurial-subversion), sinthgunt (video, ffmpeg)

Posted by patrick sur septembre 12, 2009

  • http://www.tornadoweb.org/ (‘Tornado is an open source version of the scalable, non-blocking web server and tools that power FriendFeed. The FriendFeed application is written using a web framework that looks a bit like web.py or Google’s webapp, but with additional tools and optimizations to take advantage of the underlying non-blocking infrastructure. The framework is distinct from most mainstream web server frameworks (and certainly most Python frameworks) because it is non-blocking and reasonably fast. Because it is non-blocking and uses epoll, it can handle thousands of simultaneous standing connections, which means it is ideal for real-time web services. We built the web server specifically to handle FriendFeed’s real-time features — every active user of FriendFeed maintains an open connection to the FriendFeed servers. (For more information on scaling servers to support thousands of clients, see The C10K problem…Tornado has been tested on Python 2.5 and 2.6. To use all of the features of Tornado, you need to have PycURLsimplejson installed and a JSON library like )’)
  • http://www.aeracode.org/2009/9/10/announcing-heechee/ (…One of the particular issues I have is with svn:externals. A lot of apps – including some we have at work – rely on svn:externals to pull in external dependencies into a libs folder along with the project itself. Externals is one of the few features of subversion that I thought was pretty much perfect, and it was sad to see my move to Mercurial break itOne of the questions led him onto hg-git – the awesome git backend plugin for Mercurial, that the GitHub guys wrote – and how they first investigated the idea of an svn gateway to expose their repositories transparently to subversion users. From what I gathered, subversion’s wire format proved too tricky to deal with, and so they turned elsewhere…After some digging, reading an obscure academic paper and liberal application of Wireshark, I grew confident enough that I could at least implement something. A day later, and I’d like to present the very first version of what I’m calling Heechee (if you get the pun, ten nerd points). Heechee is a transparent mercurial-as-subversion gateway. It serves a Mercurial repository as a Subversion WebDAV-based repository. It’s still in the early stages, but at the moment it will serve its own mercurial repository to subversion in such a way that you can check out the repository, and update to various revisions within it.You can check it out at BitBucket. It’s pretty alpha code, and make sure you have the dependencies mentioned in the README, but it works, which greatly surprises me. I plan to much improve the code to support more ‘advanced’ features, like being able to do more than checkout and update, as well as exposing tags and branches correctly. There’s even the chance I’ll stick Git support in, when I’ve had a play with Dulwich.)
  • http://sqlkit.argolinux.org/ (‘Sqlkit is a mini framework based on pygtk that provides some very powerfull classes to edit databases. It’s meant as a base for database desktop applications. Sqlkit is based on:

Un autre projet similaire est camelot basé sur pyQt (http://pypi.python.org/pypi/Camelot/).

  • http://code.google.com/p/sinthgunt/ (‘Sinthgunt is an open source graphical user interface for ffmpeg, a computer program that can convert digital audio and video into numerous formats. Using pre-configured conversion settings, it makes the task of converting between different media formates very easy.‘)
Publicités

Posted in 2009, bases de données | Tagué: , , , , , , , , | Leave a Comment »

Quelques outils pour développer une application open source: Une application open source basée sur JEE 5 et JBoss Seam: Nuxeo5

Posted by patrick sur novembre 7, 2007

Les applications Java sont souvent employées dans des environnements assez lourds. Cette situation cependant s’améliore grâce à l’utilisation d’outils open source utilisés dans d’autres projets et également grâce à la mise en oeuvre de  serveurs d’applications Java EE 5 qui implémentent les fonctionnalités extrêmement attendues telles qu’Enterprise JavaBeans 3.0 (EJB3), Java Persistence API (JPA) et JavaServer Faces (JSF).. Voulant aussi aussi parler des logiciels libres en entreprise, on s’intéressera à Nuxeo 5 qui utilise Jboss Seam en tant que composant de son framework web.

ECM (Enterprise Content Management) : la gestion de contenu (en anglais Enterprise Content Management, ECM) vise à gérer l’ensemble des contenus d’une entreprise. Il s’agit de prendre en compte les informations sous forme électronique, qui ne sont pas structurées, comme les documents électroniques, par opposition à celles déjà structurées dans les bases de données. À titre d’exemple, on va pouvoir gérer l’ensemble des informations d’un dossier client : courriers papier, courriels, fax, contrats, etc., dans une même infrastructure)

Nuxeo 5 est une plateforme complète de gestion de contenu d’entreprise, robuste et extensible, développée selon un modèle de logiciel libre par la société Nuxeo et une communauté de contributeurs, en utilisant des technologies Java EE open source.La plateforme Nuxeo couvre l’ensemble du spectre fonctionnel et technique de l’ECM :- Gestion documentaire (GED)- Travail collaboratif– Gestion des processus métiers (workflow documentaire)- Gestion de la conformité légale ou réglementaire

– Gestion des documents d’archives (Records Management)

– Gestion des contenus multimédias

Gestion des connaissances (KM)

Historique de Nuxeo 5: « …La finalisation de Java Enterprise Edition 5.0 (Java EE 5) était attendue en 2007 et Nuxeo voulait être en mesure de tirer parti de nouvelles fonctionnalités extrêmement attendues telles qu’Enterprise JavaBeans 3.0 (EJB3), Java Persistence API (JPA) et JavaServer Faces (JSF). Le projet de migration vers Java EE 5 a été lancé avec pour objectif de livrer la plateforme Nuxeo 5 au 4ème trimestre 2006..

En ce qui concerne Java open source, un seul nom s’est imposé : JBoss.
« Le choix de JBoss Application Server fut évident car il se trouve au
cœur d’un package logiciel open source dont nous avions déjà testé
plusieurs modules indispensables à notre projet, »

…Nuxeo 5 utilise:

– JBoss Cache pour fournir le stockage temporaire distribué de la plateforme ECM pour les données d’accès fréquent,

– JBoss jBPM pour fournir la gestion des processus commerciaux et les flux de travaux,

– JBoss Rules pour permettre la création de règles commerciales,

– et JBoss Seam, qui est une structure innovante de programmation de composants, pour fournir une couche Web dynamique et extensible qui unifie les fonctionnalités Java EE5 telles qu’EJB3 et JSF, ainsi que les technologies Web 2.0 telles qu’Asynchronous JavaScript et XML (Ajax).

…Enfin, en tant que fournisseur de solutions open source, Nuxeo a
apprécié le processus de développement ouvert et collaboratif de
JBoss, qui a bien accueilli la participation et la contribution des clients,
des partenaires et des particuliers. Ceci est l’antithèse du logiciel
commercial, dont le développement se fait à huis clos et qui est fourni
dans une boîte noire
. Grâce à son expérience utilisateur avec JBoss
Enterprise Middleware, Nuxeo est en mesure de contribuer à la direction
du développement de JBoss. Et pour finir, cela signifie avoir droit à la
parole et être entendu.

Autres sources:

http://www.michaelyuan.com/blog/2006/11/14/seam-without-ejb3/ (« Seam has always supported POJO components in addition to EJB3 components. You can use Seam POJOs to replace EJB3 session beans and Hibernate POJOs to replace EJB3 entity beans« )

http://www.jboss.com/products/seam ou – http://labs.jboss.com/jbossseam/ (« JBoss Seam is a powerful new application framework for building next generation Web 2.0 applications by unifying and integrating technologies such as Asynchronous JavaScript and XML (AJAX), Java Server Faces (JSF), Enterprise Java Beans (EJB3), Java Portlets and Business Process Management (BPM). Seam has been designed from the ground up to eliminate complexity at the architecture and the API level. It enables developers to assemble complex web applications with simple annotated Plain Old Java Objects (POJOs), componentized UI widgets and very little XML.« )

http://labs.jboss.com/jbossejb3/ (« Enterprise Java Beans (EJB) 3.0 is a deep overhaul and simplification of the EJB specification. EJB 3.0’s goals are to simplify development, facilitate test driven development, and focus more on writing plain old java objects (POJOs) rather than on complex EJB APIs. EJB 3.0 has fully embraced Java Annotations introduced in JDK 5.0 and also simplifies the API for CMP entity beans by using Hibernate as the EJB 3.0 Java Persistence engine.« )

http://www.michaelyuan.com/blog/about/ (« Welcome to my blog site! My name is Michael Yuan. I am a technologist, author, and open source advocate based in Austin, Texas. I currently work as a Technology Evangelist at the JBoss division of Red Hat Inc. Before joining JBoss, I was an independent software consultant in the field of mobile end-to-end solutions« ) et son flux RSS (http://www.michaelyuan.com/blog/category/seam/feed/)

http://www.redhat.com/developers/rhds/index.html (« Red Hat Developer Studio is a set of eclipse-based development tools that are pre-configured for JBoss Enterprise Middleware Platforms and Red Hat Enterprise Linux. Developers are not required to use Red Hat Developer Studio to develop on JBoss Enterprise Middleware and/or Red Hat Linux. But, many find these pre-configured tools offer significant time-savings and value, making them more productive and speeding time to deployment« )

– Learn more about Seam here, and find a list of commonly answered questions here. Or, follow this road map to get started with Seam right away! You can view a recorded Seam webinar.

http://blogs.nuxeo.com/sections/blogs/fermigier/2007_03_08_nuxeo-s-open-source-projects-trully-community-driven-hell-yes-they (« Fortunately, the short answer is “of course we are community-driven”. With Dion’s criteria, I can confidently self-grade us at A+ (or 20/20, for french-educated people). Here are the criteria and my comments)

http://www.nuxeo.org/sections/documentation/ (« Learn Nuxeo EP 5.1 basics with some video demos« )

http://www.nuxeo.org/sections/community/ (« The Nuxeo projects are open source (licensed under the LGPL) and developed with the participation of the community. We mean « participation » here as either: working as a core developer, contributor, third-party component developer (we have designed Nuxeo 5 to be very easily extensible by independent people, to create an « architecture of participation »), tests (unit tests, integration tests or functional tests) writer, Maven / Eclipse specialist, documentation writer / proofreader, etc.« )

Here is a list of what you can do to get involved with the Nuxeo 5 development:

http://maven.nuxeo.org/ (« This website is the Apache Maven site for the Nuxeo EP As stated on the nuxeo.org site, « Nuxeo 5 is an innovative, standards-based, open source platform for ECM applications. Its component-based and service-oriented architecture makes it easy to customize and extend, making developers more efficient and ultimately, happier ». For more general information about the project, we strongly suggest that you go to the Nuxeo.org website. What you will find on this site are highly technical, developers-focussed, information related to the project. These information are generated by the build tool we use (and we recommend to third-parties that which to use or extend the platform), Apache Maven, from the source code and meta-information developers put in the source. open source ECM platform. »)

http://maven.nuxeo.org/source-repository.html (« This project uses Subversionhttp://svnbook.red-bean.com/ to manage its source code. Instructions on Subversion use can be found at . »)

– Accès aux sources

  • Anonymous access

The source can be checked out anonymously from SVN with this command:

$ svn checkout http://svn.nuxeo.org/nuxeo/nuxeo-ep/trunk nuxeo-ecm
  • Developer access

Everyone can access the Subversion repository via HTTPS, but Committers must checkout the Subversion repository via HTTPS.

$ svn checkout https://svn.nuxeo.org/nuxeo/nuxeo-ep/trunk nuxeo-ecm

http://in.relation.to/Bloggers/Seam2IsOut (« …the most important thing about the new release is simply that the codebase is much cleaner. The migration to JSF 1.2 allowed us to solve many problems and remove quite a few hacks. We also repackaged built-in components according to a much more logical schema…« )

http://en.wikipedia.org/wiki/Apache_Maven (« Maven is a software tool for Java programming language project management and automated software build. It is similar in functionality to the Apache Ant tool (and to a lesser extent, PHP’s PEAR and Perl’s CPAN), but has a simpler build configuration model, based on an XML format. Maven is hosted by the Apache Software Foundation, where it was formerly part of the Jakarta Project. Maven uses a construct known as a Project Object Model (POM) to describe the software project being built, its dependencies on other external modules and components, and the build order…« )

http://fr.wikipedia.org/wiki/JBoss (« JBoss Application Server est un serveur d’applications J2EE Libre entièrement écrit en Java, publié sous licence LGPL. Parce que le logiciel est écrit en Java, JBoss Application Server peut être utilisé sur tout système d’exploitation fournissant une machine virtuelle Java (JVM). Les développeurs du cœur de JBoss ont tous été employés par une société de services appelée « JBoss Inc. ». Celle-ci a été créée par Marc Fleury, le concepteur de la première version de JBoss. Le projet est sponsorisé par un réseau mondial de partenaires et utilise un business model fondé sur le service. En avril 2006, Red Hat a racheté JBoss Inc. En février 2007 Marc Fleury quitte le groupe Red Hat. JBoss Application Server implémente entièrement l’ensemble des services J2EE. Cela inclue JBoss Portal, JBoss Seam, Tomcat et les frameworks Hibernate, jBPM, et Rules. »)

http://fr.wikipedia.org/wiki/Subversion_(logiciel)  (« Subversion (en abrégé svn) est un système de gestion de versions, distribué sous licence Apache et BSD. Il a été conçu pour remplacer CVS. Ses auteurs s’appuient volontairement sur les mêmes concepts (notamment sur le principe du dépôt centralisé et unique) et considèrent que le modèle de CVS est le bon, et que seule son implémentation est en cause. Le projet a été lancé en février 2000 par CollabNet, avec l’embauche par Jim Blandy de Karl Fogel, qui travaillait déjà sur un nouveau gestionnaire de version. »)

http://en.wikipedia.org/wiki/Enterprise_JavaBean (« Enterprise Java Bean is a managed, server-side component architecture for modular construction of enterprise applications.The EJB specification is one of the several Java APIs in the Java Platform, Enterprise Edition. The EJB specification was originally developed in 1997 by  IBM and later adopted by Sun Microsystems (EJB 1.0 and 1.1) and enhanced under the Java Community Process as JSR 19 (EJB 2.0), JSR 153 (EJB 2.1) and JSR 220 (EJB 3.0). The EJB specification intends to provide a standard way to implement the back-end ‘business’ code typically found in enterprise applications (as opposed to ‘front-end’ user-interface code). Such code was frequently found to reproduce the same types of problems, and it was found that solutions to these problems are often repeatedly re-implemented by programmers. Enterprise Java Beans were intended to handle such common concerns as persistence, transactional integrity, and security in a standard way, leaving programmers free to concentrate on the particular problem at hand.)

http://en.wikipedia.org/wiki/Java_Persistence_API (« …The Java Persistence API was defined as part of the EJB 3.0 specification, which is itself part of the Java EE 5 platform..The Java Persistence API is designed for relational persistence, with many of the key areas taken from object-relational mapping tools such as Hibernate and TopLink. It is generally accepted that the Java Persistence API is a significant improvement on the EJB 2.0 specification…Many enterprise Java developers have been using lightweight persistent objects provided by open-source frameworks or Data Access Objects instead of entity beans because entity beans and enterprise beans were considered too heavyweight and complicated, and they could only be used in Java EE application servers. Many of the features of the third-party persistence frameworks were incorporated into the Java Persistence API, and projects like Hibernate and TopLink are now implementations of the Java Persistence API…« )

http://en.wikipedia.org/wiki/Red_Hat (« Red Hat, Inc. (NYSERHT) is one of the larger and more recognized companies dedicated to open source software. It is also the largest distributor of the Linux operating system. Red Hat was founded in 1995 and has its corporate headquarters in Raleigh, North Carolina. The company is best known for its enterprise-class operating system, Red Hat Enterprise Linux and more recently through the acquisition of open source enterprise middleware vendor JBoss. Red Hat provides operating system platforms along with middleware, applications, and management solutions, as well as support, training, and consulting services. »)

Posted in AJAX, Architecture logicielle, Gestion de version, java, JEE, open source, Web applications, Web Frameworks, web2.0 | Tagué: , , , , , , , , | Leave a Comment »

La commande shell ‘find’inetrafec

Posted by patrick sur juillet 5, 2007

Voilà des exemples d’utilisation de la commande ‘find’ qui me sont bien utiles quand j’établis un « état des lieux » sur une application:

Rappel: La commande find est récursive, c’est à dire où que vous tapiez, elle va aller scruter dans les répertoires et les sous répertoires de chaque répertoire et ceci de façon récursive.

http://en.wikipedia.org/wiki/Find (« The find program is a search utility, mostly found on Unix-like platforms. It searches through one or more directory tree(s) of a filesystem, locating files based on some user-specified criteria. By default, find returns all files below the current working directory. Further, find allows the user to specify an action to be taken on each matched file. Thus, it is an extremely powerful program for applying actions to many files. It also supports regexp matching. »)

Ici cela s’applique à une application Java:

// Pour compter le nombre de lignes java
find . -name *.java -exec cat {} \; | wc -l

// Pour avoir la liste des fichiers java : ça c’est du classique
find . -name *.java -print

// Pour effacer tous les fichiers core situés sous mon répertoire :
find . -name core -exec rm {} \;

// pour avoir une demande de confirmation avant l’exécution de rm, vous pouvez taper :
find . -name core -ok rm {}\;

// Pour connaître les derniers fichiers modifiés dans les 3 derniers jours dans toute l’arborescence (/), vous devez taper :
find / -mtime 3 -print

// Pour connaître dans toute l’arborescence, les fichiers dont la taille dépasse 1Mo (2000 blocs de 512Ko), vous devez taper :
find / -size 2000 -print

// Vous pouvez chercher dans toute l’arborescence, les fichiers ordinaires appartenant à reza, dont la permission est fixée à 755, on obtient :
find / -type f -user reza -perm 755 -print

// rechercher dans le répertoire courant tous les fichiers normaux (sans les répertoires, fichiers spéciaux), et rechercher dans ces fichiers tous ceux contenant la chaîne toto.
find . -type f -print | xargs grep toto

// Exemple plus sophistiqué
find . -name *.java | xargs egrep -e « msg » | egrep -e « \ ».+\ » »| sort| uniq > aMsgJava.txt

// Recherche de la chaîne « DB » dans des programmes php
find . -name *.php -print | xargs grep DB

// supprimer des répertoires subversion .svn
find . -name « .svn » -exec chmod -R +w {} \;
find . -name « .svn » -exec rm -R {} \;

Liens:

  • http://fr.wikipedia.org/wiki/Shell_%28informatique%29 (… »Les systèmes d’exploitation de type Unix, GNU/Linux par exemple, disposent le plus souvent d’un shell. Celui-ci est utilisable en conjonction avec un terminal (souvent virtuel). A l’origine, l’interpréteur de commandes par défaut était tcsh (et c’était le Bourne_shell sur les Unix originels), mais aujourd’hui Bash est le plus répandu. Sur les postes de travail, les shells (environnements) graphiques KDE et/ou Gnome sont les plus usités. Il existe d’autres interpréteurs de commandes, notamment zsh et rc. »)

Posted in Administration système | Tagué: , , , , | Leave a Comment »