Saturday, April 25, 2009

Collaborative coding

I would promote this idea to a higher level than just 'snippet sharing'. I can envision something called collaborative coding.

Collaborative coding embraces the uniquely identified code snippets but enhances it with a timestamp of modification and user comments.

Say,

/* Calculates the fibonacci number for the parameter
guid: {1c125546-b87c-49ff-8130-a24a3deda659}
date: 2009-04-25 19:00
comm: First version */

int fibonacci(int n) {
if (n<=2) return 1;
else return fibonacci(n-1)+fibonacci(n-2);
}

/* Calculates the fibonacci number for the parameter
guid: {1c125546-b87c-49ff-8130-a24a3deda659}
date: 2009-04-25 19:25
comm: Can't use recursion as my stack is too small, changed to an iterative version */

int fibonacci(int n) {
if (n<=2) return 1;
int j = 1;
int k = 1;
int ans = 0;
for (int i = 3; i <= n; i++) {
ans = j + k;
j = k;
k = ans;
}
return ans;
}

Then tools can show diffs over time of the different versions of snippets, with comments (if available) and be made to push back the snippets to available repositories.

You could actually end up having conversations in code. The identifier should identify function, and diff algorithms can show what has been changed and hopefully why.

2 comments:

Ing. Marcos Luís Ortíz Valmaseda said...

Saludos
Estamos reorganizando el uso de PostsGIS aquí en Cuba y se hace
necesaria une revisión de los entornos de alta disponibilidad
específicamente para el mismo. Si pudieran indicarnos el camino de una
arquitectura viable para ello, sería de mucha ayuda para nosotros.

La idea central es dividir los mapar por temáticas, o sea, por región
,pero no sabemos hasta que punto el particionamiento de los datos será
factible. Estamos investigando el tema con PL/Proxy, pero el problema se
complica cuando estamos hablando de mapas, por el hecho de que a lo
mejro cuando pedimos una consulta sobre una región determinada, la
partición puede tener datos de la misma, o de otra en específico, por el
hecho de que los datos los da a parti de un rectángulo y entonces a la
hora de reprentación sólo se muestra lo que realmente se quiere, pero el
rectángulo está ahí.

¿Usted todavia trabaja estos temas Vinko?
1- Entornos de alta disponibilidad (Balanceo de carga y paralelización
de consultas)
2- Optimización de consultas sobre los índices GIST (Crítico): Buenas
prácticas para la construcción de consultas de este tipo.
3- Utilización correcta de CLUSTER (Por el hecho de que en vez de
clusterizar los registros, los está borrando, a lo mejor porque este
tipo de indices es el único que acepta campos null y puede estar dando
problemas)

Sería de mucha ayuda que nos pudiera encaminar en estos temas que son bastante complejos.

Saludos
Mi correo es mlortiz@uci.cu

123 123 said...

Cool article as for me. It would be great to read a bit more concerning this theme.
By the way check the design I've made myself London escort