Jorge Dieguez Blog
Rendimiento de SharePoint en entornos virtualizados con Hyper-V
Noviembre 21st, 2008
Interesante articulo en TechNet que expone unas pruebas de rendimiento con SharePoint en entornos virtualizados con Hyper-V.
Performance and capacity requirements for Hyper-V![]()
Muy interesante.
» Leer más, comentarios, etc...
Javier Pérez :: Blog
Buenos días Madrid, con todos mis respetos
Noviembre 21st, 2008
Hoy te quiero hablar de la educación y el respeto, dentro del ámbito madrileño. Porque para eso el blog es mío, y me lo... y escribo lo que quiero.
El madrileño es un ser especial, único en la península (pronto pedirán la independencia... tiempo al tiempo), que insluso tiene su propia cultura y lengua. Los vascos se creen los incomprendidos de la península, y también los gallegos, pero éstos más porque no se les entiende... pero realmente los más incomprendidos de todos son los madrileños, sencillamente porque no hay por dónde cogerlos...
Los conceptos de respeto y de educación son como el culo, cada uno tiene el suyo, y que nadie se los toque... Pero todos deberíamos al menos fiarnos de un concepto común, el que dicta la Real Academia de la Lengua. Es por ello que vamos a ir allí a obtener sabiduría (se omiten las acepciones que no tienen relación con el contexto):
1. m. Veneración, acatamiento que se hace a alguien.
2. m. Miramiento, consideración, deferencia.
Y la demostración de respeto es lo que se conoce como cortesía:
1. f. Demostración o acto con que se manifiesta la atención, respeto o afecto que tiene alguien a otra persona.
Y por último, acotemos educación:
4. f. Cortesía, urbanidad.
Bien, hemos conseguido entender 3 cosas:
- Cortesía y educación son casi sinónimos.
- Significan la acción o demostración de respeto hacia alguien.
- Tener respeto hacia alguien significa tener miramiento o consideración.
Queda claro por lo tanto que para ser cortés y educado, y por lo tanto, para tener respeto por los demás, hay que tener miramiento y consideración hacia los demás. ¿Fácil, no? Pues no. Veamos unos ejemplos de cómo actúa la fauna y flora madrileña (puntualizando que: madrileño = aquél que vive en Madrid...):
1. Los que no se saben el código de circulación
Circular por la derecha, no sólo es válido para los coches, camiones, motos, ciclomotores, bicicletas, burros, caballos, carrozas, etc., sino que también es válido para los seres humanos que van a pie... Aunque al parecer mucha gente lo desconoce. ¿Cómo actuamos cuando vamos andando por cualquier sitio y viene alguien de frente?
- con respeto: como existe un código de circulación que dice claramente que debemos ir siempre por la derecha, pues ejecutamos según ese código, y nos situamos a la derecha esperando que la otra persona haga lo mismo con su respectiva derecha.
- sin respeto: como yo paso de todo y de todos, pues me voy por el lado que más gracia me dé, y si nos chocamos, pues habrá sido mala suerte, no que yo no haya pensado una solución para evitar ese pequeño conflicto.
Ejemplares típicos: alelaos varios; gente del campo donde no había nadie más que ellos mismos; pijas que no pueden separarse del escaparate de Dolce & Gavanna; etc.

2. El portero del metro
Una vez estás en los andenes del metro esperando la llegada del metro, y éste llega, tienes dos opciones:
- con respeto: miras por los que quieren salir del vagón y los tomas en consideración, y por lo tanto facilitas su salida antes de entrar tú.
- sin respeto: te plantas en la puerta a empujar a esas cosas que pretenden salir del vagón antes que tú entres... "los muy gilipollas... conmigo van a poder... ¡quita que entro!".
Ejemplares típicos: niñas en la edad del pavo, extranjeros que no se enteran, gente que no dormió mucho, etc.

3. El cazador de asientos
Una vez dentro del vagón, ves que hay un asiento libre, uno, pero hay una persona más cerca que se dispone a sentarse:
- con respeto: ya que esa persona está más cerca, cedes el asiento.
- sin respeto: como eres un pobre minusválido, anciano, y embarazado, pues corres todo lo que puedes, lanzas tu chaqueta al asiento, y te lanzas en plancha para ocupar ese asiento antes que esa cosa que pretendía sentarse en tu asiento reservado.
Ejemplares típicos: señoras con abrigos de pieles.

4. El juego del látigo
Sales del metro, con tus amistades, y tenéis que andar por la acera hasta el sitio donde habéis quedado todos para tomar unas cañas. Mientras andáis...
- con respeto: como tienes miramiento y consideración por los demás, y entiendes que esas cosas que andan alrededor tuyo también tienen derecho a usar la acera, andáis por un lado procurando que el resto de seres humanos puedan circular libremente.
- sin respeto: os ponéis en paralelo ocupando toda la acera porque queréis estar todos juntitos para hablar de "Gran Hermano", de "Operación Triunfo", o de lo bueno que está o lo gilipollas que es el tío ese de "Sin Tetas no hay Paraíso"... consiguiendo que ni los que vienen de frente ni los que vienen por detrás puedan usar la acera, y que tengan que pasar por la carretera.
Ejemplares típicos: niñatos y niñatas, o un batiburrillo de ambos; señoras con un perrito no mayor que una rata y una correa extensible de 100 metros que normalmente se sitúa al lado opuesto del perro de los cojones; compañeros de oficina que deben permanecer siempre en paralelo para escuchar atentamente los chascarrillos de la ofi; etc.

5. Bajo la lluvia
Este es un tema muy apasionante que merecería libros y libros... ¿Qué hacer cuando un día con lluvia vas con un paraguas por la calle?
- con respeto: miras y consideras a los demás que también circulan por la acera, y procuras no saltarles un ojo con la punta del paraguas, y además cedes el espacio que está bajo la cornisa de los edificios a los que no llevan paraguas.
- sin respeto: te pones con tu paraguas lo más bajo posible, pase quien pase, desatendiendo los gritos de dolor producidos por la introducción de tu paraguas en los ojos de los demás, y además pasas siempre por debajo de las cornisas, y que se jodan los pobres desgraciados indigentes que no tienen dinero para comprarse un puto paraguas.
Ejemplares típicos: pijas, señoras, pijas, señoras, pijas, señoras...

