public marks

PUBLIC MARKS from pvergain

07 March 2007

Presentation MVC et Monorail v2

Le pattern MVC: Comparaison ASP.Net et Monorail dans l’optique d’une utilisation Web Internet et Intranet

06 March 2007

Signaling System 7 (SS7)

Signaling System 7 (SS7) is an architecture for performing out-of-band signaling in support of the call-establishment, billing, routing, and information-exchange functions of the public switched telephone network (PSTN). It identifies functions to be performed by a signaling-system network and a protocol to enable their performance. This tutorial was authored by Art Doskow, Senior Member of Technical Staff–Signaling and Control Architecture Evolution, Bell Atlantic.

Python, Ruby, Testing

That aside, despite appreciating both languages, Andrzej feels that he learns more from the Ruby community. I mentioned earlier that Andrzej isn't a language zealot. He is a zealot for agile development techniques. What he appreciates about both Ruby and Python is that they are languages that assist and encourage in the production of beautiful and elegant code. He cares about the beauty of his code, ugly code offends him. Smile This is something that I started to appreciate with Python, and why I fell in love with it. It is also what makes the art of software creation so beguiling. Not only can we solve problems, but we can do so in ways that are elegant. Beautiful code is easier to understand, is a clearer expression of the programmers intention (a concise encapsulation of concepts), and is therefore more reliable and easier to maintain. This is why domain specific languages are important. They emphasise that code should be the clearest expression of meaning possible, and this is often exemplified in the declarative style. You write code that says what you mean, and then provide a framework which interprets this in ways the computer can understand. See this blog entry, about a PyCon talk, for an example of writing a DSL with Python. For Andrzej, and also now for me since joining Resolver a year ago, agile practises like test driven development are an important part of creating beautiful code. This is what Andrzej means when he says that he learns more from the Ruby community than from the Python community. Part of this probably stems from his longer involvement in the Ruby community, but he feels that he learns more about effective testing (and explorations of other subjects about methodologies that are not specific to any individual programming language) when reading Ruby blogs than Python blogs. I have to say that in the Python blogosphere it does seem like there is not a huge emphasis on testing and test driven development, and the nuances of when to test and when to mock. That isn't to say there is no-one talking about it, just not a focussed exploration of these issues. There are exceptions (and feel free to disagree with this point). Grig Gheorghiu is a notable and important exception to this. (Andrzej and I were fortunate to meet Grig at PyCon, although only briefly, and I regularly point Andrzej to interesting posts on Grig's blog.) Not only does he blog regularly about testing, but he has also just started the Testing in Python mailing list. Hopefully this will become a focal point for the Python community in discussing and refining testing tools and practises.

05 March 2007

Active record (motif de conception)

En génie logiciel, le motif de conception (design pattern) active record est une approche pour lire les données d'une base de données. Les attributs d'une table ou d'une vue sont encapsulés dans une classe. Ainsi l'objet, instance de la classe, est lié à un tuple de la base. Après l'instanciation d'un objet, un nouveau tuple est ajouté à la base au moment de l'enregistrement. Chaque objet récupère ses données depuis la base; quand un objet est mis à jour, le tuple auquel il est lié l'est aussi. La classe implémente des accesseurs pour chaque attribut.

03 March 2007

Zope/Plone, Ruby on Rails, Turbogears, Django and J2EE.

by 2 others
A practical comparison between Zope/Plone, Ruby on Rails, Turbogears, Django and J2EE.

Elixir - Elixir

About Elixir is a declarative layer on top of SQLAlchemy. It is a fairly thin wrapper, which provides the ability to define model objects following the Active Record design pattern, and using a DSL syntax similar to that of the Ruby on Rails ActiveRecord system. Elixir does not intend to replace SQLAlchemy's core features, but instead focuses on providing a simpler syntax for defining model objects when you do not need the full expressiveness of SQLAlchemy's manual mapper definitions. Example Here is a very short model definition example, so that you can see what the syntax look like. For some explanation and more complete examples, please have a look at the tutorial or at the examples page. class Person(Entity): has_field('name', Unicode(255)) has_many('addresses', of_kind='Address') class Address(Entity): has_field('email', String(128)) belongs_to('person', of_kind='Person') History In 2006, Jonathan LaCour discovered the fantastic SQLAlchemy project, and really liked its power and flexibility, but found that in many simple cases he would prefer a simpler and more attractive way to declare his model objects. As a result, Jonathan spent a few hours on a weekend to create the ActiveMapper SQLAlchemy extension. For a weekend's worth of work, it wasn't half bad, and gained a little bit of traction in the wild. But, over time, it became clear that ActiveMapper needed a lot of work to stabilize and become more useful. Later that year, Daniel Haus released his own layer on top of SQLAlchemy, called TurboEntity. TurboEntity solved some of the problems of ActiveMapper, and took a slightly different approach to the problem. TurboEntity also began to gain some ground and it became clear to both Daniel and Jonathan that they needed to work together. Around the same time, Gaëtan de Menten contacted both Jonathan and Daniel to reveal that he had been working on his own layer as well. A few weeks later, all three agreed to work together to create a replacement for TurboEntity and ActiveMapper using their collective experience and knowledge. The Name The Oxford English Dictionary defines Elixir as: "a magical or medicinal potion, a preparation that was supposedly able to change metals into gold, sought by alchemists." The Future The eventual goal of the Elixir project is to become an official SQLAlchemy extension. But, before we submit elixir for inclusion within SQLAlchemy, we want the opportunity to solicit feedback and contributions from users to make sure that we have ironed out any bugs, missing features, syntax changes, or documentation deficiencies.

01 March 2007

OLPC and python

The software is far from finished. An early version of the GUI and window manager are available, and a few small demo applications: chat, video, two games, and a web browser, and that's about it! The plan is to write all applications in Python (except for the web browser), and a "view source" button should show the Python source for the currently running application. In the tradition of Smalltalk (Alan Kay is on the OLPC board, and has endorsed the project's use of Python) the user should be able to edit any part of a "live" aplication and see the effects of the change immediately in the application's behavior. (A versioned document store will make it possible to roll back disastrous changes.) This is where Krstic wants my help: he hopes I can work magic and implement this feature for Python. I got started right away during the conference, with a reimplementation of python's reload() function that can patch classes and functions in place. Even this small component still has a long way to go; a checkpoint of the work in progress is checked into subversion as part of the Py3k standard library. That's not where the rest of my OLPC work will show up; they use GIT for source control, so I will get to learn that.

