Archivo | Linux RSS feed for this section

Juego de Memoria….

17 Ene

Vamos a Jugar…..

Este juego a parte de ser muy entretenido e interesante, ayuda a mejorar la concentración.

Es muy recomendado especialmente para los niños.

NUMERO DE JUGADORES: 1 jugador

LICENCIA: GPL 2

REGLAS DEL JUEGO

1. Se presentan todas la imagenes boca abajo.

2. El jugador destapa las imagenes de dos en dos  tratando de hacer las parejas

2.1 Si coinciden, es decir si tienen el mismo dibujo, quedan levantadas; el jugador continuara destapando las imagenes hasta que haya formado todas las parejas.

2.2 Si por el contrario no coinciden las imagenes regresaran a su posición normal (boca abajo).

3. Según el nivel en el que se este jugando, se gana si ha formado todas las parejas, si no ha sobrepasado el número de intentos o haya cumplido con el tiempo correspondiente.

HERRAMIENTAS

Las herramientas que se utilizaron para la elaboración del mismo fuerón: IDE Netbeans 6.8, Plataforma Java, y las librerias adicionales Liquid, Nimrod y JavaHelp.

Para crear el instalador para Windows CreateInstaller.

Para crear el instalador para Linux se  uso  InstallJamer.

.

Descargar JuegoMemoria para Windows

Descargar JuegoMemoria para Linux

.

mini_manual Juego de Memoria….

Anuncios

Google Chrome solo será compatible con “tecnologías de código 100% abierto”

13 Ene

Google ha anunciado hoy que las próximas versiones de su navegador, Google Chrome, sólo serán compatibles con “tecnologías de código completamente abierto”.

Google asegura que de esta manera se fomentará que Internet sea más abierto.

La decisión de Google está levantando bastante controversia. Uno de los participantes en el debate dice: “esto parece un intento de Google para promocionar su propio codec de vídeo”. Otro participante se pregunta si la decisión tiene sentido: “No veo cómo promover la compatibilidad con un codec inferior (aunque sea de código abierto) ayuda en algo ya que las restricciones de licencia en H.264 han desaparecido”.

Que piensan de esto????

via laflecha.net

“Subversion”

7 Ene

 

1. Concepto de Subversion

 

Subversion es un sistema de control de versiones de código abierto, de propósitos similares al bien conocido, ampliamente extendido, y obsolescente CVS. Está diseñado para proporcionar un sofisticado sistema de control de versiones, desarrollado con tecnología moderna.

Subversion está todavía en desarrollo y no ha llegado aún a la versión 1.0. Sin embargo, es bastante estable y ya se puede usar. En este artículo cubriremos los aspectos básicos de Subversion, como instalarlo, y como usar Subversion para proyectos personales.

2. Ventajas, Desventajas de Subversion

 

  • Los utilizadores pueden recuperar los datos oficiales en sus directorios de trabajo locales, editarlos, y enviarlos de regreso a la versión oficial.
  • Si dos usuarios editan el mismo archivo localmente, subversion se hace cargo de guiar la resolución de los posibles conflictos.
  • Ningún cambio se pierde. Por diseño, subversion se encargará de guardar todos los cambios que se hagan a la versión oficial.
  • Se pueden adicionar archivos de cualquier tipo (svn:mime-type).

Subversion soluciona estos problemas del CVS:

  • No registra cambios en la estructura de directorios: no es posible mover, renombrar, ni copiar. Estas operaciones se consiguen eliminando y añadiendo, pero con esto perdemos el historial de cambios. Este defecto se debe a que CVS usa internamente el sistema de almacenamiento de RCS , que solo registra cambios de contenido en ficheros individuales.
  • Es necesario interrumpir el acceso al repositorio para crear copias de seguridad.
  • No permite “conjuntos de cambios”. Cuando un desarrollador sube un conjunto de cambios, se van subiendo uno a uno, quizás al mismo tiempo que otro desarrollador hace lo mismo. Al no ser una operación atómica, nadie puede asegurar que el estado del repositorio tras su commit, sea el mismo que el estado que probó en local, y por tanto, el proyecto puede estar en un estado que nadie ha probado. Además, deshacer un conjunto de cambios requiere recorrer el repositorio entero comparando las fechas.
  • Almacena ficheros binarios enteros (no sus diferencias entre versiones). Esto consume espacio en disco y ancho de banda.
  • No usa la red eficientemente. Las diferencias entre versiones solo se envían desde el servidor al cliente, cuando el cliente sube sus cambios envía ficheros enteros.
  • El código fuente es difícil de mantener. CVS comenzó como un conjunto de scripts shell que usaban RCS e implementaban algoritmos desarrollados entre los años 60-80. El resultado actual es producto de sucesiones de parches, y no tiene un diseño fácil de entender o mejorar. Esto dificulta su evolución. La idea de crear un nuevo CVS desde cero, surgió en la propia compañía que ofrecía soporte comercial para el CVS.

 

Aumenta la funcionalidad:

  • Objetivo: mejorar y ampliar las prestaciones de CVS.
  • Registra cambios en la estructura de directorios (permite mover y renombrar sin perder el historial). Subversion no usa RCS, sino un sistema virtual de ficheros versionado sobre una base de datos. El uso de la base de datos Berkeley permite aislamiento, atomicidad, recuperación de datos, integridad, backups en caliente, y concurrencia sin necesidad de usar ficheros de lock. Con Berkeley DB no se pueden editar los ficheros a mano como con CVS, pero eso tampoco es necesario porque el repositorio no se corrompe. Subversion resulta más fiable que CVS sobre sistema de ficheros transaccional. Nota: Los logs de la base de datos llegan a ocupar bastante espacio, pero existe una herramienta para eliminarlos (svnadmin).
  • Commits atómicos, se realizan todos o ninguno. Las transacciones atómicas permite identificar conjuntos de cambios. Cuando un desarrollador sube un conjunto de ficheros lo hace en una transacción atómica, de modo que todos los ficheros se etiquetan con un número de revisión en el repositorio. La atomicidad también impide que el repositorio quede en estado no compilable porque la red cae durante la subida de cambios.
  • Servidor y cliente intercambian diferencias entre versiones. Al enviar una nueva versión nunca es necesario transmitir ficheros enteros.
  • Pueden añadirse propiedades arbitrarias (pares de clave y valor) a ficheros y directorios.
  • Interoperabilidad con WebDAV. Es posible acceder al repositorio con cualquier software que soporte dicho protocolo (“Web Folders” de Windows XP, Photoshop, etc.).
  • Apache + SSL puede usarse con firewalls y proxys.
  • MIME types y detección automática de ficheros binarios.
  • Permite operar directamente sobre el repositorio, sin copia local.
  • Permite backups en caliente.

 

Y mejora el rendimiento y diseño:

  • Protocolo WebDAV/DeltaV para el protocolo de red.
  • Arquitectura de red mejorada: Apache 2.0, envío de diffs binarios entre cliente y servidor, datos comprimidos con mod_deflate.
  • Se basa en APIs C bien definidas y documentadas. CVS en cambio, se construyo mediante sucesiones de parches.
  • Usa la biblioteca Apache Portable Runtime, que permite portar la capa de red a varios sistemas operativos.
  • El cliente es una pequeña aplicación que usa una biblioteca de alto nivel.
  • Versiona todos los ficheros guardando comprimidas sus diferencias.
  • No es necesario duplicar el código en el repositorio para crear ramas. Subversion usa copia perezosa, solo se crea un nuevo fichero cuando es modificado. Mientras tanto, el fichero de la nueva rama, esta implementado como un enlace al fichero original. En contraste, CVS tarda por ejemplo 40 minutos en crear un tag de release en el servidor de GCC. Es decir, en Subversion la operación es O(1), mientras que en CVS es O(n) (lineal respecto al tamaño del repositorio).
  • No es necesario conexión a red para ciertas operaciones: status, diff, revert. Esto se debe a que la copia local contiene una copia del fichero original presente en el repositorio. Este comportamiento ahorra ancho de banda a costa de mayor espacio en disco.

 

3. Como montar un servidor Subversion

Un servidor Subversion (SVN a partir de ahora) es un sistema de control de versiones. Para muchos una versión mejorada del CVS (Concurret Version System).

Orientado básicamente para desarroladores de software que trabajan en el mismo proyecto, pero desde distintas ubicaciones. Este software registra los cambios hechos en el código y quien ha sido el autor de dichas modificaciones. Así impide que si dos personas trabajan en la misma parte del código, los cambios que ha hecho una no sobrescriba las modificaciones hechas por la otra.

Por defecto este servidor escucha en el puerto 3690

Ahora a instalar dicho servidor.

Para Ubuntu : apt-get install subversion

Para Debian: aptitude install subversion

Para Centos : yum install subversion

Una vez instalado en nuestra maquina:

1. Creamos un usuario sin consola para que se encargue de ejecutar el svn (esto es por seguridad, es poco recomendable que root corra demonios). Nosotros le llamaremos svn

adduser svn -s /bin/nologin

2. Creamos un directorio que nos hará de repositorio. Lo crearemos en /opt/svn (lo puedes hacer en cualquier directorio.

mkdir /opt/svn

3. Ahora utilizaremos el comando svnadmin para indicarle al sistema que el directorio que acabamos de crear sera nuestro repositorio

svnadmin create /opt/svn

Si no ha habido ningún problema, veremos que dentro de /opt/subversion ha creado una estructura nueva de archivos y directorios (los directorios son conf, db, hooks y locks).

4. Ahora cambiamos el propietario a la carpeta /opt/svn por el usuario svn creado anteriormente:

chown -Rf svn:svn /opt/svn

5. Ahora configuraremos nuestro repositorio. Para ello entramos en la carpeta /opt/svn/conf. Allí encontraremos el archivo svnserve.conf. En el modificaremos unos valores para determinar los permisos que tendrán los usuarios y la forma de conectarse que tendrán. Aunque puede configurarse una conexión SSL, empezaremos por una conexión muy básica. Así que solo modificaremos estos 3 valores:

[general]

anon-access = none (quitar acceso a usuarios anónimos)

auth-access = write (permitir escribir a los usuarios autorizados)

password-db = passwd (donde definiremos los usuarios y sus contraseñas)

6. Ahora crearemos los usuario que tendrán acceso al repositorio. Lo haremos en el fichero passwd, ubicado en /opt/svn/conf

[users]

user1 = user1

user2 = user2

user3 = user3

Donde la primera columna es el nombre de usuario y la segunda la contraseña.

7. Ya tenemos configurado el servidor. Ahora solo resta arrancarlo. Para ello tenemos 2 opciones.

  • MANUALMENTE: En este punto, lanzaremos el demonio del SVN a mano utilizando el comando svnserve

svnserve -d -r /opt/svn

La opcion -d indica que el servidor correrá como demonio.

La opción -r indica que la raíz del repositorio sera /opt/svn.

  • AUTOMATICO (DAEMON): En este punto, lanzaremos el demonio del SVN automáticamente en cada arranque del sistema. Este servidor es lanzado por el demonio XINETD. Para que esto sea así, basta con crear un archivo llamado svn en la carpeta /etc/xinetd.d y asegurarse que este demonio (XINETD) arranque con el sistema. El archivo contendrá las siguientes lineas.

service svn

{

port = 3690

socket_type = stream

protocol = tcp

wait = no

user = svn

server = /usr/bin/svnserve

server_args = -i -r /opt/svn

}

Ahora bastara con arrancar el servicio XINETD y tendremos el demonio SVN escuchando.

Para comprobarlo, podemos con:

  • lsof -i |grep svn y nos tendrá que devolver la siguiente linea:

xinetd 2103 root 8u IPv4 5581 TCP *:svn (LISTEN)

Si queremos ver el log que va generando el servidor para detectar cualquier fallo:

tail -f /var/log/messages |grep svn

También se puede descargar la ultima versión desde la pagina web http://subversion.tigris.org/

 

4. Manejo de Usuarios en Subversion

Usuarios en subversion

Hay muchas formas de crear usuarios para subversion, incluyendo el que coja los de Windows. Sin embargo, una forma fácil de hacerlo es la siguiente.

Vamos al repositorio de PROYECTO1 recién creado y editamos el fichero conf/svnserve.conf. Por defecto viene con un montón de comentarios, pero en los que podemos leer claramente todas las opciones. Podemos dejar algo como esto

anon-access = read

auth-access = write

password-db = passwd

realm = PROYECTO1

Donde

  • anon-access = read indica permisos de lectura para usuario anónimos. Es decir, cualquiera podría sacar los fuentes para verlos, pero no podría subir los cambios.
  • auth-access = write indica permisos de lectura y escritura para usuarios autentificados.
  • password-db = passwd es el fichero donde estarán los nombres de usuario y passwords. En este caso, el fichero se llamará passwd y el path es relativo al fichero svnserve.conf que estamos editando.
  • realm = PROYECTO1 es el nombre que verán los usuarios cuando intenten acceder al repositorio y se les pida usuario y password. Puede ser cualquier palabra o frase que queramos. También se usará como clave para cifrado si corresponde.

Podemos dejar annon-acces = none para no dar ningún permiso a usuario anónimos.

Luego, editamos el fichero passwd que se crea por defecto (o el que hayamos indicado en password-db = passwd), lo editamos y ponemos los usuarios que queramos, de esta manera

[users]

chuidiang = la-password

federico = otra-password

juana = mas-passwords

Grupos en subversion

Si en el fichero svnserve.conf ponemos también una línea así

authz-db = authz

estamos indicando un fichero en el que podemos meter a los usuarios en grupos y en los que podemos dar permisos a cada grupo o usuarios a determinados directorios. Por ejemplo, suele ser una forma habitual de trabajo tener en el repositorio tres directorios: trunk, branches y tags.

  • trunk es la rama principal de desarrollo. Una forma de trabajo es que haya una persona responsable de esta rama y que garantice que es siempre estable. Esa persona puede ser la única con permisos de escritura en ella y recibir los cambios de los demás desarrolladores. Sólo el puede escribir, aunque todos los demás podrían leer.
  • branches y tags son para ramas secundarias y etiquetas. En la forma de trabajo anterior, los desarrolladores deben crearse su propia rama a partir de la principal y desarrollar en la rama. Cuando terminan, avisan al responsable de la rama principal para que prueba y lleve a ella los cambios realizados. Se puede dar permisos de escritura a este directorio branches a todos los desarrolladores.

El fichero authz puede contener cosas como esta

[groups]

administradores = chuidiang

desarrolladores = federico,juana

[/trunk]

@administradores = rw

@desarrolladores = r

* =

[/branches]

@administradores = rw

@desarrolladores = rw

* =

donde:

  • En [groups] se definen los grupos, poniendo nombre de grupo igual a los desarrolladores separados por comas.
  • Se ponen tantas secciones [/path] como se quiera y en ellas se pone
    • @nombre_grupo = permisos. Pueden ser rw, r o nada si no se quieren dar permisos
    • nombre_usuario = permisos.
    • * = permisos para el resto.

 

5. Comandos de Subversion

Comandos Básicos.

Una vez descargado localmente el proyecto en el que se va a trabajar, existen una serie de comandos para mantener actualizado tanto el proyecto en el repositorio como la copia local. Estos comandos son de la forma svn [comando] y teniendo que ejecutarse en el directorio o algún subdirectorio de la copia local. Los subcomandos [comando] son alguno de los siguientes:

  • update: Actualizar la copia local del proyecto con la versión más reciente del repositorio.
  • commit: Subir al repositorio los cambios realizados en la copia local. Además, hay que poner un mensaje de lo que se ha hecho en dichos cambios (con -m o mediante el editor que esté en la variable de entorno $SVN_EDITOR).
  • add: Con este comando se añade un nuevo archivo al repositorio. Hay que tener en cuenta que sólo se marca como añadido y hasta que no se haga el commit no se añade realmente.
  • checkout: Para descargar por primera vez una copia remota del proyecto a la máquina local.
  • revert: Restituye el archivo de copia de trabajo con los cambios de la última versión de la que se ha actualizado la copia local. Este comando no contacta con el servidor.
  • list: Lista los contenidos de un directorio dentro del repositorio.
  • status: Comprueba el estado de los archivos de la copia local con respecto a la última actualización de dicha copia. No realiza ninguna conexión con el repositorio.
  • info: Muestra información de algún directorio de algún proyecto del repositorio.
  • lock: Bloquea una ruta en el repositorio para que ningún usuario pueda hacer commit sobre dicha ruta.
  • unlock: Desbloquea rutas bloqueadas con lock.
  • blame: Imprime los cambios de un archivo respecto de versiones y quién los ha hecho.
  • merge: Une las diferencias entre dos copias de los archivos de trabajo que generalmente están en conflicto.
  • resolved: Indica que un conflicto ha sido resuelto.
  • log: Muestra los mensajes de log de la copia de trabajo. Es necesario hacer un update para que estén todos los logs del proyecto.
  • switch: Actualiza la copia de trabajo a un directorio distinto. Esto es útil para cambiar entre diferente branches que se verán en el siguiente punto.

 

BIBLIOGRAFIA:

LaTeX

6 Ene

¿Qué es LATEX?

LATEX es un sistema de creación de textos, especialmente orientado para cubrir las necesidades de los técnicos y científicos. Está basado en un lenguaje de composición de bajo nivel llamado TeX y fundamentalmente consiste en una colección de “macros” que facilitan el uso de este potente lenguaje. A diferencia de otros sistemas para procesar textos no se obtiene el resultado final a medida que se va escribiendo sino que primero se crea un código fuente y luego se procesa para llegar al documento. En este sentido es similar a los lenguajes de “marcas” como el HTML.

El creador de TeX es Donald E. Knuth. Su trabajo fue un encargo de la American Mathematical Society a principios de los años 70. Esta sociedad buscaba un lenguaje para fomatear sus artículos llenos de teoremas y fórmulas matemáticas muy complejas. El resultado fue un lenguaje extremadamente potente y configurable pero también difícil de aprender y de usar. Para facilitar el trabajo con TeX fueron surgiendo “macros” que agrupaban diferentes instrucciones de TeX. El responsable inicial del LATEX es Leslie Lamport.

Una de las grandes ventajas de LATEX es la existencia de una gran cantidad de “paquetes” estándares pensados para dotar a los textos de toda la funcionalidad que se precise. Así hay paquetes para incluir gráficos, textos de lenguajes de programación, fórmulas físicas y químicas, diagramas matemáticos, etc.

El sistema LATEX está incluido de serie en todas las distribuciones de LINUX, esta es una razón más para instalar este magnífico sistema operativo. Desde hace unos años algunos programadores han creado distribuciones de calidad de LATEX para Windows. Cabe señalar que este sistema no sólo es bueno sino que también es gratis.

Preámbulo y cuerpo

Un documento básico en LATEX$\,$ se compone de dos partes: el preámbulo del documento y el cuerpo del mismo.

Al inicio del documento se debe especificar la clase de documento y lo relativo al ajuste de las páginas, este es el preámbulo, nada de lo que pongamos en el preámbulo aparecerá en el documento que se imprime al final.

En el cuerpo se escribe el texto (normal y matemático)del documento en sí, es decir, el cuerpo es la parte que aparecerá impresa como producto final.

Plantilla básica

\documentclass{article}

\textheight=21cm
\textwidth=17cm
\topmargin=-1cm
\oddsidemargin=0cm
\parindent=0mm
\usepackage{amsmath,amssymb,amsfonts,latexsym,cancel} %Soporte para símbolos y font matemáticos
\usepackage[dvips]{graphicx}			      %Soporte para gráficos.
\DeclareGraphicsExtensions{.pdf,.png,.jpg}
\DeclareGraphicsRule{.wmf}{bmp}{}{}

\begin{document}
... texto + texto en modo matemático + comandos ...
\end{document}

$\bullet$\documentclass{article}: Es la clase de documento, article se refiere al archivo article.cls y se utiliza para hacer artículos. En vez de 'article' se puede utilizar 'report' o 'book' para un reporte o un libro.

$\bullet$\textheight=21cm: Establece el largo del texto en cada página. El default es 19 cm.

$\bullet$\textwidth=17cm: Establece el ancho del texto en cada página (en este caso, de 17 cm). El default es 14 cm.
$\bullet$\topmargin=-1cm: Establece el margen superior. El default es de 3 cm, en este caso la instrucción sube el margen 1 cm hacia arriba.
$\bullet$\oddsidemargin=0cm: Establece el margen izquierdo de la hoja. El default es de 4.5 cm; sin embargo, con sólo poner esta instrucción el margen queda en 2.5 cm. Si el parámetro es positivo se aumenta este margen y si es negativo disminuye.

Los \input ... permiten importar macros o trozos de texto que estén en el directorio actual. Algunos de estos \input... no necesariamente deben estar en el preámbulo.

Otros comandos para el preámbulo

$\bullet$\renewcommand{\baselinestretch}{1.5} genera un texto a espacio y medio. Si se pone 2, lo hace a doble espacio.
$\bullet$\pagestyle{empty} elimina la numeración de las páginas.
$\bullet$\parskip=Xmm genera un espacio de X mm entre los párrafos.
$\bullet$\parindent=0mm elimina la sangría.
$\bullet$\pagestyle{myheadings} coloca la numeración de página en la parte superior.

Cuerpo del documento

El cuerpo del documento es el que se pone entre los delimitadores \begin{document} y \end{document}.

En esta parte se coloca el texto del documento junto con el texto matemático.

Otros ajustes

$\bullet$ \markright{'texto'} coloca ‘texto’ en la parte superior de la página. Se pueden poner varios \markright en el texto (en cada sección). En este texto se usa \markright{texto \hrulefill W. Mora, A. Borbón $\; \;$}
$\bullet$ \newpage le indica a LATEX$\,$ que siga imprimiendo en la página siguiente.

Idioma

El idioma oficial que utiliza LATEX$\,$ es el inglés, sin embargo, utilizando algunas instrucciones se puede lograr que soporte otros idiomas, en particular, veremos cómo hacer para que soporte el español.

Por ejemplo, LATEX$\,$ normalmente no acepta tildes, ni la letra 'ñ', tampoco el signo de pregunta ‘¿’, el de admiración ‘¡’ ni la apertura o el cierre de comillas. Para que acepte estos caracteres se deben utilizar las instrucciones que aparecen en la tabla 1.

 

Tabla 1: Acentos en modo texto y otros símbolos
Comando Símbolo Comando Símbolo
\'a á ?` ¿
\'e é !` ¡
í í `` . '' ” . “
ó ó ` . ' ‘ . ‘
\'u ú \~n ñ

Sin embargo, si en el preámbulo se coloca la instrucción

\usepackage[latin1]{inputenc} % Caracteres con acentos.

se tendrá un soporte completo para el español, ahora sólo las comillas se tendrán que seguir poniendo mediante la instrucción dada en la tabla.

Otro problema que tiene LATEX$\,$ con el idioma es que los títulos de las secciones están en inglés. Por lo tanto, en un libro no saldría Capítulo 1 sino

Chapter 1.

Existen dos formas sencillas de solucionar este problema. La forma más simple y recomendada es poner en el preámbulo del documento la instrucción

\usepackage[spanish]{babel} % Caracteres con acentos.

que carga la opción en español de la librería babel; esta librería también tiene soporte para otros idiomas como alemán, francés, italiano, etc.

La segunda opción es cambiar cada uno de los títulos con las siguientes instrucciones:

\renewcommand{\contentsname}{Contenido}
\renewcommand{\partname}{Parte}
\renewcommand{\indexname}{Lista Alfabética}
\renewcommand{\appendixname}{Apéndice}
\renewcommand{\figurename}{Figura}
\renewcommand{\listfigurename}{Lista de Figuras}
\renewcommand{\tablename}{Tabla}
\renewcommand{\listtablename}{Lista de Tablas}
\renewcommand{\abstractname}{Resumen}
\renewcommand{\chaptername}{Capítulo}
\renewcommand{\refname}{Bibliografía}

Nota: Si el tipo de documento es un libro se debe poner \renewcommand{\bibname}{Bibliografía} para la bibliografía.

Esto también funciona si queremos cambiar algún título en español de los que pone la librería babel.

División de palabras

Con la inclusión del paquete \usepackage[latin1]{inputenc} en el preámbulo se logra que LATEX$\,$ divida correctamente la mayoría de palabras en español, sin embargo, hay algunos casos en donde no será así; si al componer el texto observamos que hay una palabra que se ha dividido mal, vamos a esa palabra en el archivo *.tex, y le indicamos exáctamente donde la puede dividir. Por ejemplo:

de\-ci\-sión.

Este sistema tiene el inconveniente de que LATEX$\,$ sólo divide bien la palabra en ese punto del documento y si dicha palabra aparece otra vez habrá que volver a decirle como se divide, y tiene la ventaja de que funciona con palabras que tienen acento.

Tipos y tamaños de letras.

Caracteres especiales.

Algunos caracteres están reservados para que cumplan alguna función, por eso no se pueden obtener digitándolos directamente como cualquier letra. El hacerlo puede producir algún error de compilación, o puede pasar que el carácter sea ignorado. En las siguientes dos tablas se especifica el uso de algunos caracteres y el comando que se debe digitar para imprimirlos.

\ carácter inicial de comando
{ } abre y cierra bloque de código
$ abre y cierra el modo matemático
& tabulador (en tablas y matrices)
# señala parámetro en las macros
_^ para exponentes y subíndices
~ para evitar cortes de renglón
% para comentarios
Carácter
Comando
$\backslash$ $\backslash$
$\{$, $\}$ $\{$, $\}$
$ \$
& \&
_, ^ \_ , \^{}
# \#
~ \~{}
% \%

El comando \verb permite imprimir los caracteres tal y como aparecen en pantalla. Por ejemplo, si se quiere digitar \verb@{ $ x^2+1$ }@ se imprimirá { $ x^2+1 $ }. El símbolo ‘@’ se usa como delimitador de lo que se quiere imprimir. Se pueden usar otros delimitadores no presentes en el texto a imprimir.

Algunos tipos de letras.

Para cambiar el tipo de letra se pone {\tipo texto...}. Por ejemplo, para escribir en negrita se pone {\bf text....}

Comando
Produce
{\rm Roman } Roman
{\em Enfático } Enfático
{\bf Negrita } Negrita
{\it Itálica } Itálica
{\sl Slanted } Slanted
{\sf Sans Serif } Sans Serif
{\sc Small Caps } SMALL CAPS
{\tt Typewriter } Typewriter
\underline{ Subrayado } Subrayado

Tamaños de letras.

Comando Produce
{\tiny Tiny} Tiny
{\scriptsize Script} Script
{\footnotesize Foot} Foot
{\small Small} Small
{\normalsize Normal} Normal
{\large large} large
{\Large Large} Large
{\huge huge} huge
{\Huge Huge} Huge

Se pueden hacer combinaciones de tipos de letras con diferentes tamaños. Por ejemplo

EJEMPLO 2
{\large \bf `Ejemplo'} produce ‘Ejemplo’

Ejemplo:

Observaremos una serie de mensajes y se crearán al menos dos ficheros, uno con extensión LOG donde se guardan los mensajes de salida de LaTeX y otro con extensión DVI que corresponde al fichero ya procesado. Vamos a ilustrar esto con un ejemplo. fichero fuente se va a llamar ejemplo.tex y consiste en las instrucciones siguientes:

\documentclass[12pt,a4paper,spanish]{book} %%%Esto indica el tipo de documento.
Va a ser un libro (book), el tamaño es a4, la lengua castellano (spanish)%%%

\usepackage{babel} %%%Incluimos el paquete Babel que sirve para separar correctamente las palabras de multitud de idiomas%%%
\usepackage[latin1]{inputenc}%%%Este paquete permite poner acentos directamente%%%
\usepackage{amsmath}%%%Macros AMS%%%
\usepackage{amsthm}%%%Macros AMS para teoremas%%%
\usepackage{amsfonts}}%%%Permite usar fuentes AMS%%%
\usepackage[dvips]{epsfig} %%%Inclusión de figuras postscript con visualización posterior%%%
\usepackage{indentfirst} }%%%Espaciado de
primera línea de cada párrafo%%%

\author{Tú mismo}
\title{Esto es un ejemplo de LaTeX en acción}
\date{La fecha de hoy}
\begin{document}%%%Aquí empieza el documento%%%
\maketitle
\tableofcontents
\listoffigures
\chapter{Primer capítulo}
\section{Primera sección}
Texto de la sección
\begin {eqnarray} \label{eq1} %%%Comienzo
de la ecuación%%%

f:A \times M \rightarrow M \\
(\lambda, x) \rightarrow \lambda x \nonumber
\end {eqnarray} %%%Fin de la ecuación%%%
\end {document}

Ahora escribimos en la línea de comandos:

latex ejemplo.tex

y obtenemos los ficheros siguientes: ejemplo.dvi, ejemplo.log , ejemplo.aux, ejemplo.lof. El fichero con extensión DVI puede visualizarse con un programa adecuado para ello. La distribución de MiKTeX usa un visor llamado YAP (que aparece en el menú de MiKTeX como DVI Viewer). Las siguientes son capturas de pantalla del visor YAP correspondientes al archivo ejemplo.dvi:

Página 1

Página 3

Página 5

Página 7

El fichero ejemplo.log muestra los mensajes de salida que se han producido al procesar el fichero ejemplo.tex. Es útil en el caso de que el fichero no muestre una correcta salida. Podemos depurarlo leyendo los datos de este fichero. El fichero ejemplo.lof nos muestra los datos de salida de la lista de figuras incluidas en el documento. El fichero ejemplo.toc, los datos de la tabla de contenidos y el fichero ejemplo.aux las referencias cruzadas y otras cuestiones como la división en secciones.

Fuente

matematicas.net

Sección Tecnologías de Internet: Revista digital  Matemática, Educación e Internet.

Más Información

Wikipedia

Editor Online de Ecuaciones Latex

Como instalar WinTex en XP

Ejemplos

Convierte tu vieja webcam en una cámara de seguridad en Linux

29 Dic

En Linux existen diversas alternativas, aunque una de las más interesantes es Motion, una aplicación que permite controlar la señal de vídeo de una o varias cámaras y que además detecta movimiento. Este programa está escrito en C y está orientado a ser usado con Linux -usando la interfaz de video4linux. La utilidad se aprovecha bajo la línea de comandos, y su salida pueden ser imágenes JPEG o PPM y también secuencias de vídeo MPEG. Hay que tener en cuenta que Motion es una herramienta de línea de comandos y puede funcionar como un daemon con apenas consumo de recursos.
Entre algunas opciones interesantes tenemos:

  • Tomar capturas de movimiento
  • Mostrar múltiples dispositivos de vídeo al mismo tiempo
  • Mostrar múltiples entradas de vídeo en una tarjeta de captura al mismo tiempo
  • Webcam con streaming en directo (usando multipart/x-mixed-replace)
  • Creacióne n tiempo real de películas MPEG usando librerías de FFmpeg
  • Tomar fotos de forma automática cada cierto tiempo
  • Tomar fotos de forma automática con intervalos irregulares usando cron
  • Ejecutar comandos externos cuando se detecta movimiento (por ejemplo, mandar un SMS o un mail)
  • Seguimiento del movimiento (se necesita hardware especial)
  • Suministro de eventos a una base de datos MySQL o PostgreSQL
  • Suministro de vídeo a un dispositivo loopback de video4linux para ver el vídeo en tiempo real
  • Montones de proyectos de usuarios relacionados con interfaces web, etc.
  • Configurable por el usuario
  • Control a través del navegador
  • Control automático del ruido y el umbral de la imagen