6. Los DJ's frustrados
Hay personas que necesitan constantemente el reconocimiento y la veneración de los demás hacia él, y los peores de todos son los DJ's frustrados, esos engendros que se creen que la música que ellos escuchan ha de gustarles a todo el mundo. ¿Qué hacer cuando estás en un lugar público y quieres escuchar música?
- con respeto: por miramiento y consideración a los demás, entiendes que no tiene por qué gustarles la música que a ti te entusiasma, y por lo tanto adquieres unos auriculares para escuchar la música sin molestar a nadie.
- sin respeto: tienes un gusto musical exquisito, y por lo tanto todos los demás deben saberlo, así que coges el móvil, la PDA, el ordenador, o lo que sea, y le subes el volumen lo justo para que todos los presentes lo escuchen y puedan así conocer el buen gusto musical que tienes.
Ejemplares típicos: latinoamericanos con el móvil a toda pastilla y el "dame más gasolina" como tema estrella; compañeros de trabajo con complejo de inferioridad manifiesta.

7. El sordo, ciego y mudo
Da igual lo que digas o hagas, ciertas personas ni te escuchan ni te ven. Cuando llegas a un sitio, ¿qué haces? Cuando alguien entra y saluda, ¿qué haces?
- con respeto: al llegar a un sitio, una persona educada y cortés saluda a todos los presentes: "buenos días", "buenas tardes", "hola"... Y cuando alguien entra y saluda, por respeto, se responde con el mismo saludo.
- sin respeto: el sordo-ciego, no te escucha cuando entras a un sitio y saludas, ni tampoco te ve cuando entran a un sitio. Es por eso por lo que nunca jamás ni saluda ni devuelve el saludo.
Ejemplares típicos: los madrileños.

8. El placer de comer tranquilo y en silencio
Uno va a comer a un restaurante con unas amistades, o simplemente a tomar unas cañas...
- con respeto: por miramiento y consideración por los demás, guardas el máximo silencio posible, hablando en voz baja.
- sin respeto: como estás solo en el restaurante, te pones a gritar como un energúmeno aunque la persona a la que hables esté justo a tu lado.
Ejemplares típicos: los españoles.

Resumen
En definitiva, que cuando uno sale de España echa de menos la comida y... la comida. Siempre nos quedamos embobadicos contemplando la excelente educación y respeto que suelen tener en otros países. Visitad el metro de Londres, intentad perderos en Manhattan si es que los amabilísimos ciudadanos neoyorkinos os lo permiten, o comed en un restaurante en París... Es entonces cuando uno se da cuenta de lo maleducado e irrespetuoso que es.
Ahora sí, ya podéis insultarme por antimadrileñista, snob, o cualquier cosa que se os ocurra...
» Leer más, comentarios, etc...
Javier Pérez :: Blog
AJAX Libraries API: Google, he’s so lovely!
Noviembre 21st, 2008
Gracias Dios Google por el pan nuestro de cada día los regalos que haces a diario a nosotros pobres siervos nobles desarrolladores web. Te adoramos. Te amamos con locura.
Acabo de descubrir AJAX Libraries API, de Google, y aún ando recogiendo la mandíbula inferior del suelo y limpiando las babas que voy dejando. Alegrías como esta convierten el peor de los días en un día maravilloso.
Google AJAX Libraries API es una API para cargar mediante AJAX cualquiera de las librerías/frameworks Javascript más populares, como jQuery, Prototype, Dojo, MooTools... y no sólo eso, sino que además estas librerías quedan alojadas en los servidores de Google, por lo que nos ahorramos unos 50-100kb de carga del servidor en cada petición de página. ¿No es lovely nuestro querido Google?
Se acabó estar constantemente descargando las últimas versiones de los frameworks y sus respectivas UI, ahora simplemente cambiamos la línea:
google.load('jquery', '1.2.5');
por esta otra:
google.load('jquery', '1.2.6');
Y a seguir trabajando como si nada hubiera pasado...

» Leer más, comentarios, etc...
Yet Another Programming Weblog
Universos paralelos, cuerdas y divulgación científica
Noviembre 21st, 2008
Hay un debate, apasionante y por supuesto no resuelto acerca de como divulgar la ciencia, de cómo equilibrar la precisión de lo que se cuenta con lo entretenido de la forma.
Pues bueno, a mi me parece que esto en la divulgación de la ciencia más básica es especialmente importante. Suele uno leer en periódicos, revistas y últimamente en blogs artículos sobre la teoría de cuerdas y sobre universos paralelos sin hacer la menor mención acerca de lo especulativo del asunto. Por eso me ha gustado mucho un apunte de Clifford Johnson en el que lo explica estupendamente (vía Not Even Wrong de Peter Woit) Habla de su participación en un programa de divulgación sobre universos paralelos. Cito y "traduzco":
Para ser sincero estoy un poco preocupado porque es un tema que puede ser aprovechado muy fácilmente por chiflados por personas sensatas por igual, y es, de diversos modos, alimento para mucha charlatanería y sinsentido místico. Cualquier programa de ciencia sobre este tipo de material tiene que ser doblemente -triplemente- cuidadoso, para no dar a la gente una excusa para decir que "los científicos han comprobado esto".
¿Por qué estoy un poco preocupado? Bueno, yo no he visto un montaje final del espectáculo y y no me quiero exceder, pero un primer montaje en bruto que he podido ver sufre de un problema que estos programas pueden tener a veces: un conjunto de científicos en activo muy cuidadosos al hacer comentarios acerca de lo que se conoce, de lo desconocido, de lo que es probable y de lo que es poco probable, y así sucesivamente, y después mucha de esa cautela puede ser socavada por la intercalación de sus observaciones con fragmentos del favorito de cualquier cineasta de la física documental, del tipo que puede ser invocado para decir cosas salvajes y maravillosas - Michio Kaku.
Por favor, no me malinterpreten. No tengo nada en contra de Kaku, me parece un muy buen tipo, y creo que ha realizado un excelente y divertido trabajo para este tipo de programas (tales como el documental sobre Einstein de la otra noche ), pero hay momentos en que sus observaciones más, ermmm, emocionadas e imprudentes pueden ser colocadas en un lugar en el programa que no ayuda en nada a ser prudente con la ciencia. A menudo (quizás siempre?) no es su culpa, un director que no se da cuenta de cómo un detalle puede ser crucial llega a un punto en el que debe elegir entre la inserción de:
* (a) un fragmento de alguno de nosotros que tratamos de ser cuidadosos y no hacer declaraciones equivocadas y/o sensacionalistas, y
* (b) un fragmento un distinguido caballero con un entusiasmo contagioso, agitando sus brazos y diciendo cosas que suenan maravillosas
...Y 99 veces de cada 100 va a elegir la opción (b) si ninguna de las personas de (a) están ahí para orientarle. Esta es, por supuesto, la razón por la que siempre espero [...] que estos espectáculos se realicen de un modo colaborativo entre científicos y cineastas[...]
Hace ya unos días, bastante relacionado con esto, rvr en un par de entradas, El nivel de la divulgación científica (I) y El nivel de la divulgación científica (II) repasaba el mismo problema a la inversa, con la tesis de que debe haber sitio también para la divulgación más superficial.
Sin estar en desacuerdo con esta tesis si debo reconocer que me gustaría que hubiese menos confusión entre ciencia aceptada y especulación. Creo que la diferencia debería ser subrayada por todo el mundo y que conceptos como Método Científico, Reproducibilidad y Falsabilidad tuviesen mayor eco. Cuestión de educación, supongo.
Y bueno, por acabar y por ser algo constructivo recomendar una entrada sobre el tema en Ecos del futuro (que he conocido hace poco, muy bueno): La interpretación de los universos múltiples, el la que sí queda claro lo que es especulativo y lo que no, y porqué.
La misma entrada y más comentarios en Universos paralelos, cuerdas y divulgación científica en barrapunto
» Leer más, comentarios, etc...
Picando Código
El foro de Picando Código está de vuelta, ¡y con RSS!
Noviembre 21st, 2008
Bueno, por fin me tomé el tiempo de arreglar los problemas en el foro, ocasionados por mi intento de tener sindicación RSS.
Repito, ¡es algo que considero imprescindible en un foro! ¿Quién no usa un lector de feeds hoy en día? Nada más cómodo que tener el feed de un foro en el que participamos ahí con el resto de noticias, blogs, etc.
Así que ya pueden pasar por el foro, ver los temas recientes, hacerse miembros, y suscribirse al feed.
El nuevo plugin incluye un feed personalizado, donde pueden elegir suscribirse a todos los foros, o algunos foros específicos.
Lo estoy probando en mi lector de feeds, y anda bastante bien. Todavía me falta traducir algunas cosas de la interfaz del plugin, que pueden estar en inglés, o sin idioma. Pero aparentemente todo funciona por el momento.
La migración a otro sistema de foros sigue en mente. Ya tendré tiempo de investigar eso también…
» Leer más, comentarios, etc...
Picando Código
Nuevos diseños para GMail - Terminal
Noviembre 21st, 2008
Como ya lo anunció Marcelo Ramos en su blog, cambié la apariencia de mi GMail a Terminal:

Gmail Terminal
A pedido de Dark Musician, posteo al respecto
Obviamente se siente muy a gusto, bien liviano y bastante sobrio. Aunque como comenta JFunez, aparentemente el diseño está inspirado en el blog de fcr.
Aquellos que usen GMail revisen en Settings - Themes (o el equivalente en español) que si no tienen ya, en estos días se le estarán habilitando nuevas apariencias para su casilla de correo. Hay para todos los gustos, y de muy buen gusto. Tienen un muy buen trabajo de diseño.
De todas formas, a mi me va a durar poco. Estoy considerando dejar de usar GMail para instalar un servidor local de correo y empezar a hostear personalmente mis correos. Ya contaré cómo va.
» Leer más, comentarios, etc...
Programación, Literatura y otras artes menores » Programación
Carta a un rebelde
Noviembre 20th, 2008
Lo que sigue es un correo que le escribí a un argentino que participa con nsotros en la lista linux-l. Este señor en cada correo nos intenta adoctrinar con discursos que ya hemos oído muchas veces, y que sabemos que son falsos, aunque estoy totalmente seguro que este “rebelde” los dice convencido de que son ciertos. Mayormente sus criticas y discursos van orientados a lo malo que es que las empresas comercien con Software Libre(SL), y lo ventajoso de que un gobierno como el cubano lleve la voz cantante en lo que a producción y distribución de SL se refiere.
No le ha importado las múltiples críticas que informáticos cubanos, que viven en la isla, le han hecho a este modelo, por ser aun mas oscuro que el software privativo de una empresa.
Escribo aquí el correo a causa de que no he tenido respuesta de su parte, aunque no pierdo la esperanza.
Asunto: Diferencias ideológicas
Hola, quisiera sacar la discusión de la lista, pues no es el ámbito correcto:Resulta que lo que le aplicas a las empresas, de que a la larga quieren todo el poder para sí y absorben a quien les haga sombra, no es característica endémica de las empresas, sino de nosotros los humanos y nuestras organizaciones, entre las que se encuentran los estados, como por ejemplo el estado cubano.
Nuestro actual gobierno surgió hace 50 años con la mejor de las intenciones, hacer justicia social; pero los cubanos cometimos un grave error, confiamos en su discurso que con el tiempo se pervirtió hasta convertirse en una copia menor, aunque bastante fiel, del gobierno totalitario de la novela “1984″.
No creo que debamos demonizar ningún sistema político, sino que en todo momento debemos recordar que somos humanos, todos, y por tanto somos falibles, la crisis financiera actual es prueba de que “los que saben” son tan tontos como tu y como yo. Tratemos de ser pragmáticos, en Cuba ya llevamos 50 años de discursos como los que tu haces, y 50 años de ver que quienes dan esos discursos tienen la barriga llena mientras los demás pasamos hambre, evidentemente no me refiero a ti(aunque sí te toca la crítica un poco) sino a nuestros dirigentes. Cuba ahora necesita acciones, y que estén más allá de la propaganda política de un bando u otro, de hecho lo que necesitamos en Cuba es que no haya bandos, sino hermanos, y nos guste o nos pese, la única manera de salir adelante es generar
riqueza y comerciar con esa riqueza.Y para que veas que no solo aparento imparcialidad, sino que de veras intento ser imparcial, yo vivo en México desde hace un año, y aquí he visto cosas que en Cuba jamás vería:
* He visto niños trabajando en horario de escuela, en Cuba no los hay a ningún horario.
* He visto como médicos mantienen enfermos a sus pacientes para seguirlos tratando, y cobrándoles, en Cuba eso es inimaginable.
* He visto que una señora tendría que pagar 300 usd diarios por una pastilla para el cáncer, en Cuba, de estar la medicina, se la darían hasta gratis.Osea no soy un iluso que cree que el capitalismo es un lugar lleno de abundancia donde todos son felices como en las películas americanas, pero al mismo tiempo veo que aquí hay oportunidades de llevar a cabo proyectos, ya no hacerse rico, simplemente llevar adelante un proyecto de SL, que en Cuba a causa de trabas legales absurdas es imposible hacer. Aquí me dí cuenta de que la revolución arregló muchas cosas que estaban mal, pero, por desgracia, destruyó lo que estaba bien, destruyó el estado de derecho y las libertades individuales.
Quizás te cueste trabajo entenderlo, definitivamente debes ir a Cuba, pues mi país es demasiado diferente al resto del mundo. suerte
» Leer más, comentarios, etc...
Picando Código
Problemas con el foro
Noviembre 20th, 2008
Varios usuarios reportaron por correo y comentarios sobre el mal funcionamiento del Foro de Picando Código. Intenté instalar un plugin para sindicación RSS y terminé rompiendo todo :S
De todas formas la decisión ya está tomada, y voy a migrar el foro a un nuevo sistema. phpBB está muy lindo y lo que quieran, pero las complicaciones en su mantenimiento me han frustrado demasiadas veces ya. Así que opté por pasar a un sistema más mantenible.
Todavía estoy mirando distintos sistemas de foros, y ya tengo uno medio en mente, pero se aceptan sugerencias. La condición principal y excluyente, es que se puedan migrar los datos (usuarios, posts, foros y subforos) desde phpbb3 al nuevo sistema.
Disculpen las molestias, estamos trabajando por mejorar el servicio
Por cierto, ¿alguien más encuentra ilógico que un sistema para foros no traiga sindicación RSS de fábrica?
» Leer más, comentarios, etc...
programania
Mucho cuidado al apoyarte en software libre
Noviembre 20th, 2008
Estoy totalmente de acuerdo con el el post de Joserra sobre los frameworks. Además creo que esto no es sólo sirve para los frameworks sino que hay que extenderlo a todo. La máxima debería ser: “antes de programar cualquier cosa mirar si ya existe hecha”. Lo que si me gustaría matizar es que tampoco hay que lanzarse a adoptar cualquier tipo de solución de software libre sin antes mirar qué comunidad hay detrás y qué documentación tiene.
En el caso de PHP para mí hay dos ejemplos claros:
- El Zend Framework tiene como partners como Google, Adobe, Microsoft, etc. y un compromiso por la documentación extensa y bien hecha. Además, su promotora es Zend, la empresa que desarrolla el motor de PHP, así que no es probable que nos dejen tirados a mitad de desarrollo.
- XAJAX, en cambio, sería la antítesis del Zend Framework. Fue uno de los primeros proyectos en ofrecer interacción AJAX para PHP de forma realmente sencilla. Pero su desarrollador es una única persona y hace más de un año que afirma estar a punto de sacar la versión…. ¡0.5! La documentación tampoco es que haya evolucionado mucho. Es normal cuando el proyecto lo lleva una sola persona. ¿Qué nos garantiza que éste proyecto corregirá bugs e irá avanzando? Absolutamente nada. Dependemos del tiempo libre del desarrollador.
Tanto en Java como en PHP existen multitud de proyectos de software libre de los cuales nos podemos beneficiar a la hora de programar. Pero a la hora de elegir un proyecto, no sólo hay que mirar en qué estado está el desarrollo, sino quién está detrás y hasta dónde se puede prever que continúe el desarrollo.
En mi opinión, Zend Framework sí, Xajax no.
» Leer más, comentarios, etc...
.: El Blog de Inwe :. » Programación
Netbeans 6.5 ya disponible
Noviembre 19th, 2008
Acaba de salir la última versión de Netbeans, el cual trae muchas novedades y mejoras. Tras haber estado usando las versiones beta y release candidate de esta nueva versión, la verdad es que he relegado a Eclipse como entorno de desarrollo. Se ha mejorado mucho la estabilidad y la fluidez de la aplicación, aunque eso no quita que consuma más memoria de la deseada.
A continuación un extracto de las notas de la versión sobre las nuevas características:
Características
PHP
|
![]() |
JavaScript and Ajax
|
![]() |
Java EE & Web Development
|
![]() |
JavaFX
|
![]() |
Groovy and Grails
|
![]() |
Ruby and Rails
|
![]() |
GlassFish v3 Prelude for Web Development
|
![]() |
C/C++
|
![]() |
Java ME
|
![]() |
Java Debugger
|
![]() |
Java SE
|
![]() |
IDE Tools and Usability
|
Enlace: Netbeans IDE 6.5 Release notes
Descarga: Netbeans IDE 6.5
Entradas relacionadas
» Leer más, comentarios, etc...
PHP Senior
Taller POO/PHP5: Lunes pasado finalizó el Grupo 2
Noviembre 19th, 2008

