The::Beastieux

Sangre de Bestia + Corazón de Pingüino | Un blog acerca de Linux, *BSD, Open Source, Software Libre, Programación …

Archivos en la Categoría: Mis Proyectos

Código Bash – Obtener Un Listado Completo y Todos Logos de las Distribuciones Linux y BSD


El siguiente script está escrito en Bash y su objetivo es obtener una lista completa en formato HTML de todas las distribuciones Linux/BSD registrados en Distrowatch con enlace directo al Sitio Oficial de la Distribución, así como también permite obtener todos los logos en formato PNG de todas las distribuciones encontradas.

#!/bin/bash

# distrolist.sh - Copyright (C) 2011 Beastieux Zeroo <the.beastieux@gmail.com>
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301, USA.

DISTRO1='/tmp/LinuxTemp1'
DISTRO2='/tmp/LinuxTemp2'
DISTRO3='DistrowatchList'
DISTRO4='/tmp/LinuxTemp4'
DISTRO5='DistrowatchFile'
ICO_DIR='ICONS'
BAN=0

if [ -d $ICO_DIR ] ; then
	rm -rf $ICO_DIR
	mkdir $ICO_DIR
else
	mkdir $ICO_DIR
fi

rm $DISTRO1 2> /dev/null
rm $DISTRO2 2> /dev/null
rm $DISTRO3 2> /dev/null
rm $DISTRO4 2> /dev/null
rm $DISTRO5 2> /dev/null

function setRequirements {

	if [ -x /usr/bin/lynx ] ; then
		BAN=$[$BAN + 1]
	else
		echo "*Necesitas instalar lynx"
	fi

	if [ -x /usr/bin/wget ] ; then
		BAN=$[$BAN + 1]
	else
		echo "*Necesitas instalar wget"
	fi

}

function getWebFile {
	#OBTENER LA LISTA DE DISTROS DESDE DISTROWATCH
	lynx -dump "http://distrowatch.com/stats.php?section=popularity" > $DISTRO1

	cat $DISTRO1 | grep '[=><]' > $DISTRO2
	cat $DISTRO2 | tr '[=><]' ']' | awk -F"]" '{print $3}' | rev | awk '{print $2,$3}' | rev | sort -n | uniq | sed 's/^ //g' > $DISTRO3
}

function setURLFile {
	#GENERAR FILE CON LAS URLS DE LA WEB DE CADA DISTRO

	lynx -dump "http://distrowatch.com/stats.php?section=popularity" | sed 's/Last 6 months/Last 12 months/g' > /tmp/LIST
	csplit /tmp/LIST '/Last 12 months/' '/Last 12 months/' > /dev/null

	cat xx01 | grep '[=><]' | awk '{print $2}' | grep -v '[:=]' > $DISTRO4

	#EL VALOR DE $DESDE - $HASTA SUELE VARIAR CON EL TIEMPO

	DESDE=`cat $DISTRO4|head -1 | sed 's/\[/]/g' | awk -F']' '{print $2}'`
	HASTA=`cat $DISTRO4|tail -1 | sed 's/\[/]/g' | awk -F']' '{print $2}'`

	i=$DESDE

	while [ $i -le $HASTA ] ; do
	  URL=`cat $DISTRO1|awk '{print $1,$2}' | grep "^$i\."|awk '{print $2}'|awk -F'\t' '{print $1}'`
	  HOMELINUX=`lynx -dump "$URL" | grep " Home Page"|awk -F']' '{print $2}'`
	  #DOWNLOAD=`lynx -dump "$URL" | grep "\[33\]"|awk -F':' '{print $2}'`
	  NOMBRE=`cat $DISTRO1|grep "\[$i\]"| awk -F"]" '{print $2}'|awk -F'  ' '{print $1}'`
	  ICONO=`echo http://distrowatch.com/images/xnwchcfnxz/$(echo $URL | awk -F'/' '{print $4}').png`
	  echo "$NOMBRE;$HOMELINUX;$ICONO" >> $DISTRO5
	  i=$[$i+1]
	  echo $[$i-$DESDE]:$NOMBRE
	done

	rm xx0* 2> /dev/null
	rm /tmp/LIST 2> /dev/null
}

