Archive for the 'Tecnología' Category

06
Dic
09

Plantilla para crear documentos en LaTeX

Supongo que este es el último código que voy a postear en un buen tiempo porque, aparte de estos 3, no recuerdo en este momento otros a los que siempre tenga que estar recurriendo ya sea en la casa o en la Universidad.

El código que dejo a continuación sirve como base para escribir sobre él y generar documentos en LaTeX. Además, incluye ciertos ejemplos para insertar imágenes y fórmulas.

Pero antes… ¿usted tiene alguna idea de lo que es LaTeX? Cito a Wikipedia para que tenga una noción en caso que no lo conozca:

LaTeX es un sistema de composición de textos orientado especialmente a la creación de libros, documentos científicos y técnicos que contengan fórmulas matemáticas.

(…)

Es muy utilizado para la composición de artículos académicos, tesis y libros técnicos, dado que la calidad tipográfica de los documentos realizados con LaTeX es comparable a la de una editorial científica de primera línea. LaTeX es software libre bajo licencia LPPL.

Bien, ahora sí el código (haga click en el texto “show source” que aparece abajo para verlo):

\documentclass[letterpaper,10pt,onecolumn,titlepage]{article}

% Se cargan los paquetes necesarios
\usepackage{verbatim}

\usepackage{mathrsfs}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{subfigure}
\usepackage{ucs}
\usepackage[utf8x]{inputenc}
\usepackage[spanish]{babel}
\usepackage{fontenc}
\usepackage{graphicx}
\usepackage{anysize}
\marginsize{2cm}{2cm}{1cm}{1cm}
\usepackage{fancyhdr}
\pagestyle{fancy}
\setlength{\headheight}{13.1pt}

% Portada
\author{Nombre del autor}
\title{Título (línea 1)\\
	Título (línea 2)\\
	~\\
	Subtítulo\\
	~\\
	\emph{Tema del documento}}
\date{Fecha}

\begin{document}

% Se aplica el formato a las páginas. Se despliegan: portada e índices de materias, figuras y tablas
\renewcommand{\listtablename}{Índice de tablas}
\renewcommand{\tablename}{Tabla}
\maketitle
\setcounter{page}{2}
\tableofcontents{}
%\thispagestyle{empty}
%\newpage
\listoffigures{}
%\listoftables
\thispagestyle{empty}
\newpage
\fancyhead{}
\fancyfoot{}

% Encabezado y pie de página
\lhead{Texto del encabezado}
\lfoot{Texto del pie de página}
\rfoot{\thepage}

% Desarrollo de los contenidos del documento
\section{Nombre de la sección}

Despliegue de una imagen que se llama ``nombreArchivo.png'' junto a su número de referencia:

\begin{figure}[!h]
	\begin{center}
		\includegraphics[width=9cm]{nombreArchivo}
		\caption{Descripción de la imagen}
		\label{fig:nombre_de_la_referencia}
	\end{center}
\end{figure}

Para referir la figura anterior se utiliza el texto ``ref'' precedido de un \textit{backslash}: así, dicha figura es la número \ref{fig:nombre_de_la_referencia}.

Expresión matemática en línea con el texto: $f(x):=ax^2+bx+c$.

Representación de una ecuación en una línea nueva, sin número de referencia:

$$\overrightarrow{F} = m \cdot \overrightarrow{a}$$

Representación de una ecuación en una línea nueva, con número de referencia:

\begin{equation}
 e^{j\omega} = \cos (\omega) + j \sin (\omega)
 \label{eq:identidad}
\end{equation}

La ecuación anterior es la número \eqref{eq:identidad}.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

\subsection{Nombre de la subsección}

Una lista:

\begin{itemize}
 \item Soy el primer ítem de la lista.
 \item Soy el segundo ítem de la lista.
\end{itemize}

Una matriz identidad:

$$I = \left[
\begin{array}{c c c c c}
        1    &    0    &    0    &    0    \\
        0    &    1    &    0    &    0    \\
        0    &    0    &    1    &    0    \\
        0    &    0    &    0    &    1
\end{array} \right]$$