Lamentablemente vengo un poco desbordado de trabajo y este post debería haber salido el lunes 17/11, sepan disculpar ;-)
El lunes pasado cerramos el Grupo 2, donde participaron 22 alumnos y fueron 9 alumnos los que sobrevivieron a todas las instancias del taller. Quiero destacar los que sacaron más puntos en el último y más complicado ejercicio: Pedro Del Moral, Federico Grochal y Alejandro Bovino.
Nuevamente, gracias a todos por participar y felicitaciones por el esfuerzo :-)
» Leer más, comentarios, etc...
Picando Código
Disponible NetBeans IDE 6.5
Noviembre 19th, 2008
![]()
Ya está disponible para su descarga NetBeans IDE 6.5 en los sistemas operativos Windows, Mac, GNU/Linux, y Solaris. En esta nueva versión enfocada al desarrollo de aplicaciones web, de escritorio, empresariales y móviles con soporte para los lenguajes PHP, JavaScript, Java, C/C++, Ruby y Groovy.
Entre las mejoras para Java se encuentra soporte a varios frameworks: Hibernate, Spring, JSF y JPA. Una versión bastante esperada para los usuarios de NetBeans, ya que prometió muchas mejoras, y parece que cumplió.
PHP
* Editor PHP (Code completion [completado de código], destacado de código sintáxis y semántica)
* Soporte para notación heredoc y PHTML
* Debugging usando Xdebug
* Generadores para snippets de código MySQL
JavaScript y Ajax
* Debugging de JavaScript en FireFox & Internet Explorer
* Monitoreo de transacciones HTTP
* Editor mejorado de JavaScript y CSS
* Gestor de bibliotecas JavaScript incluyendo Yahoo UI, Woodstock, jQuery, Dojo, Scriptaculous, Prototype.
Desarrollo Java EE & Web
* Soporte mejorado para Spring, Hibernate, JSF, generador CRUD JSF, JPA (Java Persistence API)
* Crear servicios web RESTful desde tablas de base de datos o entidades JPA
* Servicios SaaS drag and drop en archivos PHP
* Mejoras en el editor SQL (completado de código, guardar/recordar consultas, y mas)
* Importar proyectos de Eclipse y sincronización para proyectos Java Web mejoradas
* Deploy automático al guardar
JavaFX
* Crear, test, debug, profile, y hacer deploy de proyectos JavaFX
* Editor JavaFX con destacado de sintaxis, navegación de código, code completion, code folding, javadoc pop-ups, y detección de errores.
* Vista previa en tiempo real de elementos visuales
* Paleta de snippets de código para transformaciones, efectos y animaciones
Debugger Java
* Nuevo debugging multi-hilos con UI y work-flow mejorados
* Step Into inteligente con selección de métodos dentro de la expresión
* Detección de Deadlock con indicador visual.
Java SE
* Compila automáticamente al guardar
* Mejorada la importación y sincronización con Eclipse
* Jerarquía de Java Call
* Analizar Javadoc
* Swing GUI Builder puede generar nombres de clase simple o fully qualified
Muchas características más para Groovy y Grails, Ruby y Rails, Glassfish, Java ME, C/C++ y el IDE en general.
¡Ya lo estoy descargando para probar las nuevas características!
Enlaces:
- http://www.netbeans.org/
- Información del release 6.5
- Noticias nuevas y “dignas de señalar”
- Video introducción a NetBeans 6.5
» Leer más, comentarios, etc...
Arragonán
Por la Conferencia Rails 2008
Noviembre 19th, 2008
Los días 13 y 14 estuve en Madrid para asistir a la Conferencia Rails, os recomiendo leer el resumen que ha hecho Jesús Navarrete de algunas de las charlas viendo que coincido mucho con él y que últimamente ando un poco vago para escribir
, de todas formas sí quiero comentar que por lo general me parecieron más interesantes las que giraban alrededor de cómo trabaja la gente y algunos casos de éxito que las de tecnología pura y dura.
También me pareció curioso el speed dating entre gente que busca programadores y quienes buscamos proyectos interesantes en los que trabajar o para quien busca empleo, aunque la mayoría buscaban contratar empleados y no colaboradores freelance.
Otras cosas que quisiera destacar son por un lado los premios de personaje de año y proyecto del año, el primero fue para Xavier Noria y el segundo para Tog, aunque como ya se dijo en la lista de ror-es, hubiera estado bien dar un par de minutos para conocer a los ganadores; y por el otro lado la keynote de Obie Fernandez, que nos habló mucho de su empresa y de cómo trabajan, lo que resultó realmente interesante.
Como siempre, de lo mejor del evento son los pasillos: hablar con gente que no conocías, poner cara a muchos de los que participan en ror-es, encontrarte con algunos que conoces de forma online, juntarte con la gente con la que colaboras a diario e incluso encontrarte a un ex-compañero de trabajo
.
» Leer más, comentarios, etc...
Ideas + Ingeniería del Software
Manifestación Informática 19N
Noviembre 19th, 2008
Hoy era el día.Mi opinión sobre la huelga era que había que hacerla, todos. Sobre todo, para curarnos en salud de lo que pueda pasar. Por mí, le quitaba las atribuciones a todo el mundo. Lo que no quiero es que al final le acaben dando las mías a otro. Y todo apunta a que el ninguneo que sufre nuestra carrera puede llevar a eso.
El balance ha sido mediocre. Me he encontrado con mucha gente que no veía desde la facultad, y eso es bueno porque quiere decir que desde las empresas nos hemos movilizado bastante. Pero, por otro lado, me han faltado estudiantes. Al no ser una huelga oficial ha habido gente que trabaja que no la ha podido secundar, así que mi esperanza era que se movilizase el colectivo de estudiantes.
De todas formas, es bueno ver que nos empezamos a mover, y que esto se ha repetido en toda España (basta con buscar en Flickr).
Es un pequeño paso para nosotros, a ver si es el comienzo de un buen camino.
Pondría una foto de las mías, pero ésta de Alberto es mucho mejor.
» Leer más, comentarios, etc...
Picando Código
Jornadas Estudiantiles y Académicas CEI Edición 2008
Noviembre 19th, 2008
El próximo viernes voy a estar participando de las Jornadas Estudiantiles y Académicas de CEI. Junto al profesor Luis Dentone y otros estudiantes y egresados vamos a participar de la charla “La vida de un Analista”. Aparentemente vamos a comentar nuestras experiencias en el curso y en lo laboral.

