jump to navigation

Estamos devuelta y al aire! February 22, 2009

Posted by NicoPaez in noticia.
Tags:
add a comment

Uau! Cuanto tiempo ha pasado. El último proyecto nos ha tenido muy atareados, pero finalmente estamos al aire. El lunes pasado salimos en producción con http://www.lasubastada.com.ar.

El proyecto aún no ha finalizado pues tenemos pendiente liberar una segunda tanda de funcionalidad en la que aún estamos trabajando. Más allá de los impedimentos que encontramos, el proyecto ha resultado muy enriquecedor para todo el equipo, principalmente por la gran cantidad de tecnologias / herramientas que debimos utilizar y de las cuales estaremos hablando en los proximos posts.

¡Chau 2008! December 30, 2008

Posted by NicoPaez in evento.
Tags:
add a comment

En este último tiempo hemos escrito muy poco debido principalmente a que hemos estado enfrentando algunos nuevos y variados desafios. Matias y Gabriela han estado trabajando con PHP, mientras que Dario hizo sus primeras experiencias con Java. Al mismo tiempo junto al resto del equipo hemos comenzado a trabajar en un nuevo sitio promocional para una importante tabacalera que incluye tecnologias varias como Castle Active Record, Spring IoC, WCF, REST, JQuery, Widgets, J2ME y SMSs. Espero que en las próximas semanas podamos hacernos tiempo para empezar a volcar las experiencias que hemos recogido en esto en estos últimos tiempos.
Haciendo referencia al título del post, creo que hemos tenido un año muy positivo y me gustaría destacar algunos puntos que justifican esta percepción:

  • Nos hemos consolidado como equipo de trabajo y hemos sentado las bases de nuestra forma de trabajo.
  • Hemos ejecutado exitosamente los proyectos que nos fueron asignados.
  • Trabajamos con distintas tecnologias manteniendo siempre las consignas fundacionales de nuestra forma de trabajo.

Si bien el panorama mundial para el 2009 es en gran medida una incógnita, ya tenemos en pipeline algunos proyectos interesantes de los cuales ya iremos contando.

Nos leemos el año próximo, ¡feliz 2009!

Curso Linq, Sql 2008, Parallel FX (Día 2) August 7, 2008

Posted by Leandro Romero in evento.
Tags: , ,
add a comment

Ayer asistí al workshop del Mug en el día “manejo de datos” y vimos Linq, Parallel FX y un chiquitín de SQL 2008.

LINQ

Para empezar vimos Linq, no voy a contar todo lo que dijo, pero básicamente es una linda manera de utilizar sintaxis “parecida” a sql para manejar colecciones. Entonces podemos tener algo asi:

public void Linq6() {
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };

var numsPlusOne =
from n in numbers where n > 2
select n;

En este ejemplo se ve que podemos “consultar” sobre una colección.

Bien, Linq es re lindo, nos da un lenguaje copado, con intellisense, tipado y además parece útil, pero lo que lo hacen más útil son sus implementaciones: Linq To Objects, Linq To Sql, Linq To Entity, Linq To DataSets… etc.

Un ejemplo de Linq To Objects (la más fácil de entender):

 ArrayList arrList = new ArrayList();
 arrList.Add(new Student
             {
               FirstName = "Svetlana", 
               LastName = "Omelchenko", 
               Scores = new int[] { 98, 92, 81, 60 }
             });
 arrList.Add(new Student
             {
               FirstName = "Claire", 
	       LastName = "O’Donnell", 
	       Scores = new int[] { 75, 84, 91, 39 }
             });
 arrList.Add(new Student
             {
               FirstName = "Sven", 
	       LastName = "Mortensen", 
	       Scores = new int[] { 88, 94, 65, 91 }
             });
 arrList.Add(new Student
            {
               FirstName = "Cesar", 
	       LastName = "Garcia", 
	       Scores = new int[] { 97, 89, 85, 82 }
            });

  var query = from Student student in arrList
              where student.Scores[0] > 95
              select student;

Copado no? :)

Ahora sobre lo que mas me voy a explayar: Linq To Sql (Solo SQL Server). Vamos por partes como dijo Jack: Primero hay que tener en cuenta que hay que tener un contexto, esto es una clase que encapsula las tablas y las relaciones de esas tablas (algo MUY parecido a un dataset, pero en realidad es un .dbml). Una vez que se tiene un contexto podemos hacer cosas como esto:

