Jan
14

Can’t speak spanish? you can also read this article in english, click here.

Count Project Lines 1.0 es, tal y como su propio nombre indica un cotador de lineas de proyectos de programación principalmente, aunque es capaz de contar correctamente las lineas de cualquier fichero que contenga texto plano, como por ejemplo un *.txt, *.sql,…

El programa está desarrollado en Java, por lo que es posible su ejecución en cualquier equipo que soporte dicho lenguaje.

El manejo del programa es muy sencillo, nada más abrirlo, observaremos una imagen como la que encabeza este artículo, en la cual tenemos:

  • Un selector de ruta, en el que deberemos seleccionar la ruta de la carpeta del proyecto o bien del archivo cuyas lineas deseemos contar.
  • Un juego de cuatro pestañas en las que hay un listado de todo aquello que deseamos omitir en el resultado del conteo, de manera que hay un elemento por cada linea:
    • Files to skip: en este área de texto, habremos de escribir los archivos que deseamos excluir del conteo, por ejemplo el archivo Thumbs.db que genera Windows de manera automáticamente y que no nos interesa contar.
    • Folders to skip: contiene, al igual que la pestaña anterior un listado de todas las carpetas que deseemos obviar en el análisis, especialmente útil si solemos utilizar librerías externas que no hemos programado nosotros por ejemplo.
    • Extensions to skip: listado con las extensiones de archivos que deseamos no examinar, por ejemplo las de las imágenes, videos,…
    • Patterns to Skip: Esta pestaña es especialmente útil, ya que nos permite determinar que archivos y/o carpetas deseamos saltarnos a la hora de realizar el análisis mediante la coincidencia de su nombre con una expresión regular estándar (por ejemplo los archivos ocultos que empiezan por “.” en Unix).
  • Un botón con el que seremos capaces de ejecutar el proceso que cuenta las lineas de nuestro proyecto.
  • Una consola con un log, en la que se muestra la acción que se está llevando a cabo así como un árbol con los archivos y carpetas escaneadas con el número de lineas que poseen a su derecha, para, por último mostrar las estadísticas que más nos interesan, el número de lineas, dicheros y carpetas escaneadas con las que cuenta nuestro proyecto.

Continue reading “Count Project Lines 1.0” »

Tags:
Categoría Open Source, Producción propia, Programación | Sé el primero en comentar!
Oct
26

trac_logoEs curioso como algo tan sencillo como es añadir la autenticación de usuarios en un sistema Trac puede costar tanto y a la vez haber tan poca información en Internet sobre este tema que realmente resuelvan el “problema” que no hace más que lanzar mensajes como:

Internal Error: Authentication information not available. Please refer to the installation documentation.

Os pongo en situación, conforme instalas Trac, te encuentras con que el módulo de autenticación no está habilitado, lo que te impedirá acceder al menú de administrador entre otras tantas cosas, no sé si este problema se ha visto acentuado por que mi sistema Trac se encuentra instalado en un servidor compartido de Dreamhost haciendo uso del sistema One-click o si simplemente es tan complicado o de hacer siempre.

Antes de nada vamos a ver los requisitos necesarios:

  • Necesitamos tener instalado Trac en nuestro servidor.
  • Necesitamos acceso shell a nuestro servidor.

Suponiendo que tenemos todo esto, procedamos con la configuración e instalación de AccountManager plugin:

  • nos logueamos en la shell de nuestro servidor (sustituir SERVIDOR por el nombre del servidor de nuestra cuenta y USUARIO por el nombre de usuario):

ssh SERVIDOR -l USUARIO

  • Ahora os pedirá la contraseña, la tecleáis y presionáis intro.
  • Una vez logueados ejecutamos:

svn checkout http://trac-hacks.org/svn/accountmanagerplugin/0.11
cd 0.11
python setup.py bdist_egg
ls dist

  • Tras ejecutar estos comandos debería aparecer por pantalla algo parecido a:

TracAccountManager-0.2.1dev_r5836-py2.4.egg

  • Una vez que tenemos este dato, podemos ejecutar el siguiente comando (sustituimos TRAC por el dato que hemos obtenido anteriormente => TracAccountManager-0.2.1dev_r5836-py2.4.egg, y PATH lo sustituimos con el nombre de la carpeta o carpetas en las que se encuentre instalado nuestro Trac, en mi caso es trac.keopens.org):

cp dist/TRAC ~/PATH/plugins/TRAC

  • ahora nos dirigimos a:

cd ~/PATH/conf

  • Le decimos al Trac qué archivos queremos utilizar para loguearnos, para lo que añadimos el el archivo trac.ini que se encuentra en /conf (sustituimos USERNAME por el usuario con el que nos hemos logueado, y SVN con el nombre del repositiorio con el que se enlaza TRAC):

[account-manager]
password_file = /home/USERNAME/svn/SVN.passwd
password_store = HtPasswdStore

  • Añadimos nuestro usuario al grupo de administradores (sustituye USER por el usuario con el que te logueas en SVN)

trac-admin .. permission add USER TRAC_ADMIN

  • Por último habilitamos los componentes que nos permitan loguearnos, registrar nuevos usuarios,… (editamos de nuevo trac.ini)

