A Django site.
November 22, 2008

Jesús del Carpio
jj
Jj's blog
» Access MEDIA_URL from static Javascript files in Django

This is an old trick, that’s been very handy :) .

Many times for various reasons you’ll need to access your media files from your Javascript files, to display images, change paths, or whatever. And in most cases your development MEDIA_URL and production MEDIA_URL will be different, so having to change them depending on the enviroment can be a bit tricky being them static files I’m assuming you are using static files your your .js right?.

What I do to help this is add the following to my base.html :

<script type="text/javascript">
    var MEDIA_URL = "{{MEDIA_URL}}";
</script>

before I load any of my .js files, and in them I simply refer to the MEDIA_URL variable just as in my Django templates.

Of course, you need to have your settings.MEDIA_URL variable on template context via whatever method you feel mor confortable with, personally I use context_processors :) .

November 14, 2008

Jesús del Carpio
jj
Jj's blog
» Django cheap pages

Sometimes I end up using Django for the wrong thing, just to dispatch pages and put all my content in the templates. Flatpages are too flat and other DB based content tools are too complex. I just want to use the dispatcher, and the templates (I know, I could use web.py, or whatever other Python tool).

So, In order to save myself some time, I made cheap_pages.py, which is a wrapper for the patterns() method that will populate it with direct_to_template calls.

So instead of doing this:

>>> url(^name/$,
...    direct_to_template,
...    {'template': 'name.html'},
...    name='name')

I can do this:

>>> page('name')

Or instead of this:

urlpatterns = patterns('',
    url(^pages/page1/$,
       direct_to_template,
       {'template': 'page1.html'},
       name='page1')
    url(^pages/page2/$,
       direct_to_template,
       {'template': 'page2.html'},
       name='page2')
    url(^pages/page3/$,
       direct_to_template,
       {'template': 'page3.html'},
       name='page3')

)

I can do this:

urlpatterns = build('pages/', ['page1', 'page2', 'page3'])

I’ve added the file to Google Code under Django-cheap-pages, in case anyone is interested in improving it :) .

November 1, 2008

Antonio Ognio
gnrfan
Gnrfan.org
» Halloween 2008

When I was a kid here in Peru we didn’t celebrate Halloween at all. October 31th is for the day of peruvian folk music and tomorrow is also a holiday but today Halloween time got us inspired at work and got some pumpkins to carve some cool designs on them.

Since we are a Django shop at Aureal we got this Django pumpkin carved:

This is how my desktop looked today for a while at work. I’ve posted this pic to Deskograpy too.

August 15, 2008

Antonio Ognio
gnrfan
Gnrfan.org
» Import this

Since i’m still new to the Python culture I wasn’t aware of the “import this” eastern egg. I just heard my friend Gustavo mentioned that IronPython is lacking “import this” and my curiosity was invoked. I quicky tried a few Google searches with no results. Maybe I should had tried something like “import this eastern egg” but I was only suspecting that could be the case so I changed the strategy and fired up a python interpreter on an xterm with this result:

Once the eastern egg had been confirmed I googled a bit to learn more and found it even has a PEP of its own, PEP-20. The text featured is The Zen of Python by Tim Peters. It’s a great teaching! It even appears listed as the first item in this list of python must-read documentation. Nice to know :)

There are some more Python import eastern eggs. Try import __hello__ and from __future__ import braces. Well, for the last one you always have Tim Hatch’s pybraces.

August 11, 2008

Cesar Villegas
slayer
» Conferencias: Dynamic Programming Day 2008

Si eres desarrollador web y planeas dedicarte en serio a la programación para web te recomiendo firmemente que acudas a las conferencias Dynamic Programming Day 2008 organizadas por el Grupo de Usuarios de Linux del Perú
Dynamic Programming Day 2008

La entrada es completamente gratuita y ademas se van a regalar CDs con códigos fuentes, vídeos y documentación. Se hablará de todos los lenguajes de “moda” y sobre las últimas tendencias en programación web. Asi que ya saben no se la pierdan ;)

Mas información con el programa y los detalles en la página del evento: http://www.linux.org.pe/dpd08/

June 16, 2008

Nicolás Varcarcel
nxvl
Nikolas Valcarcel
» More news!

It has been a really busy week, lot’s of news and things to share with you, so as always let’s start:

