public marks

PUBLIC MARKS from pvergain with tag tools

July 2007

Dabo Application Framework for Python in Launchpad

Dabo Application Framework for Python Dabo is a 3-tier, cross-platform application development framework, written in Python atop the wxPython GUI toolkit. And while Dabo is designed to create database-centric apps, that is not a requirement. Lots of people are using Dabo for the GUI tools to create apps that have no need to connect to a database at all. Desktop applications. That's what Dabo does. It's not YAWF (yet another web framework). There are plenty of excellent web frameworks out there, so if that's what you are looking for, Dabo isn't for you. But there are almost no desktop application frameworks out there, and if you want to create applications that run on Windows, OS X or Linux, Dabo is for you! We have taken what we've learned from 25 combined years of database application development, and built an easy-to-use runtime framework that runs on all three major platforms. Dabo consists of 3 logical tiers (UI; business logic; database access) plus an umbrella application object. More information can be found at

FrontPage - Storm

Storm is an object-relational mapper (ORM) for Python developed at Canonical. The project has been in development for more than a year for use in Canonical projects such as [WWW] Launchpad, and has recently been released as an open-source product.

May 2007

Python Apache Gump

Gump is Apache's continuous integration tool. It is written in python and fully supports Apache Ant, Apache Maven and other build tools. Gump is unique in that it builds and compiles software against the latest development versions of those projects. This allows gump to detect potentially incompatible changes to that software just a few hours after those changes are checked into the version control system. Notifications are sent to the project team as soon as such a change is detected, referencing more detailed reports available online. You can set up and run Gump on your own machine and run it on your own projects, however it is currently most famous for building most of Apache's java-based projects and their dependencies (which constitutes several million lines of code split up into hundreds of projects). For this purpose, the gump project maintains its own dedicated server.

April 2007

Papyrus UML

by 2 others
Papyrus is a dedicated tool for modelling within UML2. This open source tool is based on the Eclipse environment.

March 2007

Using the Rake Build Language

by 3 others
Rake is a build language, similar in purpose to make and ant. Like make and ant it's a Domain Specific Language, unlike those two it's an internal DSL programmed in the Ruby language. In this article I introduce rake and describe some interesting things that came out of my use of rake to build this web site: dependency models, synthesized tasks, custom build routines and debugging the build script.

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.

January 2007

The Trac Project - Trac

by 14 others
Welcome to the Trac open source project. Trac is an enhanced wiki and issue tracking system for software development projects. Trac uses a minimalistic approach to web-based software project management. Our mission is to help developers write great software while staying out of the way. Trac should impose as little as possible on a team's established development process and policies. It provides an interface to Subversion, an integrated Wiki and convenient reporting facilities. Trac allows wiki markup in issue descriptions and commit messages, creating links and seamless references between bugs, tasks, changesets, files and wiki pages. A timeline shows all project events in order, making the acquisition of an overview of the project and tracking progress very easy. Live Demo


by 3 others
A Pure-Python library built as a PDF toolkit. It is capable of: * extracting document information (title, author, ...), * splitting documents page by page, * merging documents page by page, * cropping pages, * merging multiple pages into a single page, * encrypting and decrypting PDF files. By being Pure-Python, it should run on any Python platform without any dependencies on external libraries. It can also work entirely on StringIO objects rather than file streams, allowing for PDF manipulation in memory. It is therefore a useful tool for websites that manage or manipulate PDFs. Download Latest The latest release of pyPdf is version 1.9, release on December 15th, 2006. * pyPdf-1.9.tar.gz (src) * (src) * pyPdf-1.9.win32.exe (Win32 installer) Documentation Documentation of the pyPdf module is available online. This documentation is produced by PythonDoc, and as a result can also be seen integrated with the source code. Example from pyPdf import PdfFileWriter, PdfFileReader output = PdfFileWriter() input1 = PdfFileReader(file("document1.pdf", "rb")) # print the title of document1.pdf print "title = %s" % (input1.getDocumentInfo().title) # add page 1 from input1 to output document, unchanged output.addPage(input1.getPage(0)) # add page 2 from input1, but rotated clockwise 90 degrees output.addPage(input1.getPage(1).rotateClockwise(90)) # add page 3 from input1, rotated the other way: output.addPage(input1.getPage(2).rotateCounterClockwise(90)) # alt: output.addPage(input1.getPage(2).rotateClockwise(270)) # add page 4 from input1, but first add a watermark from another pdf: page4 = input1.getPage(3) watermark = PdfFileReader(file("watermark.pdf", "rb")) page4.mergePage(watermark.getPage(0)) # add page 5 from input1, but crop it to half size: page5 = input1.getPage(4) page5.mediaBox.upperRight = ( page5.mediaBox.getUpperRight_x() / 2, page5.mediaBox.getUpperRight_y() / 2 ) output.addPage(page5) # print how many pages input1 has: print "document1.pdf has %s pages." % input1.getNumPages() # finally, write "output" to document-output.pdf outputStream = file("document-output.pdf", "wb") output.write(outputStream) outputStream.close()

