¡campusMVP en inglés!

Post original en JASoft.org: http://www.jasoft.org/Blog/post/161;campusMVP-en-ingles!.aspx

Como seguramente muchos de los lectores de este blog sabéis, tenemos un estupendo proyecto de formación on-line sobre tecnologías Microsoft llamado campusMVP. A través de él conocidos MVPs y personalidades de este mundillo ofrecen cursos on-line tutelados sobre tecnologías de Microsoft para desarrolladores.

Llevamos trabajando con campusMVP en España y -en menor medida- Latinoamérica, desde el año 2005, es decir, los últimos 7 años.

Además desde 2007 tenemos una editorial técnica complementaria con libros sobre las últimas tecnologías. Además de en España, ya llevamos vendiendo libros en el mercado de EEUU durante casi dos años, y la verdad es que nuestros libros funcionan muy bien allí.

Nuestra metodología a la hora de crear e impartir los cursos así como la orientación al aprendizaje práctico, consiguen que un porcentaje altísimo de los alumnos nos valoren muy bien (el 87% el año pasado nos han puesto un 4 o 5 sobre 5), y que la mayoría tarde o temprano se formen de nuevo con nosotros.

Lo cierto es que hemos tenido mucho éxito con estos proyectos, pero el mercado de habla hispana es pequeño y está muy viciado por factores externos (esto daría para hablar largo y tendido).

Dado que llevamos en el mundo del e-learning toda la vida (más de 10 años), con nuestra propia plataforma avanzada de e-learning, tenemos la gran experiencia de éxito con campusMVP, y un fenomenal equipo, hemos estado trabajando duramente los últimos 12 meses para lanzar campusMVP en inglés, orientado al mercado internacional de desarrolladores.

campusMVPBoostYourCareer

Hace ya más de un año incorporamos al equipo un responsable de marketing y comunidad de nacionalidad estadounidense especialista en ese mercado, hemos “fichado” a nuevos tutores internacionales que poco a poco irán liberando nuevos cursos en el catálogo, y hemos trabajado muy duro durante los últimos meses para lanzar los primeros cursos (dos de ellos sólo los tenemos en inglés y no en castellano), preparar la nueva página web, tener buena atención al cliente en inglés, y crear un estupendo blog lleno de contenidos en inglés que cada semana incluye nuevos e interesantes artículos. También habrás notado que nuestras páginas de Facebook (con casi 1.500 fans) y Twitter (con casi 1.300) son en inglés exclusivamente desde hace unos meses.

Todo esto lo hemos lanzado a finales de Enero, pero hasta ahora no había tenido tiempo de darle cancha en mi blog y contarlo públicamente 😉

¿Qué nos depara el futuro con este proyecto? ¡Ojalá lo supiéramos!. El mercado en inglés es muy grande y muy competitivo, pero el mundo es de los valientes 🙂 así que vamos a poner todo de nuestra parte para conseguirlo. Por lo menos hemos sentado unas buenas bases y vamos a trabajar aún más duro para conseguir que campusMVP.net sea un éxito.

Si quieres y puedes ayúdanos a difundir el proyecto: enlázanos desde tu blog, síguenos en Facebook y Twitter, tuitea los artículos interesantes del blog… y por supuesto coméntalo en tu empresa por si están interesados en comprar algún curso en castellano en inglés. ¡Muchas gracias!

Alguna gente ha hecho ya los cursos y ya está hablando de nosotros en su blog, y la verdad es que ¡nos ponen por las nubes!:

· Sebastian Alves, Vous certifiez avec campusMVP.NET (en francés, traducido al español)

· Johnny Grabber, 70-515 Zertifizierung vorbereiten mit CampusMVP von Krasis (en alemán, traducido)

Nos han llegado las primeras evaluaciones de alumnos y no pueden ser mejores, así que creemos que vamos por el buen camino…

¡Deséanos suerte! 🙂

Propagación y herencia de permisos: la clase FileSystemAccessRule

Post original en JASoft.org: http://www.jasoft.org/Blog/post/Propagacion-y-herencia-de-permisos-la-clase-FileSystemAccessRule.aspx

SeguridadCarpetasLa información que ofrece en ocasiones MSDN sobre la plataforma .NET se puede decir, eufemísticamente, que «no es todo lo buena que debiera ser». Un buen ejemplo de ello es la documentación de la clase FileSystemAccessRule y más en concreto lo que se refiere a los indicadores sobre propagación y herencia de permisos en el acceso al sistema de archivos.

Consideremos este ejemplo. Necesitas controlar desde tu aplicación el acceso a un carpeta llamada «docs» de forma que te asegures de que el usuario «DOMINIOUsuario» tendrá acceso de lectura a la carpeta y todas sus subcarpetas (y las hijas de éstas), pero sin embargo no tendrá acceso a ninguno de los archivos contenidos en éstas. Dejemos de lado la utilidad exacta de esto. Lo que quiero es mostrar lo retorcidas que han puesto las opciones correspondientes en la plataforma .NET :-S

El código en C# que necesitaríamos incluir es este:

   1: DirectorySecurity dirSec = Directory.GetAccessControl(@"c:docs");

   2:  

   3: FileSystemAccessRule fsaRule = 

   4:     new FileSystemAccessRule(new NTAccount(@"DOMINIOUsuario"), 

   5:                     FileSystemRights.Read, 

   6:                     InheritanceFlags.ContainerInherit, 

   7:                     PropagationFlags.None, 

   8:                     AccessControlType.Allow);

   9:  

  10: dirSec.AddAccessRules(fsaRule);

  11: Directory.SetAccessControl(@"c:docs", dirSec);

Lo interesante aquí es la segunda línea en la que se define la regla de acceso al recurso en disco, y en concreto lo que se refiere a los flags que controlan la herencia de permisos (InheritanceFlags) y la propagación de éstos (PropagationFlags).

Los flags de herencia indican a qué objetos queremos hacer que se hereden los permisos de la regla de acceso. Tienen el siguiente significado:

  • None: No quieres que se hereden a ningún objeto. Aquí se acaba, pues los ajustes de propagación no hacen nada si no hay herencia.
  • ContainerInherit: Quieres que se hereden pero sólo a los objetos contenedores de otros objetos (por ejemplo carpetas o claves de registro (si estuvieras trabajando con el registro), pero no archivos o valores de registro).
  • ObjectInherit: Quieres que se hereden pero sólo a los objetos que no sean contenedores de otros objetos, por ejemplo archivos o valores de registro, pero no carpetas o claves de registro).

Así, si por ejemplo estamos controlando acceso al sistema de archivos y le ponemos como valor None, no se heredarán los permisos. Pero si le ponemos ContainerInherit se heredarán los permisos a las carpetas hijas, pero no a los archivos. Si le pones ObjectInherit se heredarán a archivos pero no a carpetas. Y si  le ponemos ContainerInherit | ObjectInherit (es decir, hacemos un OR de ambos flags) entonces se heredarán tanto para carpetas como para archivos. Así que ojo ya que es necesario combinar ambos para poder heredar tanto a carpetas como a archivos.

Hasta aquí la cosa es enrevesada pero fácil de entender. Ahora viene lo complicado, no por que lo sea realmente sino porque lo han hecho (en mi humilde opinión) fatal y está muy mal documentado.

Los flags de propagación indican cómo queremos que se hereden los permisos. Con los siguientes valores (que como digo no son nada intuitivos sino más bien lo contrario) controlamos este aspecto:

  • None: Si usamos este valor indicaremos que queremos que se propaguen las listas de control de acceso (ACLs) a todos los objetos indicados con el flag anterior, es decir, a las carpetas, archivos o ambos según hayas indicado. La verdad es que en mi opinión debería haberse llamado «All» en lugar de «None» sería más adecuado, y además es  un poco enrevesado el hecho de que depende del flag anterior 🙁
  • InheritOnly: Este flag indica que la ACL se debe heredar en los objetos hijo indicado (carpetas, archivos o ambos), pero no en el objeto primario al que le estás aplicando los permisos. Es decir, si tienes una carpeta se aplicaría a todas las subcarpetas y/o archivos (según lo que hayas indicado), pero no a la propia carpeta raíz sobre la que lo estás aplicando.
  • NoPropagateInherit: Este (es de alucinar) indica que se debe aplicar a los hijos apropiados según lo que hayas indicado anteriormente, pero no a los hijos de éstos. Es decir, se aplica sólo a los hijos de primer nivel de los contenedores/carpetas.

Por supuesto podemos combinar las dos últimas entre sí al igual que hicimos en el caso anterior.

La verdad es que es de lo más enrevesado, pero una vez que lo descifras es fácil de seguir.

Así, en el ejemplo de arriba, teníamos el siguiente código:

   1: FileSystemAccessRule fsaRule = new FileSystemAccessRule(

   2:                             new NTAccount(@"DOMINIOUsuario"), 

   3:                             FileSystemRights.Read, 

   4:                             InheritanceFlags.ContainerInherit, 

   5:                             PropagationFlags.None,

   6:                             AccessControlType.Allow);

Lo que estamos indicando con los flags de herencia y propagación es lo siguiente:

  • InheritanceFlags.ContainerInherit: Le estamos indicando que sólo hereden los objetos hijos que sean contenedores, es decir las carpetas. Como no le combinamos con una operación OR el otro valor del flag y por lo tanto no se heredan los permisos en los objetos no contenedores, o sea, en los archivos.
  • PropagationFlags.None: le indicamos que la herencia se propague a todos los elementos hijos antes indicados, es decir a todas las carpetas hijas de la actual, pero no a los archivos. Como no indicamos el flag InheritOnly, se incluye también la carpeta actual (o sea, c:docs).

Así que aunque esté poco claro en la documentación con mi explicación anterior todo cobra sentido, pero está muy liado.

Si por ejemplo le hubiésemos puesto esto:

   1: FileSystemAccessRule fsaRule = new FileSystemAccessRule(

   2:                                 new NTAccount(@"DOMINIOUsuario"), FileSystemRights.Read, 

   3:                                 InheritanceFlags.ContainerInherit, 

   4:                                 PropagationFlags.InheritOnly | PropagationFlags.NoPropagateInherit,

   5:                                 AccessControlType.Allow);

Lo que estaríamos consiguiendo es que los permisos se hereden sólo para las carpetas hijas de primer nivel (NoPropagateInherit) y además que no se apliquen a la carpeta raíz (InheritOnly).

Es decir, que es enrevesado pero flexible, y totalmente anti-intuitivo, por desgracia.

Espero que mi explicación ayude a otra gente a aclararse con esto 🙂

¿Te ha gustado este post? – Aprende .NET con los cursos on-line tutelados de campusMVP:
   ·
Preparación del examen 70-515: Desarrollo Web con .NET 4.0 (Tutelado por mi)
   · Desarrollo Web con ASP.NET 4.0 Web Forms (Tutelado por mi)
   · ASP.NET 4.0 Web Forms desde cero (Tutelado por mi)
   · Desarrollo Web con ASP.NET MVC 3 
   · Silverlight 4.0 – Aplicaciones Ricas para Internet (RIA)
   · jQuery paso a paso para programadores ASP.NET
   · Visual Studio 2010 desde cero

Trucos de uso y productividad para Windows 8

Post original en JASoft.org: http://www.jasoft.org/Blog/post/Trucos-de-uso-y-productividad-para-Windows-8.aspx

Llevo unos cuantos días usando la nueva versión beta denominada Consumer Preview de Windows 8. Ya antes había usado la Developer Preview de hace unos meses, pero desde una máquina virtual por lo que no le daba un uso real. ahora la he montado en mi portátil, actualizando desde Windows 7, y la uso en real varias horas al día, por lo que puedo hablar con mucho más conocimiento de causa.

Para empezar he de confesar públicamente que la interfaz Metro y la desaparición del botón de inicio me irritan y es algo que no me gusta nada. para un «power user» como yo es una pérdida de productividad en un entorno no táctil, si bien probablemente para los usuarios más comunes pueda ser mejor. Microsoft ha hecho sus estudios concienzudos (muy interesante, por cierto), y seguro que son gente muy lista. Puede que me acabe acostumbrando con los meses y cambie de opinión (sobre todo si uso un tablet con Windows 8), pero hoy por hoy para mi es una pérdida de productividad al trabajar. Y no soy el único. Un gran número de usuarios avanzados que conozco piensa igual.

Se puede argüir que lo básico funciona, es decir, que pulsas el botón de Windows, sale el nuevo menú, y puedes teclear para ir directamente al programa que quieras (igual que antes) o pulsar directamente sobre el icono que tengas anclado en la pantalla. Además los Live Tiles te dan información contextual y actualizada sobre diversas cosas (si bien los de Windows Phone 7 funcionan mucho mejor) pero:

  1. El hecho de cambiar de pantalla por completo despista bastante y no te deja ver al mismo tiempo cosas que tuvieras abiertas (hay veces que necesitas ver algo en un bloc de notas, por ejemplo, para buscar luego un programa apropiado en el menú de inicio)
  2. El scroll horizontal con el ratón es mucho más lento de hacer que el vertical en el menú si quieres repasar los accesos directos, aunque sólo sea por la amplitud: ahora es toda la pantalla horizontal (y apaisada probablemente).
  3. Salen menos opciones en el menú contextual de esos accesos directos. Al no poder configurar las propiedades de esos accesos directos, por ejemplo no serás capaz de indicar que una determinada aplicación se ejecute siempre como administrador, cosa que es muy útil para algunos casos (por ejemplo, Visual Studio).
  4. Desaparecen algunas utilidades del menú anterior, como ejecutar (aunque un power user usará Win+R) y sobre todo los documentos recientes. Yo los utilizo mucho y no sólo para reabrir archivos sino para ir a las carpetas que los contienen y buscar archivos relacionados. Esto sí que me parece grave.

Espero que en la versión final al menos dejen elegir al usuario qué quieren usar, si el nuevo menú o el tradicional y que además detecten automáticamente si lo estás usando en modo tablet (porque tienes una pantalla multi-touch) o en modo de escritorio tradicional.

Windows8TabletJMAlarcon
Clic en la imagen para agrandar

En este post voy a comentar algunas cosas, grandes y pequeñas, que suponen o pueden suponer un problema, así como algún truco, para tratar de facilitar el uso a los usuarios que lleguen por primera vez a Windows 8.

¿Cuando caduca esto?

Si instalas la Consumer Preview de Windows 8 te funcionará hasta el 15 de enero del año que viene (2013). No se puede desinstalar aunque hayas actualizado desde Windows 7, y tampoco se podrá actualizar a la versión definitiva cuando salga. Así que aunque te funcione bien, como máximo ese día tendrás que instalar un nuevo sistema para poder seguir usando el ordenador. Si no lo haces se reiniciará él solito cada hora de uso, por lo que en la práctica te dejará sin muchas ganas de utilizarlo.

Avisado quedas 😉

Darle nombre a los grupos de iconos de Metro

Si tienes unos cuantos elementos agrupados por categorías en tu pantalla de inicio seguro que te viene bien darles nombres para tenerlos mejor identificados.

Aunque esto no es obvio como hacerlo puedes darles un nombre usando la siguiente técnica:

1.- Pulsa la tecla de Windows para ir a Inicio

2.-Mueve el ratón a la esquina inferior derecha. Saldrá el icono de una lupa. Púlsalo.

3.- En la versión reducida de la pantalla de inicio pulsa sobre cualquier grupo con el botón derecho del ratón. En la parte de abajo te aparecerá la posibilidad de renombrar el grupo:

NombrarGrupo

De esta forma quedarán mucho mejor identificados:

Inicio_Grupos
Clic en la imagen para agrandar

Desde esta misma pantalla reducida podrás mover los grupos para cambiar su ordenación. Muy útil.

Mi adaptador de pantalla USB no funciona

Este problema me lo encontré yo, ya que utilizo una docking station de HP que, a través de USB, me permite usar periféricos, entre ellos un monitor. Para poder sacar partido al monitor por USB debes instalar un software llamado DisplayLink que se encarga de que todo funcione como si se tratase de una tarjeta gráfica normal introducida en el ordenador.

El problema es que la última versión de DisplayLink no funciona con Windows 8. Para mi eso es indispensable porque con la pantalla de 13 pulgadas de mi ultra-book me niego a trabajar muchas horas o acabaría con la vista. Así que urge una solución.

DisplayLink no parece ofrecer solución oficial al asunto, pero a base de buscar (y arriesgarme a probar), he encontrado este driver experimental creado por la propia compañía y disponible solamente en un post de sus foros que la verdad es que me ha funcionado muy bien.

Si usas este tipo de hardware debes descargártelo.

Teclas rápidas

Vale, las teclas rápidas más habituales de toda la vida siguen funcionando, pero ahora con la nueva interfaz es más importante que nunca saberse las nuevas. Por ejemplo, sacar el «charms bar» del lateral derecho (ver siguiente figura) es muy fácil con una pantalla táctil, pero con el ratón es un verdadero peñazo porque hay que acercarse con él a la esquina superior derecha y dejarlo un segundo ahí.

MenuCharms
Clic en la imagen para agrandar

Pues bien usando la combinación Win+C conseguimos el mismo resultado.

Otras combinaciones interesantes son:

  • Win + C: como he dicho, la barra de «charms» lateral.
  • Win + I: se abre el menú lateral de ajustes/configuración, con acceso rápido a la configuración de red, teclado, notificaciones, apagar, etc…
  • Win + F: búsqueda de archivos
  • Win + Q: búsqueda de aplicaciones.
  • Win+ W: búsqueda en los ajustes del sistema.
  • Win + H: menú lateral de compartir
  • Win + Barra espaciadora: cambiar el método de entrada de datos (el idioma del teclado)
  • Win + V: recorrer las notificaciones que haya en pantalla
  • Win + Página arriba: mueve el menú de inicio «Metro» a la pantalla de la izquierda si tienes más de una pantalla.
  • Win + Página abajo: mueve el menú de inicio «Metro» a la pantalla de la derecha si tienes más de una pantalla.

Apréndetelas: te resultarán muy útiles.

¿Cómo apago este chisme?

La primera vez que te enfrentas a windows 8 y quieres cerrar la sesión, suspender, hibernar o cerrar el equipo alucinas: ¿dónde diablos está el botón de apagado de toda la vida?

Una vez más en este caso es menos productiva (o directa al menos) la nueva interfaz que la antigua.

Cerrar la sesión es fácil: basta ir al menú de inicio y pulsar sobre tu nombre de usuario para que te de la opción:

CerrarSesion

 

Una vez cerrada puedes apagar el equipo.

Obviamente esto no es lo más productivo. para encontrar el botón de apagado debemos abrir el menú la barra lateral de configuración, sacando la barra «charm» y pulsando configuración. O más rápidamente con la tecla Win+I:

Apagar

Al pulsar este botón podremos efectuar las acciones habituales de apagado, reinicio, etc… No hay acción por defecto para el botón por o que, como mínimo, nos va a costar una pulsación más que antes.

Al entrar en las aplicaciones Metro de Live, me dice que debo cambiar a una cuenta de Microsoft

Esta es una fastidiada…

Cuando actualizas desde Windows 7 a Windows 8, si relacionas tu cuenta de Live ID con tu cuenta de Windows, para arrancar el sistema, y esto ya lo habías hecho en Windows 7 (algo muy común si ya usabas cualquier servicio de Live, como SkyDrive), entonces al arrancar cualquier aplicación Metro de servicios Live como SkyDrive o el XBox Companion obtienes un mensaje que te dice:

«To get the most from this app, switch from your local account to a Microsoft Account on the Users page in PC settings»

SkyDriveFalla
Clic en la imagen para agrandar

Sin embargo vas a los ajustes de tu cuenta y ves que no es una cuenta local y no se te da esta opción que te indica:

CambiarCuentaLocal
Clic en la imagen para agrandar

La única opción que da es la de cambiar a una cuenta local, porque de hecho ya estás usando una cuenta de Microsoft.

Por más que reinicias no hay forma de solucionarlo. Es un bug bastante importante.

La forma de arreglarlo es indicarle al sistema que la cuenta local y la de Live están ya conectadas.

Para ello pulsa Win+R y ejecuta el editor del registro (regedit.exe). Busca el nodo:

HKEY_USERSS-1-5-18SoftwareMicrosoftIdentityCRLStoredIdentities

Dentro de éste localiza todos los subnodos que haya cuyo nombre comience por la letra «S-«.

En el valor «Keywords» si pone «Associated» solamente, hazle doble clic encima y al abrirlo añádele al final «;Connected» para indicar que está también conectado y no sólo asociado:

KeyWords
Clic en la imagen para agrandar

Mata las aplicaciones que estaban fallando. Ábrela de nuevo y, Voilà! ya funcionarán todas sin problema:

Skydrive
Clic en la imagen para agrandar

Mi clave es muy larga y no me deja acceder

Si sigues una buena política de seguridad y usas claves muy largas es posible que te encuentres con este problema.

Esta verisón de Windows tienen un bug en virtud del cual si tu clave es más larga de 16 caracteres, te deja introducir igual todos los que tengas, pero sólo considera los primeros 16.

Así, si tu clave de Windows Live es muy larga y la introduces en Windows 8 para acceder pero te da todo el tiempo un error puedes introducir simplemente los primeros 16 caracteres de la clave. Te validará igual localmente y te dejará entrar.

Es un bug bastante grave en mi opinión, pero Microsoft ya está sobre aviso y en la versión final lo corregirá.

¿Cómo inicio Windows 8 en modo seguro?

Si tienes algún problema arrancando el sistema es muy útil poder arrancar de nuevo en modo seguro (es decir, sin cargar drivers y servicios innecesarios) con o sin soporte de red. En las versiones anteriores de Windows bastaba con pulsar la tecla F8 o MAYÚSCULAS+F8 para obtener un menú de arranque seguro en el que elegir estas opciones. Ahora esto ya no funciona.

La única forma de conseguirlo es arrancar normalmente y utilizar el  programa MSConfig.exe desde el diálogo de ejecutar (Win+R):

MSConfig

En esta pantalla marca la opción de arranque seguro («Safe boot») y marca:

  • Minimal para el modo seguro normal
  • Alternate Shell para arrancar en modo seguro y solamente línea de comandos
  • Network para modo seguro con soporte de red.

(la tercera opción no tiene sentido en Windows 8 de escritorio, sólo en servidores).

En la columna de la derecha tienes algunas opciones más, como no mostrar la interfaz gráfica normal de arranque o mostrar con detalle la información de arranque.

Desde mi punto de vista este es un olvido importante ya que en alguna ocasión puede que no seas capaz de arrancar en absoluto el sistema por lo que no podrías llegar a este programa. Espero que en la versión definitiva le añadan el soporte para F8 como siempre.

Cambiar la temperatura a grados centígrados

Vale, para terminar uno sencillito pero molesto: por defecto la aplicación de información meteorológica detecta tu ubicación y te muestra el tiempo en tu localidad. Lo que ocurre es que por defecto lo hace en grados Fahrenheit, que es lo que usan los anglosajones.

Para cambiar este ajuste pulsa Win+I para sacar la barra lateral de ajustes y en «Settings» encontrarás esta configuración:

Celsius_Tiempo

Puedes añadir nuevas ubicaciones pulsando con el botón derecho sobre la pantalla del tiempo. Saldrá un menú contextual con la posibilidad de gestionar ubicaciones.

En general esta aplicación tiene que trabajar un poco más la usabilidad, pues no hay por ejemplo una forma rápida de cambiar entre ubicaciones (si es que tienes varias) para ver la previsión y otros pequeños detalles. En general me resultan mucho más «usables» las aplicaciones para Windows Phone 7 que las de Metro. si al final van a compartir base del sistema operativo espero que lo mejoren bastante y saquen partido a lo aprendido con WP7.

¡Espero que todos estos trucos te resulten útiles!