<?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: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-8958009022163622719</id><updated>2012-02-17T03:13:19.382+01:00</updated><category term='PHP'/><category term='Cíclope'/><category term='iPhone'/><category term='Bases de datos'/><category term='MySQL'/><category term='Linux'/><category term='Mac OS X'/><category term='Sistemas'/><category term='Diseño'/><category term='iPad'/><category term='SQLite'/><category term='Mockups'/><category term='Apple'/><category term='iPhone Developer Program'/><category term='GMail'/><category term='Google'/><category term='Astronomía'/><category term='Snow Leopard'/><category term='Desarrollo'/><category term='Móviles'/><category term='Formación'/><title type='text'>Allá que vamos...</title><subtitle type='html'>El blog de Angel Pinazo: Tecnología, informática y aventuras sin par</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://angelpinazo.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://angelpinazo.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Angel Pinazo</name><uri>http://www.blogger.com/profile/16965758855624648781</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_zQzgleUJS0g/SX7I4jz1RcI/AAAAAAAAAEY/V7Qlbnx9png/S220/n1251415356_2978.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8958009022163622719.post-8791512883565584318</id><published>2010-11-17T14:26:00.003+01:00</published><updated>2010-11-17T14:32:36.916+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Formación'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='iPad'/><title type='text'>Jornadas sobre iPhone e iPad</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Pues nada, las cosas que tiene ser friki. Llega uno un día a la empresa con un iPad en la mano, y al poco te toca dar cursitos sobre el tema, je, je... ;-)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ahora mismo en estas fechas se están celebrando las &lt;i&gt;&lt;b&gt;Jornadas sobre desarrollo móvil con Android e iPhone&lt;/b&gt;&lt;/i&gt;, donde el que viste y calza ha dedicado un par de días a hablar de lo suyo ante una sala llena de gente que preferiría estar durmiento la siesta... &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Por aquí anda el temario: &lt;a href="http://www.atsistemas.com/eventos.aspx?n=44"&gt;http://www.atsistemas.com/eventos.aspx?n=44&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Han sido un par de tardes curiosas, no mucho tiempo para mostrar las virtudes de la programación para iOS, pero sí suficiente para llevarse claros algunos conceptos a casita... Y ahí, ponerse a indagar. ¡Viva la curiosidad! :-)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8958009022163622719-8791512883565584318?l=angelpinazo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angelpinazo.blogspot.com/feeds/8791512883565584318/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://angelpinazo.blogspot.com/2010/11/jornadas-sobre-iphone-e-ipad.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default/8791512883565584318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default/8791512883565584318'/><link rel='alternate' type='text/html' href='http://angelpinazo.blogspot.com/2010/11/jornadas-sobre-iphone-e-ipad.html' title='Jornadas sobre iPhone e iPad'/><author><name>Angel Pinazo</name><uri>http://www.blogger.com/profile/16965758855624648781</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_zQzgleUJS0g/SX7I4jz1RcI/AAAAAAAAAEY/V7Qlbnx9png/S220/n1251415356_2978.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8958009022163622719.post-4028298696011228204</id><published>2009-03-24T14:52:00.002+01:00</published><updated>2009-03-24T14:57:04.744+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sistemas'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS X'/><title type='text'>Mac: Recuperar la contraseña de usuario</title><content type='html'>&lt;div style="text-align: justify;"&gt;Cuando uno va llegando ya a cierta edad, (o ha pasado una borrascosa juventud), puede empezar a notar ciertos achaques, como leves pérdidas de memoria. Se nota en cosas sencillas, como olvidar la contraseña del usuario del ordenador. :-P Sí, claro, estaba activado el modo de login automático desde el mismo día en que lo compré... Y como en meses y meses no había hecho nunca log off, pues claro, pasa lo que pasa...&lt;br /&gt;&lt;br /&gt;El cacharro en cuestión es un Mac mini que tengo como servidor casero. Éste lleva el sistema operativo Mac OS X. Con Windows y Linux estas cosas están más vistas que el TBO, pero con Mac OSX... ¿Qué hacer ahora? La cosa es muy sencilla, y muy al estilo UNIX: arrancar en modo mono usuario y resetear la clave desde la consola. Para ello hay que seguir estos pasos:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;ol style="text-align: justify;"&gt;&lt;li&gt;Reiniciar o encender el ordenador. &lt;/li&gt;&lt;li&gt;Mientras tanto, pulsar la combinación de teclas "Cmd + S". Esto hace que se arrance en modo mono usuario.&lt;/li&gt;&lt;li&gt;Al minuto, aparece una consola de comandos. Ejecutamos estos; ojo, que tardarán lo suyo en responder:&lt;/li&gt;&lt;ol&gt;&lt;li&gt;fsck -fy&lt;/li&gt;&lt;li&gt;mount -uw&lt;/li&gt;&lt;li&gt; launchctl load /System/Library/LaunchDaemons/com.apple.DirectoryServices.plist&lt;/li&gt;&lt;li&gt;dscl . -passwd /Users/username password&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;En el último paso, reemplazamos username y password por el nombre de usuario y la nueva clave que le daremos. Ahora sólo queda reiniciar, con el comando... &lt;span style="font-style: italic;"&gt;reboot&lt;/span&gt;. Hale, pues cuando la máquina arranque de nuevo, podremos logarnos otra vez. Y hasta el próximo olvido. ;-)&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8958009022163622719-4028298696011228204?l=angelpinazo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angelpinazo.blogspot.com/feeds/4028298696011228204/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://angelpinazo.blogspot.com/2009/03/mac-recuperar-la-contrasena-de-usuario.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default/4028298696011228204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default/4028298696011228204'/><link rel='alternate' type='text/html' href='http://angelpinazo.blogspot.com/2009/03/mac-recuperar-la-contrasena-de-usuario.html' title='Mac: Recuperar la contraseña de usuario'/><author><name>Angel Pinazo</name><uri>http://www.blogger.com/profile/16965758855624648781</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_zQzgleUJS0g/SX7I4jz1RcI/AAAAAAAAAEY/V7Qlbnx9png/S220/n1251415356_2978.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8958009022163622719.post-6237560888137011991</id><published>2009-03-10T18:22:00.000+01:00</published><updated>2009-03-18T17:06:04.270+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Astronomía'/><category scheme='http://www.blogger.com/atom/ns#' term='Cíclope'/><title type='text'>Inaguración del Observatorio Montegancedo</title><content type='html'>&lt;div style="text-align: justify;"&gt;Hace ya un par de meses que se inauguró el &lt;a href="http://om.fi.upm.es/CiclopeAstro/?locale=es"&gt;Observatorio Montegancedo&lt;/a&gt; y desde entonces ha estado presente en no pocos medios. Está situado en la Facultad de Informática de la Universidad Politécnica de Madrid, donde uno pasó gran parte de su juventud, ah, qué tiempos aquellos... :-9&lt;br /&gt;&lt;br /&gt;A principios de esta década, (cómo suena eso...), estuve participando en su comienzos y en el desarrollo de aplicaciones para su control vía web. Eso sólo era la semilla de lo que el observatorio es hoy en día: uno de los escasísimos sistemas web de telecontrol de telescopios. Y además tiene una particularidad, que es de carácter libre y público. A través de un sistema de gestión de reservas, cualquiera puede apuntarse y pedir vez para ser astrónomo por un rato. Como afición, es genial, y como experiencia educativa para los infantes, pues no digamos.&lt;br /&gt;&lt;br /&gt; &lt;/div&gt;&lt;div id="i1es" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img style="width: 512px; height: 340px;" src="http://docs.google.com/File?id=dd6nw2cr_381fdzt5nck_b" /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;El telescopio está controlado vía una aplicación web, que permite moverlo, enfocar y tomar fotografías en tiempo real. Ese tipo de interacción proporciona una experiencia muy completa. Para obtener mayor información, se han acoplado cámaras al ocular y al telescopio auxiliar, y también hay webcams que dan una visión del interior y el exterior de la cúpula.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="idai" style="padding: 1em 0pt; text-align: center;"&gt;&lt;div id="q0t3" style="padding: 1em 0pt;"&gt;&lt;img style="width: 648px; height: 277.443px;" src="http://docs.google.com/File?id=dd6nw2cr_385gj84twf3_b" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;En fin, que esta web hay que visitarla. Se merecen todo el apoyo posible, por el esfuerzo y el trabajo que están realizando.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8958009022163622719-6237560888137011991?l=angelpinazo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angelpinazo.blogspot.com/feeds/6237560888137011991/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://angelpinazo.blogspot.com/2009/03/inaguracion-del-observatorio.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default/6237560888137011991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default/6237560888137011991'/><link rel='alternate' type='text/html' href='http://angelpinazo.blogspot.com/2009/03/inaguracion-del-observatorio.html' title='Inaguración del Observatorio Montegancedo'/><author><name>Angel Pinazo</name><uri>http://www.blogger.com/profile/16965758855624648781</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_zQzgleUJS0g/SX7I4jz1RcI/AAAAAAAAAEY/V7Qlbnx9png/S220/n1251415356_2978.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8958009022163622719.post-1066420986168236241</id><published>2009-02-24T12:45:00.000+01:00</published><updated>2009-02-24T12:49:58.928+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GMail'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>¡GMail está caído...!</title><content type='html'>&lt;div style="text-align: justify;"&gt;Pues llevo un par de horas intentado entrar en alguna de mis cuentas de &lt;a href="http://gmail.com"&gt;GMail,&lt;/a&gt; (sí tengo más de una, vicios de juventud), pero no hay forma. No para de salir este indeseado mensaje:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="dqm." style="padding: 1em 0pt; text-align: center;"&gt;&lt;img style="width: 592px; height: 217px;" src="http://docs.google.com/File?id=dd6nw2cr_380hm35hh37_b" /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;¿Y ahora qué hago yo para leer mis importantísimos mensajes? ¿Cómo me voy a perder ese powerpoint de foticos chulas, ese video de chorradillas...? Ah, uno no sabe valorar las cosas buenas que tiene, hasta que las pierde... :-P&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8958009022163622719-1066420986168236241?l=angelpinazo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angelpinazo.blogspot.com/feeds/1066420986168236241/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://angelpinazo.blogspot.com/2009/02/gmail-esta-caido.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default/1066420986168236241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default/1066420986168236241'/><link rel='alternate' type='text/html' href='http://angelpinazo.blogspot.com/2009/02/gmail-esta-caido.html' title='¡GMail está caído...!'/><author><name>Angel Pinazo</name><uri>http://www.blogger.com/profile/16965758855624648781</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_zQzgleUJS0g/SX7I4jz1RcI/AAAAAAAAAEY/V7Qlbnx9png/S220/n1251415356_2978.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8958009022163622719.post-6768549404769057954</id><published>2009-02-19T16:32:00.000+01:00</published><updated>2009-02-19T16:38:04.913+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Snow Leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>Apple.com está caído...! :-O</title><content type='html'>Son las 16:32 y tanto &lt;a href="http://apple.com/"&gt;apple.com&lt;/a&gt; como &lt;a href="http://apple.es/"&gt;apple.es&lt;/a&gt; están caídos. ¿Nos espera alguna sorprendente sorpresa? ¿Alguna nueva novedad? ¿Pondrán a la venta el &lt;a href="http://www.engadget.com/2007/07/09/iphone-nano-rumors-heating-up-destined-for-q4/"&gt;iPhone nano&lt;/a&gt; o &lt;a href="http://www.apple.com/es/macosx/snowleopard/"&gt;Snow Leopard&lt;/a&gt;? ¿Será que se han ido a comer y han tocado el botón que no debían...?&lt;br /&gt;&lt;br /&gt;Porque la Apple Store sí que funciona, por lo menos en español... ¡Oh, misterio misterioso!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8958009022163622719-6768549404769057954?l=angelpinazo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angelpinazo.blogspot.com/feeds/6768549404769057954/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://angelpinazo.blogspot.com/2009/02/applecom-esta-caido-o.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default/6768549404769057954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default/6768549404769057954'/><link rel='alternate' type='text/html' href='http://angelpinazo.blogspot.com/2009/02/applecom-esta-caido-o.html' title='Apple.com está caído...! :-O'/><author><name>Angel Pinazo</name><uri>http://www.blogger.com/profile/16965758855624648781</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_zQzgleUJS0g/SX7I4jz1RcI/AAAAAAAAAEY/V7Qlbnx9png/S220/n1251415356_2978.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8958009022163622719.post-3415605198682569951</id><published>2009-02-18T19:49:00.004+01:00</published><updated>2009-02-18T21:39:13.311+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Móviles'/><title type='text'>iPhone: Cómo establecer el icono de la aplicación</title><content type='html'>&lt;div style="text-align: justify;"&gt;Toda aplicación de iPhone que se precie ha de tener un buen y lustroso icono que la represente. ¿Qué sería de Apple sin su manzana, por ejemplo? El icono, que parece una tontería, representa una parte muy importante de la imagen de nuestra aplicación. Si es feo, desalentará al usuario. Si es bonito, incluso hará que la aplicación parezca mejor. Y esto es especialmente relevante cuando queremos venderla... En la &lt;span style="font-style: italic;"&gt;App Store&lt;/span&gt;, lo primero que verá el comprador será ese icono. Debe entrarle por los ojos.&lt;br /&gt;&lt;br /&gt;Diseñar el icono perfecto es cosa que requiere de otras habilidades distintas de las mías. Lo que sí puedo decir es que, según las&lt;i&gt; iPhone Human Interface Guidelines&lt;/i&gt;, debe ser un fichero en formato &lt;i&gt;PNG&lt;/i&gt; con un tamaño de 57x57 pixels. Aunque doy fe de haber probado con tamaños superiores y formato &lt;i&gt;JPEG&lt;/i&gt;, y funcionan exactamente igual de bien. Eso sí, la imagen será reescalada automáticamente.&lt;br /&gt;&lt;br /&gt;Pero veamos ahora qué hacer con él, si ya lo tenemos. Tenemos que configurar la aplicación para que lo use, lo que es muy fácil. Abrimos nuestro proyecto con &lt;i&gt;XCode&lt;/i&gt; y ahora lo primero es importar el icono al proyecto. Para ello, arrastramos el fichero de la imagen a la carpeta &lt;i&gt;Resources&lt;/i&gt;. &lt;/div&gt;&lt;div id="ostt" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img style="width: 196px; height: 113px;" src="http://docs.google.com/File?id=dd6nw2cr_375fgpztpfp_b" /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;El siguiente paso es editar un fichero que también está allí:&lt;i&gt; Info.plist&lt;/i&gt;. No es más que un XML con entradas clave-valor. Y una de ellas se llama precisamente &lt;span style="font-style: italic;"&gt;"Icon file"&lt;/span&gt;. El valor que damos será, y ya sabéis por dónde voy, el nombre del fichero que acabamos de importar.&lt;br /&gt;&lt;/div&gt;&lt;div id="t2bd" style="padding: 1em 0pt; text-align: center;"&gt;&lt;div id="g335" style="padding: 1em 0pt;"&gt;&lt;img style="width: 389px; height: 120px;" src="http://docs.google.com/File?id=dd6nw2cr_376cgpn3bhb_b" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Con esto, lanzamos la aplicación, que se reinstalará en el emulador (o en el iPhone, si lo teníamos conectado). Y allí veremos nuestra aplicación con su precioso icono. :-)&lt;/div&gt;&lt;div id="rq__" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img style="width: 75px; height: 84px;" src="http://docs.google.com/File?id=dd6nw2cr_377cd48b2hk_b" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8958009022163622719-3415605198682569951?l=angelpinazo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angelpinazo.blogspot.com/feeds/3415605198682569951/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://angelpinazo.blogspot.com/2009/02/iphone-como-establecer-el-icono-de-la.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default/3415605198682569951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default/3415605198682569951'/><link rel='alternate' type='text/html' href='http://angelpinazo.blogspot.com/2009/02/iphone-como-establecer-el-icono-de-la.html' title='iPhone: Cómo establecer el icono de la aplicación'/><author><name>Angel Pinazo</name><uri>http://www.blogger.com/profile/16965758855624648781</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_zQzgleUJS0g/SX7I4jz1RcI/AAAAAAAAAEY/V7Qlbnx9png/S220/n1251415356_2978.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8958009022163622719.post-8217796245288883201</id><published>2009-02-07T12:27:00.002+01:00</published><updated>2009-02-08T16:14:55.600+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mockups'/><category scheme='http://www.blogger.com/atom/ns#' term='Desarrollo'/><category scheme='http://www.blogger.com/atom/ns#' term='Diseño'/><title type='text'>Bocetos de aplicaciones con Balsamiq Mockups</title><content type='html'>&lt;div style="text-align: justify;"&gt;Uno de los grandes problemas de los proyectos es el diseño de la interfaz de usuario. A pesar de todos los esfuerzos por separar la capa de presentación de la de servicio, es innegable que cualquier cambio en una pantalla puede desencadenar multitud de cambios en  el código. O bien podemos descubrir que los servicios que se han implementado son inadecuados para lo que se quiere mostrar al usuario.&lt;br /&gt;&lt;br /&gt;Por eso es fundamental tener claro, desde antes de acometer el desarrollo, cómo va a ser esa interfaz de usuario. Para esto a veces se usan PSDs. Son una gran forma de mostrar los colores, la estética, el estilo de una aplicación. Pero son completamente inútiles para definir la funcionalidad. Es como matar moscas a cañonazos.&lt;br /&gt;&lt;br /&gt;A veces, se recurre al uso de maquetas. No es mala idea, pero son costosas de hacer. Incluso requieren de programación, aunque sea para controlar el flujo entre pantallas, por muy huecas que estén. Y en otras ocasiones se utiliza algo mucho más ligero, como bocetos pintados a manos en papel o en la pizarra. Es una técnica ágil y directa, mucho más eficaz para discutir y acotar la funcionalidad de la aplicación. Pero los papeles se pierden y las pizarras se borran. Y no se pueden enseñar al cliente, al menos no de forma cómoda.&lt;br /&gt;&lt;br /&gt;Cotilleando por ahí, me he encontrado con una gran aplicación, perfecta para este objetivo. Es sencilla, intuitiva y en cinco minutos se pueden tener bocetos grandiosos. Su nombre es &lt;a href="http://www.balsamiq.com/"&gt;Balsamiq Mockups&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Para hacer un boceto, dispone de una serie de componentes que arrastraremos a un tablón de dibujo. Se trata de piezas como botones, combos, imágenes, cajas de texto, con los que se puede diseñar casi cualquier pantalla que se nos ocurra.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="z-mc" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img style="width: 521px; height: 111px;" src="http://docs.google.com/File?id=dd6nw2cr_373d6dn4dg6_b" /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Currándoselo un poco, se pueden obtener resultados fenomenales y pantallas como por ejemplo, esta:&lt;br /&gt;&lt;/div&gt;&lt;div id="lg5j" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img style="width: 554px; height: 479px;" src="http://docs.google.com/File?id=dd6nw2cr_372fwt59rft_b" /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt; Sí, parece algo complejo de hacer, pero después de probar esta herramienta, puedo decir que no se tardan más que unos pocos minutos en tener un buen boceto. Creo que es una buena idea dedicar una tarde a tener las principales pantallas de una aplicación, y luego enseñárselas al cliente durante una reunión, o enviarle las imágenes por email. Al trabajar sobre bocetos, es la mar de sencillo corregirlos, adaptarlos, recolocar los elementos, ... Incluso se puede hacer en vivo, enmedio de la discusión.&lt;br /&gt;&lt;br /&gt;Para comprender las ventajas del uso de los bocetos, sólo hay que pensar en todo el tiempo de desarrollo que se puede ahorrar. ¿Cuántas veces hemos desarrollado algo que luego no le ha gustado al cliente, visualmente? ¿O nos ha pedido cambios estéticos o de colocación de los componentes? ¿O se ha dado cuenta de lo que en realidad quiere sólo cuando ha visto la pantalla?&lt;br /&gt;&lt;br /&gt;Técnicamente hablando, &lt;a href="http://www.balsamiq.com/"&gt;Balsamiq Mockups&lt;/a&gt; está hecho en &lt;span style="font-style: italic; font-weight: bold;"&gt;Flex&lt;/span&gt;, y se puede utilizar como una aplicación de escritorio o embebido en el navegador, como es el caso de la demo que se encuentra en su web. Aparte de esto, también dispone de plugins para &lt;span style="font-style: italic;"&gt;Jira&lt;/span&gt; y para &lt;span style="font-style: italic;"&gt;XWiki&lt;/span&gt;. Ah, pero eso sí... Me temo que es una aplicación de pago. No es nada cara para todo el trabajo que nos ahorra, son apenas $79. Incluso existe alguna posibilidad de obtenerla gratis... Como por ejemplo, hablar de ella en un blog :-D&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8958009022163622719-8217796245288883201?l=angelpinazo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.balsamiq.com/' title='Bocetos de aplicaciones con Balsamiq Mockups'/><link rel='replies' type='application/atom+xml' href='http://angelpinazo.blogspot.com/feeds/8217796245288883201/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://angelpinazo.blogspot.com/2009/02/bocetos-de-aplicaciones-con-balsamiq.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default/8217796245288883201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default/8217796245288883201'/><link rel='alternate' type='text/html' href='http://angelpinazo.blogspot.com/2009/02/bocetos-de-aplicaciones-con-balsamiq.html' title='Bocetos de aplicaciones con Balsamiq Mockups'/><author><name>Angel Pinazo</name><uri>http://www.blogger.com/profile/16965758855624648781</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_zQzgleUJS0g/SX7I4jz1RcI/AAAAAAAAAEY/V7Qlbnx9png/S220/n1251415356_2978.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8958009022163622719.post-1083374811891694843</id><published>2009-02-03T19:36:00.002+01:00</published><updated>2009-02-03T19:36:00.493+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone Developer Program'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><title type='text'>iPhone: Entrar en el iPhone Developer Program (3)</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;b&gt;Parte 3 - Registrando el dispositivo&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Lo primero que tenemos que hacer es obtener el llamado &lt;b&gt;&lt;i&gt;Device ID&lt;/i&gt;&lt;/b&gt;, que es único de cada iPhone. Para ello lo conectamos a nuestro Mac y abrimos &lt;i&gt;XCode&lt;/i&gt;, y luego el menú &lt;i&gt;Window/Organizer&lt;/i&gt;. En él veremos nuestro iPhone en la lista de dispositivos. Pinchando sobre él, aparecerá la información que necesitamos: el identificador, como una cadena hexadecimal de 40 caracteres.&lt;br /&gt;&lt;/div&gt;&lt;div id="wmba" style="padding: 1em 0pt; text-align: justify;"&gt;&lt;div id="nj_f" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img style="width: 578px; height: 118px;" src="http://docs.google.com/File?id=dd6nw2cr_367c44574hd_b" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Como siempre, nos vamos al &lt;i&gt;Program Portal&lt;/i&gt;, en el iPhone Dev Center.  Y dentro de esa web, seleccionamos la sección &lt;i&gt;"Devices"&lt;/i&gt;, pestaña &lt;i&gt;"Manage"&lt;/i&gt; y pulsamos &lt;i&gt;"Add Device"&lt;/i&gt;. Introducimos la información que se nos pide: el identificador y el nombre del dispositivo, que son los datos que hemos tomado en el paso anterior.&lt;br /&gt;&lt;/div&gt;&lt;div id="co1g" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img style="width: 603px; height: 156px;" src="http://docs.google.com/File?id=dd6nw2cr_368fhkd24dv_b" /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;Y le damos a submit, con lo que el dispositivo queda registrado. Ya está, tan sencillo como eso.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8958009022163622719-1083374811891694843?l=angelpinazo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angelpinazo.blogspot.com/feeds/1083374811891694843/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://angelpinazo.blogspot.com/2009/02/iphone-entrar-en-el-iphone-developer.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default/1083374811891694843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default/1083374811891694843'/><link rel='alternate' type='text/html' href='http://angelpinazo.blogspot.com/2009/02/iphone-entrar-en-el-iphone-developer.html' title='iPhone: Entrar en el iPhone Developer Program (3)'/><author><name>Angel Pinazo</name><uri>http://www.blogger.com/profile/16965758855624648781</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_zQzgleUJS0g/SX7I4jz1RcI/AAAAAAAAAEY/V7Qlbnx9png/S220/n1251415356_2978.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8958009022163622719.post-7415376757226026456</id><published>2009-01-29T19:58:00.005+01:00</published><updated>2009-01-29T19:58:00.748+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone Developer Program'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>iPhone: Entrar en el iPhone Developer Program (2)</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;b&gt;Parte 2 - Obteniendo el certificado&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Como dije anteriormente, ahora hay que ir al &lt;span style="font-weight: bold; font-style: italic;"&gt;Program Portal&lt;/span&gt;, al que se accede desde el &lt;a href="http://developer.apple.com/iphone/index.action"&gt;iPhone Dev Center&lt;/a&gt;, con nuestro &lt;span style="font-style: italic;"&gt;Apple ID&lt;/span&gt;. Dicho portal está organizado de forma que podamos seguir un flujo de acciones claro y bien explicado. Comprende todos los pasos para poder instalar nuestras aplicaciones en el iPhone, hasta su publicación en la &lt;span style="font-style: italic;"&gt;App Store&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;En primer lugar se configura el equipo de trabajo.  Como en su momento me registré como particular, o &lt;span style="font-style: italic;"&gt;"Individual"&lt;/span&gt;, sólo puede haber una única persona. Si me hubiera registrado como empresa, podría añadir más miembros al equipo.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="q35." style="padding: 1em 0pt; text-align: center;"&gt;&lt;img style="width: 560px; height: 182px;" src="http://docs.google.com/File?id=dd6nw2cr_330gcw7xtd5_b" /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Lo siguiente es generar un certificado. Esto es lo que permitirá que en &lt;span style="font-style: italic;"&gt;XCode&lt;/span&gt; esté activa la opción de instalar programas en el iPhone, además de otras cosas. Para ello nos vamos al apartado &lt;i&gt;"Certificates"&lt;/i&gt;, pestaña &lt;i&gt;"Development"&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="comr" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img style="width: 569px; height: 160px;" src="http://docs.google.com/File?id=dd6nw2cr_331hkb4pfdp_b" /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Pulsamos en &lt;i&gt;Add Certificate&lt;/i&gt;. La guía nos dice que abramos el &lt;i&gt;"Keychain Access"&lt;/i&gt;, que en español es el &lt;i&gt;"Acceso a Llaveros"&lt;/i&gt;, en la ruta &lt;i&gt;/Aplicaciones/Utilidades/&lt;/i&gt;. Ahora vamos a solicitar el certificado. Vamos a las opciones indicadas en la imagen:&lt;br /&gt;&lt;/div&gt;&lt;div id="nyx7" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img style="width: 586px; height: 204px;" src="http://docs.google.com/File?id=dd6nw2cr_3329s4g4rc9_b" /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;br /&gt;En la ventana que aparece, indicamos nuestros datos: correo electrónico, nombre, etc... Y un paso importante. Para el certificado se escoge la opción &lt;span style="font-style: italic;"&gt;"Guardado en el disco"&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="sicb" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img style="width: 347px; height: 72px;" src="http://docs.google.com/File?id=dd6nw2cr_333hfbfg8g3_b" /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Esto crea un fichero en el escritorio. Volviendo ahora al &lt;span style="font-style: italic;"&gt;Program Portal&lt;/span&gt;, dentro de la misma pestaña "&lt;span style="font-style: italic;"&gt;Development" &lt;/span&gt;hay una opción para subir el fichero generado. Hecho esto, aparece en la lista de certificados. Un último paso: pulsar sobre el botón &lt;i&gt;"Approve"&lt;/i&gt;. Esperamos unos minutos y enseguida nos llegará un correo informándonos de que todo ha ido bien.&lt;br /&gt;&lt;br /&gt;En este momento ya podremos descargarlo. Le damos a &lt;i&gt;"Download"&lt;/i&gt; y tan contentos, un pasito menos.&lt;br /&gt;&lt;/div&gt;&lt;div id="y:39" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img style="width: 548px; height: 46px;" src="http://docs.google.com/File?id=dd6nw2cr_334hcs596f8_b" /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;También es necesario descargarse otro fichero, el &lt;a href="http://developer.apple.com/certificationauthority/AppleWWDRCA.cer"&gt;WWDR Intermediate Certificate&lt;/a&gt;, cuya URL se cita en la propia pestaña de certificados.&lt;br /&gt;&lt;br /&gt;Para instalar ambos, vamos al &lt;span style="font-style: italic;"&gt;Finder&lt;/span&gt;, a donde estén los dos ficheros .&lt;span style="font-weight: bold; font-style: italic;"&gt;cer&lt;/span&gt; - los certificados - y hacemos doble click. Esto abre una ventanta como la que se muestra:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="ni0l" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img style="width: 438px; height: 246px;" src="http://docs.google.com/File?id=dd6nw2cr_335ckwph8ft_b" /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;No tenemos más que pulsar OK, y listo, ya nos queda menos...&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8958009022163622719-7415376757226026456?l=angelpinazo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angelpinazo.blogspot.com/feeds/7415376757226026456/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://angelpinazo.blogspot.com/2009/01/iphone-entrar-en-el-iphone-developer_29.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default/7415376757226026456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default/7415376757226026456'/><link rel='alternate' type='text/html' href='http://angelpinazo.blogspot.com/2009/01/iphone-entrar-en-el-iphone-developer_29.html' title='iPhone: Entrar en el iPhone Developer Program (2)'/><author><name>Angel Pinazo</name><uri>http://www.blogger.com/profile/16965758855624648781</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_zQzgleUJS0g/SX7I4jz1RcI/AAAAAAAAAEY/V7Qlbnx9png/S220/n1251415356_2978.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8958009022163622719.post-2515141639187173023</id><published>2009-01-25T19:35:00.002+01:00</published><updated>2009-01-27T16:14:25.954+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQLite'/><category scheme='http://www.blogger.com/atom/ns#' term='Bases de datos'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Móviles'/><title type='text'>iPhone: Uso de bases de datos con SQLite (3)</title><content type='html'>&lt;p&gt;       &lt;/p&gt;&lt;b&gt;Parte 3 - Crear la base de datos con SQLite Browser&lt;/b&gt;&lt;br /&gt;&lt;div id="d:77" style="padding: 1em 0pt; text-align: justify;"&gt;Anteriormente hemos visto la forma más básica y directa de crear una base de datos con &lt;a title="http://www.sqlite.org/" href="http://www.sqlite.org/" id="bw-c"&gt;SQLite&lt;/a&gt;. Si bien conviene conocerla, hay otras formas más cómodas. Ahora vamos a ver cómo hacer lo mismo con un gestor gráfico de bases de datos llamado &lt;a title="http://sourceforge.net/projects/sqlitebrowser/" href="http://sourceforge.net/projects/sqlitebrowser/" id="qq4o"&gt;SQLite Database Browser&lt;/a&gt;. Es un programa open source y gratuito, así que cualquiera puede usarlo.&lt;br /&gt;&lt;br /&gt;Una vez descargado e instalado, lo abrimos. Al crear una nueva BBDD, se nos pide el nombre y lugar donde guardar el fichero que la contendrá. Como en el ejemplo anterior, la llamaremos &lt;i&gt;PruebaDeBBDD.sql&lt;/i&gt;.&lt;/div&gt;&lt;div id="d2_n" style="padding: 1em 0pt; text-align: justify;"&gt;&lt;div id="s-gl" style="padding: 1em 0pt; text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.tresese.es/uploaded_images/x-710077.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 105px;" src="http://blog.tresese.es/uploaded_images/x-710074.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;Con la base de datos creada, ya podemos empezar a añadir tablas. Esto se hace con el botón &lt;img style="width: 34px; height: 30px;" src="http://docs.google.com/a/tresese.es/File?id=ddv7qxzc_75f54mcfgx_b" /&gt; y tan ricamente aparecerá esta ventana:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img style="width: 315px; height: 250px;" src="http://docs.google.com/a/tresese.es/File?id=ddv7qxzc_69fjs863g4_b" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="psxx" style="padding: 1em 0pt; text-align: justify;"&gt;Nada más sencillo. Escribimos el nombre de la tabla, y luego añadimos campos pulsando sobre el botón &lt;span style="font-style: italic;"&gt;Add&lt;/span&gt;, lo que abre esta otra ventana:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img style="width: 338px; height: 159px;" src="http://docs.google.com/a/tresese.es/File?id=ddv7qxzc_71dfxgm2fb_b" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Se puede indicar el tipo de la columna, escogiendo un valor del combo. Pero ojo, no están todos los tipos posibles. Si queremos usar otro diferente, pulsamos sobre ... y directamente escribimos el valor. Ese es exactamente nuestro caso, ya que para los campos &lt;i&gt;descripcion&lt;/i&gt; y &lt;i&gt;nombre&lt;/i&gt;, queremos &lt;i&gt;VARCHAR&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Al finalizar, pulsamos sobre &lt;i&gt;Create&lt;/i&gt; lo que obviamente creará la nueva tabla. Si ahora vamos a consultar la esctructura de la base de datos, veremos algo como esto:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="y005" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img style="width: 382px; height: 186px;" src="http://docs.google.com/a/tresese.es/File?id=ddv7qxzc_72gn6fsfgt_b" /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Para añadir datos, el interfaz facilita las cosas. En la pestaña "Browse Data" aparece la lista de tablas. Escogiendo una, veremos sus datos y se pueden realizar acciones para añadir o eliminar registros; uno a uno, eso sí.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="k1o2" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img style="width: 387px; height: 149px;" src="http://docs.google.com/a/tresese.es/File?id=ddv7qxzc_74g4hq73mm_b" /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;br /&gt;Cuando hayamos terminado, salvamos y el procedimiento a seguir es el mismo que en el artículo anterior: arrastrar el fichero &lt;span style="font-style: italic;"&gt;PruebaDeBBDD.sql&lt;/span&gt; a los recursos del proyecto de la aplicación para iPhone.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8958009022163622719-2515141639187173023?l=angelpinazo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angelpinazo.blogspot.com/feeds/2515141639187173023/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://angelpinazo.blogspot.com/2009/01/iphone-uso-de-bases-de-datos-con-sqlite_17.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default/2515141639187173023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default/2515141639187173023'/><link rel='alternate' type='text/html' href='http://angelpinazo.blogspot.com/2009/01/iphone-uso-de-bases-de-datos-con-sqlite_17.html' title='iPhone: Uso de bases de datos con SQLite (3)'/><author><name>Angel Pinazo</name><uri>http://www.blogger.com/profile/16965758855624648781</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_zQzgleUJS0g/SX7I4jz1RcI/AAAAAAAAAEY/V7Qlbnx9png/S220/n1251415356_2978.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8958009022163622719.post-625149001606295465</id><published>2009-01-19T07:59:00.000+01:00</published><updated>2009-01-27T16:11:28.928+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQLite'/><category scheme='http://www.blogger.com/atom/ns#' term='Bases de datos'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Móviles'/><title type='text'>iPhone: Uso de bases de datos con SQLite (2)</title><content type='html'>&lt;!-- Begin content --&gt;     &lt;!-- Begin main column --&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;Parte 2 - Crear la base de datos a mano&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;En este paso vamos a explicar cómo crear una base de datos que una aplicación de iPhone pueda usar. Esto comprende tanto la definición de las tablas, como la inserción del juego de datos inicial.&lt;br /&gt;&lt;br /&gt;Es algo que se puede hacer directamente mediante comandos, usando SQLite, o bien con una herramienta gráfica. La segunda opción la trataremos en otro momento; ahora lo importante es conocer la base real de todo esto.&lt;br /&gt;&lt;br /&gt;Como SQLite se basa en ficheros que carga en memoria, crear una nueva BBDD equivale a crear un nuevo fichero SQL con su definición y datos. En nuestro ejemplo, se haría con estos pasos:&lt;br /&gt;&lt;blockquote style="background-color: rgb(243, 243, 243);"&gt;cd /Users/tresese/Documents&lt;br /&gt;sqlite3 PruebaDeBBDD.sql&lt;br /&gt;&lt;/blockquote&gt; El cliente y gestor de SQLite se instalan en el ordenador al instalar el iPhone SDK, así que en estos momentos lo tendremos disponible. Al ejecutar el anterior comando, se crea el fichero y aparece la consola administrativa.&lt;br /&gt;&lt;br /&gt;Si bien la base de datos puede ser tan compleja como se desee, para este ejemplo vamos a crear una única tabla con unos pocos campos. Es tan sencillo como ejecutar estas instrucciones de SQL de toda la vida:&lt;br /&gt;&lt;blockquote style="background-color: rgb(243, 243, 243);"&gt;CREATE TABLE personas (id INTEGER PRIMARY KEY, nombre VARCHAR(50), descripcion TEXT, foto VARCHAR(255));&lt;br /&gt;&lt;br /&gt;INSERT INTO personas (nombre, descripcion, foto) VALUES ('Angel', 'El que viste y calza.', 'angel.jpg');&lt;br /&gt;INSERT INTO personas (nombre, descripcion, foto) VALUES ('Pepe', 'Uno que pasaba por ahí.', 'http://www.tresese.es/pepe.jpg');&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Acto seguido comprobamos que todo ha ido bien, ejecutando una consulta que devuelva todas las filas que hemos insertado:&lt;br /&gt;&lt;blockquote style="background-color: rgb(243, 243, 243);"&gt;&lt;span&gt;sqlite&gt; select * from personas;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;1|Angel|El que viste y calza.|angel.jpg&lt;/span&gt;&lt;br /&gt;&lt;span&gt;2|Pepe|Uno que pasaba por ah.|http://www.tresese.es/pepe.jpg&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="background-color: rgb(243, 243, 243);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: rgb(243, 243, 243);"&gt;&lt;/span&gt;Como todo está correcto, ya hemos terminado. Sólo queda salir de la consola, lo que se hace con el comando:&lt;br /&gt;&lt;blockquote style="background-color: rgb(243, 243, 243);"&gt;.quit&lt;br /&gt;&lt;/blockquote&gt; La base de datos se habrá guardado y estará en el fichero PruebaDeBBDD.sql. A pesar de la extensión, es un binario, no una secuencia de scripts.&lt;br /&gt;&lt;br /&gt;Y ahora, ¿cómo hacemos para que nuestra aplicación de iPhone use esta base de datos? En primer lugar, importándola al proyecto, lo que es casi trivial de hacer. No hay más que arrastrar el fichero SQL a la carpeta Resources del proyecto. Pero no olvidemos marcar la opción de copiar el fichero en él. Si no, sólo tendríamos una referencia, con lo que si borramos el fichero original, también se perdería en la aplicación.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="r:3." style="padding: 1em 0pt; text-align: center;"&gt;&lt;img style="width: 402px; height: 375px;" src="http://docs.google.com/a/tresese.es/File?id=ddv7qxzc_68r873wqhp_b" /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Y ya tenemos nuestra BBDD, lista para ser accedida y recibir datos a "tutiplén".&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8958009022163622719-625149001606295465?l=angelpinazo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angelpinazo.blogspot.com/feeds/625149001606295465/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://angelpinazo.blogspot.com/2009/01/iphone-uso-de-bases-de-datos-con-sqlite_12.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default/625149001606295465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default/625149001606295465'/><link rel='alternate' type='text/html' href='http://angelpinazo.blogspot.com/2009/01/iphone-uso-de-bases-de-datos-con-sqlite_12.html' title='iPhone: Uso de bases de datos con SQLite (2)'/><author><name>Angel Pinazo</name><uri>http://www.blogger.com/profile/16965758855624648781</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_zQzgleUJS0g/SX7I4jz1RcI/AAAAAAAAAEY/V7Qlbnx9png/S220/n1251415356_2978.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8958009022163622719.post-1386058035211275567</id><published>2009-01-12T08:55:00.001+01:00</published><updated>2009-01-27T16:15:09.711+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQLite'/><category scheme='http://www.blogger.com/atom/ns#' term='Bases de datos'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Móviles'/><title type='text'>iPhone: Uso de bases de datos con SQLite (1)</title><content type='html'>&lt;h3 class="post-title"&gt;&lt;b&gt;Parte 1 - Habilitar el framework de SQLite&lt;/b&gt;&lt;br /&gt;&lt;/h3&gt;                   &lt;p&gt;       &lt;/p&gt;&lt;div style="text-align: justify;"&gt;Cuando una aplicación empieza a manejar un juego de datos demasiado grande, llega la hora de usar una base de datos. Este punto es crítico en un dispositivo de mano como iPhone, porque la memoria que maneja es limitada. No podemos permitirnos el lujo de cargar enormes listados de datos, o todo se irá al garete.&lt;br /&gt;&lt;br /&gt;Por fortuna, iPhone tiene una &lt;a title="http://www.sqlite.org/" href="http://www.sqlite.org/" id="i33h"&gt;SQLite&lt;/a&gt; integrada. Es una base de datos open source especialmente pensada para dispositivos móviles, y muy conocida en ese mundillo. Tiene mucha funcionalidad, pero ojo porque no soporta ANSI SQL al completo, sólo la mayoría.&lt;br /&gt;&lt;br /&gt;El primer paso para utilizarla en nuestra aplicación, es añadir al proyecto la librería que hace de interfaz de acceso. Así que agarramos &lt;i&gt;XCode&lt;/i&gt; y nos vamos a la parte de nuestro proyecto que se muestra en la imagen.&lt;br /&gt;&lt;/div&gt;&lt;div id="wwph" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img style="width: 273px; height: 173px;" src="http://docs.google.com/a/tresese.es/File?id=ddv7qxzc_62mf8868ck_b" /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Desde allí, abrimos el menú contextual y elegimos la opción de añadir un framework existente.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="t1v_" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img style="width: 410px; height: 161px;" src="http://docs.google.com/a/tresese.es/File?id=ddv7qxzc_63dvns52wk_b" /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Se observa que en este momento el proyecto dispone sólo de estos, los básicos:&lt;br /&gt;&lt;/div&gt;&lt;div id="fbsf" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img style="width: 221px; height: 102px;" src="http://docs.google.com/a/tresese.es/File?id=ddv7qxzc_64c7wrdsfj_b" /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Pero pulsando el botón del más, aparece una nueva ventana con la lista de todos los disponibles. En ella buscamos el que hace referencia a &lt;i&gt;SQLite&lt;/i&gt;, que es el llamado &lt;i&gt;libsqlite3.0.8.6.dylib&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="mh:2" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img style="width: 315px; height: 301px;" src="http://docs.google.com/a/tresese.es/File?id=ddv7qxzc_65grvzq6dp_b" /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Pues nada, le damos a añadir, y ya está, nuestro proyecto ya puede usar SQLite. En próximos artículos seguiré explicando los siguientes pasos.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8958009022163622719-1386058035211275567?l=angelpinazo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angelpinazo.blogspot.com/feeds/1386058035211275567/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://angelpinazo.blogspot.com/2009/01/iphone-uso-de-bases-de-datos-con-sqlite_07.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default/1386058035211275567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default/1386058035211275567'/><link rel='alternate' type='text/html' href='http://angelpinazo.blogspot.com/2009/01/iphone-uso-de-bases-de-datos-con-sqlite_07.html' title='iPhone: Uso de bases de datos con SQLite (1)'/><author><name>Angel Pinazo</name><uri>http://www.blogger.com/profile/16965758855624648781</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_zQzgleUJS0g/SX7I4jz1RcI/AAAAAAAAAEY/V7Qlbnx9png/S220/n1251415356_2978.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8958009022163622719.post-6373672305787494285</id><published>2009-01-07T18:26:00.002+01:00</published><updated>2009-01-27T20:38:25.262+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone Developer Program'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>iPhone: Entrar en el iPhone Developer Program (1)</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;b&gt;Parte 1 - Registrándose&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Con la aparición de este móvil de Apple, muchos hemos sentido el gusanillo de trastear con él. ¿Vida personal? ¿Ocio?... ¿Pudiendo cacharrear? ¡Qué preguntas...! :-)&lt;br /&gt;&lt;br /&gt;Para comenzar con esto, tendremos que ir al &lt;a title="http://developer.apple.com/iphone/" href="http://developer.apple.com/iphone/" id="wt1w"&gt;iPhone Dev Center&lt;/a&gt;, que es la web principal de recursos sobre este dispositivo. Allí tendremos que indentificarnos usando un &lt;i style="font-weight: bold;"&gt;Apple ID&lt;/i&gt;. No es más que un usuario y contraseña que, si no tenemos ya, podremos obtener registrándonos desde allí mismo.&lt;br /&gt;&lt;/div&gt;&lt;div id="bz-3" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img style="width: 259px; height: 168px;" src="http://docs.google.com/File?id=dd6nw2cr_364mjm4vsd6_b" /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Ahora que ya tenemos un usuario, nos vamos a la web del &lt;a title="http://developer.apple.com/iphone/program/" href="http://developer.apple.com/iphone/program/" id="d5.s"&gt;iPhone Developer Program&lt;/a&gt;. Existen dos modalidades o programas diferentes: el &lt;b&gt;&lt;i&gt;standar&lt;/i&gt;&lt;/b&gt; y el &lt;i&gt;&lt;b&gt;enterprise&lt;/b&gt;&lt;/i&gt;. Sólo hay un par de diferencias relevantes: con el &lt;i&gt;enterprise&lt;/i&gt; podremos distribuir las aplicaciones a todos los iPhones de nuestra empresa. Pero no podremos venderlas en la &lt;i&gt;App Store&lt;/i&gt;, la tienda de Apple.&lt;br /&gt;&lt;br /&gt;Después de leer las condiciones, como se ve, a no ser que seamos una empresa de más de 500 empleados, nos va a interesar siempre la &lt;i&gt;standar&lt;/i&gt;. Ésta cuesta 99$ anuales, mientras que la &lt;i&gt;enterprise&lt;/i&gt; son 299$.&lt;br /&gt;&lt;br /&gt;Una vez que hemos escogido la modalidad, nos identificamos con el &lt;i&gt;Apple ID&lt;/i&gt; y se nos preguntará si somos una empresa o particular. Seguidamente, seremos redirigidos a la tienda de Apple para empresas, aunque hayamos dicho que somos lo segundo. Allí aparece el &lt;i&gt;iPhone Developer Program&lt;/i&gt; como un artículo en venta, que añadiremos a la cesta de la compra.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="l1gd" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img style="width: 237px; height: 459px;" src="http://docs.google.com/File?id=dd6nw2cr_337cbnt48dt_b" /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Hacemos el &lt;span style="font-style: italic;"&gt;check out&lt;/span&gt;, pagamos con nuestra tarjeta de crédito - tiene que ser así - y listo. Tenemos suerte de la excelente posición del Euro frente al Dólar, como se observa en los precios.&lt;br /&gt;&lt;/div&gt;&lt;div id="g910" style="padding: 1em 0pt; text-align: center;"&gt;&lt;div id="od1i" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img style="width: 468px; height: 158px;" src="http://docs.google.com/File?id=dd6nw2cr_365cz3zkrvr_b" /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Al terminar, se nos dice que el programa ha sido entregado en formato electrónico. En efecto, no tardaremos demasiado en recibir algunos correos de confirmación. Cuando lleguen, la siguiente vez que entremos en la web del &lt;a title="http://developer.apple.com/iphone/" href="http://developer.apple.com/iphone/" id="wt1w"&gt;iPhone Dev Center&lt;/a&gt;, nos aparecerá un enlace al &lt;span style="font-style: italic;"&gt;Program Portal.&lt;/span&gt; Y desde allí tendremos que continuar con esta aventurilla de registrarse...&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8958009022163622719-6373672305787494285?l=angelpinazo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angelpinazo.blogspot.com/feeds/6373672305787494285/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://angelpinazo.blogspot.com/2009/01/iphone-entrar-en-el-iphone-developer.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default/6373672305787494285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default/6373672305787494285'/><link rel='alternate' type='text/html' href='http://angelpinazo.blogspot.com/2009/01/iphone-entrar-en-el-iphone-developer.html' title='iPhone: Entrar en el iPhone Developer Program (1)'/><author><name>Angel Pinazo</name><uri>http://www.blogger.com/profile/16965758855624648781</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_zQzgleUJS0g/SX7I4jz1RcI/AAAAAAAAAEY/V7Qlbnx9png/S220/n1251415356_2978.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8958009022163622719.post-2597560223476806745</id><published>2009-01-01T09:51:00.000+01:00</published><updated>2009-01-27T16:09:08.958+01:00</updated><title type='text'>Inicio de mis andanzas</title><content type='html'>&lt;div style="text-align: justify;"&gt;Buenas a todos... Abro este blog para contar mis inquietudes personales y profesionales, y especialmente, para hablar de una de mis pasiones: la tecnología. A ver cómo ando de tiempo, pero intentaré contar aquí todas las cosillas que me llamen la atención.&lt;br /&gt;&lt;br /&gt;Sí, ya hay una persona más dispuesta a dar la lata en la "blogoesfera" (argh, que fastidio de anglicismos).&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8958009022163622719-2597560223476806745?l=angelpinazo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angelpinazo.blogspot.com/feeds/2597560223476806745/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://angelpinazo.blogspot.com/2009/01/inicio-de-mis-andanzas.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default/2597560223476806745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8958009022163622719/posts/default/2597560223476806745'/><link rel='alternate' type='text/html' href='http://angelpinazo.blogspot.com/2009/01/inicio-de-mis-andanzas.html' title='Inicio de mis andanzas'/><author><name>Angel Pinazo</name><uri>http://www.blogger.com/profile/16965758855624648781</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_zQzgleUJS0g/SX7I4jz1RcI/AAAAAAAAAEY/V7Qlbnx9png/S220/n1251415356_2978.jpg'/></author><thr:total>0</thr:total></entry></feed>
