Mostrando entradas con la etiqueta vector linux. Mostrar todas las entradas
Mostrando entradas con la etiqueta vector linux. Mostrar todas las entradas

sábado, 4 de agosto de 2012

Back to Vec


  If you've followed this blog, or you know me, you know I've been a
   vectorlinux user and collaborator for a few years.  Lately, I didn't
   use it and favoured Ubuntu and Arch. The change was done because I
   needed packages that weren't in the official vl repos, and were not
   trivial to build. And was lazy.

   After 1 year (more or less) I found another opportunity for vl, and
   I have to say I'm happy to have tried it.

Installing vectorlinux

   I'm using a Lenovo thinkpad X61, and it doesn't have CD, so the way
   to get a linux running there is booting through an usb drive.
  
   I used unetbootin + VL light 7.0, and found the first
   issue. There's some missmatch between unetbootin versions and vl
   image format, and my unetbootin left the boot image in
   isolinux/kernel/sata instead of /syslinux/kernel/sata . Just
   copying the directory to the other place solved the booting issue.


Booting

   As usual, everything worked as expected, no glitches, and all
   configs did their job.

Packages

   After installing a linux distro, first thing to do is installing
   the 'must have' apps.
  
   - edit /etc/slapt-get/slapt-getrc and enable a few more repos
   - slapt-get --update
   - slapt-get -i ratpoison

   Nice we have 1.4.5 there :). Then, let's go for emacs. OOps,
   there's just emacs 23.X in the repo.

   As a side note, I have to say that besides not having used vl for a
   year, I kept an eye on the irc channel, and I've kept in touch (and
   sometimes giving a hand or opinion in vl projects) with rbistolfi 
   (one of the devs).

   Long story short. After pinging rbistolfi and asking for emacs
   24.1, I had a working package in 30 minutes. And the effort is not
   lost, but all the work is prepared to be pushed to the repos.
  
   While doing my usual instalations, I found some missing packages in
   the repo, so asked for a way to contribute back. You know, I wrote
   the package that vl still uses to build packages, but now I see the
   workflow is much more streamlined. See it in the NEXT POST (NIY).

Early opinion

The first impression is that the whole system is faster than ubuntu. As always, the package selection is really nice, and not having to install 5 related  -dev packages but just one when I need a feature is really confortable.

I already comited a couple of packages to the repo, and found some bug in sbbuilder that I'll try to tackle this weekend.

Vectorlinux, I'm back!

sábado, 14 de noviembre de 2009

VL 6.0 KDE Classic Review

Vectorlinux team has released another version of this beautiful distro.

This release is a kind of tribute to kde 3.* , as it's the last vl with kde 3 bundled in it. Next versions (6.0 SOHO is already in beta) will come with kde 4, so this one is for those who want rock stable and well known kde 3.5.10.

Installing Vectorlinux
As this version still uses the "old" text installer (a new one is in the oven atm), I could boot and install the iso without having to burn a CD using vinstall-iso

sh ./vinstall-iso VL6.0-KDE-Classic.iso

And let the fun start!

The process went flawlessly. I was surprised how few options I had to install extra packages. Well, sensible defaults are ok for me.

To manage usb and CD units user can choose between the resource hog (but well tested and known worldwide) HAL and quick (and VL idiosyncratic) VL-HOT. The default is HAL, but I changed it to VL-HOT.

Since running the iso till I restarted to my new VL-kde only passed 9 minutes. Yes, only nine minutes. In the first boot, I was asked some other questions and a new reboot was required. Then I already booted to a full KDM screen.

After the first tests, everything worked fine: Sound, graphics (I installed propietary ati drivers from their page, and I already have my dualscreen setup), and all the basic things I could test.

Software selection


