Páginas

martes, 27 de diciembre de 2011

¿Por que usar Shared Server en Oracle Database?

Una de las cosas que debemos tomar en cuenta cuando tenemos base de datos Oracle, es la cantidad de procesos en el servidor que se pueden ejecutar por cada cliente conectado a la base de datos, estos procesos consumen memoria del servidor, y cuando los requerimientos a la base de datos aumentan, y existen muchas conexiones concurrentes, se nos hace un problema cuando estos procesos se consumen la memoria del servidor.
Oracle tiene una solución bastante practica para estos “problemas” y son los servidores compartidos, con la configuración correcta podemos hacer que varios clientes sean atendidos por un solo proceso en el servidor, estos procesos son llamados despachadores o dispatchers.
Haciendo una balanza se puede hacer que ciertos usuarios tengan conexión a un servidor dedicado, mientras la mayoría este con servidores compartidos, mas información sobre como configurar servidores compartidos en Oracle Database lo encontramos en el siguiente link http://docs.oracle.com/cd/B19306_01/network.102/b14212/dispatcher.htm

miércoles, 21 de diciembre de 2011

Intercalación En SQL Server Analysis Service y SQL Server DataBase

En mi reciente incursión al mundo de Business Intelligence con Sql Server, me he encontrado con ciertas novedades a tomar en cuenta, una de ellas fue la intercalación.
Con aun muy poca experiencia instalé SQL Server R2 y por un alerta que me salía cambié mi idioma de Windows a Español -  España, instalé y luego cambié la configuración en Windows.
Después de un arduo trabajo en sacar un piloto acerca de un cubo de ventas, el cual dicho sea de paso fue todo un éxito, se me ocurrió que era mejor definir los formatos de las métricas en el cubo, para no hacer eso en el cliente, todo estaba bien, pero el gran problema es que me salía el símbolo de Euro, revisé la configuración de Windows y nada, luego fui a la configuración de idioma e intercalación de SSAS y cambio la configuración de español – España a español -  Ecuador, reinicio AS, proceso el cubo y comenzó mi problema. las dimensiones que tenían miembros acentuados o caracteres como la Ñ no podían ser procesados, me lleve bastante tiempo en revisar que era, volví a dejar como estaba, pero no funcionaba, revisé en los foros, y pedí ayuda en los foros de Microsoft,él Colega Guillermo Taylor, me dijo que la solución era simple, tener una intercalación en la Base de Datos, compatible con la intercalación de SSAS, me pareció lógico, mas que nada porque el problema es que mientras SSAS buscaba datos de una dimensión con tildes la base de datos no diferenciaba tildes, así que si SSAS buscaba “Alejandría” la base de datos solo encontraba “Alejandria”, lo revisé, lo dejé idéntico, intento procesar las dimensiones, y NADA….
La solución estaba dada, Guillermo tenía razón, pero además de hacer configurar correctamente la Intercalación de la Base de Datos y SSAS también había que re implementar  todo el Cubo, algo que en ese momento no sabía pero que por instinto lo hice, gracias a Dios encontré ayuda idónea y  salí bien librado.
Tengo mas de 7 años de experiencia con Oracle, pero en SQL Server 2008 me cambiaron muchas cosas de su antecesor SQL 2000 y me siento un novato pero estoy poniéndome al día con los conocimientos, y a medida tenga mas experiencia los comentaré por este medio, puede que estas experiencias ayuden a mas personas.

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

sábado, 30 de julio de 2011

BlackBerry, iPhone, Android, o Windows Phone?

Desde hace un tiempo atrás los teléfonos inteligentes han invadido las tiendas de electrónica, lo que antes eran herramientas exclusivas para altos ejecutivos se ha convertido en el juguete ideal de adolecentes y la mejor forma de muchos de estar siempre online, claro, sin dejar de ser una excelente herramienta de trabajo, incluso no hace falta ser un experto en tecnología para pedir teléfonos con los nombres específicos de sistemas operativos, usuarios sin mucho conocimiento técnico discuten sobre las bondades de symbiam, android, Windows Phone, entre otros, comparan restricciones, y son expertos en instalar y desinstalar apps.