[components]
trac.web.auth.LoginModule = disabled
acct_mgr.admin.* = enabled
acct_mgr.api.* = enabled
acct_mgr.db.* = enabled
acct_mgr.htfile.* = enabled
acct_mgr.http.* = enabled
acct_mgr.notification.* = enabled
acct_mgr.pwhash.* = enabled
acct_mgr.svnserve.* = enabled
acct_mgr.web_ui.* = enabled

Tags:
Categoría Open Source, Programación, Web | 1 Comentario »
Oct
1

phpLa optimización de código es algo que ha preocupado a los programadores desde hace mucho tiempo, aunque por suerte o por desgracia, esta preocupación está decrementando día a día dado que los ordenadores con cada vez más potentes y por lo tanto importa menos el malgaste de ciclos de CPU.

Esta preocupación por el tiempo de ejecución de un programa viene dado sobre todo por el desarrollo de proyectos grandes (muchas visitas simultáneas) en los que sea crucial la velocidad de ejecución del algoritmo, por otro lado para aquellos proyectos que dada su escalabilidad pudiesen aumentar su complejidad de una forma un tanto brusca, es importante que el núcleo sea tan eficiente como sea posible además de, obviamente, tener el mínimo número de errores como sea posible, y por último puede que se dé el caso que en el caso de que tengas un servidor compartido, tu hosting te haya dado un toque porque haces uso de demasiados ciclos de CPU a la vez que te instan a migrarte a un plan de hosting más avanzado y que por consiguiente posea más recursos para tu script.

En este artículo vamos a intentar dar algunos consejos que permitan mejorar el rendimiento de nuestras aplicaciones web escritas en PHP con relativamente poco esfuerzo.

1.- Versión de PHP

Si estás utilizando una versión antigua de PHP será conveniente que hicieses una actualización de la misma en tu servidor, esto es así porque con cada versión, el equipo desarrollador de PHP ha ido implementando nuevas funciones así como optimizando partes de código, llegando a, reducir notablemente el tiempo de ejecución y la memoria consumida por determinados scrips y funciones de las que vienen por defecto.

A día de hoy, las últimas versiones estables de PHP son la 5.3.0 y la 5.2.11, eso sí, en ningún caso recomiendo instalar en un servidor en producción una versión que no sea estable.

2.- Utilizar algún sistema de Cacheado

En lenguajes interpretados, como es PHP, cada vez que se desea ejecutar un script, éste ha de ser interpretado, lo que hace que el consumo de CPU se incremente más que si se tratase de un lenguaje compilado, además de que ha de ejecutar todas las operaciones y funciones cada vez que se ejecute, lo que hace que si éstas son complejas, el script se ralentice considerablemente; un ejemplo de estas funciones son las llamadas a la base de datos.

A pesar de que no es recomendable cachear todas las páginas en algunos proyectos, en ocasiones es bastante recomendable utilizar aplicaciones como Memcache para así evitar que se ejecute el script siempre que se hace una petición de una página.

Otra opción es hacer uso de sistemas de templates, como es Smarty, que hace un cacheado de la página pero ejecutando siempre las consultas a la base de datos.

3.- Optimizar el código

3.1.- Strings

En PHP las cadenas de caracteres (Strings) pueden, al contrario que en lenguajes como C o Java, ir rodeados, tanto de comillas dobles () como de comillas simples (), pero a pesar de que el resultado pueda llegar a ser el mismo, el comportamiento de una cadena delimitada por uno u otro de estos caracteres se comporta de manera diferente. Continue reading “20+ Consejos para optimizar tus programas PHP” »

Tags:
Categoría Manuales, Open Source, PHP, Programación | 1 Comentario »
Jan
7

data_generator_logoUna de las prácticas que tengo que entregar en la facultad este mes, requiere rellenar una base de datos con una inmensidad de registros, para luego “jugar” con ellos, por lo que al no gustarme demasiado los trabajos monótonos, me puse manos a la obra para desarrollar un programa que hiciera el trabajo sucio, es decir, que partiendo una serie de ficheros con datos generase las consultas de forma completamente automática.

Pero mi sorpresa fue cuando al navegar por soyGik que es la página de un antiguo compañero de Ogame, ver que hablaban de una página web que además es de código abierto, que generaba datos personalizados de manera automática indicando simplemente una mínima cantidad de características.

La página de la que hablamos se llama GenerateData, y ya para colmo te permite obtener los resultados en varios formatos, SQL, HTML, Excel, XML y CSV.

Categoría Open Source, Programas, Web | Sé el primero en comentar!
Dec
28

graph-plotter

Draw Function Graphs – Plotter es una calculadora gráfica en 2D de código abierto que nos permite visualizar de forma simultánea un máximo de tres funciones al más puro estilo Derive o Matlab en cuanto a este tipo de gráficas se refiere.

Una de las ventajas de esta aplicación, además de no necesitar instalación alguna (con un navegador cualquiera funciona) y de ser completamente gratuita (está escrita bajo la licencia GNU GPL v2),  es que nos permite variar absolutamente todos los colores y parámetros de la gráfica, el fondo, los ejes, la escala, entre otros.

Para terminar, mencionar que Draw Function Graphs está escrito en PHP con un diseño muy modulado y un sistema de configuración bastante sencillo (hacen falta conocimientos de dicho lenguaje por supuesto) y potente.

Categoría Open Source, Programas, Web | Sé el primero en comentar!