Sun joins the Free Software Foundation

Sun Microsystems is the latest company to become a patron of the Free Software Foundation (FSF). The FSF's corporate patron program allows companies to provide financial sponsorship for the FSF in return for free license consulting services. High-profile FSF patron affiliates include prominent technology companies like Google, Nokia, IBM, Cisco, and Intel. FSF involvement represents Sun's latest attempt to take a more active role in the open-source software community. Over the years, Sun's position on the FSF's GPL license has changed many times. In 2004, when Sun first considered adopting the GPL, Jonathan Schwartz said that the company viewed "the GPL as a friend." A year later, Schwartz expressed a very different opinion when he condemned the GPL and characterized its share-alike clauses as a "predatory obligation" and "intellectual property colonialism." Sun officially put an end to the flip-flopping last year, when the company finally released its Java programming language under the GPL. Sun representatives have also expressed interest in potentially dual-licensing OpenSolaris to make it available under the GPL as well as the company's own CDDL license. Now that Sun has liberated the source code of its two flagship products, it seems clear that the company is willing to practice what it preaches. Sun's newly-announced support for the FSF tells us that Sun's GPL adoption isn't just another passing phase for the company. Sun's interest in the GPL3, an upcoming revision of the GPL, probably played a role in the company's decision to become more involved with the FSF. At present, developers of the Linux kernel do not intend to transition to the GPL3. If Sun adopts the GPL3 for OpenSolaris and the Linux kernel remains with current version of the license, it could potentially stimulate the growth of the OpenSolaris community and help Sun attract community contributors who are ideologically aligned with the FSF.

New Python 3000 Video and Slides