% Insertar una gran cantidad de comentarios (bloque)
\begin{comment}
Este texto, al igual que aquel que está precedido por un signo de porcentaje, no será mostrado en el documento final.
\end{comment}

% Bibliografía utilizada en la confección del documento
\begin{thebibliography}{10}
	\bibitem{referencia1}Texto de la primera referencia.
	\bibitem{referencia2}Texto de la segunda referencia.
\end{thebibliography}

\end{document}

Lo anterior fue probado en Arch Linux con TeX Live como distribución. Nótese que importa gran cantidad de paquetes en el preámbulo del documento, quizás muchos más de los que serían necesarios, pero con ellos yo al menos me aseguro que el compilador no me reclame porque no encuentra las cosas.

Si usted está algo reacio a creer que lo anterior puede generar un documento, el resultado de compilar y exportar el código a formato PDF da origen a este archivo.

Finalmente, en caso que usted sepa lo que es LaTeX y quiera ocuparlo, pero no tenga muy claro cómo hacerlo, puede visitar esta guía (en español) o esta (en inglés). Personalmente recomiendo la última que fue con la que yo aprendí.

05
Dic
09

Cambiar el tipo de letra utilizado en los gráficos de MATLAB

Para seguir haciendo uso del “juguete nuevo”, ahora dejo un código que permite modificar la fuente (tipo de letra) utilizada al desplegar gráficos mediante el comando plot en MATLAB. Lo anterior se puede realizar de manera bastante directa en Windows (aunque la mayor parte de las veces no es siquiera necesario), pero en GNU/Linux (al menos en mi experiencia) es más engorroso y se debe hacer siempre dado que la fuente que utiliza el programa por omisión es horrible y no se lleva bien con caracteres típicos del español. De todas formas, el código funciona en ambas plataformas.

Como agregado también incluyo una línea de código que otorga la posibilidad de cambiar el nombre de la ventana (figure) donde va a ser desplegado el gráfico de modo que, cuando se muestran un gran número de ellos en pantalla, estos sean fácilmente identificables. Finalmente, también una línea para guardar la imagen generada al disco de manera automática.

% Se deben cambiar los textos 'Nombre de la ventana', 'Título del gráfico',
% 'Etiqueta del eje x' y 'Etiqueta del eje y' por las frases que correspondan
% (en ningún caso borrar las comillas simples).
% Además, evidentemente se deben reemplazar los parámetros de "plot" (datosX
% y datosY) por los que efectivamente se graficarán.
% Finalmente, también se debe cambiar el texto correspondiente a
% 'nombre_del_archivo' y 'extensión'. En el último caso, yo al menos utilizo 'png'.
figure('Name','Nombre de la ventana','NumberTitle','off','Color', [1 1 1])
plot(datosX,datosY)
title('Título del gráfico','FontName','Arial','FontSize', 14);
xlabel('Etiqueta del eje x','FontName','Arial','FontSize', 14);
ylabel('Etiqueta del eje y','FontName','Arial','FontSize', 14);
saveas(gcf,'nombre_del_archivo','extensión');

Los parámetros del tipo de letra (en este caso Arial) y de su tamaño (en el código, 14) pueden ser variados por otros de su preferencia (cambiar el tipo de letra podría no ser muy directo en todo caso).

Hay otras opciones relativas a las características del texto, distintas a las mostradas, que pueden ser modificadas. En el próximo ejemplo se muestran algunas de ellas y, además, otra forma de darle formato al título (más larga que la anterior, pero que de alguna manera podría resultar más clara para algunas personas).