Miren atentamente la foto. El de la izquierda, ¡es Pablo!
La conferencia al final de las jornadas trata de arquitectura del software, por alguien que sabe mucho. Así que puede ser bastante interesante. Dejo los datos:
Fecha: Viernes 21 de noviembre
Lugar: Arturo Santana 594 y San Carlos - Maldonado
Sala de Conferencias
19:00 Presentación de trabajos de los alumnos del Curso de Relaciones Públicas y Protocolo sobre los temas:
“Bob Marley. El artista más influyente de la segunda mitad del siglo XX”
“Turismo Social. Turismo para todos”
“Conciencia animal. ¿La tenemos todos?”
“San Carlos. Un recorrido histórico”
20:00 “La vida de un Analista”
Participan: Luis Dentone (docente y tutor de la Carrera Analista Programador), egresados y alumnos de la Carrera.
20:30 “Curriculum… Tu presentación”
Presentación de la docente de Gestión de Personal Claudia Bustamante y sus alumnos de la Carrera Técnico en Gerencia (2º Semestre).
21:00 Conferencia “Elementos y conceptos sobre Arquitecturas de software”
a cargo de Gastón Mousqués.
Gastón Mousqués
Master en Computación, University of North Texas
Director Laboratorio de Investigación y Desarrollo en Ingeniería de Software, Facultad de Ingeniería, Universidad ORT Uruguay
Catedrático de Ingeniería de Software, Universidad ORT Uruguay
Premio a la Excelencia Docente 1995 Facultad de Ingeniería, Universidad ORT Uruguay
Sala de Exposiciones
18:30 a 20:30 Exhibición de trabajos de alumnos de Cursos Técnicos
» Leer más, comentarios, etc...
Fetishcode...Thinking in objects
Herramientas de búsqueda y edición de imagenes on-line
Noviembre 19th, 2008
A
» Leer más, comentarios, etc...
Navegapolis
Ejercicio de gestión de proyectos predictiva
Noviembre 19th, 2008
A ver si me da tiempo, y poco a poco les doy look presentable a los ejercicios que usé el año pasado en las clases de Ingeniería del Software de Ceste, para los que os puedan servir.
Este fin de semana "peiné" como primero este, que sirve para explicar de forma práctica los puntos básicos de la gestión de proyectos predictiva: requisitos - plan - seguimiento del plan.
Es un ejercicio diseñado para combinar con el que será el siguiente, y que lleva a cabo el mismo desarrollo de juego, pero con principios ágiles. La combinación de los dos en un mismo curso presenta de forma práctica el contraste y las razones de ambas formas de gestión.
Si lo queréis emplear en una sesión de formación, en el área de publicaciones de Scrum Manager están también las diapositivas y el guión de formación.
» Leer más, comentarios, etc...
niko's mini factory
Links for 2008-11-18 [del.icio.us]
Noviembre 19th, 2008
- Asynchronous Ajax for Revolutionary Web Applications | Javalobby
Web 2.0 and the Asynchronous Revolution - A Rich Web Service API for Your Favorite Framework, Part 1: Spring | Javalobby
- Hibernate Search : Mapping Entities | Javalobby
Mapping entities
» Leer más, comentarios, etc...
jenaiz.com - RubyOnRails
Reflexión tras la Conferencia Rails
Noviembre 19th, 2008
A finales de la semana pasada, se celebró en Madrid la Conferencia Rails 2008, tal como os comenté, estuve allí conociendo gente, intercambiando opiniones y descubriendo lo que se está haciendo con Rails.
Este año he podido disfrutar asistiendo ambos días, además he disfrutado como más me hubiese gustado hacerlo siempre. Dado que desde hace un tiempo he estado trabajando más intensamente con Rails, y este ha sido el primer evento relacionado con el tema al que he podido asistir, eso si no contamos el evento de Tog en octubre
.
Como es habitual, aporto mi pequeña gota de feedback y como también es normal, no lo haré de todas las charlas, sino de aquellas que más me impactaron o que por una causa u otra más recuerdos han dejado en mi. Para los que se queden con ganas de más, les recuerdo que la organización grabó las charlas y que seguramente pronto estarán disponibles los vídeos como en otras ocasiones.
Apertura y keynote por fxn. Una manera de abrir la conferencia singular, con referencias a hechos que originaron cambios. Personas que fueron contra corriente, con formas de pensar y/o hacer diferentes... Somos reacios al cambio, somos animales de costumbres y nos cuesta aceptar algo nuevo, pero cuando el cambio es llevado a cabo, cuando nos dejamos embaucar por lo extraño, sin duda disfrutamos como niños. Rails sin dudarlo es una pequeña cosa que ha hecho una gran diferencia. Frameworks hay muchos, intentos de hacerlo de otra forma también, pero corrientes como la que vivimos no han habido tantas. Lo que más me maravilla de esta comunidad es que muchos hemos llegado a ella con experiencia sobre otras, con lecciones aprendidas a fuego y veo cosas que me gustan bastante.
Caso de éxito: "Tog: Open Web, Social Networks y cintas de video". Una explicación de la visión sobre los objetos sociales y sobre lo que una red social debería crearse. Intentando mostrar el aporte que Tog podría hacer con respecto a crear una red social. No sé si fue la charla, si oir a Aitor en estado catarroso o si definitivamente Tog tiene el tirón que parece. El caso es que el último día las votaciones de mejor proyecto del año 2008 recayó sobre el XD, y eso que fue liberado a ¡finales de septiembre! La verdad es que el trabajo detrás de esta primera inflexión que supuso la liberación del código se remonta a bastantes meses atrás. Antes hubo pruebas, proyectos, afinamiento de ideas y tras todo eso la creación de lo que ahora mismo es. Todo ello entorno a la idea que nos mueve de los objetos sociales y su valor.
Rails HOT or NOT. Os recomiendo verla en video
. No había utilizado todos los plugins que se comentaron, en ocasiones no podía decir nada malo por uno de ellos, pero sin duda descubrí opciones, opiniones en base a experiencias y espero pronto leer las conclusiones en la lista de ror-es; además de invertir algo de tiempo en cacharrear con alguno de ellos.
Speed dating. Un experimento que pudo hacer que nos relacionásemos gente con proyectos en busca de gente y gente en busca de proyectos, aunque tubo un mayor aporte de empresas que buscaban personal para contratar que lo yo personalmente hubiese querido encontrar. Aún así, una grata experiencia.
Caso de éxito: "b5map: Maps on Rails". La verdad es que ya conocía la web desde hacía tiempo, conozco Aitor por sus post en jaiku, pero desconocía las tiranteces que parece haber entre los ayuntamientos. Algo que me llamó mucho la atención, fue descubrir que el proyecto se había llevado a cabo aunando a freelances y pequeñas empresas, algo loable viniendo de una administración pública.
Keynote por Obie. Una forma de ver el mundo laboral y empresarial diferente a lo que se ve en este país. Sin duda oír hablar a Obie diciendo que son buenos desarrollando, que les gusta y que eso es a lo que se dedican y es lo que le transmiten a sus clientes; lo cual despertó algún comentario en los asistentes, dada la comparación con lo que vivimos aquí en España. Aplicación de Pair Programming todo el tiempo, un ambiente laboral agradable, invitaciones a personas destacadas dentro del mundo de la programación para que interaccionen con la gente que trabaja en Hashrocket, etc etc. Fue agradable de escuchar y creo que sería increíble trabajar en esos ambientes (al lado de la playa
) y de con esas premisas. Aunque sin duda mi conclusión actual es que no estamos tan lejos de conseguirlo, y que la nueva cultura de empresas pequeñas haciendo software creada entorno a Rails, podría llevarnos a eso.
Por comentar, me queda por ver a fondo la charla de Emili Parreño sobre ActiveRecord, echarle un vistazo a Typus, probar EC2 de Amazon, hacerse con uno de los aparatos que vimos en: Hardware Hacking en Ruby y casi en Rails para iluminar los deploys y definitivamente: hacer TAFT
.
» Leer más, comentarios, etc...
Nuevos Programadores
Patrón Decorador - Definición, diagramas e implementación
Noviembre 19th, 2008
El patrón decorador, (decorator pattern), añade nuevas responsabilidades a un objeto dinamicamente, ofreciendo una alternativa flexible a la herencia.
En otras palabras, es una forma de agregar funcionalidades a una clase, extendiéndola pero sin recurrir a la herencia. ¿Por qué no heredar? Bueno, tal vez no desees dar acceso a toda la clase primaria y entonces sólo se daría acceso a lo necesario.
Veamos un ejemplo simple, tenemos las siguientes clases:
- Persona (ID, Nombre, Apellido y Fecha de Nacimiento)
- Usuario (ID, Nombre, Apellido, Usuario, Passwd)
- Cliente (ID, Nombre, Apellido, Teléfono, Email)
- Cliente VIP (ID, Nombre, Apellido, Teléfono, Email, Nro de Cuenta, Límite de Crédito)
Cómo vemos todos tienen campos comunes a Persona, pero no tienen todos los campos de la clase Persona, por eso no podemos heredar, así es que podremos implementar decoradores para la clase Persona, tendremos los decoradores Usuario, Cliente y Cliente VIP. (Ver figura 1).
Pero si analizamos lo que hemos diseñado hasta el momento podremos observar que Cliente VIP podría llegar a convertirse en un decorador de Cliente, que como recordamos es un decorador de Persona, de esa manera no tendremos que reescribir la lógica detrás de los atributos Teléfono e Email. (Ver figura 2).
La pregunta es cómo decorar una clase, pues a grandes rasgos podríamos decir que se trata de tener una variable privada de la clase a decorar, escribir los métodos o atributos que se deseen publicar de la clase a decorar y luego agregar las decoraciones en nuestra nueva clase, entendiendo por decoraciones los nuevos métodos y/o atributos.
Por último veamos el código correspondiente a nuestras clases.
class Persona { private int ID; private String Nombre; private String Apellido; private Date FechaNac; public int getID() { return ID; } public String getNombre() { return Nombre; } public String getApellido() { return Apellido; } public Date getFechaNac() { return FechaNac; } } class Usuario { private Persona mPersona; private String Usuario; private String Passwd; public int getID() { return mPersona.getID(); } public String getNombre() { return mPersona.getNombre(); } public String getApellido() { return mPersona.getApellido(); } public String getUsuario() { return Usuario; } public String getPasswd() { return Passwd; } } class Cliente { private Persona mPersona; private String Telefono; private String Email; public int getID() { return mPersona.getID(); } public String getNombre() { return mPersona.getNombre(); } public String getApellido() { return mPersona.getApellido(); } public String getTelefono() { return Telefono; } public String getEmail() { return Email; } } class Cliente_VIP { private Cliente mCliente; private String NroCuenta; private Double LimiteCredito; public int getID() { return mCliente.getID(); } public String getNombre() { return mCliente.getNombre(); } public String getApellido() { return mCliente.getApellido(); } public String getTelefono() { return mCliente.getTelefono(); } public String getEmail() { return mCliente.getEmail(); } public String getNroCuenta() { return NroCuenta; } public Double getLimiteCredito() { return LimiteCredito; } }
También te puede interesar:
» Leer más, comentarios, etc...
Picando Código
Instalar Gnash en GNU IceCat
Noviembre 19th, 2008
Pongo esto aca para no olvidarme:
Cómo instalar Gnash en GNU IceCat:
apt-get install gnash mozilla-plugin-gnash
Y el enlace simbólico… EL ENLACE SIMBÓLICO!!!
ln -s /usr/lib/gnash/libgnashplugin.so /ruta_hacia_directorio_icecat/plugins/
Si usas GNU IceCat, o en su defecto alguno de los forks de Firefox, te puede interesar:
- Navegadores Web Mozilla: Firefox 3 beta 3 + IceWeasel + IceCat
- Usando IceCat como reemplazo de Mozilla Firefox: Perfiles de usuario
» Leer más, comentarios, etc...
Una sinfonía en C#
Charla sobre mocking en el MUG, Done!!
Noviembre 19th, 2008
Hoy tuve la suerte de poder dar una charla sobre mocking en el Grupo de Usuarios de Microsoft de Argentina, hablamos de los objetivos del mocking, de Rhino Mocks y Moq sin olvidar hacer referencia de NMock y TypeMock.
Agradezco a los asistentes, al MUG, y a Daniel Laco por todo.
Dejo los ejemplos para descargar
» Leer más, comentarios, etc...
Variable not found
Métodos genéricos en C#
Noviembre 18th, 2008
Los métodos genéricos son interesantes herramientas que están con nosotros desde los tiempos del .NET Framework 2.0 y pueden resultarnos muy útiles de cara a la construcción de frameworks o librerías reutilizables.
Podríamos considerar que un método genérico es a un método tradicional lo que una clase genérica a una tradicional; por tanto, se trata de un mecanismo de definición de métodos con tipos parametrizados, que nos ofrece la potencia del tipado fuerte en sus parámetros y devoluciones aun sin conocer los tipos concretos que utilizaremos al invocarlos.
Vamos a profundizar en el tema desarrollando un ejemplo, a través del cual podremos comprender por qué los métodos genéricos pueden sernos muy útiles para solucionar determinado tipo de problemas, y describiremos ciertos aspectos, como las restricciones o la inferencia, que nos ayudarán a sacarles mucho jugo.
Escenario de partida
Como sabemos, los métodos tradicionales trabajan con parámetros y retornos fuertemente tipados, es decir, en todo momento conocemos los tipos concretos de los argumentos que recibimos y de los valores que devolvemos. Por ejemplo, en el siguiente código, vemos que el métodoMaximo, cuya misión es obvia, recibe dos valores integer y retorna un valor del mismo tipo: public int Maximo(int uno, int otro)
{
if (uno > otro) return uno;
return otro;
}
Hasta ahí, todo correcto. Sin embargo, está claro que retornar el máximo de dos valores es una operación que podría ser aplicada a más tipos, prácticamente a todos los que pudieran ser comparados. Si quisiéramos generalizar este método y hacerlo accesible para otros tipos, se nos podrían ocurrir al menos dos formas de hacerlo.
La primera sería realizar un buen puñado de sobrecargas del método para intentar cubrir todos los casos que se nos puedan dar:
public int Maximo(int uno, int otro) { ... }
public long Maximo(long uno, long otro) { ... }
public string Maximo(string uno, string otro) { ... }
public float Maximo(float uno, float otro) { ... }
// Hasta que te aburras... Obviamente, sería un trabajo demasiado duro para nosotros, desarrolladores perezosos como somos. Además, según Murphy, por más sobrecargas que creáramos seguro que siempre nos faltaría al menos una: justo la que vamos a necesitar ;-).
Otra posibilidad sería intentar generalizar utilizando las propiedades de la herencia. Es decir, si asumimos que tanto los valores de entrada del método como su retorno son del tipo base
object, aparentemente tendríamos el tema resuelto. Lamentablemente, al finalizar nuestra implementación nos daríamos cuenta de que no es posible hacer comparaciones entre dos object's, por lo que, o bien incluimos en el cuerpo del método código para comprobar que ambos sean comparables (consultando si implementan IComparable), o bien elevamos el listón de entrada a nuestro método, así: public object Maximo(IComparable uno, object otro)
{
if (uno.CompareTo(otro) > 0) return uno;
return otro;
} Pero efectivamente, como ya habréis notado, esto tampoco sería una solución válida para nuestro caso. En primer lugar, el hecho de que ambos parámetros sean
object o IComparable no asegura en ningún momento que sean del mismo tipo, por lo que podría invocar el método enviándole, por ejemplo, un string y un int, lo que provocaría un error en tiempo de ejecución. Y aunque es cierto que podríamos incluir código que comprobara que ambos tipos son compatibles, ¿no tendríais la sensación de estar llevando a tiempo de ejecución problemática de tipado que bien podría solucionarse en compilación?El método genérico
Fijaos que lo que andamos buscando es simplemente alguna forma de representar en el código una idea conceptualmente tan sencilla como: "mi método va a recibir dos objetos de un tipo cualquiera T, que implementeIComparable, y va a retornar el que sea mayor de ellos". En este momento es cuando los métodos genéricos acuden en nuestro auxilio, permitiendo definir ese concepto como sigue: public T Maximo<T>(T uno, T otro) where T: IComparable
{
if (uno.CompareTo(otro) > 0) return uno;
return otro;
} En el código anterior, podemos distinguir el parámetro genérico T encerrado entre ángulos "<" y ">", justo después del nombre del método y antes de comenzar a describir los parámetros. Es la forma de indicar que
Maximo es genérico y operará sobre un tipo cualquiera al que llamaremos T; lo de usar esta letra es pura convención, podríamos llamarlo de cualquier forma (por ejemplo MiTipo Maximo<MiTipo>(MiTipo uno, MiTipo otro)), aunque ceñirse a las convenciones de codificación es normalmente una buena idea.A continuación, podemos observar que los dos parámetros de entrada son del tipo T, así como el retorno de la función. Si no lo ves claro, sustituye mentalmente la letra T por
int (por ejemplo) y seguro que mejora la cosa.Lógicamente, estos métodos pueden presentar un número indeterminado de parámetros genéricos, como en el siguiente ejemplo:
public TResult MiMetodo<T1, T2, TResult>(T1 param1, T2 param2)
{
// ... cuerpo del método
}
Restricciones en parámetros genéricos
Retomemos un momento el código de nuestro método genéricoMaximo: public T Maximo<T>(T uno, T otro) where T: IComparable
{
if (uno.CompareTo(otro) > 0) return uno;
return otro;
} Vamos a centrarnos ahora en la porción final de la firma del método anterior, donde encontramos el código
where T: IComparable. Se trata de una restricción mediante la cual estamos indicando al compilador que el tipo T podrá ser cualquiera, siempre que implementente el interfaz IComparable, lo que nos permitirá realizar la comparación. Existen varios tipos de restricciones que podemos utilizar para limitar los tipos permitidos para nuestros métodos parametrizables:
where T: struct, indica que el argumento debe ser un tipo valor.where T: class, indica que T debe ser un tipo referencia.where T: new(), fuerza a que el tipo T disponga de un constructor público sin parámetros; es útil cuando desde dentro del método se pretende instanciar un objeto del mismo.where T: nombredeclase, indica que el argumento debe heredar o ser de dicho tipo.where T: nombredeinterfaz, el argumento deberá implementar el interfaz indicado.where T1: T2, indica que el argumento T1 debe ser igual o heredar del tipo, también argumento del método, T2.
public TResult MiMetodo<T1, T2, TResult>(T1 param1, T2 param2)
where TResult: IEnumerable
where T1: new(), IComparable
where T2: IComparable, ICloneable
{
// ... cuerpo del método
}
En cualquier caso, las restricciones no son obligatorias. De hecho, sólo debemos utilizarlas cuando necesitemos restringir los tipos permitidos como parámetros genéricos, como en el ejemplo del método
Maximo<T>, donde es la única forma que tenemos de asegurarnos que las instancias que nos lleguen en los parámetros puedan ser comparables.Uso de métodos genéricos
A estas alturas ya sabemos, más o menos, cómo se define un método genérico, pero nos falta aún conocer cómo podemos consumirlos, es decir, invocarlos desde nuestras aplicaciones. Aunque puede intuirse, la llamada a los métodos genéricos debe incluir tanto la tradicional lista de parámetros del método como los tipos que lo concretan. Vemos unos ejemplos: string mazinger = Maximo<string>("Mazinger", "Afrodita");
int i99 = Maximo<int>(2, 99);
Una interesantísima característica de la invocación de estos métodos es la capacidad del compilador para inferir, en muchos casos, los tipos que debe utilizar como parámetros genéricos, evitándonos tener que indicarlos de forma expresa. El siguiente código, totalmente equivalente al anterior, aprovecha esta característica:
string mazinger = Maximo("Mazinger", "Afrodita");
int i99 = Maximo(2, 99);
El compilador deduce el tipo del método genérico a partir de los que estamos utilizando en la lista de parámetros. Por ejemplo, en el primer caso, dado que los dos parámetros son
string, puede llegar a la conclusión de que el método tiene una signatura equivalente a string Maximo(string, string), que coincide con la definición del genérico.Otro ejemplo de método genérico
Veamos un ejemplo un poco más complejo. El métodoCreaLista, aplicable a cualquier clase, retorna una lista genérica (List<T>) del tipo parametrizado del método, que rellena inicialmente con los argumentos (variables) que se le suministra: public List<T> CreaLista<T>(params T[] pars)
{
List<T> list = new List<T>();
foreach (T elem in pars)
{
list.Add(elem);
}
return list;
}
// ...
// Uso:
List<int> nums = CreaLista<int>(1, 2, 3, 4, 6, 7);
List<string> noms = CreaLista<string>("Pepe", "Juan", "Luis");
Otros ejemplos de uso, ahora beneficiándonos de la inferencia de tipos:
List<int> nums = CreaLista(1, 2, 3, 4, 6, 7);
List<string> noms = CreaLista("Pepe", "Juan", "Luis");
// Incluso con tipos anónimos de C# 3.0:
var p = CreaLista(
new { X = 1, Y = 2 },
new { X = 3, Y = 4 }
);
Console.WriteLine(p[1].Y); // Pinta "4"
En resumen, se trata de una característica de la plataforma .NET, reflejada en lenguajes como C# y VB.Net, que está siendo ampliamiente utilizada en las últimas incorporaciones al framework, y a la que hay que habituarse para poder trabajar eficientemente con ellas.
Publicado en: www.variablenotfound.com.
» Leer más, comentarios, etc...
Pensamientos ágiles
Cuando los premios son al trabajo bien hecho
Noviembre 18th, 2008

El post de hoy no va sobre la Web 2.0, ni sobre lo último del Cloud Computing, ni sobre la última inversión de algún serial entrepeneur, ni de na