function getIcons {
	#OBTENIENDO ICONOS DE CADA DISTRO

	cd $ICO_DIR

	for ico in $(cat ../$DISTRO5|awk -F';' '{print $3}') ; do
		wget $ico 2> /dev/null
		echo -e .'\c'
	done

	echo -e .'\n'

	cd -
}

function setHTMLFile {
	#CREA UN FICHERO HTML CON LOS ENLACES A CADA DISTRO
	WEB=distros.html
	i=1
	echo '<body bcolor="#ffffff">' > $WEB
	echo '<ol>' >> $WEB
	echo '<TABLE BORDER="0">' >> $WEB

	echo '<TR>' >> $WEB
	for f in $(cat $DISTRO5|sed 's/ /__/g'|sort) ; do

	    URL=`echo $f|awk -F';' '{print $2}'`
	    NOM=`echo $f|awk -F';' '{print $1}'|sed 's/__/ /g'`

	    echo "<TD WIDTH=\"150\"><li><a href=\"$URL\" title=\"$NOM\" target=\"_blank\">$NOM</a></li></TD>" >> $WEB

	    if [ $[$i % 4] -eq 0 ] ; then
		echo '</TR>' >> $WEB
		echo '<TR>' >> $WEB
	    fi
	    i=$[$i+1]
	done

	echo '</TABLE>' >> $WEB
	echo '</ol>' >> $WEB
	echo '</body>'>> $WEB
}

setRequirements;

if [ $BAN -eq 2 ] ; then
	getWebFile
	setURLFile
	getIcons
	setHTMLFile
fi
$chmod +x distrolist.sh
$./distrolist.sh

