<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7826351361307333984</id><updated>2024-08-31T11:06:46.414+02:00</updated><category term="Admin"/><category term="DES"/><category term="DWES"/><category term="Apache"/><category term="PHP"/><category term="Python"/><category term="Acerca de"/><category term="DWEC"/><category term="MySQL"/><category term="chrome"/><category term="db"/><category term="javascript"/><category term="linux"/><category term="oracle"/><category term="sFTP"/><category term="swap"/><category term="vim"/><category term="xdebug"/><title type='text'>Keep It Simple!</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://kismet010.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7826351361307333984/posts/default'/><link rel='alternate' type='text/html' href='http://kismet010.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Kismet</name><uri>http://www.blogger.com/profile/16025395445741058472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7826351361307333984.post-3750519322619201755</id><published>2013-02-21T20:21:00.004+01:00</published><updated>2013-02-21T20:21:39.460+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="DES"/><category scheme="http://www.blogger.com/atom/ns#" term="sFTP"/><title type='text'>sFTP</title><content type='html'>&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;iframe frameborder=&quot;0&quot; height=&quot;400&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://www.slideshare.net/slideshow/embed_code/16677954&quot; width=&quot;476&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kismet010.blogspot.com/feeds/3750519322619201755/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7826351361307333984/3750519322619201755' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7826351361307333984/posts/default/3750519322619201755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7826351361307333984/posts/default/3750519322619201755'/><link rel='alternate' type='text/html' href='http://kismet010.blogspot.com/2013/02/sftp.html' title='sFTP'/><author><name>Kismet</name><uri>http://www.blogger.com/profile/16025395445741058472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7826351361307333984.post-5579992704413633357</id><published>2012-12-16T13:53:00.000+01:00</published><updated>2012-12-16T14:04:01.130+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="DWES"/><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="vim"/><category scheme="http://www.blogger.com/atom/ns#" term="xdebug"/><title type='text'>Depurando PHP en (g)Vim con XDebug</title><content type='html'>&lt;br /&gt;
Antes de empezar comprueba que tu Vim ha sido compilado con soporte para Python&amp;nbsp;buscando +python y +signs en la salida de:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;pre&gt;$ vim --version&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
Si no es así, deberás compilarlo con el flag adecuado. Te recomiendo que, si estás en Debian/Ubuntu, pruebes primero gVim (Vim gráfico) puesto que éste sí me lo he encontrado en sus repositorios con soporte para Python.&lt;br /&gt;
&lt;br /&gt;
Instalamos el paquete XDebug, en ArchLinux sería:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;pre&gt;$ sudo pacman -Sy xdebug&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
Nos dirigim:os al fichero de configuración:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;pre&gt;# sudo /etc/php/conf.d/xdebug.ini&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
Y añadimos/modificamos estas líneas: (La última indica el autoinicio de la depuración. Es opcional)&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;pre&gt;zend_extension=/usr/lib/php/modules/xdebug.so&lt;/pre&gt;
&lt;pre&gt;xdebug.remote_enable=on

xdebug.remote_host=127.0.0.1

xdebug.remote_port=9000

xdebus.remote_handler=dbgp

xdebug.remote_autostart=1&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
Necesitamos un script para Vim. De los que he probado, &lt;a href=&quot;http://www.vim.org/scripts/script.php?script_id=2508&quot; target=&quot;_blank&quot;&gt;éste&lt;/a&gt; es el más simple:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;pre&gt;$ tar -xzvf debugger.tar.gz

$ cp plugin/debugger.* &amp;nbsp;~/.vim/plugin/&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
Con nuestro código abierto en Vim, pulsamos F5 y en el navegador nos dirigimos a&amp;nbsp;la página o la refrescamos. Debe hacerse en 10 segundos, así que será mejor que hayas mapeado alguna tecla para lanzar el navegador desde Vim. Tienes mi fichero de configuración en el enlace del menú, yo uso F12.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzxRa37V7rbTFWsf0pRKN6IQC2LiQhxmePQUbuWsdX3xZl_ODyihEJmfO9CTmrf8F-9kpZEWm1v7q5b1kxCSjEcxyMwlJdS4Atn12_bnLEdSatMh8s3Yo2TK7O6kbip09J9s3kYV1HTMY/s1600/Sin+nombre.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;321&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzxRa37V7rbTFWsf0pRKN6IQC2LiQhxmePQUbuWsdX3xZl_ODyihEJmfO9CTmrf8F-9kpZEWm1v7q5b1kxCSjEcxyMwlJdS4Atn12_bnLEdSatMh8s3Yo2TK7O6kbip09J9s3kYV1HTMY/s640/Sin+nombre.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Como puedes ver en la imagen (click para ampliar), a la derecha del código se han abierto 3 nuevos paneles. Arriba se muestra la salida de los comandos del depurador que ejecutes. En este caso, pulsando F11 he obtenido los valores de las variables. Abajo aparecerán los posibles errores y demás información importante. En medio, como puedes observar, se encuentra la lista de atajos de teclado disponibles. Te traduzco aquí los principales:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;F1 - Abrir/cerrar panel de depuración

F2 - Avanzar entrando en las funciones

F3 - Avanzar saltando las funciones

F12 - Inspeccionar la propiedad bajo el cursor

:Bp - Establecer/eliminar un punto de ruptura

F11 - Obtener contexto

F5 - Ejecutar el programa

