Páginas

jueves, 24 de noviembre de 2011

Autenticación en C#

Algo super sencillo de hacer es un proceso de Autenticación, sin embargo muchas personas lo hacen dentro del hilo de ejecución del sistema, poniendo como Pantalla principal el formulario de la contraseña y luego ocultándolo, ya que si se cierra se termina el hilo de ejecución del sistema.
Para hacerlo de una mejor manera podemos hacer lo siguiente…
En nuestro proyecto tenemos el Program.cs, el cual es el principal, agregamos un formulario principal [frmPrincipal] y uno de autenticación [frmAutentica] y hacemos lo siguiente:
en Program.cs tenemos un código parecido a este:
   1: namespace Comercial

   2: {

   3:     static class Program

   4:     {

   5:         /// <summary>

   6:         /// Punto de entrada principal para la aplicación.

   7:         /// </summary>

   8:         [STAThread]

   9:         static void Main()

  10:         {

  11:             Application.EnableVisualStyles();

  12:             Application.SetCompatibleTextRenderingDefault(false);

  13: /*Es en este lugar donde hay que insertar el código que valida el usuario*/

  14:             Application.Run(new frmPrincipal());

  15:         }

  16:     }

  17: }

El código que metemos en ese lugar es el que usamos para invocar nuestro formulario de autenticación, en este formulario validamos el usuario y la clave y damos como resultado  DialogResult.Ok en caso que la autenticación sea exitosa. además para mantener en Memoria, nombre, id y otros datos del usuario podemos crear una clase que guarde estos datos, y luego invocarla. el código puede ser algo parecido al siguiente:


   1: DatosUsuario user = new DatosUsuario();// Aqui se los datos del usuario

   2: frmAutentica auth = new frmAutentica();

   3: auth.user = user;

   4: DialogResult dr;

   5: dr=auth.ShowDialog();

   6: if (dr == DialogResult.OK)

   7: {

   8:     // En el form frmPRincipal creamos una sobrecarga del constructor para que nos acepte el parametro user

   9:     Application.Run(new frmPrincipal(user));

  10: }

Espero esta contribución les ayude.

miércoles, 5 de octubre de 2011

Con Steve Jobs muere una era de la informática.

Tal vez no muchos han tenido la suerte de ver la pelicula “Los piratas de Sillicon Valley”, y aunque es un docudrama no autorizado, habla mucho sobre este gran personaje, Steve Jobs, en la misma película podemos ver también a personajes importantes de la Informática como Bill Gates, Steve Wozniac, Paul Allen, Steve Ballmer, entre otros.

Hago referencia a esta película, porque a pesar de que ya todos conocíamos al empresario Steve, al igual que a Bill, fue con esta película, que al menos personalmente me sentí mas identificado con la informática, me ha servido de inspiración, no solo Jobs, sino también Woz, Gates, y compañía, pues indudablemente eran unos Genios, en toda la extensión de la palabra.

Se acusa a Steve de haber sido arrogante, insoportable, apasionado, y adicto al trabajo, pero ¿quien con menos talento nos creemos la ultima coca cola del desierto?, así es la vida, Dios le dio el talento para cambiar el mundo, para hacer historia, para mejorar con la tecnología la calidad de vida de las personas, pues es así como Steve hizo su contribución con este planeta.

Ahora solo se haba de iPhone, iPod, iPad, pero la historia es mas que eso, Apple I, Apple II, Lisa, Machitosh, que en realidad fueron las creaciones que hicieron de APPLE una empresa de respeto.

Para un muchacho de 21 años, cuando la mayoría de jóvenes a esa edad nos ingeniábamos como cortejar a la chica guapa de la U, Steve ya comenzaba desde un garaje a cambiar el mundo, he ahí lo mas inspirador.

Dentro de esa carcaza de Genio estaba un ser humano, con familia, hijos, esposa, y una vida compleja, llena de enfermedades.

Definitivamente Steve dejará un vacía muy grande en el mundo informático, nos toca esperar que un nuevo genio surja y también se de a la tarea de cambiar el mundo..

Adiós Steve Jobs.

jueves, 22 de septiembre de 2011

Ser Informático… ¿es buen negocio?

Después de un análisis en que hubiera sido el mejor negocio o la mejor profesión a la que me pude haber dedicado llegué a la siguiente conclusión.

1. No importa la profesión o la rama, lo importante es la pasión y amor con la que hagas tu trabajo.

2. La mejor profesión o la que mas nos gusta no siempre nos hará millonarios es mas probablemente seamos chiros.

3. Si queremos tener dinero debemos hacer lo que mas dinero da en el momento y lugar en el que estamos, así no nos guste lo que hagamos.

Además  de estos tres puntos que eran muy generales, me imaginaba que hubiera pasado si hubiese escogido ser otra cosa y no un informático, entonces me puse a ver a mi esposa y sus estudios de Educadores de Párvulos, a mi primo y sus estudios de Arquitectura, a muchos amigos abogados, y otros tantos doctores, y me puse a pensar, que si bien es cierto uno debe hacer lo que a uno lo hace feliz, y cada persona tomará siempre caminos distintos, pero definitivamente existen muchas ventajas de ser un informático.

1. La Informática se aplica a todas las áreas, así que buscar trabajo es fácil.

2. Cuando estás estudiando solo necesitas un computador, toda tu inteligencia, creatividad y lógica. nada de libros de miles de dólares o materiales costosos etc.

3. Definitivamente el pago es bueno cuando trabajas en países del primer mundo, y entre aceptable y mas o menos en los países del tercer mundo.

Lamentablemente en mi país algunas empresas no solicitan DBA, Programadores, HelpDesk, Ing. de Producción, Ing de Desarrollo, Arq. de Software entre otras… si no que es muy común encontrar anuncios que digan…

“Se Solicita Asistente de Sistemas ” (Pueden Creerlo??? Asistente de Sistemas, si leyeron bien, Asistente… a que se refiere?  suena a que  necesito alguien que me traiga el café… pero bueeeeee)

Además piden:

Que tenga titulo de ingeniero en sistemas o afines

Con experiencia en Manejo de Bases de Datos Oracle, Sql Server, DB2.

Programación en .NET, C#, VB, c++, C, Java, php. mínimo de 3 años

claros conocimientos en metodologías  y arquitectura de software.

Conocimiento indispensables en administración de Windows 2008, Linux, Unix, Mac.

Creativo, que trabaje bajo presión, investigativo, y alta capacidad de análisis.

Sueldo: $600

Entonces es ahí en donde me pregunto..

1. Que es un Asistente de Sistemas? suena a Secretario? o es que para preparar un café necesitas un algoritmo? o es que solo vas a recibir llamadas y tramitarlas dependiendo el problema?

2. Alguien a quien se denomine asistente sería capaz de hacer toda la basura que están pidiendo?, es mas ¿Podrá entenderlo?

3. Si en adquirir esos conocimientos algunos tendrían que volver al colegio y universidad y otros incluso volver a nacer,  porque te ofrecen un sueldo menor al de algunos que posiblemente a duras penas saben leer, escribir y hablar?

Bueno son cosas que hasta ahora creo que solo pasan en mi querido Ecuador…

Ser informático es muy rentable solo si trabajamos en Verdaderas empresas serias, o como independientes, caso contrario, mejor dedicarse a vender Huevos.. jeje

miércoles, 24 de agosto de 2011

Patentes ¿Conceptuales?

Al parecer si se te ocurre una idea cualquiera que esta sea y la implementas en tu app, escribiendo tu propio código, incluso sin usar códigos de terceros, y a otro se le ocurrió “el concepto” antes que a ti, tendrás que pagar licencia por el uso de patentes?, tal vez entiendo mal o definitivamente si se nos ocurre poner un botoncito de actualizar versión hay que ver a quien se le ocurrió la idea primero para pagarle por poder desarrollarlo incluso, si la idea fue propia y no copiada?

David un programador Español, es uno de los tantos programadores de app que se encuentran en problemas de patentes, sin haber copiado absolutamente nada, un algoritmo escrito por el e ideado por el, resulto ser similar al de un concepto patentado.. bueno, el asunto esta raro, nadie da razones, nadie dice porque, David no sabe ni que mismo es que ha supuestamente utilizado de esa patente, el asunto es que ya tiene demandas fuertes, ahora el problema es ¿que pasa con la libertad de los programadores?, Facebook, o Myspace tuvieron que pagarle a alguien por el concepto “Redes Sociales”.  bueno no se hasta donde llegue la cosa, en realidad no está clara, mas acerca de esta noticia en http://www.bbc.co.uk/mundo/noticias/2011/08/110824_tecnologia_lodsys_patentes_nc.shtml

Saludos..

miércoles, 10 de agosto de 2011

Novedades Migrando base de datos de Oracle 10g a Oracle 11g