James Clarke →

by 1 other
A Python wrapper and example scripts for the Flickr API. It returns nice objects that are easy to manipulate. is a Python wrapper for the Flickr API. In most cases it returns nice objects that are easy to manipulate: * - requires an API KEY (variable API_KEY). Some example scripts: * - Generates wallpapers from photos with the given tag(s) (Requires PIL) * - Creates a photoset from your photos with the given tag(s). * - Prints out a list of urls for photos in a given group pool.

Welcome! | Open Source Recruiter

1. Resume objects are validated using OSR tools, and can then be converted to a number of different formats, including HR-XML, HTML, XHTML, PDF, and Open Document text (ODT). OSR comes budled with default stylesheets for performing each of these transformations. It also allows users to define their own stylesheets for custom transformations. Click on a link below to display a sample resume formatted using one of the default stylesheets that ships with OSR: * HR-XML example * HTML example * XHTML example * PDF example * Open Document text example 2. Resumes can optionally be persisted to an SQL-compliant datastore. The resume database can be manipulated just like any other database; searching and data manipulation can be perfomed by anyone who knows SQL.


Amiko is the new resumé. The Internet has changed the way people are hired, more and more companies are using online job postings to find employees. Printing and mailing resumés can cost and arm and a leg. If you post your resumé on a job site, it only works for that site. Amiko allows you to span the job sites, from Monster to Craigslist, just post a link to your Amiko resumé and that's it.

XML Résumé Library:: Welcome

by 7 others
The XML Résumé Library is an XML and XSL based system for marking up, adding metadata to, and formatting résumés and curricula vitae. It consists of these components: * An XML Document Type Definition (DTD) for describing résumés. * Three XSL stylesheets to transform an XML résumé into: o Web-ready HTML, o Print-ready PDF, or o Plain, unformatted text o RTF transforms (requires third-party software) * A targeting filter that allows you to focus your résumés to a particular employer without manually editing your source resume file. Applications * Résumé production: produce web and print résumés from a single source file. * B2B (business-to-business): transfer résumés between human resources and other company divisions, or between recruiters and employers. * Search and retrieval: increase precision in locating employees using résumé metadata.

bbPress » Home

by 26 others
bbPress is forum software with a twist from the creators of WordPress. Have you ever been frustrated with forum or bulletin board software that was slow, bloated, and always got your server hacked? bbPress is focused on web standards, ease of use, ease of integration, and speed. We’re focused on keeping things as small and light as possible while still allowing for great add on features through our extensive plugin system. What does all that mean? bbPress is lean, mean and ready to take on any job you throw at it. So let’s get started. Download, install, and you’re on your way!

