Mix 10 highlights in Argentina

Yesterday evening Microsoft Argentina organized a small event to share the highlights of Mix 10 and Miguel Saez invited us to show some of the things we’ve been working on for the recently finished MIX10 event in Las Vegas.

The event started with Miguel Saez talking (and showing) the new Bing features and Internet Explorer 9 platform preview. Then, Leandro Olivestro talked about Windows Phone 7 Series.

After a short break we jumped on the stage. Our presentation was 100% code, we didn’t use a slide deck, just VS 2010 and PowerPoint to make some drawings on the fly.  Mati started talking about VS2010, ASP.NET MVC 2 and jQuery; he then introduced me and my demo was around the new Silverlight 4 features. Finally our Mobile specialist, SebaRen showed a game created for Windows Phone using XNA Studio.

After our presentation, Daniel Priego Garcia closed the event showing Expression Blend 4.

I want to thank DiegoM, MarceRo and SebaDu that worked with me in the application I showed during the demo.

image

Comienzo de clases en FIUBA

El pasado lunes 8 de marzo comenzaron las clases en FIUBA. Durante este primer cuatrimestre estoy dictando Algoritmos y Programación 3 (algo3) y Algoritmos y Programación 1 (algo1) en el curso de RositaW.

Personalmente siento que va a ser un cuatrimestre muy movido pues al cabo de tan solo 2 semanas de clases hubo más de 90 mensajes en la lista de Algo3 y mas de 40 en la lista de Algo1. Al mismo tiempo la forma en que están planificada las cursadas de estas materias, requiere una dedicación importante tanto por parte de los alumnos como de los docentes.

Algo1 tiene una carga horaria de 6 horas de clases semanales las cuales estan repartidas en 2 dias, con 90 minutos teoría seguidos de 90 minutos de práctica. Un detalle interesante es que el lenguaje utilizado para el dictado de la materia es Python. Durante la cursada hay 5 parcialitos y 4 trabajos prácticos de realización obligatoria para aprobar la cursada. Una vez aprobada la cursada hay un final con el que se finaliza la materia.

En algo3 la carga horaria de clases también es de 6 horas, pero repartida de otra forma: un día todo teoría y otro dia todo práctica. Durante la cursada hay 2 parciales y 3 trabajos prácticos, los dos primeros son individuales y se hacen en Smalltalk y el tercero es grupal y se hace en Java. Con todo esto se aprueba la cursada y se accede al final.

Continuará….

Después de Agile Open Buenos Aires 2010

El evento se llevó acabo el pasado sábado; hubo unas 40 personas, pero a diferencia del año pasado yo sentí que todo salió mucho mejor, en parte, porque la mayor parte de los asistentes ya habian participado en eventos con formato Open Space. Al mismo tiempo, en esta ocasión la temática era bien concreta: Calidad en desarrollo de software.

El evento comenzó a las 9.30 con la proposicón de sesiones y la siguiente votación de las mismas. Hubo alrededor de 25 propuestas que resultaron en una grilla de 20 sesiones, 5 tracks con 4 bandas horarias (algunas sesiones no recibieron votos mientras que otras fueron agrupadas).

El cierre fue alrededor de las 16.30 y estuve a cargo de Ariel Ber quien fue el facilitador del evento.

Aqui comparto algunas fotos del evento y en próximos posts dedicaré algunas líneas al contenido de las sesiones en las que participé.

Imagen0072Imagen0075 Imagen0069 Imagen0071

Se viene Agile Open Buenos Aires 2010

En evento se llevará a cabo el sábado 13 de marzo en las instalaciones de la UNTref en el Centro Cultural Borges (Viamonte esquina San Martín piso 3).

En esta ocasión el tema convocante es «Calidad en el desarrollo de software».
Los interesados pueden obtener algo más de información (pero no mucha, pues al ser open space no hace falta :-)) en http://www.agiles.org/agile-open-buenos-aires-2010—calidad.

Nos vemos el 13!

Saludos!
Nicolás

Fridays @ Southworks

Every Friday at 9 o’clock we have the «Friday Presentations». Any Southie can propose a presentation, there is no restriction about the topic, so you could be watching someone talking about dynamic languages or sharing his experiences during the last PDC. However, most presentations talk about projects that are currently executing or that we have executed lately. Each presenter has a slot of 15 minutes to talk about the topic he chose. In general we have one presentation per Friday, but in some occasions we have 2 presentations.