% Se da el ejemplo haciendo uso de la posibilidad de incluir leyendas en
% los gráficos.
% Del código, los textos del título y de las leyendas deben ser cambiadas
% por las pertinentes. Además, el usuario podría querer modificar el texto
% 'North', el cual indica la posición dentro del gráfico en el que colocará
% la leyenda. También se pueden cambiar el tipo de letra y su tamaño entre
% otros.
titulo = title('Título del gráfico');
leyenda1 = 'Texto de la primera leyenda';
leyenda2 = 'Texto de la segunda leyenda';
leyenda3 = 'Texto de la tercera leyenda';
leyenda4 = 'Texto de la cuarta leyenda';
leyenda = legend(leyenda1,leyenda2,leyenda3,leyenda4,'Location','North');
set(titulo,'FontName','arial','FontUnits','points','FontSize',11,...
    'FontWeight','normal','FontAngle','normal');
set(leyenda,'FontName','arial','FontUnits','points','FontSize',10,...
    'FontWeight','normal','FontAngle','normal');

Espero que todo lo anterior sea lo suficientemente claro. Jueguen y prueben con estos pequeños códigos y revisen la documentación de MATLAB para saber cómo funcionan las cosas, qué otras opciones hay para ser modificadas, etcétera.

05
Dic
09

Compilar programas disponibles en el AUR e instalarlos

El otro día me enteré que se puede postear código fuente en los entradas del blog de manera muy fácil, de modo que voy a tomar unos artículos que había escrito hace un buen tiempo [1] [2] que estaban muy adornados con “teoría” para que el usuario supiera qué era lo que estaba haciendo realmente para dejar solo la parte práctica. En esa ocasión no utilicé el plug in para desplegar código, así que supongo que ahora puede quedar más “limpio”.

Sin embargo, antes que todo claramente debo situar la escena. Pasa que en Arch Linux existe un repositorio (el AUR) que es mantenido por los usuarios de la distribución en los que ellos suben código que permite instalar programas que no están disponibles en los repositorios oficiales. Si bien se corre un riesgo al hacer uso de esta opción (Arch no les da soporte y toda la responsabilidad recae en la comunidad), utilizarla nos permite acceder a montones de programas que no están contemplados oficialmente.

Ahora sí, la parte práctica. Para instalar un programa descargado desde el AUR en la carpeta “downloads” (por ejemplo), basta con seguir la siguiente secuencia de pasos (la cual no está pensada para ser utilizada como script).

#  Supóngase que el nombre del paquete a instalar es "foo"
#+ y que este se encuentra en la carpeta downloads.
cd downloads
gunzip -c foo.tar.gz | tar xopf -
cd foo
makepkg
su
pacman -U foo.pkg.tar.gz
exit

Lo anterior asume que el usuario que mantiene el paquete en el AUR es ordenado y puso todo su código en la carpeta foo y luego la comprimió en un archivo tar.gz. Esto es lo habitual. También se asume que el código que proporcionó no es defectuoso y/o malicioso…

Para conocer todos los detalles que hay detrás de las operaciones anteriores (cómo hacer que se pueda compilar el código como usuario normal, qué es el ABS o el PKGBUILD por ejemplo), visite los artículos Compilar programas en Arch e instalarlos primera y segunda parte. Si usted nunca ha hecho uso de makepkg antes, se lo recomiendo totalmente. Ahora si lo que quiere es tener a mano la secuencia de comandos (como yo), no se moleste.

27
Ago
09

Mañana viernes: Estación Espacial Internacional sobre la capital

Ya lo publiqué en Twitter (hay mucha más actividad allí que en el blog), pero creo que merece una mención especial. Este viernes 28 de agosto, según informa Emol, la Estación Espacial Internacional cruzará el cielo de las regiones Quinta y Metropolitana por espacio de 3 minutos y podrá ser percibida a simple vista como una estrella que viaja a gran velocidad. Me imagino que no será algo así como “la madre de las estrellas fugaces” (su velocidad percibida será notablemente menor y su duración mayor), pero ahí se verá qué tal resulta.

El comienzo de dicho evento será preciso: 19 horas con 40 minutos. Aparecerá por el suroeste en dirección a la Luna (en perspectiva, claro está) para luego desaparecer. 3 minutos en total, no lo olvide.

Imagen generada con el programa Stellarium.

29
Feb
08

La guerra de los proveedores de “Internets”