Technical Details One of Weebly's many exciting aspects is the technology behind it. Here are a couple features that we haven't seen implemented in many other places. Customizable strong AJAX use -- drag and drop, effects and animations, customizable to your personal preferences. Use the site with eye-pleasing animations, or turn them off for a snappier experience. Ubiquitous interface design -- Weebly's interface is uniform throughout, and uses ease-of-use friendly error reporting (no javascript pop-ups!) AJAX file upload -- Images and other files are uploaded with a progress bar. As large files uploaded over the web may take a long time, this progress bar is a useful indicator of how much time is left. Back/Forward button integration -- With a robust windowing system that allows a javascript-based application in one page, back/forward buttons are enabled to let a user navigate through the various on-screen windows. Powerful element design -- Weebly's AJAX-based editor allows complex elements to be dragged onto a page, such as a Google Maps element, or a Flickr feed. No HTML knowledge is required. To customize these elements, double click them and choose from a simple set of drop-down options. Data-driven elements -- all element definitions are powered by a database entry and may be defined in multiple different ways. Adding an element is as simple as performing a database insertion, which opens the door to community-driven elements. Media handling -- upload your images to Weebly, choose a size (Small, Medium or Large) and your images will automatically be resized for you. Weebly is a powerful interface for simplying the web creation process. Data-driven elements allow near-infinite customizability, and content created through Weebly can be published on any server. More Information Weebly was created using The Gimp and vim on Fedora Core 5 client machines. We used Fireworks occasionally, too. For additional information, please contact us (

Weebly - Website Creation Made Easy

by 31 others (via)
Weebly is the easiest way to create a great looking website and share it with the world for free. From personal to professional sites, Weebly will enable you to spend your time on the most valuable part of your site, its content.

Outils Agiles - Agile-Swiss

Ci-dessous, les outils (informatiques ou non!) et techniques que les contributeurs de ce site ont utilisés, avec (ou sans?) succès, dans des projets appliquant l'XP et ce, triés par pratiques XP.

A cute introduction to Debtags

The Debian archive is getting larger and larger, and the software more and more diverse and complex. Organising software in the archive is difficult, and the existing section system, designed to cope with a much smaller number of packages, is no longer sufficient. The goal of Debtags is to provide a working alternative for categorising software that can cope with our numbers. The core idea of Debtags is to adapt the technique of Faceted Classification to be used for our packages. Faceted Classification is a 70-years-old library science technique which is being rediscovered and loved by modern Information Architects. Debags attaches categories (we call them tags) to packages, creating a new set of useful structured metadata that can be used to implement more advanced ways of presenting, searching, maintaining and navigating the package archive. Example uses of Debtags include searching for software, browsing the archive, and filtering out unwanted groups of packages. The Debtags effort needs to face three major problems: 1. Creating a suitable vocabulary of categories. 2. Categorizing the vast array of packages. 3. Having applications make use of Debtags data. All three issues are being actively addressed with good results: * Debtags has already acquired a large set of tags, even if the set is in continuous need of refining; * a large part of our package archive has been at least partially categorised, and there is a tool called debtags-edit that every developer and user can use to categorise the packages they know best; * a new library called libapt-front is being developed as a smart front-end to libapt which can also access other data sources, such as Debtags, popularity contest (popcon) results, debram metadata and more. This paper gives a broad technical overview of the Debtags project, its theoretical foundations, and the tools available for it now. The paper also offers some practical tutorials on how to do all sort of nice Debtags tricks.

Søren Hansen

OPIE is a free implementation of the S/KEY (one time password) specifications (RFC 1760 and RFC 2289). The idea is that each password is only usable once so it doesn't matter if anyone grabs it as it'll be useless when they try to use it.

TestDisk - CGSecurity

by 18 others
TestDisk is a powerful free data recovery software! It was primarily designed to help recover lost partitions and/or make non-booting disks bootable again when these symptoms are caused by faulty software, certain types of viruses or human error (such as accidentally deleting your Partition Table). Partition table recovery using TestDisk is really easy.

Ddrescue - GNU Project - Free Software Foundation (FSF)

by 2 others
GNU ddrescue is a data recovery tool. It copies data from one file or block device (hard disc, cdrom, etc) to another, trying hard to rescue data in case of read errors. Ddrescue does not truncate the output file if not asked to. So, every time you run it on the same output file, it tries to fill in the gaps. The basic operation of ddrescue is fully automatic. That is, you don't have to wait for an error, stop the program, read the log, run it in reverse mode, etc. If you use the logfile feature of ddrescue, the data is rescued very efficiently (only the needed blocks are read). Also you can interrupt the rescue at any time and resume it later at the same point. Automatic merging of backups: If you have two or more damaged copies of a file, cdrom, etc, and run ddrescue on all of them, one at a time, with the same output file, you will probably obtain a complete and error-free file. This is so because the probability of having damaged areas at the same places on different input files is very low. Using the logfile, only the needed blocks are read from the second and successive copies. The logfile is periodically saved to disc. So in case of a crash you can resume the rescue with little recopying. Also, the same logfile can be used for multiple commands that copy different areas of the file, and for multiple recovery attempts over different subsets. Ddrescue aligns its I/O buffer to the sector size so that it can be used to read from raw devices. For efficiency reasons, also aligns it to the memory page size if page size is a multiple of sector size.

Documentation [Universal Encoding Detector]

Universal Encoding Detector Character encoding auto-detection in Python. As smart as your browser. Open source.

by 1 other
Mercurial est un système distribué de gestion de sources écrit en Python. Il permet à des développeurs de travailler avec leur code et de le versionner comme avec Subversion, mais sans avoir à dépendre d'un serveur centralisé: chaque modification est conservée localement, et le développeur peut à tout moment se synchroniser avec un autre repository, qu'il soit sur un serveur ou sur un autre poste de développement. Un repository Mercurial est accessible entres autres en SSH, et peut être recopié localement pour être modifié (commande clone), puis mis à jour avec la commande push. L'utilisation de Mercurial est très similaire à celle de Subversion: dabox:~ tarek$ hg Mercurial Distributed SCM basic commands (use "hg help" for the full list or option "-v" for details): add add the specified files on the next commit annotate show changeset information per file line clone make a copy of an existing repository commit commit the specified files or all outstanding changes diff diff repository (or selected files) export dump the header and diffs for one or more changesets init create a new repository in the given directory log show revision history of entire repository or files parents show the parents of the working dir or revision pull pull changes from the specified source push push changes to the specified destination remove remove the specified files on the next commit revert revert files or dirs to their states as of some revision serve export the repository via HTTP status show changed files in the working directory update update or merge working directory Mettre en place un projet basé sur Mercurial consiste donc à mettre à disposition des développeurs un repository via un utilisateur SSH. Cette mise en place est expliquée sur cette page : Mercurial propose, comme Subversion un système de hook pour effectuer des opérations lorsqu'un développeur "push" des modifications sur le serveur désigné comme "central". Un script pour envoyer des mails à chaque push est fourni sur le site, mais n'est pas très souple (script shell basic). Voici un script Python qui offre un peu plus de souplesse: #!/usr/bin/python import sys import os import smtplib from email.MIMEText import MIMEText from ConfigParser import ConfigParser from email.Utils import formatdate conffile = os.path.join(os.path.dirname(__file__), 'commithook.conf') config = ConfigParser() def command(cmd): return os.popen(cmd, 'r').read() def send_mail(log, email, subject): msg = MIMEText(log, 'plain', 'UTF-8') sender = config.get('configuration', 'sender') prefix = config.get('configuration', 'prefix') msg['From'] = sender msg['To'] = email msg['Date'] = formatdate(localtime=True) msg['Subject'] = '%s %s' % (prefix, subject) server = smtplib.SMTP('localhost') try: server.sendmail(sender, [email], msg.as_string()) finally: server.quit() if __name__ == '__main__': hg_node = os.getenv('HG_NODE') subject = command('hg log -r %s | grep "^summary:" | cut -b 14-' % hg_node) emails = config.get('configuration', 'emails').split(',') for email in emails: log = command('hg log -vpr %s' % hg_node) send_mail(log, email, subject) Il est associé à un fichier de configuration qui permet d'indiquer: * le nom de l'expéditeur * le préfix des mails * la liste des emails

reconstructor - What is Reconstructor?

Reconstructor is a Live CD creator for Ubuntu Linux. It uses the Ubuntu Linux Live CD as a base, and then allows customization of boot screens (usplash), gnome settings, and software (you can also use the chroot environment to make other changes before creating the live cd). Reconstructor uses the solid Ubuntu foundation, and allows for extensive customization. For example, create a custom Live CD with blender, inkscape, etc. included for a friend in graphics, or simply use reconstructor to re-brand your environment (wallpaper, fonts). Reconstructor is written in python and is licensed under the GNU General Public License (GPL)

Customisez votre CD Ubuntu Desktop - The Racoon's Blog

Je vous vais expliquer briévement comment créer votre propre cd Ubuntu customisé en utilisant un petit programme très sympathique, écrit en Python et qui se nomme Reconstructor : Reconstructor pour permet de créer votre propre CD Live Ubuntu simplement et sans passer par des lignes de commandes fastidieuses car toute l'interface est entièrement graphique. Il utilise comme base le cd original Ubuntu Desktop, dont vous devrez vous munir, et permets la personnalisation de l'environnement d'accueil (usplash), le paramétrage de Gnome et l'ajout de logiciels. Il permet donc d'insérer directement vos applications préférées sur le CD et évite l'utilisation des dépôts sur Internet. En outre il permet l'utilisation du support DVD ce qui permets d'ajouter pratiquement ce que voulez dans la limite de l'espace disponible bien entendu ; mais avec plus de 4 Go à sa disposition on a de quoi voir venir. A vous d'imaginer les possibilités ..

December 2006

Universal Feed Parser

by 5 others (via)
Parse RSS and Atom feeds in Python. 3000 unit tests. Open source.