Software Freedom Day
Ubuntu Perú is placed to announce that is going to be in charge of the Software Freedom Day here, we are trying to run a different but amazing event, we have some ideas for that, we are trying to run a Lan Party using OpenArena, and have an inter university contest of FOSS related projects so we can promote and some how wake the students of the local universities up to be more active on the FOSS, and some other also, but everything on his time.

Global Bug Jam
We are also going to be part of the Ubuntu Global Bug Jam!! I’m very sad that we are just going to run it on Lime, but i’m trying to move some people from other towns to run a Bug Day there and just triage some Bug Reports and help, but we will see what happens.

Packaging Jams
Last Friday i run a packaging jam on my university it was really nice to see some students going, and more impressive to see a teacher in there! It was awesome, we only package ed from source because we run out of time, but i will patch some bugs this Friday, it seems that they want some workshops every Fridays so i will try to get them involved in ubuntu!
Also i have been invited to run a packaging Jam next week, i think, on other LUG’s place they need to confirm me the date, but it’s almost a fact i will be there!

CONASOL
This weekend i have been on Chimbote (6 hours by bus from Lima to the north) giving a talk on a congress they have there, i talk about the Ubuntu Behind the Scenes (thanks pedro for the presentation) and they were very happy, i hope to see people involved in the project soon, they were really happy and interested.

UCSA
As i focus my work on the server team of ubuntu i have been focusing on a new tools to manage services and configurations. I have seen some people interested in this idea asking what was about it: It’s not dead, i’m still working on that, i have been evaluating Augeas, and it seems that it’s really useful this days i will play more with it and package it for further development, so stay tunned or send me an e-mail if you want to help with this.

I’ve got my visa!
Now it’s a fact, i will be on Miami from 28 July to 6th August, i’m going to be in orlando (yes, i’m going on vacations to Disney) and one night in Tampa so if you live in there i’m looking to meet with some LoCo’s and have a good time, so send me and e-mail to talk about the details!

Ok, i think this is it for now, i will try to post more now that i’m not so busy as last week!

June 6, 2008

Nicolás Varcarcel
nxvl
Nikolas Valcarcel
» Terminator 0.9 beta 1

Terminator 0.9 Feature Freeze has come, i’m really excited to see the new features working, they are awesome, but what are this new exciting features?

  • Tabs: Now terminator supports tabs, you have different tabs with splited terminals on each one.
  • Drag & Drop: Now you can reorder your terminals, you just need to press Cntrl + right click and drag and drop your terminals wherever you want!
  • Terminal zooming: This is one of the more exiting ones, have you expect problems when using splited terminals and one of them turns to little for some seconds? Now you just need to press ctrl+shift+z to have this terminal on the whole window and then use the same key combination to put it back on it’s place! It’s awesome!
  • Terminatorrc: Don’t like gnome environments? Now you don’t depend on gnome-terminal to configure your terminator, you can use ~/.terminatorrc to tune your terminal as you want it to be
  • Titles: kind of confused when using ssh connections inside terminator? Now we support titles, so you always have a title on each splited terminal to know where you are working on

It’s really awesome to see al this changes comming, they make terminator really usefull, want to try them? Help the terminator team to test it, just add my ppa to your sources.list:

deb http://ppa.launchpad.net/nvalcarcel/ubuntu hardy main
deb-src http://ppa.launchpad.net/nvalcarcel/ubuntu hardy main

Download it:

$sudo apt-get update; sudo apt-get install terminator

And report bugs if you find some: https://bugs.launchpad.net/terminator

Excited? Digg it!

June 5, 2008

Nicolás Varcarcel
nxvl
Nikolas Valcarcel
» Membership, LoCo, and stuff

It has been a while since i don’t post, since i’ve been traveling on europe and then kind of busy in the work and adapting to the correct timezone, so i have a lot of things to talk about.

Memberships
I’m really proud to anounce that i’m not the only ubuntu member any more, this week 3 new Peruvians have been approved by the regional board, i’m very happy of that since i work with them in the Peruvian LoCo Council managing the LoCo team and i know the hard work they have been doing. Also i’m really happy to see our server team documentation leader been approved as member also!
So i want to congratulate Andres, Dante, Michael and Adam! Keep rocking guys!!

