Archivos para la Categoría 'emacs'

29
May
09

Notes #2

# FORMA JAVASCRIPT
def artist=(value)
@artist = value
end
> p1.artist = 90
> p1.artist = 90
> 90

# FORMA JAVA
def setArtist(artist)
@artist = artist
end
> p1.setArtist("holaaaa")
> p1.setArtist("holaaaa")
> "holaaaa"

def artist?
return true
end

29
May
09

Notes #1 – 29 de mayo

A ver si le puedo encontrar un uso bueno de nuevo a este blog… Es que
es un servicio muy lento de alimentar y tiene sus detalles pero bueno
como sea…
Ruby Notes:
——————
mnemonicos
@ es el this
def initialize es como el __init__ de python
puedes inspeccionar dentro de la consola con object.inspect como el
to_source de javascript
los simbolos como en lisp :artist, recuerdos del hunchentoot… –>
compojure

Como recordar el hashrocket ‘=>’? Bueno, es para los hashes…
hola = {
‘asdfasd’ => ‘asdfasdf’
}
O para darle valores a los simbolos…

以上です。(si era asi no? can’t remember the phrase, cannot remember…)

Debe de ser facil lo de alimentar las cosas rapido, escribir una
historia corta de una persona que queria alimentar cosas rapido.

18
Mar
09

Radiohead tocó Creep en el concierto!!!

01
Mar
09

Instalando cl-opengl para practicar OpenGl con Common Lisp