UPDATE: hoy 28 de marzo finalmente me han subido la velocidad del internets… Ahora, mientras no se caiga la conexión muy seguido, todo bien. Y a usted… ¿Le aumentaron ya su velocidad?

Para quienes vivimos en países tercermundistas, hablar de conexiones a internet en kilobits por segundo es normal. Uno no se siente mal por ello, no… Poner play en YouTube y luego pause para cargar el video y no tener que verlo entrecortado es el pan de cada día, así como tener que clickear low resolution en cada uno de los sitios streaming que ofrecen su contenido multimedia en distintas calidades es una opción que ya seleccionamos por omisión. Pero esto pronto será cosa del pasado (qué frase más pasada a caca, no me crean tan a priori), pues en Chile se ha declarado una nueva guerra entre proveedores de internet ajustando las velocidades para que ahora las leamos en megabits por segundo: la idea es aproximadamente triplicar la velocidad de bajada actual al mismo costo.

Los involucrados (en primera instancia) en esta nueva guerra por suscriptores a The Internets son Telefónica y VTR (según lo que leí en los comentarios de FayerWayer, Telefónica del Sur aumentó la velocidad de los planes hace tiempo y sin escándalo).

Bueno, pero… ¿Qué tanto de realidad hay en eso que todo lo que hemos experimentado hasta ahora sea efectivamente cosa del pasado? La verdad es que no lo sé, pues nunca he podido usar una conexión (usar en el amplio sentido de la palabra que le puede dar un internauta) que supere los 500 o 600 Kbps, pero intento hacerme una idea visitando la Wikipedia.

Por ejemplo, el viejo y querido estándar USB 1.0 de 1996 trabajaba a 1,5 Mbps lo que, según los wikipedistas, equivale a 0,18 MB/s. También se puede decir que 2 Mbps en streaming equivalen a la calidad de imagen de un VHS, que 8 Mbps equivalen a un DVD y que un lector de CD de 1x trabaja a 1,2 Mbps (0,15 MB/s).

Si nos quedásemos sólo en los números, deberíamos indignarnos (mi conexión es como un lector de CD de 0,5x ¡un chiste!), pero lo que importa realmente es la experiencia del usuario final. Por ejemplo, si Telefornica cumpliera a cabalidad con la conexión a internet que me provee, yo la verdad es que estaría relativamente satisfecho con mi “lector de CD de 0,5x” (en ese caso sólo tendría reparos con la velocidad de subida, que es más que un chiste), pero las constantes caídas del servicio me hacen dudar seriamente que Telefornica entregue lo que ofrece, no así de VTR, que hace mucho tiempo que no escucho quejas graves.

Telefornica a su vez, promete no limitar el ancho de banda de los programas P2P (Neutralidad en la Red), pero si te dejan toda la tarde y/o noche sin internet es claro que fácilmente pueden cumplir con ello (la leyenda urbana dice que VTR hace o hacía traffic shaping). Por otra parte, ninguna de las empresas ha dicho qué pasa con la velocidad de subida, sólo publicitan la de bajada. En mi caso por ejemplo, la velocidad de subida casi llega a un séptimo de la de bajada… ¿O sea que si efectivamente cambian los planes como han publicitado tendré aquella misma velocidad para subir archivos? Sería bastante patético y asimétrico…

Según leí en La Tercera de ayer (página 24), VTR destinó 160 millones de dólares en los últimos 12 meses (el proceso completo duró 18) para crear la infraestructura necesaria que soporte la nueva oferta, mientras que de Telefornica no se supo nada (roguemos entonces que su oferta tenga respaldo tecnológico).

En resumen, si es que lo que se promete se cumple como debe ser (velocidad real) y respetando la Neutralidad en la Red (en el caso de Telefónica), no queda más que alegrarnos.

Para finalizar, no me queda realmente claro si este paso nos hace entrar en las grandes ligas (o las medianas o al menos las chicas), pues necesitaría saber como mínimo la velocidad promedio de internet en el país para poder comparar con otros (por ejemplo con los datos que aparecen aquí o acá), pero de todas formas es un buen paso.