Al ejecutar el script obtendremos un fichero HTML con el listado completo y todos los logos en un directorio nuevo. Eres libre de realizar las modificaciones que creas conveniente sobre el código.

  1. 2X
  2. Absolute
  3. AbulÉdu
  4. AgiliaLinux
  5. Alinex
  6. aLinux
  7. Alpine
  8. ALT
  9. AnNyung
  10. antiX
  11. APODIO
  12. aptosid
  13. ArchBang
  14. ArcheOS
  15. Arch
  16. AriOS
  17. Ark
  18. ArtistX
  19. Asianux
  20. ASPLinux
  21. Astaro
  22. AsteriskNOW
  23. Asturix
  24. Aurora
  25. AUSTRUMI
  26. B2D
  27. BackTrack
  28. Baltix
  29. Bayanihan
  30. Bee
  31. Berry
  32. Big Linux
  33. blackPanther
  34. BLAG
  35. BlankOn
  36. Bodhi
  37. BOSS
  38. BRLix
  39. BU Linux
  40. Burapha
  41. CAELinux
  42. CAINE
  43. Caixa Mágica
  44. Calculate
  45. Canaima
  46. Caos
  47. CCux
  48. CDlinux
  49. CensorNet
  50. CentOS
  51. Chakra
  52. ClearOS
  53. Clonezilla
  54. Comfusion
  55. Connochaet
  56. Coyote
  57. CrunchBang
  58. CRUX
  59. Càtix
  60. CTKArchLive
  61. Debian
  62. Debris
  63. Deepin
  64. DEFT
  65. DesktopBSD
  66. Devil
  67. DigAnTel
  68. Draco
  69. DragonFly
  70. Dragora
  71. Dreamlinux
  72. DVL
  73. EasyPeasy
  74. Edubuntu
  75. Ekaaty
  76. Elastix
  77. Element
  78. Elive
  79. Endian
  80. EnGarde
  81. Epidemic
  82. Estrella Roja
  83. ESUN
  84. Evinux
  85. ExTIX
  86. Fedora
  87. Fermi
  88. Finnix
  89. Foresight
  90. FreeBSD
  91. FreeNAS
  92. Frenzy
  93. Frugalware
  94. FuguIta
  95. Fusion
  96. GeeXboX
  97. Gentoo
  98. Gentoox
  99. GhostBSD
  100. Gibraltar
  101. GnackTrack
  102. gNewSense
  103. GNOBSD
  104. GNUstep
  105. GoboLinux
  106. GParted
  107. Greenie
  108. Grml
  109. Guadalinex
  110. Hacao
  111. Helix
  112. Honeywall
  113. Hymera
  114. IDMS
  115. iMagic
  116. Imagineos
  117. Incognito
  118. Inquisitor
  119. Insigne
  120. IPCop
  121. IPFire
  122. Jibbed
  123. JoLinux
  124. Joli OS
  125. K12Linux
  126. kademar
  127. KahelOS
  128. KANOTIX
  129. Karoshi
  130. Kiwi
  131. Knoppel
  132. KNOPPIX
  133. KnoSciences
  134. Kongoni
  135. Kororaa
  136. Kubuntu
  137. Kwort
  138. Legacy
  139. LFS
  140. LinEx
  141. LinHES
  142. Linpus
  143. LinuxConsole
  144. Linux-EduCD
  145. linuX-gamers
  146. LinuxTLE
  147. Linux XP
  148. Litrix
  149. LiveCD Router
  150. LliureX
  151. Lubuntu
  152. Lunar
  153. m0n0wall
  154. Macpup
  155. Madbox
  156. Mageia
  157. Magic
  158. Mandriva
  159. Mangaka
  160. MAX
  161. MCNLive
  162. MeeGo
  163. MEPIS
  164. MidnightBSD
  165. MilaX
  166. MiniNo
  167. MINIX
  168. Mint
  169. Miracle
  170. MirOS
  171. Moblin
  172. MoLinux
  173. Momonga
  174. Monomaxos
  175. moonOS
  176. Musix
  177. Myrinix
  178. Mythbuntu
  179. MythDora
  180. Nature’s
  181. NeoShine
  182. NepaLinux
  183. NetBSD
  184. Netrunner
  185. NetSecL
  186. Nexenta
  187. NexentaStor
  188. Niigata
  189. NimbleX
  190. Nova
  191. Novell SLE
  192. NST
  193. NuTyX
  194. Ojuba
  195. OLPC
  196. Omoikane
  197. O-Net
  198. OpenBSD
  199. Openfiler
  200. OpenIndiana
  201. openmamba
  202. openSUSE
  203. Openwall
  204. Ophcrack
  205. Oracle
  206. PAIPIX
  207. paldo
  208. PapugLinux
  209. Pardus
  210. Parsix
  211. Parted Magic
  212. PC-BSD
  213. PCLinuxOS
  214. PC/OS
  215. PelicanHPC
  216. Pentoo
  217. Peppermint
  218. pfSense
  219. Phayoune
  220. Pinguy
  221. Plamo
  222. PLD
  223. Plop
  224. Porteus
  225. Poseidon
  226. pQui
  227. Privatix
  228. Puppy
  229. Puredyne
  230. PureOS
  231. Qimo
  232. Qomo
  233. Quirky
  234. Red Flag
  235. Red Hat
  236. redWall
  237. Resulinux
  238. RIPLinuX
  239. Rocks Cluster
  240. rPath
  241. Runtu
  242. Sabayon
  243. Sabily
  244. Saline
  245. Salix
  246. SAMity
  247. Satux
  248. SchilliX
  249. Scientific
  250. Securepoint
  251. Skolelinux
  252. Slackintosh
  253. Slackware
  254. SLAMPP
  255. SliTaz
  256. SME Server
  257. SmoothWall
  258. SMS
  259. Solaris
  260. SoL
  261. Sorcerer
  262. Source Mage
  263. StartCom
  264. STD
  265. StressLinux
  266. STUX
  267. SuliX
  268. SuperGamer
  269. Super OS
  270. Syllable
  271. SystemRescue
  272. T2
  273. TFM
  274. Thinstation
  275. Tiny Core
  276. TinyMe
  277. Toorox
  278. Topologilinux
  279. Toutou
  280. Trinity
  281. Trisquel
  282. trixbox
  283. Truva
  284. Tuquito
  285. Turbolinux
  286. TurnKey
  287. UberStudent
  288. Ubuntu Christian
  289. Ubuntu
  290. Ubuntu Rescue
  291. Ubuntu Studio
  292. UHU-Linux
  293. Ulteo
  294. Ultimate
  295. Unity
  296. Untangle
  297. UPR
  298. Userful
  299. UTUTO
  300. Vector
  301. VENENUX
  302. Vine
  303. Vinux
  304. VLOS
  305. VMKnoppix
  306. VNLinux
  307. VortexBox
  308. Vyatta
  309. wattOS
  310. Webconverger
  311. Wifislax
  312. Wolvix
  313. Xange
  314. xPUD
  315. Xubuntu
  316. Yellow Dog
  317. Ylmf
  318. Yoper
  319. Zencafe
  320. Zentyal
  321. Zenwalk
  322. Zeroshell
  323. ZevenOS
  324. Zorin