Vectorlinux has always come with a sensible selection of software, and most of it is already configured to "just work". For example, firefox(3.5.3) comes with flash plugin, pdf plugin, java plugin, etc... Konqueror is also installed (it's a kde distro, remember?)

For IM we have pidgin and Kopete, and KSirc to irc.

Koffice with a whole lotta apps is there, from creating spreadsheets to flowcharts. Lots of apps.

It comes with lots of dev tools by default (g++, gcc, make) and interpreters like perl (5.10.0), python (2.5) and even ruby (1.8.6).

Performance

That's the main reason I like/use Vectorlinux. It's among the fastest linux distros. And it's pretty easy to install. Here's a screenshot of vl running kde, with a couple of terms and ksirc. Click the image for a larger sample.


More Software

Although the VL team selected very good apps to go into VL-kde, I *want* my desired apps NOW!. No problem at all.

I just had to edit (as root) /etc/slapt-get/slapt-getrc and uncomment the testing line from

#DISABLED=....
to
SOURCE=.....

After that, "slapt-get --update" and then, installing all my favourite software was trivial:

"slapt-get -i zsh screen vim-gvim emacs ...."

In no more than 30 minutes, I CAN HAS a workin environment with KDE 3.5.10.


Conclusion


In so little time, I can hardly make a conclusion about it, but knowing the average quality of Vectorlinux releases, and having tested it a bit, I think I can recommend it to people with a little linux knowledge (installer is in text mode, but it's really easy to follow) who want a fast distro to be used in browsing / office or, on the other side, as a developement platform I'd recommend to people who do not want to mess too much with the inners of linux
(it's not arch) but want to learn in a standard platform, that does not hides anything about pure slackware (so pure GNU/linux), and want to learn little by little (it's not ubuntu).

Personally, being a more minimalistic person, I'll stay with vl-std and vl-light, but this release is one I'd recomend to my non-so-techy friends.

There's only a way to see if it fits you. Try it and see. Make (good) use of vl community in case of trouble. It'll positively surprise you.

jueves, 10 de septiembre de 2009

lftp, I love you

There are little programs that surprise me positively now and then.

One of theese programs is lftp. It's a ftp/scp/sftp console program, but it's so well thought and so intuitive, that in 30 seconds I just managed to do the following:

I wanted to connect to my ssh server and download some files. Normally I'd do it with scp, but as I haven't still set up my public/private keys (so I can't use tab completion on scp), I thought There should be a way to stay connected and browse through a remote directory and download what I want. In fact, I already implemented this functionality in ratfinder, using Casiano's GRID::Machine , but I wanted a console app.

I installed lftp (slapt-get --install lftp from vectorlinux), and then connected to my server.

$ lftp
o 192.168.1.35
Password: ******
ls
[FAIL]

Then I read the man page, and noticed there's a protocol called fish that seems to do exactly what I want.

so, now I wrote in a terminal

$ lftp -u kidd fish://192.168.1.35
Password: ******
ls

and I was there!!!

Now with a simple 'get' I can transfer my files :)

martes, 1 de septiembre de 2009

recursividad, perl, memoize, OOP, Borges y haskell

Hola, este post solo es un reminder a todo el que lea esto (unos 20), que hay vida en el intertubez . Esta tarde, he estado charlando con rbistolfi sobre lo 'usual': Programación, filosofia, i software. Hemos charlado sobre memoización (un tipo de programación dinámica).

Pensaba arreglar un poco el code, y hacerlo en forma de post, pero como me gusta tanto el rollo de la conversación, y como derivamos de un sitio a otro, os posteo el churro entero de texto (lo mejor formateado que se)





*** You have joined channel #vectorlinux-es [16:03]
*** Users on #vectorlinux-es: kidd_ rbistolfi T800
*** #vectorlinux-es modes: +tnc [16:04]
*** #vectorlinux-es was created on Tuesday 2009/08/18 04:01:26 PM
*** rbistolfi_ (n=rbistolf@190.48.115.68) has joined channel #vectorlinux-es
[kidd_] wb rbistolfi_
[rbistolfi_] ty kidd_ [16:39]
[rbistolfi_] bon dia
[kidd_] buenas
[kidd_] que hay tio
[rbistolfi_] hey buena idea la de wikipedia
[rbistolfi_] la niña me ha atrapao en una casita que le regalamos toda la
mañana [16:40]
[kidd_] si, verdad? Ahi podemos editar todos? o tienes que estar registrado?
[rbistolfi_] :D
[kidd_] jajaja
[rbistolfi_] kidd_: creo que tienes que estar registrado
[kidd_] oh :( bueno...
[kidd_] no se si nos dejaran registrar y meter links en el mismo dia [16:41]
[kidd_] (ya me entiendes, no somos los primeros)
[rbistolfi_] seguro que no lo somos
[rbistolfi_] pues en un rato pruebo aver que pasa
[rbistolfi_] anoche me puse a leer un poco sobre recursion :) [16:42]
[rbistolfi_] me dormi a las 3am
[kidd_] lol
[kidd_] donde lo leiste? [16:43]
[kidd_] yo ayer estuve leyendo cositas raras tb
[rbistolfi_] "How to think like a computer scientist"
[kidd_] aps, no lo conozco
[rbistolfi_] es bastante guay
[rbistolfi_] muy facil al principio, pero avanza rapido [16:44]
[kidd_] como PLAI
[rbistolfi_] sips
[rbistolfi_] luego me puse a navegar algunos de los temas, y di con esta
funcion
[rbistolfi_] def fibonacci(n):
[rbistolfi_] "Return the nth fibonacci number."
[rbistolfi_] if n in (0, 1):
[rbistolfi_] return n
[rbistolfi_] return fibonacci(n-1) + fibonacci(n-2) [16:45]
[kidd_] sips, es la clasica recursiva, junto con el factorial
[rbistolfi_] yap
[kidd_] esta serie tiene muchas particularidades
[rbistolfi_] es insane
[rbistolfi_] :D
[kidd_] esta relacionada con la proporcion aurea
[rbistolfi_] pues el flujo de esa funcion es una locura :D [16:46]
[kidd_] ¿?
[kidd_] el flujo?
[rbistolfi_] el flow, digamos
[kidd_] ah, la ejecucion.
[rbistolfi_] va agregando istancias de si misma al stack [16:47]
[kidd_] jaj, claro... esta funcion es memoizable 100%
[rbistolfi_] si, la encontre con un ejemplo de memoize
[rbistolfi_] http://wiki.python.org/moin/PythonDecoratorLibrary
[kidd_] pq para calcular fib(n-1), tiene que calcular fib(n-2) y fib(n-3) ,
pero fib(n-2) ya esta siendo calculada como 'hermana' de fib(n-1)
[rbistolfi_] /Memoize
[rbistolfi_] claro [16:48]
[kidd_] veo que python hace un objeto para memoizar [16:49]
[kidd_] en perl, la cosa va a nivel funcion (y de hecho, una funcion no es un
objeto en perl...) [16:50]
[rbistolfi_] se puede hacer con una funcion tambien
[kidd_] ah
[kidd_] esque creia que en python, las closures eran un poco .... feas
[rbistolfi_] pues no se si son feas, pero normalmente python ofrece un idioma
para lo que quieras hacer en lugar de la closure [16:51]
[rbistolfi_] y ademas un objeto provee ya la persistencia que logras en muchas
de las closures de functional programming
[kidd_] ya... nose donde lo leí esto de python [16:52]
[rbistolfi_] pero por lo que he visto, en la mayoria de los casos la closure
se puede reemplazar con un generator o un decorator
[rbistolfi_] pues no es un idioma comun, eso seguro
[rbistolfi_] kidd_: pero cuentame como se implementa en perl :) [16:53]
[kidd_] jej. en perl, las closures son tan faciles como meter un bloque que
este por fuera la funcion [16:54]
[kidd_] p.ejemplo
[kidd_] { my $a=0 sub counter{ ++$a} }
[kidd_] counter; #1
[kidd_] counter; #2
[kidd_] .... [16:55]
[kidd_] ok?
[rbistolfi_] sips
[kidd_] ok, ahora un poco mas complicado. quiero hacer una funcion que genere
counters, dando puntos de partida
[kidd_] [16:57]
[kidd_] sub countGen{
[kidd_] my $a = shift;
[kidd_] return sub {
[kidd_] ++$a;
[kidd_] };
[kidd_] }
[kidd_]
[kidd_] my $fun_ref= countGen(5);
[kidd_] $fun_ref->(); #6
[kidd_] $fun_ref->(); #7
[kidd_] ...
[rbistolfi_] okis [16:58]
[kidd_] pues si a esto le metes lo de poder entrar funciones como args
[kidd_] haces un meta-wrapper que inserta la logica de inicializar un hash, y
devolver una funcion wrapeada que hace la comprovacion de si los
params estan en el hash y si estan devuelve el valor. sino, ejecuta y
guarda el valor en el hash [16:59]
[kidd_] me explico? es como el ultimo ejemplo , pero anidado una vez mas
[rbistolfi_] wow, que chulo
[rbistolfi_] sips
[kidd_] en perl, ademas, puedes cambiar la tabla de simbolos [17:00]
[kidd_] osea, que la misma funcion memoize('mifun'); busca en la tabla de
simbolos mifun
[kidd_] ejecuta el meta-wrapper, y la wrappeada la llama temporalmente
mifun_XYZ
[kidd_] entonces a la mifun le llama mifun_dentro [17:01]
[kidd_] y cambia finalmente mifun_XYZ por mifun, que llama a mifun_dentro
[kidd_] (el tipico swap)
[kidd_] total, que tu programa sigue llamando a mifun
[kidd_] y no tienes que cambiar nada en absoluto
[rbistolfi_] ya, se van pasando la funcion internamente [17:02]
[kidd_] otra de las ventajas de que se hace en tiempo de ejecucion, es que
puedes memoizar solo las funciones que se llaman mucho
[rbistolfi_] claro
[kidd_] mantener contadores (con closures) para saber cuanto has llamado a una
fun
[kidd_] y hacer un wraper general que diga que de una lista de funciones puras
que tu le dices, memoice a partir de las 1000 llamadas [17:03]
[kidd_] como ves, es mucho mas home_made, pero tienes todo el poder en tus
manos
[kidd_] es lo que tiene perl (en general)
[rbistolfi_] pfff que bonito
[rbistolfi_] pues si, es meta-codigo inteligente :D
[kidd_] el libro higher order perl habla de esto exactamente
[kidd_] y no es necesario saber mucho perl para estas partes [17:04]
[kidd_] si quieres un dia lo repasamos
[kidd_] pq es muy bonito
[rbistolfi_] ya, es solo el concepto este de pasar bloques o subs como args
[rbistolfi_] guay sisi
[rbistolfi_] estaria muy bien
[kidd_] y tb sera una excusa para volver a HOP [17:05]
[kidd_] que lo abandoné hace tiempo
[rbistolfi_] jej no esta mal repasar un pco
[rbistolfi_] ah, cual era el asuto de OOP de anoche? [17:06]
[rbistolfi_] *asunto
[kidd_] ah, esque era una movida... sin el code no se si lo sabre explicar
(tengo el code del Mastermind en el lappy)
[rbistolfi_] ah np [17:07]
[kidd_] imagina tengo unas clases: juego, tablero, jugada, jugador ,
[kidd_] la idea es que el tablero es un array de jugadas
[rbistolfi_] sips
[kidd_] el juego tiene como attrs un tablero y 2 jugadores
[rbistolfi_] nice [17:08]
[kidd_] pues bien, el juego tiene una funcion run, que hace que vayan jugando
los 2 players
[kidd_] y va comprobando si el juego ha acabado o no
[kidd_] pues bien, desde el juego hago $self->jugador1->juega
[kidd_] pero el jugador no sabe donde tiene que jugar
[kidd_] pq no tiene relacion con el tablero, ni con la jugada. solo con el
juego mismo, pero el no puede llegar [17:09]
[kidd_] una manera es llamarlo como $self->jugador1-juega($self)
[kidd_] pasando el propio juego por parametro
[rbistolfi_] claro
[kidd_] pero nose... no se si esta era la manera de hacerlo
[rbistolfi_] lindo problem [17:10]
[rbistolfi_] yo diria que la dependencia logica es de tablero
[kidd_] tb podria hacer que el jugador tenga como atributo el juego al que
pertenece
[rbistolfi_] la jugada depende del estado de tablero
[kidd_] osea, mandarlo asi [17:11]
[rbistolfi_] esa ultima parece ser la mas indicada desde el punto de vista
formal al menos
[kidd_] $self->jugador1-juega->($self->tablero)
[kidd_] sips
[kidd_] puede ser
[kidd_] pero nose... normalmente no hay estas relaciones cruzadas [17:12]
[rbistolfi_] claro
[kidd_] pq los objetos son datos más que nada
[kidd_] pero cuando los tratas como 'actores'
[rbistolfi_] exacto
[kidd_] para conversar, necesitan conocerse los dos
[kidd_] o tener alguien que llama explicitamente a cada funcion de cada uno,
con el parametro adecuado [17:13]
[rbistolfi_] ya, aparece la situacion, o el estado general
[kidd_] sips
[rbistolfi_] porque cada jugador debera derivar su jugada de tablero, pero si
lo piensas profundamente, esa dependencia transforma
probablemente a jugador en atributos de tablero [17:14]
[rbistolfi_] al final, el juego desarrolla su logica sin jugador xD
[kidd_] claro, esque son 2 formas de enfocarlo distintas
[kidd_] pero hay una en la que desaparece el jugador, pq en el fondo es el
propio juego que cambia de estado
[rbistolfi_] exacto [17:15]
[kidd_] pero entonces necesitas que el propio juego se rija el mismo, y se
haga avanzar
[kidd_] esta es la manera 'normal' de un programa
[rbistolfi_] como en la peli
[rbistolfi_] la que la compu declara la guerra y debe aprender
[kidd_] pero si lo quiero hacer interactivo, y con jugadores e interficies
intercambiables
[rbistolfi_] como se llama?
[kidd_] ¿?
[kidd_] no se [17:16]
[rbistolfi_] no importa :D
[kidd_] nada, pues eso... que estoy con esas cosas
[rbistolfi_] ya, el juego requiere jugador1 y jugador2
[kidd_] como son toy projects, no da miedo cagarla, pero siempre gusta hacerlo
bien
[kidd_] sips
[rbistolfi_] pues claro
[kidd_] de hecho, uno es Player::Master y el otro Player::Guesser
[rbistolfi_] si jugador1 y jugador2 son impresindibles, entonces son
observadores de tablero [17:17]
[rbistolfi_] que es la representacion natural del juego
[kidd_] y el juego tiene un metodo run, y attrs jug1, jug2, tablero
[rbistolfi_] ta, juego tiene que notificar a los players del cambio en el
tablero [17:18]
[kidd_] bueno, al ser por turnos, si el metodo jugar recibe el tablero como
attr
[kidd_] ya no hay problema
[kidd_] no es a tiempo real
[kidd_] si tuviera que hacer observers... esto seria otro rollo [17:19]
[rbistolfi_] claro, entonces tendrias un tablero en el scope de juego, que lo
puedes pasar a cualquiera de los players segun el turno
[kidd_] bueno, lo que tengo es esto. un tablero que lo paso a los players
cuando les toca [17:20]
[kidd_] lo del observer seria que los jugadores vieran los cambios aunque no
fuera su turno
[kidd_] osea, imagina un juego de 4 players
[kidd_] una aproximacion es a cada turno le paso al player i el tablero actual
[17:21]
[rbistolfi_] exacto, 4 no solo ve la jugada de 3, sino de 2 y de 1
[rbistolfi_] pues si
[kidd_] la otra (con observers) es : cada vez que un player toca el tablero,
todos los demas se enteran (no solo el i+1) y pueden estar pensando
estrategias a hacer con este estado [17:22]
[kidd_] si solo hay 2 players no tiene mucho sentido, aunque seria un buen
ejercicio
[rbistolfi_] pues es interesante, aunque ya la implementacion requiere un poco
mas
[rbistolfi_] pero si, estaria muy chulo
[rbistolfi_] que se puede leer sobre el asunto :) [17:23]
[rbistolfi_] hace rato que quiero leer algo mas abstracto
[rbistolfi_] tipo... patrones de diseño
[kidd_] si llegados a un punto, puedo hacer que el que lleve el juego sea un
controller, y 'juego' solo tenga funciones para modificar el estado
del tablero y devolverlo, podriamos jugar con jugadores via socket
[kidd_] o hacer una vista tipo web
[rbistolfi_] guaaaaaaaay [17:24]
[kidd_] rbistolfi_: tengo el libro de design patterns
[kidd_] ya te lo pasare
[kidd_] pero es un poco toston de leer
[rbistolfi_] me lo imagino
[kidd_] yo no me he leido mas de 10 pags seguidas
[kidd_] y no es agradable
[kidd_] es como un manual de ref
[rbistolfi_] es "el" libro de design patterns no?
[kidd_] sips
[kidd_] el de los 'gang of four' [17:25]
[rbistolfi_] ya
[kidd_] dicen que esta esto de los patrones estan inspirados en la
arquitectura
....
[kidd_] tio, has visto el ritmo de updates de #squeak?
[kidd_] altisimo
[rbistolfi_] sisi, el bot ya esta con la lengua afuera
[kidd_] lol
[rbistolfi_] se ve que se viene la release [17:30]
[kidd_] sips. hoy he mirado la pag de pharo
[kidd_] estan en beta ya
[rbistolfi_] me estuve pensando el otro dia en la discusion
[rbistolfi_] y me parece que el merge, o la migracion total de squeak a pharo
es inevitable [17:31]
[rbistolfi_] si como dice Randal, se ha aceptado la critica de los pharistas
[rbistolfi_] y el goal hacia 4.0 es "limpiar" el kernel y modularizar todo lo
que sea "accesorio"
[rbistolfi_] en un momento squeak y pharo van a superponerse [17:32]
[kidd_] ya, osea que squeak tenia previsto ser pharo, pero de aqui a un tiempo
[kidd_] osea que el camino es el mismo
[rbistolfi_] eso quiere decir que el asunto dejara de ser tecnico para ser
politico
[rbistolfi_] ya
[rbistolfi_] solo queda decidir quien es el lider, si el board de pharo o el
de squeak [17:33]
...
[rbistolfi_] me acorde de unos versos de Borges, por el tema del juego [17:36]
[rbistolfi_] lo tendras que citar en el doc
[rbistolfi_] "Dios mueve al jugador y el jugador a la pieza / [17:37]
[kidd_] ok. hecho
[rbistolfi_] Que dios detras de dios la trama empieza?"
[rbistolfi_] es de un poema que se llama "Ajedrez"
[rbistolfi_] muy pertinente
[rbistolfi_] es la misma pregunta que nos hemos hecho :D [17:38]
[rbistolfi_] si hay jugador, o solo tablero
[kidd_] joer, si??
[rbistolfi_] ese es el final "Dios mueve al jugador, y el jugador a la pieza,
que dios detras de dios la trama empieza, de polvo tiempo, sueño
y agonia?" [17:39]
[rbistolfi_] http://www.metajedrez.com.ar/borges.htm [17:40]
[kidd_] joer, demasiao pa mi :)
[kidd_] ah, thx
[rbistolfi_] ya, es rebuscao el poema [17:41]
[kidd_] todo lo meta me mola :) [17:43]
[rbistolfi_] pues si :)
[kidd_] el otro dia volví a hablar de Gödel , Escher Bach con un colega y en
breve lo volveré a pillar
[kidd_] a ver si lo encuentras en alguna biblio o algo
[kidd_] pq vas a alucinar [17:44]
[rbistolfi_] es que es muy dificil no enrollarse con estas cosas
[rbistolfi_] ya, lo tengo que buscar
[rbistolfi_] lo encontre en una lib por aqui, pero eran como 200€
[kidd_] ¿?!!!
[rbistolfi_] un edicion preciosa, eso si :D
[kidd_] joder!
[rbistolfi_] tusquets me parece
[kidd_] sips.
[rbistolfi_] hay uno de bolsillo que es mas barato, pero aun no lo he visto
[17:45]
[rbistolfi_] por aca
[kidd_] ah, esque como celebraron los 20 años, igual hicieron alguna edicion
Edicion 'golden'
[kidd_] sip, esta de bolsillo yo la vi por 17 Euros
[kidd_] los mejores 17 euros en mucho tiempo. palabra [17:46]
[rbistolfi_] joder, 17€ [17:47]
[rbistolfi_] es cierto que lo mas valioso no tiene precio
[kidd_] como ya decíamos ayer
[kidd_] :)
[rbistolfi_] hace un tiempo pense en ello, porque encontre una edicion de la
iliada en un cajon de la basura
[rbistolfi_] quien puede tirar la iliada a la basura [17:48]
[rbistolfi_] eso prueba que estamos involucionando hacia el mono
[rbistolfi_] :D
[kidd_] jaj
[rbistolfi_] kidd_: tio, parece que gambas no tiene namespaces ni nada 0.o
[17:56]
[rbistolfi_] no puedes importar modulos escritos en gambas [17:57]
[kidd_] jaj
[kidd_] me lo creo
[kidd_] son lenguajes hechos a im. i sem de VB
[rbistolfi_] eso quiere decir que m0e tiene que pasar el estado del installer
a la siguente etapa del wizard cada vez :/
[kidd_] como? no t pillo [17:58]
[kidd_] ooooostia!
[kidd_] ahora t pillo
[rbistolfi_] hay step1.gambas
[rbistolfi_] para que step2.gambas sepa de step1
[rbistolfi_] ya me lo pillaste [17:59]
[kidd_] y la info se tiene que ir pasando , pq no mantiene viva la info de
step1
[rbistolfi_] claro
[kidd_] pero esto no es de namespaces....
[kidd_] bueno si... a menos que llames a todo de forma diferente
[rbistolfi_] ya, no es directamente de namespaces
[kidd_] pero son colisiones generales [18:00]
[kidd_] que todo son vars globales
[rbistolfi_] exactly
[kidd_] y no puedes mantener el estado de un objeto
[kidd_] pfff
[rbistolfi_] al menos eso es lo desprendo de lo que dice M0E
[kidd_] joer, comparando esto con las cosas superteoricas de PLAI (me lo
estuve mirando ayer...) [18:01]
[kidd_] da pena que contemporaneamente se programe en gambas y en haskell
[rbistolfi_] ya, es increible
[kidd_] puess rbistolfi_ , si el rollo de la recursividad te esta gustando,
mira la manera de definir funs en haskell
[rbistolfi_] fue una mala eleccion
[kidd_] len [] = 0
[kidd_] len (x:s) = 1 + len s
[kidd_]
[rbistolfi_] me lo voy a mirar
[kidd_] esta es la funcion len
[rbistolfi_] 0.o [18:02]
[kidd_] [] = lista vacia
[kidd_] osea, le dices len de lista vacia , devuelve 0
[kidd_] (caso base)
[rbistolfi_] ya
[kidd_] y len de una lista, donde el primer elem lo llamo x y el resto s
(car, cdr)
[kidd_] devuelve 1 mas len de el cdr [18:03]
[rbistolfi_] :)
[kidd_] eso tb es poesia
[rbistolfi_] totalmente
[kidd_] listCopy [] = []
[kidd_] listCopy (x:s) = x : listCopy s
[kidd_]
[kidd_] otra igual [18:04]
[kidd_] fijate que haskell es fuertente tipado, pero puedes picar sin tipos
[kidd_] pq tiene inferencia de tipos con polimorfismo
[kidd_] osea, que el presupone cosas
[rbistolfi_] pero una vez efinido un tipo lo tienes que respetar [18:05]
[kidd_] y mientras vayan cumpliendose, pues no pasa nada, y a la que no se
cumplen, el tio mira si las 2 vars tienen un tipo antecesor comun
[kidd_] si es así, pues presupone aquel tipo mas generico
[rbistolfi_] nice
[rbistolfi_] tenemos que empaquetar haskell [18:06]
[rbistolfi_] VL7.0 va a estar guay :D
[kidd_] jej
[rbistolfi_] lo pillaremos desde el ppio [18:07]
[rbistolfi_] bueno tio, me voy a comer y luego al curro
[kidd_] oki
[kidd_] hablamos
[rbistolfi_] laters

