; Vince y el mundo del software: febrero 2015

sábado, 21 de febrero de 2015

Compilar lisp desde sublime text 2

Bueno, siguiendo con lisp un poco, ahora toca configurar lisp en sublime text 2. Explicaré cómo compilar pero a lo más sencillo.

Para el coloreado primeramente, abren un archivo .lisp (o .lsp) y hacen lo siguiente:

View>Syntax>Open all with current extension as>Lisp

Y listo!

Ahora para compilar.

1.- Instalan el SBCL (este tutorial es para ese compilador, pero es refácil para otro compilador), y se aseguran que el binario quede en el PATH, para ello, al instalar el sbcl vean que quede marcada la opción de agregar al PATH; si quieren usar la versión de lispstick, lo más fácil es instalarlo de nuevo pero en la carpeta donde está el lispstick (sigan las instrucciones de la página de lispstick), y marquen la opción de PATH, de lo contrario tendrán que revisar cuáles son los directorios que hay que agregar al path (no es sólo el binario si no me equivoco).

2.- luego en el sublime vayan a:
Tools>Build System> New Build System

3.- En el archivo que se les abre escriben:

{
 "cmd": ["sbcl", "--noinform", "--script", "$file"]
}

4.- guardan el archivo, para ello File>Save, y lo guardan en la carpeta que les aparece, en mi caso es:

C:\Users\vincegeratorix\AppData\Roaming\Sublime Text 2\Packages\User

Le ponen un nombre característico, como "LispSBCL" o algo así.

El problema con ésto es que no cambia automáticamente entre un compilador y otro (cuando tienen abiertos varios archivos de distintos lenguajes), es bastante molesto, pero a mí me da un poco lo mismo, simplemente me acostumbré a cambiarlo manualmente y me da auténtica flojera leerme la documentación para ver cómo hacerlo (y que quede al poner la opción de build system automático), pero si quieren investigar me escriben la solución en los comentarios, sería de gran ayuda para todos :) Este es un blog un poco chanta de un estudiante motivado simplemente xD jajjaja :3

Configurar Lisp en windows con emacs y doc view

Hola! ahora estoy en windows jejeje, así que configuré lisp en windows, pero the-noob-style, así que si quieren algo muy fácil, les recomiendo este tutorial.

Para tener lisp con emacs, sbcl (el compilador) y slime (para tener una buena consola) basta con descargar el lispstick y listo! violá!
Lispstick es un compilado con todas las herramientas necesarias, listo para funcionar. Lo descargan de:

http://www.iqool.de/lispstick.html

Recomendaciones


Para ejecutarlo arrancan el archivo "run.bat", y le pueden hacer un acceso directo al escritorio y le cambian el ícono.
Sin embargo, si quieren modificar el archivo de configuración ".emacs", tendrán que modificar primero una línea del "run.bat", en particular la última, que le sacan el "-Q", opción que significa que no toma en cuenta el archivo .emacs, el cual es necesario si quieren hacer modificaciones (ya les explicaré) la dejan así:


%CD%\%EMACS%\bin\runemacs.exe --load  %CD%\.emacs --directory %CD%/%SLIME%/


Es muy importante que antes de eso hagan una copia de respaldo del archivo .emacs, ah! y windows les alegará cuando intenten modificar el nombre (ya que dirá que "no tiene nombre", porque no hay nada antes del punto), así que para respaldarlo una buena opción es comprimir el archivo en un rar o zip, y luego cuando lo quieran recuperar simplemente borran el nuevo y extraen el antiguo.

Ya! con eso están listos (bueno, antes también lo estaban... pero bueno, no podían configurar nada, y yo uso el doc-view).

Actualizar


Para actualizar el lispstick (ya que trae versiones viejas), descargan el programa correspondiente, lo instalan y copian la instalación, tal como sale en las instrucciones de la página de lispstick.
Un dato importante, actualicen emacs y slime, pero el sbcl 2.2 y superior da un error con el slime, así que yo dejé la versión antigua. Pueden buscar soluciones, pero qué demonios XD La primera vez que lo arranquen luego de actualizar demorará un poquito más, pero sólo unos pocos minutos.