Logos de Distribuciones Linux / BSD

Morse Code Talk, Un Nuevo Plugin de Pidgin para Comunicarse en Código Morse


Me complace anunciar que acabo de terminar de crear una primera versión de un plugin para Pidgin al que puse por nombre Morse Code Talk, con el cual es posible comunicarse en Código Morse mediante la modalidad de Chat emitiendo o traduciendo los mensajes.

Por el momento el idioma está en inglés y ya está compilado para Linux y Windows, cabe mencionar que para que funcione se requiere contar con Pidgin  2.7.9 o superior.

El Código morse es un Sistema de comunicación mediante señales emitidas representados gráficamente por puntos y rayas que a su vez pueden ser representados por sonidos de corta y larga duración de letras, números y algunos caracteres adicionales según el Alfabeto Internacional.

Tal vez este complemento para Pidgin no sea de interés para muchos, pero puede ser una manera diferente y divertida de comunicarse y sobre todo aprender este alfabeto;  el tiempo que me tomó crear el motor del código morse me sirvió para aprender un poco éste sistema, y creo que con la práctica es probable que se pueda llegar a entender mejor las señales emitidas de esta manera.

En Linux la instalación  es sencilla, solo hace falta descargar el binario empaquetado como: pidgin-morsecodetalk-bin-1.0.0.tar.bz2, descomprimirlo y copiar la librería morsecodetalk.so a ~/.purple/plugins/ dentro del directorio personal (Si no existe el directorio plugins, crearlo). Para windows he creado un instalador, no creo que no tengan problemas al instalarlo.

La versión 1.0.0 del plugin consta con las funciones de:

Emisión de morse a texto y de texto a morse.

Posibilidad de escribir en morse con señales del mouse donde un clic representa a un punto, doble clic una raya y clic derecho un espacio en blanco. Esta funcionalidad se puede deshabilitar y usar únicamente el teclado.

Como se ve en el formulario de configuración, ya están definidas las características con el que contará en una versión futura, como es la emisión de Código Morse en forma de audio con los atributos que se indica.

También se presenta una tabla de ayuda con los caracteres del Alfabeto Morse Internacional.

Para empezar a usarlo es importante saber que cada letra escrita debe estar separada por un espacio y cada palabra escrita debe estar separada por tres espacios: Ejm:

HELP ME = .... . .-.. .--.   -- .

Invito a todos a descargar Morse Code Talk y  probarlo. Cualquier problema que encuentren o recomendaciones con respecto al plugin hacérmelos llegar al correo o comentarlo aquí.

Exportar posts de WordPress a Delicious con WP2Delicious