24
Dic
07

Compilar programas en Arch e instalarlos (segunda parte)

A continuación les dejo la segunda parte del artículo. Si le gustó el primero, debe leer el segundo… Y si no… No no más pues.

Como mencioné en el post anterior, es bueno tener cierto conocimiento acerca de unos conceptos. Continúo con ello.

PKGBUILD. Como mencioné anteriormente, corresponde a un archivo de texto con las instrucciones necesarias para compilar un programa desde su código fuente y dejar el paquete listo para ser instalado mediante pacman. Los archivos PKGBUILD tienen un campo que especifica desde dónde bajar el código fuente, por lo que sólo se necesita éste archivo y todo el proceso debiese efectuarse automáticamente (nuevamente si los astros están alineados y todo eso). Un ejemplo de estos archivos se encuentra en la wiki de Arch y lo puedes ver aquí. Otra explicación de las variables que se usan en el archivo también pueden encontrarla aquí. Como están en inglés voy a nombrar las que me parecen relevantes:

  • pkgname: el nombre del paquete
  • pkgver: versión del paquete
  • pkgdesc: descripción del paquete
  • arch: la arquitectura de software en la que se sabe que funciona el programa (procesador, cantidad de bits 32 vs 64)
  • url: especifica la web asociada al programa
  • license: la licencia bajo la que se distribuye el software
  • depends: dependencias que necesita el programa para funcionar
  • makedepends: dependencias necesarias para compilar el programa (pero que no son necesarias una vez que éste está instalado)
  • conflicts: paquetes que producen conflicto si están instalados al mismo tiempo que el paquete que queremos compilar e instalar
  • install: especifica un archivo anexo que se debe utilizar para la instalación (se debe revisar cuidadosamente dicho archivo para verificar que es seguro)
  • source: dirección desde donde se debe descargar el código fuente del programa
  • md5sums: especifica una llave de comprobación de la integridad del código fuente descargado (o sea, verifica que no se haya bajado con errores)

Bueno, son CASI todas las que aparecen. Revisen los links para más detalles. Otro aspecto relevante corresponde a la función build() que se declara en cada PKGBUILD. Dicha función es la que específicamente se encarga de compilar el programa. Detalles con respecto a esta función se pueden ver aquí. Difieren para cada programa, pero básicamente se trata del ./configure, make y make install habitual junto a otras instrucciones.

makepkg. Corresponde a la herramienta de la que dispone Arch para compilar los programas. Básicamente se encarga de leer los PKGBUILD y ejecutarlos, de modo de obtener un paquete listo para ser instalado por pacman (info más detallada en la wiki de Arch). Un link tipo tutorial acerca de makepkg/abs (en inglés) puede ser visto aquí.

Creo que con respecto a los conceptos, eso es suficiente. Ahora vamos con lo que en realidad nos interesa, compilar e instalar (en base a un PKGBUILD ya hecho).

Seguir leyendo ‘Compilar programas en Arch e instalarlos (segunda parte)’

24
Dic
07

Compilar programas en Arch e instalarlos (primera parte)

El siguiente artículo pretendía ser publicado en su totalidad al tiro, pero como se anduvo alargando lo separo en dos partes, la primera de las cuales dejo a continuación.

No me había animado a hacerlo, pero ahora ya logré mi primera instalación exitosa de un programa que no esté en los repositorios de Arch. La cuestión parece que es bien fácil si el programa se encuentra en el AUR (y los astros están alineados de la manera correcta). Bueno, la verdad es que instalé unos scripts solamente, pero algo es algo.

Vamos por partes. ¿Qué es el AUR? Corresponde a ArchLinux User-community Repository, el Repositorio de la Comunidad de usuarios de Arch Linux. Allí los usuarios suben unos archivos de texto plano conocidos como PKGBUILD en los cuales se detalla la forma de compilación e instalación de los programas en Arch, los cuales pueden ser utilizados por la comunidad de usuarios de la distro para instalar programas que no se encuentren en los repositorios oficiales (en ocasiones también se suben otros archivos como parches, configuraciones, etcétera). La gracia de todo esto del AUR es que si los programas se vuelven suficientemente populares, pueden ser promovidos a los repositorios oficiales, donde cuentan con la garantía de quienes mantienen la distro funcionando. .

