Bienvenido(a) a Grupo Linuxero del Bajío miércoles, octubre 04 2023 @ 07:37 CEST

Artículos

Modificar el header en Geeklog

  • viernes, febrero 24 2012 @ 07:06 CET
  • Autor:
  • Lecturas 1,555
Artículos Realicé este pequeño artículo para modificar el encabezado de las páginas generadas con Geeklog.

1. Revisar el layout utilizado en tu página del Geeklog.

Editar el archivo /var/www/virtual/misitio/conf_geeklog/config.php y revisar la siguiente linea.

$_CONF['theme'] = 'professional'; // default theme

La ruta /var/www/virtual/misitio/ depende de su configuración del apache2

2. Después de ubicar el theme que utiliza nuestra página, cambiarnos a la carpeta correspondiente:

cd /var/www/virtual/misitio/html_geeklog/layout/professional

3. Editar el archivo header.thtml

emacs header.thtml

Para este ejemplo, vamos agregar una imagen y una referencia de liga después del slogan del Geeklog.

<td class="header-logobg" width="50%" height="78" align="right" valign="middle">
<span class="siteslogan">{site_slogan}</span>
</td>

Se agregan las siguientes líneas.

<td width="50%" height="78" align="right" valign="middle">
<a href="http://misitio/jjsalmel"><img src="http://misitio/twitter.jpeg";; width="80" height="50" border="0"></a>  &nbsp; 
</td>

4. Se guarda y se visualiza el cambio.

Checkspam, un pequeño analizador para spamassasin

  • domingo, febrero 19 2012 @ 04:18 CET
  • Autor:
  • Lecturas 1,649
Artículos Hace días escribí una entrada sobre como instalar y configurar el spamassassin, ya la gran mayoría sabemos que Spamassassin  genera un log de actividad y este log es un chorizón…

Si instalamos y configuramos el Spamassassin  como lo recomienda la gran mayoría y como yo mismo lo he publicado en mi blog, tendríamos un archivo llamado spamd.log. Este archivo no es mas que un log de las actividades del Spamassassin en cuanto a sus tareas de filtrar el correo electrónico en nuestro servidor o equipo. La verdad es que con el tiempo este archivo crece y crece y analizarlo manualmente se vuelve un poco complicado.

Buscando alguna solución ya elaboradas encontré muchos generadores de reportes gráficamente en php pero no es lo que yo buscaba.

Mis necesidades son básicamente saber la fecha y hora en que el Spamassassin identifico un correo spam e identificar rápidamente el dominio de donde salio, así como la dirección ip de ese dominio.

Necesidades muy especificas que no me las daba alguna herramienta ya existente.

Entonces decidí escribir un pequeño script a manera de analizador para “analizar” el log del Spamassassin (spamd.log) y extraer dicha información y poder consultarla en pantalla.

¿Debo de cobrar la revisión de un dispositivo?

  • sábado, junio 04 2011 @ 10:42 CEST
  • Autor:
  • Lecturas 1,596
Artículos

En el pasado, me quejaba de los centros de servicio autorizados de dispositivos (computadoras, tableta, mac, hp), ¿el motivo? : “cobraban” por revisión del equipo cantidades mayores a $500 pesos (45 dólares americanos) por el solo HECHO de revisar la falla del dispositivo en cuestión....

http://luisreylara.com/2011/06/02/¿debo-de-cobrar-la-revision-de-un-dispositivo/

aprendiendo a hacer un compilador/intérprete

  • domingo, abril 17 2011 @ 03:08 CEST
  • Autor:
  • Lecturas 2,591
Artículos

Ya lo saben: mi educación superior, la susodicha ingeniería en sistemas computacionales, fue muy precaria. Cada día de mi vida profesional descubro y redescubro una carencia nueva y más escandalosa que la anterior. En esta ocasión ha sido sobre el apasionante tema de los compiladores.

Durante los primero meses de este año estuve trabajando con v8, el motor de JavaScript desarrollado por Google y parte de su navegador Chrome. Y sólo bastaron pocas semanas para darme cuenta de que no tenía ni la más mínima idea sobre el tema.

El proyecto para mi terminó con un valioso aprendizaje: darme cuenta cabal de que no sé nada de compiladores. Es una deuda que tengo para conmigo mismo.

Con el fin de comenzar a pagar ese mal karma, dediqué este fin de semana a escribir un compilador de juguete. Bueno, ahora ni siquiera llega a compilador: en un mero analizador sintáctico del lenguaje BASIC, en su primera encarnación de 1964.

Utilizo flex para hacer en analizador léxico, y bison para el analizador sintáctico.

Sospecho que aún puedo simplificar más la gramática y alguno que otro retoque más. El siguiente paso es hacer el árbol sintáctico abstracto, para luego recorrerlo e intentar hacer optimizaciones locas.

