<?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/"
	>

<channel>
	<title>Jon Segador &#187; servidor</title>
	<atom:link href="http://jonsegador.com/tag/servidor/feed/" rel="self" type="application/rss+xml" />
	<link>http://jonsegador.com</link>
	<description>Desarrollador web y android, con todo lo que ello implica</description>
	<lastBuildDate>Wed, 16 May 2012 08:34:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Instalar Symfony2 desde cero</title>
		<link>http://jonsegador.com/2011/07/instalar-symfony2-desde-cero/</link>
		<comments>http://jonsegador.com/2011/07/instalar-symfony2-desde-cero/#comments</comments>
		<pubDate>Tue, 05 Jul 2011 22:23:07 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Symfony2]]></category>
		<category><![CDATA[localhost]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[servidor]]></category>
		<category><![CDATA[Symfony]]></category>

		<guid isPermaLink="false">http://jonsegador.com/?p=463</guid>
		<description><![CDATA[Nos vamos acercando inevitablemente al cambio de Symfony 1.x a Symfony2 y la conclusión que he sacado de mi asistencia al evento #desymfony es que cuanto antes nos pongamos con ello, mucho mejor. Symfony2 mejora a su predecesor en numerosos aspectos y se convertirá en el framework definitivo para el desarrollo de aplicaciones web en [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Nos vamos acercando inevitablemente al cambio de Symfony 1.x a Symfony2</strong> y la conclusión que he sacado de mi asistencia al evento <a href="http://twitter.com/#!/search/desymfony">#desymfony</a> es que cuanto antes nos pongamos con ello, mucho mejor. <a href="http://jonsegador.com/category/symfony2/">Symfony2</a> mejora a su predecesor en numerosos aspectos y <strong>se convertirá en el framework definitivo para el desarrollo de aplicaciones web</strong> en el futuro. Si quieres saber todas las nuevas características de esta versión, te recomiendo que visites la web oficial de Symfony2: <a href="http://symfony.com/">http://symfony.com/</a>.</p>
<p><strong>En este primer post procederemos a su instalación</strong>. Personalmente, me gusta programar en local (en mi propio ordenador) y una vez haya acabado con el desarrollo o quiera probarlo en un entorno de producción, hacer el deploy a un servidor real. Por ello, <strong>primero voy a explicar como configurar un servidor web en nuestro ordenador</strong> y después procederemos con la instalación de Symfony2.</p>
<p>La instalación la voy a hacer en un entorno Linux con la distribución Ubuntu 11.04. Adaptar los comandos según nuestra distribución (o sistema operativo).</p>
<p>1) Primero instalamos Apache</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;"># apt-get install apache2 apache2.2-common apache2-utils ssl-cert  apache2-mpm-prefork</pre></div></div>

<p>2) Instalamos y habilitamos el módulo para utilizar modrewrite</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;"># apt-get install libapache2-mod-proxy-html</pre></div></div>

<p>Para habilitar el modulo en apache, ejecutamos:</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;"># a2enmod rewrite</pre></div></div>

<p>3) Instalamos PHP5</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;"># apt-get install php5 libapache2-mod-php5 php5-common php5-intl</pre></div></div>

<p>4) Instalamos Mysql</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;"># apt-get install mysql-server mysql-client php5-mysql</pre></div></div>

<p>5) Por último instalamos phpmyadmin (opcional)</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;"># apt-get install phpmyadmin</pre></div></div>

<p>Con estos sencillos pasos ya tendremos un servidor web instalado en nuestro ordenador.</p>
<p>Ahora continuamos con la instalación de Symfony2. <strong>Mi IDE favorito para programar es <a href="http://jonsegador.com/2010/10/instalar-netbeans-con-soporte-svnssh-y-theme-de-colores-oscuros/">Netbeans</a></strong>, por lo que es el que utilizaré en este ejemplo. Si no lo hemos cambiado, nuestro workspace (donde se encuentran los proyectos a los que podemos acceder desde Netbeans) lo encontraremos en la carpeta NetBeansProjects en nuestra carpeta Home.</p>
<p>Procedemos a crear una nueva carpeta con el nombre de nuestro proyecto en el workspace de Netbeans:</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">$ <span style="color: #b1b100; font-weight: bold;">mkdir</span> $HOME/NetBeansProjects/miproyecto</pre></div></div>