New Python 3000 Video and Slides by Guido van Rossum February 26, 2007 Summary Video and powerpoint slides of my recent Python 3000 talks are now online. I gave two versions of a new talk on Python 3000 (a.k.a. Py3k or Python 3.0) recently. The first time, a preview, was on February 14, at Google in Mountain View. It is now up on Google Video (here). The second time was on February 24, at PyCon 2007 in Dallas. The powerpoint slides are now up on python.org (here). (I rearranged the talk a bit based on the feedback I got on the Google talk, so the slides don't exactly match the video, but they are mostly close.) If after viewing these you have questions about the implications for the transition from Python 2.x to Python 3.0, please join us on python-dev (start here). Plans are emerging to add many features to Python 2.6 (which will be released a few months before 3.0) that will ease the transition, e.g. backporting selected Py3k features and (optional) warnings about features that will be gone in 3.0.

Dabo Desktop Application Framework

PyCon 2007 was held on February 23-25, 2007, in Addison, Texas. One of the sessions given there was a 45-minute talk entitled Developing Desktop Applications with Dabo, given by Ed Leafe, and filmed by Paul McNett. The video of the session is available here; it has been broken into 6 segments, due to YouTube's limit of 10 minutes per video.

Pipes: Rewire the web

by 18 others
Pipes is an interactive feed aggregator and manipulator. Using Pipes, you can create feeds that are more powerful, useful and relevant.

Rota Board: account - login

by 7 others
Simple, Elegant, Organised (and Painless). Organising your employees working schedules shouldn't be a burden. That's why we've created Rotaboard – our FREE online rota management service.

OpenAjax Alliance

by 2 others
The OpenAjax Alliance is an organization of leading vendors, open source projects, and companies using Ajax that are dedicated to the successful adoption of open and interoperable Ajax-based Web technologies. The prime objective is to accelerate customer success with Ajax by promoting a customer's ability to mix and match solutions from Ajax technology providers and by helping to drive the future of the Ajax ecosystem

27 February 2007

Trouver des synonymes avec Google et python

Trouver des synonymes avec Google Le Mar 20 Fév 2007 Nous allons détourner l’opérateur « synonyme » de Google afin de générer une liste de synonymes proposés par le moteur de recherche pour un mot-clé déterminé. Afin de simplifier la recherche de ces mots, le tout sera automatisé par un script Python court et efficace. L’opérateur synonyme « ~ » de Google élargit votre recherche aux mots que Google considèrent comme synonymes de vos mots-clés. Google utilise également des mots apparentés mais qui ne sont pas de vrais synonymes. Ainsi, la recherche nutrition information renvoie toutes les pages contenant les mots nutrition et information. En élargissant votre recherche avec la requête ~nutrition ~information, Google utilisera également les synonymes et mots apparentés comme food, health, etc. Notez que les synonymes fonctionnent mieux en anglais. Rechercher ces synonymes peut devenir un exercice amusant. Imaginons que nous recherchons tous les synonymes du mot « car ». Nous commençons par lancer une recherche Google avec ~car pour trouver toutes les pages contenant un synonyme de ce mot. Dans la page des résultats, ces synonymes sont mis en évidence en gras, de la même manière que les mots-clés que vous utilisez d’habitude. En parcourant les résultats, la seconde page se trouve sur la copie d’écran ci-dessous, pour ~car nous pouvons trouver les mots car, cars, motor, auto, BMW et plusieurs autres synonymes en gras. ~car génère une liste de synonymes en gras dans la pages des résultats Intéressons-nous maintenant à ces synonymes plutôt qu’au mot-clé d’origine, « car ». Pour y parvenir, il nous suffit d’exclure le mot « car » de la requête : ~car -car. Cette astuce nous fait gagner du temps en nous évitant de mettre de côté les occurrences du mot « car ». Ici encore, nous devons parcourir les résultats pour trouver de nouveaux synonymes (j’ai par exemple trouvé automotive, racing, vehicle, et motor). Notez tous les nouveaux synonymes que vous trouvez et excluez-les de la requête (par exemple ~car -car -automotive -racing -vehicle -motor) jusqu’à ce que vous atteigniez la limite de 10 mots-clés imposée par Google et au-delà de laquelle les mots-clés sont ignorés. Vous finirez par rassembler une liste impressionnante de mots-clés. L’approche algorithmique de la recherche de synonyme proposée par Google permet de découvrir des synonymes que vous n’auriez pas trouvé dans un dictionnaire synonymique classique. Le code Si vous estimez que cette tâche est bien trop pénible et qu’elle conviendrait mieux à un programme informatique, vous avez tout à fait raison. Voici un petit script Python qui réalisera ce travail à votre place. En partant d’un mot-clé, ce programme génère une liste de synonymes de plus en plus grande. Vous aurez besoin de la bibliothèque PyGoogle pour interfacer ce script avec l’API Google.

blastfeed - select. sift. read.

by 2 others
"The easiest way to filter RSS

23 February 2007

JBoss Seam Version 1.0 Released ! - Actualités - Java & Solaris par le Laboratoire SUPINFO des technologies Sun

Seam a été pensé pour éliminer la complexité tant au niveau de l’architecture que de l’interface de programmation (API). Il se base sur l'utilisation de POJO et des annotations (conformément à l'évolution de Java EE 5). Il réduit alors considérablement les fichiers XML dans une application Web. Il offre égalemement de nombreux avantages : * Intégration JSF et EJB3 (très simplement) * Nouveaux contextes : conversation et processus métier * Intégration de flux de pages (pageflows) * Intégration de jBPM très facilement (business process) * Accès aux EJB à partir d'AJAX (JBoss Remoting) * ... Ce framework offre de nombreuses facilités pour le développement d'application et se présente de plus en plus comme un futur standard .... Les prochaines versions faciliterons l'intégration des Bus de Service d'Entreprise (ESB) avec JBI (Java Buiness Integration).