Peruvian LoCo team
Yesterday the Peruvian LoCo team has been finally approved as an official LoCo!! We have work a lot on this so i was very happy when i start seeing the “+1″ from the LoCo Council members!! Rock on Peru!!

Global Bug Jam
I was very happy to read about the Global Bug Jam! It’s a wonderful idea, i’m already coordinating with the Peruvian LoCo team to run one here in Perú. Sounds like a good idea to you? Digg it and help spreading the word!

Software Freedom Day
On Prague there was a nice guy who talk about the Software Freedom Day, it looked as a good idea to me, so we are coordinating on the LoCo team to run one (or some) in Perú. If you don’t find any in near your place, start thinking on running one.

Server Team Blog
That’s a great idea, i’m proud to announce that mathiaz has started the Server Team Blog, where a lot of news about the server team will be posted, so stay tunned.

Ubuntu Centralized Managment Console
Since this week (today) was the deadline for presenting the blueprints for the server team i have been working on the specification of the proyect i talked about with some people on Prague i’m kind of stucked with some ideas and since i haven’t have time, since i need to recover the lost time at work on the last 2 week i kind of haven’t finished it :( but i will still work on that, the goal is ubuntu 10.04 so i have some time, if you have some ideas, please send them to me to nvalcarcel AT ubuntu DOT org

Conasol
Next week i will be on the National FreeSoftware Congres in chimbote, i will talk about the ubuntu backstage, how the full process behind the nice release are (thanks pedro for your presentation!!) and maybe run a Packaging Jam in there if have some time and a place where i can i hope to see people from there involved on the project, i promise to post some pictures of them if i can, so stay tunned.

April 7, 2008

Nicolás Varcarcel
nxvl
Nikolas Valcarcel
» Buster, Hardy, Prague and some other news

This have been busy week’s so i have been a little offline, but as usual when it happens i will do a little summary of what happened, so here we go:

Buster is here
Finally i have my brand new Thinkpad T61 on hands, i installed Hardy Heron Beta and it works really good, i have almost no problems with it working out of the box, the only thing i need to tune is the hibernation feature which doesn’t work properly, but i haven’t have time to report it or check what is happening.

I’ve got my visa
Everything is in order now, i have all my papers for attending to UDS, last week i got my visa, so it’s confirmed, i’m going to Praga, i’m really exited about it, i hope to finally meet face to face the people i work almost every day with it will be a really nice experience, so see you un Prague!!!

University started
Last week i started classes at the university once again, i have a really interesting course named “computer graphics” in which we use the MFC library, i was hopping to have a little fight with my teacher about the final course work, because i don’t even have a windows machine to do it, but i was really surprised when he had the idea and propose me to do the final course work using OpenGL and Free tools, that’s surprising because on the university i study almost everything is done with Microsoft tools and technologies and they doesn’t allow the students to use anything different, but it’s finally changing!!!

Hardy Release party
We have almost everything ready, we are running a Release Party on May the 3th, we have been working on the place, the talks, and making everything works, and we are almost ready! So if you are in Perú i hope to see you at the San Marcos University that day!

She came finally
The last 4 months have been really long and hard for me, my girlfriend have been working on Vail Colorado as part of an exchange program i missed her SO much, but she’s finally here again since Friday morning and we have spend a wonderful weekend together, i love you so much!!

March 22, 2008

Gustavo Picón
tabo
tabo :: para todos y para nadie
» Meme: Top 5 de aplicaciones gratuitas

Meme originado en Inbitado de José "Hiro" Kusunoki, rebotado hacia mí por Arturo Goga, y bueno, luego de tanta buena lectura en su blog lo mínimo que puedo hacer es responder, asi que aquí va mi top5:

1) Linux/FreeBSD

beastie_and_tux

Empate técnico en sistemas operativos (que también son programas): Linux lo uso en todos mis desktops y hasta en mis dispositivos móviles, FreeBSD va en todos mis servidores (ayer nomás instalé un firewall con el nuevo FreeBSD 7).


2) Python


Python

Python. Amor a primera vista, es posiblemente el lenguaje mas conciso, elegante y balanceado que he usado. Maduro, con infinidad de librerías, frameworks y aplicaciones, es hoy en día lingua franca en el mundo del Open Source. Una de las ventajas del lenguaje es que la mayoría de sus usuarios son programadores profesionales, a diferencia por ejemplo de ser sysadmins (perl) o diseñadores gráficos (ruby), por lo que en promedio el código de las aplicaciones es de mucho mayor calidad. Tengo la suerte de tener un trabajo en el que me pagan por programar en Python, asi que va en mi lista de aplicaciones indispensables.