El código está en gitorious y recuerden armarse con el clásico libro del dragón. ¡Son menos de 450 líneas de código!

Chavos que están estudiando alguna carrera relacionada con las ciencias computacionales: No dejen que el mal karma les desdibuje sus aspiraciones profesionales. Programen sus propios compiladores, sistemas operativos, manejadores de bases de datos, máquinas virtuales. Al menos inténtenlo. Verán que el esfuerzo paga muy buenos dividendos.

Monitoreo de redes jnettop

  • viernes, abril 15 2011 @ 01:59 CEST
  • Autor:
  • Lecturas 3,697
Artículos De regreso por estos lares linuxeros, después de haberme retirado de telecable y comenzado una aventura entre otro amigo y un servidor, tratando de crear una empresa.

Les comento por anticipado, estamos creando una distro muy parecida a backtrack. De hecho está basada en Debian y le hemos instalado software de backtrack. Pero lo emocionante de esta disto es que estamos creando una interfaz gráfica que sea fácil para el usuario y así poder diagnosticar. Aún no le ponemos nombre al sistema, ¿sugerencias?, serán bienvenidas. El sistema que integra todas las herramientas de forma de combinación de linea de comandos está basada en GAMBAS.

Les estaré subiendo y explicando cada una de las herramientas que utilizamos y que , claro son GNU la gran mayoría.

Para ir dando un adelanto, quiero saber el ancho de banda que utiliza mi red:

Descripción del lenguaje JavaScript

  • domingo, enero 16 2011 @ 02:11 CET
  • Autor:
  • Lecturas 1,954
Artículos En 1995, Netscape Navigator estaba en su cúspide como el navegador de Internet, cuando su recién fichaje, Brendan Eich, tuvo la genial idea de insertar un lenguaje de programación dentro del navegador, pudiendo así ofrecer páginas web cuya interfaz con el usuario fuera más dinámica.

Eich primero esbozó un lenguaje muy cercano a Scheme, un dialecto de Lisp, pero los empleados de cuello blanco pusieron el grito en el cielo: "¿cómo iba la gente a usar un lenguaje de programación funcional para hacer sus páginas?", así que trocaron hacia un diseño ecléctico, por no decir "frankesteiniano": Una sintaxis similar a C, un conjunto de estructuras predefinidas cuyos nombres fueron tomados de Java, y los conceptos principales de diseño fueron tomados de Scheme y del poco conocido lenguaje de programación, Self.

Así es, el lenguaje de programación JavaScript, el que recobró importancia tras el advenimiento de Ajax, tiene tanta relación con los lenguajes funcionales clásicos, como con los lenguajes imperativos como C, Pascal o Java. Y tal vez sea precisamente eso, su enfoque mixto, el motivo principal de su éxito.

El nombre de JavaScript se debe a la lamentable consecuencia de una negociación económica entre Sun y Netscape, ya que el primero quería que todo en Internet tuviera el prefijo Java y el segundo, poder distribuir la máquina virtual de Java junto con el navegador. El lenguaje tuvo, antes de su distribución al público, nombres mucho más sugerentes, como LiveScript, o, más anteriormente, Mocha.

En 1996, Netscape sometió el lenguaje a ECMA Internacional, para que, dentro de un comité internacional, se decidiera el desarrollo del lenguaje, y no estuviera a merced de intereses comerciales que conducirían a un cisma de la Web. No obstante, se rebautizó el lenguaje dentro del comité a ECMAScript. Actualmente existen varias encarnaciones de esta especificación, tal como el mismo JavaScript, JScript de Microsoft, ActionScript de Adobe, QtScript, etcétera.

Pero veamos más de cerca las características de diseño más relevantes del lenguaje:

Vectorización

  • lunes, diciembre 13 2010 @ 10:58 CET
  • Autor:
  • Lecturas 2,038
Artículos

En 1966 un profesor de la Universidad de Stanford, Michael J. Flynn propuso una clasificación para la arquitectura de computadoras conocida como la Taxonomía de Flynn [1].

Esta clasificación está basada en el número concurrente de instrucciones y en los flujos de datos disponibles en la arquitectura:

|---------------+--------------------+----------------------|
|               | Single Instruction | Multiple Instruction |
|---------------+--------------------+----------------------|
| Single Data   | SISD               | MISD                 |
| Multiple Data | SIMD               | MIMD                 |
|---------------+--------------------+----------------------|

De manera general los ordenadores personales pueden considerarse como SISD: Single Instruction, Single Data. Estos procesadores solamente pueden hacer una operación sobre un valor a la vez.

Sin embargo, con la llegada del procesamiento multimedia, el mercado de los ordenadores personales comenzó a ejercer presión sobre los fabricantes de chips para proveer de hardware más potente capaz de reproducir audio y vídeo (actividad muy demandante de poder de cómputo), sin afectar la sensación de desempeño en las demás tareas.