:Up/:Dn - Subir/bajar la traza&lt;/pre&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
En mi caso, el proceso ha sido como sigue:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Abro el código en Vim (vim foo.php ó en modo normal :e foo.php) y pulso F12. Se abrirá Chromium.&lt;/li&gt;
&lt;li&gt;Pulso F2 para empezar a seguir el flujo del programa entrando en las funciones, si me quiero saltar alguna: F3.&lt;/li&gt;
&lt;li&gt;Me voy a la línea 40 (pulsando 40G) y en modo normal escribo :Bp para establecer un punto de ruptura donde quiero detener la ejecución normal para observar las variables.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Sigo pulsando F2/F3, Vim me muestra dónde me encuentro con la línea marcada (-&amp;gt;), en este caso la 38.&lt;/li&gt;
&lt;li&gt;Llegado al punto de ruptura, pulso F11 y en el panel superior izquierdo aparecerán las variables con su contenido actual.&lt;/li&gt;
&lt;li&gt;Una de ellas no se ha inicializado, por tanto escribo :Up para retroceder en el flujo del programa y observar cuál es el problema.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Este, en principio, es el procedimiento básico de depuración. Como véis, es muy fácil hacerlo con vuestro editor favorito. Disponéis de la documentación del script de Vim para profundizar.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Como apunte final, decir que existen extensiones para los navegadores que permiten hacer el proceso desde el navegador. Lamentablemente, ninguna soporta Vim, como era de esperar. Aunque si llevas algún tiempo con él, seguramente le habrás cogido cariño y no haya un lugar más cómodo en tu PC que una ventana de Vim :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kismet010.blogspot.com/feeds/5579992704413633357/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7826351361307333984/5579992704413633357' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7826351361307333984/posts/default/5579992704413633357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7826351361307333984/posts/default/5579992704413633357'/><link rel='alternate' type='text/html' href='http://kismet010.blogspot.com/2012/12/depurando-php-en-gvim-con-xdegub.html' title='Depurando PHP en (g)Vim con XDebug'/><author><name>Kismet</name><uri>http://www.blogger.com/profile/16025395445741058472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzxRa37V7rbTFWsf0pRKN6IQC2LiQhxmePQUbuWsdX3xZl_ODyihEJmfO9CTmrf8F-9kpZEWm1v7q5b1kxCSjEcxyMwlJdS4Atn12_bnLEdSatMh8s3Yo2TK7O6kbip09J9s3kYV1HTMY/s72-c/Sin+nombre.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7826351361307333984.post-1150034418313696376</id><published>2012-12-02T14:10:00.001+01:00</published><updated>2013-01-07T21:17:20.104+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Admin"/><category scheme="http://www.blogger.com/atom/ns#" term="db"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><title type='text'>PHP + Oracle</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
Puesto que la encantadora gente que compró Sun ha recortado aún más la nueva
versión &quot;express&quot; de su base de datos por excelencia y, por si fuera poco, ha
decidido que sólo sea accesible para los poseedores de nuevas máquinas aptas
para 64 bits y únicamente soporte distribuciones GNU/Linux con paquetería rpm
(¿les habrá suplicado RedHat para manternelo?), me he decantado por usar la
versión 10.2 XE (Express Edition).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Si aún con lo dicho quieres instalar la versión 11g, como hice yo, tendrás que
lidiar -una vez hayas conseguido configurar los parametros de tu kernel con la poca
información existente- con los problemas de sobrecarga de CPU que
está dando en máquinas virtuales. Busca, busca y acaba en el foro oficial de Oracle y te responderán
que tu sistema operativo no está soportado. Créeme, usa la 10g si no eres muy
amigo de RedHat o no cumples alguno de los nuevos requisitos mostrados aquí
http://docs.oracle.com/cd/E11882_01/install.112/e24326/toc.htm#BHCHGDIE&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Nota:&lt;/b&gt; Oracle 10g necesita 990MB de swap. Si no los tuvieses, mira &lt;a href=&quot;http://kismet010.blogspot.com.es/2012/12/como-aumentar-el-espacio-de-intercambio.html&quot; style=&quot;background-color: white;&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: #3d85c6;&quot;&gt;ésta&lt;/span&gt;&lt;/a&gt; entrada de mi blog&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
&lt;span style=&quot;background-color: white; color: #999999; font-size: x-large;&quot;&gt;
Instalación de Oracle 10g en Debian/Ubuntu&lt;/span&gt;&lt;/h2&gt;
&lt;br /&gt;
Necesitamos lo siguiente en Ubuntu:
&lt;br /&gt;
&lt;pre&gt;sudo apt-get install libc6&lt;/pre&gt;
&lt;br /&gt;
Bajamos 2 paquetes desde el servidor de Oracle, yo voy a hacerlo con el comando
wget (-c para recuperar descargas fallidas):
&lt;br /&gt;
&lt;pre&gt;wget -c http://oss.oracle.com/debian/dists/unstable/main/binary-i386/libaio_0.3.104-1_i386.deb http://oss.oracle.com/debian/dists/unstable/non-free/binary-i386/oracle-xe-universal_10.2.0.1-1.1_i386.deb&lt;/pre&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Antes de instalarlos ejecuta el siguiente comando, que además te servirá de
calculadora para la terminal y tus scripts (sal de
ella con el comando &quot;quit&quot;, la primera vez que lo usé quedé atrapado :P )
&lt;/div&gt;
&lt;pre&gt;sudo apt-get install bc&lt;/pre&gt;
&lt;br /&gt;
Y ahora sí, instala:
&lt;br /&gt;
&lt;pre&gt;sudo dpkg -i libaio_0.3.104-1_i386.deb
sudo dpkg -i oracle-xe-universal_10.2.0.1-1.1_i386.deb
&lt;/pre&gt;
&lt;br /&gt;
Lo siguiente sería configurar Oracle:
&lt;br /&gt;
&lt;pre&gt;sudo /etc/init.d/oracle-xe configure&lt;/pre&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioV9XkKBrorjvbNy-uVkivYtGXtWCTPxpER8ItSEUI06XlPEmp90yfjqnyTTpjK8mHRcW_7vxtRQ8zBoY4a9BKYVjUeeJiCJzHqhNIIlCbvNu6jUCC71bVwxrCAM0wTgrP5D3Yma_StYI/s1600/oracle.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;324&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioV9XkKBrorjvbNy-uVkivYtGXtWCTPxpER8ItSEUI06XlPEmp90yfjqnyTTpjK8mHRcW_7vxtRQ8zBoY4a9BKYVjUeeJiCJzHqhNIIlCbvNu6jUCC71bVwxrCAM0wTgrP5D3Yma_StYI/s640/oracle.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
He cambiado el puerto por defecto al 8081, he escrito una contraseña y le he indicado que no se inicie en cada arranque del sistema.&lt;br /&gt;
&lt;br /&gt;
Añade lo siguiente al final del fichero de configuración de tu intérprete de comandos (~/.bashrc o ~/.zhrc o cualquiera que uses) para indicar las variables de entorno:&lt;br /&gt;
&lt;pre&gt;ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_HOME
export ORACLE_SID=XE
export PATH
&lt;/pre&gt;
&lt;br /&gt;
Desloguea o reinicia para que se tomen en cuenta, también puedes ejecutar:
&lt;br /&gt;
&lt;pre&gt;source ~/.bashrc&lt;/pre&gt;
&lt;br /&gt;
Si todo es correcto, en la dirección http://127.0.0.1:8081/apex puedes ver (8081 porque, como indiqué, lo he cambiado en la configuración):