En algún momento tuve un teléfono con Windows Mobile 6.0, aunque la interface no era extraordinaria, las capacidades técnicas que se podían explotar no le pedía favor a otros teléfonos inteligentes, y era mucho mas económico que el mas barato de los BlackBerry, teníamos la IDE de Visual Studio para divertirnos haciendo software para Windows Mobile. pero luego me lo robaron Triste.

Así que compre un blackberry, la Interface de blackberry es mucho mas bonita que la de Windows Mobile, además ya tenia el famoso PIN, y las app de facebook y tweeter son espectaculares, sin embargo tengo otras limitantes, por ejemplo,  por medio del famoso BIS no puedo ver videos si no pago un adicional por consumo WAP. .. Triste adiós videos.

El Iphone es un hermoso juguete, que si lo agarras con la mano izquierda desde la parte inferior del teléfono, este pierde la señal mmm jamás pude perdonar eso.. sin embargo la interface y el poder de sus app enamoran a cualquiera.

Pero Luego conocí a Android, en el famoso Galaxy de Samsung, y me dije, tendré uno de esos…. sin embargo aun no lo he podido comprar.

El asunto es que con tantas opciones elegir un teléfono inteligente se vuelve cada vez mas difícil, hay una competencia muy fuerte entre los sistemas operativos que actualmente lo lidera Android y iPhone,  que destronaron a Blackberry pero así como van las cosas pues no se sabe quien reinará el futuro de los teléfonos inteligentes.

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.

martes, 12 de abril de 2011

Problemas con Impresora HP 1102w y Terminal Server de Windows 2008 SE R2 (EasyPrint)

Cuando probé el EasyPrint del Windows 2008, fue un alivio al trabajo de tener que instalar los drivers de todas las impresoras que utilizaba con el Terminal Server y el sistema. todo iba de maravilla hasta el día en que me pidieron que compre una impresora laser para una de las sucursales, y compré la impresora antes mencionada, al instalarla en el cliente todo parecía perfecto incluso me gustó mucho la parte en que se auto instalaba sin necesidad de que le insertara el disco, y todo aparentemente funcionaba bien, hasta que intenté imprimir algo desde el sistema conectado por medio de Terminal Server.
al inicio pensé que era un problema del sistema, pero luego me di cuenta que el problema era un asunto de compatibilidad de la impresora con EasyPrint. en realidad busque mucho por internet, y me daban algunas soluciones pero nada funcionaba, el problema se parecía mucho, al que tenía anteriormente, en el que tuve que otorgar permisos especiales a la carpeta c:\windows\System32\spool\PRINTERS, pero este no era el mismo problema.
Para solucionar este problema con esta impresora específicamente tuve que instalar los controladores actualizados en el Servidor, y mandar abajo el EasyPrint, esto lo hice entrando al editor de directivas de grupo, en la carpeta, Configuracion del Equipo\Plantillas administrativas\Componentes de Windows\Terminal Services\Terminal Server\Redireccion de Impresora\
hay que deshabilitar la opción: Usar el controlador de impresora easyprint de terminal server
Con estas acciones pude superar el problema con la impresora HP LaserJet 1102w y Terminal server.

lunes, 11 de abril de 2011

Control de Procedimientos en Oracle DB

Algunas veces cuando trabajamos en un grupo de desarrollo, podemos encontrarnos con unos problemitas, uno de ellos es la necesidad de cambiar un procedimiento, función o paquete de la base de datos y después de cambiarlo podemos encontrarnos conque otro de nuestros compañeros también lo está cambiando.  Bueno que pase esto aunque no lo crean es muy probable, y podríamos perder los cambios del primero que guarda.. y solo queda el paquete tal como lo deja el ultimo que guarda.. Mi amigo Victor Endara publicó algo interesante y muy útil para controlar esto, ojalá les ayude mucho..
http://victor-endara.blogspot.com/2011/04/oracle-control-procedimientos.html
Saludos a todos.

martes, 15 de febrero de 2011