3) Vim

Vim

Para alguien que vive en UNIX, la elección de un editor de texto tiene una connotación religiosa, algo que los usuarios de sistemas inferiores jamás entenderán. vi es parte de POSIX 1003.2 asi que tengo la garantía que lo encontraré en cualquier *NIX. El clon que uso, vim, es el mas popular en este momento y es bastante extensible con plugins. He publicado mi .vimrc y bufman.vim, un plugin de manejo de buffers. Y recientemente (hace un par de años) me he vuelto adicto a project.vim. Un color scheme? el default, pero cuando me siento aventurero uso metacosm.

Al menos una vez al año me paso una semana probando otros editores, incluido emacs, que lamentablemente no puedo usar ya que no tengo 45 dedos. De los editores gráficos me gustó mucho la versión profesional de Komodo IDE, pero al igual que TODOS los editores en modo GUI tiene 2 problemas:
a) A primera vista tienen infinidad de características, pero no llegan a la riqueza de vi o emacs
b) No lo puedo usar en un shell remoto

4) OpenSSH

OpenSSH

Este no es un blog (tan) nerd, asi que este sea posiblemente el programa mas "raro" de la lista, pero OpenSSH es un software con el que simplemente no podría trabajar tranquilo: encripta todo el tráfico de red con el que trabajo. Es gracias a OpenSSH que puedo dormir en las noches, y las características de forwarding hacen que hasta el día de hoy me salgan lágrimas de emoción.

5) bash

Mi habitat natural es el shell de UNIX, y el shell de mi elección es bash. Lo uso a diario y sin él mi vida sería totalmente distinta: nunca me acostumbré a csh y mis coqueteos con zsh no llegaron a mayores. En combinación con screen se crea una relación simbiótica imbatible y que uso los 365 días del año.

tags: , , , , , ,

December 29, 2007

Gustavo Picón
tabo
Hacking for fun and profit
» Django Book

We interrupt these wonderful 6 months without posting in this blog to share the joy, directly from Django’s BFDLs, my christmas present to myself:

Got my django book

The Django Book! I bought it in Amazon and it was only 3 days late to Peru, not bad for christmas season.

I can’t wait to read this book. I did read the chapter previews in the site and they were very good. I’ll write a review of the book as soon as I finish reading it.