Esto ha sido todo... espero que os hayais enterado de algo... si necesitáis referencias, pues las pedís por los comments, y así sé si alguien lee esto.

No hace falta decir que estais invitados a #vectorlinux-es en irc freenode.

Gracias a rbistolfi por colaborar en el 50% del articulo

lunes, 31 de agosto de 2009

New projects, old projects, and EOH

End of holidays (EOH) is here, and it's time to think about past, preesent and future projects. I should wrap up old qw(projects friends jobs ideas energy-spent-where) and refactor them into shiny new $_ . First of all, a little change in my blog. On the right side, there's a link to vl site, and I've set up a search bar.

Old

Projects
I've decided to leave ratfinder as is, and in case of wanting to add new features, start it from the scratch, with a more global vision of perl. I think I need to mess with some small project to apply all the recently learned stuff (Moose, git / hg , Module::Pluggable, Perl::Critic, Test::More, even KiokuDB ). Anyway, I still use ratfinder about 20 times a day, and it could be improved, I like it very much. Some ideas are:

  • Use Curses::UI to make it totally console friendly
  • Use Module::Pluggable to allow plugins like: LRU, playlists, exes...
Work
At work, well... I'm still doing the old projects, and until I finish my Undergrad project , I'll be on theese 3 projects of mine related to Evolutionary Algorithms.