Once presentations are finished we have an «Open Discussion» space. We sit in a circle and any Southie can propose a topic for discussion. After introducing all topics, we vote them and the TOP 2 voted topics are discussed. The open discussions topics are generally related to our daily practice, improvement opportunities, update on different things, etc.

Both, the presentations and discussion are recorded and published in our network to allow any Southie to consume them later if they could not make it.

All these effort is coordinated by the communications team lead by Julian Scopinaro.

Personally, I found these spaces very useful; they help to keep us up to date with things that are happening in the company and also allow us to talk about improvement opportunities.

This is part Southworks’ culture.

Below some pictures from the last Friday.

Imagen0065Imagen0066

Imagen0067

Entre windows y linux

Hace un tiempo actualicé mi distribución de Linux (de Ubuntu 9.4 a Ubuntu 9.10). Lamentablemente no fue una experiencia del todo feliz. Si bien la actualización fue totalmente desatendida (una vez aceptada la propuesta de actualzación lanzada por el sistema operativo, automáticamente se realizó la descarga e instalación casi sin intervención adicional), algunas cosas dejaron de funcionar, una de ellas fue el modem 3G. Por otro lado, luego de la actualización mi sistema funciona más lento y al mismo tiempo los cambios en la interface de usuario (aunque mínimos) no me resultan más amistosos. Esto me ha llevado a volver a trabajar con más seguido con Windows.

About SQL Server Users and Logins

I think that many developers that work SQL Server do not have a clear understanding of this topic (I used to be one of them) and because of that is that I am writing this post.

Logins vs. User accounts

To connect to a SQL Server instance you first need a login so the instance can authenticate you (know who you are). But to perform operations on a specific database you will need a user account in that database. The user account is used for database access and permission validation. So you could have a login, but if you don’t have a user account associated to that login, you  won’t be able to access that database.

Logins

To create a login you can use the following code snippet.

— To create a login that uses Windows Authentication:
CREATE LOGIN <name of Windows User> FROM WINDOWS; GO

— To create a login that uses SQL Server Authentication:
CREATE LOGIN <login name> WITH PASSWORD = ‘<the password>’ ; GO

The actions you can perform with a SQL Server instance (like create, backup and restore databases) depend on the server roles associated with your login. Once the login is created you can assign it server roles by using the [sp_addsrvrolemember] stored procedure. Possible server roles are: dbcreator, sysadmin and serveradmin among others.

image

User Accounts

User accounts are defined at database instance level, and every user account must be associated to a login, so to create a user account you must provide login.

— To create a user for the myLogin login for the myDatabase database
use myDatabase
create user myUser for login mylogin with default_schema=dbo

As you can see, when creating a user you don’t need to provide a password, because there is already a password associated with the login.What a user can do with the  database is defined by the user’s permissions. Permissions are grouped into Roles and there are three different kind of roles:

  • Database Fixed roles: are pre-defined roles by the system
  • User-defined roles: are roles created by the user
  • Application roles:  are created to support the security needs of an application. (often database applications
    enforce their own security based on the application logic)

When a user is created it is automatically added to the public (fixed) role. To add a user to a role you can use the [sp_addrolemember] stored procedure.

image

Hope you find this useful.

Vacaciones 2010: NOA

Hace una semana regresamos de nuestras vacaciones y ahora sí puedo dar por comenzado el 2010. El destino elegido fue el noroeste argentino (NOA). En una travesía de 9 días recorrimos diversas poblaciones de las provicias de Salta y Jujuy. Este es el mapita que muestra los puntos que visitamos:

image

Si gustan consultarlo online este es el link: http://maps.google.com.ar/maps/ms?ie=UTF8&msa=0&msid=114358693910473847554.00047f7d55a914fde8bc0&ll=-22.583583,-65.412598&spn=4.898449,9.876709&z=7

Por suerte salío todo muy bien, más allá de algunos retrasos habituales en el aeropuerto.