En muchas ocasiones los usuarios de WordPress suscritos a Delicious han deseado mantener sus bookmarks actualizados con todos sus posts y etiquetados correctamente; esto puede ser posible gracias a WP2Delicious, el cual es un script que se encarga de indexar todos los posts publicados en WordPress (desde el primer post) hacia la lista de bookmarks de Delicious, conservando las etiquetas propuestas en cada post de wordpress.

WP2Delicious está escrito en Bash, de momento es funcional para cualquier sistema tipo UNIX. Para llevar a cabo su objetivo se necesita contar en el archivo XML generado al hacer un Backup de WordPress (En Herramientas -> Exportar), que se pasa como parámetro al script, el cual genera un archivo delicious.htm que deberá ser importado a los bookmarks de Delicious (Settings -> Import / Upload Bookmarks)

Su ejecución es sencilla, una vez descargado (Descargar), descomprimirlo, ingresar al directorio donde fue descomprimido, darle permiso de ejecución y lanzar el script:

tar -xvf wp2delicious-1.1.tar.gz
cd wp2delicious-1.1
chmod +x wp2delicious.sh
./wp2delicious.sh wordpress.xml

Cualquier comentario o recomendación será bienvenido para poder realizar las mejoras o modificaciones que crean convenientes.

Ingeniería Inversa del Sistema de Simulación de Créditos Personales del Banco de la Nación de Perú


Meses atrás he realizado un pequeño proyecto de Ingeniería Inversa sobre una herramienta de uso público en el Perú.

El trabajo consistió en realizar Ingeniería Inversa al Sistema de Simulación de Créditos Personales del Banco de la Nación de Perú.

La primera impresión da a entender que la aplicación de Ingenieria Inversa hacia una Herramienta Gubernamental es delictivo, pues no creo que sea el caso, me basé en componentes que están al alcance de cualquier usuario de dicho sistema como: El Código Fuente de la Página, Documentación que por ley a propia Institución da a conocer sobre cálculos necesarios, y el resto demás fue desarrollado mediante abstracción.

El Documento se compone de los siguientes items:

  • INTRODUCCIÓN
  • ANÁLISIS
  • RECONSTRUCCIÓN
  • MANTENIMIENTO
  • COMPARACIÓN DE RESULTADOS
  • INSTALACIÓN
  • CONCLUSIONES

Se detalla paso a paso el proceso de Ingeniería Inversa, en el cual reutilizamos gran cantidad de los ficheros públicos y las modificaciones que se hicieron para lograr el objetivo.

Entre los cambios realizados puedo mencionar:

Una pequeña base de datos en PostgreSQL creada por abstracción.

Creación del módulo con contenidos escenciales que es invisible entre los datos recopilados.

Adaptación del Sistema con gran cantidad de contenido de código JavaScript hacia PHP.

Éste es el resultado obtenido al final del trabajo desarrollado:

Leer más de esta entrada

PBIMaker – Creación Sencilla de PBI’s en PC-BSD


Hace un tiempo atrás estuve desarrollando  una herramienta para poder crear personalmente mis Paquetes de Instalación (PBI’s) para el Sistema Operativo PC-BSD.

PBIMaker no es una herramienta oficial de PC-BSD Team asi como lo es PBIBuilder, pero trata de cumplir el mismo objetivo de una manera diferente.

¿Por qué desarrollo PBIMaker si ya existe PBIBuilder?

La respuesta es muy sencilla: Por diversión.

PBIMaker fue creado por Hobbie y a la vez por conocer más la anatomia interna de los PBI’s y  como funciona este espectacular Sistema de Paquetería que solo lo trae PC-BSD.

Si quieres enterarte un poco más puedes revisar la presentación que realicé en el Flisol 2010 acerca de PBIMaker.

Actualmente PBIMaker está alojada en SourceForge, y es de alcance público. Si te interesa divertirte y conocer más acerca de los PBI’s puedes colaborar con su desarrollo.

Finalmente les dejo un ScreenCast Simplista de cómo hacer PBI’s con PBIMaker:

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 541 seguidores

A %d blogueros les gusta esto: