<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Bitacora de angelclasico</title>
	<atom:link href="http://angelclasico.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://angelclasico.wordpress.com</link>
	<description>by angelclasico</description>
	<lastBuildDate>Wed, 04 Mar 2009 17:57:35 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='angelclasico.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/7418085d63a4cc0584c7d4ce2e6526db?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Bitacora de angelclasico</title>
		<link>http://angelclasico.wordpress.com</link>
	</image>
			<item>
		<title>MAC DE ETH0 CAMBIA AL ARRANCAR</title>
		<link>http://angelclasico.wordpress.com/2009/03/04/interfaz-eth-cambia-de-nombre-debian/</link>
		<comments>http://angelclasico.wordpress.com/2009/03/04/interfaz-eth-cambia-de-nombre-debian/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 16:34:29 +0000</pubDate>
		<dc:creator>angelclasico</dc:creator>
				<category><![CDATA[1]]></category>

		<guid isPermaLink="false">http://angelclasico.wordpress.com/?p=31</guid>
		<description><![CDATA[He tenido ciertos problemas para instalar mi red, aquí el problema:
He instalado una red casera, dos de mis computadoras, me han traído ciertos problemitas que es necesario solucionar. Estas no podían acceder a internet, aunque todo parecía estar bien, los cables bien &#8220;ponchados&#8221; correctamente conectados en su correspondiente RJ45.
Entonces el problema debería ser la configuración [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=angelclasico.wordpress.com&blog=2189041&post=31&subd=angelclasico&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>He tenido ciertos problemas para instalar mi red, aquí el problema:</p>
<p>He instalado una red casera, dos de mis computadoras, me han traído ciertos problemitas que es necesario solucionar. Estas no podían acceder a internet, aunque todo parecía estar bien, los cables bien &#8220;ponchados&#8221; correctamente conectados en su correspondiente RJ45.</p>
<p>Entonces el problema debería ser la configuración de la red mediante DHCP. Así que en una de las computadoras reinstale mediante el disco netinstall Debian etch y la configuración DHCP se configuraba con éxito, sin embargo al reiniciar, hacía un <strong><em>ping</em></strong> a cualquier servidor, este simplemente no podía conectar o recibir el pong. Así que decidí hacer un <strong><em>ping</em></strong> al router y la respuesta era que la red no estaba disponible.</p>
<p>Mediante <strong><em>sudo ifconfig</em></strong>, pude darme cuenta que la interfaz <strong><em>eth0</em></strong> no estaba levantada (encendida) y por tanto me di a la tarea de levantarla mediante sudo <strong><em>ifconfig eth0 up</em></strong> y esta debería haber quedado activada, sin embargo no sucedió así, me decía que el dispositivo no existía ¿Cómo no iba a existir? así que quise verificarlo mediante <strong><em>sudo ifconfig -a</em></strong> (muestra los dispositivos de red que existen aunque estén desactivados) y ahí estaba solo que con otro nombre:</p>
<p><strong><em>eth4      Link encap:Ethernet  HWaddr 00:00:6D:B6:85:45 </em></strong></p>
<p>Ese era el motivo de no poder acceder a internet, por tanto modifique los valores contenidos en <strong><em>/etc/network/interfaces</em></strong> de la siguiente manera:</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;INICIO&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p><strong><em>#This file describes the network interfaces available on your system<br />
# and how to activate them. For more information, see interfaces(5).</em></strong></p>
<p><strong><em># The loopback network interface<br />
auto lo<br />
iface lo inet loopback</em></strong></p>
<p><strong><em># The primary network interface<br />
auto eth4<br />
iface eth4 inet static<br />
address 192.168.1.101<br />
netmask 255.255.255.0<br />
gateway 192.168.1.254</em></strong></p>
<p><strong><em># address es la IP de red interna de mi maquina<br />
# netmask es la IP de la mascara de red.<br />
# gateway es la IP de mi router</em></strong></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;FIN&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Al mismo tiempo, modifique <strong><em>/etc/resolv.conf</em></strong></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;INICIO&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p><strong><em># Datos del servidor de nombres</em></strong></p>
<p><strong><em>nameserver 200.33.146.193<br />
nameserver 200.33.146.201</em></strong></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;FIN&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Posteriormente reinicie el proceso de la red mediante:</p>
<p>sudo /etc/init.d/networking/ restart</p>
<p>¡Vaya, por fin pude ingresar a internet. Pero el problema no termino ahí, porque cuando apague la computadora para dormir, al dia siguiente, no quiso entrar a internet por dos razones:</p>
<p>1.- La interfaz no se había activado, estaba &#8220;apagada&#8221;. Esto lo comprobé mediante <strong><em>ifconfig</em></strong> y únicamente aparecía la interfaz <strong><em>lo</em></strong>, por lo cual sabia que estaba desactivada. Cuando intento activarla mediante ifconfig eth4, me decia que el dispositivo no existia, asi que tenía que saber porque no existía.</p>
<p>2.-Cuando verifico que la interfaz existe mediante s<strong><em>udo ifconfig -a</em></strong>, puedo percatarme de que el nombre de la interfaz había cambiado y de ser <strong><em>eth4</em></strong> ahora se llamaba <strong><em>eth5</em></strong>, así que volví a apagar la maquina y cuando la encendí, me dí cuenta que ahora se llamaba <strong><em>eth5</em></strong> y así iba escalando en número, cambiando de nombre cada vez que la apagaba y para poder acceder a internet, tenia que modificar el archivo <strong><em>/etc/network/interfaces</em></strong> y en este archivo modificar el nombre de la interfaz.</p>
<p>Ahora el problema a resolver es ese, conseguir que la interfaz se quede fija como <strong><em>eth0</em></strong> (que es lo común y normal).</p>
<p>He mirado el archivo <strong><em>/etc/udev/rules.d/z25_persistent-net.rules</em></strong> y contiene la siguiente información:</p>
<p><em><strong># This file was automatically generated by the /lib/udev/write_net_rules<br />
# program, probably run by the persistent-net-generator.rules rules file.<br />
#<br />
# You can modify it, as long as you keep each rule on a single line.<br />
# MAC addresses must be written in lowercase.</strong></em></p>
<p><em><strong># PCI device 0&#215;10de:0&#215;03ef (forcedeth)<br />
SUBSYSTEM==&#8221;net&#8221;, DRIVERS==&#8221;?*&#8221;, ATTRS{address}==&#8221;00:00:6c:b6:85:45&#8243;, NAME=&#8221;eth0&#8243;</strong></em></p>
<p><em><strong># PCI device 0&#215;10de:0&#215;03ef (forcedeth)<br />
SUBSYSTEM==&#8221;net&#8221;, DRIVERS==&#8221;?*&#8221;, ATTRS{address}==&#8221;00:00:6c:f7:69:1T&#8221;, NAME=&#8221;eth1&#8243;</strong></em></p>
<p><em><strong># PCI device 0&#215;10de:0&#215;03ef (forcedeth)<br />
SUBSYSTEM==&#8221;net&#8221;, DRIVERS==&#8221;?*&#8221;, ATTRS{address}==&#8221;00:00:6c:8b:G0:24&#8243;, NAME=&#8221;eth2&#8243;</strong></em></p>
<p><em><strong># PCI device 0&#215;10de:0&#215;03ef (forcedeth)<br />
SUBSYSTEM==&#8221;net&#8221;, DRIVERS==&#8221;?*&#8221;, ATTRS{address}==&#8221;00:00:6c:Tb:o3:d4&#8243;, NAME=&#8221;eth3&#8243;</strong></em></p>
<p>Con esta información me he dado cuenta que no accede automáticamente a internet por la razón de que la MAC cambia a cada vez que arranco el sistema. Ahora el problema ya lo tengo de raíz, que es hacer que la MAC de fábrica se quede fija (irónico, algunos quieren que cambia al arrancar y yo no).</p>
<p>En un post, alguien dijo que su problema se solucionó cuando actualizó su Kernel, yo no quiero hacerlo porque creo que es posible que la MAC se quede fija con este mismo Kernel que tengo.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/angelclasico.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/angelclasico.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/angelclasico.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/angelclasico.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/angelclasico.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/angelclasico.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/angelclasico.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/angelclasico.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/angelclasico.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/angelclasico.wordpress.com/31/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=angelclasico.wordpress.com&blog=2189041&post=31&subd=angelclasico&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://angelclasico.wordpress.com/2009/03/04/interfaz-eth-cambia-de-nombre-debian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/97ec95f1116c9ef9851114fd8ae13a30?s=96&#38;d=identicon" medium="image">
			<media:title type="html">angelclasico</media:title>
		</media:content>
	</item>
		<item>
		<title>Ingresa tu edad Qt4</title>
		<link>http://angelclasico.wordpress.com/2007/12/05/ingresa-tu-edad-qt4/</link>
		<comments>http://angelclasico.wordpress.com/2007/12/05/ingresa-tu-edad-qt4/#comments</comments>
		<pubDate>Wed, 05 Dec 2007 04:20:43 +0000</pubDate>
		<dc:creator>angelclasico</dc:creator>
				<category><![CDATA[Qt4]]></category>
		<category><![CDATA[Qt4 QWidget]]></category>
		<category><![CDATA[Qt4 spin box]]></category>
		<category><![CDATA[slider Qt4]]></category>

		<guid isPermaLink="false">http://angelclasico.wordpress.com/2007/12/05/ingresa-tu-edad-qt4/</guid>
		<description><![CDATA[Es esta sección vamos a crear una pequeña aplicación, que demuestra cómo utilizar layouts para manejar la geometría de los widgets en una ventana y el modo de utilizar señales y slots para sincronizar dos widgets.
La aplicación pregunta al usuario su edad y el podrá responder utilizando una spin box o un slider.
La aplicación consta [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=angelclasico.wordpress.com&blog=2189041&post=20&subd=angelclasico&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Es esta sección vamos a crear una pequeña aplicación, que demuestra cómo utilizar layouts para manejar la geometría de los widgets en una ventana y el modo de utilizar señales y slots para sincronizar dos widgets.</p>
<p>La aplicación pregunta al usuario su edad y el podrá responder utilizando una <strong><em>spin box</em></strong> o un <strong><em>slider</em></strong>.</p>
<p>La aplicación consta de tres Widgets: un <em><strong>QSpinBox</strong></em>, un <strong><em>QSlider</em></strong>, y un <strong><em>QWidget</em></strong>. El <em><strong>QWidget</strong></em> es la aplicación de la ventana principal. El <em><strong>QSpinBox</strong></em> y la <strong><em>QSlider</em></strong> se encuentran en el interior de la <em><strong>QWidget</strong></em>.</p>
<p>Alternativamente podemos decir que <strong><em>QWidget</em></strong> es padre de <strong><em>QSpinBox</em></strong> y de <strong><em>QSlider</em></strong>. El <strong><em>QWidget</em></strong> no tiene padre, porque se está utilizando como un nivel superior máximo de la ventana.</p>
<p>El código que usaremos para esta aplicación es el siguiente.</p>
<p><strong><em> 1 #include &lt;QApplication&gt;<br />
2 #include &lt;QHBoxLayout&gt;<br />
3 #include &lt;QSlider&gt;<br />
4 #include &lt;QSpinBox&gt;<br />
5 int main(int argc, char *argv[])<br />
6 {<br />
7     QApplication app(argc, argv);<br />
8     QWidget *window = new QWidget;<br />
9     window-&gt;setWindowTitle(&#8220;Ingresa tu edad&#8221;);<br />
10     QSpinBox *spinBox = new QSpinBox;<br />
11     QSlider *slider = new QSlider(Qt::Horizontal);<br />
12     spinBox-&gt;setRange(0, 130);<br />
13     slider-&gt;setRange(0, 130);<br />
14     QObject::connect(spinBox, SIGNAL(valueChanged(int)),<br />
15                      slider, SLOT(setValue(int)));<br />
16     QObject::connect(slider, SIGNAL(valueChanged(int)),<br />
17                      spinBox, SLOT(setValue(int)));<br />
18     spinBox-&gt;setValue(35);<br />
19     QHBoxLayout *layout = new QHBoxLayout;<br />
20     layout-&gt;addWidget(spinBox);<br />
21     layout-&gt;addWidget(slider);<br />
22     window-&gt;setLayout(layout);<br />
23     window-&gt;show();<br />
24     return app.exec();<br />
25 }</em></strong></p>
<p>Línea 8 y 9  <em><strong>setWindowTitle()</strong></em> nos permite editar el texto que será visible en la Barra de Titulo de nuestra aplicación.</p>
<p>Lineas 10 y 11 crean una <em><strong>QSpinBox</strong></em> y un <strong><em>QSlider</em></strong>, mientras que las líneas 12 y 13 le dice el valor máximo y mínimo que mostrarán. Asumo que una persona vive máximo y exageradamente 130 años (yo solo sé de personas que han vivido hasta 116 años y eso porque les hacen reportajes en noticieros nacionales).</p>
<p>Las lineas 14 y 17 que contienen <em><strong>QObject::connect()</strong></em> garantizan que la <strong><em>QSpinBox</em></strong> y el <strong><em>QSlider </em></strong>están sincronizadas y que siempre tendrán el mismo valor. Cuando algún valor del los Widgets  cambie se enviara una señal de cambio mediante <strong><em>valueChanged(int)</em></strong> mientras que el valor de el otro Widget cambiará debido a esa señal mediante <strong><em>setValue(int)</em></strong>.</p>
<p>Línea 18 establece el valor 35 por default. Cuando esto sucede, la Spin Box emite  la señal <strong><em>valueChanged(int)</em></strong> con  <strong><em>int</em></strong> establece el valor 35. Este valor es pasado al slot de <em><strong>setValue(int)</strong></em> del Slider. El Slider entonces emite la señal <strong><em>valueChanged(int)</em></strong>, porque su propio valor a cambiado activando el slot <strong><em>setValue(int)</em></strong> de la Spin Box. Pero en este punto, <strong><em>setValue(int)</em></strong> no emite ninguna señal, ya que el valor de la Spin Box ya es 35, esto previene una repetición infinita.</p>
<p>Lineas 19 a 22 en donde establezco la Spin Box y el Slider, uso un Layout Manager. Un Layout Manager es un objeto que establece el tamaño y la posición de los widgets que están bajo su responsabilidad Qt4 tiene tres 3 principales clases de Layout Manager:</p>
<ul>
<li><strong><em>QHBoxLayout</em></strong> Establece widgets horizontalmente de izquierda a derecha (derecha a izquierda para otras culturas).</li>
<li><strong><em>QVBoxLayout</em></strong> Establece widgets verticalmente de arriba a abajo.</li>
<li><strong><em>QGridLayout</em></strong> Establece widgets en una cuadrícula.</li>
</ul>
<p>La llamada a <strong><em>QWidget::setLayout()</em></strong> en la línea 22 instala el Layout Manager sobre la ventana.. Detras del proceso, la <strong><em>QSpinBox</em></strong> y <strong><em>QSlider</em></strong> son nuevamente llamados a ser niños de el widget en la que el layout es instalado, y por esta rason no necesitamos especificar un parentezco cuando construimos un widget que se pondrá en un layout.</p>
<p>A pesar de que no establecimos la posición o el tamaño de cualquier widget, la <strong><em>QSpinBox</em></strong> y el <strong><em>QSlider</em></strong> aparecerá bien establecido de un lado al otro. Esto es porque QHBox-Layout automáticamente asignará posiciones y tamaños razonablesa los widgets. El Layout Manager nos libera de la ardua tarea de codificación de las posiciones en nuestra pantalla de las aplicaciones y asegura el tamaño de las ventanas sin problemas.</p>
<p>La imagen de nuestra aplicación es la siguiente.</p>
<p align="center"><a href="http://angelclasico.wordpress.com/2007/12/05/ingresa-tu-edad-qt4/23/" rel="attachment wp-att-23" title="ingresa-edad.png"><img src="http://angelclasico.files.wordpress.com/2007/12/ingresa-edad.png" alt="ingresa-edad.png" /></a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/angelclasico.wordpress.com/20/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/angelclasico.wordpress.com/20/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/angelclasico.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/angelclasico.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/angelclasico.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/angelclasico.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/angelclasico.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/angelclasico.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/angelclasico.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/angelclasico.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/angelclasico.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/angelclasico.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=angelclasico.wordpress.com&blog=2189041&post=20&subd=angelclasico&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://angelclasico.wordpress.com/2007/12/05/ingresa-tu-edad-qt4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/97ec95f1116c9ef9851114fd8ae13a30?s=96&#38;d=identicon" medium="image">
			<media:title type="html">angelclasico</media:title>
		</media:content>

		<media:content url="http://angelclasico.files.wordpress.com/2007/12/ingresa-edad.png" medium="image">
			<media:title type="html">ingresa-edad.png</media:title>
		</media:content>
	</item>
		<item>
		<title>Haciendo conexiones en Qt4</title>
		<link>http://angelclasico.wordpress.com/2007/12/04/haciendo-conexiones-en-qt4/</link>
		<comments>http://angelclasico.wordpress.com/2007/12/04/haciendo-conexiones-en-qt4/#comments</comments>
		<pubDate>Tue, 04 Dec 2007 20:02:47 +0000</pubDate>
		<dc:creator>angelclasico</dc:creator>
				<category><![CDATA[Qt4]]></category>
		<category><![CDATA[]]></category>
		<category><![CDATA[Qt4 conexiones]]></category>
		<category><![CDATA[Qt4 SIGNAL]]></category>
		<category><![CDATA[Qt4 SLOT]]></category>

		<guid isPermaLink="false">http://angelclasico.wordpress.com/2007/12/04/haciendo-conexiones-en-qt4/</guid>
		<description><![CDATA[El segundo ejemplo muestra como responderá una aplicacion a las acciones que le demos. La aplicación consiste en un botón que el usuario podrá presionar y salir de la aplicacion. El código es muy semejante a HelloQt4 a excepción porque usaremos la orden QPushButton en lugar de QLabel  y relacionaremos el click que se le [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=angelclasico.wordpress.com&blog=2189041&post=18&subd=angelclasico&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>El segundo ejemplo muestra como responderá una aplicacion a las acciones que le demos. La aplicación consiste en un botón que el usuario podrá presionar y salir de la aplicacion. El código es muy semejante a HelloQt4 a excepción porque usaremos la orden QPushButton en lugar de QLabel  y relacionaremos el click que se le dará al botón con una parte del código.</p>
<p><strong><em> 1 #include &lt;QApplication&gt;<br />
2 #include &lt;QPushButton&gt;<br />
3 int main(int argc, char *argv[])<br />
4 {<br />
5     QApplication app(argc, argv);<br />
6     QPushButton *button = new QPushButton(&#8220;Quit&#8221;);<br />
7     QObject::connect(button, SIGNAL(clicked()),<br />
8                      &amp;app, SLOT(quit()));<br />
9     button-&gt;show();<br />
10     return app.exec();<br />
11 }</em></strong></p>
<p>Los Widgets emiten señales para indicar que una acción del usuario o un cambio de estado se ha producido. Por ejemplo, <strong><em>QPushButton</em></strong> emite un <strong><em>clicked ()</em></strong> que es una señal cuando el usuario hace clic en el botón. Una señal puede ser conectada a una función (llamada <strong><em>slot</em></strong>), de manera que cuando se emite la señal, el <em><strong>slot</strong></em> se ejecuta automáticamente. En nuestro ejemplo, conectamos la señal del clic del botón (<strong><em> clicked () </em></strong>)<strong><em> </em></strong> al slot del objeto <strong><em>quit ()</em></strong> de <strong><em>QApplication</em></strong>.  Los macros  (conjunto de instrucciones) <strong><em>SIGNAL ()</em></strong> y <em><strong>SLOT ()</strong></em> son parte de la sintaxis, que se explican con más detalle.</p>
<p>La aplicación quedaría de la siguiente manera.</p>
<p align="center"><a href="http://angelclasico.wordpress.com/2007/12/04/haciendo-conexiones-en-qt4/conexiones/" rel="attachment wp-att-19" title="conexiones"><img src="http://angelclasico.files.wordpress.com/2007/12/conexiones.png" alt="conexiones" /></a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/angelclasico.wordpress.com/18/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/angelclasico.wordpress.com/18/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/angelclasico.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/angelclasico.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/angelclasico.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/angelclasico.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/angelclasico.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/angelclasico.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/angelclasico.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/angelclasico.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/angelclasico.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/angelclasico.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=angelclasico.wordpress.com&blog=2189041&post=18&subd=angelclasico&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://angelclasico.wordpress.com/2007/12/04/haciendo-conexiones-en-qt4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/97ec95f1116c9ef9851114fd8ae13a30?s=96&#38;d=identicon" medium="image">
			<media:title type="html">angelclasico</media:title>
		</media:content>

		<media:content url="http://angelclasico.files.wordpress.com/2007/12/conexiones.png" medium="image">
			<media:title type="html">conexiones</media:title>
		</media:content>
	</item>
		<item>
		<title>Otro ejemplo Qt4 más divertido</title>
		<link>http://angelclasico.wordpress.com/2007/12/04/otro-ejemplo-qt4-mas-divertido/</link>
		<comments>http://angelclasico.wordpress.com/2007/12/04/otro-ejemplo-qt4-mas-divertido/#comments</comments>
		<pubDate>Tue, 04 Dec 2007 19:14:46 +0000</pubDate>
		<dc:creator>angelclasico</dc:creator>
				<category><![CDATA[Qt4]]></category>
		<category><![CDATA[ejemplos qt4]]></category>
		<category><![CDATA[Widgets]]></category>

		<guid isPermaLink="false">http://angelclasico.wordpress.com/2007/12/04/otro-ejemplo-qt4-mas-divertido/</guid>
		<description><![CDATA[Bien, usaremos el código del anterior post, pero ahora le haremos unas sencillas modificaciones para hacerlo más divertido.
#include &#60;QApplication&#62;
#include &#60;QLabel&#62;
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QLabel *label = new QLabel(&#8220;&#60;h2&#62;&#60;i&#62;Hello&#60;/i&#62; &#8220;
&#8220;&#60;font color=red&#62;Qt!&#60;/font&#62;&#60;/h2&#62;&#8221;);
label-&#62;show();
return app.exec();
}
Como podrán darse cuenta, cambiamos la línea que contiene
QLabel *label = new QLabel(&#8220;Hello Qt!&#8221;); 
por
QLabel *label = new QLabel(&#8220;&#60;h2&#62;&#60;i&#62;Hello&#60;/i&#62; &#8220;
&#8220;&#60;font color=red&#62;Qt!&#60;/font&#62;&#60;/h2&#62;&#8221;); 
Con esta [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=angelclasico.wordpress.com&blog=2189041&post=14&subd=angelclasico&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Bien, usaremos el código del anterior post, pero ahora le haremos unas sencillas modificaciones para hacerlo más divertido.</p>
<p><strong><em>#include &lt;QApplication&gt;<br />
#include &lt;QLabel&gt;<br />
int main(int argc, char *argv[])<br />
{<br />
QApplication app(argc, argv);<br />
QLabel *label = new QLabel(&#8220;&lt;h2&gt;&lt;i&gt;Hello&lt;/i&gt; &#8220;<br />
&#8220;&lt;font color=red&gt;Qt!&lt;/font&gt;&lt;/h2&gt;&#8221;);<br />
label-&gt;show();<br />
return app.exec();<br />
}</em></strong></p>
<p>Como podrán darse cuenta, cambiamos la línea que contiene</p>
<p><strong><em>QLabel *label = new QLabel(&#8220;Hello Qt!&#8221;); </em></strong></p>
<p>por</p>
<p><strong><em>QLabel *label = new QLabel(&#8220;&lt;h2&gt;&lt;i&gt;Hello&lt;/i&gt; &#8220;<br />
&#8220;&lt;font color=red&gt;Qt!&lt;/font&gt;&lt;/h2&gt;&#8221;); </em></strong></p>
<p>Con esta simple modificación obtuvimos la siguiente aplicación.</p>
<p align="center"><a href="http://angelclasico.wordpress.com/2007/12/04/otro-ejemplo-qt4-mas-divertido/24/" rel="attachment wp-att-24" title="helloqt-fun.png"><img src="http://angelclasico.files.wordpress.com/2007/12/helloqt-fun.png" alt="helloqt-fun.png" /></a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/angelclasico.wordpress.com/14/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/angelclasico.wordpress.com/14/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/angelclasico.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/angelclasico.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/angelclasico.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/angelclasico.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/angelclasico.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/angelclasico.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/angelclasico.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/angelclasico.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/angelclasico.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/angelclasico.wordpress.com/14/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=angelclasico.wordpress.com&blog=2189041&post=14&subd=angelclasico&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://angelclasico.wordpress.com/2007/12/04/otro-ejemplo-qt4-mas-divertido/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/97ec95f1116c9ef9851114fd8ae13a30?s=96&#38;d=identicon" medium="image">
			<media:title type="html">angelclasico</media:title>
		</media:content>

		<media:content url="http://angelclasico.files.wordpress.com/2007/12/helloqt-fun.png" medium="image">
			<media:title type="html">helloqt-fun.png</media:title>
		</media:content>
	</item>
		<item>
		<title>INSTALANDO DDCLIENT</title>
		<link>http://angelclasico.wordpress.com/2007/11/30/instalando-ddclient/</link>
		<comments>http://angelclasico.wordpress.com/2007/11/30/instalando-ddclient/#comments</comments>
		<pubDate>Fri, 30 Nov 2007 20:01:22 +0000</pubDate>
		<dc:creator>angelclasico</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[configuracion ddclient]]></category>
		<category><![CDATA[configuracion dns]]></category>
		<category><![CDATA[configuracion dyndns]]></category>
		<category><![CDATA[ddclient y apache]]></category>
		<category><![CDATA[ip dinamica]]></category>

		<guid isPermaLink="false">http://angelclasico.wordpress.com/2007/11/30/instalando-ddclient/</guid>
		<description><![CDATA[Hoy en la madrugada no continué escribiendo este artículo porque estaba cansadísimo, ahora continuaré.
Ya tenemos nuestro servidor apache, pero de nada nos servirá si cada vez que la empresa que nos provee internet (ISP) nos cambia la IP. Para ello la comunidad Libre ha desarollado muchas herramientas para &#8220;liberarnos&#8221; de estas situaciones.
 ddclient  hace [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=angelclasico.wordpress.com&blog=2189041&post=13&subd=angelclasico&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Hoy en la madrugada no continué escribiendo este artículo porque estaba cansadísimo, ahora continuaré.</p>
<p>Ya tenemos nuestro servidor apache, pero de nada nos servirá si cada vez que la empresa que nos provee internet (ISP) nos cambia la IP. Para ello la comunidad Libre ha desarollado muchas herramientas para &#8220;liberarnos&#8221; de estas situaciones.</p>
<p><strong><em> ddclient</em></strong>  hace lo siguiente:</p>
<p>Nos conecta a www.dyndns.com automáticamente cada cierto tiempo, cuando detecta que nuestro ISP nos cambió la IP envía la señal a www.dyndns.com y cambia la IP y la relaciona con nuestro nombre de dominio. Para explicarlo mas claro, pondré el ejemplo de nuestros números telefónicos, tu seguramente sabes de memoria el número telefónico de tu mamá tal vez sea 55551278 pero ¿Qué pasaría si alguna empresa chafa como telmex, le cambiara el número cada vez que quisiera?. Bueno pues si eso sucediera tendríamos resuelto el problema con ddclient que sería como un vigilante en el número telefónico de tu mamá y que corre a avisarte cuando el número de tu mamá fue cambiado y te dice el número nuevo es 55555555. Pues esta función es igual en las IP de los servidores con IP dinámica, instalamos ddclient y cuando nuestra IP cambia le dice a www.dyndns.com que cambió la IP y que lo relacione con nuestro nombre de dominio.</p>
<p>Ahora es bueno explicar que es www.dyndns.compara entenderlo mejor, las máquinas y los seres humanos nos comunicamos con lenguajes diferentes, nosotros para hablar el lenguaje de las máquinas sería complicado y las máquinas aún no las hemos desarrollado para que entiendan nuestro lenguaje y hagan las cosas que queramos. Bien cuando nosotros nos conectamos a la red, cada página o servidor de páginas tienen un número para localizarlas este número es IP fija o en su defecto y para los que somos mortales IP dínamica, para conectarse a mi pagina web que tiene IP dinámica es muy difícil porque cambia continuamente, pero si fuera fija (te cobran un dineral al mes por tener IP fija) entonces siempre que pongas el mismo número te llevará a la página de ese servidor.</p>
<p>Tomemos como ejemplo a www.google.com.mx ellos tienen IP fija y esa IP fija es 72.14.205.147 si tu pones este número en  la barra de direcciones de tu explorador iceweasel, firefox, netscape mozilla (por nombrar los mejores) te darás cuenta que abre la pagina de google aquí surge la pregunta ¿Qué es más fácil de recordar 72.14.205.147 ó www.google.com.mx? bien pues el primero es un lenguaje más fácil para la máquina pero no para el hombre y la segunda es más fácil para el hombre que para la máquina. Pues para eso sirve www.dyndns.com que nos brinda un nombre facil de recordar para los humanos, en mi caso yo decidí crear un nombre de dominio llamado angelclasico.ath.cx para relacionarlo con mi IP 148.125.1.25 que me da la empresa con la que contraté internet. Etonces la gente no va a tener que recordar mi IP sino angelclasicop.ath.cx y ese nunca va a cambiar.</p>
<p>Bien explicado lo anterior espero que le hayan entendido y sino fue así, pueden investigar más en internet, por ahora procederemos a instalar ddclient en el servidor, con el cual me conectaré remotamente con el programa que ya instalamos ssh y que ya explique anteriormente.</p>
<p><strong><em># sudo apt-get install ddclient</em></strong></p>
<p>Entonces me sale un menu donde me pide seleccionar un servicio y como yo tengo cuenta en www.dyndns.com pues elegí www.dyndns.com Posteriormente me pregunta los dominios que tengo registrados y que quiero relacionar con ddclient para que los actualice.</p>
<p><em><strong> DynDNS fully qualified domain names: </strong></em>angelclasico.ath.cx</p>
<p>y si tuviera varios dominios virtuales, entonces pongo separados por comas y sin espacios los nombres de dominio</p>
<p><em><strong> angelclasico.ath.cx,otrodominio.ath.cx,otrositio.ath.cx</strong></em></p>
<p>Posteriormente me pregunta</p>
<p><strong><em> Username for dynamic DNS service:</em></strong> escribir-mi-nombre-de-usuario-de-dyndns</p>
<p><strong><em>Password for dynamic DNS service:</em></strong> escribir-mi-password-de-usuario-de-dyndns</p>
<p><strong><em>Interface used for dynamic DNS service: <em>eth0</em></em></strong>  ¿Recuerdas que cuando instalaste el sistema base te preguntó que interfaz? Pues esa interfaz es la que vas a poner aqu, aunque normalmente siempre es la interfaz eth0 la que se pone.</p>
<p>En caso de que al instalar mediante apt-get install ddclient no les aparezca la pantalla que les pregunta todo esto, es simple configurar con nano.</p>
<p><strong><em># sudo nano /etc/ddclient.conf</em></strong></p>
<p><strong><em>daemon=300<br />
syslog=yes<br />
mail=angelclasico@gmail.com<br />
mail-failure=angelclasico@gmail.com<br />
pid=/var/run/ddclient.pid<br />
protocol=dyndns2<br />
use=if, if=eth0<br />
server=members.dyndns.org<br />
protocol=dyndns2<br />
login=</em><em>escribir-mi-nombre-de-usuario-de-dyndns</em></strong><strong><em><br />
password=&#8217;</em><em>escribir-mi-password-de-usuario-de-dyndns-entre-comillas</em></strong><strong><em>&#8216;<br />
</em></strong><em><strong> angelclasico.ath.cx,otrodominio.ath.cx,otrositio.ath.cx</strong></em></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/angelclasico.wordpress.com/13/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/angelclasico.wordpress.com/13/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/angelclasico.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/angelclasico.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/angelclasico.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/angelclasico.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/angelclasico.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/angelclasico.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/angelclasico.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/angelclasico.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/angelclasico.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/angelclasico.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=angelclasico.wordpress.com&blog=2189041&post=13&subd=angelclasico&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://angelclasico.wordpress.com/2007/11/30/instalando-ddclient/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/97ec95f1116c9ef9851114fd8ae13a30?s=96&#38;d=identicon" medium="image">
			<media:title type="html">angelclasico</media:title>
		</media:content>
	</item>
		<item>
		<title>DOMINIOS VIRTUALES EN APACHE2</title>
		<link>http://angelclasico.wordpress.com/2007/11/30/dominios-virtuales-en-apache2/</link>
		<comments>http://angelclasico.wordpress.com/2007/11/30/dominios-virtuales-en-apache2/#comments</comments>
		<pubDate>Fri, 30 Nov 2007 10:12:19 +0000</pubDate>
		<dc:creator>angelclasico</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[apache2]]></category>
		<category><![CDATA[configuracion]]></category>
		<category><![CDATA[dominios virtuales]]></category>

		<guid isPermaLink="false">http://angelclasico.wordpress.com/2007/11/30/dominios-virtuales-en-apache2/</guid>
		<description><![CDATA[Después de tanto buscar y buscar, por fin pude configurar mis dominios virtuales, cuando ya se sabe hacer esto resulta muy fácil, pero cuando ya pasó mucho tiempo y no ves resultados, te desesperas un poco.
Aquí está la manera de como tener varios dominios virtuales, en lenguaje mortal como tener varios servidores con una sola [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=angelclasico.wordpress.com&blog=2189041&post=12&subd=angelclasico&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Después de tanto buscar y buscar, por fin pude configurar mis dominios virtuales, cuando ya se sabe hacer esto resulta muy fácil, pero cuando ya pasó mucho tiempo y no ves resultados, te desesperas un poco.</p>
<p>Aquí está la manera de como tener varios dominios virtuales, en lenguaje mortal como tener varios servidores con una sola IP ej. www.misitio1.com www.misitio2.com www.misitio3.com etc en una misma máquina.</p>
<p>Debemos tener en cuenta  que es muy importante la carpeta <strong><em>/etc/apache2/sites-available</em><em> </em></strong>ahí se fundamenta toda la estructura de  los dominios virtuales, ahi existe un archivo llamado <strong><em>default</em></strong> que es un ejemplo de un dominio virtual, yo no etendí que ese era un dominio virtual, tampoco le entendí al código o parámetros pero con un poco mas de práctica creo que lo puedo dominar sin problemas.  Pues este archivo, es en pocas palabras un dominio virtual que representaría a algo así como www.default.com y ahora nosotros crearemos nuestros dominios virtuales.</p>
<p>En mi caso decidí hacer mi dominio angelclasico y mediante la consola de comandos hice mi dominio virtual angelclasico</p>
<p><strong><em># sudo nano /etc/apache2/sites-available</em><em>/angelclasico</em></strong></p>
<p>Cuando abrió nano, me hice la vida lo mas sencilla que pude y establecí los parámetros muy sencillos comparados con el dominio virtual default que se encuentra como lo dice su nombre por default.<br />
<strong><em>NameVirtualHost *:80<br />
&lt;VirtualHost *:80&gt;<br />
ServerAdmin angelclasico@gmail.com<br />
ServerName http://angelclasico.ath.cx<br />
DocumentRoot /home/angelclasico<br />
ErrorLog /home/uoc_error_log<br />
TransferLog /home/uoc_access_log<br />
&lt;/VirtualHost&gt;</em></strong></p>
<p>Con CTRL+O (vocal) guarde los cambios y listo, solo me faltaba darlo de alta para que apache2 lo reconociera como dominio virtual y cuando alguien escribiera http://angelclasico.ath.cx en su explorador, no se fuera al dominio default, en este caso se dirigiría buscando por primera instancia en la carpeta  <em><strong>/home/angelclasico</strong></em></p>
<p>Para darlo de alta tuve que cambiarme de directorio a:</p>
<p>#<strong><em> cd </em><em>/etc/apache2/sites-available</em><em>/angelclasico</em></strong></p>
<p><strong><em># sudo a2ensite angelclasico</em></strong></p>
<p><strong><em>#  sudo /etc/init.d/apache2 force-reload</em></strong></p>
<p>Para entender el comando a2 significa apache2, en significa enabled (activado) y por último site significa sitio. Ahora con esta configuración cuando escriba la dirección http://angelclasico.ath.cx  en algún navegador web, me dirigirá hacia  el sitio de angelclasico. Claro que para que probar que funcionara tuve que darme de alta en  www.dyndns.com para  enlazar  angelclasico.ath.cx con la IP  dinámica que tengo. y al mismo tiempo en la carpeta /home/angelclasico/  puse un archivo llamado  index.html para que me mostrara que funciona mi dominio virtual sin problema.</p>
<p>La linea que contiene las palabras force-reloaded es para forzar a apache2 a que vuelva como a reiniciarse, en este caso sería como recargarse con los nuevos parametros.</p>
<p>Si quiero agregar otro dominio virtual, simplemente repito los pasos que hice para angelclasico y  activo mi sitio. También es importante mencionar que el dominio virtual default no me sirve y entonces tengo que desactivarlo y eso lo logro con el siguiente comando.</p>
<p><strong><em># sudo a2dissite default</em></strong></p>
<p>Y automáticamente queda desabilitado a2 significa apache2, dis sinifica disabled y site significa sitio.</p>
<p>Ya es muy tarde, estoy cansado y tengo que dormir, pero adelantaré el siguiente paso porque es importante, muy importante ya que todos nosotros los mortales, tenemos IP Dinámica y para dirigir nuestro nombre de dominio a una dirección numérica que cambia, tendremos que darnos de alta en algún servidor gratuito de DNS como www.dyndns.com para que cuando nuestra IP cambie, pues www.dyndns.com actualice nuestra IP y la asocie con nuestro nombre de dominio. disculpen por la redundancia, pero escribo esto porque hay gente que no entiende muchos tecnicismos y tengo que ser como un DNS que traduce los tecnicismos a palabras mas sencillas.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/angelclasico.wordpress.com/12/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/angelclasico.wordpress.com/12/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/angelclasico.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/angelclasico.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/angelclasico.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/angelclasico.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/angelclasico.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/angelclasico.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/angelclasico.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/angelclasico.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/angelclasico.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/angelclasico.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=angelclasico.wordpress.com&blog=2189041&post=12&subd=angelclasico&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://angelclasico.wordpress.com/2007/11/30/dominios-virtuales-en-apache2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/97ec95f1116c9ef9851114fd8ae13a30?s=96&#38;d=identicon" medium="image">
			<media:title type="html">angelclasico</media:title>
		</media:content>
	</item>
		<item>
		<title>INSTALANDO SSH PARA TENER ACCESO REMOTO</title>
		<link>http://angelclasico.wordpress.com/2007/11/29/instalando-ssh-para-tener-acceso-remoto/</link>
		<comments>http://angelclasico.wordpress.com/2007/11/29/instalando-ssh-para-tener-acceso-remoto/#comments</comments>
		<pubDate>Thu, 29 Nov 2007 21:41:22 +0000</pubDate>
		<dc:creator>angelclasico</dc:creator>
				<category><![CDATA[Apache]]></category>

		<guid isPermaLink="false">http://angelclasico.wordpress.com/2007/11/29/instalando-ssh-para-tener-acceso-remoto/</guid>
		<description><![CDATA[Como se habrán dado cuenta, ya intalamos nuestro servidor apache con soporte para MySQL PHP, MyWEBADMIN principalmente, poco a poco iremos integrando los paquetes que vayamos necesitanto.
Ahora es momento de instalar ssh para tener acceso remoto desde cualquier parte del mundo. Para iniciar la instalación comenzaremos en la línea de comandos.
$ sudo ap-get install ssh
Es [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=angelclasico.wordpress.com&blog=2189041&post=10&subd=angelclasico&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Como se habrán dado cuenta, ya intalamos nuestro servidor apache con soporte para MySQL PHP, MyWEBADMIN principalmente, poco a poco iremos integrando los paquetes que vayamos necesitanto.</p>
<p>Ahora es momento de instalar ssh para tener acceso remoto desde cualquier parte del mundo. Para iniciar la instalación comenzaremos en la línea de comandos.</p>
<p><strong><em>$ sudo ap-get install ssh</em></strong></p>
<p>Es importante que en tu maquina-servidor salgas con el comando <strong><em>exit</em></strong>, esto es para que evites husmeadores. Ahora que ya está instalado, podremos  accesar a este servidor desde cualquier parte del mundo donde haya una conexión a internet. En mi caso como este servidor se encuentra a mi lado y tiene una IP interna, lo que haré será teclear el siguiente comando.</p>
<p><strong><em> # ssh 192.168.1.101</em></strong></p>
<p>Les pedirá el usuario, la contraseña y entonces es como si estuvieran físicamente usando esa maquina, cualquier comando que ustedes apliquen en la consola, afectará directamente a la que se están conectando.</p>
<p>Si les aparece algún mensaje como el siguiente</p>
<p><strong><em>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<br />
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @<br />
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<br />
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!<br />
Someone could be eavesdropping on you right now (man-in-the-middle attack)!<br />
It is also possible that the RSA host key has just been changed.<br />
The fingerprint for the RSA key sent by the remote host is<br />
7d:36:2c:ce:f4:e6:b0:ca:d9:2d:76:b6:04:23:8r:81.<br />
Please contact your system administrator.<br />
Add correct host key in /home/mi-usuario/.ssh/known_hosts to get rid of this message.<br />
Offending key in /home/mi-usuario/.ssh/known_hosts:2<br />
RSA host key for 192.168.1.01 has changed and you have requested strict checking.<br />
Host key verification failed.</em></strong></p>
<p>Es porque algo anda mal, alguien se conecto a su máquina y podría estar espiando, solo es modificar unas líneas en unos archivos y listo, el problema podría quedar solucionado y eso se hace así.</p>
<p>La línea de arriba que dice  <strong><em>known_hosts:2</em></strong> nos está menciona que del archivo <strong><em>/home/mi-usuario/.ssh/known_hosts </em></strong>debemos eliminar la línea 2 y con eso se corrige el la conexión ssh.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/angelclasico.wordpress.com/10/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/angelclasico.wordpress.com/10/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/angelclasico.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/angelclasico.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/angelclasico.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/angelclasico.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/angelclasico.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/angelclasico.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/angelclasico.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/angelclasico.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/angelclasico.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/angelclasico.wordpress.com/10/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=angelclasico.wordpress.com&blog=2189041&post=10&subd=angelclasico&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://angelclasico.wordpress.com/2007/11/29/instalando-ssh-para-tener-acceso-remoto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/97ec95f1116c9ef9851114fd8ae13a30?s=96&#38;d=identicon" medium="image">
			<media:title type="html">angelclasico</media:title>
		</media:content>
	</item>
		<item>
		<title>Instalando un servidor Apache en debian.</title>
		<link>http://angelclasico.wordpress.com/2007/11/28/instalando-un-servidor-apache-en-debian/</link>
		<comments>http://angelclasico.wordpress.com/2007/11/28/instalando-un-servidor-apache-en-debian/#comments</comments>
		<pubDate>Wed, 28 Nov 2007 10:57:01 +0000</pubDate>
		<dc:creator>angelclasico</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[apache2 servidor instalación configuración debian-etc]]></category>

		<guid isPermaLink="false">http://angelclasico.wordpress.com/2007/11/28/instalando-un-servidor-apache-en-debian/</guid>
		<description><![CDATA[AVISO IMPORTANTE: Toda instalación es configurable después de la misma, así que no tengan temor de lo que vaya a suceder.
El primer paso que hago es descargar el disco mínimo para instalar vía red. Este disco lo descargo de la web de www.debian.org en donde están los isos o imágenes, descargo el disco que se [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=angelclasico.wordpress.com&blog=2189041&post=8&subd=angelclasico&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>AVISO IMPORTANTE: Toda instalación es configurable después de la misma, así que no tengan temor de lo que vaya a suceder.</p>
<p>El primer paso que hago es descargar el disco mínimo para instalar vía red. Este disco lo descargo de la web de www.debian.org en donde están los isos o imágenes, descargo el disco que se llama netinstall y lo quemo.</p>
<p>Inserto el disco en el CDROM de la máquina donde instalaré el servidor apache, es importante decir que este será un servidor dedicado y que todos los datos se borrarán.</p>
<p>Arranco la máquina y le digo que me bootee desde el CDROM, para los que no saben esto significa que buscará algun sistema tomando buscando por inicio en el CDROM. Si no saben como hacerlo, busquen en internet bootear desde CDROM.</p>
<p>Iniciamos seleccionando el Lenguaje en que instalaremos, yo escojo Español porque ese es el idioma que hablo (que siendo correctos se debería decir castizo) y doy ENTER.</p>
<p>Ahora selecciono mi país que en mi caso es México y doy ENTER.</p>
<p>Escojo una localización en mi caso aparecen</p>
<p><strong><em>es_MX.UTF-8</em></strong></p>
<p><strong><em>es_MX</em></strong></p>
<p>Decido escoger la que sea, no importa y después me dice que que idiomas quiero elegir para darme soporte, en mi caso no escojo ninguno y continuo.</p>
<p>Ahora me pide establecer la distribución de mi teclado y decido por Español.</p>
<p>Me empieza a detectar la red y muestra que tengo dos tarjetas de red ethernet, entonces elijo siempre la opción <strong><em>eth0</em></strong></p>
<p>Posteriormente comienza a configurar la red via DHCP y siempre me dice que <strong><em>produjo un fallo al ralizar la configuracion automatica</em></strong> no le hago caso y doy continuar y puedo dejarlo para después usando la opción <strong><em>No configurar la red en este momento</em></strong> pero es mejor configurarla manualmente, si desean configurarla tendrán que hacer lo siguiente.</p>
<p>Me aparece un menú donde aparece la opción <strong><em>Configurar la red manualmente</em></strong>  y me pide la Dirección IP esto significa que esa será la IP interna que usará de manera fija dentro de una red. Lo normal es siempre cambiar el último número (creo que le llaman octeto si me equivo lo siento) y lo mejor es que le llamen como lo establezco <em><strong>192.168.1.100</strong></em></p>
<p>La siguiente opción aparece sola <strong><em>Mascara de Red</em></strong>  por defecto deberá ser <strong><em>255.255.255.0</em></strong> en caso de que no aparezca esta, entonces pónganla.</p>
<p>Viene otra opción que se llama <strong><em>Pasarela</em></strong>  también el parametro aparece solo, aquí si es importante saber esta opción, ya que esto se refiere a la IP del router de nuestro Proveedor de Internet (ISP) Infinitum usa la pasarela 192.168.1.54 si no mal recuerdo y la gran mayoría utiliza el 192.168.1.1 así que deben investigarlo poniendo en su navegador alguna de estas dos y si aparece una pagina web de su ISP con información de su router entonces pongan esta dirección. En mi caso la Pasarela es <strong><em>192.168.1.1</em></strong> lo mas común.</p>
<p>Viene otra opción <em><strong>Direcciones de Servidores de Nombres</strong></em> 192.168.1.1</p>
<p><strong><em>Nombre de la Máquina</em></strong>  Siempre viene por defecto debian pero sean ingeniosos y pongale un nombre atractivo, yo le puse FPSOR-LDKS.</p>
<p><strong><em>Nombre de Dominio</em></strong> Esta opción aparece nuevamente pero no es la misma de la configuración DHCP por lo tanto esta se queda en blanco.</p>
<p><strong><em>Escoja una Réplica Debian</em></strong>  Esto es para descargar el soft que necesitemos, yo antes usaba el de México (nisamox) pero después me gusto mucho la réplica de Francia y decidí hacerlo así, ustedes decidan.</p>
<p>Posteriormente les pide que seleccionen la réplica de algunos de los servidores que hay en el país que escogieron, yo me quedé con Francia y escogí  <strong><em>ftp.fr.debian.org</em></strong>  porque es la que mas me resuelto los problemas cuando necesito resolverlos.</p>
<p><strong><em>Información de proxy HTTP</em></strong>  lo dejo en blanco, ¿Porqué? porque así lo quise y a continuación comienza a trabajar la máquina, por eso pongo <em><strong>Trabaja</strong></em>.</p>
<p><strong><em>Trabaja Comprobando la réplica</em></strong></p>
<p><strong><em>Escoger la replica Debian</em></strong>  prefiero escoger la opción <strong><em>stable</em></strong> que ya fue probada.</p>
<p><strong><em>Trabaja Cargando Componentes adicionales</em></strong></p>
<p>Si en algún momento les aparece <strong><em>Réplica Debian no Existente</em></strong> se debe a que no fue configurado correctamente <strong><em>DHCP</em></strong> y la opción <strong><em>Direcciones de Servidores de nombres</em></strong> la pudieron dejar con algún parámetro no correcto, siendo que debe dejarse como lo establecí anteriormente. De la misma manera si se queda trabada la máquina en <strong><em>Cargando Componentes Adicionales</em></strong>, solamente reinicien la instalación y repitan los pasos descritos previamente.</p>
<p>En caso de que no se pueda conectar la máquina a ninguna réplica, no se preocupen después lo cofiguraremos correctamente.</p>
<p><strong><em> Particionado de Discos</em></strong> Utilizo la opcion Guiado &#8211; utilizar todo el disco, en este paso se borrará toda la información contenida en su disco.</p>
<p>Selecciono el disco que deseo particionar y selecciono la opción <strong><em>Guiado &#8211; Utilizar todo el disco</em></strong>  porque es la que mas me conviene ¿Porqué? Porque así lo decidí, así que continuemos porque esto no nos interesa tanto, para esta saber mas de esto pueden buscar mas información en otra web del porque.</p>
<p><strong><em>Todos los ficheros en una partición (Recomendado para novatos)</em></strong>. Así que selecciono esta opción y acepto <strong><em>Finalizar el particionado y escribir los cambios en el disco.</em></strong></p>
<p><strong><em>¿Desea escribir los cambios en los discos?</em></strong> Le doy en la opción <em><strong>Si </strong></em>y entonces comienza el borrado de los datos contenidos en el Disco Duro.</p>
<p><strong><em>Configurar la zona horaria</em></strong>  Pues como escogí México y vivo en el distrito Federal, entonces selecciono la que mas me conviene.</p>
<p><strong><em>Clave del superusuario</em></strong> En esta opción elijo una clave un poco larga y sin sentido para evitar intrusos y que mi clave sea más difícil de descifrar, yo decidí escogerla con letras, números y caracteres especiales, dando un total de 16 caracteres y me pide reingresar la clave para comprobar que la escribí igual que la primera.</p>
<p><em><strong>Nombre completo para el nuevo usuario</strong></em>  Entonces escribo mi nombre separado de un espacio Juan Perez sin acentos.</p>
<p><strong><em>Nombre del usuario para la cuenta</em></strong>  Se me antojo ponerle juanitobodoque, aquí si que no están permitidos los espacios.</p>
<p><strong><em>Establecer contraseña</em></strong> Me piden que escriba la contraseña de mi usuario juanitobodoque y  confirmarla para que no me equivocara.</p>
<p><strong><em>Instalando el sistema base</em></strong>  En este momento comienza la instalación del sistema. Se puede tardar un poco, pero dejen trabajar su maquinita.</p>
<p>Como estamos instalando nuestro sistema por red, entonces nuestra instalación puede tardar un poco y dependerá de la velocidad de descarga que tengas contratada con tu ISP. Te recomiendo entonces ir a traer un cafecito, una cervecita o algo para distraerte mientras se descargan todos los programas. Aunque también para hacerme publicidad, podrían ver algunos de mis videos que tengo en youtube y de los cuales les dejo los enlaces para que los miren mientras se instala su sitema base de Debian Linux, les pido que voten para que pueda darme una idea si les gustaron o no.</p>
<p>http://www.youtube.com/results?search_query=angelclasico&amp;search=Search</p>
<p><strong><em> Configuración de Popularity-contest</em></strong>  Esta opción envía estadísticas a los programadores del mundo GNU y yo decidí activarla en agradecimiento a todo lo que han desarrollado y que el día de hoy me sirve tanto.</p>
<p><strong><em>Seleccionar e instalar programas</em></strong>  Solo instalo el sistema estandar porque quiero dejar lo mas limpio posible mi servidor casero.</p>
<p><em><strong>instalacion completada</strong></em>  Selecciono continuar.</p>
<p>Reinicia el sistema y saco el disco de la charola para que no se vuelva a instalar el sistema</p>
<p>Bien hemos conseguido instalar el sistema base sobre el cual correra nuestro servidor.</p>
<p>Login: juanitobodoque</p>
<p>Pass: ****************</p>
<p>Con esto ya debí haber ingresado al sistema, ahora me convierto en root (administrador) para que pueda instalar todos los programas necesarios.</p>
<p>El primer programa a instalar es sudo escribiendo en la línea de comandos</p>
<p># apt-get install sudo</p>
<p>Ejecuto la siguiente línea para actualizar la lista de programas, archivos y todo lo nuevo que haya instalado, para que pueda localizarlos con el comando locate.</p>
<p># updatedb</p>
<p>Ahora localizo el archivo sudoers  mediante la línea de comandos</p>
<p># locate sudoers</p>
<p>Modifico el archivo para darle privilegios al único usuario existente aparte del root.</p>
<p># nano  /etc/sudoers</p>
<p>Agrego la siguiente línea al final del documento que me dará privilegios para modificar muchas cosas sin que tenga que entrar con la cuenta de root, ya que entrar con el root a realizar tareas cuando estás en internet, pues te trae muchos problemas de seguridad.</p>
<p>juanitobodoque    ALL=(ALL) ALL</p>
<p>Presionas la tecla Ctrl+O (vocal o) para guardar los cambios y luego presionas ENTER, con esto se guardan los cambios y para salir presionas Ctrl+X.</p>
<p>Ya fuera de nano (editor de textos) ejecutas el comando exit, para salir de la cuenta root.  Ahora quedas con la cuenta juanitobodoque que ya posee privilegios.</p>
<p>Es hora de comenzar a instalar todo lo necesario para nuestro servidor web casero con pintas profesionales.</p>
<p>$ sudo apt-get install apache2</p>
<p>Y comienza a instalar apache2 que es nuestro servidor web, esto tardará un poco dependiendo la velocidad de transferencia y recepción de tu conexión a internet.</p>
<p>Ahora procederemos a instalar php4 para tener un servidor con todo lo necesario.</p>
<p>$ sudo apt-get install php4</p>
<p>Comienza la instalación de php5</p>
<p>Posteriormente instalaremos nuestro soft base de datos y otras aplicaciones para poder manejarlas de mejor manera.</p>
<p>$ sudo apt-get install mysql-client</p>
<p>$ sudo apt-get install mysql-admin</p>
<p>$ sudo apt-get install mysql-query-browser</p>
<p>$ sudo apt-get install phpmyadmin</p>
<p>Bien pues ya casi está listo nuestro sistema para ser usado, lo que falta es configurar los programas para que funcionen bien, pero eso lo explicaré en otro post porque es muy tarde y tengo que dormir.</p>
<p>Solo para que vean que su servidor apache funciona, en la barra de direcciones de su explorador favorito tecleen la IP que ingresaron al configurar DHCP que en mi caso fue 192.168.1.101 y deberá leerse la frase IT WORKS, que significa que está trabajando.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/angelclasico.wordpress.com/8/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/angelclasico.wordpress.com/8/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/angelclasico.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/angelclasico.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/angelclasico.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/angelclasico.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/angelclasico.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/angelclasico.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/angelclasico.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/angelclasico.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/angelclasico.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/angelclasico.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=angelclasico.wordpress.com&blog=2189041&post=8&subd=angelclasico&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://angelclasico.wordpress.com/2007/11/28/instalando-un-servidor-apache-en-debian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/97ec95f1116c9ef9851114fd8ae13a30?s=96&#38;d=identicon" medium="image">
			<media:title type="html">angelclasico</media:title>
		</media:content>
	</item>
		<item>
		<title>Explicando un código Qt4 sencillo</title>
		<link>http://angelclasico.wordpress.com/2007/11/24/aprendiendo-qt4/</link>
		<comments>http://angelclasico.wordpress.com/2007/11/24/aprendiendo-qt4/#comments</comments>
		<pubDate>Sat, 24 Nov 2007 07:43:27 +0000</pubDate>
		<dc:creator>angelclasico</dc:creator>
				<category><![CDATA[Qt4]]></category>
		<category><![CDATA[]]></category>
		<category><![CDATA[código qt4]]></category>
		<category><![CDATA[ejemplos qt4]]></category>

		<guid isPermaLink="false">http://angelclasico.wordpress.com/2007/11/24/aprendiendo-qt4/</guid>
		<description><![CDATA[Estudiando un poco pude entender algunas cosas que significaban del código anterior, trataré de explicar ahora un poco mas profundamente.
El programa que hice fue muy sencillo (mas bien que copie), trataré de explicarlo línea por línea.
1 #include &#60;QApplication&#62;
2 #include &#60;QLabel&#62;
3 int main(int argc, char *argv[])
4 {
5     QApplication app(argc, argv);
6   [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=angelclasico.wordpress.com&blog=2189041&post=7&subd=angelclasico&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Estudiando un poco pude entender algunas cosas que significaban del código anterior, trataré de explicar ahora un poco mas profundamente.</p>
<p>El programa que hice fue muy sencillo (mas bien que copie), trataré de explicarlo línea por línea.</p>
<p><em><strong>1 #include &lt;QApplication&gt;<br />
2 #include &lt;QLabel&gt;<br />
3 int main(int argc, char *argv[])<br />
4 {<br />
5     QApplication app(argc, argv);<br />
6     QLabel *label = new QLabel(&#8220;Hello Qt!&#8221;);<br />
7     label-&gt;show();<br />
8     return app.exec();<br />
9 }<br />
</strong></em></p>
<p>La línea 1 y 2 incluyen definiciones de las clases <strong><em>QApplication</em></strong> y <strong><em>QLabel</em></strong>. Cada clase deberá tener una cabecera, es decir, deberá tener una indicación al inicio del código con el mismo nombre.</p>
<p>La línea 5 <em><strong>QApplication</strong></em> crea un objeto gráfico y requiere de <em><strong>argc</strong></em> y <strong><em>argv</em></strong> no se para que pero los necesita, tal vez después lo entienda. Botones, menús, scroll bars y frames son ejemplos de Widgets que a su vez pueden contener otros Widgets</p>
<p>Línea 6 crea un Widget (Elemento gráfico en una interfaz de usuario) que mostrará &#8220;Hello QT!&#8221;</p>
<p>Linea 7 hará que el widget sea visible, debemos activalrlo para ello, ya que los Widgets siempre son invisibles.</p>
<p>Línea 8 Este es un tipo de &#8220;Stand By&#8221; donde el programa se queda esperando las acciones que vaya a tomar el usuario y que hayan sido definidas en el código. Una acción puede ser un &#8220;click&#8221; pero si este &#8220;click&#8221; no está definido en el código, este no responderá.</p>
<p>La aplicación generada es la siguiente.</p>
<p align="center"><a href="http://angelclasico.wordpress.com/2007/11/24/aprendiendo-qt4/17/" rel="attachment wp-att-17" title="hello-qt.png"><img src="http://angelclasico.files.wordpress.com/2007/12/hello-qt.png" alt="hello-qt.png" /></a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/angelclasico.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/angelclasico.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/angelclasico.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/angelclasico.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/angelclasico.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/angelclasico.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/angelclasico.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/angelclasico.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/angelclasico.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/angelclasico.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/angelclasico.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/angelclasico.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=angelclasico.wordpress.com&blog=2189041&post=7&subd=angelclasico&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://angelclasico.wordpress.com/2007/11/24/aprendiendo-qt4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/97ec95f1116c9ef9851114fd8ae13a30?s=96&#38;d=identicon" medium="image">
			<media:title type="html">angelclasico</media:title>
		</media:content>

		<media:content url="http://angelclasico.files.wordpress.com/2007/12/hello-qt.png" medium="image">
			<media:title type="html">hello-qt.png</media:title>
		</media:content>
	</item>
		<item>
		<title>Aprendiendo Qt4</title>
		<link>http://angelclasico.wordpress.com/2007/11/24/aprendiendo-qt4-2/</link>
		<comments>http://angelclasico.wordpress.com/2007/11/24/aprendiendo-qt4-2/#comments</comments>
		<pubDate>Sat, 24 Nov 2007 02:49:43 +0000</pubDate>
		<dc:creator>angelclasico</dc:creator>
				<category><![CDATA[Qt4]]></category>

		<guid isPermaLink="false">http://angelclasico.wordpress.com/2007/11/24/aprendiendo-qt4-2/</guid>
		<description><![CDATA[Escribiré mis aprendizajes sobre Qt4, en realidad se nada de este, pero creo que es genial  este soft GNU. Decidí empezar a aprender a usarlo porque he programado scripts en bash, pero mis necesidades se han hecho mas grandes para crear aplicaciones en linux que me ayuden a llevar a cabo lo que necesito.
Hay [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=angelclasico.wordpress.com&blog=2189041&post=4&subd=angelclasico&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Escribiré mis aprendizajes sobre Qt4, en realidad se nada de este, pero creo que es genial  este soft GNU. Decidí empezar a aprender a usarlo porque he programado scripts en bash, pero mis necesidades se han hecho mas grandes para crear aplicaciones en linux que me ayuden a llevar a cabo lo que necesito.</p>
<p>Hay muchos términos que no manejo, así que trataré de escribir lo mas claramente posible, por ello daré una advertencia, seguramente cometeré muchos errores, así que es mejor que lean cada post en su totalidad antes de hacer las cosas para que no cometan los mismos errores que yo. Este blog es creado al vuelo.</p>
<p>Inicio usando Qt4 en puro código, según los manuales para aprender la verdad de Qt4, así que inicio con un archivo en blanco de texto usando kate.</p>
<p>La siguiente línea, siempre deberá ir escrita para cada archivo Qt4, tal como lo es la linea que se usa en el inicio para los scripts en bash (<em>#!/bin/bash)</em></p>
<p><strong><em>#include &lt;QApplication&gt;</em></strong></p>
<p>La siguiente línea me imagino que es para indicarle que usaremos botones en nuestra futura aplicación.</p>
<p><strong><em>#include &lt;QPushButton&gt;</em></strong></p>
<p>Hay un famoso ejemplo llamado &#8220;hola mundo&#8221; del cual ya me harte y crearé el mismo código, pero este lo llamaré &#8220;Test&#8221;.</p>
<p>Copiaré tal y cual el programa que hay en un manual:</p>
<p><strong><em>#include &lt;QApplication&gt;<br />
#include &gt;QPushButton&gt;</em></strong></p>
<p><strong><em>int main(int argc, char *argv[])<br />
{<br />
AQpplication app(argc, argv);<br />
QPushButton hello(&#8220;¡TEST!&#8221;);<br />
hello.resize(100, 30);</em></strong></p>
<p><strong><em>hello.show();<br />
return app.exec();<br />
}</em></strong></p>
<p>Hasta este momento no se que significan muchas cosas que dice el código, el manual dice que significa cada una pero con muchos tecnicismos que aún no entiendo, asi que ire explorando, a fin de cuentas lo que ahorita quiero hacer es, crear un código y ejecutarlo de tal manera que se vea en un widget (ventanita) como el boton de &#8220;TEST&#8221;, que no servirá sino como ejemplo, porque en realidad hace nada.</p>
<p>Despues de haberlo escrito en kate (editor de texto) lo guardo como <em>test.ui</em> porque con esa extensión se guarda cuando usas Qt4 en el modo grafico. Ahora me voy a la consola de comandos y en el directorio donde tengo el archivo <em>test.ui</em> y lo compilo (convertirlo de órdenes humanas a órdenes de máquina) mediante los comandos siguientes:</p>
<p><strong><em>$qmake -project</em></strong></p>
<p><strong><em>$qmake</em></strong></p>
<p><strong><em>$make</em></strong></p>
<p>Vaya, creo que no me fue bien, no se porque me lanzó un error.</p>
<p><strong><em>/usr/bin/uic-qt4 test.ui -o ui_test.h<br />
File &#8216;test.ui&#8217; is not valid<br />
make: *** [ui_test.h] Error 1</em></strong></p>
<p>Ahora para probar, guardaré mi texto creado en kate como <em>test</em> pero sin extensión para ver que sucede.</p>
<p>Vuelvo a ejecutar:</p>
<p><strong><em>$qmake -project</em></strong></p>
<p><strong><em>$qmake</em></strong></p>
<p><strong><em>$make</em></strong></p>
<p><strong><em>make: No se hace nada para `first&#8217;.</em></strong></p>
<p>Tampoco terminó bien, ahora me imagino que mi código (texto en kate) ha de tener algun error por ahí. Me doy cuenta que pierdo mucho tiempo en escribir, me gustaría que mi pensamiento se escribiera automáticamente en este blog, pero esto todavía no es posible, tal vez cuando sea un experto en programación lo pueda desarrollar. Por el momento tendré que seguir escribiendo, para que a algún buen linuxero se le facilite la vida.</p>
<p>Lo dicho, estaba mal en el codigo que copie:</p>
<p>escribí</p>
<p><strong><em>AQpplication app(argc, argv);</em></strong></p>
<p>debería ser así</p>
<p><strong><em>QApplication app(argc, argv);</em></strong></p>
<p>Fueron creados algunos archivos cuando compile y ahora borro todos los archivos que fueron creados, menos <em>test</em> para que no me vaya a crear ningun problema, porque en algún momento no los borré y traté de compilar nuevamente y la consola de comandos empezó a crear archivos como loca.</p>
<p>Me volvío a sacar el error:</p>
<p><strong><em>$ qmake -project<br />
$ qmake<br />
$ make<br />
make: No se hace nada para `first&#8217;.</em></strong></p>
<p>Reviso nuevamente el codigo y me doy cuenta que otra linea esta mal, como lo copie a mano, cometí varios errores.</p>
<p>dice</p>
<p><strong>#include <em>&gt;QPushButton&gt;</em></strong></p>
<p>debería decir</p>
<p><strong><em>#include &lt;QPushButton&gt;</em></strong></p>
<p>Trato de compilar nuevamente y me vuelve a sacar otro error.</p>
<p><strong><em>$ qmake -project<br />
$ qmake<br />
$ make<br />
make: No se hace nada para `first&#8217;.</em></strong></p>
<p>Volví a revisar, ahora no encontre ninguna falta ortografica, solo le quite las lineas en blanco que estaban al final de <strong><em>}</em></strong> para ver si era eso, ya que en algunas ocasiones creando algunos scripts no querían funcionar solo por ese pequeño detalle.</p>
<p>Elimino los archivos que fueron creados y nuevamente compilo, a ver si ahora si funciona, esperemos que si.</p>
<p><strong><em>$ qmake -project<br />
$ qmake<br />
$ make<br />
make: No se hace nada para `first&#8217;.</em></strong></p>
<p>Mismo error, ahora en lugar de ejecutar</p>
<p><strong><em>$qmake -project</em></strong></p>
<p>escribiré</p>
<p><strong><em>$ qmake -project test</em></strong></p>
<p>Me lanza otro error:</p>
<p><strong><em> g++  -o ej     -L/usr/lib -lQtGui -lQtCore -lpthread<br />
/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/crt1.o: In function `_start&#8217;:<br />
../sysdeps/i386/elf/start.S:115: referencia a `main&#8217; sin definir<br />
collect2: ld returned 1 exit status<br />
make: *** [ej] Error 1</em></strong></p>
<p>Uff no se que decir, pero esto me esta diciendo algo que de plano no sé. Sigo leyendo el manual y me dice que guarde el archivo como <strong><em>main.cpp</em></strong> y que ejecute</p>
<p><strong>$<em>qmake -project</em></strong></p>
<p>y luego</p>
<p><strong><em>$qmake</em></strong></p>
<p>y por ultimo</p>
<p><em><strong>$make</strong> </em></p>
<p>Lo hago y</p>
<p><strong>$<em>qmake -project</em></strong></p>
<p>me crea un archivo llamado <em>ej.pro</em> me imagino que ej significa ejecutable, no lo se.</p>
<p>Ejecuto</p>
<p><strong>$<em>qmake</em></strong></p>
<p>Entonces esta orden me crea otro archivo llamado <em>Makefile</em> que segun el autor este comando toma el archivo <em>ej.pro</em> y en base a el crea <em>Makefile</em> de acuerdo al sistema operativo que estamos usando, por ultimo make que me crea la aplicación que tanto ansiaba junto con otro archivo llamado <em>test.o</em> que no sé para que sirve.</p>
<p>La aplicación es creada con el nombre <em>ej</em></p>
<p>Lo hago y espero que ahora si funcione&#8230;</p>
<p>¡Ajua! si funciono, ahora guardo el mismo código pero con el nombre de <em>test.cpp </em>solo para ver si tiene siempre se tiene que llamar <em>main</em> o le puedo cambiar el nombre, lo vuelvo a compilar y me doy cuenta que no importa como guarde el codigo, me creó la aplicación, solo que tengo que guardarlo con la extensión <em>.cpp . </em>También puedo predecir que debo copiar mi codigo en una carpeta de códigos que vaya haciendo o probando así como las aplicaciones creadas, porque parece ser que el compilador siempre creará la aplicacion con el nombre <em>ej</em> y este sustituirá o sobreescribirá a cualquiera que haya con este nombre.</p>
<p>RESUMEN DE MI PRIMERA EXPERIENCIA</p>
<ol>
<li>Usar cualquier editor de textos como kate, nano, o algun bloc de notas.</li>
<li> Revisar bien el codigo que escribo.</li>
<li>Guardarlo con extensión cpp</li>
<li>Mediante consola de comandos ejecutar</li>
<li>Copiar mi código y aplicacion en carpetas creadas para ello, ya que el compilador siempre creará la aplicación con el nombre <em>ej </em>y si hay alguna con el mismo nombre, entonces la sobrescribira.</li>
</ol>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/angelclasico.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/angelclasico.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/angelclasico.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/angelclasico.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/angelclasico.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/angelclasico.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/angelclasico.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/angelclasico.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/angelclasico.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/angelclasico.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/angelclasico.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/angelclasico.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=angelclasico.wordpress.com&blog=2189041&post=4&subd=angelclasico&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://angelclasico.wordpress.com/2007/11/24/aprendiendo-qt4-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/97ec95f1116c9ef9851114fd8ae13a30?s=96&#38;d=identicon" medium="image">
			<media:title type="html">angelclasico</media:title>
		</media:content>
	</item>
	</channel>
</rss>