lunes, 20 de julio de 2015

Qué es la eSIM, la tarjeta llamada a ser la SIM de tu futuro smartphone



Las tarjetas SIM tal y como las conocemos podrían tener las horas contadas. Hace unos días el diario Financial Times y otros medios de comunicación importantes desvelaron que Apple, Samsung y la GSMA defienden la puesta a punto de una tarjeta SIM electrónica que nos permita prescindir de la SIM física que requieren actualmente todos los teléfonos móviles.
El respaldo de estas tres entidades es importante, pero, al parecer, no son las únicas que apuestan por la eSIM. Algunas de las operadoras más relevantes del planeta, como AT&T, Verizon, China Unicom, Deutsche Telekom, Etisalat, Telefónica, Vodafone y Orange, entre otras, también creen en la eSIM. En un principio la posibilidad de prescindir de la SIM tradicional puede simplificar y agilizar el cambio de operadora, pero también plantea muchas dudas que aún están en el aire y que los usuarios tenemos que conocer para valorar si realmente la eSIM es tan interesante como la pintan. Veamos qué sabemos hasta ahora.

¿Qué es la eSIM?

La eSIM cuando esté lista no será otra cosa que una tarjeta SIM electrónica que no requerirá la inserción de una SIM física en nuestros teléfonos móviles, tablets, ordenadores portátiles o en cualquier otro dispositivo móvil con conectividad a las redes de telefonía. Por esta razón, estos dispositivos, lógicamente, tampoco necesitarán tener una ranura para tarjetas SIM, por lo que los fabricantes de hardware dispondrán de más espacio en el interior de sus soluciones, aunque en principio, y dado el reducido tamaño de las micro-SIM y las nano-SIM, el espacio liberado no parece que vaya a ser exagerado (la propia eSIM ocupará algo de espacio).

La ventaja más evidente que la eSIM puede representar para los usuarios es, como he mencionado al principio del post, la posibilidad de simplificar y agilizar bastante la burocracia a la hora de cambiar de operadora. Incluso podría simplificar el cambio del plan de datosdentro de una misma operadora. Sin embargo, para que esta SIM embebida llegue a buen puerto debe superar con éxito un reto importante: sus especificaciones deben ser aceptadas por las operadoras, los fabricantes de smartphones y las empresas que actualmente están fabricando las tarjetas SIM físicas
.
El grupo de trabajo que se está encargando de definir estas especificaciones existe desde hace tiempo, y no está constituido únicamente por Apple, Samsung y las operadoras que he mencionado antes, sino también por otros fabricantes de teléfonos móviles, como Huawei, Sony y LG, e incluso por varios fabricantes de tarjetas SIM, como STMicroelectronics, Valid y Oberthur Technologies, entre otros. Es esencial que lleguen a un acuerdo porque la eSIM aspira a ser un estándar que garantice la interoperabilidad con independencia de la operadora, del fabricante del móvil y del propietario de la propia SIM electrónica. Y también pretende ser el formato universalmente utilizado en el futuro en los dispositivos móviles con conexión a las redes de telefonía.
Lo interesante es que el pasado 5 de marzo, durante la celebración del Mobile World Congress, este grupo de trabajo dio a conocer el primer borrador del perfil interoperable que utilizará la eSIM. Pero esto no es todo. También anunciaron que iban a comenzar las pruebas de esta primera especificación en escenarios de uso reales para verificar que la interoperabilidad que pretenden ofrecer es realmente viable.

Posibles desventajas de la SIM electrónica

Como hemos visto, las aportaciones de la eSIM están bastante claras, pero hay varios apartados que, por el momento, despiertan muchas dudas. Quizás el más preocupante para los usuarios tiene que ver con los trámites que será necesario realizar para transferir nuestra eSIM de un smartphone a otro si el primero se nos estropea por la razón que sea (un golpe fuerte, se nos moja, etc.). Actualmente solo tenemos que extraer nuestra SIM de un móvil e introducirla en otro para no quedarnos sin servicio, pero no está claro que con la eSIM este proceso vaya a ser tan sencillo y rápido.

martes, 30 de junio de 2015

Membership Provider PostgresSQL‬

Usaremos NauckIT.PostgreSQLProvider

Primero necesitamos descargar  NuGet Package para que se integre a nuestra solución. Para esto lo primero que debemos hacer es correr el siguiente comando en la consola de administración de paquetes.
en el visual estudio. Herramientas/consola de administración de paquetes.

Package Manager Console in menu

si no tienen esa opción tendrán que intalarlo.

A mi se me intalo cuando medescargue la extensión NuGet Package.

En el visual studio se van a Herramientas/Administrador de  Extenciones y se descargan de la galeria en linea. Nuget Package Manager 


Una ves que ya tengan la consola de  administrador de paquetes. sino les aparecera así tambien como en mi caso.

ahora si ya en la consola escribimos esto

PM> Install-Package NauckIT.PostgreSQLProvider

y en nustra solucion aparecerá una carpeta llamada Bin


ojo si nos les funciona:

(si ya siguieron todos los pasos y cuando quieren agregar roles o usuarios y les sale un error como este: No se puede cargar el archivo o ensamblado 'Npgsql, Version=2.0.12.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7' ni una de sus dependencias. La definición del manifiesto del ensamblado no coincide con la referencia al ensamblado. (Excepción de HRESULT: 0x80131040)

esto se debe por la versión del Npgsql se van a la siguiente pagina
y buscan la versión. por ejemplo a mi me dio un error y le ejecute el siguiente codigo en la consola

PM> Install-Package Npgsql -Version 2.0.12.1
 o prueban la versión hasta que les funcione )


abrimos el cmd en windows y ejecutamos el siguiente comando.

@echo off
cls
.paket\paket.bootstrapper.exe
if errorlevel 1 (
exit /b %errorlevel%
)
.paket\paket.exe restore
if errorlevel 1 (
exit /b %errorlevel%
)
IF NOT EXIST build.fsx (
.paket\paket.exe update
packages\FAKE\tools\FAKE.exe init.fsx
)
packages\FAKE\tools\FAKE.exe build.fsx %*

El script para la base de datos de PostgresSQL nos genera automaticamente.

para encontrarla ponemos en buscar en nuestro pc: DatabaseSchema.sql para que nos encuentre.

lo ejecutamos en Postgres y ya tendriamos la Base de Datos Membership en Postgres

si no encuentran les dejo es esquema de la base de datos Membership en Postgres.




-- PostgreSQL 8 Membership Provider Schema

CREATE TABLE "Users" (
"pId" character(36) NOT NULL,
"Username" character varying(255) NOT NULL,
"ApplicationName" character varying(255) NOT NULL,
"Email" character varying(128) NULL,
"Comment" character varying(128) NULL,
"Password" character varying(255) NOT NULL,
"PasswordQuestion" character varying(255) NULL,
"PasswordAnswer" character varying(255) NULL,
"IsApproved" boolean NULL, 
"LastActivityDate" timestamptz NULL,
"LastLoginDate" timestamptz NULL,
"LastPasswordChangedDate" timestamptz NULL,
"CreationDate" timestamptz NULL, 
"IsOnLine" boolean NULL,
"IsLockedOut" boolean NULL,
"LastLockedOutDate" timestamptz NULL,
"FailedPasswordAttemptCount" integer NULL,
"FailedPasswordAttemptWindowStart" timestamptz NULL,
"FailedPasswordAnswerAttemptCount" integer NULL,
"FailedPasswordAnswerAttemptWindowStart" timestamptz NULL,
CONSTRAINT users_pkey PRIMARY KEY ("pId"),
CONSTRAINT users_username_application_unique UNIQUE ("Username", "ApplicationName")
);

CREATE INDEX users_email_index ON "Users" ("Email");
CREATE INDEX users_islockedout_index ON "Users" ("IsLockedOut");

-- PostgreSQL 8 Role Provider Schema

CREATE TABLE "Roles" (
"Rolename" character varying(255) NOT NULL,
"ApplicationName" character varying(255) NOT NULL,
CONSTRAINT roles_pkey PRIMARY KEY ("Rolename", "ApplicationName")
);