Pues esta vez no le batallé tanto pero sigue estando algo confuso. Una
lista del proceso seria le siguiente:

  • Instalar clbuild bajándolo del repositorio darcs
  • Modificar el archivo wnpp-projects para que de una sola vez baje las dependencias y a opengl(ver post anterior) Una vez hecho esto, instalar primero slime y después cl-opengl (el cual al mismo tiempo va a bajar los cffi para Common Lisp, por lo que es mejor hacerlo de esta manera):


    clbuild install slime
    clbuild install cl-opengl

  • Ya con el cl-opengl y el slime más nuevo, ahora podemos hacer
    clbuild slime

    para iniciar una sesión de SLIME en emacs. (ver también
    clbuild slime-configuration

    , un copy-paste del elisp al .emacs es muy conveniente.
  • Con la REPL de SLIME, tenemos ahora que utilizar asdf para compilar los paquetes que acabamos de bajar. Así que…


    ;;para compilar el cl-opengl. Después esto ponerlo en el ~/.sbclrc para que empieze con eso cargado
    (asdf:operate 'asdf:load-op 'cl-opengl)
    ;;y también de una vez compilar los ejemplos...
    (asdf:operate 'asdf:load-op 'cl-glut-examples)

Si todo salió bien, al evaluar en la REPL de SLIME,
(cl-glut-examples:gears)
por ejemplo, nos van a salir unos engranes en la esquina. Ah! y cuando se inicia el SLIME de clbuild es mejor no crear un *inferior-lisp* porque luego aparecen problemas con el SWANK creo, bueno no entendí. Como sea, parece complicado pero realmente no lo fue tanto, lo complicado de la tecnología es que no nos podemos imaginar como funciona, es un hechizo; es algo potteresco.

28
Feb
09

義: Emacs para Haskell

Luego probar este editor, sería divertido hacer ports de algunas
extensiones de Emacs en eLisp a Haskell.
Screenshot
16
Feb
09

Donald Knuth usa emacs

Donald: My general working style is to write everything first with pencil and paper, sitting beside a big wastebasket. Then I use Emacs to enter the text into my machine, using the conventions of TeX. I use tex, dvips, and gv to see the results, which appear on my screen almost instantaneously these days. I check my math with Mathematica.

I program every algorithm that’s discussed (so that I can thoroughly understand it) using CWEB, which works splendidly with the GDB debugger. I make the illustrations with MetaPost (or, in rare cases, on a Mac with Adobe Photoshop or Illustrator). I have some homemade tools, like my own spell-checker for TeX and CWEB within Emacs. I designed my own bitmap font for use with Emacs, because I hate the way the ASCII apostrophe and the left open quote have morphed into independent symbols that no longer match each other visually. I have special Emacs modes to help me classify all the tens of thousands of papers and notes in my files, and special Emacs keyboard shortcuts that make bookwriting a little bit like playing an organ. I prefer rxvt to xterm for terminal input. Since last December, I’ve been using a file backup system called backupfs, which meets my need beautifully to archive the daily state of every file.

12
Nov
08

Cómo mandar mensajes de celular usando Linux y Bluetooth

Memoria, memoria… Instrucciones:

  1. Conectar a la computadora el celular por Bluetooth y ver si se le puede hacer un browse con el Nautilus … cuando uno hace esto aparece algo como obex://[12:12:12:12:12:12]
  2. Otro test que se le puede hace es l2ping a la dirección del device. Por ejemplo,
    l2ping 12:12:12:12:12:12
  3. Una vez hecho esto, tenemos que verificar que en la carpeta de /dev/ se encuentre un dispositivo rfcomm0. Si no se encuentra, se tiene que hacer esto:
    mknod --mode=666 /dev/rfcomm0 c 216 0

    Esto se va a tener que hacer cada vez que uno se desconecte del dispositivo.
  4. Ahora tenemos que conectarnos al dispositivo de la siguiente forma:
    rfcomm connect 0 12:12:12:12:12:12 1
  5. Ya que está listo eso, nos configuramos la minicom (minicom -s) y decimos que el dispositivo que vamos a usar está en /dev/rfcomm0 . Guardamos la configuración como dfl (si se quiere pues, bueno)
  6. Enseguida conectarse con la minicom. Debería de funcionar como una terminal ahora. Probar algunos AT commands para ver que jale.
  7. Por ejemplo para mandar un mensaje es de la siguiente forma:


    AT+CMGF=1
    AT+CMGS="3336292929"
    Hola que pedo que hay. (aqui se tiene que presionar CTRL-Z para termianr

  8. Y ya eso es todo. :D
    Otras cosas útiles: hcitool scan… hciconfig

19
Oct
08

Como utilizar el flymake de emacs para que te revise la sintaxis de ActionScript 3.0

Ok. Ya había logrado hacer esto algo de tiempo atrás, pero debido a que se trata de un super-fix prácticamente, y no había entendido mucho de la teoría, se me olvidó como hacerlo. Ahora lo escribo aquí para no tener que rehacerlo de nuevo. Lo que voy a explicar a continuación está basado en lo que en uno de los métodos que se sugieren en laEmacs Wiki. A grandes rasgos lo que se va a necesitar es el compilador de Flex, ruby bien instalado y todo para poder compilar ruby desde Emacs (un problema que tuve yo al principio es que el path de emacs no acepta paréntesis y yo tenía al ruby instalado en una carpeta que se llamaba wakawaka(2008)), el action-script mode, algunas modificaciones al .emacs, y un script hecho en Ruby del que se va nos vamos apoyar para que el flymake haga peticiones a un mini servidor http para compilar y poder revisar la sintaxis.






Ok, ya una vez que se logró hacer eso, cada vez que queremos utilizar el flymake mientras se programa algo en as3. Se hace lo siguiente:

  • Se tiene que crear el script de ruby con el que vamos a realizar la magia. Pongo un ejemplo a continuación:

    #!E:/ruby/bin/ruby
    require 'webrick'
    include WEBrick
    require 'net/http'
    require 'fileutils'

    COMPILE_COMMAND = "mxmlc Wally.as"

    SWF_TO_RUN = "Wally.swf"
    PORT = 2001
    HOST = "localhost"

    ############################################
    # If a parameter was provided, take action #
    ############################################

    begin
    case ARGV[0]
    when "compile"
    http = Net::HTTP.new(HOST, PORT)
    resp, date = http.get('/compile')
    puts resp.body
    exit
    when "compile_and_show"
    http = Net::HTTP.new(HOST, PORT)
    resp, date = http.get('/compile_and_show')
    puts resp.body
    exit
    when "exit"
    http = Net::HTTP.new(HOST, PORT)
    resp, date = http.get('/exit')
    puts resp.body
    exit
    end
    rescue => e
    puts "Command failed: #{e}"
    exit(1)
    end

    #################################################################
    # Otherwise, if there are no parameters, start the build server #
    #################################################################

    def read_to_prompt(f)
    f.flush
    output = ""
    while chunk = f.read(1)
    STDOUT.write chunk
    output << chunk
    if output =~ /^\(fcsh\)/
    break
    end
    end
    STDOUT.write ">"
    output
    end

    fcsh = IO.popen("fcsh.exe 2>&1", "w+")
    read_to_prompt(fcsh)
    fcsh.puts COMPILE_COMMAND
    read_to_prompt(fcsh)

    #####################################################
    # Now expose the shell through a small http server #
    #####################################################

    s = HTTPServer.new(
    :Port => PORT,
    :Logger => Log.new(nil, BasicLog::WARN),
    :AccessLog => []
    )

    s.mount_proc("/compile"){|req, res|
    fcsh.puts "compile 1"
    output = read_to_prompt(fcsh)
    res.body = output
    res['Content-Type'] = "text/html"
    }

    s.mount_proc("/compile_and_show"){|req, res|
    fcsh.puts "compile 1"
    output = read_to_prompt(fcsh)
    res.body = output
    res['Content-Type'] = "text/html"
    if output =~ /#{SWF_TO_RUN} \([0-9]/
    system "SAFlashPlayer.exe #{SWF_TO_RUN}"
    end
    }

    s.mount_proc("/exit"){|req, res|
    s.shutdown
    fcsh.close
    exit
    }

    trap("INT"){
    s.shutdown
    fcsh.close
    }

    s.start

  • Ahora tenemos que agregarle lo siguiente al .emacs


    (require 'actionscript-mode)
    (add-to-list 'auto-mode-alist '("\\.as$" . actionscript-mode))

    (require 'compile)
    ;; Find error messages in flex compiler output:
    (push '("^\\(.*\\)(\\([0-9]+\\)): col: \\([0-9]+\\) Error: \\(.*\\)$" 1 2 3 2) compilation-error-regexp-alist)

    (require 'flymake)

    (defvar as3-build-file nil)

    (defvar as3-default-build-file-name "build_manager.rb")

    (defun flymake-as3-mode (&optional file)
    (interactive
    (list (read-file-name "Build file: " default-directory as3-default-build-file-name)))
    (message file)
    (flymake-mode 0)
    (let* ((build-file
    (if file (expand-file-name file)
    (if as3-build-file as3-build-file
    (expand-file-name (concat default-directory as3-default-build-file-name))))))
    (if (file-exists-p build-file)
    (progn
    (setq as3-build-file build-file)
    (flymake-mode 1)
    (message (concat "Set flymake mode with build file, " build-file ".")))
    (message (concat "Build file, " build-file ", does not exist.")))))

    (defun flymake-as3-init ()
    (if as3-build-file
    (progn
    (remove-hook 'after-save-hook 'flymake-after-save-hook t)
    (save-buffer)
    (add-hook 'after-save-hook 'flymake-after-save-hook nil t)
    (list "ruby" (list as3-build-file "compile")))))

    (defun flymake-as3-cleanup () (message "Flymake finished checking AS3."))
    (defun flymake-as3-get-real-file-name (tmp-file) tmp-file)

    (setq flymake-allowed-file-name-masks
    (cons '(".+\\.as$\\|.+\\.mxml$"
    flymake-as3-init
    flymake-as3-cleanup
    flymake-as3-get-real-file-name)
    flymake-allowed-file-name-masks))

    (setq flymake-err-line-patterns
    (cons '("^\\(.*\\)(\\([0-9]+\\)): col: \\([0-9]+\\) Error: \\(.*\\)$" 1 2 3 4)
    flymake-err-line-patterns))

    (define-key actionscript-mode-map (kbd "C-c p") 'flymake-goto-prev-error)
    (define-key actionscript-mode-map (kbd "C-c n") 'flymake-goto-next-error)

    (defun as3-compile ()
    "Launch an emacs compile for the current project"
    (interactive)
    (if as3-build-file
    (let ((command (concat "ruby " as3-build-file " compile_and_show")))
    (save-some-buffers (not compilation-ask-about-save) nil)
    (setq compilation-directory (file-name-directory as3-build-file))
    (compilation-start command))))

    (define-key actionscript-mode-map (kbd "C-c k") 'as3-compile)

    (add-hook 'actionscript-mode-hook
    '(lambda ()
    (flymake-as3-mode)
    ))

  • Cada vez que utilizamos el flymake, se tiene que correr primero el script en ruby: ruby build_manage.rb en la shell. Ahora nos metemos al emacs y abrimos algún archivo para Action Script 3.0 . Tenemos que hacer M-x as3-compile. Ahí nos va a pedir el nombre del build_manage file que hicimos.

Una vez hecho esto correctamente, el flymake revisará la sintaxis del AS3. Uff

29
Ago
08

Como compilar desde línea de comando para Windows

(escrito en tiempos del Visual Studio 2008)
Muchas veces escribo en este blog, con el único fin de no olvidar ciertas cosas y ésta es una de ellas…
Recientemente he tenido que instalar el Visual C++ y el SDK de Windows. Le dí una oportunidad al Visual C++ de existir, y mientras mi código lo escribía en emacs, utilizaba el IDE chafa de Microsoft para compilar y demás. Pero los problemas con este IDE son los mismos que hay con todos: te crea mil carpetas, le pone flags extrañas al compilador, y luego hace propagando de cosas de Microsoft que simplemente no entiendo. (“error de parseo debido al manifest” !?), así que decidí ponerme a investigar como usar el compilador ése desde línea de comando.
Para poder compilar, vamos a tener que hacer uso de un vcvars32.bat que nos pone todas las variables de ambiente que se necesitan para hacerlo. Este archivo se encuentra en estos tiempos enc:/Program Files/Microsoft Visual Studio 9.0/VC/bin/. Sin embargo, al bajar el SDK para Windows… ¡este batch file ya no sirve! ¡Tiene un bug! Un bug que Microsoft no ha arreglado desde marzo. あほ!Por lo que se tiene que modificar este archivo para que diga lo siguiente:


@SET VSINSTALLDIR=C:\Program Files\Microsoft Visual Studio 9.0
@SET VCINSTALLDIR=C:\Program Files\Microsoft Visual Studio 9.0\VC
@SET FrameworkDir=C:\Windows\Microsoft.NET\Framework
@SET FrameworkVersion=v2.0.50727
@SET Framework35Version=v3.5
@if "%VSINSTALLDIR%"=="" goto error_no_VSINSTALLDIR
@if "%VCINSTALLDIR%"=="" goto error_no_VCINSTALLDIR

Una vez que se ha modificado ese archivo para que el header este idéntico a como lo pusé arriba, vamos a tener que correr este VCVARS32. Una vez hecho esto, te aparecerá sun mensaje de “Setting environment for using Microsoft Visual Studio 2008 x86 tools.” indicándote que ya vas a poder utilizar las herramientas cl y link. El Visual Studio te incluye una opción para poder hacerlo desde el cmd, pero te cambia todo path hasta donde el Visual guarda los ‘proyectos’ por default. Así que para esto hice un pequeño macro de uso personal, para que corriera este batch desde el cmd en emacs y me dejara a mi en C:


(fset 'wally-visual-shell
[?\M-x ?s ?h ?e ?l ?l return ?e ?: return ?c ?: return ?c ?d ? ?c ?: ?/ ?P ?R ?o ?g ?r ?a ?m ? ?F ?i ?l ?e ?s ?/ ?M ?i ?c ?r ?o ?s ?o ?f ?t ? ?V ?i ?s ?u ?a ?l ? ?S ?t ?u ?d ?i ?o ? ?9 ?. ?0 ?/ ?V ?C ?/ ?b ?i ?n ?/ return ?v ?c ?v ?a ?r ?s ?3 ?2 return ?c ?d ? ?c ?: ?/ return])

Con esto puedo compilar directamente desde emacs después. Cuando se compila aparece un warning relacionado con el exception handling. Éso es porque se debe de compilar de esta manera:
cl /EHsc wally.cpp


Bueno memoria, espero que te haya servido esta entry. Con amor Wally.

10
Ago
08

Mi fix para lo del problema de WordPress

Nunca pude resolver el problema con el xml-rpc, así que hice un .el básico para resoverlo:
(fset 'wally-wordpress-fix [C-home ?\M-x ?r ?e ?p ?l ?a ?c ?e ?- ?s ?t ?r ?i ?n ?g return ?& ?l ?t ?\; return ? return C-home ?\M-x ?r ?e ?p ?l ?a ?c ?e ?- ?s ?t ?r ?i ?n ?g return ?& ?q ?u ?o ?t ?\; return ?\" return C-home ? C-end ?])

No creo que a nadie en el mundo le sirva, pero lo pongo aquí por si necesito el código después.