Ideas
Ideas... lots of new cool stuff to think about, and to learn, but definately, being meerly a technical post, I'll underline 2 books that CDamian gave away (bookcrossing).
  • Effective Perl Programming
  • Mastering Algorithms With Perl
I was mostly after MAWP but for the moment, I've read more of EPP than the other. EPP is a very concise book, with really short chapters, teaching you little tricks or warning you against some perl gotcha. I find it really enlightening despite being a book from the late nineties.

New

Projects
I've just started a couple of new pet projects, just to have some fun with perl. One is a MasterMind game. I know there's some MM modules on CPAN, but I think it's a simple enough project to try to do in a couple of days (maybe three). After having the main structure (using Moose), I'd like to try Merelo's Algorithm::Evolutionary and write an cpu player. I will upload soon at my (currently inactive) github account.

Another project is a text installer for Vector Linux. Let's see how does it evolves, we do not know even which language will be using (python? perl? plain bash?? nah ..) . There's already an info page and mercurial repo in vlcore . The project is called vinstall-cli (oh duh!) .

Work
Let's see how everything goes, but there has been some movement in smalltalk field lately...

Ideas

Ideas for this new course are basically:
  • Better managing of my time.
  • Reading more than in the past year.
  • Go abroad at least once.
  • Try to convert myself into an office enabler . It's a concept I'm really familiar with, but it's the first time I see it written somewhere. It'd be great to take good profit of my profile.
  • Learn some web stuff and do freelance projects.

