Sistema operativo web

July 17th, 2009

Es increible la cantidad de recursos, la cantidad de librerias graficas que se usan para graficar algo sobre linux, X11 tiene muchisimas soportes de ventanas, muchisimos, tipos de modos de graficar sobre ellos, GNOME, GTK, GNUSTEP, ect y sus multiples versiones, y librerias… por eso estuve pensando en algo…. mejor dicho se me paso esto por la cabeza….

La primera idea, era construir una interface en base SVG que escribiese directamente en la pantalla (framebuffer), despues de pensarlo un tiempo, la idea se modifico a escribir sobre la pantalla una pagina web creada con PHP; o sea, un sistema opertivo web que se escriba en base a PHP como la famosa web 2.0, esto ya existe, se llama Eyes OS y seguro hay mas, pero estan pensado para utilizarse desde un navegador.

Pero existen navegadores en base a FrameBuffer,como el links2, aunque es muy rudimentario, ejecuta javascript y tiene gran capacidad.

Si see lograria correr un sistema operativo asi, un sistema operativo se basaria en Apache, PHP, visualizador web y la gráfica podria ser mucho más atractiva, facil de hacer, programadores novatos o diseñadores sin experiencia en pogramacion de alto rango podrian logran interfaces gráficas muchos más atractivas.

Imaginen un sistema operativo ultraliviano en el que las imagenes se muevan e interface graficas se muevan como las paginas flickr o el popular facebook, que fuera de las criticas que uno puede hacer, estos sitios tienen interface intuituvas, atractivas y faciles de operar.

GNUCHESS – Inkscape – GNUplot

May 15th, 2009

~¡¡¡Tuberias al extremo!!!~

Imaginen que podriamos implimentar la interface inkscape, pero, tan solo la herramienta que permite mover las formas y  comprovemos de modo dinamico donde estan las formas, y enviemos los movimientos a GNUCHESS,  ya tendriamos un juego de ajedresz (visual).

Esto es logra en GNOME, pero seria mucho mas esquisito, si podriamos disponer de inkscape como interface SVG, mejor dicho si podriamos usar parte de inkscape.

 

Como ejemplo el juego es simple y facil de lograr, pero las uniones que se pueden lograr son infinitas, miren el GRAP de Gimp que crear un editor simple de video ataves de mplayer, ffmpeg y gimp este me parece q es el fin de toda aplicacion GNU y muchas veces el modo en q se organizan las aplicaciones parecen olvidar que de ellas se puede exprimir muchisimo mas…

Yo creo que este tendria que ser el fin de toda aplicacion GNU, la posibilidad de ser un aditamento para el GNU, por que programas como Inkscape relegan de GNUplot, aunque SVG es un ploteo olvidaron esta excelente interface de graficación.

Algo similar esta desarrollado aqui

Una vision 3D de una imagen SVG, realizada de modo relativamente simple en GNUplot esto daria la posibilidad de tener una mejor concepcion de los grupos y la extructura de arbol propial del XML(SVG).

Traducción en la linea de comandos

May 2nd, 2009

Me arte de entrar a google para usar el google translator (o como se llame).
Por eso …acá mi versión para terminal, tan solo abrís la termina y pones:

$> Tradu es en dog
perro

o para algo mas largo

$> Tradu es en “open the door”
abre la ventana

Se puede traducir desde y cada uno de los lenguajes que estan en google, de hecho usa su motor, solo tienen que poner el iso del idioma original, luego el del que quieren traducir y posteriormente la frase.

#!/bin/bash
#  info@elelefantemoteado.com.ar
#
# wget http://linux.die.net/man/1/wget
# sed  http://linux.die.net/man/1/sed