Functional Programming

  • domingo, junio 13 2010 @ 06:30 CEST
  • Autor:
  • Lecturas 1,918
Artículos Una de las tantas cosas que lamento de mi pobre educación profesional, ha sido que salí de la universidad sin saber qué es la programación funcional [1].

Recuerdo una ocasión que un compañero del tecno y yo llenamos un cuestionario para el proceso de reclutamiento de una empresa. Una pregunta era, más o menos, ¿conoce algún lenguaje de programación funcional? Nos quedamos mirando y dijimos "C y Pascal usan funciones ¿no? Entonces sí". Ay, el mero recuerdo me avergüenza de sobremanera.

Pero lo más lamentable es la situación sigue igual. Varias generaciones han pasado desde que yo me gradué y todas terminan ignorando por completo lenguajes como Lisp, Haskel o Erlang.

Communication skills

  • martes, mayo 18 2010 @ 05:17 CEST
  • Autor:
  • Lecturas 2,050
Artículos Recuerdo en mi años en el Tecno de Celaya, discutir saliendo de las pocas
clases no ingenieriles, sobre lo inútil que eran esos tópicos para un
ingeniero. Teníamos la idílica imagen del ingeniero, encerrado en su mundo,
aislado, incomunicado, resolviendo en su mente problemas, optimizando
procesos, innovando productos, y al momento de presentarlos ante la sociedad,
estos generarían aplausos, ovaciones y rostros desencajados por el asombro y
la envidia.

Es más, hace poco, un primo mío que estudia ingeniería mecánica expresaba esto
mismo, quejándose amargamente de su asignatura de redacción.

Pero esta mentalidad sólo la puedo entender y perdonar en un imberbe aspirante
a ingeniero, en un ingenuo rapaz cuya visión del mundo sea únicamente a través
de lo que le han enseñado en escuelas mediocres y padres bienintencionados
pero arrastrando una igual educación: fábulas de héroes míticos.

Llevo un tiempo siguiendo una de las tantas listas de correo del kernel, y me
asombra la cantidad y la calidad de código que se somete a revisión por ese
medio, las apasionadas discusiones que ahí se encienden y las centradas pero
pragmáticas soluciones a las que se llega. Y el kernel es sólo una muestra del
conjunto de productos de alta sofisticación tecnológica.

No, el ingeniero solitario no existe: todo el avance científico/tecnológico
actualmente sólo ocurre en comunidad. Y el trabajo en comunidad exige más
habilidades que la de solamente aplicar la ciencias exactas y esperar a la
inspiración. El quehacer científico/tecnológico demanda, además, habilidades
de comunicación, y no sólo en tu lengua materna, sino también en inglés, al
menos.

El principal problema de las comunidades es la relación señal/ruido (SNR por
su siglas en inglés). La señal es toda aquella información a transmitir, lo
importante, la razón de la comunicación y el ruido es todo aquello que
corrompe a la señal. En una comunidad se espera el desarrollo de un artefacto,
y la discusión está subordinada a este objetivo. Lo esperado es que la
información generada contribuya a la mejora del artefacto en cuestión. Pero
cuando los miembros de esta comunidad no saben expresarse correctamente, no
saben transmitir sus ideas, no son capaces de ensamblar sus pensamientos
dentro del cajón de las palabras, únicamente generan ruido. Y el ruido va en
detrimento del proyecto.

Las habilidades de comunicación no se adquieren por gracia divina, ni son
innatas, requieren cultivarse, implican ejercicio y disciplina. Es necesario
el estudio y el disfrute de la redacción, del aprender otros idiomas, de
interesarse por las etimologías, de escribir mucho y leer muchísimo más.

Transmitir lo que se quiere decir, con las palabras exactas, ni una más y una
menos. Ese es el propósito buscado. Contribuir a la disminución del ruido.

Así que la próxima vez que alguien me diga que no necesita de tópicos de
redacción o humanidades, inmediatamente lo tacharé de mi mente como alguien
con quien merezca la pena colaborar profesionalmente.

Hamster Applet

  • domingo, febrero 21 2010 @ 04:49 CET
  • Autor:
  • Lecturas 1,487
Artículos Lord Kelvin decía que "Cuando se puede medir aquello de que se habla y
expresarlo en cifras, se sabe algo de ello; pero cuando no se puede medir,
cuando no se puede expresar numéricamente, el conocimiento que se tiene es de
calidad débil y poco confiable"

¿Cuánto tiempo trabajas realmente? Si te dedicas a resolver problemas
abstractos (como programador por ejemplo) ¿cuánto tiempo realmente te lleva
encontrar un solución? ¿escribir un código? ¿configurar un ambiente de
trabajo?

Si puedes cuantificar estas preguntas, entonces podrás tener información que
te permita o mejorar, o cobrar mejor.

Page navigation