Doc-View


Esto es sólo para los que deseen abrir pdf en emacs, es un tanto largo.... pero paso a paso

El doc-view viene por defecto, pero en windows es un poco más difícil ponerlo en marcha.

Antes que nada instalan el soporte a png, para ello, crean un archivo nuevo en emacs (no en el REPL de slime/SBCL, ya que este último es Common Lisp, y necesitamos Emacs Lisp), y escriben lo siguiente:


(cdr (assq 'png dynamic-library-alist))


Luego apretan C-x C-e (Ctrl + x y luego Ctrl + e para los que no saben), y abajo les dará dos strings con los archivos soportados de png. por ejemplo a mí, uno de ellos fue "libpng16-16.dll".

Para darle soporte, simplemente tienen que descargar uno de esos archivos y copiarlos a la carpeta "bin" de emacs (van a su instalación de emacs dentro de lispstick y luego a bin, y ahí copian el susodicho archivo). Es algo complicado encontrarlo a veces, ya que usa la versión más última, pero lo que yo hice fue descargar otro programa que venía con esa dll, la copié, y luego borré el programa.

OJO! Tiene que ser la versión de 32 bits, ya que el lispstick usa emacs de 32 bits.

Luego de ello reinician emacs y cargan un archivo png, y les debería funcionar.

GnuWin32


Para añadir más soporte a emacs, tienen que descargar "gnuwin32" de acá:

http://sourceforge.net/projects/getgnuwin32/files/

Lo descargan e instalan. Luego de ello ejecutan el archivo "download.bat", les demorará harto porque descarga un montón de cosas (tengan un giga preparado para la descarga e instalación, es menos).
Luego que termina de descargar ejecutan el archivo "install.bat", y les demorará otro montón porque compila los paquetes con cygwin y mingw.

Luego de tooodo eso, tienen que agregar la carpeta de las librerías a a variable de entorno PATH del sistema operativo, para ello ubican la carpeta "bin" dentro de la carpeta donde se instalaron los paquetes, en mi caso es:


C:\Users\vincegeratorix\Downloads\lispstick\GetGnuWin32\gnuwin32\bin


y luego en windows 7 (si tienen otro windows busquen en google cómo cambiar path), van a "Equipo" y luego a "Propiedades del sistema", para luego ir a "Configuración avanzada del sistema", en la ventana que les aparece clickan en el botón de "Variables de entorno"; seleccionan "PATH" y le dan a "Editar".
Para editar simplemente ponen un punto y coma al final de la línea y agregan la dirección de su carpeta, en mi caso es así:


C:\Users\vincegeratorix\AppData\Roaming\cabal\bin;C:\Program Files (x86)\FreeArc\bin;C:\Users\vincegeratorix\Downloads\lispstick\GetGnuWin32\gnuwin32\bin;C:\Program Files (x86)\gs\gs9.15\bin;C:\Program Files (x86)\gs\gs9.15\lib;C:\Program Files (x86)\SMLNJ\bin


Lo importante es la línea del gnuwin32, el resto es el gs (necesario para doc-view) y otros compiladores y cosas xD

Ghostscipt


Antes de configurar doc-view, tienen que instalar el ghostscript, para ello descargan la versión de 32 bits de acá:

http://www.ghostscript.com/download/gsdnld.html

 y lo instalan, luego agregan al PATH la carpeta bin y lib (tal como está en el ejemplo de arriba).

Configurar Doc-View


Para configurar doc-view y ver archivos pdf hagan lo siguiente:

Apretan M-x (Alt+x) y escriben abajito "customize-group" e intro (RET es Return, o sea intro, por si ven tutoriales). luego escriben ahí mismo "doc-view" y RET.

Configuraciones

Recomiendo activar la visión contínua, para ello activan la opción de Doc View Continuous, y le dan a Toggle para que quede en on

Luego en "Doc View Ghostscipt Program" escriben: gswin32c

Por si acaso (no estoy seguro cómo es por defecto) no olviden modificar para que quede así:
 Doc View Pdf >Png Converter Function:
(*) doc-view-pdf->png-converter-ghostscript

Con eso está listo, ahora se les verá feo y chico, para ello ajustan la opción de resolución y las opciones de ghostscipt. Yo le puse a los dos de bits el número 2 (porque lo decían en un foro que podía ayudar) y resolución le dí 200, por mi pantalla, pero pueden variar.

Recuerden cambiar el State de cada opción que modifican a "Save for future session"

Con eso ya podrán abrir pdf en emacs

Además si quieren pasar de pdf a texto, pueden instalar el xpdf, agregar los binarios al PATH y modificar las opciones de doc-view.

Les dejo mi .emacs para que tengan una idea:


(setq inferior-lisp-program "sbcl")
(add-to-list 'load-path (concat (getenv "HOME") "\\" (getenv "SLIME")))
(require 'slime)
(slime-setup '(slime-fancy))
(define-key global-map (kbd "") 'slime-selector)
(slime)

;esto es nuevo
(custom-set-variables
 ;; custom-set-variables was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(doc-view-continuous t)
 '(doc-view-ghostscript-options
   (quote
    ("-dSAFER" "-dNOPAUSE" "-sDEVICE=png16m" "-dTextAlphaBits=2" "-dBATCH" "-dGraphicsAlphaBits=2" "-dQUIET")))
 '(doc-view-ghostscript-program "gswin32c")
 '(doc-view-pdf->png-converter-function (quote doc-view-pdf->png-converter-ghostscript))
 '(doc-view-resolution 200))
(custom-set-faces
 ;; custom-set-faces was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 )
 
 ;ASDF esto lo agregué yo por flojera de escribirlo cada vez xD
(require "asdf")

miércoles, 4 de febrero de 2015

Descargos

6 años usando linux, un mes usando pcbsd, y por fin puedo decir ¡¡¡TE AMO WINDOWS!!! Increíble que las únicas distros "usables" son ubuntu y quizás mint (que es una copia con interfaz bonita)...
Increíble... me acabo de dar cuenta de la verdad que todos sabían (los linuxeros), que TODAS las apps externas las hacen para ubuntu, todo ahora lo hacen en ppa o debs que sólo funcionan en ubuntu...
Amaba los días cuando ubuntu era odiado por su inestabilidad y todos los linuxeros eran malditos frikis que se pasaban horas leyendo los malditos manuales, donde si tenías una pregunta, el 80% de las respuestas en los foros era RTFM (Read The Fucking Manual, lee el maldito manual), y te mandaban con toda cordialidad a las wikis, que estaban llenas de información actualizada entre todos...
Ahora No hacen nada para debian, tienes que conformarte con los miserables 37500 paquetes, y si quieres algo más, pues púdrete! porque debian es una distro estable, con paquetes viejos, donde para usar apps externas la única solución es usar la rama inestable (que ni testeo sirve), y todos los noobs en los foros dicen "encontré la solución, cámbiense a inestable y les funcionará el puto kivy"...
Arch ahora es la distro más difícil del mundo... cuando la usé hace 5 años, era hermoso, estable y con los programas más modernos del mundo, ahora tiene programas del día anterior pero se cuelga cada 5 minutos... y si no actualizas en un mes tendrás que formatear todo de nuevo...
Ubuntu, allá en el 2009, era odiado, lo usé y no se podía usar, los programas se colgaban constantemente, era clásico que se quedaban en "blanco y negro"... Usaba paquetes de debian de la rama inestable, pero con los 20 empleados no les daba ni para probarlos...
Hoy ubuntu tiene cientos de empleados, mucho dinero, incluso lanzará un smartphone pronto, tablets, etc. E increíblemente es la única distribución linux "usable" para el ser humano... parece que les funcionó el lema con el cual empezaron, y que todos se burlaban, el famoso "De humanos para humanos"...
Me aburrí de tener que compilar un maldito programa, las dependencias, las dependencias de las dependencias, de tener que meterme a leer los malditos manuales, leer wikis larguísimas (y la única wiki decente y actualizada que queda es la de arch... todo un referente)... ahora comprendo todo, ahora simplemente amo a windows, e instalaré ubuntu para "casos de emergencia" solamente, porque a veces es necesario un linux (más si estudias informática...).