Software Libre para Guanajuato

Bienvenido(a) a Grupo Linuxero de Bajío
domingo, noviembre 19 2017 @ 05:36 CET

Ver la versión para imprimir

aprendiendo a hacer un compilador/intérprete

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.

Ver la versión para imprimir

Monitoreo de redes jnettop

ArtículosDe 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:
Ver la versión para imprimir

ICT solicita personal

Anuncios

ICT Consulting busca personas que deseen integrarse a su equipo de trabajo:

Agente de Service Desk:

Proporcionar atención telefónica y solucionar problemas de primer nivel para todas las llamadas entrantes. Desarrollar todas las fases de solución del problema incluyendo interpretación, análisis, investigación y resolución de problemas técnicos de distintas plataformas y categorías de software y hardware.

Ver la versión para imprimir

Descripción del lenguaje JavaScript

ArtículosEn 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:
Ver la versión para imprimir

Vectorización

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.

Ver la versión para imprimir

Y otra vez resucitó

GLIBDespués de muchos tropiezos, el servidor del GLiB está de nuevo en línea. En esta reencarnación sólo el disco duro ha salido indemne, el resto es un Frankestein donado por Juan José Salgado. Muchas gracias Juan José.

El siguiente paso para lograr una situación más o menos estable es migrar el servidor a un coqueto GuruPlug: ARM, green computing y demás.

Estaremos informando.
Ver la versión para imprimir

Reunión de seguridad y hacking en Guanajuato

AnunciosKuaninj4s es un grupo de interesados en diversos temas #ninjas #espionaje #geeks #l33t #sociedad #política #libertad #wtf #beer #cyberpunk #inseguridad

Fecha: Jueves, 22 de Julio

Más información http://kuaninj4s.wordpress.com/
Ver la versión para imprimir

Mandriva 2010 Spring y OpenSUSE 11.3

AnunciosEsta semana han sido liberadas las nuevas versiones de ambas distribuciones, a continuación las notas de la publicación.

http://www2.mandriva.com/linux/features/
http://wiki.opensuse.org/Product_highlights
Ver la versión para imprimir

Dell promueve Linux

Noticias

Dell desde hace un rato tiene la opción de poder cambiar el sistema operativo en algunos de los equipos que vende del omnipresente MS-Windows a Ubuntu. Si bien la diferencia en el precio no se nota (e incluso a veces es ridícula), Dell ha procurado estar dando información sobre Linux y en particular la distro que usa: Ubuntu.

En el su sección de "Open Source" dan 10 puntos por los cuales elegir Ubuntu sobre Windows:
cont.

Ver la versión para imprimir

Functional Programming

ArtículosUna 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.