DataContext db = new DataContext

(@“c:\linqtest5\northwnd.mdf”);
Table<Customer> Customers =
db.GetTable<Customer>();

db.Log = Console.Out;

IQueryable<Customer> custQuery =
from cust in Customers
where cust.City =
“London”
select cust;

foreach (Customer cust in custQuery)
{
Console.WriteLine(
“ID={0}, City={1}”,
cust.CustomerID,
cust.City);
}

Podemos ver que tiene un contexto (en el ejemplo se muestra una manera rapida de crear contextos sin el .dbml), se trae la tabla Customers (la tabla esta mapeada a una clase Customer) y ejecuta una búsqueda simple. La sentencia “db.Log = Console.Out;” Hace que muestre la sentencia sql que genera nuestra búsqueda. Bien, un dato importante es que la consulta no es ejecutada en el instante, sino que es “diferida” la ejecución, esto significa que recién al recorrer esa colección con el for each, ahi va a ejectuar la consulta en la base, esto es importante porque si surge alguna excepción va a saltar en la ejecución del for each y no en la creación de la consulta en si. Algunos datos para tener en cuenta: NO es un ORM (Como nhibernate), NO soporta complejas estructuras de tablas (lo de complejas es subjetivo, pero como métrica si tienen 30 tablas y tienen 90 relaciones, eso es complejo :P ) y lo mas importante de todo: las sentencias LIKE no estan soportadas, leyeron bien, no se puede hacer una consulta sobre un campo texto con un LIKE.

Ustedes dirán, y que tiene de bueno esto? Bueno, en principio si tenemos una aplicacion que no tiene una gran complejidad de relaciones, no hay que hacer busquedas de texto con like y nuestro dominio esta excelentemente modelado como para que cada atributo es una columna de una tabla y no hay muchas mas vueltas que eso aca tenemos la solución, en todos los proyectos por los que pasé, esto se me presentó en… mmmm bue.. nunca, pero bueno.. para hacer demos queda RE Lindo!!! :D

Sin embargo no crean que esto es algo malo, para solucionar esto es que existe Linq To Entities, en criollo es Linq con Entity Framework, ahora si tenemos un ORM, y podemos jugar lo que querramos con esto. Esta implementación es la que le pongo mas fichas, pero no seria Linq la solucion principal, el mayor poder reside en Entity Framework, que les dejo de tarea revisar que es :)

Parallel FX

Yo me acuerdo cuando empece la secundaria técnica en la vieja y querida Kennedy de Lanus en el 2000. Para esa época AMD e Intel peleaban cuerpo a cuerpo a ver quien era el que lograba el procesador con mayor cantidad de Ghz posible. Hoy por hoy, AMD e Intel pelean por ver quien pone mas procesadores en una pc. Ya sabemos que la mayoria de los procesadores tienen 2Ghz, un poco mas o un poco menos, pero todos andan por ahi. Esto es asi porque a mas Ghz nuestra pc pasaría a la categoría estufa (se calculaba que si esa tendencia de aumentar la velocidad se extendía por un par de años mas, los procesadores iban a alcanzar la temperatura del sol), por suerte a Roberto Intel, que estaba perdiendo mercado con AMD64, se le prendió la lamparita y sorprendio a todos con el Dual-Core, un procesador con 2 nucleos. A estas alturas ya existe el Quad-Core para escritorios y multiples Quad-Cores para servidores (los servidores grosos siempre soportaron muchos procesadores, pero ahora aceptan muchos procesadores que se componen de muchos nucleos). Y las aplicaciones? Bien, gracias, hagan la prueba los que tienen múltiples nucleos en su pc, agarren un archivo pesado de texto (1GB mas o menos) y abranlo con el notepad, vayan al administrador de tareas y van a ver como un procesador esta trabajando a full y el otro esta durmiendo la siesta, un claro ejemplo de una aplicación no está pensada para esta nueva tecnología (convengamos que es el notepad, no le pidan peras al olmo). Como hacemos nosotros para seguir a la tecnología? Simple, Parallel FX y que el framework se arregle como pueda. Ejemplo:

A la antigua el manejo de threads era asi:

for (int i = 0; i < 20; i++)
{
//Dormir 100 milisegundos
Thread.Sleep(100);
}

Ahora para aprovechar los procesadores hacemos asi:

System.Threading.Parallel.For(0, 20, delegate(int i)
{
//Dormir 100 milisegundos
Thread.Sleep(100);
});

Como funciona esto? Bueno, el framework se fija cuantos procesadores tiene a su disposición y ejecuta los threads en paralelo. Miren como es el for de Parallel, muy parecido al viejo for no?

SQL 2008

Por ultimo un chiquitín de SQL 2008: Cuando salga va a salir conjuntamente el release de Entity Framework, como el equipo de desarrollo de SQL se atrasó, el equipo de Entity Framework (muy unidos ellos) decidieron retrasarse también.

Bueno, como dirían los filósofos contemporáneos: Espero que les haya gustado.

Curso VS2008 – Framework 3.5 (Día 1) August 6, 2008

Posted by mlopezamador in evento.
Tags: , ,
add a comment

Al inicio del curso se presentaron las novedades de Visual Studio 2008. Las que mas me llamaron la atención fueron: Lambda expressions, variables de tipo anónimo y la posibilidad de hacer debug y seguimiento sobre funciones javascript. El instructor mostró algunos ejemplos prácticos (código) para afianzar los conocimientos. Luego se vieron algunas cuestiones sobre Framework 3.5: Garbage Collector,CLR Security entre otros. Finalmente vimos WorkFlow Foundation (WF) y Windows Communication Foundation (WCF) pero con poco detalle. La última media hora del curso la utilizamos para hacer un ejercio práctico sobre WCF.

El primer día del curso estuvo bueno ya que vimos de manera global lo nuevo de Visual Studio 2008. Lo ideal hubiera sido hacer algunos ejercicios más, pero no daban los tiempos.

Caso de exito TFS July 10, 2008

Posted by NicoPaez in noticia.
Tags: , , ,
add a comment

Esta semana fue publicado como caso de exito una solución que implementamos en uno de nuestros clientes utilizando Visual Studio Team Foundation Server. Para más información aquí.

Salida en producción “Championes” July 5, 2008

Posted by NicoPaez in evento.
Tags:
1 comment so far

La semana pasada después de unos arduos meses de trabajo, finalmente salimos en producción y como corresponde salimos todos los integrantes del equipo a festejar el hecho.

De izquierda a derecha: Charly, Martín, Leandro, Alejandro, Santiago L, Manuel (infiltrado ocupando el lugar de Martín L) Nicolás y Santiago F.

Great job, well done team!

http://www.haycodigos.com.ar

Firefox 3 June 19, 2008

Posted by dariofederico in Tools.
Tags: , ,
add a comment

El 17 de Julio se lanzo el nuevo Firefox 3, después de sus pruebas y versiones beta, con muchas innovaciones, más rápido, más efectivo y ya supero las 8 millones de descargas en un solo día.

La navegación es más rápida ya que limpia de manera automática la memoria y su gestor proporciona un bajo consumo de recurso cuando se está lo está ejecutando.

Su apariencia nueva es totalmente distinta a sus anteriores versiones. Firefox 3 se adapta a la apariencia que tienes en tu sistema operativo, ya sea Windows Vista, Windows XP, Linux o Mac. La barra de direcciones también fue modificada para poder obtener una búsqueda de páginas visitadas más rápidas.

Al igual que sus versiones anteriores posee la integración de complementos, aunque algunos no pueden ser utilizados y habrá que esperar las nuevas actualizaciones para la nueva versión.

En resumen, Firefox 3 es una nueva forma de navegación con millones de usuarios en el mundo utilizándolo. Esto parece generar un dolor de cabeza a Microsoft ya que hace competencia a su navegador IE.

Con Firefox 3 la Fundación Mozilla aspira a quitarle otro trozo de pastel a Microsoft, a quitarle otro argumento para que la gente deje de usar Windows. El reto es una nueva pelea entre David y Goliat. En este caso, David se compone de 140 empleados y una multitud de programadores voluntarios distribuidos por todo el mundo. Goliat (Microsoft), que estuvo cinco años sin actualizar su navegador, ha reaccionado a cada movimiento de Mozilla y también lo hará en esta ocasión. Si el Firefox 2 acabó con el monopolio del Explorer, la versión 3 intenta arrebatarle la mayoría.

Más información sobre Firefox 3 la encontraras acá: http://www.mozilla-europe.org/es/firefox/features/

Follow

Get every new post delivered to your Inbox.