CREATE TABLE "UsersInRoles" (
"Username" character varying(255) NOT NULL,
"Rolename" character varying(255) NOT NULL,
"ApplicationName" character varying(255) NOT NULL,
CONSTRAINT usersinroles_pkey PRIMARY KEY ("Username", "Rolename", "ApplicationName"),
CONSTRAINT usersinroles_username_fkey FOREIGN KEY ("Username", "ApplicationName") REFERENCES "Users" ("Username", "ApplicationName") ON DELETE CASCADE,
CONSTRAINT usersinroles_rolename_fkey FOREIGN KEY ("Rolename", "ApplicationName") REFERENCES "Roles" ("Rolename", "ApplicationName") ON DELETE CASCADE
);

-- PostgreSQL 8 Profile Provider Schema

CREATE TABLE "Profiles" (
"pId" character(36) NOT NULL,
"Username" character varying(255) NOT NULL,
"ApplicationName" character varying(255) NOT NULL,
"IsAnonymous" boolean NULL,
"LastActivityDate" timestamptz NULL,
"LastUpdatedDate" timestamptz NULL,
CONSTRAINT profiles_pkey PRIMARY KEY ("pId"),
CONSTRAINT profiles_username_application_unique UNIQUE ("Username", "ApplicationName"),
CONSTRAINT profiles_username_fkey FOREIGN KEY ("Username", "ApplicationName") REFERENCES "Users" ("Username", "ApplicationName") ON DELETE CASCADE
);

CREATE INDEX profiles_isanonymous_index ON "Profiles" ("IsAnonymous");

CREATE TABLE "ProfileData" (
"pId" character(36) NOT NULL,
"Profile" character(36) NOT NULL,
"Name" character varying(255) NOT NULL,
"ValueString" text NULL,
"ValueBinary" bytea NULL,
CONSTRAINT profiledata_pkey PRIMARY KEY ("pId"),
CONSTRAINT profiledata_profile_name_unique UNIQUE ("Profile", "Name"),
CONSTRAINT profiledata_profile_fkey FOREIGN KEY ("Profile") REFERENCES "Profiles" ("pId") ON DELETE CASCADE
);

-- PostgreSQL 8 Session-Store Provider Schema

CREATE TABLE "Sessions" (
"SessionId" character varying(80) NOT NULL,
"ApplicationName" character varying(255) NOT NULL,
"Created" timestamptz NOT NULL,
"Expires" timestamptz NOT NULL,
"Timeout" integer NOT NULL,
"Locked" boolean NOT NULL,
"LockId" integer NOT NULL,
"LockDate" timestamptz NOT NULL,
"Data" text NULL,
"Flags" integer NOT NULL,
CONSTRAINT sessions_pkey PRIMARY KEY ("SessionId", "ApplicationName")
);



los archivos de configuracion del web.config son:


<?xml version="1.0" encoding="utf-8"?>
<!--
  Para obtener más información sobre cómo configurar la aplicación de ASP.NET, visite
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->





<configuration>

  <connectionStrings>
    <clear />
    <add name="AspSQLProvider" connectionString="Server=127.0.0.1;Port=5432;Database=MemberShipASPNET;User Id=postgres;Password=jaime;Encoding=UNICODE;Sslmode=Prefer;Pooling=true;" />
  </connectionStrings>
  
<system.web>

    <authentication mode="Forms">
      <forms name=".AspNetAuth" protection="All" defaultUrl="~/Default.aspx" loginUrl="~/Login.aspx" timeout="30" path="/" requireSSL="false" slidingExpiration="true" enableCrossAppRedirects="false" />
    </authentication>

    <machineKey validationKey="518A9D0E650ACE4CB22A35DA4563315098A96D0BB8E357531C7065D032099214A11D1CA074B6D66FF0836B35CEAAD0E7EEEFAED772754832E0A5F94EF8522222" decryptionKey="DB5660C109E9EC70F044BA1FED99DE0C5922321C5125E84C23A1B5CA0E426909" validation="SHA1" decryption="AES" />

    <membership defaultProvider="PgMembershipProvider">
      <providers>
        <clear />
        <add name="PgMembershipProvider" type="NauckIT.PostgreSQLProvider.PgMembershipProvider" connectionStringName="AspSQLProvider" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" passwordFormat="Hashed" applicationName="WebSite1" />
      </providers>
    </membership>

    <roleManager enabled="true" defaultProvider="PgRoleProvider" cacheRolesInCookie="true" cookieName=".AspNetRoles" cookiePath="/" cookieProtection="All" cookieRequireSSL="false" cookieSlidingExpiration="true" createPersistentCookie="false" cookieTimeout="30" maxCachedResults="25">
      <providers>
        <clear />
        <add name="PgRoleProvider" type="NauckIT.PostgreSQLProvider.PgRoleProvider" connectionStringName="AspSQLProvider" applicationName="Maquetado" />
      </providers>
    </roleManager>

    <profile enabled="true" defaultProvider="PgProfileProvider">
      <providers>
        <clear />
        <add name="PgProfileProvider" type="NauckIT.PostgreSQLProvider.PgProfileProvider" connectionStringName="AspSQLProvider" applicationName="Maquetado" />
      </providers>
      <properties>
        <add name="FirstName" />
        <add name="LastName" />
      </properties>
    </profile>

    <!--<sessionState   mode="Custom"   customProvider="PgSessionStateStoreProvider">
      <providers>
        <clear/>
        <add name="PgSessionStateStoreProvider" type="NauckIT.PostgreSQLProvider.PgSessionStateStoreProvider" enableExpiredSessionAutoDeletion="true" expiredSessionAutoDeletionInterval="60000" enableSessionExpireCallback="false" connectionStringName="AspSQLProvider" applicationName="Maquetado" />
      </providers>
    </sessionState>-->
    
<compilation debug="true" targetFramework="4.0" />
    <pages styleSheetTheme="Temas"></pages>
</system.web>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Npgsql" publicKeyToken="5d8b90d52f46fda7" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2.0.11.0" newVersion="2.0.11.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>











lunes, 29 de junio de 2015

Nueva imagen de una roca en forma de pirámide desata teorías de posibles civilizaciones en Marte



Una nueva imagen publicada por la NASA en la que se puede ver una roca que aparentemente tiene forma de pirámide ha puesto a volar las teorías de vida extraterrestre y civilizaciones antiguas.
La foto fue tomada por el Curiosity el 7 de mayo y se publicó en la página de la NASA.
En la esquina superior izquierda se puede observar una roca que tiene forma piramidal. El hallazgo se hizo popular en sitios web especializados en teorías de vida alienígena que afirman que podría tratarse de una estructura construida hace millones de años por civilizaciones que ya desaparecieron.
Según el canal de YouTube Paranormal Crucible "debido a su diseño casi perfecto, se puede afirmar que esta formación se trata de un diseño hecho por vida inteligente". El video además afirma que la pirámide puede tener el tamaño de un carro o incluso más grande "pues podría estar enterrada".
De igual forma, los medios y los usuarios de las redes sociales compartieron la foto ampliada en la que se señala la supuesta pirámide.
fuente: cnn en español


Videotutorial Maquetación y Diseño Web en ASP.NET (Usando MasterPages Anidadas y Temas)




Es un excelente video para aprender hacer maquetados. Lo seguí paso a paso y les comparto el código. Está hecho en visual estudio 2010. en Asp.Net c#
El codigo se los dejo en este link

https://drive.google.com/file/d/0B9MWTDCOs4O_RnB5bElhMHd6Tmc/view?sp=sharing



Combinaciones de teclas de acceso rápido para Windows

Combinaciones de teclas de acceso rápido para Windows



Combinaciones de teclas de sistema de Windows

  • F1: Ayuda
  • CTRL+ESC: abrir el menú Inicio
  • ALT+TAB: cambiar entre programas abiertos
  • ALT+F4: salir del programa
  • MAYÚS+SUPR: eliminar un elemento permanentemente
  • Logotipo de Windows+L: bloquear el equipo (sin usar CTRL+ALT+SUPR)

Combinaciones de teclas de programa de Windows

  • CTRL+C: copiar
  • CTRL+X: cortar
  • CTRL+V: pegar
  • CTRL+Z: deshacer
  • CTRL+B: negrita
  • CTRL+U: subrayado
  • CTRL+I: cursiva

Combinaciones de clic del mouse y modificadores de teclado para objetos del shell

  • MAYÚS+clic con el botón secundario: muestra un menú contextual que contiene comandos alternativos
  • MAYÚS+doble clic: ejecuta el comando alternativo predeterminado (el segundo elemento del menú)
  • ALT+doble clic: muestra las propiedades
  • MAYÚS+SUPR: elimina un elemento inmediatamente sin colocarlo en la Papelera de reciclaje

Comandos generales sólo de teclado

  • F1: inicia la Ayuda de Windows
  • F10: activa las opciones de la barra de menús
  • MAYÚS+F10: abre el menú contextual del elemento seleccionado (es igual que hacer clic con el botón secundario en un objeto
  • CTRL+ESC: abre el menú Inicio (use las teclas de dirección para seleccionar un elemento)
  • CTRL+ESC o ESC: selecciona el botón Inicio (presione la tecla TAB para seleccionar la barra de tareas, o bien presione MAYÚS+F10 para abrir un menú contextual)
  • CTRL+MAYÚS+ESC: abre el Administrador de tareas de Windows
  • ALT+FLECHA DERECHA: abre un cuadro de lista desplegable
  • ALT+TAB: cambia a otro programa en ejecución (mantenga presionada la tecla ALT y, a continuación, pulse la tecla TAB para ver la ventana de conmutación de tareas)
  • MAYÚS: mantenga presionada la tecla MAYÚS mientras inserta un CD-ROM para omitir la característica de ejecución automática
  • ALT+ESPACIO: muestra el menú Sistema de la ventana principal (desde el menú Sistema se puede restaurar, mover, cambiar el tamaño, minimizar, maximizar o cerrar la ventana)
  • ALT+- (ALT+guión): muestra el menú Sistema de la ventana secundaria de la interfaz de múltiples documentos (MDI) (desde el menú Sistema de la ventana secundaria de MDI se puede restaurar, mover, cambiar el tamaño, minimizar, maximizar o cerrar la ventana secundaria)
  • CTRL+TAB: cambia a la siguiente ventana secundaria de un programa de interfaz de múltiples documentos (MDI)
  • ALT+letra subrayada del menú: abre el menú
  • ALT+F4: cierra la ventana activa
  • CTRL+F4: cierra la ventana activa de la Interfaz de múltiples documentos (MDI)
  • ALT+F6: conmuta entre varias ventanas del mismo programa (por ejemplo, cuando se muestra el cuadro de diálogoBuscar del Bloc de notas, ALT+F6 cambia entre el cuadro de diálogo Buscar y la ventana principal del Bloc de notas)

Métodos abreviados de objetos de shell y carpetas generales, y del Explorador de Windows

Para un objeto seleccionado:
  • F2: cambiar el nombre del objeto
  • F3: buscar todos los archivos
  • CTRL+X: cortar
  • CTRL+C: copiar
  • CTRL+V: pegar
  • MAYÚS+SUPR: eliminar la selección inmediatamente, sin mover el elemento a la Papelera de reciclaje
  • ALT+ENTRAR: abrir las propiedades del objeto seleccionado

Para copiar un archivo

Mantenga presionada la tecla CTRL mientras arrastra el archivo a otra carpeta.

Para crear un acceso directo

Mantenga presionadas la teclas CTRL+MAYÚS mientras arrastra un archivo al escritorio o a una carpeta.

Control de carpetas generales y accesos directos

  • F4: selecciona el cuadro Ir a una carpeta diferente y baja las entradas del cuadro (si la barra de herramientas está activa en el Explorador de Windows)
  • F5: actualiza la ventana activa.
  • F6: se mueve entre paneles en el Explorador de Windows
  • CTRL+G: abre la herramienta Ir a la carpeta (sólo en el Explorador de Windows en Windows 95)
  • CTRL+Z: deshacer el último comando
  • CTRL+A: seleccionar todos los elementos en la ventana activa
  • RETROCESO: cambiar a la carpeta principal
  • MAYÚS+clic+botón Cerrar: En las carpetas, cierra la carpeta actual y todas las carpetas primarias

Control del árbol del Explorador de Windows

  • Teclado numérico *: expande todo lo que se encuentre bajo la selección actual
  • Teclado numérico +: expande la selección actual
  • Teclado numérico -: contrae la selección actual.
  • FLECHA DERECHA: expande la selección actual si no está expandida; en caso contrario, va al primer elemento secundario
  • FLECHA IZQUIERDA: contrae la selección actual si está expandida; en caso contrario, va al elemento principal

Control de propiedades

  • CTRL+TAB/CTRL+MAYÚS+TAB: desplazarse por las fichas de propiedades

Métodos abreviados de Accesibilidad

  • Presionar la tecla MAYÚS cinco veces: activa y desactiva StickyKeys
  • Mantener presionada la tecla MAYÚS derecha durante ocho segundos: activa y desactiva FilterKeys
  • Mantener presionada la tecla BLOQ NUM durante cinco segundos: activa y desactiva ToggleKeys
  • ALT izquierda+MAYÚS izquierda+BLOQ NUM: activa y desactiva MouseKeys
  • ALT izquierda+MAYÚS izquierda+IMPR PANT: activa y desactiva el contraste alto

Teclas de Microsoft Natural Keyboard

  • Logotipo de Windows: Menú Inicio
  • Logotipo de Windows+R: cuadro de diálogo Ejecutar
  • Logotipo de Windows+M: minimizar todo
  • MAYÚS+Logotipo de Windows+M: deshacer minimizar todo
  • Logotipo de Windows+F1: Ayuda
  • Logotipo de Windows+E: Explorador de Windows
  • Logotipo de Windows+F: buscar archivos o carpetas
  • Logotipo de Windows+D: minimiza todas las ventanas abiertas y muestra el escritorio
  • CTRL+Logotipo de Windows+F: buscar equipo
  • CTRL+Logotipo de Windows+TAB: mueve el foco de Inicio a la barra de herramientas Inicio rápido, a la bandeja del sistema (use la FLECHA DERECHA o FLECHA IZQUIERDA para mover el foco a los elementos de la barra de herramientas Inicio rápido y de la bandeja del sistema)
  • Logotipo de Windows+TAB: recorrer los botones de la barra de tareas
  • Logotipo de Windows+Inter: cuadro de diálogo Propiedades del sistema
  • Tecla de aplicación: muestra el menú contextual del elemento seleccionado

Microsoft Natural Keyboard con software IntelliType instalado

  • Logotipo de Windows+L: cerrar sesión de Windows
  • Logotipo de Windows+P: inicia el Administrador de impresión
  • Logotipo de Windows+C: abre el Panel de control
  • Logotipo de Windows+V: inicia el Portapapeles
  • Logotipo de Windows+K: abre el cuadro de diálogo Propiedades de teclado
  • Logotipo de Windows+I: abre el cuadro de diálogo Propiedades del mouse
  • Logotipo de Windows+A: inicia las opciones de Accesibilidad (si está instalado)
  • Logotipo de Windows+BARRA ESPACIADORA: muestra la lista de teclas de método abreviado de Microsoft IntelliType
  • Logotipo de Windows+S: Activa y desactiva BLOQ MAYÚS

Comandos de teclado para cuadros de diálogo

  • TAB: Va al siguiente control del cuadro de diálogo
  • MAYÚS+TAB: ir al control anterior del cuadro de diálogo
  • BARRA ESPACIADORA: si el control actual es un botón, equivale a hacer clic en él. Si el control actual es una casilla de verificación, equivale a activar o desactivar la casilla de verificación. Si el control actual es una opción, se selecciona la opción.
  • ENTRAR: equivale a hacer clic en el botón seleccionado (el botón que muestra el contorno)
  • ESC: equivale a hacer clic en el botón Cancelar
  • ALT+letra subrayada del elemento del cuadro de diálogo: ir al elemento correspondiente

Conectores de Audio y Video Macho y Hembra

Se muestra los tipos de conectores que existen de audio y video