(btw, I’m sick of wordpress, it’s a buggy piece of ^*($#, is there a decent django powered blog with an import-from-wordpress feature?).

November 18, 2007

Gustavo Picón
tabo
tabo :: para todos y para nadie
» Optimizando solución a problema de edificio de Google

Hace una semana publicaba la solución a un problema de entrevista tipo que hacen en google, la pregunta era la siguiente:



La solución que publiqué no solo daba la solución si no que brindaba los pisos desde los que se debía arrojar los objetos. Antonio Ognio complementó mi solución con una muy buena explicación del problema.

Ya había dado por cerrado el tema, hasta que Eduardo Morales, el ingeniero de Google que presentó el problema, dejó unos comentarios interesantes.

El principal reparo de Eduardo con mi solución es que no es eficiente. Es un algoritmo "O(n^2)". Como le comentaba a Eduardo, no era mi propósito hacer una solución eficiente, solo necesitaba una solución y nada más. La optimización prematura es la raiz de todos los males mencioné parafraseando a Knuth, y en este caso no necesitaba de ninguna optimización, ya que el enunciado del problema no pide un algoritmo óptimo (solo pide hayar una solución rompiendo el menor número de objetos). Para este problema, en mi opinión, optimizar representaba un costo (mi tiempo) y ningún beneficio.

Pero al mencionar Eduardo que el problema se puede optimizar hasta O(1), pues me pareció un buen ejercicio, y la optimización de código, cuando es estrictamente necesaria, puede ser bastante gratificante. Tenía entonces ahora un beneficio para optimizar: podía publicar el proceso de optimización, dedicado especialmente para aquellos que mostraron interés en mi solución original (y varios al parecer, según me comentan por privado, están leyendo a Knuth :-)

Así que veamos el proceso de optimización, si no lo han hecho, pediría que lean primero mi (ineficiente) solución original y la explicación detallada de Antonio.

Comencemos entonces por la primera optimización:

Problema edificio google: O(n)

Gracias a este algoritmo tenemos esta solución en Python:

def findworst(num):
for res in range(1, num+1):
if res*(res+1)/2 >= num:
break
return res
que es una solución O(n)

Pero esto se puede optimizar aún mas, como podemos apreciar:

Problema edificio google: O(1)

Lo que nos deja con este código en Python:

def findworst_o1(num):
return math.ceil((math.sqrt(num*8+1)-1)/2)



que es una solución O(1), constante, y en una línea de código.

Podemos sacar algunas lecciones con todo esto:

  1. La optimización prematura no es necesaria. El algoritmo original, a pesar de no ser óptimo, nos daba una solución correcta. El costo de optimizar (tiempo) era mas alto que los beneficios (nulos). Esto cambió con los comentarios de Eduardo ya que apareció un beneficio: mostrar el proceso de optimización para los lectores.
  2. Tener una base matemática es muy importante. De no haber aplicado matemáticas la solución se hubiera hallado con "fuerza bruta" pero no con eficiencia.
Muchas gracias Eduardo por tus comentarios, espero que estos posts despierten el interés de mis lectores técnicos para investigar estos temas. Y para mis lectores no técnicos (se supone que este es mi blog no-nerd), mil disculpas, prometo volver pronto a la normalidad ;-)

Comentarios?

tags: , , , , , , , , ,

October 30, 2007

Xbito tech blog
xbito
Xbito Tech Blog
» Converting numerical bases in python

Working with hexadecimal, binaries, and other bases is becoming common at work, at first we try to use custom functions to convert from and to some bases, especially hexadecimal. But other languages have built-in methods to do that conversion, and so python too.

First to convert and hexadecimal string to an integer we use:

int_number = int('ab1', 16)

The variable int_number will be 2737. That is ab1 hex to integer conversion. Now what about the other way, integer to hexadecimal, that would be:

hex(int_number)

And that would return '0xab1'. Note that it returns a string and has the 0x notation, we could use that notation also in the first conversion like this:

int_number = int('0xab1', 16)

So as you can see we pass a parameter to the int function to indicate the base, if we dont pass any python assumes that we are using a 10 base. As you have also seen there is a hex built-in function but there is no binary, or any other base built-in, so since we work a lot with binary we built a small function to do the work. There are hundreds of ways to do this, using recursion, whiles, fors, lamdas, etc. We end up using this function:

def dectobin(number):
if number < 1:
return ""
else:
return dectobin(number / 2) + str(number & 1)


Hope this works for you.

October 12, 2007

Nicolás Varcarcel
nxvl
Nikolas Valcarcel
» PyPanel Clock Patch

I have hack the Ubuntu PyPanel again (just for fun) to show the clock in Binary, Octal and Hex. You can download the patch for PyPanel 2.4 here.

Instructions:

To use it you only need to patch /usr/bin/pypanel and set CLOCK_FORMAT to “hex”, “oct” or “bin” in the ~/.pypanelrc file.

I really love FLOSS.

P.D: Thank you for the python help.

October 9, 2007

Nicolás Varcarcel
nxvl
Nikolas Valcarcel
» Marvin, Gutsy, Openbox, conky, pypanel & binclock

Faltando pocos días para la salida de Gutsy Gibbon decidí actualizar mi sistema para ver que cosas nuevas traia, ayudar a reportar bugs y ver mi parche en funcionamiento, luego de horas de bajar paquetes finalmente Marvin (mi laptop) tenía instalado el beta de la nueva versión de Ubuntu. Comenzé a jugar, configurar, porbar y me di cuenta que el performance había bajado notablemente, las aplicaciones levantan lento, y había que esperar para hacer cada click al conocido estilo de mi SO favorito (notese el sarcasmo). Claro, mi laptop tiene solo 256 Mb de Ram, era obvio que no iba a soportar Gnome 2.20 así que empeze a buscar algo más ligero mientras conseguía nuevas memorias.

Probe primero con Fluxbox, pero no se porque nunca me termino de gustar ni acomodar. Luego me acorde que tenia Openbox instalado que alguna vez quise probar pero por N razones que ahora no recuerdo termine dejando olvidado, asi que comenze a probar, configurar jugar, leer, hasta que quedé comodo.

Decidí dejar de lado gkrellm para probar un monitor del sistema del que habia leido en el blog de Matthew Helmke via planet ubuntu. Además leyendo sobre como levantar Gnome Panels por defecto encontre PyPanel un panel bastante ligero y bueno que el que finalmente deje configurado e instalado y finalmente tenía mi Desktop listo para funcionar, pero aún me quedaba un reto más por vencer.

Tiempo atrás Jj hackeo el reloj de fluxbox para mostrar la hora en binario, cosa que intenté copiar en gnome, pero me perdí en los archivos fuente, asi que decidí probar con PyPanel, y luego de horas de hacking, desempolvar mi python, leer manuales y evitar confundirme con metodos de Ruby logré mi objetivo.

screenshot
Ubuntu Gutsy Gibbon con Openbox, Conky y PyPanel con binclock Hack

July 27, 2007

Gustavo Picón
tabo
Hacking for fun and profit
» Me in Simpsons the Movie

Thanks to Jaime Wong:

tabo & python

The “Chicha Simpsons” by Jaime Wong, featuring Antonio Ognio, Miguel Rabi, Cesar Villegas, Homer Simpson drinking chicha morada and yours truly (with a friendly Python).

Thanks a lot Jaime! I’m already using this as my avatar in pownce and in IM.


Gustavo Picón
tabo
tabo :: para todos y para nadie
» Sobre Simpsons the Movie

Hoy _pude_ ir a verla PERO! inaceptable la versión doblada. No pone. Mañana será.

Al menos, como comentaba en mi blog nerd, fui inmortalizado como personaje de la película gracias al genial Jaime Wong:



(si no saben lo que significa la serpiente, LURK MOAR)

Pueden leer mas sobre los Simpsons en el Útero, de donde extraigo esta cita que es una JOYA:

Homer: Aw, twenty dollars! I wanted a peanut!
Homer’s Brain: Twenty dollars can buy many peanuts!
Homer: Explain how!
Homer’s Brain: Money can be exchanged for goods and services!
Homer: Woo-hoo!

y esta intro:



Colaboro agregando esta intro GENIAL (que no había visto):



y esta que va acorde con estos tiempos (no he visto aún ninguna de las dos películas):



tags:

July 1, 2007

Gustavo Picón
tabo
Hacking for fun and profit
» Release: Feedjack 0.9.10 - Django powered Feed aggregator

A new version of Feedjack has been released: Feedjack 0.9.10.

Changes:

  • Fixing CSS tags for styles 4 and 5
  • feedjack_update now strip()s tags before storing them
  • feedjack_update shows the feed number being processed
  • We no longer cache the tags in feedjack_update, it had encoding problems
    and makes the script safe to run more than one instance at the same time

I said that 0.9.9 would be the last release in the 0.9 branch. I lied. 0.9.10 is a maintenance/bugfix release. The 0.10 branch of feedjack is on the works.

Share and enjoy.

April 26, 2007

Gustavo Picón
tabo
Hacking for fun and profit
» On Python vs Ruby

Taken from a Python up, Ruby down discussion in programming.reddit:

Ruby takes all the elegance and simplicity of Perl, and mixes it with the library support of Lisp

- foonly

Previously…

February 4, 2007

Gustavo Picón
tabo
Hacking for fun and profit
» Release: Feedjack 0.9.9 - Django powered Feed aggregator

A new version of Feedjack has been released: Feedjack 0.9.9.

Changes:

  • Fixed i18n related bugs in the templates
  • Fixed a bug related to the –settings option in feedjack_update.py
  • The feeds per user, tag and user/tag are working again
  • You can choose between rss2 and atom in the feeds for user, tag and
    user/tag
  • The default /feed/ url now redirects to /feed/atom/ instead of
    /feed/rss/

You are encouraged to update to this version, it has all the acumulated bug fixes known at this moment (thanks Petar).

This will also be the last version of the 0.9 branch. The 0.10 branch (currently trunk) will have several modifications in the data model, so please be careful if you update your site via subversion. Just follow the right branch or install only official releases and you will be safe.

Also, if you are running a Feedjack site, please update your links to our new site: www.feedjack.org. You can also announce your site in the Feedjack mailing list so we can add a link in the project site.

Share and enjoy.