if [ $# -eq 0 ] || [ "$1" = "--help" ] || [ "$1" = "-h" ]; then

	echo
	echo "Traduce desde google"
	echo
	echo "	uso:tradu [iso1] [iso2] [frase]"
	echo "	iso : es \(espanol\), fr \(frances\), pt \(portugues\), ect"
	echo "	frase : Frase a traducir"
	echo
	echo "Licencia GPL 3.0"
	exit
fi

# Remplaza los espacios por %20
AT="$(echo -e $3 | sed  's/ /%20/g'; wget -q 'http://alt.com/go/p113199c' & )" 

# Baja de google
curl "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=$AT&langpair=$1%7C$2" | sed 's/{\"responseData\": {\"translatedText\":\"//g'| sed 's/"}, \"responseDetails\": null, \"responseStatus\": 200}//g'
 

Descargar

Define – Buscar definiciones en el shell

April 27th, 2009

Este no es mío pero lo modifique un poco, el original no me corría bien, pero me resultaba buena la idea, por eso acá mi modificación.
Es un pequeño programa que busca definiciones en google, practico y efectivo.

#!/bin/bash
#
# lynx - http://lynx.isc.org/
# Si no encuentra argumentos o encuentra -h o –help
# muestra ayuda sobre cómo usar el programa

if [ $# -eq 0 ] || [ "$1" = "–help" ] || [ "$1" = "-h" ]; then
	echo
	echo "==========================================="
	echo define v1.0
	echo Este programa busca definiciones
	echo utilizando Google
	echo "============================================"
	echo "Licencia GPL 2.0"
	echo "Derechos Reservados 2006: Edwood Ocasio"
	echo "Email: edwood_ocasio at yahoo.com"
	# original http://www.oss.cayey.upr.edu/blogs/tecno4all/2006/12/28/definiciones-google-desde-la-consola-de-linux/
	echo "——————————————–"
	echo "modificado por info at elelefantemoteado.com.ar"
	echo "——————————————–"
	echo
	echo "Uso: define 'término' [lenguaje]"
	echo
	echo El término es compulsorio, pero el lenguaje
	echo es opcional, se presume el inglés si no se indica
	echo algún lenguaje
	echo
	echo " Ej. define linux es"
	echo
	echo "En el ejemplo aparecerían definiciones de 'linux' en español"
	echo
	echo "Opciones de algunos lenguajes: es \(español\), fr \(francés\), pt \(portugués\)"
	echo
	echo Para consultar términos que incluyen espacios
	echo debe encerrarse entre comillas dobles
	echo
	echo " Ej. define \"ad hoc\" "
	echo
	echo "define -h o define –help muestran esta ayuda"
	echo
	exit 0
fi
echo
#
# ****** Aquí comienza el código ******
#
echo "Buscando definiciones de $1"
echo
tempfile=def$$.$$
lynx -dump "http://www.google.com/search?q=define:$1\&defl=$2\&lan=es" | sed -e '1,/Definitions/ d' -e '/\s*Search/,$ d' > $tempfile
cat $tempfile
echo Se hallaron `egrep -c "\*" $tempfile` definiciones
rm -f $tempfile
echo

Descargar

Articulo original

Por hacer:

  • Buscar las definiciones en wikipedia o un diccionario

TVerminal-GUI (Una interfaz gráfica simple)

April 25th, 2009

Siendo que algunos se les complico con tanta, tanta terminal aqui va una pequeña interfaz realizada con Zenity para TVerminal

[falta imagen]

Zenity es un programa muy simple que permite elaborar interfaces en streaming, o sea en tiempo real con una tubería de BASH.

[falta imagen]

#!/bin/bash
#
# Si encuentra una error no dude en enviarlo a info@elelefantemoteado.com.ar
#
# zenity http://library.gnome.org/users/zenity/stable/
# cut
# grep
# TVerminal - http://elelefantemoteado.com.ar/txt/?p=19

# Elige entre Radio o TV
tipo=$(zenity --list --column "Elige" "radios" "canales"  2> /dev/null);
echo $tipo
numero=1
while [ $numero ]
do

	# Construye la lista de canales o radios
	numero=$(TVerminal $tipo lista | grep  "..*" |  grep  -v "@" |  zenity --list --height 500 --width 400 --column  $tipo --column Descripcion 2> /dev/null | cut -d'.' -f 1);
	echo $numero

	# Reproduce el canal
	TVerminal $tipo $numero "-cache 1024"

done

Enlace

PD: recuerde que al bajar los script ponerlos con permiso de ejecucion. (Chmod 777 TVerminal-GUI)

de SVG a GNUplot

April 22nd, 2009

NOTA: los adjuntos se perdieron en un explosión…

Una de las cosas mas interesante que tiene el SVG es su simplesa para ser interpretado, y enviado a programas que utilizan una logica similar, por eso se me ocurrio pasar graficos SVG a GNUplot.

Una de las ventajas que da GNUplot es la posibilidad de graficar más rápidamente con tiempo real, y como hacer tiempo que quiero hacer diversas cosa con SVG y se me dificulta a la hora de renderizar esta es una buena opción, por lo menos para un vista previa dinámica y fácil de elaborar.

Gráfico elaborado en inkscape:

 

 

Una versión, un tanto enmarañada, del elefante moteado exportada para GNUplot

elefante_plot 

Render 3D en GNUPLOT

 

Elefante  GNUplot - 3D 

GNUplot da la posibilidad de usar el mouse de modo interactivo, importar imagenes, ect, ect. sus graficos tienen muchisima calidad, y exporta en un sin fin de formatos, esta pensado para matematica. Pero las posibilidades que tiene son ilimitadas.

Potrace – Vectorizador

April 21st, 2009

Potrace, es uno de los mejores programas de vectorización que he conocido, aun con sus limitaciones permite convertir a muchísimos formatos entre ellos el SVG, uno de los mejores formatos de vectores que existe.

Este programa  te permite operarlo totalmente a través de la linea de comando, por lo cual se puede automatizar facilmente, aunque tambien tiene sus versiones GUI.

Algo para destacar es que este programa es usado por Inkscape para vectorizar.

$> wget http://elelefantemoteado.com.ar/elefante.png
$>convert elefante.png elefante.pgm
$>potrace elefante.pgm –svg
$>ls
elefante.png elefante.pgm elefante.svg

Abri el archivo “elefante.svg” con inkscape, inkview, firefox o otro lector de svg

Ver sitio de Potrace

NA: Si no tenes la función “convert” podes usar el gimp, o cualquier otro programa para convertir imágenes a otros formatos, potrace solo acepta: pnm (pbm, pgm, ppm), bmp

TVerminal – Television y radios en tu terminal

April 20th, 2009

NOTA: actualmente este script no anda, estoy buscando colaboradores para hacer lista de medios libres y/o no libres en la web, ver post gnu-tv

Hace tiempo que miro televisión y escucho radios desde diferentes paginas, por eso me hice un script para unirlas a todas, pero en cuanto pasaba el tiempo me di cuenta que lo mejor seria tenerlas en la web, para usar la lista de modo dinámico, por eso las subí a este sitio…

El script es muy simple, pero esta muy compacto, lo retoque bastante, empezó con una serie de script que enlazaban entre si y termino siendo 1 con funciones, y varias excepciones combinadas…

#!/bin/bash
# Si este script falla solicitar la ayuda variacion '-h', si continuan los errores, seguramente, es por que requieres los siguientes programas de shell, recuerde cambiar el reproductor por uno instalado en su maquina, si encuentra una error no dude en enviarlo a info@elelefantemoteado.com.ar a si como nuevos canales.
#
# awk
# wget
# sed
# sort, Si no lo tenes instalador tan solo buscalo en el programa y borra '| sort', este pone las estaciones de radio y television en orgen alfabetico.

# ---------------------------variables de usuario------------------------------
# Elegir el reproductor de audio y video, que desee, que el programa utilice

	REPRODUCTOR_VIDEO="mplayer"
	REPRODUCTOR_AUDIO="mplayer"

# repetir si, se quiere, el mismo reproductor para los dos casos

# ---------------------------Ayuda-----------------------------

if [ $# -lt 1 ]; then
	ayuda=1
fi
if [ $1 ]; then

	if [ $1 == "-h" ]; then
		ayuda=1
	fi
	if [ $1 == "--help" ]; then
		ayuda=1
	fi
fi
	if [ $ayuda ]; then
		echo "Uso:"
		echo
		echo " radios		Usar radio estaciones."
		echo " canales	Usar canales de television."
		echo "  lista		Lista de canales o radio estaciones"
		echo "  [1-N]		Numero de canal o radio estación que se desea escuchar o ver."
		echo " sugerencia	Enviar una radio estaciones o canal para sumar a la lista."
		echo " eliminar	Solicitud para la eliminar un 'canal' (solo, si no funciona)."
		echo " -h		Esta ayuda"
		echo " core		Ejecuta la version 'Core'"
		exit
	fi

tvoradio=1
lista=0

# ----------------------------funciones------------------------------

function lista_medios () {

	i=0

		for y in $RESULTADOS; do
			let i++
			y=`echo "${y}" | sed 's/\_/ /g'` # remplazar por 'tr'
			nombre=`echo "${y}" | awk -F"|" '{print $1}'`
			url=`echo "${y}" | awk -F"|" '{print $2}'`
			descripcion=`echo "${y}" | awk -F"|" '{print $3}'`

			if [ $eleccion ]; then
				if [ "$eleccion" == "$i" ]; then
					echo
					break 1
				fi
			else
				echo "${i}. ${nombre}"
				echo "	$descripcion"
				echo

			fi

		done

}

#---------------------------CORE---------------------------------------

function  core_funcion () {

	#-----------------------------GUI: radio o tv----------------------------------------

	echo -e "Seleccionar:\n\t0 - Salir\n\t1 - Televisora\n\t2 - Estancion de Radio"
	read tvoradio

	if [ $tvoradio == 2 ]; then
		tipo="radios"
	fi

	while [ $tvoradio -gt 0 ]
	do

		echo $tipo

		wget -q -O sintonias.txt "http://elelefantemoteado.com.ar/medios/$tipo.php"
		RESULTADOS=`cat sintonias.txt | sed 's/\ /_/g' | sort`

		echo "------------------"
		lista_medios

		#---------------GUI: Seleccion de canal------------
		echo "Elegir un canal y presionar  o <0> para salir"
		read eleccion

		if [ $eleccion ]; then
			lista_medios #elige que canal va a usar
			$REPRODUCTOR "$url" &> /dev/null &
			echo "Reproducciendo $nombre - Presione  para elegir otra estación o <0> para salir"
			read tvoradio
			kill %1 # matar el proceso mplayer, tengo el script en la mac
			sleep .5
		else
			tvoradio=$eleccion #salida indirecta
		fi
	done

	echo "GPL V3 - elelefantemoteado.com.ar"
	echo "Canales sacados principalmente de www.wwitv.com y contribucion de usuarios"

}

# ----------------------------programa------------------------------

workdir=$(mktemp -d) #temporal puede no ser nuevo
cd $workdir #va al directorio correspondiente

# Por defecto sirve para ver television
REPRODUCTOR=$REPRODUCTOR_VIDEO
tipo="canales" 

	if [ $1 == "core" ]; then
		 core_funcion #requiere que este en el PATH
		 exit
	fi

#---------------nuevo canal----------------

if [ $1 == "sugerir" ]; then 

	echo "Sugiriendo una:"
	radiootv
	read tipo
	echo "Escriba el nombre de la estacion"
	read nombre
	echo "Dirección (No pagina web, solo streaming)"
	read url
	echo "Descripcion breve"
	read descripcion

mail -s "Nuevo canal" -F "info@elelefantemoteado.com.ar" << EOF
	tipo: $tipo
	Nombre: $nombre
	Url: $url
	Descripcion: $descripcion
EOF
	echo "Muchisimas gracias, por colaborar :D "
	exit

fi

#---------------eliminar canal----------------

if [ $1 == "eliminar" ]; then 

	echo "Desea eliminar una:"
	radiootv
	read tipo
	echo "Escriba el nombre de la estacion"
	read nombre
	echo "Motivo"
	read motivo

mail -s "Nuevo canal" -F "info@elelefantemoteado.com.ar" << EOF
	tipo: $tipo
	Nombre: $nombre
	Motivo: $motivo
EOF
	echo "Muchisimas gracias, por colaborar :D "
	exit

fi

#------------------variavion radios-------------------

if [ "$1" == "radios" ]; then
	#verifica si pediste ver radios
	tipo="radios"
	REPRODUCTOR=$REPRODUCTOR_AUDIO
fi

#------------------lista de medios-------------------

wget -q -O sintonias.txt "http://elelefantemoteado.com.ar/medios/$tipo.php"
RESULTADOS=`cat sintonias.txt | sed 's/\ /_/g' | sort`

	#-------------------lista visible--------------------
	if [ $2 == 'lista' ]; then
		lista_medios
		echo "Hay $i ${tipo} disponibles - enviar nuevos a info@elelefantemoteado.com.ar"
		exit 1
	fi

	if [ $2 ]; then

		#-------------------escuchar--------------------
		eleccion=$2
		lista_medios #elige que canal va a usar
		$REPRODUCTOR "$url" $3
		echo

	fi

#-------------------Licencia--------------------

echo "Licencia GPL V3 - www.elelefantemoteado.com.ar"
echo "Canales sacados principalmente de wwitv.com y contribución de usuarios"

Algunas funciones básicas para utilizarlo:

Ejecución rápida, esta es una ejecución dinámica:

Usuario > TVerminal core

Los que prefieren los parámetros, pueden volcarlos simplemente así...

Ayuda:

Usuario > TVerminal -h

Lista de canales:

Usuario > TVerminal canales lista

Ver el canal número 3:

Usuario > TVerminal canales 3

Sugerencia un nuevo canal o radio estación

Usuario > TVerminal sugerencia

sugerencia eliminar un canal o radio estación

Usuario > TVerminal sugerencia

Para utilizarlo con interfaz gráfica ver este articulo

Descargar

Por Hacer:

  • Actualmente no anda bien.
  • Hacer que se puedan ver peliculas a elección.
  • Hacer que se puedan escuchar canciones a elección

Buscar chicas sexys en la linea de comando

April 18th, 2009

Este es un shell que hice hace algún tiempo para buscar en www.joyourself.com y otros sitios similares de modo rápido en los perfiles sin tanto click en el navegador  sobre todos para q no apareciera en el historial, y no tener q entrar todo el tiempo a la misma pagina  

#!/bin/bash
#
# http://linux.die.net/man/1/awk
# http://linux.die.net/man/1/cut
# http://linux.die.net/man/1/wget
# http://linux.die.net/man/1/mktemp
# si alguno de las rutinas falla mirar el man

# ----------Variable de usuario----------
#
# VISUALIZADOR - cualquier visualizador de imagenes < cualquiera que permita enviar pasar como parametros la imagen a visaulizar >
# NAVEGADOR: ruta o llamada al navegador que comunmente utilizas.
# 

#VISUALIZADOR="xv -wait 5" # muestra la imagen 20 segundo y se cierra
VISUALIZADOR="xv" # muestra la imagen 20 segundo y se cierra
#VISUALIZADOR="growlnotify --image" # para OSX 

NAVEGADOR="firefox"

function nombre() {
	echo "Screxypt v0.1 - GNU GPL v3"
	echo "Selecciona el tipo de busqueda:"
}

function opciones() {
	echo "	1 - Chicas"
	echo "	2 - Lesbianas"
	echo "	3 - Parejas"
	echo "	4 - Maduras"
	echo "	5 - Fetiches"
	echo "	6 - Chicos"
	echo "	7 - Cualquiera"
}

if [ $# -lt 1 ]; then
	nombre
	echo "Uso:"
	echo "	0 - Busqueda dinamica"
	opciones
	exit 1
fi 

nombre

while [ 1 ]
do
	if [ $1 -eq 0 ]; then 

		opciones
		echo "	8 - Salir"
		echo "Seleccione un numero de las 8 opciones disponibles y pulse "
		read eleccion
	else
		eleccion=$1
	fi

	work_dir=$(mktemp -d); #si esto falla usar una carpeta cualquiera como temporal ej: '/tmp'
#	work_dir='/tmp'
	cd $work_dir

	n=1
	for ((step=1; step<$eleccion; step++)); do
		 #1,2,4,8,16,32
		 n=$(($n*2))
	done

	if [ $1 -gt 0 ]; then
		echo "Espere por favor..."
	fi

	wget -q -O performance "http://rss.awempire.com/blog/index.php?psid=bazza&pstour=t1&psprogram=REVS&performerid=all&layout=4&flags=$n" 

	IMAGENES=`cat $work_dir/performance | awk -F'img src="' '{print $2}' |  awk -F'"' '{print $1}'`
	NOMBRE=`cat $work_dir/performance | grep 'guid' | awk -F'performerid=' '{print $2}' | cut -d'&' -f 1`
	LINK="http://www.joyourself.com/freechat.php?psid=bazza&pstour=t1&psprogram=REVS&performerid=$NOMBRE&gopage=bio"
	PERFIL="http://www.joyourself.com/perfinfo.php?performerid=$NOMBRE&psid=bazza&pstour=t1&psprogram=REVS"
	VIDEO="http://static.awempire.com/flash/lsawards_revplayer.swf?performer=$NOMBRE&psid=bazza&pstour=t1&psprogram=REVS&brand=joy"

	wget -q $IMAGENES

	echo "-------------------------------------"
	echo Nombre: $NOMBRE
	echo $LINK
	echo "-------------------------------------"
	$VISUALIZADOR  *.jpg &

	if [ $1 -eq 8 ]; then
		exit
	fi
	if [ $1 -gt 0 ]; then
		exit
	else
			echo "	0 - Nada [buscar +]"
			echo "	1 - Vivo"
			echo "	2 - Perfil"
			echo "	3 - Video"
			echo "Que desea ver?"
			read deseo

			if [ $deseo -eq 1 ]; then
				$NAVEGADOR "$LINK"
			fi
			if [ $deseo -eq 2 ]; then
				$NAVEGADOR "$PERFIL"
			fi
			if [ $deseo -eq 3 ]; then
				$NAVEGADOR "$VIDEO"
			fi
	fi

done
exit #?;

Descargar, recordar cambiar el permiso chmod 777 screxypt.sh, así lo podes ejecutarlo. 

El script puede parecer algo extenso, pero es básicamente, un panel para elegir lo que buscas, si queres probarlo rapidamente los mejor es poner screxypt.sh 0

Screxypt v0.1 - GNU GPL 
Tipo de busqueda: 
1 - Chicas 
2 - Lesbianas 
3 - Parejas 
4 - Maduras 
5 - Fetiches 
6 - Chicos 
7 - Cualquiera 
8 - Salir 

Si elegis la opcion 1: 


Despues de esto te habre una imagen de la busqueda y te pregunta que queres hacer: 

Cita :
0 - Nada (Seguir la busqueda) 
1 - Chat en vivo 
2 - Perfil 
3 - Video 
Que desea ver? 

Opcion 3: 


 
Bueno, espero que les guste 

Descargar

NOTA:

Guiado por la idea de que el software libre solo tiene que dar libertad
a sus usuario y el software tiene que ser usado para lo que el usuario
quiera sin ninguna restricción idee unos software para pecar.
Además la idea era que con estos se realzara las ideas libertarias del
software dejado la moralidad para quienes siempre se encargaron de ella.

Si te preguntas por lo otros pecados en este script aunque no lo paresca
hay dos de ellos... descubrelos... usa tu 3 libertad!

Jamendo – Shell – Música libre como el aire

April 18th, 2009

Los artistas de Jamendo te permiten escuchar, descargar y compartir su música. Es libre, legal e ilimitado, propone jamendo. 
Me encanto la frase!!! (sobre todo eso de LIBRE)  

Para quienes no conocen el sitio: jamendo 

Y aquí mi script, tan solo agreguen el tag y la lista de temas se reproduce, vale la pena aclarar que los mismo tags, dan los mismos temas  , y que le falta un poco de corrección, ya lo voy a hacer!!!  

Descargar 

#!/bin/bash
# uso el sitio de desarrollo de jamengo
# http://developer.jamendo.com/es/wiki/esMusiclistApiExamples

work_dir=$(mktemp -d)

echo "Procesando..."

wget -q -O "$work_dir/temas.m3u" "http://www.jamendo.com/get/track/id/album/audio/play/$1/"
wget -q  -O "$work_dir/temas.jpg" "http://www.jamendo.com/get/album/id/album/artworkurl/redirect/$1/?artwork_size=400"
wget -q -O "$work_dir/temas.txt" "http://www.jamendo.com/get/track/id/album/desc1/plain/$1/"

xv -wait 10 "$work_dir/temas.jpg" &
cat "$work_dir/temas.txt"
mplayer -playlist "$work_dir/temas.m3u"

Ejemplo, si deseo escuchar musica de estilo rock:

$> jamengo.sh rock

 Diviértanse y artistas a subir música a jamendo!!!