Microsoft y Nokia

En Latino américa Nokia tiene ganado gran parte del mercado, al menos en Ecuador las personas confían bastante en Nokia, Ahora con la nueva moda de teléfonos inteligentes, y por la increíble necesidad de tener uno de esos lindos teléfonos incluso en personas desempleadas (jaja), quien domina el mercado de Smart Phone es el BlackBerry, es increíble ver al menos en Guayaquil, la cantidad de personas que andan con uno de estos teléfonos, incluso es tan común que al subirnos a un bus popular nos encontremos con personas con un BlackBerry de $700, la preferencias de las personas por este teléfono es lógica, ya que es bastante funcional y elegante, sin embargo así mismo hay muchas personas que siguen confiando en Nokia, un teléfono fuerte, con buena señal, y una funcionalidad increíble, pero que en el mercado de teléfonos inteligentes se estaba quedando dormido.

En lo personal siempre me gustaron los Nokia, mas que nada por su Hardware, nunca he tenido un teléfono tan fuerte y con tan buena señal como ese, sin embargo tengo un teléfono con Windows Mobile 6.1, espero este año cambiarme a uno con Windows Phone 7. y no es que sea un fanático Microsoft, pero la funcionalidad de Windows Mobile 6.1 es excelente, puedo hacer cosas que solo con el BlackBerry mas caro podría hacer, y aun tercio del precio. Además de contar con incontables apps, y una gran mayoría gratuitos, y como si eso fuera poco, además de soportar Java como todos lo hacen, tengo .NET Compact  para desarrollar aplicaciones con mi Visual Studio, donde puedo usar C#,VB, y también si deseo Java.

Mi intención no es hacer publicidad, pero no podía dejar pasar la oportunidad, para estar optimista de la alianza que ha hecho Microsoft y Nokia, ya que desde mi punto de vista unos de los mejores Hardware se une a unos de los mejores Software en telefonía, ahora espero que cuando se cumpla mi contrato con mi teléfono Windows Mobile, ya haya en el mercado un teléfono Nokia con Windows Phone 7.

Esta alianza tal vez pueda hacer que Microsoft y Nokia ya puedan competir con Apple y Google con su iPhone y el Android respectivamente, en lo que a Smart Phone se refiere.

sábado, 8 de enero de 2011

Desarrollo de Juego en XNA

Nuestro amigo Carlos Tinca , tiene unos muy buenos tutoriales en su blog http://www.carlostinca.com/2010/05/xna-tutoriales.html. de los que me voy a valer para crear un juego con el objetivo de aprender como se hace.
Ahora, que tengo localizados varios recursos entre ellos el blog de Carlos, lo siguiente que tengo que decidir es que  juego voy a hacer.
Me gustaria algo simpático, pero sin embargo es importante que lo pueda terminar algún día sin la necesidad de invertir mucho tiempo :), por lo que pensé que el juego ideal para desarrollar es el clásico juego de naves. ese mismo juego que jugaba en Atari hace mas de 20 años. vamos a ver que tal nos vá, espero que la proxima entrada ya encuentren código :).

martes, 4 de enero de 2011

Empezar a desarrollar Juegos en XNA Game de Microsoft

Una de las cosas mas interesantes de la programación es el desarrollo de juegos, y mas si somos expertos en video juegos, en mi caso no es así, soy tan malo que los pocos juegos que desarrolle en Blitz Basic tuve que crear juegos con vidas infinitas para poder pasar los obstáculos que yo mismo desarrollaba.

Ahora, voy a intentar desarrollar algo decente desde XNA Game, el único problema es que nunca  en mi corta vida he visto XNA así que es un reto para mi poner un muñequito que tire piedras o algo así. porque no se absolutamente nada de XNA solamente la sintaxis del lenguaje que utiliza que es el C#.

Así que vamos a comenzar por lo primero en la página de microsoft bajamos el XNA Game 3.1.

Poco a poco iré publicando mis logros, ahora me toca investigar como se hace cada cosa, y lógicamente antes de eso ver que juego es el que quiero hacer.