There are some books I'd like to finish before starting new ones.
  • Mercurial. The definitive guide
  • Effective Perl Programming
  • PLAI
Until I finish one of theese books I've promised myself I won't start anything else. Will I be able to acomplish my promise?


Next books I want to read (or reread):
  • OnLisp
  • Gödel, Escher Bach
  • Extreme perl
  • Mastering Algorithms with perl


Raimon, out.

jueves, 11 de junio de 2009

Why I love vectorlinux. Bigger repositories every 2 hours.

Vectorlinux, you know, this little fast distro.

Yesterday, a new VL user came to the forums and asked for a package (code::blocks) . Well, in less than 2 hours, rbistolfi had packaged it, and it's now waiting to be uploaded to the repos.

Isn't it great? Theese things make a little and modest distro into a total WIN.

Vectorlinux is one of the fastest linux distros around, and community seems to be one of the fastest too.

UPDATE:
8 hours later, toothandnail has already uploaded codeblocks package to our repo.

You gotta love this community :D

miércoles, 8 de abril de 2009

Installing Vectorlinux 6.0 light on Acer Aspire One

In this post I'm going to explain the whole process I followed to install vectorlinux 6.0 light on my AAO. One of the trickiest things is AAO doesn't have CD reader, so you have to manage everything through USB ports unless you have an external cd-reader.

