tag:blogger.com,1999:blog-60317582283269985832024-03-05T18:42:20.922-04:00PingüiniTuxSoftware Libre, Tecnología y más....César Mata Moyahttp://www.blogger.com/profile/10675381118281311752noreply@blogger.comBlogger15125tag:blogger.com,1999:blog-6031758228326998583.post-4877342592244895532017-11-12T18:09:00.000-04:002017-11-12T18:09:21.726-04:00Compilar warzone2100 2.3.9 en Ubuntu 16.04 para equipos que no soportan OpenGL >= 2.0Instalar Paquetes<br /><br />apt-get install build-essential automake flex bison libpopt-dev libpng12-dev libsdl1.2-dev libopenal-dev libphysfs-dev libtheora-dev libglc-dev zip bisonc++ libtool libglew1.13 libminiupnpc10 libqt4-script libqt4-xml libqtcore4 libqtdbus4 libvorbisfile3 qtcore4-l10n <br /><br />cd /var/tmp/<br /><br />Descargar Fuentes<br /><br />https://sourceforge.net/projects/warzone2100/files/archives/unsupported/Warzone2100-2.3/2.3.9/warzone2100-2.3.9.tar.gz/download<br />http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.2.tar.gz<br /><br />En /var/tmp/<br />tar -xvzf warzone2100-2.3.9.tar.gz <br />mkdir /var/tmp/warzone2100-2.3.9/lib/vorbis<br /><br />tar -xvzf libvorbis-1.3.2.tar.gz<br />cd /var/tmp/libvorbis-1.3.2/<br /><br />./configure --libdir=/var/tmp/warzone2100-2.3.9/lib/vorbis/lib --includedir=/var/tmp/warzone2100-2.3.9/lib/vorbis/include --disable-shared --oldincludedir=/var/tmp/warzone2100-2.3.9/lib/vorbis/lib<br /><br />make -j 2<br />make install<br /><br />cd /var/tmp/warzone2100-2.3.9/<br /><br />OGGVORBIS_CFLAGS="-I/var/tmp/warzone2100-2.3.9/lib/vorbis/include/" LDFLAGS="/var/tmp/warzone2100-2.3.9/lib/vorbis/lib/*.a" CFLAGS="-I/var/tmp/warzone2100-2.3.9/lib/vorbis/include/" OGGVORBIS_LIBS="/var/tmp/warzone2100-2.3.9/lib/vorbis/lib/*.a" ./configure --prefix=/opt/warzone2100-2.3.9<br /><br />OGGVORBIS_CFLAGS="-I/var/tmp/warzone2100-2.3.9/lib/vorbis/include/" LDFLAGS="/var/tmp/warzone2100-2.3.9/lib/vorbis/lib/*.a" CFLAGS="-I/var/tmp/warzone2100-2.3.9/lib/vorbis/include/" OGGVORBIS_LIBS="/var/tmp/warzone2100-2.3.9/lib/vorbis/lib/*.a" make -j 2<br /><br />make -Cpo install<br />
<br />
Referencias:<br />
<br />
http://developer.wz2100.net/wiki/CompileGuideLinux<br />
http://developer.wz2100.net/wiki/CompileGuideLinux?version=38César Mata Moyahttp://www.blogger.com/profile/10675381118281311752noreply@blogger.com0tag:blogger.com,1999:blog-6031758228326998583.post-2991678040510649362017-10-27T14:48:00.000-04:002017-10-30T10:15:22.876-04:00Instalación de OCSInventory 2.3.1 en Debian Jessie 8.9 con Mysql 5.5 - Apache 2.4 - PHP5-FPM<b>PAQUETES</b><br />
<b><br /></b>
apt-get install mysql-server apache2 php5-fpm php5-gd libphp-pclzip libxml-simple-perl libdbi-perl libdbd-mysql-perl libapache-dbi-perl libnet-ip-perl libsoap-lite-perl libio-compress-perl make build-essential php5-curl php5-mysql<br />
<br />
<b>PHP5-FPM</b><br />
<br />
Editar /etc/php5/fpm/pool.d/www.conf<br /><br />listen = 127.0.0.1:9000<br />pm = ondemand<br />pm.max_children = 200<br /><br />Editar /etc/apache2/sites-available/000-default.conf<br />Añadir antes de </VirtualHost>:<br /><br /> <FilesMatch \.php$><br /> SetHandler proxy:fcgi://127.0.0.1:9000<br /> </FilesMatch><br /><br />Editar /etc/apache2/sites-available/default-ssl.conf<br />Añadir antes de </VirtualHost>:<br /><br /> <FilesMatch \.php$><br /> SetHandler proxy:fcgi://127.0.0.1:9000<br /> </FilesMatch><br /><br />Reiniciar php5fpm:<br />/etc/init.d/php5-fpm restartActivar las configuraciones de Apache<br />
<blockquote class="tr_bq">
a2enmod proxy_fcgi<br />
a2enmod cgi<br />
a2ensite default-ssl<br />
a2enmod ssl<br />
service apache2 restart</blockquote>
<b>MYSQL</b><br />
<br />
Configurar MySQL<br />
<blockquote class="tr_bq">
mysql -u root -p<br />
GRANT ALL PRIVILEGES ON *.* TO 'ocs'@'localhost' IDENTIFIED BY 'ocs' WITH GRANT OPTION;<br />
exit</blockquote>
<b>CPAN - PERL</b><br />
<br />
<i>Actualizar CPAN</i><br />
<blockquote class="tr_bq">
perl -MCPAN -e shell<br />
install CPAN<br />
reload CPAN<br />
exit</blockquote>
<i>Instalar módulos de CPAN</i><br />
<blockquote class="tr_bq">
cpan -i XML::Entities<br />
cpan -i YAML<br />
cpan -i Archive::Zip</blockquote>
<br />
<b>OCSINVENTORY</b><br />
<br />
Descomprimir OCSNG_UNIX_SERVER-2.3.1.tar.gz<br />
<blockquote class="tr_bq">
tar -xvzf OCSNG_UNIX_SERVER-2.3.1.tar.gz<br />
cd OCSNG_UNIX_SERVER-2.3.1<br />
./setup.sh<br />
Seleccionar todas las opciones por defecto<br />
Ignorar *** Warning: PERL module Apache2::SOAP is not installed !</blockquote>
Editar /etc/apache2/conf-available/ocsinventory-reports.conf<br />Añadir después de <Directory /var/lib/ocsinventory-reports/download> las líneas:<blockquote class="tr_bq">
Options Indexes FollowSymLinks<br />
AllowOverride Options</blockquote>
<blockquote class="tr_bq">
a2enconf z-ocsinventory-server<br />
a2enconf ocsinventory-reports<br />
service apache2 restart</blockquote>
Acceder a la aplicación:<br />
<blockquote class="tr_bq">
http://ip/ocsreports</blockquote>
Colocar los valores por defecto:<br />
<blockquote class="tr_bq">
Usuario: ocs<br />
Contraseña: ocs<br />
Base de Datos: ocsweb<br />
Host: localhost</blockquote>
César Mata Moyahttp://www.blogger.com/profile/10675381118281311752noreply@blogger.com1tag:blogger.com,1999:blog-6031758228326998583.post-39140159936804962082015-01-04T15:51:00.000-04:302015-01-04T15:51:53.440-04:30Convertir vídeos con subtítulos para el decodificador TDA Novatech T207 en DebianEl sintonizador TDA Novatech T207 permite la reproducción de archivos con codificación H.264 para el video y AAC para el sonido, pero no es capaz de leer los subtítulos en formato SubRip (.srt), por lo cual se debe incrustar en el archivo final.<br />
<br />
Para hacer la codificación se va a utilizar la herramienta mencoder en Debian Wheezy, sin embargo se debe instalar la versión de <a href="http://www.deb-multimedia.org/" rel="nofollow" target="_blank">deb-multimedia</a> ya que esta es la que nos permite utilizar la librería libfaac.<br />
<br />
Procedemos a agregar el siguiente repositorio:<br />
<br />
<blockquote class="tr_bq">
deb http://mirror.optus.net/deb-multimedia/ wheezy main</blockquote>
<br />
Luego realizamos:<br />
<br />
<blockquote class="tr_bq">
apt-get update<br />apt-get install mkvtoolnix mencoder x264 libfaac0</blockquote>
<br />
Nos situamos en el directorio donde se encuentra el vídeo origen con el subtitulo .srt y ejecutamos:<br />
<br />
<blockquote class="tr_bq">
mencoder videoOrigen.mp4 -ovc x264 -x264encopts threads=auto:subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:b_pyramid=normal:weight_b -oac faac -vf scale=720:404 -sub videoOrigen.srt -subcp latin1 -subfont-text-scale 3 -o video.avi</blockquote>
<br />
<br />
<b>mencoder</b>: es el programa que permite hacer la conversión del vídeo.<br />
<br />
<b>videoOrigen.mp4</b>: Es el archivo que contiene el vídeo Original. Puede estar en otro formato que no sea .mp4 (avi, etc).<br />
<br />
<b>-ovc x264</b>: Le indica a mencoder que el vídeo va a ser codificado usando la utilidad x264.<br />
<br />
<b>-x264encopts</b>: Son las opciones utilizadas para x264. Coloque las recomendadas para una mayor calidad en la <a href="http://www.mplayerhq.hu/DOCS/HTML/en/menc-feat-x264.html#menc-feat-x264-encoding-options-speedvquality" rel="nofollow" target="_blank">pagina</a>.<br />
<br />
<b>-oac faac</b>: Le indica a mencoder que el audio va a ser codificado usando la librería libfaac0.<br />
<br />
<span style="color: #990000;"><b>-vf scale=720:404</b></span>: este parámetro es opcional y lo utilizo para escalar el vídeo a la resolución 720x404 (Aspecto 16:9)<br />
ya que el codificador los reproduce con mayor holgura. Si el vídeo es de menor resolución, se debe omitir para no afectar la calidad.<br />
<br />
<b>-sub</b>: Se indica el archivo .srt<br />
<br />
<b>-subcp</b>: Se coloca la codificación (latin1, UTF8, etc)<br />
<br />
<b>-subfont-text-scale</b>: Se indica el tamaño de escala de la fuente.<br />
<br />
<b>-o video.avi</b>: Archivo .avi que luego se debe convertir a .mkv para que lo reconozca el decodificador.<br />
<br />
Y para finalizar se convierte el archivo resultante en un .mkv de la siguiente manera:<br />
<br />
<blockquote class="tr_bq">
mkvmerge video.avi -o videoFin.mkv</blockquote>
<br />
El videoFin.mkv se copia en una memoria USB y se podrá reproducir en el decodificador.<br />
<br />
<br />
<br />
<br />César Mata Moyahttp://www.blogger.com/profile/10675381118281311752noreply@blogger.com6tag:blogger.com,1999:blog-6031758228326998583.post-84241170363557859332010-02-17T20:07:00.003-04:302010-02-17T20:26:20.459-04:30Como hacer un repositorio de Ubuntu<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.ubuntu.com/files/countdown/910/countdown-9.10-1/00.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 180px; height: 150px;" src="http://www.ubuntu.com/files/countdown/910/countdown-9.10-1/00.png" alt="" border="0" /></a><br />Si deseamos hacer un repositorio de Ubuntu, debemos instalar <span style="font-weight: bold;">debmirror</span> y tener un aproximado de 30 Gb disponibles.<br /><br /><code><br />aptitude install debmirror<br /></code><br /><br />Luego crear un script (por ejemplo: ubuntu.sh) y colocamos en su interior:<br /><br /><code><br />#!/bin/bash<br /><br />debmirror -h ve.archive.ubuntu.com --method=http -r ubuntu -d karmic,karmic-security,karmic-updates -a i386 -s main,universe,multiverse,restricted --nosource --progress --ignore-small-errors --ignore-release-gpg --ignore-missing-release /var/www/ubuntu<br /></code><br /><br />A continuación explico las opciones del comando:<br /><br /><span style="font-weight: bold;">-h ve.archive.ubuntu.com</span> : indica el servidor de donde se van a descargar los paquetes<br /><span style="font-weight: bold;">--method=http</span> : indica el método de descarga<br /><span style="font-weight: bold;">-r ubuntu</span> : indica el nombre de la carpeta raíz<br /><span style="font-weight: bold;">-d karmic,karmic-security,karmic-updates</span> : indica las distribuciones a descargar<br /><span style="font-weight: bold;">-a i386</span> : indica la arquitectura de los paquetes<br /><span style="font-weight: bold;">-s main,universe,multiverse,restricted</span> : indica la secciones a descargar<br /><span style="font-weight: bold;">--nosource</span> : no descarga los archivos fuentes<br /><span style="font-weight: bold;">--proxy=http://192.168.1.1:3128</span> : en caso de tener un proxy, indicamos la ip y el puerto<br /><span style="font-weight: bold;">/var/www/ubuntu</span> : lugar donde se guardara el espejo<br /><br />Podemos colocar una tarea en el cron para que este script se ejecute de forma automática.<br /><br />En las máquinas clientes colocamos la ruta del repositorio de la siguiente forma:<br /><code><br />deb http://192.168.100.1/ubuntu/ karmic main universe restricted multiverse<br />deb http://192.168.100.1/ubuntu/ karmic-security main universe restricted multiverse<br />deb http://192.168.100.1/ubuntu/ karmic-updates main universe restricted multiverse<br /></code>César Mata Moyahttp://www.blogger.com/profile/10675381118281311752noreply@blogger.com1tag:blogger.com,1999:blog-6031758228326998583.post-6710049254899175962009-10-27T16:05:00.009-04:302009-10-27T20:37:37.077-04:30Ejemplo de Conexión de C/C++ con PostgreSQL<code><br />#include <stdio.h><br />#include <libpq-fe.h><br /><br />int main()<br />{<br />PGconn *conn;<br />PGresult *res;<br />int i,j;<br /><br />conn = PQsetdbLogin("ip","5432",NULL,NULL,"database","user","password");<br /><br />if (PQstatus(conn) != CONNECTION_BAD)<br />{<br />res = PQexec(conn, "select * from tabla");<br /><br />if (res != NULL && PGRES_TUPLES_OK == PQresultStatus(res))<br />{<br />for (i = PQntuples(res)-1; i >= 0; i--)<br />{<br />for (j = PQnfields(res)-1; j >= 0; j--)<br />printf("%s\t",PQgetvalue(res,i,j));<br />printf("\n"));<br />}<br />PQclear(res);<br />}<br />}<br /><br />PQfinish(conn);<br />return 0;<br />}<br /></code><br /><br />Y para compilar:<br /><br /><blockquote>gcc db.c -o db -lpq -I/usr/include/postgresql/</blockquote><br /><br />Debemos tener instalado el paquete <span style="font-weight:bold;">libpq-dev</span>César Mata Moyahttp://www.blogger.com/profile/10675381118281311752noreply@blogger.com3tag:blogger.com,1999:blog-6031758228326998583.post-37157645509121184552009-10-17T09:15:00.004-04:302009-10-17T22:01:53.299-04:30Reiniciar la consola (Caracteres extraños)<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFwX_vR3Tw54i2cu97GQIW8nSFrueIY_1QQlwYLCirrqQGn-oGB14kjnMuEPAlzTe5Jb9MZeY0Q6ijx33mWHfluTyGaBN6V1khUKX7wmpNCItOh5Erjf8pV6n_IM2QVPOZTiMiR8HkganY/s1600-h/reset.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 215px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFwX_vR3Tw54i2cu97GQIW8nSFrueIY_1QQlwYLCirrqQGn-oGB14kjnMuEPAlzTe5Jb9MZeY0Q6ijx33mWHfluTyGaBN6V1khUKX7wmpNCItOh5Erjf8pV6n_IM2QVPOZTiMiR8HkganY/s320/reset.jpg" alt="" id="BLOGGER_PHOTO_ID_5393564845216255714" border="0" /></a><br />A veces luego de ejecutar determinados comandos en una consola, esta pareciera que se dañara y lo que generalmente hacemos es cerrarla y abrir una nueva, sin embargo basta con teclear <span style="font-weight: bold;">reset</span> y listo, la consola vuelve a la normalidad.César Mata Moyahttp://www.blogger.com/profile/10675381118281311752noreply@blogger.com0tag:blogger.com,1999:blog-6031758228326998583.post-71580217331686525762009-08-11T20:01:00.000-04:302009-08-11T21:04:00.517-04:30Teclado en Español/Latinoamericano en GDM<p>Si necesitamos cambiar la distribución del teclado de <span class="blsp-spelling-error" id="SPELLING_ERROR_0">GDM</span>, debemos editar el archivo <span style="font-weight: bold;">/etc/X11/<span class="blsp-spelling-error" id="SPELLING_ERROR_1">xorg</span>.<span class="blsp-spelling-error" id="SPELLING_ERROR_2">conf</span></span> y agregar lo siguiente:<br /></p><code><span class="blsp-spelling-error" id="SPELLING_ERROR_3">Section</span> "<span class="blsp-spelling-error" id="SPELLING_ERROR_4">InputDevice</span>"<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_5">Identifier</span> "<span class="blsp-spelling-error" id="SPELLING_ERROR_6">Keyboard</span>0"<br />Driver "<span class="blsp-spelling-error" id="SPELLING_ERROR_7">kbd</span>"<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_8">Option</span> "<span class="blsp-spelling-error" id="SPELLING_ERROR_9">XkbRules</span>" "<span class="blsp-spelling-error" id="SPELLING_ERROR_10">xorg</span>"<br /><span class="blsp-spelling-error" id="SPELLING_ERROR_11">Option</span> "<span class="blsp-spelling-error" id="SPELLING_ERROR_12">XkbModel</span>" "<span class="blsp-spelling-error" id="SPELLING_ERROR_13">pc</span>105"<br /><span style="font-weight: bold;"><span class="blsp-spelling-error" id="SPELLING_ERROR_14">Option</span> "<span class="blsp-spelling-error" id="SPELLING_ERROR_15">XkbLayout</span>" "es"</span><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_16">EndSection</span></code><br /><br />y por último reiniciamos el entorno gráfico:<br /><br /><code><span style="font-weight: bold;"><span class="blsp-spelling-error" id="SPELLING_ERROR_17">Ctrl</span>+<span class="blsp-spelling-error" id="SPELLING_ERROR_18">Alt</span>+<span class="blsp-spelling-error" id="SPELLING_ERROR_19">Backspace</span></span></code><br />o<br /><code><span style="font-weight: bold;">/etc/init.d/gdm <span class="blsp-spelling-error" id="SPELLING_ERROR_20">restart</span></span></code><br /><br />Nota: Si queremos el teclado en <span class="blsp-spelling-corrected" id="SPELLING_ERROR_21">Latinoamericano</span> colocamos los siguiente:<br /><br /><code><span class="blsp-spelling-error" id="SPELLING_ERROR_22">Option</span> "<span class="blsp-spelling-error" id="SPELLING_ERROR_23">XkbLayout</span>" <span style="font-weight: bold;">"<span class="blsp-spelling-error" id="SPELLING_ERROR_24">latam</span>"</span></code>César Mata Moyahttp://www.blogger.com/profile/10675381118281311752noreply@blogger.com1tag:blogger.com,1999:blog-6031758228326998583.post-87942552578417353412009-06-19T14:26:00.009-04:302009-06-19T19:08:39.340-04:30Traps con Nagios - IcingaInstalar el agente Net-SNMP en el Servidor.<br /><br />Como usuario root<br /><br /><code><br />apt-get install snmpd<br />ó<br />yum install snmpd<br /></code><br /><br />Editar /etc/snmp/snmptrapd.conf<br /><code><br />doNotLogTraps yes<br />traphandle default /usr/local/nagios/libexec/traps.sh<br /></code><br /><br />Iniciar el demonio receptor de traps<br /><code><br />snmptrapd<br /></code><br /><br />Como usuario nagios<br /><br />Editar /usr/local/nagios/libexec/traps.sh<br /><code><br />#!/bin/sh<br />read host<br />read ip<br />vars=<br /><br />while read oid val<br />do<br />oid=$(echo $oid | cut -d ':' -f 3)<br />if [ "$vars" = "" ]<br />then<br />vars="$oid = $val"<br />else<br />vars="$vars, $oid = $val"<br />fi<br />done<br /><br />ip=$(echo $ip | cut -f 2 -d ' ' | cut -f 1 -d ':' | cut -f 1 -d ']' | cut -f 2 -d '[')<br />/usr/bin/printf "[%lu] PROCESS_SERVICE_CHECK_RESULT;$ip;TRAP;1;WARNING ($vars)\n" `date +%s` > /usr/local/nagios/var/rw/nagios.cmd<br /></code><br /><br />Otorgar privilegios de ejecución<br /><code>chmod a+x traps.sh</code><br /><br />Editar /usr/local/nagios/libexec/traps_ok.sh<br /><code><br />#!/bin/bash<br />echo "Se han limpiados los traps. ("`date`")"<br />exit 0<br /></code><br /><br />Otorgar privilegios de ejecución<br /><code>chmod a+x traps_ok.sh</code><br /><br />Crear el comando en command.cfg<br /><code><br />define command{<br /> command_name traps_ok<br /> command_line $USER1$/traps_ok.sh<br />}<br /></code><br /><br />Definir un Servicio llamado TRAP, de forma pasivo<br /><code><br />define host{<br /> use Host-Servidores<br /> host_name PruebaTrap<br /> address xxx.xxx.xxx.xxx<br /> notes Servidor de Prueba<br /> }<br /><br />define service{<br /> use Service-Servidores<br /> service_description TRAP<br /> host_name PruebaTrap<br /> check_command traps_ok<br /> notes Servicio de Trap<br /> is_volatile 1<br /> active_checks_enabled 0<br /> passive_checks_enabled 1<br /> }<br /></code><br /><br />Notas:<br /><br />Se asume que la instalación de <a href="http://www.nagios.org/">Nagios</a> se realizo desde las fuentes en la carpeta /usr/local/nagios/<br /><br />Se puede mejorar la forma como se muestran los trap utilizando <a href="http://snmptt.sourceforge.net/">snmtt</a> .<br /><br />Para limpiar la alarma de los trap se debe seleccionar la opción “Re-schedule the next check of this service” y marcar el check “Force Check” y presionar la opción “Commit”.<br /><br />Para <a href="http://www.icinga.org/">Icinga</a> cambiar las rutas de nagios por icinga.César Mata Moyahttp://www.blogger.com/profile/10675381118281311752noreply@blogger.com4tag:blogger.com,1999:blog-6031758228326998583.post-77451285334497653022009-06-09T18:17:00.006-04:302009-06-09T19:02:11.480-04:30Trabajando con GDChartEn estos días estaba tratando de crear unas gráficas provenientes de un archivo .csv para obtener los datos y a la final crear un archivo .png.<br /><br />Existe una excelente herramienta para php que realiza maravillosas gráficas: <a href="http://pchart.sourceforge.net/">pChart</a>, sin embargo necesitaba una solución para trabajar con C/C++ y para ello estoy utilizando <a href="http://www.fred.net/brv/chart/">GDChart</a>, la cual es una librería que nos permite realizar gráficas sencillas.<br /><br />A continuación un ejemplo de como realizar una gráfica sencilla con lenguaje C/C++ en debian/ubuntu.<br /><br /><blockquote>apt-get install libgdchart-gd2-xpm-dev libgdchart-gd2-xpm</blockquote><br /><br />Crear un archivo ejemplo.c<br /><br /><code><br />#include <stdio.h><br />#include <gdc.h><br />#include <gdchart.h><br />#include <gdcpie.h><br /><br />main()<br />{<br />float a[3][10] = {{10,12,50,30,10,78,12,50,30,10},{12,50,30,10,78,12,50,30,10,45},{50,30,10,78,12,50,30,10,45,6}};<br /><br />char *t[10] = { "1", "", "", "", "", "", "","","","F"};<br />unsigned long sc[2] = { 0xFF8080, 0x8080FF };<br /><br />GDC_BGColor = 0xFFFFFFL; /* backgound color (white) */<br />GDC_LineColor = 0x000000L; /* line color (black) */<br />GDC_SetColor = &(sc[0]); /* assign set colors */<br /><br />GDC_image_type = GDC_PNG;<br /> /* ----- call the lib ----- */<br />GDC_out_graph( 800, 220, /* short width, height */<br /> stdout, /* FILE* open FILE pointer */<br /> GDC_LINE, /* GDC_CHART_T chart type */<br /> 10, /* int number of points per data set */<br /> t, /* char*[] array of X labels */<br /> 3, /* int number of data sets */<br /> (float*)a, NULL ); /* float[] data set 1 */<br /><br />return 0;<br />}<br /></code><br />Luego compilar y aqui viene la parte <a href="http://www.opensource.or.ke/index.php?option=com_content&task=view&id=86&Itemid=1">importante</a>:<br /><br /><blockquote>gcc ejemplo.c -o ejemplo -lgdc -D HAVE_LIBFREETYPE</blockquote><br />Por ultimo ejecutar el archivo y colocarlo en un archivo .png<br /><br /><blockquote>./ejemplo > salida.png</blockquote><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkg8EtK3QkjnA-VQi_CtnJkqo7vnyOEstbcNANHkOunZtB716FiVfM0DkU7u-6ApkePa3PPlxre2BwdIQiG6CKp-kQElY82bYeMS0yR6TwcDZw-GBW5AgWdVzRK-fVPJKPEESoQe8tJx26/s1600-h/salida.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 88px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkg8EtK3QkjnA-VQi_CtnJkqo7vnyOEstbcNANHkOunZtB716FiVfM0DkU7u-6ApkePa3PPlxre2BwdIQiG6CKp-kQElY82bYeMS0yR6TwcDZw-GBW5AgWdVzRK-fVPJKPEESoQe8tJx26/s320/salida.png" alt="" id="BLOGGER_PHOTO_ID_5345464104148442610" border="0" /></a><br />Esta librería la pienso utilizar momentáneamente, pero trataré de portar pChart a C++.<br /><br />Nota, estoy trabajando ahora en la parte para leer el archivo csv...César Mata Moyahttp://www.blogger.com/profile/10675381118281311752noreply@blogger.com2tag:blogger.com,1999:blog-6031758228326998583.post-91015468900047162802009-05-31T09:45:00.005-04:302009-05-31T10:03:50.804-04:30LibrosWeb.es<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiabwjyeedINBh82co08-AgMwmL3YVQSJrbi5R_8sc6oR-k91fGVPCdj19cvdglU0IEW5Os-Oa9oZ3kH9mCSJeIDC5tGfcmGsYBbV86bA5sDilxxibI1ZU3da__iatL6z0gbqboX26sB4oo/s1600-h/librosweb.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 317px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiabwjyeedINBh82co08-AgMwmL3YVQSJrbi5R_8sc6oR-k91fGVPCdj19cvdglU0IEW5Os-Oa9oZ3kH9mCSJeIDC5tGfcmGsYBbV86bA5sDilxxibI1ZU3da__iatL6z0gbqboX26sB4oo/s320/librosweb.png" alt="" id="BLOGGER_PHOTO_ID_5341994960809478418" border="0" /></a><br />Excelente sitio con libros gratuitos sobre HTML, CSS, JavaScript, AJAX y otras tecnologías web<br /><br /><a href="http://www.librosweb.es/">http://www.librosweb.es/</a><br /><br />Ahora a buscar tiempo para poder leer y más adelante aplicar todo esto....<br /><br />Los que yo descargue:<br /><a href="http://www.librosweb.es/ajax/pdf/introduccion_ajax_2caras.pdf"><br />Introducción a AJAX</a><br /><a href="http://www.librosweb.es/xhtml/pdf/introduccion_xhtml_2caras.pdf">Introducción a XHTML</a><br /><a href="http://www.librosweb.es/css/pdf/introduccion_css_2caras.pdf">Introducción a CSS</a><br /><a href="http://www.librosweb.es/javascript/pdf/introduccion_javascript_2caras.pdf">Introducción a Javascript</a><br /><a href="http://www.librosweb.es/css_avanzado/pdf/css_avanzado_2caras.pdf">CSS Avanzado</a>César Mata Moyahttp://www.blogger.com/profile/10675381118281311752noreply@blogger.com0tag:blogger.com,1999:blog-6031758228326998583.post-1937065462370833592009-05-23T08:48:00.004-04:302009-05-23T08:56:37.295-04:30Referencia rápida de CSS en PDF<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhE9U40yOpnRQrAqCr9BL_WpFghUXmauAFoLg2Y-4pH6uuvgsUlmLcaU6gqFjQrSJeZkKi_rn7N3YaCbS0X67asHh2FLbRBy3ToXiTv3WEjLT6fUIAe-Ymb6r6LTX6LuBNg-ZByVzCJ9A6H/s1600-h/referencia.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 225px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhE9U40yOpnRQrAqCr9BL_WpFghUXmauAFoLg2Y-4pH6uuvgsUlmLcaU6gqFjQrSJeZkKi_rn7N3YaCbS0X67asHh2FLbRBy3ToXiTv3WEjLT6fUIAe-Ymb6r6LTX6LuBNg-ZByVzCJ9A6H/s320/referencia.png" alt="" id="BLOGGER_PHOTO_ID_5339008903771310594" border="0" /></a><br />Googleando <blockquote>manual de css filetype:pdf</blockquote>Conseguí esta Referencia rápida de CSS en pdf. Pueden descargarlo <a href="http://www.day-two.nl/css_quick_reference_manual.pdf">aquí</a>César Mata Moyahttp://www.blogger.com/profile/10675381118281311752noreply@blogger.com2tag:blogger.com,1999:blog-6031758228326998583.post-38103897884919356222009-05-22T08:03:00.003-04:302009-05-22T08:19:56.332-04:30Manual de XHTML + CSSGoogleando me <a href="http://www.educasitio.com/xhtml+css">encontré</a> con un buen manual de XHTML + CSS de <a href="http://cafeina.ladybenko.net/">Belén Albeza</a> y me gusta mucho la forma como explica el tema. Voy a estar citando varias partes de la obra en el blog, las cuales me han parecido interesantes...<br /><br />El manual completo lo pueden bajar de <a href="http://www.educasitio.com/system/files/xhtml_tuto_beta.pdf">aquí</a>...<br /><br />Parte de la Introducción del Manual<br /><br /><blockquote>¿Qué es el XHTML?<br /><br /><br /> XHTML significa eXtensible HyperText Markup Language y<br />es la versión modernizada del tradicional HTML4 . Si ya conoces<br />HTML, al final del manual hay un apéndice para que sea más fácil<br />la migración a XHTML.<br /><br /><br /> XHTML es un lenguaje semántico, lo que quiere decir que no<br />definimos el aspecto de las cosas, sino lo que significan. Por ejemplo,<br />si tenemos el título de nuestra página, en lugar de decir “Lo quiero<br />grande en letras rojas”, le indicamos al navegador que “Este es el<br />título principal de la página. Haz algo para que destaque”. Y ese<br />“algo” lo dejamos a decisión del navegador.<br /><br /><br /> Obviamente, podemos controlar el aspecto que tienen nuestras páginas, pero eso es tarea de las hojas de estilo CSS, no del<br />XHTML.<br /><br /><br />¿Y eso de CSS?<br /><br /><br /> CSS son las siglas de Cascading Style Sheets y son un regalo<br />del cielo. Si el documento XHTML está bien estructurado, podemos<br />cambiar totalmente su apariencia sin tocar una sola línea de código<br />en el archivo .html. Esto nos permite separar el contenido del<br />aspecto, y es de gran importancia.<br /></blockquote>César Mata Moyahttp://www.blogger.com/profile/10675381118281311752noreply@blogger.com0tag:blogger.com,1999:blog-6031758228326998583.post-29323795199753993122009-05-21T20:25:00.005-04:302009-05-21T20:49:01.969-04:30Cambiar el menú de inicio de KDE 4 al estilo clásico (KDE 3.x)Para cambiar la forma en que se muestra por defecto el Menú de Inicio en KDE 4.x y colocarlo como en las versiones anteriores de KDE, se debe hacer click con el botón derecho del ratón sobre el icono K y seleccionar “Cambiar al estilo clásico de menús”<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDWx3heZemoRnwoY6Yhf7HvFOJh_D1zn7l5-WjJUdyQ9NCr7frpk1AF7Nx0Oa61X2KABqu6tscOHnNZ8cuZlCKdAtFoyuc2hoZ8YJn1hIdY23Rt6jASXeJQSpKz-MNlBtm4BiGltIkn12L/s1600-h/menuClasico.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 145px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDWx3heZemoRnwoY6Yhf7HvFOJh_D1zn7l5-WjJUdyQ9NCr7frpk1AF7Nx0Oa61X2KABqu6tscOHnNZ8cuZlCKdAtFoyuc2hoZ8YJn1hIdY23Rt6jASXeJQSpKz-MNlBtm4BiGltIkn12L/s320/menuClasico.png" alt="" id="BLOGGER_PHOTO_ID_5338445683611945154" border="0" /></a>César Mata Moyahttp://www.blogger.com/profile/10675381118281311752noreply@blogger.com1tag:blogger.com,1999:blog-6031758228326998583.post-85040642492747134582009-05-18T07:32:00.003-04:302009-05-18T07:44:19.518-04:30Webcam MSI StarCam 370i en Ubuntu 9.04Para mi grata sorpresa al instalar desde cero, Ubuntu 9.04 en mi Acer Aspire One y conectar mi WebCam USB MSI StarCam 370i me doy cuenta que al fin funcionaba! Desde que soy usuario de Linux y poseo esta magnifica webcam, tenía que recurrir a Windows XP para hacerla funcionar, pero eso ya quedo atrás.<br /><br />También poseo una computadora de Escritorio con Ubuntu Jaunty 9.04, sin embargo cuando conecte la webcam, no puedo hacerla funcionar, lo cual me pareció extraño. Recordé que en anteriores oportunidades había tratado de compilar el driver para esta webcam sin obtener resultados, por lo que pensé que producto de esas instalaciones había quedado alguna configuración residente ya que en esta PC la instalación de Ubuntu había sido mediante actualización desde versiones anteriores.<br /><br />Procedí a editar el archivo /etc/modprobe.d/blacklist.conf y en efecto al final del archivo estaban 3 líneas que bloqueaban la carga de los módulos:<br /><br /><blockquote>blacklist sn9c102<br />blacklist gspca_main<br />blacklist gspca_sonixj</blockquote>Procedí a eliminarlas, guarde y cerré el archivo y al reiniciar la computadora, ya la webcam funcionaba.<br /><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiM60jy-2b3hsxqkE0y6CHAJjiBQYVXQC5SoQVUEj7XwfmiHSQ0of3lbkTrwg2vr0AUEu8iKNK6F1AMLEuUd45b08GsQ2LMffWX3-G6Cxr7Ki4EStl1OtMqvUUqtYBFjVstRYnotGCwdvmf/s1600-h/webcam.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 201px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiM60jy-2b3hsxqkE0y6CHAJjiBQYVXQC5SoQVUEj7XwfmiHSQ0of3lbkTrwg2vr0AUEu8iKNK6F1AMLEuUd45b08GsQ2LMffWX3-G6Cxr7Ki4EStl1OtMqvUUqtYBFjVstRYnotGCwdvmf/s320/webcam.png" alt="" id="BLOGGER_PHOTO_ID_5337134442785992882" border="0" /></a><br />cat /etc/issue.net<br /><blockquote>Ubuntu 9.04</blockquote>lsusb<br /><blockquote>Bus 003 Device 003: ID 0c45:60c0 Microdia PC Camera with Mic (SN9C105)<br /></blockquote>dmesg<br /><br /><blockquote><br />[ 3568.932113] usb 3-1: new full speed USB device using ohci_hcd and address 3<br />[ 3569.137194] usb 3-1: configuration #1 chosen from 1 choice<br />[ 3569.141310] usb 3-1: SN9C105 PC Camera Controller detected (vid:pid 0x0C45:0x60C0)<br />[ 3569.272071] usb 3-1: MT9V111 image sensor detected<br />[ 3569.857062] usb 3-1: Initialization succeeded<br />[ 3569.857177] usb 3-1: V4L2 device registered as /dev/video0<br />[ 3569.857181] usb 3-1: Optional device control through 'sysfs' interface disabled<br />[ 3569.857453] gspca: probing 0c45:60c0</blockquote><br /><br />Nota: La webcam la conecte desde que inicie la maquina.César Mata Moyahttp://www.blogger.com/profile/10675381118281311752noreply@blogger.com7tag:blogger.com,1999:blog-6031758228326998583.post-75195147456866646442009-05-11T08:10:00.002-04:302009-05-11T08:12:55.228-04:30Montar una Carpeta remota de Windows usando SambaPara montar una carpeta usando Samba, ejecutamos desde la consola:<br /><br /><blockquote>mount -t smbfs -o username=usuario,group=dominio //servidor/carpeta /media/APPL/</blockquote>César Mata Moyahttp://www.blogger.com/profile/10675381118281311752noreply@blogger.com2