21 February 2007

mir.indymedia.org

mir.indymedia.org A Java-based CMS for alternative media

11 February 2007

Chat - Munci - Regis Granarolo

Il s'agit de mieux séparer ce qui relève de l'intérim d'une part et d'autre part de prestations expertes : les SSII doivent (re)devenir des fournisseurs de services et pas de main d'œuvre. Il s'agirait aussi, en vrac, de réglementer la sous-traitance en cascade, l'externalisation - la loi TUPE en Grande-Bretagne peut être un bon exemple, la non-facturation des stagiaires...etc. Tout un programme.

Etoody - Study Online - Étudie en ligne

by 3 others
Echangez vos cours, vos notes, créez des quizz, et entrainez-vous sur ceux des autres, discutez sur votre forum et exprimez vous sur votre blog.

06 February 2007

Feedity - RSS Web Feed Generator for Web Pages without Syndication

by 9 others
Feedity (formerly FeedTier) is a web feeds generator for web pages without an existing syndication format like RSS or Atom. Feedity performs content analysis, picks-up the most prominent cluster of hyperlinks and automatically generates RSS web feeds from web pages without existing syndication. Feedity (beta) is an experimental service and free for personal use.

MultiRSS :: Multiple RSS Feed Readers, One Solution.

by 9 others
MultiRSS is a free service that allows you to replace all of your RSS feed subscription buttons on your blog with one button. After you have replaced your buttons, your users will click on our button and then be able to choose the RSS reader that they use from our current list of the 38 most used RSS readers.

Ajax and REST, Part 1

The more that server-side Web applications become immersive by following rich-application models and delivering personalized content, the more their architectures violate Representational State Transfer (REST), the Web's architectural style. These violations can decrease application scalability and increase system complexity. By achieving harmony with REST, Ajax architecture lets immersive Web applications eliminate these negative effects and enjoy REST's desirable properties. In just 15 years, the World Wide Web has grown from a researcher's experiment to one of the technological pillars of the modern world. Originally invented to let people easily publish and link to information, the Web has also grown into a viable platform for software applications. But as applications have become more immersive by using rich application models and generating personalized content, their architectures have increasingly violated Representational State Transfer (REST), the Web's architectural style. These violations tend to decrease application scalability and increase system complexity. The emerging Ajax Web client architectural style lets immersive Web applications achieve harmony with the REST architectural style. They can enjoy REST's desirable properties while eliminating the undesirable properties experienced when an application violates REST's principles. This article explains how and why Ajax and REST succeed together for immersive Web applications.

05 February 2007

DefectiveByDesign.org | The Campaign to Eliminate DRM

by 1 other
UK Greens Denounce VISTA Submitted by Gregory Heller on Wed, 2007-01-31 12:58. badvista | environment | vista | windows ZD Net ran a story on the UK Green Party position in opposition to Windows Vista. Vista requires more expensive and energy-hungry hardware, passing the cost on to consumers and the environment," Wall said. "This will also further exclude the poor from the latest technology, and impose burdensome costs on small and medium businesses who will be forced to enter another expensive upgrade cycle." Rather than opting for another proprietary OS, the Green Party argues that businesses should look into free software alternatives — such as Linux — as they don't require high-specification hardware. "Free software can run on existing hardware, reduces licensing costs for small businesses and affords important freedoms to consumers. The UK government should capitalise on this opportunity to promote the use of free software in public bodies," added Wall.