Getting rid of Linpus


So you have a brand new AAO with our sucky linpus or WinXP (huh...). You probably want to have separate partitions for your root and /home directories, so we must have some partitions half ready for the installation. If you have 2 usb's
saf

Partitioning and installing
At the moment, I have vl standard and arch linux with a 1Gb swap partition and a 90Gb partition for home.

I've decided to replace vectorlinux standard for vl light. As I already have the partitioning, the installation will be pretty straight (I hope).
Time now -> 16:50

Getting vectorlinux light iso
To install vl from our archlinux partition we need mainly 2 things, the iso and vinstall-iso script.

To get the iso just open a terminal and type
wget http://vectorlinux.osuosl.org/veclinux-6.0/iso-release/VL6.0-Light-Final.iso
It's the same as browsing to http://vectorlinux.com/downloads and downloading the iso with your favourite browser.

vinstall-iso is the script that will allow us to install vl without any extra media (usb keys, cd...). The script is in the iso. We could mount it as a loop device and extract, but as we still have some time (the iso is just at its 21%) we'll gonna get it from somewhere.

googling for vinstall-iso leads us some results, one being from uelsk8s (vl dev) home directory @ vectorlinux servers. We can trust this file :)

wget http://vectorlinux.osuosl.org/Uelsk8s/iso-test/vinstall-iso
I placed both files in the archlinux partition, because we'll need them accessible from the other partition.

install

Time now -> 17:28

Let's install!
Reboot into the other live system you have. If you are installing from a bootable usb, you may have the iso into another usb key.

In archlinux, log in as root and
chmod +x vinstall-iso
./vinstall-iso VL6.0-Light-Final.iso

I got an error :
     mount: could not find any device /dev/loop#
This got fixed executing (as root)
modprobe loop
Back to the installation.

- In the first menu, I don't need to do any partition change so I choose directly to INSTALL , if you need to repartition that's the moment to select FDISK.

- Select SWAP . I usually bypass checking media (too slow for my impatience)
Usually you only have a swap partition, so chose what's by default

- Root partiton. I only give 5 gb to root partition. I don't need much software.
Filesystem: xfs . I usually choose reiserfs, but heard good things about xfs. Let's try it then ;)

- Optional partitions:
/home . I have a separate partition for /home
DONE

- Optional packages:
Serve yourself

Time now -> 17:48
...

Time now -> 18:02
When Vectorlinux tries to install lilo, it does not see archlinux partition, so I didn't install lilo. (I prefer to touch grubs menu.lst than lilo configs)

Reboot

Configuration

Configuration is pretty straightforward. Just select desired options.

Select 1024x600 resolution

Reboot

Time now -> 18:09 (it's getting fast)

Performance

Now we have a functional vl-light.

Wifi is working great sofar (there's no led, but it works).

Let's look at some numbers.

100Mb ram with a fully functional desktop. It's not bad :D

Booting goes around 30 seconds.

domingo, 1 de marzo de 2009

Vector linux 6.0 in my Acer Aspire One

I recently bought an AAO, that came with linpus (a very visual distro without much features, but I suppose nice for people that doesn't expect much from their AAO).

Last week, when I got a bootable usb to repartition my AAO hd I installed arch in one partition and from arch, I could install vectorlinux from arch partition doing a hosted install. I'm going to explain how to do a hosted install. Very easy:

First you should have a working linux (with 2.6.x kernel, forget DSL) and a free unmounted partition. Vl installer will be able to recognize unmounted partitions.

- Get an vl iso (wget http://vectorlinux.osuosl.org/veclinux-6.0/iso-release/VL6.0-STD-Gold.iso will do)

- When its done, mount it in a temporary directory somewhere

mount -o loop VL6.0-STD-Gold.iso tmpdir
- Copy vinstall-iso file to anywhere outside the tmpdir

cp tmpdir/install/vinstall-iso .

- unmount tmpdir

umount tmpdir
- as root, execute vinstall-iso with vl iso as a parameter

./vinstall-iso VL6.0-STD-Gold.iso
- Install starts normally (text installer)
1) choose the correct screen resolution (for 8.9" screens)
2) lilo didn't see archlinux, so I decided not installing lilo, and just modify archlinux's grub menu.lst file

After installing vl normally, you can reboot, and start using vl.

Warning:

Wifi led is software controlled, and won't tell you if wifi is on/off. vl can use wireless out of the box. If it does not work, push the wifi switch until it works (you won't need more than 2 tries)

Some more comments on http://forum.vectorlinux.com/index.php?topic=7330.0

Have fun with a fully working vector linux installed on your aspire one.

Wireless -> ok
Webcam -> ok
Sound -> ok

lunes, 23 de febrero de 2009

Vectorlinux 6.0 is out!

After much efford, vl 6.0 is now a reality. Here is the release announcement. Usual Vl goodies: java,flash,mp3. everything out of the box. It's great to install and go hacking away instantly.

We've put perl 5.10 with some common modules preinstaled.

Give it a try and see how fast is your hardware :D .

lunes, 2 de febrero de 2009

configurations hosted @ github

After some years carrying my configs everywhere, or sending them to myself on the email, I decided to put all them in a git repo at my github.

I'll place there last versions of my usual configurations (vim, emacs, zsh, xpdf, urxvt,vimperator...)

Little background on git on http://es.youtube.com/watch?v=8dhZ9BXQgc4 explained by the perl & smallalk guru Randal L. Schwartz.

Have fun!

jueves, 4 de diciembre de 2008

sbbuilder is out

Bien. He hecho mi primera aplicación oficial para vector linux ( http://www.vectorlinux.com )

Es un programa para generar SlackBuilds con la estructura correcta para añadirlo en los repos sin dificultad.

Link al anuncio.

Disfruten de la simplicidad de perl + Template Toolkit para hacer algo util en apenas 40 lineas