Algunos puntos para destacar:

  • Comimos las mejores empanadas de carne de mi vida
  • La gente nos pareció muy amable
  • Los paisajes son increibles.
  • Pude contactarme con la naturaleza como nunca antes.

Finalmente, durante el viaje sacamos algunas fotos que pueden llegar a resultar útiles para algunas presentación o bien como fondos de escritorio. Este es el link:http://picasaweb.google.com/nicopaez/ArtLandscapes#

image

Troubleshooting ASP.NET MVC on IIS 7

Some days ago we had to work hard on this topic to make an ASP.NET MVC application run on IIS7. It took us almost 2 hours, and after completing the task I decided it deserves a post.

I will start by listing the common setup steps and then I will share our particular case.

Solving common issues

First of all you need to have IIS installed and ASP.NET registered, this seems obvious but it must be mentioned. If you installed .NET framework after installing IIS then .NET Framework installation takes care of registering ASP.NET in IIS. But if you installed IIS after installing .NET, then you will have to make the registration yourself. To do this open a Command Prompt (running as administrator), go to the .NET framework folder (typically WindowsMicrosoft.NETFrameworkvXXXX) and execute the command aspnet_regiis –i.

image

Once you have IIS with ASP.NET running, you can create the website or virtual directory for your application, point it to your application folder  and if you are lucky your application is now running.

One common issue you can find is that when trying to browse your application you get a blank page, no errors, just a blank page. This usually happens when the IIS HTTP Redirection component is missing. So to fix it, just install this component by browsing Control Panel | Programs | Turn Windows features on or off | Internet Information Services | Word Wide Web Services | Common HTTP features and check HTTP Redirection.

image

Solving our particular case (when you have two different ASP.NET builds installed)

In our case, we had the problem that the machine had installed 2 different builds of ASP.NET v4 (I think these builds corresponded to beta 1 and beta2 versions). After we followed the previous steps, when trying to run the application the app pool try to load the incorrect version (beta 1), it failed and the app pool stopped. We tried  to  re-register ASP.NET, but it didn’t work. In the APP Pool configuration we explicitly set the correct version, but at runtime, it tried to load the incorrect one. How did we solved it:

  • Un-register ALL ASP.NET versions (by running aspnet_regiis –ua).
  • Delete Beta 1 folder located under WindowsMicrosoft.NETFramework.
  • Register again the ASP.NET beta 2 version. (by running aspnet_regiis –i)

That was all, hope this help you.

Por qué Linux no es masivo

Se que este post puede resultar polémico, pero a pesar de eso quiero compartir mi visión.Este es un post que tenia pendiente desde hace bastante tiempo. Lamentablemente me encuentro escribiendo este post desde Windows porque luego de actualizar la distribución de Ubuntu (de 9.04 a 9.10)  el modem 3G dejó de funcionar.

Según veo las cosas yo, a pesar de que Ubuntu ha logrado proveer de una experiencia de usuario muy «amistosa» en comparación con las otras distribuciones de Linux, aún se encuentra bastante distante de la expericiencia de usuario provista por Windows y Mac OS.

Creo que el caso del modem 3G es un claro ejemplo: mientras que en Windows el uso del modem es muy directo (simplemente doble click para instalar el marcador, dos clicks mas para activar el modem y marcar,  y listo, ya estamos manejando),  en Linux es necesario ejecutar una serie de pasos desde una consola, con permisos de superusuario (pasos que pueden llegar a incluir la instalación/configuración de un driver).

En gran medida esta situación puede que se deba a que no todos  los fabricantes de hardware proveen drivers para Linux. Por otro lado la filosofía open source creo que también puede resultar un impedimento, ya que no todo el mundo está dispuesto a «publicar» su código fuente. ¿Como influye esto? Ciertas distribuciones no incluyen en el instalador software que no sea Open source, obligando a que el usuario deba tomar a su cargo la «instalación/configuración» de los drivers  que la distribución no incluye.

Por último, pero no por eso menos importante, está el tema de la consola/terminal. Entiendo que a los programadores de linux les encante trabajar en una terminal, pero para la gran mayoria de los usuario les resulta extraño y/o incómodo .

Tengo algunos otros puntos sobre este tema, pero son muy particulares y creo que no aportan a la discusión, pues lo aquí mencionado es de mucha mayor relevancia.