C´omo trabajar con software libre Dr. Luis Gerardo de la Fraga Departamento de Computaci´ on Cinvestav Correo-e: [email protected] 4 de noviembre, 2014 Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 1/55 Contenido 1. Motivaci´on 2. La lista de herramientas 3. M´etodo de trabajo en GNU/Linux 4. Descripci´on de cada una de las herramientas 5. Conclusiones Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 2/55 Motivaci´on Mostrar las herramientas de trabajo diario en GNU/Linux La lista de herramientas est´a basada en mi experiencia personal Yo he trabajado m´as de 20 a˜ nos (desde 1993) con software libre Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 3/55 Las herramientas que veremos Herramienta LATEX gnuplot xfig ImageMagick latex2html perl python maxima octave Dr. Luis Gerardo de la Fraga Uso Formateador de texto para crear documentos, presentaciones Crear gr´aficas Para crear figuras Para editar im´agenes Para crear p´aginas WEB con ecuaciones Programaci´ on de alto nivel Programaci´ on de alto nivel Manipulaci´ on simb´ olica Para algebra lineal. Usa la misma sintaxis que Matlab Uni. Pol. Tlaxcala C´ omo trabajar con software libre 4/55 M´etodo de trabajo en GNU/Linux Excepto xfig todas las dem´as herramientas no tienen una interfaz gr´afica Se necesita usar un editor de texto, generar un script y usar el comando de la herramienta sobre ese script Los editores cl´asicos son emacs y vi La curva de aprendizaje es m´as lenta y se realiza un mejor trabajo cuando se conoce m´as de cada herramienta Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 5/55 Un archivo b´asico de LATEX: Este es un archivo de prueba \documentclass{article} \begin{document} \Huge Este es un archivo de prueba \end{document} 1 Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 6/55 En LATEX lo que importa es la estructura del documento Tipos de archivo letter article report book Formato ninguno secciones (section) partes, secciones (part) cap´ıtulos, partes, secciones Tambi´en se pueden usar \subsection{} y \subsubsection{} beamer se usa para crear presentaciones. Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 7/55 Se pueden usar listas tipo enumerate e itemize: \begin{enumerate} \item Primero \item Segundo \item Tercero \end{enumerate} \begin{itemize} \item Primero \item Segundo \item Tercero \end{itemize} Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala 1. Primero 2. Segundo 3. Tercero Primero Segundo Tercero C´ omo trabajar con software libre 8/55 Se pueden escribir negritas: {\bf palabras en negrita} palabras en negrita Palabras en it´alicas: {\em palabras as´ ı} palabras as´ı Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 9/55 Uno de los mejores aspectos de LATEX es la notaci´ on matem´atica: Una ecuaci´ on cuadr´ atica: $a x^2 + b x + c = 0$ Una ecuaci´on cuadr´atica ax 2 + bx + c = 0 Una matriz: \[ \begin{bmatrix} a_{11} & a_{12}\\ a_{21} & a_{22}\\ \end{bmatrix} \] Una matriz: a11 a12 a21 a22 Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 10/55 \int_{x=0}^2 e^x dx 2 x x=0 e dx \sum_{i=0}^{10} a_i x_i 10 i=0 ai xi f(x) = \alpha \beta x ( \Delta x ) + 6 f (x) = αβx(∆x) + 6 x = r \cos(\theta); \; y= r \sin(\theta) x = r cos(θ); y = r sin(θ) Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 11/55 El uso de etiquetas es algo muy poderoso en LATEX Se poner etiquetas con \label{eq:uno} y referirlas con \ref{eq:uno} Se puede poner etiquetas a: Ecuaciones Figuras Secciones Cap´ıtulos A n´ umeros de p´agina con \pageref{etiqueta} Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 12/55 La parte del documento entre el \documentclass y el \begin{document} se le llama pre´ ambulo Algunos de los paquetes u ´tiles son: \documentclass{article} \usepackage[spanish]{babel} \usepackage[latin1]{inputenc} \usepackage{graphicx} \usepackage{amsmath} \usepackage{url} \usepackage{moreverb} \usepackage{multicol} \decimalpoint \graphicspath{{Figs/}} Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 13/55 gnuplot Este es un programa para generar gr´aficas Se puede usar de forma iterativa, pero es mejor usarlo a trav´es de un script P´agina del proyecto: http://gnuplot.info Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 14/55 $ gnuplot G N U P L O T Version 4.6 patchlevel 5 last modified February 2014 Build System: Darwin x86_64 Copyright (C) 1986-1993, 1998, 2004, 2007-2014 Thomas Williams, Colin Kelley and many others gnuplot home: faq, bugs, etc: immediate help: http://www.gnuplot.info type "help FAQ" type "help" (plot window: hit ’h’) Terminal type set to ’aqua’ gnuplot> set term x11 Terminal type set to ’x11’ Options are ’ nopersist’ gnuplot> plot sin(x) gnuplot> Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 15/55 1 sin(x) 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 -10 -5 0 5 10 \begin{center} \includegraphics[width=0.8\textwidth]{sin.pdf} \end{center} Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 16/55 ¿C´omo graficar un c´ırculo? La ecuaci´on del c´ırculo x 2 + y 2 = r 2 , donde r es su radio, no es una funci´on Para usar una funci´ on tenemos que usar su ecuaci´on param´etrica: x = r cos θ y = r sin θ Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 17/55 4 x(t), y(t) set term post eps color set output "circulo.eps" x(t) = 4*cos(t) y(t) = 4*sin(t) 3 2 1 0 -1 set size ratio -1 set parametric plot x(t), y(t) w l lw 2 -2 -3 -4 -4 Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala -3 -2 -1 0 C´ omo trabajar con software libre 1 2 3 4 18/55 set term post eps color set output "circulo2.eps" x(t) = 4*cos(t) y(t) = 4*sin(t) 4 2 0 set size ratio -1 set parametric unset key set xrange [-5:5] set yrange [-5:5] plot x(t), y(t) w l lw 3 lt 3 Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala -2 -4 -4 -2 0 C´ omo trabajar con software libre 2 4 19/55 set term post eps color set output "test.eps" test postscript terminal test show ticscale filled polygons: 5 +4 by ro ta te d test of character width: 12345678901234567890 ro te ta d by Enhanced text: xn+1 0 5 -4 rotated ce+ntred text de g left justified centre+d text right justified de g linewidth lw 6 lw 5 lw 4 lw 3 0 1 2 3 pattern fill 4 5 6 7 8 9 lw 2 lw 1 Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 20/55 Xfig, un programa para dibujar Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 21/55 Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 22/55 VDD M P1 −I o M P2 M P3 MP4 MP5 V2 V1 MP6 +I o M N4 M N3 I bias M N5 M N2 M N6 M N1 VSS \begin{center} \includegraphics[width=\textwidth]{circuit.pdf} \end{center} Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 23/55 Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 24/55 y yg T3 C2 x xg C1 Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 25/55 ImageMagick Es un conjunto de programas para crear, modificar y desplegar im´agenes Consta de los programas: display, identify, convert, montage y varios m´as. display sirve para desplegar im´agenes identify sirve para identidicar los archivos de im´agenes convert para transformar im´agenes Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 26/55 display marilyn.png Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 27/55 identify marilyn.jpg marilyn.jpg JPEG 970x1221 970x1221+0+0 8-bit sRGB \ 91.1KB 0.000u 0:00.000 Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 28/55 Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 29/55 Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 30/55 Un script del shell: image.sh # 704.331 408.317 # 691.428 550.065 # 513.35 676.969 # 514.152 521.65 # 497.054 331.66 # 497.414 462.708 # 314.454 562.35 # 301.286 419.149 # 0 768 cp a.png b.png mogrify -fill none -stroke white -strokewidth 4 \ -draw ’polyline 704,408 691,550 513,677 514,522 704,408 \ polyline 497,332 497,463 314,562 301,419 497,332 \ line 704,408 497,332 line 691,550 497,463 \ line 513,677 314,562 line 514,522 301,419’ \ -stroke black -fill black -strokewidth 1 -font Times-Bold -pointsize 6 -draw ’text 30,723 "a"’ b.png Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 31/55 Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 32/55 latex2html Es un script en perl para convertir archivos en LATEX a html Las opciones del script se ven con: latex2html -h Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 33/55 Lenguajes de alto nivel Perl Python Php Ruby Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 34/55 ¿Porqu´e aprender un lenguaje de alto nivel? C es un lenguaje de nivel medio Los leguajes de alto nivel son interpretados No se definen tipos de datos Tienen una m´aquina de tiempo de ejecuci´ on (para uso de memoria con un recolector de basura) Es f´acil construir programas r´apidamente Son los lenguajes m´as usandos Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 35/55 Prototipado r´apido Son ideales para realizar programas que procesan texto y generan texto Para generaci´on din´amica de p´aginas WEB Si se tiene una idea, puede obtenerse un programa funcional en minutos u horas Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 36/55 ´Indice de Popularidad de los Lenguajes de Programaci´on PYPL PopularitY of Programming Language index https://sites.google.com/ site/pydatalog/pypl/PyPL-PopularitY-of-Programming-Language Posici´on sep 2014 1 2 3 4 5 6 7 8 9 10 Dr. Luis Gerardo de la Fraga Posici´ on sep 2014 1 2 4 3 5 6 7 8 9 10 Uni. Pol. Tlaxcala Lenguaje de programaci´ on Java PHP Python C# C++ C Javascript Objective-C Ruby Basic Porci´on en % sep 2014 27.2 % 12.8 % 10.7 % 9.8 % 8.8 % 8.3 % 8.1 % 6.1 % 3.4 % 3.1 % C´ omo trabajar con software libre 37/55 PYPL PopularitY of Programming Language index https://sites.google.com/ site/pydatalog/pypl/PyPL-PopularitY-of-Programming-Language Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 38/55 http://www.raspberrypi.org/ Se puede comprar en www.newark.com.mx Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 39/55 Problema: trazar un c´ırculo y (−a,b) (a,b) x (−a,−b) Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala (a,−b) C´ omo trabajar con software libre 40/55 Programa en perl # Programa que genera los puntos de un # c´ ırculo de radio 17 $R2 = 17*17; for( $x=0; $x<=17; $x++ ) { $y = int(sqrt($R2 - $x*$x) + 0.5 ); print "$x $y\n"; } perl p.pl > p.txt Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 41/55 Programa en python import math R2 = 17*17 x=0 while x<=17 : y = math.floor( math.sqrt(R2 -x*x) + 0.5 ) print x, y x = x + 1 python p.py > p.txt Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 42/55 Script para gnuplot: Programa en python set term post eps color set output "c.eps" set xrange [-1:18] set yrange [-1:18] xt = 17yt = 17 unset key set size ratio -1 set multiplot plot ’p.txt’ w p pt 6 ps 3.5 set parametric plot xt, yt unset multiplot Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 43/55 La gr´afica hecha con gnuplot: 18 16 14 12 10 8 6 4 2 0 0 Dr. Luis Gerardo de la Fraga 2 Uni. Pol. Tlaxcala 4 6 8 10 12 14 16 18 C´ omo trabajar con software libre 44/55 y (−a,b) (−b,a) (a,b) (b,a) x (−b,−a) (−a,−b) Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala (b,−a) (a,−b) C´ omo trabajar con software libre 45/55 Maxima Maxima es un programa que usa manipulaci´ on simb´olica http://maxima.sourceforge.net Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 46/55 Archivo m.max: m.max poli: (a+b); f: poli*poli; e: expand(f); Lo ejecutamos como: maxima -b m.max Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 47/55 La salida: maxima -b m.max Maxima 5.30.0 http://maxima.sourceforge.net using Lisp SBCL 1.1.16 Distributed under the GNU Public License. See the file COPYING. Dedicated to the memory of William Schelter. The function bug_report() provides bug reporting information. (%i1) batch("m.max") read and interpret file: m.max (%i2) poli:b+a (%o2) (%i3) f:poli*poli (%o3) (%i4) e:expand(f) (%o4) (%o4) Dr. Luis Gerardo de la Fraga b + a 2 (b + a) 2 2 b + 2 a b + a m.max Uni. Pol. Tlaxcala C´ omo trabajar con software libre 48/55 GNU Octave Octave es un lenguaje de programaci´ on de alto nivel Su prop´osito general es para c´alculo num´erico https://www.gnu.org/software/octave Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 49/55 Un script para octave: A = [1 1 1; 2 1 1; 0 1 3]; b = [0; 1; 1]; x = A \ b A * x Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 50/55 Otro ejemplo: xm 0 0 0 ym yx sx 0 sx − xm b0 b1 b2 sx xm − ym 0 b3 b4 b5 sy b6 b7 b8 1 0 0 sy ym 0 1 1 1 B: matrix([b0, b1, b2], [b3, b4, b5], [b6, b7, b8]); Ti: matrix ( [ xm/sx, 0, -xm/sx], [0, ym/sy, -ym/sy], [0, 0, 1] T: matrix ( [ sx/xm, 0, 1], [0, sy/ym, 1], [0, 0, 1] ); R: Ti . B . T; /** C: Ti^^(-1); A: Ti.T; **/ Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 51/55 Salida: (%i5) R:Ti . B . T [ b0 - b6 [ [ b3 sx ym b6 sx ym [ -------- - -------(%o5) Col 1 = [ sy xm sy xm [ [ b6 sx [ ----[ xm ] [ b1 sy xm b7 sy xm ] ] [ -------- - -------- ] ] [ sx ym sx ym ] ] [ ] ] Col 2 = [ b4 - b7 ] ] [ ] ] [ b7 sy ] ] [ ----] ] [ ym ] [ (b2 + b1 + b0) xm (b8 + b7 + b6) xm [ ----------------- - ----------------[ sx sx [ Col 3 = [ (b5 + b4 + b3) ym (b8 + b7 + b6) ym [ ----------------- - ----------------[ sy sy [ [ b8 + b7 + b6 Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 52/55 ] ] ] ] ] ] ] ] ] Se ejecuta como: octave -qf p.oct La salida: x = 1 -2 1 ans = 0 1 1 Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 53/55 Conclusiones Se mostraron varias herramitas para trabajo de uso diario el GNU/Linux LATEX, para editar documentos gnuplot, para realizar gr´aficas xfig, para realizar figuras ImageMagick, para editar im´agenes perl y python, para programaci´ on en alto nivel maxima, para c´alculo simb´ olico octave, para c´alculo num´erico Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 54/55 ¡Gracias! Dr. Luis Gerardo de la Fraga Uni. Pol. Tlaxcala C´ omo trabajar con software libre 55/55
© Copyright 2025