&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik9jLkTKpkd0TwCCJhiVSB4g-mBagHsy4_XGkhPcGeKtOyPXR-63gp1d5MIkDvsKyUaSQentP1QlbPNhwd0mG_NEYpUtNb8tCpWqSKgRYOMn6MQfHcCNE-_GcZeuhC4EY6WyS8-Ux-LEU/s1600/oracle2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;328&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik9jLkTKpkd0TwCCJhiVSB4g-mBagHsy4_XGkhPcGeKtOyPXR-63gp1d5MIkDvsKyUaSQentP1QlbPNhwd0mG_NEYpUtNb8tCpWqSKgRYOMn6MQfHcCNE-_GcZeuhC4EY6WyS8-Ux-LEU/s640/oracle2.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
Vamos a jugar un poco con una base de datos predefinida en Oracle 10g, denominada Human Resources (HR), así comprobamos que lo hemos hecho todo bien.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6bkBTM9eyIzFE4oWgMcYGLS1Z5DtLIMI0FN67EhNcoZiPThAIwE1sju8ywxld2_VJ0Rfs-BSeoY_uNeTI6R-V6vhRU_E_kJRtAko94OH_cNPNMELgMKn5m3DKur9xql2Im3xLsmrSJ60/s1600/oracle3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;554&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6bkBTM9eyIzFE4oWgMcYGLS1Z5DtLIMI0FN67EhNcoZiPThAIwE1sju8ywxld2_VJ0Rfs-BSeoY_uNeTI6R-V6vhRU_E_kJRtAko94OH_cNPNMELgMKn5m3DKur9xql2Im3xLsmrSJ60/s640/oracle3.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Usando la utilidad&amp;nbsp;&lt;i&gt;sqlplus &lt;/i&gt;que provee Oracle hemos ingresado, conectado como administrador (con la contraseña que pusimos en la configuración inicial) y cambiado la contraseña del usuario HR. Tras ello, ingresamos con este usuario y su contraseña para mostrar sus tablas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2 style=&quot;text-align: start;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #999999; font-size: x-large;&quot;&gt;Manejo de Oracle desde PHP&lt;/span&gt;&lt;/h2&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
En el siguiente paso vamos a mostrar esa misma tabla del punto anterior desde una página web generada con PHP. Para ello será necesario tener instalado y funcionando un servidor con su respectivo módulo de PHP. Puedes seguir &lt;a href=&quot;http://kismet010.blogspot.com.es/2012/10/instalacion-apache-php-mysql-en.html&quot; target=&quot;_blank&quot;&gt;ésta&lt;/a&gt;&amp;nbsp;corta entrada de mi blog para hacerlo en Apache sobre GNU/Linux, obviando la parte de MySQL.&lt;br /&gt;
&lt;br /&gt;
Existen diversas formas de conectar y acceder a una base de datos. Igual que la extensión MySQLi proporciona un rápido y fácil acceso,&amp;nbsp;&lt;i&gt;oci8&lt;/i&gt;&amp;nbsp;ofrece capacidades concretas y un alto rendimiento para el trabajo con Oracle. Sin embargo, desde PHP 5.1 esto es considerado &lt;i&gt;old school:&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;i&gt;&lt;b&gt;PDO&lt;/b&gt;&lt;/i&gt;&amp;nbsp;es una nueva librería orientada a objetos a modo de capa de abstracción para el acceso de los datos, cuya principal ventaja es&amp;nbsp;ser independiente de la base de datos. Oracle proporciona el driver &lt;i&gt;pdo_oci &lt;/i&gt;que, reiterando el principio de éste artículo, no está integrado en el paquete &lt;i&gt;php&lt;/i&gt; de Debian y derivados. En ArchLinux, gracias a su comunidad, lo tienes todo en el repositorio de usuarios (AUR), pero como Ubuntu es la distribución que seguramente estés usando, te ha tocado compilar PHP a mano si quieres acceder a bases de datos Oracle:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kismet010.blogspot.com/feeds/1150034418313696376/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7826351361307333984/1150034418313696376' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7826351361307333984/posts/default/1150034418313696376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7826351361307333984/posts/default/1150034418313696376'/><link rel='alternate' type='text/html' href='http://kismet010.blogspot.com/2012/12/instalar-oracle-10g-en-debianubuntu.html' title='PHP + Oracle'/><author><name>Kismet</name><uri>http://www.blogger.com/profile/16025395445741058472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioV9XkKBrorjvbNy-uVkivYtGXtWCTPxpER8ItSEUI06XlPEmp90yfjqnyTTpjK8mHRcW_7vxtRQ8zBoY4a9BKYVjUeeJiCJzHqhNIIlCbvNu6jUCC71bVwxrCAM0wTgrP5D3Yma_StYI/s72-c/oracle.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7826351361307333984.post-4103930348484233264</id><published>2012-12-02T13:55:00.000+01:00</published><updated>2012-12-02T13:58:16.017+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Admin"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="swap"/><title type='text'>Cómo aumentar el espacio de intercambio (swap) sin redimensionar</title><content type='html'>Una forma simple de aumentar tu swap -espacio de intercambio- es creando un fichero que haga de la misma, en este caso de 1024MB, tal que así:&lt;br /&gt;
&lt;pre&gt;sudo dd if=/dev/zero of=/media/swapfile bs=1M count=1024
sudo mkswap /media/swapfile
sudo swapon /media/swapfile&lt;/pre&gt;
&lt;br /&gt;
Para activarla en el arranque:&lt;br /&gt;
&lt;pre&gt;sudo tu_editor_favorito /etc/fstab&lt;/pre&gt;
&lt;br /&gt;
Y añadimos esta línea
&lt;br /&gt;
&lt;pre&gt;/media/swapfile swap swap defaults 0 0&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kismet010.blogspot.com/feeds/4103930348484233264/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7826351361307333984/4103930348484233264' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7826351361307333984/posts/default/4103930348484233264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7826351361307333984/posts/default/4103930348484233264'/><link rel='alternate' type='text/html' href='http://kismet010.blogspot.com/2012/12/como-aumentar-el-espacio-de-intercambio.html' title='Cómo aumentar el espacio de intercambio (swap) sin redimensionar'/><author><name>Kismet</name><uri>http://www.blogger.com/profile/16025395445741058472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7826351361307333984.post-2072382815576660491</id><published>2012-10-17T23:00:00.003+02:00</published><updated>2012-10-18T00:33:36.993+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Admin"/><category scheme="http://www.blogger.com/atom/ns#" term="Apache"/><category scheme="http://www.blogger.com/atom/ns#" term="DES"/><title type='text'>Cómo montar un Servidor Web en Debian/Ubuntu con Apache</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_OEeOeJ32ACvX9XzX3xxiJ2ws950LZjRCKUo1YyhIa0pPaL1dHCWsPsx1CotkEHEeqbSzfiO98LOHpa8JsnQQrYopV3cxFKmZCt5xANzsgeYQPy3iJmxl_vfkzWgz-JNg50I-mtxN7Zg/s1600/apache.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_OEeOeJ32ACvX9XzX3xxiJ2ws950LZjRCKUo1YyhIa0pPaL1dHCWsPsx1CotkEHEeqbSzfiO98LOHpa8JsnQQrYopV3cxFKmZCt5xANzsgeYQPy3iJmxl_vfkzWgz-JNg50I-mtxN7Zg/s1600/apache.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h1&gt;
&lt;/h1&gt;
&lt;h1&gt;
&lt;/h1&gt;
&lt;h1 style=&quot;text-align: justify;&quot;&gt;
Instalación y configuración&lt;/h1&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
En primer lugar procedemos a &lt;b&gt;instalar&lt;/b&gt; el paquete con la siguiente orden:
&lt;/div&gt;
&lt;pre class=&quot;brush:bash;gutter:false;toolbar:false&quot; style=&quot;text-align: justify;&quot;&gt;$ apt-get install –no-install-recommends apache2&lt;/pre&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Si no tenemos configurado un servicio &lt;b&gt;DNS&lt;/b&gt;, para las pruebas podemos simplemente modificar el fichero &lt;i&gt;/etc/hosts&lt;/i&gt; de esta forma:
&lt;/div&gt;
&lt;pre class=&quot;brush:bash;gutter:false;toolbar:false&quot;&gt;127.0.0.1 localhost www.miweb.com www.otraweb.com
&lt;/pre&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Así al ingresar a la dirección &lt;i&gt;http://www.miweb.com&lt;/i&gt; nos dirigirá a la IP 127.0.0.1 que es nuestra máquina (localhost).
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Toda la &lt;b&gt;configuración&lt;/b&gt; de Apache se encuentra bajo &lt;i&gt;/etc/apache2&lt;/i&gt; y por defecto el directorio donde alojamos la web es &lt;i&gt;/var/www&lt;/i&gt;. En ese directorio se encuentra un fichero llamado &lt;i&gt;index.html&lt;/i&gt; que se abrirá automáticamente al ingresar al sitio. Veremos como cambiar esa ruta, pero antes apunta la siguiente orden:
&lt;/div&gt;
&lt;pre class=&quot;brush:bash;gutter:false;toolbar:false&quot; style=&quot;text-align: justify;&quot;&gt;$ apache2ctl configtest&lt;/pre&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Nos hará un &lt;b&gt;chequeo&lt;/b&gt; de la configuración. Si algo no te funciona, es lo primero que debes comprobar. Para revisar los errores podemos mirar las últimas 20 líneas del registro:
&lt;/div&gt;
&lt;pre class=&quot;brush:bash;gutter:false;toolbar:false&quot; style=&quot;text-align: justify;&quot;&gt;$ tail -n 20 /var/log/apache2/*.log&lt;/pre&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Por último, no olvides &lt;b&gt;reiniciar&lt;/b&gt; Apache cada vez que modifiques un fichero de configuración:
&lt;/div&gt;
&lt;pre class=&quot;brush:bash;gutter:false;toolbar:false&quot; style=&quot;text-align: justify;&quot;&gt;$ service apache2 restart&lt;/pre&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h1 style=&quot;text-align: justify;&quot;&gt;
Un sitio para cada usuario&lt;/h1&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Apache es &lt;b&gt;modular&lt;/b&gt;, esto es, permite añadirle funcionalidades como la ejecución de código en PHP, Python, Perl... u ofrecer un sitio diferente para cada usuario del sistema operativo. Éste módulo en concreto se denomina &lt;i&gt;&lt;b&gt;userdir&lt;/b&gt;&lt;/i&gt; y se habilita con:
&lt;/div&gt;
&lt;pre class=&quot;brush:bash;gutter:false;toolbar:false&quot; style=&quot;text-align: justify;&quot;&gt;$ a2enmod userdir&lt;/pre&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Cada módulo habilitado guarda su configuración bajo &lt;i&gt;/etc/apache2/mods-enable&lt;/i&gt; así que si buscas en ese directorio encontrarás&amp;nbsp;&lt;i&gt;userdir.conf&lt;/i&gt; que contiene los parámetros de configuración.&amp;nbsp;Por defecto verás que apunta hacia&amp;nbsp;&lt;i&gt;/home/nombre_usuario/public_html&lt;/i&gt;&amp;nbsp;mediante la &lt;b&gt;directiva&lt;/b&gt; &lt;i&gt;DocumentRoot&lt;/i&gt; encargada de determinar la ruta desde la que se sirven los ficheros.&amp;nbsp;Si cambias &lt;i&gt;public_html&lt;/i&gt; por &lt;i&gt;misitio&lt;/i&gt;, Apache te dirigirá al fichero&amp;nbsp;&lt;i&gt;/home/nombre_usuario/misitio/index.html&lt;/i&gt; cuando en el navegador escribas &lt;i&gt;http://www.miweb.com/~nombre_usuario.&lt;/i&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Si quieres deshabilitar éste módulo puedes hacerlo con el comando &lt;i&gt;a2dismod &lt;/i&gt;seguido de su nombre. Otros módulos disponibles se encuentran en &lt;i&gt;/etc/apache2/mods-available&lt;/i&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h1 style=&quot;text-align: justify;&quot;&gt;
Diferentes sitios en el mismo servidor&lt;/h1&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Otra funcionalidad de Apache son los llamados&lt;i&gt; &lt;b&gt;VirtualHost&lt;/b&gt;&lt;/i&gt;. Bajo un mismo servidor podemos alojar varios sitios independientes según la configuración: si escribimos http://www.miweb.com nos dirigirá a una web y con http://www.otraweb.com veremos una página diferente, situada en el directorio que indiquemos.
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Por tanto, creamos un nuevo directorio por ejemplo en &lt;i&gt;/var/www/otraweb&lt;/i&gt; con su &lt;i&gt;index.html&lt;/i&gt; correspondiente. Vamos a copiar el sitio por defecto de Apache y le daremos otro nombre:
&lt;/div&gt;
&lt;pre class=&quot;brush:bash;gutter:false;toolbar:false&quot;&gt;$ cd /etc/apache2/sites-available
$ cp default otraweb
&lt;/pre&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
El contenido del nuevo fichero debe empezar así:
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim3GtZLQ_f-c0gFIHalcawL9weqfmbsDD8IqPzvRH-lm-vA4XDNsQvGoJLZmYcw7B0HNae7ShuDSC3VGmv90MSBCqxivHWeOo7LxoiOfQSfZBFHKQ9-3h8HCj3WZ3DtQvHP2PMAwhvQvo/s1600/resumen.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim3GtZLQ_f-c0gFIHalcawL9weqfmbsDD8IqPzvRH-lm-vA4XDNsQvGoJLZmYcw7B0HNae7ShuDSC3VGmv90MSBCqxivHWeOo7LxoiOfQSfZBFHKQ9-3h8HCj3WZ3DtQvHP2PMAwhvQvo/s1600/resumen.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Justo encima de esas líneas vamos a crear un sitio de distinto &lt;b&gt;nombre&lt;/b&gt;, con el siguiente contenido:
&lt;/div&gt;
&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;&amp;lt;VirtualHost *:80&amp;gt;
        ServerName   www.otraweb.com
        DocumentRoot /var/www/otraweb
        &amp;lt;Directory  /var/www/otraweb&amp;gt;
                Options FollowSymLinks
                AllowOverride None
        &amp;lt;/Directory&amp;gt;
&amp;lt;/VirtualHost&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Habilitamos&lt;/b&gt; el nuevo sitio:
&lt;/div&gt;
&lt;pre class=&quot;brush:bash;gutter:false;toolbar:false&quot; style=&quot;text-align: justify;&quot;&gt;$ a2ensite otraweb&lt;/pre&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Y reiniciamos Apache. Si todo es correcto ahora tenemos dos sitios web independientes. Si algo falla, recuerda revisar la configuración con el comando que debiste haber apuntado&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
.
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Otra forma de hacer lo mismo es indicarle a Apache que en lugar de diferenciar los sitios según su nombre, lo haga según el &lt;b&gt;puerto&lt;/b&gt;. Así, podemos tener además otro sitio diferente si ingresamos, por ejemplo, &lt;i&gt;http://www.otraweb.com:8080&lt;/i&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Para ello añadimos &lt;i&gt;Listen 8080&lt;/i&gt; en el fichero &lt;i&gt;/etc/apache2/ports.conf&lt;/i&gt; y modificamos de nuevo &lt;i&gt;/etc/apache2/sites-available/otraweb&lt;/i&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfP55gmSQDoDI4eQuFz4uvGotDuAnziMkyDOgB29mJSR4LA8gQ92hre8wzYql01HmHU_9gVseuUAqLNOs1n8KBKMm1KP6kk4hptnuJSzVEZ7nkjuAdHhwlOsyiCMJRapmE6mFF6aEX1JA/s1600/resumen2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfP55gmSQDoDI4eQuFz4uvGotDuAnziMkyDOgB29mJSR4LA8gQ92hre8wzYql01HmHU_9gVseuUAqLNOs1n8KBKMm1KP6kk4hptnuJSzVEZ7nkjuAdHhwlOsyiCMJRapmE6mFF6aEX1JA/s1600/resumen2.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
El sitio original comienza en la línea 17. Indicamos a Apache que será el sitio por &lt;b&gt;defecto&lt;/b&gt; con &lt;i&gt;_default_&lt;/i&gt;. El nuevo sitio &lt;i&gt;http://www.otraweb.com&lt;/i&gt; empieza en la línea 9 y el tercero (con diferente puerto) es el que aparece al principio, el cuál tendrá el mismo nombre pero nos llevará a un directorio diferente (&lt;i&gt;/var/www/otraweb_puerto&lt;/i&gt;).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Reiniciamos Apache otra vez.&amp;nbsp;En cada directorio he colocado un &lt;i&gt;index.html&lt;/i&gt; con un pequeño script que muestra su ruta, así que&amp;nbsp;en el navegador veremos lo siguiente, según la URL que escribamos:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPjQhtcYVoE07q2bMliSiAbyCMFVXDWv2X3US8_KzDmwrGGtHeK03CLR9kQiLO9ZY5_nWF9V6oAAK1Vb1oeRf5NE3145vNDMoqa0ti3_8g6bSNo8NIqhP1g7xvVClDTUv9raRWqD1yPQ4/s1600/resumen3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPjQhtcYVoE07q2bMliSiAbyCMFVXDWv2X3US8_KzDmwrGGtHeK03CLR9kQiLO9ZY5_nWF9V6oAAK1Vb1oeRf5NE3145vNDMoqa0ti3_8g6bSNo8NIqhP1g7xvVClDTUv9raRWqD1yPQ4/s1600/resumen3.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://kismet010.blogspot.com/feeds/2072382815576660491/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7826351361307333984/2072382815576660491' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7826351361307333984/posts/default/2072382815576660491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7826351361307333984/posts/default/2072382815576660491'/><link rel='alternate' type='text/html' href='http://kismet010.blogspot.com/2012/10/como-montar-un-servidor-web-en.html' title='Cómo montar un Servidor Web en Debian/Ubuntu con Apache'/><author><name>Kismet</name><uri>http://www.blogger.com/profile/16025395445741058472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_OEeOeJ32ACvX9XzX3xxiJ2ws950LZjRCKUo1YyhIa0pPaL1dHCWsPsx1CotkEHEeqbSzfiO98LOHpa8JsnQQrYopV3cxFKmZCt5xANzsgeYQPy3iJmxl_vfkzWgz-JNg50I-mtxN7Zg/s72-c/apache.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7826351361307333984.post-467678245725131894</id><published>2012-10-14T22:07:00.004+02:00</published><updated>2012-10-14T22:07:34.331+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="DES"/><title type='text'>El comienzo de los Servicios Web</title><content type='html'>&lt;h1&gt;
Primeras dudas y opiniones&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&quot;Los servicios Web no hacen más que reinventar la rueda, pero esta vez usando XML&quot;. &quot;No aportan nada nuevo que no tuvieramos ya en CORBA&quot;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;En un principio y en términos de funcionalidad los servicios Web no contribuían con ninguna funcionalidad original. La principal diferencia era el uso de un lenguaje de etiquetas denominado XML.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&quot;No tienen estado&quot;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Los estados no son persistentes entre peticiones del cliente.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&quot;Los Servicios Web proporcionan las facilidades del Nivel 4 por encima del Nivel 7, dando un paso atrás tanto en eficiencia como en funcionalidad (seguridad, mensajería fiable, etc.)&quot;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Aún no se ha conseguido la mensajería fiable y la seguridad sigue siendo un punto más que importante para cualquier empresa. En este aspecto, aunque aparezcan protocolos tan usados como el &lt;a href=&quot;http://es.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol&quot; target=&quot;_blank&quot;&gt;XMPP&lt;/a&gt;, los servicios Web no son la solución final esperada. Sólo hay que estar al tanto de la actualidad tecnológica para reconocer que sigue siendo un problema a resolver. En función de los niveles, el comentario hace hincapié&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&quot;Los servicios Web no permiten resolver ninguno de los problemas realmente difíciles de los sistemas distribuidos, como la interoperabilidad semántica, los repartos de cargas, la fiabilidad, o la escalabilidad&quot;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;No marcaron una diferencia en la resolución de la complejidad de los sistemas distribuidos. Sin embargo posibilitan arquitecturas tales como &lt;a href=&quot;http://es.wikipedia.org/wiki/Arquitectura_orientada_a_servicios&quot; target=&quot;_blank&quot;&gt;SOA&lt;/a&gt; o &lt;a href=&quot;http://es.wikipedia.org/wiki/Peer-to-peer&quot; target=&quot;_blank&quot;&gt;P2P&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&quot;Los servicios Web van a suponer un cambio radical en la forma en la que construimos aplicaciones distribuidas hoy en día&quot;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;De hecho, el tiempo así lo ha demostrado. Es impensable en la actualidad desarrollar software de comunicaciones sin tener en cuenta cómo funcionan los servicios Web modernos. Todas las grandes compañías trabajan ya con este sistema.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;h1&gt;
Glosario&lt;/h1&gt;
&lt;hr /&gt;

&lt;dl&gt;
&lt;dt&gt;&lt;b&gt;&lt;a href=&quot;http://es.wikipedia.org/wiki/Extensible_Markup_Language&quot; target=&quot;_blank&quot;&gt;XML&lt;/a&gt;&lt;/b&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;i&gt;eXtensible Markup Language&lt;/i&gt; o lenguaje de marcas extensible, es un lenguaje de marcas desarrollado por el &lt;a href=&quot;http://www.w3c.es/&quot; target=&quot;_blank&quot;&gt;World Wide Web Consortium&lt;/a&gt;. Deriva del lenguaje &lt;a href=&quot;http://es.wikipedia.org/wiki/SGML&quot; target=&quot;_blank&quot;&gt;SGML&lt;/a&gt; y permite definir la gramática de lenguajes específicos (de la misma manera que &lt;a href=&quot;http://es.wikipedia.org/wiki/HTML&quot; target=&quot;_blank&quot;&gt;HTML&lt;/a&gt; es a su vez un lenguaje definido por SGML) para estructurar documentos grandes.&lt;/dd&gt;
&lt;dt&gt;&lt;b&gt;&lt;a href=&quot;http://es.wikipedia.org/wiki/CORBA&quot; target=&quot;_blank&quot;&gt;CORBA&lt;/a&gt;&lt;/b&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;i&gt;Common Object Request Broker Architecture&lt;/i&gt;&amp;nbsp;es un standard definido por el &lt;a href=&quot;http://es.wikipedia.org/wiki/Object_Management_Group&quot; target=&quot;_blank&quot;&gt;Object Management Group&lt;/a&gt; que permite que diversos componentes de software escritos en múltiples lenguajes de programación y que corren en diferentes computadoras puedan trabajar juntos.&lt;/dd&gt;
&lt;dt&gt;&lt;b&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Stateless_server&quot; target=&quot;_blank&quot;&gt;Protocolos sin estado&lt;/a&gt;&lt;/b&gt;&lt;/dt&gt;
&lt;dd&gt;Son protocolos de comunicación que tratan cada petición como una transacción indepentiende, sin relación con las anteriores. La comunicación consiste en pares independientes de peticiones y respuestas.&lt;/dd&gt;
&lt;dt&gt;&lt;b&gt;&lt;a href=&quot;http://es.wikipedia.org/wiki/Modelo_OSI&quot; target=&quot;_blank&quot;&gt;Modelo OSI&lt;/a&gt;&lt;/b&gt;&lt;/dt&gt;
&lt;dd&gt;El modelo de interconexión de sistemas abiertos (open system interconnection) es el modelo de red descriptivo creado por la Organización Internacional para la Estandarización (ISO) en el año 1984. Es un marco de referencia para la definición de arquitecturas de interconexión de sistemas de comunicaciones.&lt;/dd&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Nivel 4: Capa de transporte&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Capa encargada de efectuar el transporte de los datos (que se encuentran dentro del paquete) de la máquina origen a la de destino, independizándolo del tipo de red física que se esté utilizando.&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;Nivel 7: Capa de aplicación&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Ofrece a las aplicaciones la posibilidad de acceder a los servicios de las demás capas y define los protocolos que utilizan las aplicaciones para intercambiar datos.&lt;/li&gt;&lt;/ul&gt;
&lt;/ul&gt;
&lt;dt&gt;&lt;b&gt;&lt;a href=&quot;http://es.wikipedia.org/wiki/Computaci%C3%B3n_distribuida#Sistemas_distribuidos&quot; target=&quot;_blank&quot;&gt;Sistemas distribuidos&lt;/a&gt;&lt;/b&gt;&lt;/dt&gt;
&lt;dd&gt;Colección de computadoras separadas físicamente y conectadas entre sí por una red de comunicaciones distribuida. Cada máquina posee sus componentes de hardware y software que el usuario percibe como un solo sistema.&lt;/dd&gt;
&lt;/dl&gt;</content><link rel='replies' type='application/atom+xml' href='http://kismet010.blogspot.com/feeds/467678245725131894/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7826351361307333984/467678245725131894' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7826351361307333984/posts/default/467678245725131894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7826351361307333984/posts/default/467678245725131894'/><link rel='alternate' type='text/html' href='http://kismet010.blogspot.com/2012/10/el-comienzo-de-los-servicios-web.html' title='El comienzo de los Servicios Web'/><author><name>Kismet</name><uri>http://www.blogger.com/profile/16025395445741058472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7826351361307333984.post-7405134264845084940</id><published>2012-10-09T21:08:00.000+02:00</published><updated>2012-10-10T00:17:53.914+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="chrome"/><category scheme="http://www.blogger.com/atom/ns#" term="DWEC"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><title type='text'>Google Chrome Developer Tools</title><content type='html'>&lt;center&gt;
&lt;iframe class=&quot;scribd_iframe_embed&quot; src=&quot;http://www.scribd.com/embeds/109512248/content?start_page=1&amp;view_mode=scroll&amp;access_key=key-1y4d7q1b5oogsb382ea0&quot; data-auto-height=&quot;true&quot; data-aspect-ratio=&quot;0.706697459584296&quot; scrolling=&quot;no&quot; id=&quot;doc_42860&quot; width=&quot;100%&quot; height=&quot;700&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;

&lt;iframe class=&quot;scribd_iframe_embed&quot; src=&quot;http://www.scribd.com/embeds/109525808/content?start_page=1&amp;view_mode=scroll&amp;access_key=key-2bad1pk08sadi4xv0e77&quot; data-auto-height=&quot;true&quot; data-aspect-ratio=&quot;1.33333333333333&quot; scrolling=&quot;no&quot; id=&quot;doc_77773&quot; width=&quot;100%&quot; height=&quot;600&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;
&lt;/center&gt;</content><link rel='replies' type='application/atom+xml' href='http://kismet010.blogspot.com/feeds/7405134264845084940/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7826351361307333984/7405134264845084940' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7826351361307333984/posts/default/7405134264845084940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7826351361307333984/posts/default/7405134264845084940'/><link rel='alternate' type='text/html' href='http://kismet010.blogspot.com/2012/10/blog-post.html' title='Google Chrome Developer Tools'/><author><name>Kismet</name><uri>http://www.blogger.com/profile/16025395445741058472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7826351361307333984.post-3717438629171012459</id><published>2012-10-03T17:55:00.000+02:00</published><updated>2012-10-18T00:37:04.125+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Admin"/><category scheme="http://www.blogger.com/atom/ns#" term="Apache"/><category scheme="http://www.blogger.com/atom/ns#" term="DES"/><category scheme="http://www.blogger.com/atom/ns#" term="DWES"/><category scheme="http://www.blogger.com/atom/ns#" term="MySQL"/><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><title type='text'>Instalación de Apache + PHP + MySQL en Debian/Ubuntu</title><content type='html'>&lt;pre class=&quot;brush:plain;gutter:false;toolbar:false&quot;&gt;$ apt-get install apache2 php5 libapache2-mod-php5 mysql-server mysql-client
&lt;/pre&gt;
MySQL nos pedirá la contraseña del administrador de la base de datos:
&lt;br /&gt;
&lt;img border=&quot;0&quot; height=&quot;104&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih-muFbWx5tGadZKVfIdgDnE4FhVXOUqoi9YIVBHA0uA5JjYaDiBeMEFmTrTmmIPTgLPePyOIYUhzB4zrkuzPI0yLzWdzC2UJNouQV1wBQDMvGoA8Y0gqOE5K9dMy5pwQm5JwC88Iymjc/s640/mysql1.png&quot; width=&quot;640&quot; /&gt;
&lt;br /&gt;
&lt;br /&gt;
Siempre que hagamos cambios en Apache deberemos reiniciar el servicio:
&lt;br /&gt;
&lt;pre class=&quot;brush:plain;gutter:false;toolbar:false&quot;&gt;$ service apache2 restart
&lt;/pre&gt;
&lt;br /&gt;
Para probar que Apache está funcionando vamos a crear un pequeño script en PHP que además nos mostrará cierta información del servidor:
&lt;br /&gt;
&lt;pre class=&quot;brush:plain;gutter:false;toolbar:false&quot;&gt;$ vi /var/www/prueba.php
&lt;/pre&gt;
&lt;script class=&quot;brush:php;toolbar:false&quot; type=&quot;syntaxhighlighter&quot;&gt;&lt;![CDATA[
&lt;?php
phpinfo();
?&gt;
]]&gt;&lt;/script&gt;
Ingresamos en &lt;i&gt;http://localhost/prueba.php&lt;/i&gt; con el navegador de la máquina y veremos algo así:
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLTfDB9dJLkzBU5AnfUrgb-RzdQblrx1IY_dm7l32gyLoVwctDQvqNYOKfZSaPb9pJ-VVVWsEzwC73sUUk9CWlN2tdYSo1tQTJwbw7TXAvEliA5jOI3IIR36ukIDTHvw-aGJtilGKCOFA/s1600/php1.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;224&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLTfDB9dJLkzBU5AnfUrgb-RzdQblrx1IY_dm7l32gyLoVwctDQvqNYOKfZSaPb9pJ-VVVWsEzwC73sUUk9CWlN2tdYSo1tQTJwbw7TXAvEliA5jOI3IIR36ukIDTHvw-aGJtilGKCOFA/s640/php1.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7826351361307333984/posts/default/3717438629171012459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7826351361307333984/posts/default/3717438629171012459'/><link rel='alternate' type='text/html' href='http://kismet010.blogspot.com/2012/10/instalacion-apache-php-mysql-en.html' title='Instalación de Apache + PHP + MySQL en Debian/Ubuntu'/><author><name>Kismet</name><uri>http://www.blogger.com/profile/16025395445741058472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih-muFbWx5tGadZKVfIdgDnE4FhVXOUqoi9YIVBHA0uA5JjYaDiBeMEFmTrTmmIPTgLPePyOIYUhzB4zrkuzPI0yLzWdzC2UJNouQV1wBQDMvGoA8Y0gqOE5K9dMy5pwQm5JwC88Iymjc/s72-c/mysql1.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7826351361307333984.post-8888763456656179103</id><published>2012-09-30T11:52:00.000+02:00</published><updated>2012-10-18T00:37:22.379+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Admin"/><category scheme="http://www.blogger.com/atom/ns#" term="Apache"/><category scheme="http://www.blogger.com/atom/ns#" term="DES"/><category scheme="http://www.blogger.com/atom/ns#" term="DWES"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><title type='text'>mod_python en Apache</title><content type='html'>Instalamos el módulo de apache:
&lt;br /&gt;
&lt;pre class=&quot;brush:plain;gutter:false;toolbar:false&quot;&gt;$ apt-get install --no-install-recommends libapache2-mod-python&lt;/pre&gt;
Añadimos AddHandler mod_python .py, PythonHandler mod_python.publisher, y PythonDebug en:
&lt;br /&gt;
&lt;pre class=&quot;brush:bash;gutter:false;toolbar:false&quot;&gt;$ vi /etc/apache2/sites-available/default&lt;/pre&gt;
&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;&lt;directory var=&quot;var&quot; www=&quot;www&quot;&gt;
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
    AddHandler mod_python .py
    PythonHandler mod_python.publisher
    PythonDebug On
&lt;/directory&gt;
&lt;/pre&gt;
Reiniciamos Apache:
&lt;br /&gt;
&lt;pre class=&quot;brush:bash;gutter:false;toolbar:false&quot;&gt;$ /etc/init.d/apache2 restart
&lt;/pre&gt;
Probamos:
&lt;br /&gt;
&lt;pre class=&quot;brush:bash;gutter:false;toolbar:false&quot;&gt;$ vi /var/www/prueba.py
&lt;/pre&gt;
&lt;script class=&quot;brush:python;toolbar:false&quot; type=&quot;syntaxhighlighter&quot;&gt;&lt;![CDATA[
def index(req):
    req.content_type = &#39;text/html&#39;
    req.write(&quot;&lt;html&gt;\n\n&quot;)
    req.write(&quot;&lt;head&gt;\n&quot;)
    req.write(&quot;&lt;title&gt;Fibonacci con Python&lt;/title&gt;\n&quot;)
    req.write(&quot;&lt;/head&gt;\n\n&quot;)
    req.write(&quot;&lt;body&gt;\n\n&quot;)

    a, b = 0, 1
    while b &amp;lt; 1000:
        req.write(str(b))
        req.write(&quot;\n&quot;)
        a, b = b, a+b

    req.write(&quot;\n\n&lt;/body&gt;\n&quot;)
    req.write(&quot;&lt;/html&gt;&quot;)
]]&gt;&lt;/script&gt;

&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;img border=&quot;0&quot; height=&quot;136&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdLEUfeTWFVB0PJMUiiS1WydUhyphenhyphenfGR1q8H-HyHafzXA_V3flMB7SQf00IJF0dCFC48K2bbpsQnvCcEbKdfrW5lCBw5RSKgnqj0M9RhL_B7iD4jcct7iSzxt9n4gLzfAgS_v3wO_wld3kI/s400/server.png&quot; width=&quot;400&quot; /&gt;&lt;/div&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7826351361307333984/posts/default/8888763456656179103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7826351361307333984/posts/default/8888763456656179103'/><link rel='alternate' type='text/html' href='http://kismet010.blogspot.com/2012/09/python-en-apache.html' title='mod_python en Apache'/><author><name>Kismet</name><uri>http://www.blogger.com/profile/16025395445741058472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdLEUfeTWFVB0PJMUiiS1WydUhyphenhyphenfGR1q8H-HyHafzXA_V3flMB7SQf00IJF0dCFC48K2bbpsQnvCcEbKdfrW5lCBw5RSKgnqj0M9RhL_B7iD4jcct7iSzxt9n4gLzfAgS_v3wO_wld3kI/s72-c/server.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7826351361307333984.post-4487247889277988164</id><published>2012-09-25T13:29:00.001+02:00</published><updated>2012-10-03T18:35:33.668+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="DWES"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><title type='text'>¿Qué es Python?</title><content type='html'>&lt;center&gt;
&lt;iframe class=&quot;scribd_iframe_embed&quot; data-aspect-ratio=&quot;1.33333333333333&quot; data-auto-height=&quot;true&quot; fmeborder=&quot;0&quot; height=&quot;600&quot; id=&quot;doc_86730&quot; scrolling=&quot;no&quot; src=&quot;http://www.scribd.com/embeds/108464402/content?start_page=1&amp;amp;view_mode=scroll&amp;amp;access_key=key-195z3j1hywv52kofs1po&quot; width=&quot;800&quot;&gt;&lt;/iframe&gt;&lt;/center&gt;
&lt;center&gt;
&lt;iframe class=&quot;scribd_iframe_embed&quot; data-aspect-ratio=&quot;0.772727272727273&quot; data-auto-height=&quot;false&quot; frameborder=&quot;0&quot; height=&quot;450&quot; id=&quot;doc_57502&quot; scrolling=&quot;no&quot; src=&quot;http://www.scribd.com/embeds/108464434/content?start_page=1&amp;amp;view_mode=scroll&amp;amp;access_key=key-202qna5f53lsz2bl5au2&quot; width=&quot;800&quot;&gt;&lt;/iframe&gt;&lt;/center&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7826351361307333984/posts/default/4487247889277988164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7826351361307333984/posts/default/4487247889277988164'/><link rel='alternate' type='text/html' href='http://kismet010.blogspot.com/2012/09/blog-post_25.html' title='¿Qué es Python?'/><author><name>Kismet</name><uri>http://www.blogger.com/profile/16025395445741058472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7826351361307333984.post-5851507624148089554</id><published>2012-09-23T18:06:00.001+02:00</published><updated>2012-10-03T20:59:59.119+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Acerca de"/><title type='text'></title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;blockquote&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Destiny#Destiny_and_kismet&quot;&gt;&lt;b&gt;Kismet&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; es una palabra que deriva del árabe qismah, y fue introducida  al inglés del turco kısmet. Significa &quot;la voluntad de Alá&quot; o &quot;parte,  mucho o destino&quot;. En inglés es sinónimo de destino o fe.&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;es&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/KISS_principle&quot;&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;KISS&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/span&gt; &lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;es&lt;/span&gt; &lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;un acrónimo&lt;/span&gt; d&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;el&lt;/span&gt; &lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;principio&lt;/span&gt; &lt;span class=&quot;hps atn&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;keep it&lt;/span&gt; &lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;simple&lt;/span&gt;, s&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;tupid&lt;/span&gt;&lt;span class=&quot;&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt; (&quot;mantelo simple, estúpido!&quot;)&lt;/span&gt; o &lt;/span&gt;&quot;keep it short and simple&quot;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;es&quot;&gt;&lt;span class=&quot;&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt; (&quot;mantenlo breve&lt;/span&gt; &lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;y sencillo&lt;/span&gt;&lt;span class=&quot;&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;&quot;&lt;/span&gt;). &lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;Establece &lt;/span&gt;&lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;que&lt;/span&gt; &lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;la simplicidad&lt;/span&gt; &lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;debe ser&lt;/span&gt; &lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;el objetivo&lt;/span&gt; &lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;clave en el&lt;/span&gt; desarrollo &lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;y&lt;/span&gt; &lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;la complejidad innecesaria&lt;/span&gt; &lt;span class=&quot;hps&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;debe evitarse&lt;/span&gt;&lt;span class=&quot;&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;es&quot;&gt;&lt;span class=&quot;&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Antonio Cañas &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;es&quot;&gt;&lt;span class=&quot;&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;kismet010&lt;i&gt; [at] &lt;/i&gt;gmail &lt;i&gt;[dot] &lt;/i&gt;com&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;es&quot;&gt;&lt;span class=&quot;&quot; title=&quot;Haz clic para obtener otras posibles traducciones&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;i&gt;&lt;a href=&quot;http://www.blogger.com/&quot; target=&quot;_blank&quot;&gt;Este sitio usa Blogger&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7826351361307333984/posts/default/5851507624148089554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7826351361307333984/posts/default/5851507624148089554'/><link rel='alternate' type='text/html' href='http://kismet010.blogspot.com/2012/09/acerca-de.html' title=''/><author><name>Kismet</name><uri>http://www.blogger.com/profile/16025395445741058472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry></feed>