Se puede ver un ejemplo de funcionamiento aquí, y los pasos a seguir para  instalarlo los puedes encontrar aqui.

via muyLinux.

Qué pasaría si todo el mundo usara Linux?

23 Dic

Las consecuencias inmediatas serían interesantes, sobre todo en el segmento de la seguridad y en el del coste de licencias software. Si los usuarios finales migraran en forma masiva nos encontraríamos con un panorama curioso:

1. Todo un golpe para el malware

La cultura actual basada en Windows desaparecería y sería reemplazada por las distintas distribuciones Linux que existen en el mercado, y que tendrían un efecto claro sobre la reducción del malware. Controlar este apartado sería mucho más sencillo gracias a la propia filosofía y arquitectura interna de Linux y su control de privilegios.

2. La industria de la seguridad para PCs se difuminaría

Casi de forma paralela a esa desaparición del malware también habría otro efecto colateral, y es el de que los usuarios ya no necesitarían la avalancha de soluciones de seguridad que hoy en día están disponibles en Windows: la eficiencia y seguridad de los sistemas Linux se ha venido demostrando durante años, y la presencia de virus y otras amenazas es mínima con respecto a la que suele darse en sistemas Windows. Lo que si prevalecería es la asesoria y  capacitación en cuanto a las distintas distros que presenta Gnu/Linux.