<p>Entramos en la carpeta que acabamos de crear:</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">$ <span style="color: #b1b100; font-weight: bold;">cd</span> $HOME/NetBeansProjects/miproyecto</pre></div></div>

<p>Descargamos Symfony2 (comprueba la última versión en <a href="http://symfony.com/download">http://symfony.com/download</a>):</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">$ wget http://symfony.com/download?v=Symfony_Standard_Vendors_2.0.0-RC4.tgz</pre></div></div>

<p>Y descomprimimos:</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">$ tar zxvf Symfony_Standard_Vendors_2.0.0-RC4.tgz</pre></div></div>

<p>Borramos el archivo comprimido que hemos descargado:</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">$ rm Symfony_Standard_Vendors_2.0.0-RC4.tgz</pre></div></div>

<p><strong>Ya tenemos instalado un proyecto básico en Symfony2</strong>. Ahora vamos a configurar Apache para poder acceder desde nuestro navegador favorito.</p>
<p>Creamos un nuevo archivo donde irá la configuración de nuestra web:</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;"># vi /etc/apache2/sites-available/miproyecto</pre></div></div>

<p>Que contendrá el siguiente contenido (cambia &#8220;jonseg&#8221; por el nombre de tu carpeta Home):</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">&lt;VirtualHost *:<span style="color: #cc66cc;">80</span>&gt;
   ServerAdmin email<span style="color: #33cc33;">@</span>email.com
   DocumentRoot /home/jonseg/NetBeansProjects/miproyecto/Symfony/web
   ServerName miproyecto.com
   ServerAlias *.miproyecto.com
   ErrorLog /var/log/apache2/miproyecto_error.log
   CustomLog /var/log/apache2/miproyecto_access.log common
   DirectoryIndex index.php
   &lt;Directory &quot;/home/jonseg/NetBeansProjects/miproyecto/Symfony/web&quot;&gt;
        Options Indexes FollowSymLinks
        Order Allow,Deny
        Allow from all
        AllowOverride all
        &lt;IfModule mod_php5.c&gt;
           php_admin_flag engine on
           php_admin_flag safe_mode off
           php_admin_value open_basedir none
        &lt;/ifModule&gt;
   &lt;/Directory&gt;
&lt;/VirtualHost&gt;</pre></div></div>

<p>Creamos un enlace simbólico de este archivo en sites-enabled para indicar que es una web activa:</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;"># ln -s /etc/apache2/sites-available/miproyecto /etc/apache2/sites-enabled/miproyecto</pre></div></div>

<p>Para que se apliquen los cambios, reiniciamos el servidor Apache:</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;"># /etc/init.d/apache2 restart</pre></div></div>

<p>Por último, forzamos en el archivo /etc/hosts la ip de nuestra web, que en este caso será localhost o 127.0.0.1</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;"># vim /etc/hosts</pre></div></div>

<p>Y añadimos esta línea al final del fichero:</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">127.0.0.1 www.miproyecto.com miproyecto.com</pre></div></div>

<p>Después de todo esto, <strong>ya podremos acceder a nuestro nuevo proyecto en Symfony2 desde el navegador</strong> escribiendo la url que hemos configurado.</p>
<p>Como primer paso, debemos comprobar si cumplimos con la configuración básica para que funcione nuestro proyecto. Lo haremos desde la siguiente url:</p>
<p>http://miproyecto.com/config.php</p>
<p><a href="http://jonsegador.com/wp-content/symfony2_config.png"><img src="http://jonsegador.com/wp-content/symfony2_config.png" alt="Symfony2 config" /></a></p>
<p>Como vemos, nos encontramos con dos problemas (podríamos tener más, deberemos resolverlos según sea necesario). En este caso el error es que las carpetas app/cache y app/logs no tienen los permisos necesarios.</p>
<p>Lo arreglaremos así:</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">chmod <span style="color: #cc66cc;">777</span> $HOME/NetBeansProjects/miproyecto/Symfony/app/cache
chmod <span style="color: #cc66cc;">777</span> $HOME/NetBeansProjects/miproyecto/Symfony/app/logs</pre></div></div>

<p>Una vez arreglados los problemas, ya podemos acceder a nuestro proyecto web con Symfony2 mediante esta url:</p>
<p>http://miproyecto.com/app_dev.php/</p>
<p><a href="http://jonsegador.com/wp-content/symfony2_home.png"><img src="http://jonsegador.com/wp-content/symfony2_home.png" alt="Symfony2 home" /></a></p>
<p>En próximos artículos nos iremos adentrando poco a poco en el desarrollo de Bundles, las plantillas con Twig, etc.</p>
<p>Cualquier duda, en los comentarios!</p>
]]></content:encoded>
			<wfw:commentRss>http://jonsegador.com/2011/07/instalar-symfony2-desde-cero/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Cambiar puerto 22 del servidor ssh</title>
		<link>http://jonsegador.com/2010/06/cambiar-puerto-22-servidor-ssh/</link>
		<comments>http://jonsegador.com/2010/06/cambiar-puerto-22-servidor-ssh/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 17:50:13 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Servidores]]></category>
		<category><![CDATA[puerto]]></category>
		<category><![CDATA[servidor]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://jonsegador.com/?p=239</guid>
		<description><![CDATA[Si queremos tener más seguridad en nuestro servidor, un truco fácil es el de cambiar el puerto del servidor ssh. Por defecto, la conexión se hace en el puerto 22, que es uno de los puertos más utilizados por scripts maliciosos para realizar ataques por fuerza bruta o denegación de servicio. Cambiar el puerto del [...]]]></description>
			<content:encoded><![CDATA[<p>Si queremos tener más seguridad en nuestro servidor, un truco fácil es el de cambiar el puerto del servidor ssh. Por defecto, la conexión se hace en el puerto 22, que es uno de los puertos más utilizados por scripts maliciosos para realizar ataques por fuerza bruta o denegación de servicio.</p>
<p>Cambiar el puerto del ssh es tan sencillo como hacer lo siguiente:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">nano <span style="color: #339933;">/</span>etc<span style="color: #339933;">/</span>ssh<span style="color: #339933;">/</span>sshd_config</pre></td></tr></table></div>

<p>Editamos la linea dice</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#Port 22</span></pre></td></tr></table></div>

<p>La descomentamos (quitamos la almoadilla) y cambiamos el 22 por el puerto que queramos. Nos tenemos que asegurar de que el puerto que elijamos no esté ya en uso (Aquí tenemos una <a href="http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers">lista de puertos</a>). Por ejemplo, si elegimos el puerto 27, la línea quedará:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">Port <span style="color: #cc66cc;">27</span></pre></td></tr></table></div>

<p>Ahora editamos el archivo /etc/services</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">nano <span style="color: #339933;">/</span>etc<span style="color: #339933;">/</span>services</pre></td></tr></table></div>

<p>buscamos las líneas:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">ssh         <span style="color: #cc66cc;">22</span><span style="color: #339933;">/</span>tcp
ssh         <span style="color: #cc66cc;">22</span><span style="color: #339933;">/</span>udp</pre></td></tr></table></div>

<p>y las cambiamos por el nuevo puerto que hemos seleccionado antes:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">ssh         <span style="color: #cc66cc;">27</span><span style="color: #339933;">/</span>tcp
ssh         <span style="color: #cc66cc;">27</span><span style="color: #339933;">/</span>udp</pre></td></tr></table></div>

<p>Ahora paramos e iniciamos el servidor ssh:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">/</span>etc<span style="color: #339933;">/</span>init<span style="color: #339933;">.</span>d<span style="color: #339933;">/</span>ssh stop</pre></td></tr></table></div>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">/</span>etc<span style="color: #339933;">/</span>init<span style="color: #339933;">.</span>d<span style="color: #339933;">/</span>ssh start</pre></td></tr></table></div>

<p>Y ya lo tenemos. A partir de ahora, cuando queramos acceder a nuestro servidor mediante ssh, deberemos especificar el puerto por el que nos queremos conectar. Por ejemplo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">ssh usuario<span style="color: #339933;">@</span>192<span style="color: #339933;">.</span>168<span style="color: #339933;">.</span>1<span style="color: #339933;">.</span>100 <span style="color: #339933;">-</span>p27</pre></td></tr></table></div>

<p>Puede que te salte algún error relacionado con las public keys. Es normal, ya que anteriormente ha detectado movimiento en el puerto 22. Simplemente hay que borrar esos public keys:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"> rm ~<span style="color: #339933;">/.</span>ssh<span style="color: #339933;">/</span>known_hosts</pre></td></tr></table></div>

<p>A partir de ahora tendremos nuestro servidor ssh un poco más seguro.</p>
]]></content:encoded>
			<wfw:commentRss>http://jonsegador.com/2010/06/cambiar-puerto-22-servidor-ssh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mostrar/cargar imagen externa en una aplicación Android</title>
		<link>http://jonsegador.com/2010/03/mostrarcargar-imagen-externa-en-una-aplicacion-android/</link>
		<comments>http://jonsegador.com/2010/03/mostrarcargar-imagen-externa-en-una-aplicacion-android/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 13:52:30 +0000</pubDate>
		<dc:creator>Jon</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[cargar]]></category>
		<category><![CDATA[imagen]]></category>
		<category><![CDATA[mostrar]]></category>
		<category><![CDATA[servidor]]></category>

		<guid isPermaLink="false">http://jonsegador.com/?p=176</guid>
		<description><![CDATA[Muchas veces nos encontramos con el problema de tener que cargar imagenes, que tenemos alojadas en un servidor externo, en nuestra aplicación Android. Las imágenes básicas las podemos incluir en la propia aplicación pero imágenes como, por ejemplo, los avatares de los usuarios los tenemos que cargar directamente desde el servidor. Primero creamos el layout [...]]]></description>
			<content:encoded><![CDATA[<p>Muchas veces nos encontramos con el problema de tener que cargar imagenes, que tenemos alojadas en un servidor externo, en nuestra aplicación Android. Las imágenes básicas las podemos incluir en la propia aplicación pero imágenes como, por ejemplo, los avatares de los usuarios los tenemos que cargar directamente desde el servidor.</p>
<p>Primero creamos el layout (main.xml):</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #339933;">&lt;?</span>xml version<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;1.0&quot;</span> encoding<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;utf-8&quot;</span> <span style="color: #339933;">?&gt;</span>
<span style="color: #339933;">&lt;</span>LinearLayout xmlns<span style="color: #339933;">:</span>android<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;http://schemas.android.com/apk/res/android&quot;</span>
    android<span style="color: #339933;">:</span>orientation<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;vertical&quot;</span>
    android<span style="color: #339933;">:</span>layout_width<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;fill_parent&quot;</span>
    android<span style="color: #339933;">:</span>layout_height<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;fill_parent&quot;</span><span style="color: #339933;">&gt;</span> 
&nbsp;
 <span style="color: #339933;">&lt;</span>ImageView android<span style="color: #339933;">:</span>id<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;@+id/image_view&quot;</span>
    android<span style="color: #339933;">:</span>layout_width<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;wrap_content&quot;</span>
    android<span style="color: #339933;">:</span>layout_height<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;wrap_content&quot;</span> <span style="color: #339933;">/&gt;</span>
&nbsp;
<span style="color: #339933;">&lt;/</span>LinearLayout<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p>Ahora creamos la activity que cargará la imagen del servidor y la mostrará en el layout anterior (Main.java):</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">com.jonsegador.examples.externalimage</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.IOException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.net.HttpURLConnection</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.net.URL</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Activity</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.graphics.Bitmap</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.graphics.BitmapFactory</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Bundle</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.ImageView</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.Toast</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Main <span style="color: #000000; font-weight: bold;">extends</span> Activity <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">private</span> ImageView imageView<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> Bitmap loadedImage<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">String</span> imageHttpAddress <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://jonsegador.com/wp-content/apezz.png&quot;</span><span style="color: #339933;">;</span>            
&nbsp;
    @Override
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle savedInstanceState<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>savedInstanceState<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        setContentView<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">main</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        imageView <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>ImageView<span style="color: #009900;">&#41;</span> findViewById<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">image_view</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>       
        downloadFile<span style="color: #009900;">&#40;</span>imageHttpAddress<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">void</span> downloadFile<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> imageHttpAddress<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #003399;">URL</span> imageUrl <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
            imageUrl <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">URL</span><span style="color: #009900;">&#40;</span>imageHttpAddress<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #003399;">HttpURLConnection</span> conn <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">HttpURLConnection</span><span style="color: #009900;">&#41;</span> imageUrl.<span style="color: #006633;">openConnection</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            conn.<span style="color: #006633;">connect</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            loadedImage <span style="color: #339933;">=</span> BitmapFactory.<span style="color: #006633;">decodeStream</span><span style="color: #009900;">&#40;</span>conn.<span style="color: #006633;">getInputStream</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            imageView.<span style="color: #006633;">setImageBitmap</span><span style="color: #009900;">&#40;</span>loadedImage<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">IOException</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            Toast.<span style="color: #006633;">makeText</span><span style="color: #009900;">&#40;</span>getApplicationContext<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, <span style="color: #0000ff;">&quot;Error cargando la imagen: &quot;</span><span style="color: #339933;">+</span>e.<span style="color: #006633;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, Toast.<span style="color: #006633;">LENGTH_LONG</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Por último, incluimos la Activity en el AndroidManifest.xml y damos permisos para acceder a internet.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #339933;">&lt;?</span>xml version<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;1.0&quot;</span> encoding<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;utf-8&quot;</span><span style="color: #339933;">?&gt;</span>
<span style="color: #339933;">&lt;</span>manifest xmlns<span style="color: #339933;">:</span>android<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;http://schemas.android.com/apk/res/android&quot;</span>
      <span style="color: #000000; font-weight: bold;">package</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;com.jonsegador.examples.externalimage&quot;</span>
      android<span style="color: #339933;">:</span>versionCode<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;1&quot;</span>
      android<span style="color: #339933;">:</span>versionName<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;1.0&quot;</span><span style="color: #339933;">&gt;</span>
    <span style="color: #339933;">&lt;</span>application android<span style="color: #339933;">:</span>icon<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;@drawable/icon&quot;</span> android<span style="color: #339933;">:</span>label<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;@string/app_name&quot;</span><span style="color: #339933;">&gt;</span>
        <span style="color: #339933;">&lt;</span>activity android<span style="color: #339933;">:</span>name<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;.Main&quot;</span> android<span style="color: #339933;">:</span>label<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;@string/app_name&quot;</span><span style="color: #339933;">&gt;</span>
            <span style="color: #339933;">&lt;</span>intent<span style="color: #339933;">-</span>filter<span style="color: #339933;">&gt;</span>
                <span style="color: #339933;">&lt;</span>action android<span style="color: #339933;">:</span>name<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;android.intent.action.MAIN&quot;</span> <span style="color: #339933;">/&gt;</span>
                <span style="color: #339933;">&lt;</span>category android<span style="color: #339933;">:</span>name<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;android.intent.category.LAUNCHER&quot;</span> <span style="color: #339933;">/&gt;</span>
            <span style="color: #339933;">&lt;/</span>intent<span style="color: #339933;">-</span>filter<span style="color: #339933;">&gt;</span>
        <span style="color: #339933;">&lt;/</span>activity<span style="color: #339933;">&gt;</span>    
    <span style="color: #339933;">&lt;/</span>application<span style="color: #339933;">&gt;</span>
    <span style="color: #339933;">&lt;</span>uses<span style="color: #339933;">-</span>sdk android<span style="color: #339933;">:</span>minSdkVersion<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;3&quot;</span> <span style="color: #339933;">/&gt;</span>  
    <span style="color: #339933;">&lt;</span>uses<span style="color: #339933;">-</span>permission android<span style="color: #339933;">:</span>name<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;android.permission.INTERNET&quot;</span> <span style="color: #339933;">/&gt;</span>
<span style="color: #339933;">&lt;/</span>manifest<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p>Y este debería de ser el resultado:<br />
<img src="http://jonsegador.com/wp-content/imagen_externa_android-199x300.png" alt="imagen_externa_android" title="imagen_externa_android" width="199" height="300" class="alignnone size-medium wp-image-180" /></p>
]]></content:encoded>
			<wfw:commentRss>http://jonsegador.com/2010/03/mostrarcargar-imagen-externa-en-una-aplicacion-android/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