Lo último mencionado es importante: los PKGBUILD (y otros archivos) que se encuentran en el AUR no son necesariamente seguros. Por ejemplo, en el mismo sitio del AUR se dice que sólo el 29,4% de los paquetes que se encuentran en unsupported han sido revisados y marcados como seguros, además que sugieren revisar cuidadosamente las instrucciones de todos los archivos que se pueden bajar de dicho sitio. Por ello, el primer paso si se quiere instalar un programa es revisar los repositorios oficiales y sólo luego de ello recurrir a los paquetes disponibles en el AUR.

Ah, con respecto a lo del repositorio oficial, por experiencia propia he visto que en dicha página no se encuentran listados todos los paquetes disponibles, por lo que puede ser una buena idea utilizar pacman para buscar programas:

$ pacman -Ss <nombre_paquete>

Bien, una vez establecido lo anterior, es hora de poner manos a la obra. Veamos… Si usted es un conocedor de la lengua de Shakespeare, puede acceder a la wiki de Arch donde después de su buena búsqueda podrá encontrar cómo diablos instalar paquetes con un PKGBUILD. A mi entender, quizás toda esa info es demasiado técnica, por lo que trataré de simplificar el asunto (si no lo logro lo suficiente, discúlpeme, pero haré mi mejor esfuerzo).

Si quieren saber más de Arch y sus repos, pueden revisar los siguientes links: ArchLinux (Español) y Repositorios Oficiales.

Ahora, conceptos que se supone uno debiese conocer:

ABS, Arch Build System. Según muchos amantes de Arch, una de sus gracias es que existe la posibilidad de compilar uno mismo los programas de acuerdo a una serie de reglas (hecho tan técnico que aun no logro entender, pero básicamente es lo que escribí), tal como en Gentoo. Si uno quiere realizar esto con los programas que están en el respositorio de Arch, puede hacer uso de ABS. Según la wiki (en inglés) de la distro

ABS es una herramienta especializada de Arch para compilar programas desde el código fuente hasta crear un paquete .pkg.tar.gz, el cual es instalable mediante pacman.

¿Dudas? Los archivos con extensión tar son como los zip, pero sin compresión, mientras que los gz sí están comprimidos. Esto es, los tar pueden guardar varios archivos en uno solo el cual luego es comprimido (gzipped). Por otra parte, pacman es el gestor de paquetes de Arch (pacman es por package manager), es decir, el programa que se encarga de instalar/desinstalar los paquetes en Arch y manejar dependencias. Si no se entendó eso, quizás sea buena idea revisar el link que puse en el segundo párrafo al respecto (allí el “símil” de pacman es apt/aptitude).

Si se desea hacer esto de compilar archivos que se encuentren en el repositorio oficial, se debe crear el ABS tal como se explica en la wiki de Arch. Entren ahí y ejecuten los comandos descritos hasta abs (incluido), todos como root. Luego los PKGBUILDs de cada programa que esté en el repo oficial los podrán encontrar bajo /var/abs. Cada vez que ejecuten la instrucción abs, se actualizará el árbol del ABS, por lo que recomiendan hacerlo periódicamente.

Próximamente, la segunda parte.

Cualquier duda o corrección (lo que he escrito no necesariamente es totalmente exacto), sírvase a escribir en los comentarios. En la medida que pueda ayudar, lo haré.

Link a la segunda parte.




buscar en el blog

calendario de posts

agosto 2017
L M X J V S D
« Mar    
 123456
78910111213
14151617181920
21222324252627
28293031  

Contacto

Siéntase libre de escribir a contacto También puede encontrarme en Last.fm, YouTube, Delicious y Twitter.