[2994 total ]
Dougal Matthews: Itchy Fingers

Last night after I got home from techmeetup I had
itchy fingers, the domain transfer had finally came through so I went for it. I
flipped the switch.

My new website and sitesprint effort is now officially launched!

I'll ... [More] be doing a full post-mortem of the sitesprint development after its
finished as I hope to do a few more final tweaks on things.

Please let me know if you have any feedback or comments - I really appreciate
and enjoy getting feedback from my visitors. [Less]

Washington Times Open Source: Django Object Permissions Proof of Concept

In the process of refactoring an app, we realized that we needed a general purpose, object-level (or row-level) permission system. So we looked around and found two: django-authority and django-granular-permissions. Django Granular permissions was ... [More] closest to what we wanted, but not as complete as Django Authority. We figured we could flush out Granular Permissions and all would be well.
So one thing lead to another and it has morphed into something different. Because of the complexity of object-level or row-level permissions, we wanted to get feedback on the current proof-of-concept from the Web's best and brightest: the Django developer community.

First the code: on github.com
For discussions, I created a public Google Wave, as it seems more appropriate than just comments on this blog or via e-mail list. Since I don't know how to reference them any other way, search for django permission with:public. If some of you aren't on Google Wave yet and want to comment, I do have some invites.
Now my introduction to the code: There is documentation, although it is preliminary. There is a script build_docs.sh that will build it and put it into docs/_build/html if you have Sphinx installed. It walks you through assigning permissions on your own code, or other models, granting permissions on users and groups and testing for permission.
There are unit tests, for the low-level code. There is still some testing code to write for the decorators and probably some other things I'm not thinking of.

There is an example project to use for testing, called: example. You can type ./manage.py syncdb in that directory and then ./manage.py test objectpermissions for testing, or playing.
The User and Group models get new functions:

grant_object_perm
revoke_object_perm
revoke_all_object_perm
has_object_perm
has_any_object_perm
has_all_object_perm
get_object_perm
get_object_perm_as_str_list
get_object_perm_as_int_list
get_object_perm_as_choices
get_objects_with_perms

The registered model has generic relations with UserPermission and GroupPermission and has user_perm_set and group_perm_set functions.
The registered model is also assigned a ModelPermission instance as perms that you can use to reference the individual permissions, or get the permissions in various formats.
There are four inline admin classes and instructions on how to modify an existing model's registered admin class.

Concepts behind the code:

Permissions are registered with a model, so you don't have to have full control over or even modify existing code.
Permissions are strings, but are stored as a bitwise integer behind the scenes.
The programmer doesn't need to know anything about the bitwise nature of the storage, but they can do some interesting things if they do. [Less]

Trey Piepmeier: Using the jQuery Autocomplete Plugin with Django

Here’s another look into the development of ComicBinder.

There’s already a good tutorial on how to use an autocomplete plugin with Django, but I wanted to use this much snazzier plugin.

The Process

Load both ... [More] jquery.autocomplete.min.js and jquery.autocomplete.css in your page.

In your form object, create a CharField to hold your autocomplete. Something like:

title = forms.CharField(label='', widget=forms.TextInput(attrs={'placeholder': 'The name [...] [Less]

David Larlet: ★ Pourquoi Python et Django

Retour sur l'événement Scrumpy auquel j'ai participé le mois dernier. J'ai déjà eu l'occasion de m'exprimer ici sur Pourquoi Python et Pourquoi Django mais le contexte était assez différent sur cet intervention car je devais commencer à ... [More] convaincre des bienfaits de Python. Or convaincre sur un langage ou un framework est relativement stupide.

On utilise un outil pour son usage, on peut faire des trucs super chiants aussi avec Python ou Django. Partant de là, comment parler des usages possibles, facilités par ces outils ? Ou reformulé un peu différemment, qu'est-ce qui me motive pour utiliser ces outils dans mon quotidien ?

Une lecture dont vous êtes le héros : soit vous voulez visionner l'intervention dans son intégralité (25 minutes) et je vous conseille de ne pas lire la suite avant (mais de sauter à la fin), soit vous continuez la lecture et vous pourrez vous rattrapper plus tard.

J'ai choisi d'explorer 2 axes un peu inhabituels : les vacances et le fun !

Vacances et productivité

Si on veut pouvoir partir en vacances confortablement, il va en fait falloir être plus productif, et ça la productivité ça parle à tout le monde et ça fait pro :-).

Apprentissage

L'apprentissage de Python est l'un des plus rapides qui soit, on peut l'enseigner aux enfants, aux élèves, aux développeurs, il suffit de quelques heures pour en maîtriser les bases. Avec quelques bases, on peut hacker sont premier programme en quelques minutes. Vraiment.

Rapidité d'apprentissage signifie aussi facilité à intégrer de nouvelles personnes dans une équipe ou à transférer des compétences sur un projet (ce qui est plutôt utile pour partir en vacances tranquille).

Agilité

Agilité : vaste programme car on en arrive à mettre tout et n'importe quoi derrière ce terme. En quoi Python vous fait gagner en agilité ? Il y a bien sûr l'usage des tests dont je parle ensuite qui rendent les refactorisations moins douloureuses, évitant les régressions inévitables autrement. Mais c'est surtout à l'usage que l'on se rend compte à quel point le langage est flexible et puissant.

Réutilisation

La philosophie de Python et d'être batteries included, c'est à dire de proposer une bibliothèque standard complète permettant d'effectuer les tâches courantes avec le langage de base sans avoir à installer des bibliothèques tierces. Ceci favorise le code portable et réutilisable entre plusieurs projets.

Fun et qualité

La relation entre le fun et la qualité ? Une équipe qui prend du plaisir à développer va introduire de la qualité dans son produit.

Conventions

Python repose sur des conventions de codage fortes qui favorisent la compréhension du code par un autre développeur. Ça paraît anodin énnoncé ainsi mais c'est pourtant capital pour la réutilisation et la maintenabilité du code. Lorsque vous prennez un code en main, bibliothèque externe ou code de votre collègue, vous n'allez pas être perdu grâce à une normalisation familière. C'est un gain de temps considérable à l'usage.

Tests

Python encourage l'usage des tests qui sont indispensables à la pérennité d'un code. Je ne vais pas me répéter sur ce point, c'est juste la représentation du capital de votre application, ce qui fait finalement sa valeur à long terme.

Élégance

Ici aussi, je vous renvoie sur le billet l'Artiste qui sommeille en chaque geek, la part d'élégance que vous pouvez trouver dans votre code dépend de vous, de votre sensibilité et de la vision que vous avez de vos créations.

En conclusion, grâce à une productivité accrue et à la qualité de son code, on gagne en séreinité et en confiance.

Django

Je ne vais pas réexpliquer la boîte à outils qu'est un framework web, vous pouvez aussi consulter une ancienne présentation sur Django si vous souhaitez aller plus loin.

Applications réutilisables

C'est aujourd'hui LE point fort de Django : un écosystème d'applications développées par la communauté de très bonne facture. Vous cherchez une application pour faire de l'OpenID, gérer des droits finement, pousser vos média sur S3, etc etc c'est possible et facilement intégrable à votre projet.

Cohérence

Le framework ayant été pensé dans sa globalité, on retrouve une cohérence et une qualité constante sur les différents points du framework. Et l'une des grandes forces de Django c'est la cohérence de sa documentation et son excellente qualité. Allez faire un tour dessus, ce n'est pas une légende :-).

Rapidité

Enfin un dernier argument en faveur de Django, c'est la rapidité de développement rendue possible grâce aux nombreux outils mis à disposition par le framework permettant d'éviter les tâches fastidieuses et répétitives.
Vu la vitesse à laquelle les sites évoluent, c'est un point essentiel à prendre en compte au lancement d'un projet.

Démonstration et code

Suite à la théorie, j'ai réalisé une démonstration live de ce que l'on pouvait avoir en pratique qui a également été filmée. Et je viens de rendre le code accessible pour que vous puissiez continuer/hacker/etc, c'est un twitter-like qui reprend pas mal des concepts Django. J'ai ajouté un peu de code pour que vous puissiez aller plus loin, pour repartir de la présentation il suffit de prendre la révision qui va bien. N'hésitez pas à poser des questions ici au besoin.

Formation

Suite à cette intervention était prévue une formation qui malheureusement a été reportée faute de participants. C'est vraiment dommage car j'étais bien motivé et j'espère qu'il y aura davantage de curieux lors de la prochaine session. Si vous êtes intéressé, n'hésitez pas à me contacter ou à contacter Stéphane, en plus le cadre est vraiment unique !

En conclusion, j'ai eu des retours assez positifs et j'espère avoir convaincu ou au moins donné envie à certaines personnes présentes d'essayer de nouveaux horizons :-). Si l'agilité vous intéresse (et ça devrait), je vous encourage également à aller consulter les vidéos de Claude Aubry.

Pourquoi Python et Django
a été rédigé par David Larlet pour
biologeek.com et a été originellement
posté le 11 décembre 2009. À part exceptions, c'est
©2004-2009 David Larlet et sous licence (presque) libre autorisant
la reproduction, la distribution et la modification sous certaines conditions.
Veuillez les respecter. [Less]

Simon Willison: Fixing Django Management Commands

Fixing Django Management Commands. Zachary Voase proposes dramatically improving Django’s management command API for Django 1.3. I’m in favour—management commands are one of the only APIs in Django that I have to look up every single time I ... [More] use. My optfunc library was written partially with management commands in mind—Zachary favours the argparse library. [Less]

Josh VanderLinden: Another Bash Tip

I just learned yet another goodie about the Bash shell that I must share with you. This trick made my day on so many levels.
You know how annoying it is when you get those ridiculously long commands in a terminal window? You know how much more ... [More] annoying it is when you generally can't Ctrl+arrow around the command to change bits and pieces when you're on OSX? If you've ever been in that... [Less]

Peter Bengtsson: Orphaned Land - Jewish Muslim Metal

Orphaned Land is a great metal band from Israel who I've known about for some time but never researched much.

"Israel's ORPHANED LAND is probably the only band from this country that has managed to succeed at building up a huge following ... [More] among Muslims and Arabian people"

I've never taken the time to listen to their lyrics and figure out what they're singing about. It's not a surprise that they're not pro one side only but I didn't know that they appeal to both sides which is quite fantastic. [Less]

Caktus Consulting Group: Caktus Consulting Group hosts Django sprint in Triangle, NC area

Django is a tool we use every day to build rock-solid web apps here at Caktus, and a development sprint is a concerted, focused period of time in which developers meet in the same space to get things done on a project.
We’re proud to annouce that Caktus is hosting a local Django development sprint in [...]

Simon Willison: What's coming in Django 1.2 (presentation notes)

What’s coming in Django 1.2 (presentation notes). I wrote up some background notes for the talk on Django 1.2 I gave at DJUGL last week.

Join us for a development sprint

I'll pass the microphone over to Jeremy Dunck, our volunteer Sprint
organizer:

There will be a
Django Development
sprint in
Uptown
Dallas next weekend (Dec 12 and 13). A development sprint is an
excuse to get ... [More] together, write some code, and have a good time doing
it. The purpose of this sprint will be to help finish features and
push out bug fixes in preparation for the
Django
1.2 release, which feature freezes January 26. If you're
interested in coming to work on other open source Django-based
projects, that's welcome too.

We'll be meeting at CoHabitat
(2517 Thomas Avenue, Dallas, TX 75201) and I'll be there to open
the doors at 9am both days.
RSVP via
Eventbrite if you're interested.

There will be another gathering in the
Triangle,
NC area, meeting at
Carrboro Creative Coworking, (205 Lloyd St, Carrboro, NC 27510).

For more information, please check out the wiki pages (Dallas,
Triangle,
NC).

We're looking for sponsors (lunch, coffee, beer, firewood, etc.),
so out the sponsors section of the wiki and add yourself (or your
company) if you'd like to bring something.

If you can't make it to Dallas or Norh Carolina in person, join us in the
#django-sprint IRC channel and help out
that way.

Hope to see you there! [Less]