tag:blogger.com,1999:blog-39871740349825107112024-03-13T18:28:50.258-06:00Software: de Mexico para el mundoApasionado por llevar a Mexico a la cima mundial de desarrollo de software: comentarios desde mi trincheraChava GRhttp://www.blogger.com/profile/16015602287395930873noreply@blogger.comBlogger79125tag:blogger.com,1999:blog-3987174034982510711.post-34312501539545394152013-05-07T18:52:00.001-05:002013-05-08T09:56:42.358-05:00El Maestro Programador gana el Juego del Software - Parte 1<h3>
Desde casi 400 años en el pasado, un Samurai nos enseña lecciones para tener éxito en el desarrollo de software y ser un maestro, ya sea como programador, analista, diseñador o arquitecto de software, e incluso aplica a cualquier arte/ciencia/técnica. </h3>
<div>
<br /></div>
<div>
Miyamoto Musashi escribió el libro <i>Go Rin No Sho</i> (El libro de los Cinco Anillos) en el siglo 17, después de <b>ganar batallas toda su vida</b> y llegar -completo- a los 70 años. Alistair Cockburn en su libro <i>Agile Software Development</i> (Adison-Wesley 2007) incluso dedica un apéndice a citar las lecciones del Samurai. </div>
<div>
<br /></div>
<div>
Puede ser sorpresa o no, pero la forma de pensar descrita en el libro de los cinco anillos <b>aplica directamente al desarrollo de software</b> y las he practicado por un tiempo ya, en la medida en que son efectivas. Claro que en nuestro caso, no siempre es una cuestión de vida o muerte con con las técnicas de batalla Samurai, pero aplican a Ganar el juego también </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-_7iig9hJleg/UYmSwwKq6eI/AAAAAAAACtc/57tDNke8_ts/s1600/Samurai1-dl__jpg_610x343_crop_upscale_q85.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="179" src="http://4.bp.blogspot.com/-_7iig9hJleg/UYmSwwKq6eI/AAAAAAAACtc/57tDNke8_ts/s320/Samurai1-dl__jpg_610x343_crop_upscale_q85.jpg" width="320" /></a></div>
<div>
<br /></div>
<div>
He aquí algunas lecciones de Musashi, y mi reflexión de como se relaciona a nosotros los Programadores y Desarrolladores de Software, en una serie de artículos que tengo tiempo pensando en escribir. </div>
<div>
<br /></div>
<div>
Lección 1<br />
<blockquote class="tr_bq">
<b><span style="color: #4c1130;">El campo de las artes marciales está particularmente plagado de exhibicionismo extravagante, con la popularización comercial y especulación por parte tanto de los que enseñan la ciencia como de los que la estudian. El resultado de esto debe ser, como alguien dijo, que "las artes marciales de aficionados son una fuente de graves heridas"...</span></b>-Miyamoto Musashi, Go Rin No Sho, Siglo XVII</blockquote>
</div>
<div>
Esta es una de las lecciones mas obvias, mas fáciles de relacionar con nuestro campo de la programación. sin embargo puede haber otros comentarios necesarios.</div>
<div>
<br /></div>
<div>
La programación de sistemas es una actividad económica y como tal, esta sujeta a la competencia y a la mercadotecnia (y lo sabemos, porque de eso vivimos). </div>
<div>
<br /></div>
<div>
El problema es cuando muchos intentan vender a como de lugar, el argumento de ventas probablemente mas típico es el de<b> la "Bala de plata"</b>: la herramienta de desarrollo que sirve para todo y todo lo resuelve de una manera sublime y sin problemas. La "espectacular" técnica, metodología o patrón que dice adaptarse a <br />
<div class="separator" style="clear: both; text-align: right;">
<a href="http://1.bp.blogspot.com/-D_eETkiwn7c/UYmS6OYd6yI/AAAAAAAACtk/sWaxg3YK5vU/s1600/smuraiprogrammer.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="320" src="http://1.bp.blogspot.com/-D_eETkiwn7c/UYmS6OYd6yI/AAAAAAAACtk/sWaxg3YK5vU/s320/smuraiprogrammer.jpg" width="320" /></a></div>
cualquier problema para convertirlo en solución. Incluso el desarrollador que dice saberlo todo y que siempre esta en posición de ataque/defensa para que no quede duda, con un curriculum con paginas llenas de palabritas clave y acrónimos que alguna vez vio en sus proyectos(o en los de la empresa donde trabajó) y presume de dominarlas todas y cada una.</div>
<div>
<br /></div>
<div>
Para el novato o no-tan-experto programador, incluso para experimentados con tendencias al fanatismo y a la cultura de la lotería, <b>esto suena como algo que debería tener, una idea con que casarse, hacer vida juntos y tener muchos proyectos-hijos.</b> Pero ¡Cuidado! ya que esto, en opinión compartida por su servidor, es una de las principales razones de "Graves Heridas", es decir, <b>Proyectos fallidos</b>, fuera de presupuesto, <b>grandes derroches de recursos</b> en herramientas que se dejan de mantener, altísimos costos de mantenimiento de sistemas heredados, e inclusive, de desencuentros entre colegas, y de despidos y renuncias con animadversión por ambas partes. </div>
<div>
<br /></div>
<div>
<b>Por el contrario, el pragmatismo </b>sigue siendo una buena filosofía: <b>"La verdad es solo lo que funciona, y lo que funciona es la verdad. Cuando no aplique, entonces es solo una verdad a medias"</b>. Esto significa que las Herramientas, aplicaciones, metodologías técnicas, colaboradores y soluciones deben ser juzgadas por su verdadera <b>utilidad</b>, y saber lo mas pronto posible cuales son <b>sus fallos</b>, y entonces decidir de entre las opciones a la mano, cual podría resultar mejor. </div>
<div>
<br /></div>
<div>
Claro que no es fácil <b>retirar el exhibicionismo y la espectacularidad</b> del camino, sobre todo para quien le gusta creer en los reyes magos todavía o que le gusta hacerse la vida fácil, pero recuerda que <b>estas son solo una herramienta para llegar a un fin</b>, que es un proyecto de software exitoso. </div>
<div>
<br /></div>
<div>
Después seguiré exponiendo algunas otras lecciones de Musashi para el programador. Arigato.</div>
<div class="blogger-post-footer">Salvador Gomez Retamoza @ MetaCode.mx</div>Chava GRhttp://www.blogger.com/profile/16015602287395930873noreply@blogger.com3tag:blogger.com,1999:blog-3987174034982510711.post-72169981269346065252012-05-03T14:32:00.000-05:002012-05-03T14:40:42.962-05:00Andreano Lanusse se va de Embarcadero TechnologiesSi hay alguien conozco que concuerda con la descripción de Guerrero Incansable es <b>Andreano Lanusse</b>.<br />
<br />
Durante el tiempo que ha representado a <b>Borland/CodeGear/Embarcadero</b>, a <b>Delphi </b>en especial, ante toda la <b>comunidad latinoamericana</b> desde México hasta La patagonia, ha viajado, presentado, defendido y contribuido sin descanso, tomado decisiones difíciles, negociado con clientes grandes y pequeños, con una historia de socios de negocios, soportado las necesidades de una gran comunidad con características muy especiales como son el poder adquisitivo, la emergente y a veces insuficiente educación tecnológica y comercial, el creciente impulso de innovación y competitividad, y <b>una gran comunidad del tamaño de una generación de desarrolladores con muchas ganas de avanzar.</b><br />
<b><br /></b><br />
No solo eso, mientras tanto también contribuyó con<b> investigación y desarrollo</b> dentro de Borland/CodeGear/Embarcadero, estoy seguro que muchas ideas técnicas y comerciales del producto, por lo menos de Delphi, son de Andreano o cooperó en ellas. Un técnico destacado que hace su trabajo por gusto y con gusto, que ademas adquirió capacidades excepcionales de mercadotecnia y capaz de administrar su tiempo como pocos.<br />
<br />
Hace un par de días, <b>Andreano aviso que deja Embarcadero</b> <a href="http://www.andreanolanusse.com/en/bye-bye-embarcadero/">http://www.andreanolanusse.com/en/bye-bye-embarcadero/</a><br />
<br />
No se que esté sucediendo en este momento en California, pero lo que si sé es que Embarcadero, sus compañeros desde Borland/CodeGear, la comunidad latinoamericana de Delphi -hable español, inglés o portugués-, perdemos a un guerrero incansable.<br />
<br />
<b>Mucha suerte en tu camino, mi amigo. No dudo que seguiremos sabiendo de ti.</b><br />
<b><br /></b><br />
<b><br /></b><div class="blogger-post-footer">Salvador Gomez Retamoza @ MetaCode.mx</div>Chava GRhttp://www.blogger.com/profile/16015602287395930873noreply@blogger.com5Guadalajara, JAL, México20.67359 -103.34380320.614165500000002 -103.422767 20.7330145 -103.264839tag:blogger.com,1999:blog-3987174034982510711.post-31402415094991338292012-02-10T21:03:00.000-06:002012-02-10T21:03:07.362-06:00Gadget de Conexiones RDP hospedado por Metacode S.A.El gadget de Conexiones RDP para Windows al fin esta arriba para descarga! Disculpen a quienes estuvieron esperandolo desde que la Windows Live Gallery fue cerrada.<div>
<br /></div>
<div>
Pueden descargarlo del sitio web de Metacode S.A. <a href="http://metacode.mx/empresa/gadget-de-conexiones-rdp">dando clic aqui.</a></div><div class="blogger-post-footer">Salvador Gomez Retamoza @ MetaCode.mx</div>Chava GRhttp://www.blogger.com/profile/16015602287395930873noreply@blogger.com0tag:blogger.com,1999:blog-3987174034982510711.post-81034386014034051402011-10-22T01:56:00.000-05:002011-10-22T17:17:03.767-05:00El equipo de un desarrollador de estos diasParte de esta entrada se va a volver rápidamente obsoleta seguramente, pero para mí es una referencia del estado actual de las cosas. Obviamente <b>las empresas esperan de un desarrollador de software muchas cosas</b>: profesionalismo, todo el conocimiento del mundo, grandes capacidades analíticas, confidencialidad, compromiso, consistencia en sus resultados en general, y <b>a veces un par de milagros</b> al mes, si no al día. Eso es al día de hoy y, para bien o para mal, no va cambiar en un tiempo.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-WBXCB5mqm1Y/TqJiw9Mae7I/AAAAAAAAAJ0/iH5xW3kMVuc/s1600/resources.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="http://1.bp.blogspot.com/-WBXCB5mqm1Y/TqJiw9Mae7I/AAAAAAAAAJ0/iH5xW3kMVuc/s200/resources.png" width="180" /></a></div>
Lo que no es obvio para muchas empresas, es que <b>no se le puede exigir a un soldado que gane batallas sin buenas armas</b>, y por supuesto un buen desarrollador necesita el mejor equipo al que pueda tener acceso para sus tareas diarias.<br />
<br />
El desarrollador de estos días debe tener instalada -y gran parte ejecutándose- u<b>na cantidad inmensa de herramientas para hacer su trabajo</b>, y dichas herramientas son cada vez más hambrientas de recursos, despegándose cada vez mas de las necesidades del usuario común.<br />
<br />
Y es que así es, un programador a principios de los 90s usaba ambientes que eran básicamente <a href="http://en.wikipedia.org/wiki/Turbo_Pascal">editores </a><a href="http://en.wikipedia.org/wiki/DBase">de texto</a> con algunas capacidades específicas, mientras que un usuario abría <a href="http://en.wikipedia.org/wiki/Lotus_1-2-3">Lotus 1-2-3</a>, tal vez <a href="http://en.wikipedia.org/wiki/Windows_3.1x">Windows 3.11</a> con <a href="http://en.wikipedia.org/wiki/Harvard_Graphics">Harvard Graphics 2.1</a>, o <a href="http://en.wikipedia.org/wiki/WordPerfect">WordPerfect 5</a> que eran aplicaciones que consumían los 2 Megabytes de RAM a los que se tenía acceso a los 30 segundos de ejecutarlos. <b>El programador vivía en un editor de texto</b>, y no requería tanto de estar switcheando a otras herramientas, si acaso volver a la línea de comandos a compilar.<br />
<br />
A principios de siglo (XXI claro), ya todos sobre sistemas operativos gráficos, un programador solo necesitaba un Ambiente Integrado de Desarrollo (nuestros IDEs) que hacia todo, como Delphi, Visual Basic o Eclipse. Estas herramientas son, por si solas, tan pesadas como Adobe Photoshop o como tener Excel, Word, Outlook e Internet Explorer abiertos al mismo tiempo, como es muy común en un usuario típico de oficina. <b>Las necesidades del desarrollador estaban mas o menos en el mismo rango del usuario diario</b> o del power user cuando mucho.<br />
<br />
Ahora en estos días, pasando la primera década de este siglo, <b>hay muchas nuevas necesidades a cubrir</b>, además que se desea que un desarrollador sea hiperproductivo. Un programador profesional debe tener, además del persistente IDE de la plataforma diaria (como Visual Studio o Delphi), otros IDEs de diferentes plataformas (por ejemplo Eclipse) ya que <b>el mundo hoy es menos homogéneo</b>, es decir, si usas Visual Studio o Delphi pero quieres programar para Android de forma nativa, además se necesita Eclipse o una de sus alternativas.<br />
<br />
Por supuesto, ahí no para la cosa, también es posible que sea necesario tener un buen <b>editor de HTML</b>, una herramienta de desarrollo especializada en <b>XML/XSD/XSLT/XPath/X...cetera</b>, un buen <b>editor de gráficos</b> porque para que lo sepa todo el mundo, Paint no es suficiente cuando se trata de hacer iconos y no se diga gráficos para web, y por supuesto un<b> administrador de bases de datos</b>. Es necesario tener <b>Outlook o Thunderbird </b>si quieres que tus programadores te respondan los correos de vez en cuando, y no se diga <b>Skype y similares</b>, aunque esto vaya en detrimento de su concentración. Y para acabarla, es muy probable que sea<b> imprescindible tener una o más máquinas virtuales corriendo en el mismo equipo</b>, ya sea para pruebas en diferentes ambientes, pruebas de conexión remota o para ejecutar herramientas no compatibles con el sistema operativo principal de la máquina.<br />
<br />
<div class="separator" style="clear: both; text-align: right;">
<a href="http://i.bnet.com/blogs/old-laptop.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="200" src="http://i.bnet.com/blogs/old-laptop.jpg" width="198" /></a></div>
Hay otras herramientas que muy probablemente serán necesarias son por ejemplo, la<b> utilería del control de versiones</b>, algún profiler o analizador de código, <b>servidores web o de aplicaciones</b> (Apache y IIS, juntos en ocasiones), el <b>explorador web</b> sin lugar a dudas, y algunas herramientas de colaboración. Sin descartar además Excel y Word.<br />
<br />
Sabiendo esto, es el colmo tener a buenos programadores haciendo su trabajo en una laptop con 1 GB de RAM con 80 GB de disco duro, heredada del gerente que la heredo del director. Pero... estoy seguro que esto no sucede tanto, ¿verdad? :)<br />
<br />
<b>Afortunadamente tengo un equipo decente</b>, y siempre trato de estar actualizado. <b>Me he topado con fiascos</b>, como una HP Pavillion que creí muy buena, y que no me duro ni el periodo de garantía. Pero en general no me puedo quejar, en lo personal claro, pero he visto esto suceder a mí alrededor una cantidad increíble de veces, y sigue sucediendo.<br />
<br />
Un buen equipo para hoy en día, sin exagerar y centrándose únicamente en cubrir las necesidades diarias comunes, depende de cada quien, pero <b>podría ser algo como esto, y no menos que esto:</b><br />
<ul>
<li>Procesador Intel <b>Core i5</b> o AMD <b>Opteron Quad-core</b>. Un Intel Core i7 sería un gran plus.</li>
<li>Al menos <b>4GB en RAM</b>, pero 8GB seguramente son una buena inversión para la productividad</li>
<li><b>250 GB de disco duro</b> por lo menos. 500 es un buen numero.</li>
<li><b>Dos pantallas. </b>IMPORTANTE: Cada centímetro cuadrado más de despliegue hace más productivo al desarrollador. Codificar, depurar, leer documentos de diseño y requerimientos, instalar, dar soporte y mantener la comunicación, todo en una pantalla de 15", es un abuso y nada menos que un abuso. Si es una laptop, una pantalla extra es suficiente, todas las laptops desde hace 8 años tienen salida para la pantalla adicional y pueden extender el escritorio, no hay pretextos.</li>
<li>En caso de una laptop, <b>una base que levante el monitor, un cómodo teclado y un mouse.</b></li>
</ul>
Es lo menos, así es. NO, no. No hay regateo ni se fía nada. Esto es lo que se llama UNA INVERSIÓN SEÑORES, se las presento.<br />
<br />
Y cualquier programador que enorgullezca de serlo un poco, estará de acuerdo, ¿o no?<br />
<div>
<br /></div><div class="blogger-post-footer">Salvador Gomez Retamoza @ MetaCode.mx</div>Chava GRhttp://www.blogger.com/profile/16015602287395930873noreply@blogger.com9tag:blogger.com,1999:blog-3987174034982510711.post-31270518202483331632011-07-10T18:29:00.002-05:002011-07-10T18:31:44.994-05:00La competencia en la que estamos aunque no lo entendamosA muchísima gente sigue sin caerle el veinte:<b> Esto es una competencia mundial</b>.<br />
<div>
Es muy simple, si México (o cualquier país) compra muchos productos y servicios a otros países, y al mismo tiempo vende muy pocos, se va quedando pobre y eventualmente lo resentimos todos nosotros.</div>
<div>
<br /></div>
<div>
<b>No se trata del gobierno</b>, solo tenemos el gobierno que nos merecemos. <b>No se trata de los otros países</b>, ellos solo están haciendo su deber: preservar lo mejor para ellos. En un partido de fútbol, ¿Quien puede culpar al equipo oponente por tratar de ganar o por defenderse?</div>
<div>
<br /></div>
<div>
<a href="http://2.bp.blogspot.com/_GLCZ6ZtcPbU/TGBuIXTeNpI/AAAAAAAAANc/JD-lmBUsnjM/s1600/globe.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="150" src="http://2.bp.blogspot.com/_GLCZ6ZtcPbU/TGBuIXTeNpI/AAAAAAAAANc/JD-lmBUsnjM/s200/globe.jpg" width="200" /></a>En este momento, <b>nuestros países latinoamericanos tienen mas oportunidades que nunca</b>, yo creo que en México incluso tenemos mas oportunidades que las que tuvimos a principios del siglo XX cuando se expropio el petroleo. Y no hay que ser científico para saber que hacer: echarle TODAS las ganas con TODA la inteligencia posible, educarnos, leer, copiar lo que otros hacen, mejorarlo, especializarnos como profesionales, hacer lo que sea necesario, pero por el camino correcto, para ganar la competencia. </div>
<div>
<br /></div>
<div>
No es un reto que resolveremos de hoy para mañana, <b>puede tardar 10 años, puede tardar una generación, pero no va a pasar solo señores,</b> solo hay que ver el tamaño del reto, ver lo que nuestra competencia esta haciendo. Y para muestra basta un botón: </div>
<div>
<br /></div>
<div>
<a href="http://www.elnuevoherald.com/2011/07/09/977982/andres-oppenheimer-el-desafio.html">http://www.elnuevoherald.com/2011/07/09/977982/andres-oppenheimer-el-desafio.html</a></div>
<div>
<br /></div>
<div>
Tenemos un gran cliente y socio natural con un gran poder adquisitivo que es Estados Unidos de America, ademas de las grandes potencias de la Unión Europa, y ¡entre nosotros mismos incluso!</div>
<div class="blogger-post-footer">Salvador Gomez Retamoza @ MetaCode.mx</div>Chava GRhttp://www.blogger.com/profile/16015602287395930873noreply@blogger.com1tag:blogger.com,1999:blog-3987174034982510711.post-84703569605192356972011-06-28T13:05:00.003-05:002011-06-28T13:11:29.897-05:00Buscando talentoUn buen proyecto es hecho por la gente que lo integra. Por ahí hay un excelente proyecto, de esos que no se dan muy a menudo, que<b> necesita de buenos programadores.</b> Si a alguien le interesa ser parte del equipo mandenme su curriculum a salvadorhgr (en) gmail.com<br />
<br />
Las características de los desarrolladores deben ser:<br />
<div><ul><li>Mínimo dos o tres años programando .Net, preferentemente con <b>C#</b></li>
<li>Buena experiencia en <b>Web services</b>: XML web services, WCF, de preferencia alguna aplicación <b>SOA.</b></li>
<li><b>Pasión</b> por la programación, indispensable para hacer <b>buen equipo.</b></li>
<li>De menos mantener una conversación en <b>ingles</b>. Algunas entrevistas y la capacitación serán en ingles.</li>
<li>Excelente si tienen <b>Visa </b>de E.U.A. vigentes, o que no tengan ningún impedimento para tramitarla.</li>
</ul><div>Obviamente hay un <b>buen sueldo y buenas condiciones</b> de por medio. Por si les interesa, ya saben. </div><div><br />
DISCLAIMER: Yo no estoy cazando gente por ganarme una comisión (no es mi culpa que tenga buenos amigos que valgan mucho también como profesionales y que encuentren una buena oportunidad. Un abrazo Miguel!), mi interés en este caso es el proyecto y por supuesto, que la oportunidad le llegue a quien la merece (léase: quien cumple con los anteriores requisitos :)</div></div><div class="blogger-post-footer">Salvador Gomez Retamoza @ MetaCode.mx</div>Chava GRhttp://www.blogger.com/profile/16015602287395930873noreply@blogger.com3tag:blogger.com,1999:blog-3987174034982510711.post-7956563850653532252011-05-24T22:10:00.000-05:002011-05-24T22:10:19.874-05:00Cursos de Delphi y Silverlight para Junio 2011En <a href="http://metacode.mx/">Metacode</a> acabamos de programar un par de cursos que estamos seguros que es lo estas buscando para actualizarte o aprender herramientas y recursos nuevos. Puedes verlo en el sitio de Metacode en<a href="http://metacode.mx/es/proximos-cursos"> <strong>Proximos cursos.</strong></a><br />
<br />
Por el lado de Delphi, creamos un curso de <strong>actalización a Delphi XE que incluye además técnicas de colaboración para equipos de desarrollo</strong>. estas tecnicas las hemos ido puliendo por años, y ahora creamos una capacitación que incluye conceptos como <strong>Control de Versiones efectivo</strong>, <strong>control del proyecto</strong> y <strong>colaboración</strong>. Y esto, apoyados con herramientas de <strong>software libre</strong> por supuesto.<br />
<br />
En el lado de<strong> aplicaciones web</strong>, cada día nos convencemos mas que <a href="http://www.silverlight.net/">Microsoft Silverlight</a> es la solución para muchos escenarios, especialmente para las <strong>aplicaciones impresionantes de negocios</strong> que esperan nuestros clientes y empresas. Por lo tanto, planeamos un curso en el que el objetivo es que cualquier desarrollador que sepa .Net (si no es asi, sigue leyendo) salga del curso con conocimientos para hacer aplicaciones ricas de Internet con Silverlight 4.<br />
<br />
Si quieres aprender .Net por cierto, tenemos un curso totalmente practico de una semana de duración, llamado <strong>Fastrack de C# 4.0</strong> que incluye todo lo necesario. La información se puede descargar de aquí: <br />
<a href="http://metacode.mx/MC_Silverlight4.pdf">http://metacode.mx/MC_Silverlight4.pdf</a><br />
<br />
Los cursos son para<strong> junio del 2011</strong> en Guadalajara, México. En la pagina de Metacode se encuentra el vinculo para <a href="http://metacode.mx/es/info-cursos-forma"><strong>solicitar información de temarios, costos y como apartar lugares.</strong></a><br />
<br />
Si buscan <strong>cursos en linea o capacitación en tu sitio</strong>, también los tenemos cocinados! haznoslo saber en la misma <a href="http://metacode.mx/es/info-cursos-forma">forma de solicitud de información</a>. <br />
<br />
Saludos a todos.<div class="blogger-post-footer">Salvador Gomez Retamoza @ MetaCode.mx</div>Chava GRhttp://www.blogger.com/profile/16015602287395930873noreply@blogger.com0tag:blogger.com,1999:blog-3987174034982510711.post-82340570680003587202011-05-04T14:37:00.001-05:002011-05-04T14:45:25.046-05:00Buenos foros: DelphiAccess, StackOverflow y Area51<strong>Primero que nada:</strong> El foro <a href="http://www.delphiaccess.com/">DelphiAcces</a> va muy bien! Felicidades a los administradores y creadores de tan excelente idea! Moderno y digno sustituto del desaparecido y bien ponderado Programadores Delphi México, DelphiAccess es mi foro favorito de <strong>Delphi en español.</strong><br />
<br />
<div><strong>En segundo lugar:</strong> Casi seguro, al "googlear" en busca de respuestas de programación han caido en <a href="http://stackoverflow.com/">SatckOverflow</a>, o aun mas seguro leyeron de este sitio en el <a href="http://jachguate.wordpress.com/2010/11/09/preguntas-y-respuestasen-stackoverflow/">blog de Jachguate</a> (¡Saludos Juan Antonio!). Muy probablemente usan este excelente sitio, donde la participacion se traduce en una <strong>reputación por votos de otros sobre tus preguntas y tus respuestas</strong>, todas ellas etiquetadas y bien indexadas. Incluso hay quienes incluyen su reputacion de StackOverflow en su curriculum.</div><br />
El motor con que esta hecho este sitio se ha propuesto para hacer otros foros especializados en cuestiones muy diversas, por ejemplo: Uso del idioma Español, Viajes, Jardineria y paisajismo, etc. <strong>Existe un sitio en el que se construyen estas propuestas y se van definiendo y refinando</strong> hasta salir a a luz: el sitio se llama <a href="http://area51.stackexchange.com/">Area51</a> y digamos que es como la fabrica de foros de preguntas y respuestas.<br />
<br />
Hay algunas propuestas que me parecen muy interesantes y de las cuales me hice inmediatamente seguidor:<br />
<ul><li><a href="http://area51.stackexchange.com/proposals/30495/software-development-process">Software Development Process</a> es la propuesta para un foro de metodologias de desarrollo (todas incluidas: Agil, RUP o Asshole-driven-development :)</li>
<li><a href="http://area51.stackexchange.com/proposals/3972/comic-books">Comic books</a> porque no todo en la vida es software, y como buen geek tengo que aceptar que me gusta el medio de el comic, el arte y la creatividad en una buena historia. La idea del foro es poder hacer preguntas de todo lo relacionado a coleccionar, seguir y leer novelas graficas o webcomics, lo que sea de buena calidad.</li>
</ul>Especialmente el de Software Development Process, <strong>cualquier interesado puede unirse a la causa</strong> para que este sitio salga al aire pronto. El contenido de ese foro sera algo que nos hace mucha falta en nuestras empresas latinoamericanas y que hace la diferencia para crecer a un mayor ritmo y tener mas proyectos mas exitosos.<div class="blogger-post-footer">Salvador Gomez Retamoza @ MetaCode.mx</div>Chava GRhttp://www.blogger.com/profile/16015602287395930873noreply@blogger.com2tag:blogger.com,1999:blog-3987174034982510711.post-4748900051729020522011-04-07T00:04:00.006-05:002011-04-07T00:26:47.945-05:00Pista en vídeo de Delphi 64bits (casual?)No se si alguien notó que en el <a href="http://www.embarcadero.com/products/delphi/64-bit">primer vídeo de Sneak Preview</a> de Delphi 64 bits:<div><br /></div><div>Cuando están mostrando como establecer la DLL de dbExpress para 64 bits en la nueva propiedad <i><b>vendorlibwin64 </b></i>(librería de Win64 del proveedor de base de datos) de la conexión dbExpress (min 8:25 aprox.), justo arriba de esa propiedad viene otra llamada <b><i>vendorlibosx</i></b>... !! (librería Mac OS X del proveedor.. etc.)<div><br /></div></div><div>Claro que no creo que sea una filtración casual... pero <b>ya lo veremos en los próximos vídeos </b>de Sneak Preview del nuevo Delphi.</div><div><br /></div><div class="blogger-post-footer">Salvador Gomez Retamoza @ MetaCode.mx</div>Chava GRhttp://www.blogger.com/profile/16015602287395930873noreply@blogger.com4tag:blogger.com,1999:blog-3987174034982510711.post-2040544503472734942011-04-06T23:48:00.001-05:002011-04-06T23:50:28.364-05:00Delphi64Seguro muchos ya saben (Salvador Jover lo <a href="http://www.sjover.com/delphi/2011/04/04/presentacion-de-la-preliminar-de-delphi-64bits/">anunció desde hace dos <span class="Apple-style-span" style="color: #0000ee;"><u>días</u></span></a>): <b>Delphi en 64 bits</b> al fin. Oficial desde Embarcadero. <div><br /></div><div>Aquí pueden ver el primer vídeo (y ahí mismo los que seguirán) <a href="http://www.embarcadero.com/products/delphi/64-bit">http://www.embarcadero.com/products/delphi/64-bit</a></div><div><br /></div><div>.... Mmmm... vendrá también la compilación a Mac...? </div><div class="blogger-post-footer">Salvador Gomez Retamoza @ MetaCode.mx</div>Chava GRhttp://www.blogger.com/profile/16015602287395930873noreply@blogger.com0tag:blogger.com,1999:blog-3987174034982510711.post-9590035251957187832011-03-27T12:11:00.001-06:002011-03-27T12:11:59.884-06:00Cambios de paradigma 2011: La nube mal entendida<p>Predecir el futuro ya está muy gastado y no voy a intentar leerles mi bola de cristal para esta año 2011. Mas bien intento crear consciencia junto con todos los desarrolladores de cómo se esta moviendo el mercado de los sistemas rápida y constantemente de un lado a otro, en lo que yo creo podemos salir perdiendo o ganando, como en todo cambio, dependiendo que tanta energía e inteligencia le pongamos.</p> <p>“<strong>La nube</strong>”, quiero decir el <strong>Cloud computing,</strong> sigue siendo siendo un concepto no entendido o mal explicado, casi como la programación orientada a objetos a principios de los 90s, y en muchos casos desgraciadamente hasta la fecha (que personalmente tardé en entender y practicar al 100% algo así como ocho años). </p> <p>Gran parte de los que entienden el cómputo en la nube, tienen un concepto correcto pero solo ven una parte de todo este nuevo paradigma. Y es que resulta que <strong>todo software que usamos en nuestra red de casa u oficina pero que corre en servidores fuera de nuestra red, viene a ser cómputo en la nube.</strong></p> <p><img style="margin: 0px 0px 0px 10px" align="right" src="http://iisunilibre.files.wordpress.com/2011/03/cloud.jpg" width="217" height="217">Este concepto incluye, entre miles de otras cosas que usamos diario y hemos usado durante muchos años, los siguientes: <a href="http://mail.live.com">Hotmail</a>, <a href="http://www.facebook.com">Facebook</a>, <a href="http://www.twitter.com">Twitter</a>, <a href="http://www.blogger.com">Blogger</a> (este blog esta un servicio en la nube!), todos los demás servicios de Google (el <a href="http://www.google.com">buscador</a>, <a href="http://mail.google.com">GMail</a>, <a href="http://calendar.google.com">Calendario</a>, <a href="http://docs.google.com">Docs</a>, <a href="http://adwords.google.com">Adwords</a>, <a href="http://analytics.google.com">Analytics</a> y toda la plataforma <a href="http://apps.google.com/">Google Apps</a>), todos los servicios de hospedajes de páginas web tradicionales, los servicios de mensajería instantánea (no los programas cliente, pero si los servidores) como <a href="http://messenger.live.com">Live Messenger</a>, el mismo caso con <a href="http://www.skype.com">Skype</a>, otros servicios más especializados como <a href="http://salesforce.com">SalesForce</a>, Microsoft <a href="http://crm.dynamics.com/es-es/">Dynamics CRM services</a>, etc. etc. etc.</p> <p>Además, igual que en la venta de equipo de cómputo donde hay un Mayorista y un Revendedor que le compra a ese mayorista y tiene un ganancia al revender, <strong>también hay “Mayoristas” de la nube, que te dejan subir tus aplicaciones a sus servidores y te cobran por el uso de CPU, memoria, almacenamiento, etc.</strong> siendo los más destacados <a href="http://aws.amazon.com/es/">Amazon Web Services</a>, <a href="http://www.microsoft.com/latam/windowsazure/">Microsoft Azure</a>, <a href="http://code.google.com/intl/es/appengine/">Google App Engine</a> y <a href="http://www.rackspace.com">Rackspace</a>, pero no los únicos. Algunos ejemplos de “Mayoristas” mas pequeños son <a href="http://xeround.com/">Xeround database</a> o <a href="http://www.ep.io/">EP.IO</a> de los que <a href="http://www.linkedin.com/in/daguilerac">Domingo Aguilera</a> y <a href="http://metacode.mx/blog">Norberto Martínez</a> han hablado. </p> <p>La tendencia parece ser la siguiente: Los fabricantes de hardware se dedican fervientemente a hacer<strong> </strong><a href="http://es.wikipedia.org/wiki/Servidor_blade"><strong>servidores más grandes</strong></a> que soportan <a href="http://muypymes.com/tecnologia/software/4605-como-funciona-la-virtualizacion-y-para-que-sirve.html">virtualización</a> y a hacer <strong>clientes más pequeños</strong> (como las <a href="http://es.wikipedia.org/wiki/Netbook">Netbooks</a>, los cada vez más poderosos <a href="http://es.wikipedia.org/wiki/Smartphone">smartphones</a> y las muy atractivas <a href="http://es.wikipedia.org/wiki/Tablet_PC">Tablets</a>), y los grandes fabricantes de software hacen sistemas y <strong>servicios cada vez mas genéricos</strong> y cubren cada vez más necesidades con sus plataformas (como los que ya mencioné), o <strong>pequeños fabricantes tratan de hacerse millonarios con una aplicación</strong> que pongan en la nube como si trataran de pegarle al premio mayor de la lotería, aprovechando la globalización de estos servicios (pequeño esfuerzo y grandes ganancias, el sueño húmedo recargado).</p> <p>Hay mucho que aprender e investigar para aprovechar el no tan nuevo paradigma de aplicaciones como servicios en la nube. En su forma más primitiva, <strong>hacer aplicaciones web o web services es suficiente</strong>, incluso saber usar <a href="http://www.microsoft.com/spain/windowsserver2008/virtualization/terminal.mspx">Microsoft Terminal services</a> para distribuir aplicaciones es una opción. Aplicaciones web “<a href="http://es.wikipedia.org/wiki/AJAX">Ajaxificadas</a>” o hechas con paradigmas RIA completos como <a href="http://silverlight.net">Silverlight</a> o <a href="http://www.adobe.com/es/products/flex/?promoid=BPBJI">Adobe Flex</a>, junto a web services eficientes y generales parece ser lo ideal para subirse a la nube. Google apoya Python y Java, Microsoft obviamente ASP.NET (tradicional o MVC), Windows Communication Foundation (WFC) y Silverlight, Amazon y RackSpace tienen formas más abiertas, como rentar servidores virtuales completos y cada quien sabrá que les instala.</p> <p><strong>Yo no creo que “todo correrá en la nube algún día”</strong>, de hecho decir eso implicaría una mentira. Pero es una tendencia firme y arrolladora, y muchos profesionales van a quedar arrollados como en todo cambio (¿recuerdan MS-DOS a Windows? ¿16 a 32 bits? pues tal vez sea aún peor!). <strong>Hay que echarle ganas a entender el verdadero impacto del cómputo en la nube, porque es una realidad con la que vivimos desde hace tiempo.</strong></p> <div class="blogger-post-footer">Salvador Gomez Retamoza @ MetaCode.mx</div>Chava GRhttp://www.blogger.com/profile/16015602287395930873noreply@blogger.com1tag:blogger.com,1999:blog-3987174034982510711.post-84125473328214929602011-01-18T23:48:00.003-06:002011-01-18T23:58:29.928-06:00La evolución del control de versiones, tercera parte: Mercurial<p>Estoy escribiendo una serie de artículos para mostrar los nuevos Sistemas de Control de Versiones (SCV). Esta es el tercero en la serie y los demás están aquí:</p> <ul> <li><a href="http://salvador.oversistemas.com/2010/11/la-evolucion-del-control-de-versiones.html" target="_blank">Parte 1: Introducción</a> </li><li><a href="http://salvador.oversistemas.com/2010/11/la-evolucion-del-control-de-versiones_15.html" target="_blank">Parte 2: Distribuido vs. Centralizado</a></li></ul> <h2>Comenzando con Mercurial</h2> <p>Mercurial esta hecho totalmente en Python. Se puede bajar de <a href="http://mercurial.selenic.com/"><u><span>http://mercurial.selenic.com/</span></u></a></p> <p><strong>Si se usa Windows, lo mejor es bajar TortoiseHG</strong>, que hace las veces de cliente y servidor de Mercurial. Es una extensión del shell de Windows (como TortoiseSVN) que pone todo el control de versiones en el menú de clic-derecho del explorador de archivos. </p> <p>Por supuesto, <strong>existen plugins para los ambientes principales de desarrollo</strong> con la excepción de Delphi desgraciadamente (habrá que escribir uno ;-)</p> <p>Para <strong>Visual Studio</strong>, pueden usar <a href="http://visualstudiogallery.msdn.microsoft.com/en-us/4bc8bff4-a597-4a4b-9edd-ac82e844c337" target="_blank">VisualHG</a>, que de todos modos requiere y depende de que tengan instalado TortoiseHG. Para <strong>Eclipse</strong> la opción se llama extrañamente <a href="http://visualstudiogallery.msdn.microsoft.com/en-us/4bc8bff4-a597-4a4b-9edd-ac82e844c337" target="_blank">Mercurial Eclipse</a>.</p> <h2>Mi repositorio</h2> <p>Con Mercurial lo mas importante es que <strong>tenemos un repositorio en la misma carpeta que tenemos nuestra copia de trabajo</strong>. Dentro de nuestra carpeta de proyecto tendremos una carpeta llamada .hg en donde esta todo el soporte de control de versiones, y nuestro propio repositorio.</p> <h2>Guía rápida a mercurial</h2> <p>Esta es una guía de conceptos/comandos para el uso de Mercurial:</p> <table border="0" cellspacing="0" cellpadding="2" width="100%"> <tbody> <tr> <td width="80" align="middle"><strong><span>Concepto</span></strong></td> <td width="320" align="middle"><strong><span>Descripción</span></strong></td></tr> <tr> <td valign="top" width="80">Init</td> <td valign="top" width="320"><strong>Crea un repositorio nuevo</strong>, con su respectiva copia de trabajo. Ejecutamos <strong><em>Init</em></strong> sobre la carpeta en donde tenemos nuestro proyecto y se genera una carpeta .hg donde esta nuestro repositorio, y la carpeta se convierte en una copia de trabajo.</td></tr> <tr> <td valign="top" width="80">Add </td> <td valign="top" width="320"><strong>Marca los archivos</strong> de la copia de trabajo que no están versionados como listos para ser controlados. Se “copiaran” al repositorio en el siguiente <strong><em>commit</em></strong>.</td></tr> <tr> <td valign="top" width="80">Commit</td> <td valign="top" width="320">Toma todos los <strong>cambios en la copia de trabajo y los copia al repositorio</strong>. Los cambios pueden ser: nuevos archivos, modificaciones en los archivos, borrado de archivos, nuevas configuraciones del repositorio (archivos ignorados, conexión a dependencias, etc.)<br /><strong>Un conjunto de cambios se le llama</strong> <strong><em>changeset</em>,</strong> y debe de ir acompañado de un mensaje, que en un mundo bueno debemos usar para describir que incluyen nuestros cambios.</td></tr> <tr> <td valign="top" width="80">Revert</td> <td valign="top" width="320"><strong>Regresar los archivos al estado en que estaban </strong>cuando hicimos el ultimo <strong><em>commit</em></strong>, como quien dice, tirando a la basura nuestros últimos cambios. Esto sirve cuando la regamos y no hay forma mas sencilla de arreglarlo.</td></tr> <tr> <td valign="top" width="80">Log</td> <td valign="top" width="320">Obtenemos una <strong>bitácora de</strong> <strong><em>changesets</em></strong> que incluye: fecha del <strong><em>commit</em></strong>, usuario que lo realizo, mensaje descriptivo que incluimos en el <strong><em>commit</em></strong>, listado de archivos modificados, añadidos, borrados, etc.</td></tr> <tr> <td valign="top" width="80">Push</td> <td valign="top" width="320"><strong>Subimos nuestros cambios a un repositorio ligado</strong> al nuestro, por ejemplo, un repositorio común. Lo que se sube al repositorio son los <strong><em>changeset</em></strong> que dicho repositorio no tenga, en el orden <strong><em>cronologico</em></strong>. Esto no sube cambios de nuestra copia de trabajo, para eso es el <strong><em>commit</em></strong>.</td></tr> <tr> <td valign="top" width="80">Pull</td> <td valign="top" width="320"><strong>Bajamos de un repositorio ligado hacia nuestro repositorio</strong>, los <em>changesets</em> hechos por otros desarrolladores o subidos desde otros repositorios.<br /><em><strong>Pull</strong></em> solo actualiza nuestro repositorio local, no nuestra copia de trabajo. Para eso, usamos <em>update</em>.</td></tr> <tr> <td valign="top" width="80">Update</td> <td valign="top" width="320"><strong>Actualiza nuestra copia de trabajo</strong>, aplicando <em><strong>changesets</strong></em> que tenemos en nuestro repositorio local. Podemos ”actualizar” los archivos de nuestra copia a cualquier <em><strong>changeset</strong></em> que queramos.</td></tr> <tr> <td valign="top" width="80">Status</td> <td valign="top" width="320"><strong>Lista los cambios</strong> en nuestra copia de trabajo.</td></tr> <tr> <td valign="top" width="80">Clone</td> <td valign="top" width="320"><strong>Crea un repositorio clon, o ligado</strong>, a partir de otro repositorio Mercurial.</td></tr> <tr> <td valign="top" width="80">Heads</td> <td valign="top" width="320">Una “punta” es el ultimo <em><strong>changeset</strong></em> en un repositorio. Podemos tener mas una punta ¿Como!? Fácil.<br />-> Juanito y Maruja actualizan su código hasta el <em><strong>changeset</strong></em> 5<br />-> Luego cada uno hace diferentes cambios y hacen un <em><strong>commit</strong></em>. Los dos tendrán un <em><strong>changeset</strong></em> 6 en su repositorio local.<br />-> Después Juanito sube su <em><strong>changeset</strong></em> al repositorio central.<br />-> En seguida, Maruja baja los últimos cambios antes de subir los suyos y se da cuenta que Juanito ya subió otros.<br />-> Cuando maruja haga <em><strong>commit</strong></em>, su repositorio local tiene dos “puntas” o <em><strong>heads</strong></em>: el <em><strong>changeset</strong></em> 6 de Juanito, mas el <em><strong>changeset</strong></em> 7, con sus cambios.<br />Para poder subir sus cambios, Maruja tendría que hacer algo, por ejemplo Mezclar (<em><strong>Merge</strong></em>) las dos puntas.</td></tr> <tr> <td valign="top" width="80">Merge</td> <td valign="top" width="320"><strong>Mezcla los cambios de dos “puntas”</strong> del repositorio. Lo que hace Mercurial, usa algoritmos para identificar que líneas se modificaron en uno y en otro, mezclando efectivamente un archivo con todos los cambios.<br />En caso de un conflicto en donde se hayan editado la misma sección o líneas de un archivo por parte de ambos <em><strong>changesets</strong></em>, se podría abrir una utilería de sincronización que nos ayudara a editar el archivo resultante de forma interactiva, comparando todos los cambios.</td></tr></tbody></table> <p>Espero esta guía sea de utilidad para comenzar con Mercurial.</p> <h2>A la Apple</h2> <p>Mercurial y Git son dos sistemas de control de versiones distribuidos(SCVD) y entres si <strong>son prácticamente hermanos</strong> gemelos. </p> <p>Ambos proyectos open source y gratuitos nacieron de hecho casi al mismo tiempo y por las mismas causas. Pero como todos los gemelos, se parecen tanto que sus diferencias se ven mucho mas grandes cada vez.</p> <p>Digámoslo así: Si comparamos los SCV con sistemas operativos, Subversion es Windows 98, Mercurial es Mac OS X y Git es Linux (la distribución que se les antoje).</p> <p>Depende de lo que se trate, uno u otro tiene ventajas sutiles sobre el otro.</p> <p>Hay diversos detalles adicionales que tomar en cuenta, por ejemplo, configurar nuestros proyectos para ignorar ciertos archivos inútiles o temporales, que de otra manera, estarían haciendo conflictos innecesarios.</p> <p>Cuando me sea posible, expondré algunos detalles adicionales, además de mostrar las diferencias de uso con Git.</p> <p>Por cierto! aprovecho este post para promocionar los nuevos cursos de Silverlight y Delphi que <a href="http://metacode.mx/es/proximos-cursos" target="_blank">tenemos programados en Metacode para Enero y Febrero 2011</a>. Si no tenemos programados algunos, <a href="http://metacode.mx/es/info-cursos-forma" target="_blank">pidan información</a> con toda confianza ;-)</p><div class="blogger-post-footer">Salvador Gomez Retamoza @ MetaCode.mx</div>Chava GRhttp://www.blogger.com/profile/16015602287395930873noreply@blogger.com1tag:blogger.com,1999:blog-3987174034982510711.post-52552496604323386662010-12-30T19:13:00.001-06:002010-12-30T19:13:03.488-06:00How Kool is Dhat? Kinect en Delphi<p>Alguien con tiempo libre de sobra se aventó un componente de Delphi para utilizar el controlador <a href="http://www.xbox.com/es-mx/kinect" target="_blank">Kinect del XBox 360 de Microsoft</a> en cualquier programa.</p> <p>El componente, llamado TKinect por supuesto, es libre (abierto y gratuito). Se lo pueden <a href="http://www.lakraven.com/delphi-stuff/tkinect/" target="_blank">descargar de la pagina del autor</a> (Simon J Stuart), y quien tenga un hijo que haya recibido el Kinect esta navidad por sabia sugerencia y guía de su papá <img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Guiño" src="http://lh4.ggpht.com/_yMs8QP0UvOk/TR0uHQuxS0I/AAAAAAAAAEM/jGkw22DHF-s/wlEmoticon-winkingsmile%5B2%5D.png?imgmax=800"> puede conectar el sensor al puerto USB de la compu y hacer sus propios experimentos.</p> <p>Además del sensor Kinect y el componente TKinect existen otros requisitos (los drivers gratuitos y una relativamente buena tarjeta de gráficos también). Todo esta listado ahí en el articulo del autor.</p> <p>Si hacen algo interesante, avisen! muchas utilerías hechas en Delphi podrían beneficiarse de una interfaz touchless.</p> <div class="blogger-post-footer">Salvador Gomez Retamoza @ MetaCode.mx</div>Chava GRhttp://www.blogger.com/profile/16015602287395930873noreply@blogger.com3tag:blogger.com,1999:blog-3987174034982510711.post-40819455080003023112010-11-25T15:35:00.001-06:002010-11-25T15:37:29.732-06:00Cursos de Delphi y Silverlight para diciembre 2010<p>Acabamos de publicar la <strong>oferta de cursos de Delphi y Microsoft Silverlight</strong> para este mes de diciembre 2010 en MetaCode. </p> <p>Pueden consultarlo en el sitio de MetaCode en <a href="http://metacode.mx/es/cursos-diciembre-2010">http://metacode.mx/es/cursos-diciembre-2010</a>.</p> <p>Los cursos son virtuales, lo que permite que el horario sea mas adaptable y no tengan que invertir en viáticos para participar, así estaremos como instructores y haremos como siempre, cursos prácticos y personalizados.</p> <p>Se trata de una ronda que incluye el <a href="http://metacode.mx/es/tecnologias/delphi/desarrollo-de-aplicaciones-profesionales" target="_blank">curso principal de Delphi</a> además de varios módulos como <a href="http://metacode.mx/es/tecnologias/delphi/modulos-adicionales#OOP" target="_blank">Programación Orientada a Objetos</a>, <a href="http://metacode.mx/es/tecnologias/delphi/modulos-adicionales#datasnap" target="_blank">DataSnap</a>, <a href="http://metacode.mx/es/tecnologias/delphi/modulos-adicionales#fastreports" target="_blank">reportes con FastReports</a> (desde mi punto de vista, la mejor opción en reportes en Delphi), y un mini-modulo de 4 horas enfocado en cuestiones relativamente recientes del lenguaje en Delphi, como son Genéricos y Métodos Anónimos.</p> <p>Por el lado de Microsoft Silverlight, se ofrece el curso de <a href="http://metacode.mx/es/tecnologias/microsoft-silverlight/fundamentos" target="_blank">Fundamentos y Aplicaciones Silverlight</a>, que es el curso introductorio a la tecnología. Aunque es el curso básico, es necesario tener fundamentos de C# y en general de .Net </p> <p>Esperamos que la selección sea de su agrado, <strong>son los que mas nos han pedido últimamente</strong>, y forman un paquete integral, mezcla de temas intermedios y especializados en Delphi.</p> <p> En el caso de Silverlight <strong>estamos proyectando programar la capacitación avanzada para Enero</strong> del próximo año.</p> <p>Si requieren información pueden contactar un agente en el correo “capacitacion” de metacode.mx o solicitar información en la pagina.</p> <div class="blogger-post-footer">Salvador Gomez Retamoza @ MetaCode.mx</div>Chava GRhttp://www.blogger.com/profile/16015602287395930873noreply@blogger.com5tag:blogger.com,1999:blog-3987174034982510711.post-34808077181945998512010-11-17T23:32:00.001-06:002010-11-17T23:34:39.705-06:00Nuevas luces en la blogosfera<p>Haciendo una pequeña pausa en la <a href="http://salvador.oversistemas.com/2010/11/la-evolucion-del-control-de-versiones.html" target="_blank">serie de artículos sobre control de versiones</a>:</p> <p>Un par de excelentes consultores y amigos, ambos con <strong>ideas de la nueva generación de Tecnologías de Información</strong>, tienen ya su espacio de expresión en el web.</p> <p>Estoy seguro que serán una fuente de información invaluable y una referencia en lo que respecta a sus campos de acción. Sobre todo contribuir a guiar el camino de nuestra industria mexicana de sistemas.</p> <p>El primero es mas bien un regreso. Se trata de <strong>Norberto Martínez</strong>, reconocido desde hace años en la comunidad Delphi, que ahora dirige el <a href="http://metacode.mx/blog" target="_blank">blog oficial de</a> <a href="http://metacode.mx" target="_blank">MetaCode</a>. Tiene grandes ideas para el blog y estará contribuyendo con su experiencia en <strong>Delphi, Firebird, Python, control de versiones y muchas tecnologías de apoyo con su visión invaluable y pragmática</strong>. El blog se encuentra en <a href="http://metacode.mx/blog">http://metacode.mx/blog</a></p> <p>Y el siguiente es una grata sorpresa para su servidor. <a href="http://elparadigmasiguiente.blogspot.com/" target="_blank"><strong>SourceCode</strong></a>, un profesional que también admiro mucho como persona y como consultor de TI, y que contribuye en su blog en otra faceta en la que tiene mucho que aportar: como <strong>gerente corporativo de sistemas</strong>.</p> <p>El blog de SourceCode se puede encontrar en <a href="http://elparadigmasiguiente.blogspot.com">http://elparadigmasiguiente.blogspot.com</a>. El tiene experiencia y opinión valiosa en una cantidad de cosas, desde programación Delphi, infraestructura de sistemas, matemáticas, liderazgo y administración, gadgets y tecnología en general, hasta cosas como <a href="http://opensimulator.org/wiki/Main_Page" target="_blank">OpenSim</a>. Veremos que sorpresas nos da.</p> <div class="blogger-post-footer">Salvador Gomez Retamoza @ MetaCode.mx</div>Chava GRhttp://www.blogger.com/profile/16015602287395930873noreply@blogger.com0tag:blogger.com,1999:blog-3987174034982510711.post-54476274366041347212010-11-15T23:16:00.001-06:002010-11-15T23:16:00.951-06:00La evolución del control de versiones, segunda parte: Distribuido vs. Centralizado.<p>(ver <a href="http://salvador.oversistemas.com/2010/11/la-evolucion-del-control-de-versiones.html" target="_blank">Parte 1</a>)<br>Estoy escribiendo una serie de artículos sobre los nuevos <strong>Sistemas de Control de Versiones (SCV)</strong>, que buscan (y tiene éxito en) ser mejores soluciones que lo que Subversion hace ya de por si muy bien.</p> <h2>Distribuido contra Centralizado</h2> <p>Esta es la principal diferencia entre la anterior generación y la nueva generación de SCVs.</p> <p>En un SCV centralizado (como Subversion, Perforce, etc.), <strong>un proyecto vive en un repositorio y cada desarrollador obtiene una copia de trabajo del repositorio</strong>. Sobre sus copias de trabajo el desarrollador hará cambios, los subirá de vuelta al repositorio central y actualizara constantemente.</p> <p><img style="margin: 1px" src="http://byfiles.storage.msn.com/y1p13Awd1JNrRRyhXXvPsnMbVYUAao_X9b15wrb6Z8sRF0PMkKthCm-flBguIsrDX78ve87ji6zehY?PARTNER=WRITER" width="367" height="268"></p> <p>En un SCV distribuido (como Mercurial, Git, Bazaar, etc.), <strong>cada desarrollador tiene un repositorio y obtiene su copia de trabajo de ahí.</strong> Puede estar interactuando cuanto quiera con su repositorio, subiendo cambios. <strong>Cuando quiera puede empujar los cambios en su repositorio hacia otro repositorio</strong>, que puede o no ser un repositorio central, el repositorio del proyecto de otro desarrollador, etc.</p> <p><img style="margin: 1px" src="http://www.userlinux.net/uploads/media/images/esquema-mercurial.jpg" width="346" height="228"></p> <h2>Ventajas del sistema distribuido</h2> <p>Puede parecer mas complejo pero en realidad es una gran idea el distribuir así el proyecto. Las razones son técnicas y sociales.</p> <p><strong>Técnicamente</strong>, es mas fácil llevar el trabajo y mantenerlo actualizado en mi propio repositorio y cuando sea necesario lo empujo hacia el repositorio compartido. También<strong> es posible mezclar mis cambios con los de un colega primero</strong>, verificar que funciona todo y después empujarlos todos hacia un repositorio compartido. </p> <p><strong>Socialmente</strong>, <strong>los desarrolladores tendrán mas confianza en estar subiendo de forma continua sus cambios</strong> a su repositorio personal sabiendo que, si su código tiene problemas aun, no se los pasaran a nadie mas.</p> <p><strong>Técnicamente</strong> además, al subir a nuestro propio repositorio continuamente nuestros cambios, cuando es hora de mezclar nuestro código con otros desarrolladores<strong> todo funciona como esperamos</strong>:<strong> un sistema distribuido tiene mas información y es mas eficiente al saber como mezclar el código</strong>, que cambio quien y a que hora. Mucho mas eficiente que Subversion por lo menos.</p> <p>En el siguiente articulo comenzare a hablar de cada uno de los sistemas, <strong>empezando con Mercurial.</strong></p> <div class="blogger-post-footer">Salvador Gomez Retamoza @ MetaCode.mx</div>Chava GRhttp://www.blogger.com/profile/16015602287395930873noreply@blogger.com0tag:blogger.com,1999:blog-3987174034982510711.post-54013410712700931952010-11-12T22:53:00.003-06:002010-11-12T22:58:31.185-06:00La evolución del control de versiones, primera parte.<div style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></div><br />
Repito una vez mas, sin cansarme: quien no usa <a href="http://es.wikipedia.org/wiki/Control_de_versiones" target="_blank">control de versiones</a> es como quien no usa cinturón de seguridad, no compra seguro del auto, no trae llanta de refacción y habla por el celular mientras conduce: <strong>podrá llegar muchas veces a su destino pero no significa que no esta arriesgando mucho en el camino, aun cuando vaya solo.</strong><br />
<strong><br />
</strong><br />
<strong></strong>Y eso que los sistemas de control de versiones existen desde hace tanto y han evolucionado increíblemente.<br />
<div style="text-align: right;">En el principio existió <a href="http://www.cvshome.org/eng/" target="_blank">CVS</a>: no manejaba muy bien los <img align="left" height="73" src="http://durak.org/cvswebsites/cvssmaller.gif" style="display: inline; float: left;" width="65" />archivos binarios, pero la idea de que pueda bajar mi código como lo tenia ayer o hace un año, comparar las diferencias y además de tenerlo respaldado todo el tiempo, todo con unos sencillos comandos es innegablemente excelente.<br />
<br />
<div style="text-align: left;"><a href="http://subversion.apache.org/images/svn-square.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="80" src="http://subversion.apache.org/images/svn-square.jpg" style="display: inline; text-align: right;" width="80" /></a><a href="http://subversion.apache.org/" target="_blank">Subversion</a> fue el sistema que sustituyo a CVS, y que hace ver a su ancestro como juguete de bebés. Resuelve el problema de los binarios y <strong>hace que colaborar sea muy sencillo</strong>, y aun mas con un cliente como <a href="http://tortoisesvn.net/" target="_blank">TortoiseSVN</a>. Integra la idea de crear ramas de desarrollo que luego se pueden “remezclar” en el código principal, o marcar revisiones, corregir bugs sobre versiones viejas y luego integrar esa corrección en el desarrollo principal, etc.</div></div><br />
<div style="text-align: left;">Como todo, <strong>Subversion ahora no es suficiente</strong>. Hay nuevas necesidades en el desarrollo cada vez mas distribuido y <strong>hay pequeños y grandes detalles de Subversion que podrían ser mejores a la hora de colaborar</strong>.</div><br />
Aquí es donde entran los nuevos reyes del control de versiones: <strong><a href="http://mercurial.selenic.com/" target="_blank">Mercurial</a>, <a href="http://git-scm.com/" target="_blank">Git</a> y <a href="http://bazaar.canonical.com/en/" target="_blank">Bazaar</a></strong>. <br />
<br />
<a href="http://metacode.mx/blog/" target="_blank">Norberto Martínez</a> y su servidor tenemos nuestras apuestas con <strong>Git y Mercurial</strong>, y hemos estado comparándolos, <strong>especialmente Norberto se dio a la tarea de investigar lo que ambos tienen que ofrecer en el web</strong>. Voy a escribir sobre ellos en los siguientes posts para que cada quien tome el camino que mas le lata.<div class="blogger-post-footer">Salvador Gomez Retamoza @ MetaCode.mx</div>Chava GRhttp://www.blogger.com/profile/16015602287395930873noreply@blogger.com2tag:blogger.com,1999:blog-3987174034982510711.post-72423109961133637382010-11-04T11:30:00.001-06:002010-11-04T11:30:02.824-06:00Silverlight es todo, menos zombie<p><strong>Silverlight es una tecnología increíble</strong>, tal vez la mejor que Microsoft ha dado a luz. Solo espero que siga con su estrategia multiplataforma.</p> <p>En la reciente convención PDC, la mas grande conferencia de desarrolladores de tecnologías Microsoft del año, se dio enfoque a que <strong>la compañía pondría muchos de sus huevos en la canasta de HTML 5 con su nuevo Internet Explorer 9</strong>.</p> <p>Como mucha gente percibe a HTML 5 como una tecnología que podría cubrir las necesidades que Silverlight nació para solucionar, muchos <a href="http://www.zdnet.com/blog/microsoft/microsoft-our-strategy-with-silverlight-has-shifted/7834?tag=leftCol;post-3311" target="_blank">reporteros amarillistas</a> que viven de hacer escándalos (hasta en nuestro medio sucede eso, es increíble) comenzaron a sugerir cosas estilo “Silverlight esta muerto” y “Microsoft abandona a Silverlight por HTML 5”, y otros encabezados mas llamativos para que los lean mas y vender mas.</p> <p>Por supuesto esas noticias se va corriendo como pólvora, incluso Marco Cantú ya lo <a href="http://blog.marcocantu.com/blog/microsoft_silverlight.html" target="_blank">menciono en su blog.</a> </p> <p>Con todo el respeto que me merece Marco y su forma muy sensata de exponer las ideas, quien crea que algo tan útil y redituable para todos (empezando por Microsoft) como Silverlight “morirá” <strong>no pueden estar mas equivocados</strong>.</p> <p>La historia lo dice todo: Microsoft deja lo que no pega, o si inventa (copia) una tecnología nueva que le va a redituar mas. Pero el caso es muy diferente:</p> <ul> <li>Silverlight es propietario y multiplataforma, mientras que <strong>HTML es un estándar con el que es mas difícil competir</strong>. Todos los navegadores lo soportaran tarde o temprano, y Safari o Google Chrome van muy adelante.</li> <li><strong>La estrategia con IE9 es recuperar el mercado</strong> que Google Chrome y Firefox han ido tomando. Ahorita dice Microsoft algo, y luego cuando liberen Silverlight 5, dirán otra cosa.</li> <li>Toda la<strong> lógica de HTML 5 es Javascript</strong>, ¿han intentado hacer grandes aplicaciones en JavaScript, incluso usando jQuery o Dojo? Yo no lo vuelvo a hacer, gracias a Silverlight.</li> <li>Para hacer una RIA, <strong>Silverlight tiene total integración entre la capa intermedia de servicios y la Interfaz del cliente</strong>, incluso ayuda con la conexión a BD. </li> <li>Con Silverlight puedo instalar las aplicaciones en mi escritorio (en <strong>modo Out-of-Browser</strong>) y solicitar <strong>permisos elevados</strong>. HTML 5 puede soñar con eso, por que nunca va a poder hacerlo.</li> <li>En modo Out-of-browser con permisos puedo instanciar <strong>Excel u Outlook</strong> y cualquier otra cosa COM, <strong>Leer y escribir archivos del usuario</strong>, usar el <strong>API de Windows</strong>, etc. </li> <li>Silverlight sigue siendo la plataforma de desarrollo para los <strong>Windows Phone 7</strong> que vienen en grande.</li> <li>Las animaciones y efectos en Silverlight son sencillos de hacer con Expression Blend. </li> <li>Para la lógica de Silverlight puedo usar C#, JavaScript, Visual Basic, F#, y mas adelante IronPython, IronRuby, Delphi Prism, etc. Así <strong>solo tengo que aprender un lenguaje para el backend y el frontend</strong>.</li> <li>Una sola aplicación de <strong>Silverlight en una pagina web puede manipular todo</strong> el JavaScript, HTML DOM y CSS de la pagina.</li></ul> <p>Para su servidor, es obvio que <strong>Silverlight esta mas vivo que nunca</strong> desde que se libero Silverlight 4 en marzo de este año, como también es obvio que Microsoft va por todo, como siempre, sin importar si atropella a dos que tres (mil) en el camino. Ayer por Silverlight 4, ahora por Internet Explorer 9 mañana por Silverlight 5, etc, etc. </p> <div class="blogger-post-footer">Salvador Gomez Retamoza @ MetaCode.mx</div>Chava GRhttp://www.blogger.com/profile/16015602287395930873noreply@blogger.com2tag:blogger.com,1999:blog-3987174034982510711.post-71872098470251773872010-09-23T00:28:00.002-05:002010-09-23T00:31:36.471-05:00Webinar de Delphi XEEl Jueves 24 de Septiembre a las 11 a.m. (hora de México) habrá un seminario web de presentación de Delphi XE y las nuevas funcionalidades a detalle.<div><br />Las nuevas tecnologías, funciones y productos de terceros que integra en el ambiente esta versión<b>, no son lo que esperábamos </b>y que nos habian anunciado (64 bits, compilar para Mac en nativo, bla, bla), pero desde mi punto de vista, <b>son lo que Delphi necesita de verdad para los retos de ahora</b>, que de hecho ya le dolían a Delphi.</div><div><br />Por ejemplo, muchos de los proyectos de hoy se hacen entre dos o mas programadores (eso es mucho mas común que hace apenas cinco años). Si XE integra<b> control de versiones</b> en el mismo IDE, con <b>comparacion de versiones de los fuentes</b>, ademas de un<b> administrador de configuraciones de compilación e implementacion</b> (deploy) automatizado con la posibilidad de obtener <b>estadisticas de analisis del proyecto en una pagina web</b> (estado de compilacion, metricas, auditorias, etc.) con un click, significa que un equipo de desarrollo puede instalar Delphi y comenzar a colaborar inmediatamente. ¡Lo que hubiera dado por tener todo esto integrado con Delphi hace un par de años! En fin. Ahora Delphi XE esta de verdad listo para competir en esa liga, sin comprar otros productos y mas fácil.</div><div><br />Si pueden <a href="http://forms.embarcadero.com/forms/AMLATAMROLA1009RADWebinar9-24?elq=f0ef78fcd3be4563b441d073b680bf0f">dense una vuelta por el webinar</a> y chequenlo.</div><div><br />Realmente me sorprende aun hoy, que alguien pregunte enfrente de mas de cuarenta desarrolladores de Delphi "¿Quien de aqui usa control de versiones?" y solo 4 levanten la mano. ¡Subversion es gratis por favor!</div><div><br />Animo.</div><div class="blogger-post-footer">Salvador Gomez Retamoza @ MetaCode.mx</div>Chava GRhttp://www.blogger.com/profile/16015602287395930873noreply@blogger.com2tag:blogger.com,1999:blog-3987174034982510711.post-44473709219305855722010-08-17T12:22:00.002-05:002010-08-17T15:29:18.094-05:00¿Problemas con Delphi (o cualquier otra cosa) con el registro en Windows de 64bits?Para habilitar la compatibilidad de aplicaciones de 32 bits en sistemas Windows de 64 bits, Microsoft realizo algunos ajustes al registro. Esto ha permeado en varias aplicaciones antiguas o compiladas con compiladores antiguos, por ejemplo Delphi 7. Por ejemplo, al intentar borrar una llave del registro con un TRegistry es posible que simplemente no lo haga y no de ninguna retroalimentación del error.<br />
En el <a href="http://blog.delphi-jedi.net/2010/08/17/tregistry-deletekey-and-64bit/" target="_blank">blog oficial de Delphi-JEDI</a> describen el problema principal, y alguna posibilidad de darle la vuelta, conectando con el registro mediante la API de Windows, pero previamente determinando la versión de Windows en donde se corre el sistema para saber que función del API de debería invocar. La versión actual Delphi 2010 lo arregla por supuesto.<br />
Esto es independiente de si Delphi compila a 64 bits, lo cual no hace, ni hará en esta versión XE. Según Allen Bauer, Jefe Científico de Embarcadero, este es <a href="http://wiert.wordpress.com/2010/08/17/allen-bauer-sheds-more-light-on-the-goal-of-the-64-bit-support-level-for-delphi-and-the-goal-of-the-x64-delphi-and-x64-c-release-time-frames/" target="_blank">el objetivo de la próxima versión</a> hasta el 2011 (si no se cambia el roadmap otra vez, espero que no).<br />
Por cierto, el segundo video vista previa de Delphi XE esta al aire, tanto <a href="http://www.embarcadero.com/rad-studio-xe-preview" target="_blank">en el sitio de Embarcadero</a> como <a href="http://www.youtube.com/watch?v=kO63NrWxE8E" target="_blank">en YouTube</a>.<div class="blogger-post-footer">Salvador Gomez Retamoza @ MetaCode.mx</div>Chava GRhttp://www.blogger.com/profile/16015602287395930873noreply@blogger.com1tag:blogger.com,1999:blog-3987174034982510711.post-80980514251141020212010-08-11T12:37:00.005-05:002010-11-04T16:13:42.173-06:008 meses desde Colima….Hace 8 meses que regrese de Colima, donde tuve el gusto de participar lidereando el desarrollo del sistema del registro publico de la propiedad, lo cual acá entre nos fue todo un estimulante reto y un verdadero maratón, ya saben, como todos los proyectos de esa trascendencia, con su correspondiente exitosa llegada a la meta (por supuesto :)<br />
Estos 230 y tantos días desde que volví, y hombro con hombro con mis 3 excelentes socios hemos estado creciendo y trabajando nuestra nueva y reluciente iniciativa llamada <a href="http://metacode.mx/" target="_blank">Metacode S.A. de C.V.</a> donde estamos fusionando las empresas, ideas y experiencia de cada uno.<br />
Hasta ahora, y creo que hasta ahora, pues siento que comienzo a sacar la cabeza después de un espectacular viaje submarino de aventuras, para hacer una escala en puerto y cambiarnos a un bote mas grande donde quepan nuestras ideas, me doy un momento para reconocer y mandar un gran abrazo a mis amigos del Black Box Team, el equipo de jóvenes promesas del desarrollo de sistemas que tengo que decir, no he conocido a profesionales, jóvenes desarrolladores mas apasionados, comprometidos e inteligentes que ellos. <br />
<br />
<div style="text-align: right;">Hicimos un gran equipo y fue un placer conocerlos y trabajar día con día con gente que le gusta programar y aprender cada vez mas, y que sabe lo que es un equipo, además de ser personas de gran calidad. Aprendí mucho con ellos como mi equipo y espero haberles enseñado también mucho.</div><a href="http://lh5.ggpht.com/_yMs8QP0UvOk/TGLfw-4vQAI/AAAAAAAAADs/IdXLVmtGeJQ/s1600-h/blackbox_team%5B7%5D.jpg"><img alt="blackbox_team" border="0" height="325" src="http://lh3.ggpht.com/_yMs8QP0UvOk/TGLfxV9LtsI/AAAAAAAAADw/_91X4mLFPQU/blackbox_team_thumb%5B5%5D.jpg?imgmax=800" style="border-bottom-color: initial; border-bottom-style: initial; border-bottom-width: 0px; border-left-color: initial; border-left-style: initial; border-left-width: 0px; border-right-color: initial; border-right-style: initial; border-right-width: 0px; border-top-color: initial; border-top-style: initial; border-top-width: 0px; display: inline; margin-left: 0px; margin-right: 0px; text-align: right;" title="blackbox_team" width="423" /></a><br />
Aprovecho este espacio para recomendarlos ampliamente como profesionales, tanto desarrolladores de Delphi como de C# y ASP.NET. Específicamente todos son fuertes en Delphi, Christian Ruiz, Miguel Navarro y muy especialmente Miguel Ángel Rueda quien tiene una inventiva sin igual, y además Miguel Ochoa y Ray Ávila son excelentes en C# y ASP.NET MVC, pero sobre todo son, según mi humilde definición, grandes desarrolladores en toda la extensión de la palabra. A mi amigo Luis Fernando Vásquez quien aporta siempre sus ideas con mucho entusiasmo y siempre dispuesto a aprender mas.<br />
Por supuesto el proyecto no habría sido todo lo que fue sin el apoyo del líder del proyecto y ahora un gran amigo Marco Jaramillo, hicimos mancuerna lidereando, implementando, estimando y trabajando, hasta el cansancio en ocasiones. Gracias man.<br />
y quiero agradecer también a la academia por….. ejem… no, eso ya es ma..no negra…no va aquí :D<br />
Y para que hablar en pasado, si arrieros somos y en el camino andamos, ¿o que?<br />
Por cierto, si alguien le interesa un excelente desarrollador (especialmente si es Delphi y/o .Net) para su equipo, los puedo contactar. El chiste es que la gente realmente talentosa tengo las oportunidades de desempeñarse que se merece.<div class="blogger-post-footer">Salvador Gomez Retamoza @ MetaCode.mx</div>Chava GRhttp://www.blogger.com/profile/16015602287395930873noreply@blogger.com9tag:blogger.com,1999:blog-3987174034982510711.post-56741994199346612362010-08-10T13:46:00.001-05:002010-08-10T13:46:41.401-05:00Nuevo y mejorado Delphi XE (antes Delphi 2011)<p>Acaban de anunciar en el sitio de Embarcadero al nuevo y mejorado Delphi XE, que es prácticamente la versión 2011 del producto.</p> <p>El <a href="http://www.embarcadero.com/rad-studio-xe-preview" target="_blank">primer video de preview</a> (de tres videos en total) en donde David I con Mike Rozlog (Delphi product manager) muestran las capacidades de integración con el control de versiones Subversion, gran mejora del modelado de clases, además de la inclusión del muy mejorado Delphi for PHP ahora llamado RadPHP.</p> <p>Al parecer como se había anunciado y mostrado en previews anteriores del producto de PHP, RadPHP cuenta ahora con todas las capacidades del editor e IDE de Delphi, es decir CodeInsight, ErrorInsight, HelpInsight, watchs, debugger con inspects, además de un profiler para eficientar las aplicaciones. La mayor noticia es que ahora se cambia de nombre al producto y lo mejor es que esta integrado en el mismo paquete de RadStudio XE junto con Delphi, C++Builder y Delphi Prism.</p> <p>La integración con Subversion es algo largamente esperado por tu servidor, y parece ser exactamente lo que esperaba. </p> <p>Los siguientes videos saldrán al aire cada 8 días a partir de ahora: el 17 de agosto y el 24 de agosto.</p> <div class="blogger-post-footer">Salvador Gomez Retamoza @ MetaCode.mx</div>Chava GRhttp://www.blogger.com/profile/16015602287395930873noreply@blogger.com0tag:blogger.com,1999:blog-3987174034982510711.post-72458515204283311312010-08-03T16:02:00.003-05:002010-08-03T16:07:55.995-05:00Talento ComicAdvertencia: Nada que ver con programación o con Delphi. Pero si con mucho talento:<br /><br />Unos comiqueros nada hechisos, sino todo lo contrario, con gran talento y técnica. Ha publicado un montón de cosas y lo mas chingon es que hace cosas profesionales nomas por que le gusta, y le pagan por ello:<br /><br /><a href="http://produccionesbalazo.com/">http://produccionesbalazo.com/</a><br /><br />El "Bachan" es la onda! Vale la pena comprar su historias, todas tiene una calidad y estilo de primera.<br />Mi buen amigo y socio Norberto Martinez descubrio el sitio de este cuate,que nos llena de orgullo ademas.<div class="blogger-post-footer">Salvador Gomez Retamoza @ MetaCode.mx</div>Chava GRhttp://www.blogger.com/profile/16015602287395930873noreply@blogger.com0tag:blogger.com,1999:blog-3987174034982510711.post-87406775232800633342010-06-07T14:41:00.001-05:002010-06-07T14:41:00.616-05:00Silverlight…Un teléfono para gobernarlos a todos…<p><a href="http://www.silverlight.net" target="_blank">Microsoft Silverlight</a> es una gran tecnología, con mucho potencial para hacer lo que ahora todo mundo sueña: una aplicación de escritorio que se ve dentro de un navegador (sin mas instalación) con la naturaleza de una aplicación web (conectada desde cualquier sitio) y aun mas monerías como animaciones y manejo de video, audio, webcam, etc.</p> <p>El paradigma cambia para muchos programadores: Silverlight al ser una tecnología basada en .Net, es intensivo en programación orientada a objetos, tanto como Java. Incluso los datos ya no son tablas de campos y registros, ni siquiera filas y columnas, si no <strong>colecciones de objetos con propiedades</strong>. Parece que no, pero se que es un cambio mayúsculo para muchos programadores. Aun así Silverlight sigue siendo una mucho mejor alternativa para muchas –pero no todas- de las aplicaciones web, <strong>incluso para una buena porción de aplicaciones de escritorio</strong>.</p> <p>Microsoft le esta metiendo dinero en grande a Silverlight y su tecnologías relacionadas como <a href="http://msdn.microsoft.com/es-es/library/bb399567(VS.90).aspx" target="_blank">ADO Entity framework</a> y <a href="http://www.silverlight.net/getstarted/riaservices/" target="_blank">RIA Services</a>, <a href="http://www.microsoft.com/latam/visualstudio/default.mspx" target="_blank">Visual Studio 2010</a> y <a href="http://www.microsoft.com/spain/expression/" target="_blank">Expression Blend 4</a>, además de las aplicaciones de “La nube” de Microsoft, llamada <a href="http://www.microsoft.com/mexico/softwaremasservicios/azure.aspx" target="_blank">Azure</a>, que por cierto seguramente sigue siendo un concepto muy extraño para muchos, en menor o mayor medida.</p> <p>Y todo tiene sentido cuando lo vemos bajo la lupa del <a href="http://www.windowsphone7.com/" target="_blank">Windows Phone 7</a>, la nueva plataforma de MS para tratar de respirar por encima del montón que le están haciendo Google y Apple (sin contar las empresas Chinas que no conocemos). Imaginen un teléfono con sistema operativo Microsoft Windows Phone 7, con el que – como con muchos de los teléfonos- podemos tomar fotos, escuchar música y grabar y reproducir videos y jugar cualquier cantidad de juegos….<strong>lo que hacemos diario claro</strong>…. pero además sincronizamos nuestros contactos, enviamos correo, navegamos por internet y escribimos o leemos documentos, además de poder bajarle aplicaciones o incluso crearlas….<strong>nada nuevo?</strong> … de acuerdo, así es.</p> <p>Ahora imaginen que hay teléfonos con <strong>Windows Phone 7</strong> para muchos rangos de precio,<strong> tan económicos como 1500 pesos</strong> incluso, o menos. Excelente.</p> <p>Ahora, siguiendo con nuestro próximo futuro “imaginario”: digamos que <strong>todo lo que hacemos en nuestro superteléfono se sincroniza en internet</strong>. Los documentos van a <a href="http://workspace.officelive.com/es-mx/" target="_blank">Microsoft Office Live</a>, tenemos conexion directa a nuestro correo de <a href="http://mail.live.com" target="_blank">Microsoft Hotmail</a> (alias “Live Mail”) y por supuesto podemos usar <a href="http://messenger.live.com" target="_blank">Microsoft Live Messenger</a> para estar chateando, además de la obvia conexión a la red social <a href="http://home.live.com/" target="_blank">Microsoft Live Como-Se-Llame</a>, en donde podemos presumir las fotos que tomamos, o almacenarlas en <a href="http://skydrive.live.com/" target="_blank">Microsoft SkyDrive Live Storage</a> en internet. ¿Quieres comprar música y películas? no muchos lo hacen por aquí, pero si insistes no te preocupes! ahí esta la <a href="http://www.microsoft.com/windows/windowsmedia/player/stores.aspx" target="_blank">tienda en línea del Microsoft Windows Media Player</a>, que usas para escuchar y ver todo eso que compres. </p> <p>Y asi seguimos… ¿Juegos y aplicaciones? <a href="http://marketplace.windowsphone.com/Default.aspx" target="_blank">Microsoft Windows Phone Marketplace</a>. </p> <p>¿Quieres hacer aplicaciones móviles? <strong>si quieres que corra en tu Windows Phone, usas Microsoft Silverlight</strong>. Simple y llano. </p> <p>Y cualquier persona que tengo un gramo de conspirafóbico, incluso si además te consideras sensato, o como yo le llamo a esa combinación: <strong>“tener sentido común”,</strong> entonces puedes temer por un momento con el futuro en que Microsoft es el mas dispuesto a conquistarnos siendo El Monopolio sobre todos nosotros. Como Sauron grabaría en el anillo, en palabras escritas por <a href="http://es.wikipedia.org/wiki/J._R._R._Tolkien" target="_blank">J.R.R. Tolkien</a>, “Un teléfono para gobernarlos a todos…”.</p> <div class="blogger-post-footer">Salvador Gomez Retamoza @ MetaCode.mx</div>Chava GRhttp://www.blogger.com/profile/16015602287395930873noreply@blogger.com3tag:blogger.com,1999:blog-3987174034982510711.post-89681938919091184972010-05-27T00:58:00.001-05:002010-05-27T00:58:31.345-05:00¿Quien le puso pausa a mi Delphi?<p>Los últimos, digamos…. 6 meses? toda la comunidad Delphi parece estar en pausa, o para los que se sientan aludidos, que son mas de los que quisiera, vamos a decir que parece estar “en cámara lenta”. </p> <p>Y me refiero a TODO: en los blogs de embarcadero hay mas noticias sobre Delphi para PHP que de Delphi mismo, no se diga los blogs de la comunidad (este incluido entre la primera fila, lo se), el <a href="http://www.delphi-jedi.org" target="_blank">proyecto JEDI</a> no parece tener mucha vida ultimamente! y eso es decir mucho siendo un proyecto de mas de 600 componentes, bibliotecas y un montón mas de maravillas gratuitas.</p> <p>Se que están cocinando algo grande en el Embarcadero, que se cambiaron de edificio y que se trata para empezar de compilar ejecutables desde Delphi para Mac OS X (como lo mostro <a href="http://edn.embarcadero.com/article/39934" target="_blank">Michael Rozlog en el RoadMap</a> publicado) pero ¿que onda? un anuncio como ese parece haber pasado desapercibido, como un grito en un pueblo fantasma! ¿Que sucede?</p> <p>Parece la calma antes de la tormenta, o la calma después de la tormenta, difícil saberlo. Hay presión con la crisis económica que nos dejamos enjaretar y todo, pero aun así parece que hay muy pocos interesados en el tema, y aun así se que muchos esperamos que sea un cambio de rumbo en grande para bien, si puedo hacer para las Mac (¿y para el iPhone?) lo que hago con Windows desde Delphi puede que sea asi; si después viene Linux, ojala pronto, pues que mejor! Solo espero que no llegue demasiado tarde, o tal vez Delphi tendra que empezar desde casi cero en una nueva comunidad… bueno, por otro lado, eso no suena tan mal  ;-)</p> <div class="blogger-post-footer">Salvador Gomez Retamoza @ MetaCode.mx</div>Chava GRhttp://www.blogger.com/profile/16015602287395930873noreply@blogger.com1