Al momento de la migración de la base de datos de Oracle 10g a Oracle 11g, me encontré con algunas novedades interesante, una de ellas son las nuevas características de auditoría y seguimiento, la nueva herramienta “adrci” para la revisión de las mismas, y otra que me puso a investigar que son los ACL.
Los ACL’s es una nueva característica de la versión 11g,el objetivo de esta es la seguridad a nivel de redes, se podría decir que es una especie de firewall, aunque no necesariamente lo sea.
Si no conocemos esta nueva funcionalidad tendremos problemas al intentar por ejemplo enviar mails, o consumir un http.
a continuación pondré un ejemplo de como crear un ACL y asignar privilegios necesarios para enviar un mail:
1. Creamos un ACL
begin
    dbms_network_acl_admin.create_acl (
    acl => 'nombreacl.xml',
    description => 'Normal Access',
    principal => 'USUARIOoROL',
    is_grant => TRUE,
    privilege => 'connect',
    start_date => null,
    end_date => null
);
end;
2. Agregamos usuarios o roles al ACL anterior
begin
dbms_network_acl_admin.add_privilege (
acl => 'nombreacl.xml',
principal => 'USUARIOoROL',
is_grant => TRUE,
privilege => 'connect',
start_date => null,
end_date => null);
end;
Si queremos agregar mas usuarios, lo podemos hacer con esta misma rutina
3. Asignamos el HOST al que tendrá acceso
begin
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL(acl  => 'nombreacl.xml',
                                    host => 'tudominio.comOtuIP');
end;      

Las vistas del Diccionario de datos con las que puedes revisar los acl son:
DBA_NETWORK_ACLS
DBA_NETWORK_ACL_PRIVILEGES
USER_NETWORK_ACL_PRIVILEGES

lunes, 30 de mayo de 2011

Iniciando una aplicación con UI para BlackBerry en Java

Al instalar el plugin de Blackberry SDK, tambien se nos instala una documentación completa acerca del API.

Este es un ejemplo básico de código para crear una aplicación con una interface de usuario, a la cual llamaremos, HolaMundo.

Código:

package HolaMundo; //PAQUETE

import net.rim.device.api.ui.UiApplication; //IMPORTAMOS API BB UI
public class HolaMundoMain extends UiApplication  //SE HEREDA ui
{
    public static void main(String[] args)
    {
        HolaMundo.HolaMundoMain theapp= new HolaMundo.HolaMundoMain();
        theapp.enterEventDispatcher();
    }

///CONSTRUCTOR
    public HolaMundoMain()
    {
       
        pushScreen(new Pantalla());
    }

}

// Se crea una clase Pantalla Heredando a MainScreen

public final class Pantalla extends MainScreen

{

public Pantalla()

{

setTitle(“Hola Mundo”); // ESPECIFICAMOS EL TITULO DE LA PANTALLA

}

}

Después de esto ya tenemos la ventana principal con titulo en nuestro BlackBerry.

 

Saludos

Atte.

JPRC

viernes, 6 de mayo de 2011

Aplicaciones para Blackberry con Java

Después de intentar meterme en el desarrollo de juegos sin éxito hasta ahora por el poco tiempo libre que tengo para la investigación, decidí que la mejor forma de aportar es seguir haciéndolo con mi experiencia en el día día de mi trabajo, ahora se me dio la oportunidad de hacer aplicativos para BlackBerry, nada general, son cosas muy particulares, para la empresa en que trabajo, pero si puedo compartir, ciertos códigos, y experiencia.

Lo primero que deben hacer para desarrollar aplicaciones en BlackBerry es saber Java, si no saben Java, por lo menos programación orientada a objeto para que el aprendizaje de java no sea muy difícil, luego debemos  Bajar e instalar, JRE, Eclipse, y BlackBerry Plugin para eclipse, esto lo hacemos en las siguientes direcciones url:

Eclipse

http://archive.eclipse.org/eclipse/downloads/drops/R-3.3.2-200802211800/eclipse-SDK-3.3.2-win32.zip

Blackberry Plugin

https://swdownloads.blackberry.com/Downloads/developerdownload.do

JRE x64

http://download.oracle.com/auth/otn-pub/java/jdk/6u25-b06/jre-6u25-windows-x64.exe?e=130393772

JRE 32bit

http://download.oracle.com/auth/otn-pub/java/jdk/6u25-b06/jre-6u25-windows-i586.exe?e=1303941089&h=21373f5

En la siguiente entrega, pondré a disposición código fuente.