tag:blogger.com,1999:blog-27117203550931647782024-02-08T10:43:49.419-03:00Blog de Hernán Ziniappetite for knowledgeAnonymoushttp://www.blogger.com/profile/09770368799869278334noreply@blogger.comBlogger91125tag:blogger.com,1999:blog-2711720355093164778.post-22580339489545154452014-04-10T07:44:00.002-03:002014-04-11T08:32:29.149-03:00Resaltar sintaxis GeneXus en Notepad++Hola!<br />
<br />
<div style="text-align: justify;">
A veces uno se pasa porciones de código entre colegas o simplemente quiere utilizar alguna facilidad del Notepad++ o lo utiliza como un pequeño borrador o recordatorio, o quiere mostrar código sin tener el IDE instalado, en fin por varios motivos, uno querría ver código genexus con su sintaxis resaltada. Entonces un día me tomé el trabajo de crear la definición para resaltar la sintaxis de código GeneXus <i>(Para los trolls: Si, en GeneXus se programa y tiene código)</i></div>
<i><br /></i>
Para importar:<br />
<div style="text-align: justify;">
Menú Lenguaje --> Definir Idioma ó Language --> Define your language...</div>
<div style="text-align: justify;">
Luego importar... / import... seleccionar archivo y aceptar, <b>luego se debe reiniciar el Notepad++</b> para que actualice la lista de lenguajes.<br />
<br />
<i><b>*Necesitas <a href="http://notepad-plus-plus.org/">Notepad++</a> versión >= 6.5.5</b></i></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-oDNdZX64NZY/U0ZxF-kiuLI/AAAAAAAABo4/2af88VhjwpU/s1600/UDL-Np.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-oDNdZX64NZY/U0ZxF-kiuLI/AAAAAAAABo4/2af88VhjwpU/s1600/UDL-Np.png" height="177" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
Con esto lograremos que se agregue en el menú lenguajes la opción para resaltar sintaxis GeneXus, también aplicará este estilo a cualquier archivo con extensión "gx".</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Aquí una vista previa de como queda:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-Yno57DCsGiw/U0ZzF06R5rI/AAAAAAAABpE/jOo7yt1Bbrs/s1600/GX-Np.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-Yno57DCsGiw/U0ZzF06R5rI/AAAAAAAABpE/jOo7yt1Bbrs/s1600/GX-Np.png" height="464" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Traté de hacerlo lo mas completo posible para poder resaltar código de: Eventos, Procedimientos y Reglas.</div>
<div class="separator" style="clear: both; text-align: left;">
Pueden modificar el estilo a gusto y piacere, si alguien hace otro mejor compartan.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://drive.google.com/file/d/0B_omquMhaNjKeGQxSWpGVGNoNWM/edit?usp=sharing">LINK DE DESCARGA GeneXus.xml</a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="text-align: justify;">
<u>Problemas conocidos:</u> La librería <a href="http://udl20.weebly.com/">UDL</a> que utiliza notepad++ para el estilo de los lenguajes definidos por el usuario en su versión 2 <a href="http://sourceforge.net/p/notepad-plus/discussion/331754/thread/bd2bc405/">todavía no soporta</a> definir el color de fondo como "transparente" o para que tome el mismo color de fondo del tema, con lo cual si utilizas un tema con fondo oscuro, el texto se verá horriblemente contrastante ya que el mismo está fijo como blanco, les dejo un link con el archivo apto para estilos con fondo negro:</div>
<br />
<div style="text-align: center;">
<a href="https://drive.google.com/file/d/0B_omquMhaNjKUE02LUFjTTItZ0U/edit?usp=sharing">LINK DE DESCARGA GeneXus_dark.xml</a></div>
<br />Anonymoushttp://www.blogger.com/profile/09770368799869278334noreply@blogger.com7tag:blogger.com,1999:blog-2711720355093164778.post-87511371822519679522011-05-31T22:00:00.000-03:002011-05-31T23:58:04.394-03:00Cambiar precisión de columnas decimal<div>No les pasó alguna vez que subestimaron el tamaño de una columna tipo decimal? y despues no sabían por qué empezaron a desbordarse por doquier!?. Bueno les hice un pequeño script t-sql que les va a solucionar la vida.</div><div><br /></div><div>En mi caso quería cambiar todas las columnas de precisión (10,4) a (18,4) ya que en realidad SQL Server utiliza la misma cantidad de bytes (9 bytes) para almacenar cualquiera de estas dos configuraciones del tipo decimal, con lo cual en estos casos conviene utilizar la máxima precisión posible dentro de cada rango especificado en <a href="http://msdn.microsoft.com/es-es/library/ms187746.aspx">este enlace</a> donde podrán ver la tabla que muestra la relación precisión - tamaño en bytes.</div><div><br /></div><div>También en el enlace anterior se explica para los que no saben, que la precisión es la cantidad total de dígitos a almacenar y la escala, que es opcional, indica la cantidad de posiciones decimales.</div><div>Por ejemplo 10,2 significa 10 dígitos en total de los cuales 8 son enteros y 2 decimales.</div><div><br /></div><div>El sript convierte todos los campos decimal de la base de datos que este en uso al momento de su ejecución a su máxima precisión para el numero de bytes actual que esta ocupando, también incrementa los lugares decimales de 2 a 4 dígitos. Se puede modificar fácilmente este script para que por ejemplo aumente todos los campos decimal a una precisión deseada o cualquier otra condición que sea necesaria, la base está... a meterle mano sin miedo (previo backup y en ambiente de testing)</div><div><br /></div><div><span class="Apple-style-span" style="color: rgb(195, 78, 0); ">-- VARIABLES</span></div><div><div><span style="color:#400000; font-weight:bold; ">DECLARE</span> @tblName0 NVARCHAR<span style="color:#806030; ">(</span><span style="color:#c00000; ">150</span><span style="color:#806030; ">)</span></div><div><span style="color:#400000; font-weight:bold; ">DECLARE</span> @tblName NVARCHAR<span style="color:#806030; ">(</span><span style="color:#c00000; ">150</span><span style="color:#806030; ">)</span> </div><div><span style="color:#400000; font-weight:bold; ">DECLARE</span> @colName NVARCHAR<span style="color:#806030; ">(</span><span style="color:#c00000; ">150</span><span style="color:#806030; ">)</span> </div><div><span style="color:#400000; font-weight:bold; ">DECLARE</span> @colDataType NVARCHAR<span style="color:#806030; ">(</span><span style="color:#c00000; ">50</span><span style="color:#806030; ">)</span> </div><div><span style="color:#400000; font-weight:bold; ">DECLARE</span> @colNumericPrecision <span style="color:#400000; font-weight:bold; ">NUMERIC</span> </div><div><span style="color:#400000; font-weight:bold; ">DECLARE</span> @colNumericScale <span style="color:#400000; font-weight:bold; ">NUMERIC</span></div><div><span style="color:#400000; font-weight:bold; ">DECLARE</span> @colIsNullable <span style="color:#400000; font-weight:bold; ">CHAR</span><span style="color:#806030; ">(</span><span style="color:#c00000; ">3</span><span style="color:#806030; ">)</span></div><div><span style="color:#400000; font-weight:bold; ">DECLARE</span> @cont <span style="color:#400000; font-weight:bold; ">int</span></div><div><span style="color:#c34e00; ">-- CURSOR</span></div><div><span style="color:#400000; font-weight:bold; ">DECLARE</span> cur_tables <span style="color:#400000; font-weight:bold; ">CURSOR</span> <span style="color:#400000; font-weight:bold; ">FOR</span> </div><div> <span style="color:#400000; font-weight:bold; ">select</span> t<span style="color:#806030; ">.</span>table_name<span style="color:#806030; ">,</span> column_name<span style="color:#806030; ">,</span> data_type<span style="color:#806030; ">,</span> </div><div> numeric_precision<span style="color:#806030; ">,</span> numeric_scale<span style="color:#806030; ">,</span> is_nullable </div><div> <span style="color:#400000; font-weight:bold; ">from</span> information_schema<span style="color:#806030; ">.</span><span style="color:#400000; font-weight:bold; ">columns</span> <span style="color:#400000; font-weight:bold; ">c</span></div><div> <span style="color:#400000; font-weight:bold; ">inner</span> <span style="color:#400000; font-weight:bold; ">join</span> information_schema<span style="color:#806030; ">.</span><span style="color:#400000; font-weight:bold; ">tables</span> t</div><div> <span style="color:#400000; font-weight:bold; ">on</span> <span style="color:#400000; font-weight:bold; ">c</span><span style="color:#806030; ">.</span>table_name<span style="color:#806030; ">=</span>t<span style="color:#806030; ">.</span>table_name</div><div> <span style="color:#400000; font-weight:bold; ">and</span> table_type<span style="color:#806030; ">=</span><span style="color:#e60000; ">'BASE TABLE'</span></div><div> <span style="color:#400000; font-weight:bold; ">and</span> data_type<span style="color:#806030; ">=</span><span style="color:#e60000; ">'decimal'</span></div><div><span style="color:#400000; font-weight:bold; ">OPEN</span> cur_tables </div><div><span style="color:#400000; font-weight:bold; ">FETCH</span> <span style="color:#400000; font-weight:bold; ">NEXT</span> <span style="color:#400000; font-weight:bold; ">FROM</span> cur_tables <span style="color:#400000; font-weight:bold; ">INTO</span> @tblName<span style="color:#806030; ">,</span> @colName<span style="color:#806030; ">,</span> @colDataType<span style="color:#806030; ">,</span> </div><div> @colNumericPrecision<span style="color:#806030; ">,</span> @colNumericScale<span style="color:#806030; ">,</span> @colIsNullable</div><div><span style="color:#400000; font-weight:bold; ">SET</span> @tblName0<span style="color:#806030; ">=</span><span style="color:#e60000; ">''</span></div><div><span style="color:#400000; font-weight:bold; ">SET</span> @cont<span style="color:#806030; ">=</span><span style="color:#c00000; ">0</span></div><div><span style="color:#400000; font-weight:bold; ">WHILE</span> @@FETCH_STATUS <span style="color:#806030; ">=</span> <span style="color:#c00000; ">0</span> </div><div><span style="color:#400000; font-weight:bold; ">BEGIN</span> </div><div> <span style="color:#400000; font-weight:bold; ">DECLARE</span> @Precision <span style="color:#400000; font-weight:bold; ">VARCHAR</span><span style="color:#806030; ">(</span><span style="color:#c00000; ">2</span><span style="color:#806030; ">)</span></div><div> <span style="color:#400000; font-weight:bold; ">DECLARE</span> @Scale <span style="color:#400000; font-weight:bold; ">VARCHAR</span><span style="color:#806030; ">(</span><span style="color:#c00000; ">2</span><span style="color:#806030; ">)</span></div><div> <span style="color:#400000; font-weight:bold; ">DECLARE</span> @Nulls <span style="color:#400000; font-weight:bold; ">VARCHAR</span><span style="color:#806030; ">(</span><span style="color:#c00000; ">10</span><span style="color:#806030; ">)</span></div><div><br /></div><div> <span style="color:#c34e00; ">-- Máxima precisión posible sin aumentar </span></div><div> <span style="color:#c34e00; ">-- la cantidad de bytes necesarios.</span></div><div> <span style="color:#400000; font-weight:bold; ">IF</span> @colNumericPrecision <span style="color:#806030; "><</span><span style="color:#806030; ">=</span> <span style="color:#c00000; ">9</span> </div><div> <span style="color:#400000; font-weight:bold; ">SET</span> @Precision <span style="color:#806030; ">=</span> <span style="color:#e60000; ">'9'</span></div><div> <span style="color:#400000; font-weight:bold; ">ELSE</span> <span style="color:#400000; font-weight:bold; ">IF</span> @colNumericPrecision <span style="color:#806030; "><</span><span style="color:#806030; ">=</span> <span style="color:#c00000; ">19</span></div><div> <span style="color:#400000; font-weight:bold; ">SET</span> @Precision <span style="color:#806030; ">=</span> <span style="color:#e60000; ">'19'</span></div><div> <span style="color:#400000; font-weight:bold; ">ELSE</span> <span style="color:#400000; font-weight:bold; ">IF</span> @colNumericPrecision <span style="color:#806030; "><</span><span style="color:#806030; ">=</span> <span style="color:#c00000; ">28</span></div><div> <span style="color:#400000; font-weight:bold; ">SET</span> @Precision <span style="color:#806030; ">=</span> <span style="color:#e60000; ">'28'</span></div><div> <span style="color:#400000; font-weight:bold; ">ELSE</span> <span style="color:#400000; font-weight:bold; ">IF</span> @colNumericPrecision <span style="color:#806030; "><</span><span style="color:#806030; ">=</span> <span style="color:#c00000; ">38</span></div><div> <span style="color:#400000; font-weight:bold; ">SET</span> @Precision <span style="color:#806030; ">=</span> <span style="color:#e60000; ">'38'</span></div><div> </div><div> <span style="color:#c34e00; ">-- Incrementar a 4 decimales </span></div><div> <span style="color:#400000; font-weight:bold; ">IF</span> @colNumericScale <span style="color:#806030; "><</span> <span style="color:#c00000; ">4</span></div><div> <span style="color:#400000; font-weight:bold; ">SET</span> @Scale <span style="color:#806030; ">=</span> <span style="color:#e60000; ">'4'</span></div><div> <span style="color:#400000; font-weight:bold; ">ELSE</span></div><div> <span style="color:#400000; font-weight:bold; ">SET</span> @Scale <span style="color:#806030; ">=</span> <span style="color:#400000; font-weight:bold; ">CAST</span><span style="color:#806030; ">(</span>@colNumericScale <span style="color:#400000; font-weight:bold; ">as</span> <span style="color:#400000; font-weight:bold; ">VARCHAR</span><span style="color:#806030; ">(</span><span style="color:#c00000; ">2</span><span style="color:#806030; ">)</span><span style="color:#806030; ">)</span></div><div><br /></div><div> <span style="color:#c34e00; ">-- ES NECESARIO CAMBIAR LA COLUMNA?</span></div><div> <span style="color:#400000; font-weight:bold; ">IF</span> <span style="color:#806030; ">(</span>@colNumericPrecision <span style="color:#806030; "><</span><span style="color:#806030; ">></span> <span style="color:#400000; font-weight:bold; ">CAST</span><span style="color:#806030; ">(</span>@Precision <span style="color:#400000; font-weight:bold; ">as</span> <span style="color:#400000; font-weight:bold; ">NUMERIC</span><span style="color:#806030; ">)</span> <span style="color:#400000; font-weight:bold; ">OR</span> </div><div> @colNumericScale <span style="color:#806030; "><</span><span style="color:#806030; ">></span> <span style="color:#400000; font-weight:bold; ">CAST</span><span style="color:#806030; ">(</span>@Scale <span style="color:#400000; font-weight:bold; ">as</span> <span style="color:#400000; font-weight:bold; ">NUMERIC</span><span style="color:#806030; ">)</span><span style="color:#806030; ">)</span></div><div> <span style="color:#400000; font-weight:bold; ">BEGIN</span> </div><div> <span style="color:#400000; font-weight:bold; ">IF</span> @colIsNullable<span style="color:#806030; ">=</span><span style="color:#e60000; ">'YES'</span></div><div> <span style="color:#400000; font-weight:bold; ">SET</span> @Nulls <span style="color:#806030; ">=</span> <span style="color:#e60000; ">'null'</span></div><div> <span style="color:#400000; font-weight:bold; ">ELSE</span></div><div> <span style="color:#400000; font-weight:bold; ">SET</span> @Nulls <span style="color:#806030; ">=</span> <span style="color:#e60000; ">'not null'</span></div><div><br /></div><div> <span style="color:#400000; font-weight:bold; ">EXEC</span><span style="color:#806030; ">(</span><span style="color:#e60000; ">'alter table '</span> <span style="color:#806030; ">+</span> @tblName <span style="color:#806030; ">+</span> </div><div> <span style="color:#e60000; ">' alter column '</span> <span style="color:#806030; ">+</span> @colName <span style="color:#806030; ">+</span> <span style="color:#e60000; ">' decimal('</span> <span style="color:#806030; ">+</span> @Precision <span style="color:#806030; ">+</span> <span style="color:#e60000; ">','</span> <span style="color:#806030; ">+</span> @Scale <span style="color:#806030; ">+</span> <span style="color:#e60000; ">') '</span> <span style="color:#806030; ">+</span> @Nulls<span style="color:#806030; ">)</span></div><div> </div><div> <span style="color:#400000; font-weight:bold; ">SET</span> @cont<span style="color:#806030; ">=</span>@cont<span style="color:#806030; ">+</span><span style="color:#c00000; ">1</span></div><div> <span style="color:#400000; font-weight:bold; ">IF</span> @tblName<span style="color:#806030; "><</span><span style="color:#806030; ">></span>@tblName0</div><div> <span style="color:#400000; font-weight:bold; ">BEGIN</span></div><div> <span style="color:#400000; font-weight:bold; ">SET</span> @tblName0<span style="color:#806030; ">=</span>@tblName</div><div> <span style="color:#400000; font-weight:bold; ">PRINT</span> <span style="color:#e60000; ">'--------------------'</span></div><div> <span style="color:#400000; font-weight:bold; ">PRINT</span> @tblName</div><div> <span style="color:#400000; font-weight:bold; ">PRINT</span> <span style="color:#e60000; ">'--------------------'</span></div><div> <span style="color:#400000; font-weight:bold; ">END</span></div><div> <span style="color:#400000; font-weight:bold; ">PRINT</span> <span style="color:#400000; font-weight:bold; ">char</span><span style="color:#806030; ">(</span><span style="color:#c00000; ">9</span><span style="color:#806030; ">)</span> <span style="color:#806030; ">+</span> @colName <span style="color:#806030; ">+</span> <span style="color:#e60000; ">' se ha cambiado de: '</span> <span style="color:#806030; ">+</span> @colDataType <span style="color:#806030; ">+</span> </div><div> <span style="color:#e60000; ">'('</span><span style="color:#806030; ">+</span> <span style="color:#400000; font-weight:bold; ">cast</span><span style="color:#806030; ">(</span>@colNumericPrecision <span style="color:#400000; font-weight:bold; ">as</span> nvarchar<span style="color:#806030; ">(</span><span style="color:#c00000; ">50</span><span style="color:#806030; ">)</span><span style="color:#806030; ">)</span> <span style="color:#806030; ">+</span> <span style="color:#e60000; ">','</span> <span style="color:#806030; ">+</span> </div><div> <span style="color:#400000; font-weight:bold; ">cast</span><span style="color:#806030; ">(</span>@colNumericScale <span style="color:#400000; font-weight:bold; ">as</span> nvarchar<span style="color:#806030; ">(</span><span style="color:#c00000; ">50</span><span style="color:#806030; ">)</span><span style="color:#806030; ">)</span> <span style="color:#806030; ">+</span> <span style="color:#e60000; ">')'</span> <span style="color:#806030; ">+</span></div><div> <span style="color:#e60000; ">' a decimal('</span> <span style="color:#806030; ">+</span> @Precision <span style="color:#806030; ">+</span> <span style="color:#e60000; ">','</span> <span style="color:#806030; ">+</span> @Scale <span style="color:#806030; ">+</span> <span style="color:#e60000; ">') '</span></div><div> <span style="color:#400000; font-weight:bold; ">END</span> <span style="color:#c34e00; ">--IF</span></div><div> <span style="color:#c34e00; ">-- OBTENER SIGUIENTE COLUMNA A TRATAR </span></div><div> <span style="color:#400000; font-weight:bold; ">FETCH</span> <span style="color:#400000; font-weight:bold; ">NEXT</span> <span style="color:#400000; font-weight:bold; ">FROM</span> cur_tables <span style="color:#400000; font-weight:bold; ">INTO</span> @tblName<span style="color:#806030; ">,</span> @colName<span style="color:#806030; ">,</span> @colDataType<span style="color:#806030; ">,</span> </div><div> @colNumericPrecision<span style="color:#806030; ">,</span> @colNumericScale<span style="color:#806030; ">,</span> @colIsNullable</div><div><span style="color:#400000; font-weight:bold; ">END</span> </div><div><span style="color:#400000; font-weight:bold; ">PRINT</span> <span style="color:#e60000; ">'----------------------------------------------------------'</span></div><div><span style="color:#400000; font-weight:bold; ">PRINT</span> <span style="color:#400000; font-weight:bold; ">cast</span><span style="color:#806030; ">(</span>@cont <span style="color:#400000; font-weight:bold; ">as</span> nvarchar<span style="color:#806030; ">(</span><span style="color:#c00000; ">10</span><span style="color:#806030; ">)</span><span style="color:#806030; ">)</span> <span style="color:#806030; ">+</span> <span style="color:#e60000; ">' columnas afectadas.'</span></div><div><span style="color:#400000; font-weight:bold; ">CLOSE</span> cur_tables </div><div><span style="color:#400000; font-weight:bold; ">DEALLOCATE</span> cur_tables</div><div><br /></div><div>Si sos principiante aquí vimos varias cosas que te recomiendo leer antes de intentar cualquier cosa: <a href="http://www.devjoker.com/contenidos/catss/240/Cursores-en-Transact-SQL.aspx">manejo de cursores</a>, <a href="http://msdn.microsoft.com/es-es/library/ms182717.aspx">estructuras condicionales</a>, <a href="http://msdn.microsoft.com/es-es/library/ms186778(v=SQL.90).aspx">consultas a las vistas de información de esquema</a> y la instrucción <a href="http://msdn.microsoft.com/es-es/library/ms188332.aspx">EXEC[UTE]</a>.</div><div>Hasta la próxima!</div><div></div></div>Anonymoushttp://www.blogger.com/profile/09770368799869278334noreply@blogger.com0tag:blogger.com,1999:blog-2711720355093164778.post-46914608339183235812011-05-27T21:30:00.000-03:002011-05-27T21:30:00.692-03:00Información sobre un objetoPara los que usamos alguna vez Oracle sabemos que con el comando DESC[RIBE] <nombretabla> obtenemos información acerca de una tabla en particular, ahora bien para SQL Server, no existe tal comando con lo cual buscando encontré un pequeño pero útil procedimiento almacenado que cumple dicha función, este es <span style="font-weight:bold;"><a href="http://msdn.microsoft.com/es-es/library/ms187335.aspx">sp_help</a></span>.<br />¿Cómo lo usamos?<br /><br />exec sp_help <nombretabla> ó simplemente sp_help <nombretabla><br /><br />Lo interesante es que no solo brinda información sobre tablas sino que también sobre stored procedures (muy util para ver que parámetros recibe de que tipo y que resultado devuelve), vistas, triggers, funciones, y cualquier otro objeto de nuestra base de datos.<br /><br />Probar sp_help sp_help<br />...y como es de esperar sp_help nos brindará información sobre sí mismo ya que es un procedimiento almacenado más...<br /><br />Es una pavada pero a alguien le podría servir. Hasta la próxima.</nombretabla></nombretabla></nombretabla>Anonymoushttp://www.blogger.com/profile/09770368799869278334noreply@blogger.com0tag:blogger.com,1999:blog-2711720355093164778.post-58897126068774586372011-04-11T08:54:00.004-03:002011-04-11T15:37:19.328-03:00Herramienta para gestión de proyectos<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-yWGW6bZ0hv8/TaLxvKbKwRI/AAAAAAAABBY/2a8VAN_Hx-8/s1600/gantter.JPG"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 216px;" src="http://3.bp.blogspot.com/-yWGW6bZ0hv8/TaLxvKbKwRI/AAAAAAAABBY/2a8VAN_Hx-8/s400/gantter.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5594299479702028562" /></a><br />Quería compartir una aplicación muy piola y potente que nos permite elaborar y compartir proyectos, importar desde MS Project, exportar a diferentes formatos, integrarlo con Google Docs, y muchas cosas mas. Se trata de Gantter, aplicación web 2.0 totalmente interactiva y ágil disponible en 11 idiomas, se puede acceder mediante su <a href="http://gantter.com/">sitio web</a> o agregarlo a nuestro navegador como una extensión de Firefox o <a href="https://chrome.google.com/extensions/search?itemlang=&hl=es-419&q=gantter">Chrome</a>. <br />Ah! me olvidaba, es completamente gratuita!Anonymoushttp://www.blogger.com/profile/09770368799869278334noreply@blogger.com2tag:blogger.com,1999:blog-2711720355093164778.post-4215689747408807772011-02-17T16:09:00.007-03:002011-02-17T16:50:01.409-03:00Anti-patrones de diseño<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.antipatterns.com/briefing/images/img024.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 580px; height: 380px;" src="http://www.antipatterns.com/briefing/images/img024.gif" border="0" alt="" /></a><br />Así como existen los <a href="http://es.wikipedia.org/wiki/Patrones_de_dise%C3%B1o">Patrones de diseño</a> existen una serie de anti-patrones de diseño, los cuales nos permiten evitar ciertos errores o caminos desfavorables a la hora de diseñar, planificar e implementar un proyecto de software. A pesar de tener nombres muy graciosos estoy seguro que alguna vez te topaste con alguno de ellos:<br /><br />Pollo sin cabeza (headless chicken): Se aplica al gestor, coordinador o responsable que vive en una permanente situación de pánico y medidas desesperadas.<br />Caballero de tres cabezas (three-headed knight): Gestor indeciso, poco firme, dubitativo.<br />Humo y espejos (smoke and mirrors): Mostrar cómo será una funcionalidad antes de que esté implementada.<br />Mala gestión (bad management): Gestionar un proyecto sin tener suficientes conocimientos sobre la materia.<br />Software inflado (software bloat): Permitir que las sucesivas versiones de un sistema exijan cada vez más recursos.<br />Fábrica de combustible (gas factory): Diseñar de manera innecesariamente compleja.<br />Gran bola de lodo (big ball of mud): Construir un sistema sin estructura definida.<br />Problema del yoyó (yo-yo problem): Construir estructuras (por ejemplo, de herencia) que son difíciles de comprender debido a su excesiva fragmentación.<br />Singletonitis: Abuso de la utilización del patrón singleton.<br />Ancla del barco (boat anchor): Retener partes del sistema que ya no tienen utilidad.<br />Desarrollo conducido por quien prueba (tester driven development): Permitir que un proyecto software avance a base de extraer sus nuevos requisitos de los informes de errores.<br />Avance del alcance (scope creep): Permitir que el alcance de un proyecto crezca sin el control adecuado.<br />Funcionalitis acechante (creeping featuritis): Añadir nuevas funcionalidades al sistema en detrimento de su calidad.<br />Obsolescencia continua (continuous obsolescence): Destinar desproporcionados esfuerzos a adaptar un sistema a nuevos entornos.<br />Gestión champiñón (mushroom management): Tratar a los empleados sin miramientos, sin informarles de las decisiones que les afectan (manteniéndolos cubiertos y en la oscuridad, como los champiñones).<br /><br />la verdad todos estan buenos asi que mejor sigan leyendo <a href="http://es.wikipedia.org/wiki/Antipatrones_de_dise%C3%B1o">aquí</a>.Anonymoushttp://www.blogger.com/profile/09770368799869278334noreply@blogger.com0tag:blogger.com,1999:blog-2711720355093164778.post-71652237901258814652011-02-17T13:50:00.002-03:002011-02-17T14:20:50.134-03:00He vuelto!Después de un año sin escribir (notarán que el 2010 pasó de largo en este blog), decidí volver a intentar en este 2011, al menos con pequeñas entradas de noticias interesantes o producciones propias con pruebas y experiencias que realizo normalmente debido a mi profesión en el campo de las <a href="http://es.wikipedia.org/wiki/Tecnolog%C3%ADas_de_la_informaci%C3%B3n_y_la_comunicaci%C3%B3n">TIC’s</a>. <br />Este blog seguirá el mismo enfoque de antes, algo escrito por y para mí que me ayuda a recordar problemas y soluciones, y que sirve como bitácora de lo sucedido durante el año. Pero además tiene como objetivo servir de ayuda a cualquier visitante y permitirme aprender y enriquecer el blog mediante sus comentarios. <br />Los temas a tratar son casi siempre los mismos, programación, testing, bases de datos, metodologías, etc... principalmente con tecnología .NET, pero uno nunca sabe y quizás vaya expandiendo el horizonte durante este año, esto dependerá de otros factores los cuales aún estoy reviendo.<br />Eso es todo por ahora, me voy a disfrutar mis últimos días de vacaciones.<br />Hasta pronto!Anonymoushttp://www.blogger.com/profile/09770368799869278334noreply@blogger.com2tag:blogger.com,1999:blog-2711720355093164778.post-24119596088275026872009-12-24T15:31:00.006-03:002009-12-24T15:57:21.879-03:00Fin curso Becas Control+FAyer finalizó oficialmente el curso de .NET dentro del marco de las becas "<a href="http://www.becascontrolf.com.ar/">Control+F</a>" en el cual participé junto con mi colega el Ing. Raúl Montiel como docente. La verdad para mi fue una muy buena experiencia que reavivó en mí la vocación de docente, porque según mi parecer al que le gusta enseñar es porque le gusta aprender y a mi realmente me encanta aprender y es casi mandatorio en mí profesión la constante capacitación así que se sintió muy bien esta experiencia. Quería agradecer al coordinador el Ing. Gonzalo Díaz por esta oportunidad y sobre todo a los alumnos que la verdad hicieron un gran esfuerzo en asistir 240hs de clases durante estos últimos casi 5 meses soportando cortes de puente, calor intenso, estaciones de trabajos lentas, entre otros contratiempos. Hasta la próxima!<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_HD_5PtZZOcg/SzO5S_7wuxI/AAAAAAAAA6Y/xqScr0wftaY/s1600-h/Curos_Net.JPG"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_HD_5PtZZOcg/SzO5S_7wuxI/AAAAAAAAA6Y/xqScr0wftaY/s400/Curos_Net.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5418878512707713810" /></a>Anonymoushttp://www.blogger.com/profile/09770368799869278334noreply@blogger.com0tag:blogger.com,1999:blog-2711720355093164778.post-54139973257284957572009-05-18T19:18:00.011-03:002009-11-17T19:42:25.025-03:00Nuevos controles AJAXNovedad para los desarrolladores de ASP.Net, el conocido <a href="http://www.asp.net/ajax/AjaxControlToolkit/Samples/">AJAX Control Toolkit</a> lanzó hace poco sus nuevos controles que se hicieron esperar mucho tiempo sobre todo el editor al estilo <a href="http://www.fckeditor.net/">FCK editor</a>...<br /><br />Veamos:<br /><br /><a href="http://www.asp.net/ajax/AjaxControlToolkit/Samples/ColorPicker/ColorPicker.aspx">ColorPicker</a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_HD_5PtZZOcg/ShHguUPjGHI/AAAAAAAAAx8/tS4yCXzp7ys/s1600-h/ColorPicker2.JPG"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 168px;" src="http://4.bp.blogspot.com/_HD_5PtZZOcg/ShHguUPjGHI/AAAAAAAAAx8/tS4yCXzp7ys/s200/ColorPicker2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5337294119723276402" /></a>Sencillo pero eficaz selector de colores el cual se adjunta a cualquier TextBox y nos devuelve el número en hexa que representa al color seleccionado.<br /><br /><a href="http://www.asp.net/ajax/AjaxControlToolkit/Samples/ComboBox/ComboBox.aspx">ComboBox</a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_HD_5PtZZOcg/ShHg3kXmHoI/AAAAAAAAAyM/MtGQ8vFs5xE/s1600-h/ComboBox.JPG"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 111px;" src="http://4.bp.blogspot.com/_HD_5PtZZOcg/ShHg3kXmHoI/AAAAAAAAAyM/MtGQ8vFs5xE/s200/ComboBox.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5337294278670818946" /></a>Muy necesario y utilizado para agilizar la selección de opciones, es una mezcla de DropDownList con un TextBox lo cual nos permite elegir solo una opción válida y existente no solo con el mouse sino también a través del teclado, ya que a medida que vamos escribiendo va buscando y resaltando la opción más parecida...<br /><br /><a href="http://www.asp.net/ajax/AjaxControlToolkit/Samples/HTMLEditor/HTMLEditor.aspx">HTMLEditor</a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_HD_5PtZZOcg/ShHg0BZke9I/AAAAAAAAAyE/DqfCzCa3LYw/s1600-h/HTMLEditor.JPG"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 128px;" src="http://4.bp.blogspot.com/_HD_5PtZZOcg/ShHg0BZke9I/AAAAAAAAAyE/DqfCzCa3LYw/s200/HTMLEditor.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5337294217744251858" /></a><br />Permite editar texto enriquecido, o sea texto al que se le puede cambiar fuente, color, tamaño, alineación, etc... y nos devuelve el código HTML que representa nuestro texto formateado.Anonymoushttp://www.blogger.com/profile/09770368799869278334noreply@blogger.com0tag:blogger.com,1999:blog-2711720355093164778.post-31424183312879078082009-05-18T17:59:00.010-03:002009-05-18T19:10:57.071-03:00Crear y compartir diagramas UML rápida y fácilmenteHoy cuando empezaba a trabajar en un nuevo proyecto surgió la necesidad de esbozar un pequeño diagrama de casos de usos y de clases a un nivel general de análisis. Las opciones eran utilizar MS Visio, Rational Rose, Enterprise Architect, Umbrello, etc… (<a href="http://en.wikipedia.org/wiki/List_of_UML_tools">y la lista sigue…</a>). Al final me decidí por yUML, esta es una excelente herramienta online (y gratuita) para crear diagramas a partir de una notación textual muy sencilla e intuitiva, no es necesario andar acomodando las elipses y evitando el cruce de lineas y flechas, lo hace por nosotros y siempre produce un diagrama legible y prolijo listo para incorporar al blog, a documentos, compartir con colegas y clientes.<br /><br />Por ejemplo:<br />[User]-(Login)<br />[User]-(Do Something)<br />[User]-(Logout)<br />(Login)<(Reminder)<br />(Login)>(Captcha)<br />[User]-(note:This is Stickman{bg:yellow})<br /><br />Produce:<br /><a href="http://yuml.me/diagram/usecase/[User]-(Login), [User]-(Do Something), [User]-(Logout) , (Login)<(Reminder) , (Login)>(Captcha), [User]-(note:This is Stickman{bg:yellow})" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 450px; height: 300px;" src="http://yuml.me/diagram/usecase/[User]-(Login), [User]-(Do Something), [User]-(Logout) , (Login)<(Reminder) , (Login)>(Captcha), [User]-(note:This is Stickman{bg:yellow})" border="0" alt="" /></a><a href="http://yuml.me/diagram/usecase/[User]-(Login), [User]-(Do Something), [User]-(Logout) , (Login)<(Reminder) , (Login)>(Captcha), [User]-(note:This is Stickman{bg:yellow})">http://yuml.me/diagram/usecase/[User]-(Login), [User]-(Do Something), [User]-(Logout) , (Login)<(Reminder) , (Login)>(Captcha), [User]-(note:This is Stickman{bg:yellow})</a><br /><br />Recientemente se incorporó la posibilidad de agregar notas a los diagramas y de especificar una escala de zoom en el link.<br /><br />También podemos crear diagramas de clases con la misma facilidad:<br /><br />[Customer{bg:orange}]+1->*[Order]<br />[Order]++1-items >*[LineItem]<br />[Order{bg:green}]-0..1>[PaymentMethod]<br /><br /><a href="http://yuml.me/diagram/class/[Customer{bg:orange}]+1->*[Order], [Order]++1-items >*[LineItem], [Order{bg:green}]-0..1>[PaymentMethod]" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 450px; height: 100px;" src="http://yuml.me/diagram/class/[Customer{bg:orange}]+1->*[Order], [Order]++1-items >*[LineItem], [Order{bg:green}]-0..1>[PaymentMethod]" border="0" alt="" /></a><br />Con escala de un 200%<br /><a href="http://yuml.me/diagram/scale:200/class/[Customer{bg:orange}]+1->*[Order], [Order]++1-items >*[LineItem], [Order{bg:green}]-0..1>[PaymentMethod]">http://yuml.me/diagram/scale:200/class/[Customer{bg:orange}]+1->*[Order], [Order]++1-items >*[LineItem], [Order{bg:green}]-0..1>[PaymentMethod]</a><br /><br />En el sitio oficial de yUML pueden encontrar la sintaxis para construir los diagramas y muchos ejemplos muy completos de lo que se puede hacer hasta ahora.<br /><br />Enlaces relacionados: <a href="www.yuml.me">www.yuml.me</a>Anonymoushttp://www.blogger.com/profile/09770368799869278334noreply@blogger.com0tag:blogger.com,1999:blog-2711720355093164778.post-2356383055309115882009-04-23T14:06:00.000-03:002009-04-23T14:06:01.169-03:00FLISoL 2009<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_HD_5PtZZOcg/SfBq9HZHL_I/AAAAAAAAAx0/Fm-R9CxqSic/s1600-h/flisol09-banner.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 123px;" src="http://2.bp.blogspot.com/_HD_5PtZZOcg/SfBq9HZHL_I/AAAAAAAAAx0/Fm-R9CxqSic/s320/flisol09-banner.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327875957368238066" /></a><br />Reenvio esta invitación:<br /><br />El grupo de usuarios de Software Libre NeSLA (Nordeste Software Libre Argentina) te invita a participar de la edición 2009 del Festival Latinoamericano de Instalación de Software Libre a realizarse el día sabado 25 de Abril en el Aula Magna de la UTN - FRRe (French 414) de la ciudad de Resistencia.<br /><br />El Festival Latinoamericano de Instalación de Software Libre (FLISoL) es el evento de difusión de Software Libre más grande en Latinoamérica. Se realiza desde el año 2005 y su principal objetivo es promover el uso del software libre, dando a conocer al público en general su filosofía, alcances, avances y desarrollo.<br />Para tal fin, las diversas comunidades locales de software libre (en cada país, en cada ciudad/localidad), organizan simultáneamente eventos en los que se instala, de manera gratuita y totalmente legal, software libre en las computadoras que llevan los asistentes. Además, en forma paralela, se ofrecen charlas, ponencias y talleres, sobre temáticas locales, nacionales y latinoamericanas en torno al Software Libre, en toda su gama de expresiones: artística, académica, empresarial y social.<br /><br />Se recuerda que si bien el evento esta pensado para que aquellos que deseen instalar Software Libre en sus computadoras puedan tener asistencia por parte de la comunidad local, no es un requisito llevar una computadora, ya que el evento cuenta con distintas charlas pensadas para dar a conocer este maravilloso mundo y además atender las dudas de quienes asistan.<br /><br />Para más información, inscripción y cronograma de charlas: <a href="http://flisolresistencia.com.ar">http://flisolresistencia.com.ar</a> (No es obligatoria la inscripción)Anonymoushttp://www.blogger.com/profile/09770368799869278334noreply@blogger.com0tag:blogger.com,1999:blog-2711720355093164778.post-37975687478810488902009-04-06T23:34:00.005-03:002009-04-07T10:12:31.384-03:00¿Cuánto debería cobrar?<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_HD_5PtZZOcg/SdtH547sLdI/AAAAAAAAAxs/Y7rHckRi_5A/s1600-h/interrogacion.JPG"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 135px; height: 163px;" src="http://1.bp.blogspot.com/_HD_5PtZZOcg/SdtH547sLdI/AAAAAAAAAxs/Y7rHckRi_5A/s320/interrogacion.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5321926444529233362" /></a>Es una pregunta que a veces nos hacemos o nos deberíamos hacer para saber donde estamos parados. Para tener una idea (a nivel nacional ojo!) podemos recurrir a sitios como <a href="http://www.elsalario.com.ar">www.elsalario.com.ar</a> donde tenemos la opción <a href="http://www.elsalario.com.ar/main/Comparatusalario">"Compará tu salario"</a> con la cual podemos hacer esto en base a una serie de preguntas sobre nuestro trabajo actual y el rol que desempeñamos en él. El site dice que tiene como objetivo: "...mejorar la transparencia en el mercado laboral posibilitando a los trabajadores conocer los niveles salariales dentro del país y también en el exterior...".<br />Hice la prueba con dos perfiles, uno: Programador de aplicaciones informáticas en una Pyme de Software, y el otro, Ingeniero de software informático también dentro de una Pyme ambos como empleados sin personal a cargo y con 2 años de experiencia laboral trabajando 40hs semanales, resultó ser que el programador gana $17,99 x hora o sea $3116 al mes y el ingeniero de software que se supone tiene mejor calificación y más responsabilidades solo $15,33 por hora o sea $2656 al mes todo esto en promedio, dato curioso quizás por la falta de muestras en la población para tener estadísticas mas aproximadas a la supuesta realidad como aclaran <a href="http://www.elsalario.com.ar/main/Queeselsalariocomar/bfcomo-funciona-la-comprobacion-de-los-salarios-1">aquí</a>, ya que sabemos que un ingeniero <span style="font-weight:bold;">debería</span> ganar más que un programador desempeñando plenamente sus capacidades de manera correcta.<br />En fin la verdad es que cuesta conseguir información salarial del sector de las TIC's que sea confiable y actualizada, otro sería el caso si estas actividades estuviesen reguladas por algún colegio o concejo de profesionales local... por lo menos aquí en el Chaco no tengo conocimiento de que algo de esto exista. Sin embargo podemos ver en la página de la <a href="http://www.facopcinet.org.ar/">FACoPCI</a> (Federación Argentina de Consejos Profesionales en Ciencias Informáticas) que es la que nuclea a todos los concejos del país, que figura el escudo del Chaco pero no existe tal concejo... si en cambio tienen concejos provinciales <a href="http://www.cpcipc.org.ar/portal/">Córdoba</a> , <a href="http://www.cpci.org.ar/">Buenos Aires</a>, <a href="http://www.appei.org.ar/">Santa Fé</a>, etc...<br />Mi concejo es tratar siempre de mantener el contacto con colegas insertados en diferentes empresas u organismos y preguntar "Che, ¿Cuánto se gana ahí?" y si no hay tanta confianza y para no ser indiscretos se puede preguntar por el intervalo salarial o algo así como ¿Ganás más/menos de $X? donde X es el piso que nosotros creemos justo para el cargo de nuestro colega. Compartir este tipo de info nos ayuda a todos. Hasta pronto, saludos!<br /><br />Otras fuentes para que comparemos nuestro salario: <a href="http://www.cpcipc.org.ar/portal/index.php?option=com_content&task=view&id=17&Itemid=33">CPCIPC</a>, <a href="http://www.cuantocobro.com/listado/tecnologias-de-la-informacion/argentina.php">CuantoCobro.com</a>, <a href="http://www.bumeran.com.ar/articulos_aplicantes/200/75790/salariosit.html">Bumeran.com</a>Anonymoushttp://www.blogger.com/profile/09770368799869278334noreply@blogger.com0tag:blogger.com,1999:blog-2711720355093164778.post-73253564420292007742009-04-01T17:01:00.002-03:002009-04-01T17:07:02.272-03:00Seminario - Taller: Aspectos Introductorios de la Propiedad IntelectualSeminario - Taller: Aspectos Introductorios de la Propiedad Intelectual** Reenvio esta info: no dice nada sobre el costo.<br /><br />Fecha: 29 de Abril de 2009<br />Lugar: UTN - Aula Magna - French 414 - Ciudad de Resistencia - Chaco<br />Disertante: Dr. DANIEL GUILLERMO NAVARRO<br />Acreditación: 8,30 HS. - Cierre: 17,30 HS.<br />Temario:<br /><br />Mañana (Teórico) - 9 HS - 13 HS<br />Introducción a los derechos de propiedad intelectual e industrial: Derechos de Autor. El concepto, el alcance de la protección, la ley 11723 y los requisitos administrativos para la protección. Marcas y Modelos y Diseños Industriales. El concepto, el alcance de la protección de las marcas, casos paradigmáticos, casos mediáticos, su diferencia con otros derechos, la ley de marcas.<br />Régimen legal para las invenciones. Patentes y Modelos de Utilidad: Sus requisitos, para que sirven, publicar o patentar, como protegerlas, como explotarlas, casos, su diferencia con otros derechos, la ley de patentes. Novedad, Aplicación Industrial, Altura inventiva. Patentes en diversos ámbitos tecnológicos.<br /> <br />Coffe Break - 11,30 HS.<br /><br />Tarde (Práctico) - 15 hs. - 17.30 hs<br />Saber diferenciar una marca, un modelo, un derecho de autor de una patente.<br />Búsqueda de antecedentes de patentes. Clasificación Internacional –<br />Como verificar la novedad<br />Confidencialidad de la información.<br /><br />Se entregarán certificados de asistencia.<br /><br />Organizan: Subsecretaría de Ciencia y Tecnología y Subsecretaría de Programación Económica y Empleo<br />Auspician: UTN - Facultad Regional Resistencia, INTI e INTECNORAnonymoushttp://www.blogger.com/profile/09770368799869278334noreply@blogger.com0tag:blogger.com,1999:blog-2711720355093164778.post-2257641715027266532009-03-27T23:00:00.001-03:002009-03-27T23:00:08.373-03:00Hernán y Natalia dieron el Sí !!!(Este es un post meramente personal que necesitaba expresarlo por este medio.)<br /><br />El Sí a amarnos por siempre.<br />El Sí a estar juntos por siempre.<br />El Sí a la fidelidad.<br />El Sí a la tolerancia y a la comprensión.<br />El Sí a formar una familia juntos.<br />El Sí a dejar de lado las individualidades.<br />El Sí a remar la canoa de la vida sincronizadamente y en un mismo sentido.<br />El Sí a la felicidad conjunta.<br /><br />Esto fué el 19 de febrero de este año y quería agradecer a todos los que nos apoyaron en la organización del evento y a los presentes en ese día tan especial para nosotros, sobre todo a los parientes que viajaron hasta aquí desde lejos y también por que fué un día Jueves y muchos trabajaban al otro día.<br /><br />Saludos!!!<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_HD_5PtZZOcg/Sc0_sMhGqMI/AAAAAAAAAxE/mOvuLeTatT0/s1600-h/Foto_casamiento.JPG"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 299px;" src="http://2.bp.blogspot.com/_HD_5PtZZOcg/Sc0_sMhGqMI/AAAAAAAAAxE/mOvuLeTatT0/s400/Foto_casamiento.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5317976763501291714" /></a><br /><div text-align="center">Mi amada esposa Natalia y Yo.</div>Anonymoushttp://www.blogger.com/profile/09770368799869278334noreply@blogger.com4tag:blogger.com,1999:blog-2711720355093164778.post-49641134860150936552009-01-30T10:39:00.005-02:002009-01-30T11:12:46.887-02:00Portal inmobiliario online: inmobo<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_HD_5PtZZOcg/SYL6HpM02sI/AAAAAAAAAws/hgenFD96e-w/s1600-h/logo.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 118px; height: 51px;" src="http://3.bp.blogspot.com/_HD_5PtZZOcg/SYL6HpM02sI/AAAAAAAAAws/hgenFD96e-w/s400/logo.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5297071120966802114" /></a> es un proyecto ideado por mi amigo el <a href="http://blogdediegoramirez.blogspot.com/2009/01/nace-un-nuevo-proyecto-inmobo.html">Ing. Diego Ramirez</a>, que desde hace tiempo tenía estas ideas locas dando vuelta junto con Seba Bustelo y ahora se plasmaron en algo real gracias a la reutilizaron de servicios web preexistentes públicos y gratuitos, con lo cual escribimos cero código ya que este era el objetivo y disponíamos de poco tiempo libre y existen buenas plataformas que nos ahorran tiempo como por ejemplo Blogger. Yo soy un simple colaborador del proyecto ya que me pareció no solo un excelente experimento para analizar un potencial mercado sino también por que es algo real, viable y listo para rodar. Así que los invito a conocer <a href="http://inmobo.com.ar/">inmobo.com.ar</a> y esperamos que nos dejen sus comentarios y/o sugerencias, y si hay algún inversor interesado en llevar esto a gran escala no duden en comunicarse con nosotros ;-)Anonymoushttp://www.blogger.com/profile/09770368799869278334noreply@blogger.com0tag:blogger.com,1999:blog-2711720355093164778.post-54087157243427391462009-01-26T17:07:00.003-02:002009-01-26T17:54:14.566-02:00Importar datos a SQL ServerComparto una sencilla instrucción T-SQL para importar datos desde archivos <a href="http://es.wikipedia.org/wiki/CSV">CSV</a> (Comma-Separated Values) a una tabla de SQL Server 2K5, CSV es ampliamente utilizado y muchos programas exportan a este formato como por ejempolo Excel aunque el separador puede diferir de una coma y ser cualquier caracter. Con BULK INSERT se puede utilizar un archivo XML que describa el esquema y los tipos de datos a importar. Para mas detalles ver <a href="http://technet.microsoft.com/es-es/library/ms188365.aspx">esto</a>.<br />En este ejemplo utilizo el codigo de página de caracteres <a href="http://en.wikipedia.org/wiki/Code_page_850">850</a> "Multilingual (Latin-1)" (Western European languages) que mapea en su conjunto de caracteres a las letras acentuadas y la 'ñ' necesarios en nuestro idioma y es el set que utilizan la mayoría de los sistemas legacy bajo DOS desde donde solemos importar los datos. También podemos ver que le indico que el delimitador de campo es el ';' y que los registros terminan con nueva línea '\n'.<br /><pre style='color:#000000;background:#ffffff;'><span style='color:#800000; font-weight:bold; '>USE</span> <span style='color:#808030; '><</span>DB<span style='color:#808030; '>></span><br /><span style='color:#800000; font-weight:bold; '>BULK</span> <span style='color:#800000; font-weight:bold; '>INSERT</span> <span style='color:#808030; '><</span>Tabla<span style='color:#808030; '>></span><br /> <span style='color:#800000; font-weight:bold; '>FROM</span> <span style='color:#0000e6; '>'<Archivo>.csv'</span><br /> <span style='color:#800000; font-weight:bold; '>WITH</span><br /> <span style='color:#808030; '>(</span><br /> CODEPAGE <span style='color:#808030; '>=</span> <span style='color:#0000e6; '>'850'</span><span style='color:#808030; '>,</span><br /> FIELDTERMINATOR <span style='color:#808030; '>=</span> <span style='color:#0000e6; '>';'</span><span style='color:#808030; '>,</span><br /> ROWTERMINATOR <span style='color:#808030; '>=</span> <span style='color:#0000e6; '>'\n'</span><span style='color:#808030; '>,</span><br /> KEEPNULLS<br /> <span style='color:#808030; '>)</span><br /><span style='color:#800000; font-weight:bold; '>GO</span></pre>Nota: En la instrucción anterior <span style='color:#808030; '><</span>Tabla<span style='color:#808030; '>></span> debe tener la misma cantidad de campos y con un tipo de datos compatible al origen de datos, además esta puede ser una <a href="http://www.programacion.com/bbdd/articulo/man_tablastemp/">tabla temporal</a> intermedia para un proceso de importación más elaborado.<br />Espero que les sirva, saludos!Anonymoushttp://www.blogger.com/profile/09770368799869278334noreply@blogger.com1tag:blogger.com,1999:blog-2711720355093164778.post-77937032576456862442008-12-24T08:00:00.001-02:002008-12-24T08:00:00.227-02:00Salutación por navidad y año nuevoSimplemente quería saludar a todos los internautas en especial a mis colegas de Resistencia Chaco, porque como sabemos estas fechas sirven para reflexionar y para expresar lo que uno en el trajín diario no se acuerda o no tiene tiempo de pensar y decir; si bien la Navidad tiene significados diferentes para cada uno de nosotros: preparar la mente para realizar el balance interno de fin de año de nuestros logros y equivocaciones, para otros es renovar el espíritu y la fe cual esta sea y para muchos es simplemente pasar un buen momento en familia lo cual es tan importante como las anteriores causas; para mi significa todo lo anterior y por todo esto les quería desear lo mejor en todo lo que emprendan el año próximo.<br />¡Hasta el 2009 amigos!<br /><br /><blockquote>Et in terra pax hominibus bonæ voluntatis - Y en la tierra paz a los hombres de buena voluntad</blockquote>Anonymoushttp://www.blogger.com/profile/09770368799869278334noreply@blogger.com2tag:blogger.com,1999:blog-2711720355093164778.post-82284322906422615252008-12-17T14:00:00.001-02:002008-12-18T09:30:03.732-02:00Pequeña utilidad para DBFsMe encuentro intentando migrar datos de unos viejos DBFs a SQL Server para trabajar mas cómodo, para luego desde allí transformar los datos y pasarlos a las tablas destino, si bien esto se puede hacer con el administrador de SQL Server 2000 mediante DTS y creo que también con el SQL Server 2005 Integration Services (SSIS) para versiones Server, yo estoy trabajando con la versión 2005 Express y no cuento con estas herramientas, asi que decidí hacer una pequeña utilidad de migración: DBFExtractor.<br /><br />Instrucciones de uso:<br /><br />1-Seleccionar el DBF origen de los datos.<br />2-Editar string de conexión a la base de datos destino.<br />3-Presionar botón Crear y Copiar Tabla<br /><br />Screenshots: (Wow qué GUI!)<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_HD_5PtZZOcg/SUkGzpNx9pI/AAAAAAAAAu8/4_6UfqtfO74/s1600-h/17-12-2008+11-42-56+a.m..png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 261px;" src="http://3.bp.blogspot.com/_HD_5PtZZOcg/SUkGzpNx9pI/AAAAAAAAAu8/4_6UfqtfO74/s400/17-12-2008+11-42-56+a.m..png" border="0" alt=""id="BLOGGER_PHOTO_ID_5280759522375366290" /></a><br />Tabla creada en sql server...<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_HD_5PtZZOcg/SUkG26V3JeI/AAAAAAAAAvE/quEhzYk9PPk/s1600-h/17-12-2008+11-54-05+a.m..png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 229px; height: 400px;" src="http://2.bp.blogspot.com/_HD_5PtZZOcg/SUkG26V3JeI/AAAAAAAAAvE/quEhzYk9PPk/s400/17-12-2008+11-54-05+a.m..png" border="0" alt=""id="BLOGGER_PHOTO_ID_5280759578512270818" /></a><br />Datos importados desde el DBF...<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_HD_5PtZZOcg/SUkHDzH_C_I/AAAAAAAAAvM/BV9UBrbow34/s1600-h/17-12-2008+12-00-54+p.m..png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 158px;" src="http://2.bp.blogspot.com/_HD_5PtZZOcg/SUkHDzH_C_I/AAAAAAAAAvM/BV9UBrbow34/s400/17-12-2008+12-00-54+p.m..png" border="0" alt=""id="BLOGGER_PHOTO_ID_5280759799913319410" /></a><br /><br />Pueden bajar el <a href="http://dbfextractor.googlecode.com/files/DBFExtractor.exe">ejecutable</a> y/o el <a href="http://dbfextractor.googlecode.com/files/DBFExtractor.rar">código fuente</a>.<br /><br />Si prefieren SVN:<br />svn checkout http://dbfextractor.googlecode.com/svn/trunk/ dbfextractor-read-only<br /><br />Enlaces relacionados: <a href="http://code.google.com/p/dbfextractor/">Google Code</a>, <a href="http://www.pablosoftwaresolutions.com/html/dbf_explorer.html">DBF Explorer</a>Anonymoushttp://www.blogger.com/profile/09770368799869278334noreply@blogger.com5tag:blogger.com,1999:blog-2711720355093164778.post-52626203749955500012008-12-12T19:07:00.003-02:002008-12-12T19:18:24.803-02:00Los más codiciados<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_HD_5PtZZOcg/SULUov2nl-I/AAAAAAAAAu0/O2QSrMOjaO0/s1600-h/c_bumeran_121208_gal1.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 199px;" src="http://2.bp.blogspot.com/_HD_5PtZZOcg/SULUov2nl-I/AAAAAAAAAu0/O2QSrMOjaO0/s400/c_bumeran_121208_gal1.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5279015509737052130" /></a><br />Seguimos siendo altamente codiciados en nuestro país y en el exterior. Lean <a href="http://www.canal-ar.com.ar/Noticias/Noticiamuestra.asp?Id=6775">esta</a> nota. Buen fin de semana!Anonymoushttp://www.blogger.com/profile/09770368799869278334noreply@blogger.com0tag:blogger.com,1999:blog-2711720355093164778.post-27801494635649981232008-12-05T16:32:00.005-02:002008-12-05T17:25:36.667-02:00Great Place to Work 2008La empresa de investigación y consultoría <a href="http://www.greatplacetowork.com/">Great Place to Work Institute</a> dio a conocer su tradicional listado de las mejores compañías para trabajar en Argentina. En la edición de este año, el Top 20 contó con 5 firmas que representaron al sector informático y de telecomunicaciones resaltadas en el siguiente listado:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_HD_5PtZZOcg/STl-20s2wYI/AAAAAAAAAus/WxsPFKqkG1g/s1600-h/c_ranking_051208_gal1.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 385px;" src="http://1.bp.blogspot.com/_HD_5PtZZOcg/STl-20s2wYI/AAAAAAAAAus/WxsPFKqkG1g/s400/c_ranking_051208_gal1.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5276387918766064002" /></a>Si algún ocasional lector trabaja/ó en alguna de estas firmas que nos cuente su experiencia. Hasta pronto!<br /><br />Fuente: <a href="http://www.canal-ar.com.ar/Noticias/Noticiamuestra.asp?Id=6751">CanalAR</a><br />Enlaces relacionados: <a href="http://www.greatplacetowork.com/best/list-ar.htm">Lista completa</a>Anonymoushttp://www.blogger.com/profile/09770368799869278334noreply@blogger.com0tag:blogger.com,1999:blog-2711720355093164778.post-35849960062195493292008-11-13T00:15:00.002-02:002008-11-13T00:21:01.099-02:00Matrix sobre Windows<object type="application/x-shockwave-flash" data="http://www.collegehumor.com/moogaloop/moogaloop.swf?clip_id=1886349&fullscreen=1" width="450" height="380" ><param name="allowfullscreen" value="true" /><param name="AllowScriptAccess" value="true" /><param name="movie" quality="best" value="http://www.collegehumor.com/moogaloop/moogaloop.swf?clip_id=1886349&fullscreen=1" /></object>Anonymoushttp://www.blogger.com/profile/09770368799869278334noreply@blogger.com1tag:blogger.com,1999:blog-2711720355093164778.post-21544516366203481032008-11-05T21:20:00.002-02:002008-11-05T20:55:24.676-02:00Hologramas en la CNNY ahora, ¿Tendrá sentido la famosa frase de los reporteros: "Volvemos a estudios"?<br /><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/jJKkMLKFHxo&color1=0xb1b1b1&color2=0xcfcfcf&fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/jJKkMLKFHxo&color1=0xb1b1b1&color2=0xcfcfcf&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object><br />Por primera vez en televisión, una reportera entrega su informe directamente en el estudio central de CNN en New York mediante una proyección holográfica desde Chicago.<br /><br />Durante cuatro minutos, Jessica Yellin apareció virtualmente en el set de la CNN donde se encontraba el veterano Wolf Blitzer, conductor de la cobertura electoral. <br /><br />A lo largo de la conversación, Blitzer no dejó de inistir que Yellin era sólo un holograma y que se encontraba realmente en Chicago, mientras que la teletransportada decía sentirse como la princesa <a href="http://es.wikipedia.org/wiki/Leia_Organa">Leia</a> de la "Guerra de las Galaxias".<br /><br />La aparición virtual de Yellin fue posible, según ella misma explicó, gracias a tres semanas de trabajo de ingeniería y al uso de 35 cámaras de alta definición que, para producir el efecto de holograma, filmaron a la vez diferentes ángulos de la periodista para crear el efecto de un cuerpo virtual proyectado en el estudio de la CNN.Anonymoushttp://www.blogger.com/profile/09770368799869278334noreply@blogger.com0tag:blogger.com,1999:blog-2711720355093164778.post-80166440002797767632008-10-22T08:50:00.000-02:002008-10-22T10:09:06.603-02:00INNOVAR 2008 - 4ta Edición<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_HD_5PtZZOcg/SP8XSu7AgPI/AAAAAAAAAt0/-Q9uIqQlflI/s1600-h/innovar.JPG"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_HD_5PtZZOcg/SP8XSu7AgPI/AAAAAAAAAt0/-Q9uIqQlflI/s400/innovar.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5259948500392640754" /></a><br />A partir de hoy miércoles 22 y hasta el viernes 24 de octubre se exhibirán más de 200 proyectos novedosos provenientes de todo el país. El lugar elegido es el Salón de las Naciones en el Centro Cultural Borges de la Ciudad de Buenos Aires.<br />En el <a href="http://www.innovar.gov.ar/blog/home/cronograma-de-exposicion">cronograma</a> pueden verse una serie de <a href="http://www.tocatu.com.ar/home.html">proyectos interesantes</a> que serán presentados. Espero que la gente de <a href="http://www.dominio-digital.com.ar/">Dominio Digital</a> este visitando las instalaciones para acercarnos las imagenes del evento para los que estamos lejos...<br /><br />Enlaces relacionados: <a href="http://www.innovar.gov.ar/">INNOVAR</a>Anonymoushttp://www.blogger.com/profile/09770368799869278334noreply@blogger.com0tag:blogger.com,1999:blog-2711720355093164778.post-4330548304643316362008-10-22T08:00:00.000-02:002008-10-22T09:12:23.700-02:00NetBeans cumple 10 años<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_HD_5PtZZOcg/SP4rmqS1sPI/AAAAAAAAAts/HYAtz4ytNFU/s1600-h/logo-10y-nb-outline-180.png"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_HD_5PtZZOcg/SP4rmqS1sPI/AAAAAAAAAts/HYAtz4ytNFU/s400/logo-10y-nb-outline-180.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5259689358003646706" /></a>NetBeans comenzó como un proyecto estudiantil en Republica Checa (originalmente llamado Xelfi), en 1996 bajo la tutoría de la Facultad de Matemáticas y Física en la <a href="http://www.cuni.cz/UKENG-1.html">Universidad de Charles</a> en Praga. La meta era escribir un entorno de desarrollo integrado (IDE) para Java parecida a la de Delphi. Xelfi fue el primer entorno de desarrollo integrado escrito en Java, con su primer pre-release en 1997.<br />Luego la evolución de los estandares de Java y la adquisición del proyecto por parte de Sun Microsystems a partir del año 1999, convirtió a esta IDE en una de las alternativas open source más interesantes para el desarrollo en Java y hoy en día también en C++, PHP, Ruby. Se notan los diez años de trabajo en el acabado y la potencia de la IDE que si bien parece nunca terminada, permite realizar la mayoría de las tareas necesarias para el desarrollo de pequeños y grandes proyectos. Aún hoy puede verse el dominio que habían registrado los estudiantes para "vender" su producto Xelfi <a href="http://www.xelfi.cz/">aquí</a>.<br /><br />Enlaces relacionados: <a href="http://www.netbeans.org/birthday/">NetBeans Birthday</a>, <a href="http://es.wikipedia.org/wiki/NetBeans_IDE">Wikipedia</a>.Anonymoushttp://www.blogger.com/profile/09770368799869278334noreply@blogger.com0tag:blogger.com,1999:blog-2711720355093164778.post-85748339738656414552008-10-14T11:25:00.012-03:002008-10-14T14:30:59.647-03:00BigDog<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_HD_5PtZZOcg/SPSwBSNIaxI/AAAAAAAAAtk/W1_kHILA1qA/s1600-h/bigdogclipped1.gif"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_HD_5PtZZOcg/SPSwBSNIaxI/AAAAAAAAAtk/W1_kHILA1qA/s320/bigdogclipped1.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5257020201161485074" /></a>Hola!. Les presento a este robot todo terreno en su nueva versión, es similar a un perro y como tal está dotado de cuatro patas en lugar de ruedas, lo cual tiene sus ventajas en terrenos complicados teniendo en cuenta que su fin es el uso militar. Es construido por la empresa Boston Dynamics con la financiación de la Agencia de Investigación de Proyectos Avanzados de Defensa (<a href="http://www.darpa.mil/">DARPA</a> por sus siglas en inglés) de los Estados Unidos, responsable del desarrollo de nuevas tecnologías para uso militar.<br /><br />Les detallo algunas características de este sorprendente aparatejo:<br /><br />* Robot cuadrúpedo que camina, corre, trepa en terrenos ásperos y lleva cargas pesadas.<br />* Propulsado por un motor de combustible que impulsa un sistema de accionamiento hidráulico.<br />* Tiene partes que absorben los impactos y reciclan la energía de un paso al siguiente.<br />* Su tamaño es el de un perro grande (de ahí su nombre) o una mula pequeña, de 1 metro de largo, 70cm de altura y 75kg de peso.<br />* Posee una computadora a bordo que controla la locomoción, servos de las patas y se ocupa de una amplia variedad de sensores.<br />* El sistema de control gestiona dinámicamente su comportamiento en cuanto a: equilibrio, dirección, navegación, y regulación de la energía según varían las condiciones.<br />* Sensores para la locomoción: posición, fuerza, contacto con el suelo, centro de gravedad, un giroscopio láser, y un sistema de visión estéreo.<br />* Otros sensores se centran en el estado interno de BigDog, el control de la presión hidráulica, temperatura del aceite, temperatura del motor, RPMs, la carga de la batería y otros.<br />* Corre a casi 7km/h, sube pendientes de hasta 35 grados, camina a través de escombros, y puede llevar una carga de hasta 154kg.<br /><br />Vean al perro en acción:<br /><div align="center"><br /><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/W1czBcnX1Ww&color1=0xb1b1b1&color2=0xcfcfcf&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/W1czBcnX1Ww&color1=0xb1b1b1&color2=0xcfcfcf&hl=en&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object></div><br /><br />Enlaces relacionados: <a href="http://www.bostondynamics.com/content/sec.php?section=BigDog">Boston Dynamics</a>Anonymoushttp://www.blogger.com/profile/09770368799869278334noreply@blogger.com0tag:blogger.com,1999:blog-2711720355093164778.post-90961357200367261822008-10-10T19:02:00.003-03:002008-10-10T19:24:07.926-03:00Pac-Man Cumple 29 años<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_HD_5PtZZOcg/SO_T1umcH_I/AAAAAAAAAtc/piytzSVoIco/s1600-h/pacman.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_HD_5PtZZOcg/SO_T1umcH_I/AAAAAAAAAtc/piytzSVoIco/s320/pacman.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5255652210160443378" /></a><br />Este videojuego creado por el diseñador Toru Iwatani fue lanzado en Japón el 10 de octubre de 1979 e inmediatamente se convirtió en un fenómeno mundial éxito.<br />Esta primera aparición fue bautizada como Puck-Man en Japón, pero luego fue modificado a Pac-Man para el mercado estadounidense donde apareció en octubre de 1980.<br /><br />El protagonista del videojuego es un círculo amarillo al que le falta un sector por lo que parece tener boca. Aparece en laberintos donde puede comer puntos pequeños, puntos mayores y otros premios con forma de frutas y otros objetos. El objetivo del personaje es comer todos los puntos de la pantalla, momento en el que se pasa al siguiente nivel o pantalla. Pero cuatro fantasmas recorren el laberinto para intentar comerse a Pac-Man.<br /><br />En 1999, Billy Mitchell jugó por primera vez una partida perfecta de Pac-Man: completó los 255 niveles con la puntuación máxima (3.333.360 puntos) sin ser capturado ni una sola vez<br /><br />El 5 de junio de 2007 se celebró, en la ciudad de Nueva York, el campeonato mundial de Pac-Man, donde el mexicano originario de Pachuca, Hidalgo, Carlos Daniel Borrego, se llevó a casa el torneo después de haber sido coronado y premiado por el mismísimo Toru Iwatani como el primer y único campeón mundial de Pac-Man. <br /><br />Fuente: <a href="http://www.diarionorte.com/noticia.php?numero=24894">Diario Norte</a><br />Enlaces Relacionados: <a href="http://es.wikipedia.org/wiki/Comecocos">Wikipedia</a>, <a href="http://www.minutouno.com/1/hoy/article/92483-El-Pac-Man%C2%A0cumple-los-29-a%C3%B1os/">Minuto Uno</a>Anonymoushttp://www.blogger.com/profile/09770368799869278334noreply@blogger.com1