3. Adiós a los tiempos de no disponibilidad

La solidez de Linux en el campo de los servidores es clara, y los servidores Linux tienen unos porcentajes de disponibilidad muy altos, mientras que sus competidores se ven afectados por conflictos y amenazas que causan diversos periodos de inaccesibilidad a los servicios proporcionados por esas máquinas con otros sistemas operativos.

4. Ahorro a nivel mundial

Las empresas y los usuarios también se beneficiarían del ahorro que lograrían al contar con distribuciones y software FLOSS que se distribuye de forma libre (y en muchos casos, gratuita) y que evita el pago de costosas licencias por el uso de un sistema operativo o una suite ofimática. Eso no quiere decir que las desarrolladoras software no pudieran comercializar sus productos.

5. Mejor software

Si todo el mundo usara Linux, el software seguiría mejorando de forma dramática: más desarrolladores estarían motivados para escribir más aplicaciones y con mayor calidad. El modelo Open Source en el que cada cual es libre de modificar el código fuente, compartirlo y distribuirlo se beneficiaría de forma dramática de ese aumento de usuarios y desarrolladores, que contribuirían de forma masiva al desarrollo de nuevas aplicaciones.

Lo cierto es que todo parecen ventajas -salvo para las empresas con software propietario, claro-, y aunque puede que no lleguemos a corto plazo a una situación en la que Linux y el Software Libre y de Código Abierto dominen el mercado, la popularidad de estas soluciones sigue creciendo, y eso es ya un importante primer paso para tratar de imponerse también en los escritorios de los usuarios finales.

via MuyComputerPRO.

GNU/Linux triunfa en los móviles

1 Dic

Según un informe de Linux Foundation, indica  que el exito de las principales empresas contribuyentes – Red Hat, Novell e IBM – está disminuyendo ligeramente,

Con el éxito del Android – plataforma de Google -, GNU/Linux se ha convertido en una fuerza clave en el mercado del software para smartphones.

A principios de año, Intel y Nokia asociaron sus versiones de móviles que operan con GNU/Linux con la firma MeeGo, que ha llegado a los consumidores como empresa fabricante de tabletas.

Intel ha superado a Novel y a IBM para convertirse en el segundo mayor apoyo de GNU/Linux, mientras que Nokia se ha situado en el número 5 de la lista.

via la flecha.net