martes, 6 de febrero de 2007

Internet Explorer bueno? otros navegadores malos? o a la inversa

Como ultimamente me he vuelto usuario cotidiano de Linux (Fedora Core 6), no uso IE (ya ni en mi casa lo usaba), pero en el lugar en donde estudio por políticas de acceso a Internet en los laboratorios solo esta el IE 6, y en mi casa mis proyectos los realizo probando el FireFox u Opera, igual aquí en el trabajo. Entonces aplicando CSS para que mi proyecto sea vistoso y todo, sin querer lo probé en IE... y que creen... Oh Sorpresa!!!! no funcionan mis estilos!! pero porque si se veían tan bien bajo los otros navegadores... mucha gente dirá... ah es porque en IE se ven bien, y que en FireFox u Opera se ven mal... mi primera impresión en esa milésima de segundo fue esa, pero al segundo siguiente recordé que Microsoft normalmente hace lo que quiere. Buscando un poco, escarbando en otros blogs y paginas me doy cuenta que el problema de IE no son solo los bugs, sino q no sigue el estándar de la w3c. Los navegadores que uso no lo usan al 100%, pero cubren las necesidades básicas. Al parecer Microsoft trató de imponer algo con IE6, pero es muy desordenado, hicieron lo que quisieron y existe algo llamado hasLayout (que esta mas detallado aquí) que es donde residen muchos de los problemas de IE con los CSS. Bueno ahora cada vez que aplique estilos a una web, tendré que pensar mas en IE, porque en el mundo existe un alto porcentaje usando ese explorador que repudio ultimamente.

Java y Ajax sobre Fedora 6


Hace poco entre a un nuevo trabajo aqui en Lima, y bueno mi experiencia programando sobre linux habia sido casi nula, a nivel de usuario quizas, pero en fin. He estado desarrollando estas ultimas 3 semanas con el IDE Eclipe 3.2, base de datos MySqlServer 5, Servidor de Aplicaciones Tomcat y usando AJAX. Como escribi antes solo habia llegado a entender los conceptos basico de Ajax, asi como también uno que otro truquito simpatico.
En lo que se refiere a Java, encontre con un sistema, todavia no terminado, desarrollado sobre el framework FrontController, y asi como todo tiene sus ventajas y desventajas (En los ultimos meses me he vuelto "hincha" de Struts) tuve a disposición la documentacion (algo muy generico) de la aplicaciones y sus clases. El patrón DAO Factory usado era muy vago... estaba algo desordenado, no se usaba de la mejor manera, en cuanto a los servlets igual, a veces nos llenamos de servlets por las puras, en vista que estos redireccionan, me parece algo descabellado usar un servlet para solo un ingresar o cosas por el estilo (creo yo, espero no equivocarme). En cuanto a lo de Ajax, habia implementado sus propios metodos y clases sin usar un framework de los tantos que hay, me parecio genial, porque me dio la oportunidad de entender mas a fondo como se maneja ajax y sus peticiones. De ahi vi que unir Ajax con Java (cosa que por tiempo no habia intentado) no es nada del otro mundo, aunque de manera muy "rustica" pero ahi estaba esta interactuando mi aplicación JAVA con Ajax.
Tengo una clase JavaScript en la cual tengo algo asi
function miAjax(url) {
this.url = url;
var req = init();
req.onreadystatechange = processRequest;

function init() {
if (window.XMLHttpRequest) { return new XMLHttpRequest(); }
else if (window.ActiveXObject) {
isIE = true;
return new ActiveXObject("Microsoft.XMLHTTP");
}
}
function processRequest () {

if (req.readyState == 4) {
if (req.status == 200) {
postProcess(req.responseXML);
}
} }
this.send = function() {
req.open("GET", url, true);
req.send(null);
}
}
con eso establesco mis peticones ajax.
por ejemplo en mi jsp hago los siguiente.
<input id="txtAjax" onkeypress="metodoX()" type="text">
en mi libreria JavaScript tambien debo de ese metodo llamado metodoX() q me capture el valor de la caja de texto ejemplo

var cajita = document.getElementById("txtAjax");
var url = '/PruebaAjaxAction.do?nombre='+cajita.value; //usando los Action de Struts

en el action genero un xml con el StringBuffer asi(uso una clase llamada service q me obtiene el metodo que accesa a los datos de la BD):

MiTablaService mtsv = new MiTablaService();
List lstX = mtsv.listaFiltro(request.getParameter("nombre"));

StringBuffer sb = new StringBuffer();
recorro la lista, casteo sus elementos a un determinado bean

sb.append(""+bean.getX()+"");


asi hasta llenarlo. esto lo recupero en la libreria de JavaScript con el metodo declarado antes. postProcess, q obtiene un responseXML, y eso ya bueno investigan un poco jeje... le recuperan y pueden generar elementos, que si quieren lo añaden a una tabla para que se filtre mientras escribes en la caja de texto.
Les pongo la plantilla que uso de pruebas. En la parte inferior de esa pantalla uso una libreria de javascript llamada rico, que me produce el efecto acordeon.

lunes, 15 de enero de 2007

No poder iniciar sesión con SQL Server 2000 - Error 1069

Me sucedio hace poco que necesitaba instalar el SQL Server 2000, tenia algo de urgencia.
Bueno el hecho es que termine de instalar mi querido SQL Server, y me salió un error ... "error 1069", diciendome que no se puede iniciar el servicio debido a un error de sesion.
Un poco contrariado me puse a buscar la solucion en google... la encontre rápido.
Es bastante sensillo: vas a "Herramientas administrativas", buscas el servicio (para este caso MSSQLSERVER), click derecho => propiedades, vas a la pestaña de inicio de sesión, y le clickeas a la opción de Iniciar sesión como: Cuenta del Sistema Local. y eso es todo...

miércoles, 27 de diciembre de 2006

JavaScript y otras cosillas

Bueno este post es un poco como comentando algunas cosas de mis apreciaciones de AJAX, como dije permite mantener una conexión asíncrona con el servidor.
Pero la verdad hasta hace poco no le había prestado tanta importancia al JavaScript como ahora, es impresionante las mejoras para el usuario a través de las librerías OpenSource que podemos encontrar en Internet. Así fue como intentando aprender AJAX, muchísimos autores hacían referencia al framework de Prototype, Json, Rico… de los cuales solo conocía a prototype, pero nunca lo había usado de la manera mas apropiada. En fin de estos el que mas me impresionó, por decirle de alguna manera, fue Rico, genera mejoras para los ojos del usuario que yo ni en sueño habría logrado desarrollar con JavaScript.
Ahora es cierto que los nuevos Net Frameworks ya poseen una mejora importante en la experiencia del usuario (y ni que decir con lo del .Net Framework 3).
Ahora a opinión propia la combinación “perfecta” me parece: php, ajax, mysql… y esto porque? ... PHP es muy fácil de aprender (su pecado es no ser orientado a objetos, sino basado en objetos, lo mismo que VB6), ajax que se complementa excelente y la BD amada por muchos… MySQL. Esta sería en cuanto a usar tecnologías que no signifiquen un gasto alguno.
Para mi preferencia personal JAVA es impresionante, a veces tiene ese toque de dificultad que nos encanta a los desarrolladores novatos (me incluyo ahí jeje), los intermedios y expertos, en cuanto a BD le he agarrando un cariño especial al SQL 2000, no porque necesariamente sea el mejor, es cuestión de “comodidad”.En cuanto a .Net, es donde mas me acomodo por la facilidad que le brinda al desarrollador, y ni que decir con el 2005, la cantidad de wizards hacen que el desarrollo sea muchísimo menos “tedioso” que antes.

NET FRAMEWORK 3.0

Este es el ya antes conocido WinFX, y es como se puede decir una actualización del “.NET 2”.
Al poder del .Net Framework 2, se añaden tecnologías como
* WPF: Windows Presentation Foundation: Tal como se intuye con “Presentation”, es la incorporación que hace Microsoft para esta poderosa tecnología que mejora la experiencia del usuario con su interfaz, a diferencia de antes esta puede ser hecha en 2D o 3D y usa un lenguaje de markup (xaml). Esta provista de toda la interfaz gráfica de Windows Vista.
* WCF: Windows Communication Foundation: Es el Nuevo framework Microsoft hace con motivo de realizar aplicaciones confiables, y mejorar su interoperabilidad. Básicamente lo que hace un servicio de WCF brinda una colección de End Points, cada end point es como una puerta de la aplicación hacia el mundo. En esta versión del .net framework, el net remoting ya queda en el olvido.
* WWF: Windows Workflow Foundation: Puede generar flujos de trabajo de la aplicación, permite modelar y estructurar procesos. En conclusión, hace mas flexible el diseño de la aplicación y mas fácil de hacerla por parte del desarrollador.
* CardSpace: Manejo de la identidad Digital. Es como usar una condición única para diversos accesos y reconocimientos.

Todo esto obedece a las nuevas tendencias del software…
- Una experiencia de usuario “unica” o diferenciada. -> WPF
- El desarrollo de servicios web. -> WCF
- Administrar una identidad Digital -> CardSpace
- Modelamiento de proceso de negocios -> WWF.

Lo que escribí es lo que por ahí recuerdo de una charla de MugPeru a la asistí hace como un mes, y algunas lecturas acerca del tema. Así que si me equivoco en algo por favor corríjanme.

martes, 26 de diciembre de 2006

Ingeniería Social

Este término tan fuertemente sonado en los círculos de hackers y todo aquello que este relacionado a la seguridad informática, se basa en obtener información clasificada en base a la manipulación de usuarios, se podría decir que es el arte de saber mentir y manipular para obtener información confidencial de manera ilícita u obtener algún otro beneficio.
Aunque es cierto que no solo está ceñido a el robo de información, este todo aquel engaño que derive en algún acto que el usuario no haría normalmente.
Ejemplo: Un vendedor de autos, nos puede pintar como el mejor un auto, siendo que nos termina dando "gato por liebre".
A nivel de seguridad de información de las empresas...
A pesar de que una empresa cuente con los mejores sistemas de seguridad de información, puede ser muy vulnerable, y esto porque?... el usuario, aquel trabajador con acceso a información importante es, muchas veces, el eslabón mas débil.
El "Ingeniero Social" usa muchas vías para contactar con el usuario, tales como, el correo electrónico y/o vía telefónica.
Los correos electrónicos pueden sugerir premios y/o mantenimientos que sugieran al usuario poner una contraseña en el. O que del alguna manera los derive en realizar algún procedimiento que termine en generar un escenario propicio al "Ing. social".
Así también, vía telefónica muchas veces se le inspira el miedo hacia el usuario, aduciendo ser un superior o alguien con acceso regular a la empresa, con lo cual el usuario termina revelando información.
Esto es básicamente porque a nosotros los usuarios muchas veces nos gusta:
- "Ser útiles", tratar de ayudar en lo que podamos.
- El simple hecho de decir que somos buenos en los que hacemos, nos genera mucha confianza del que esta del otro lado del medio.
- A veces decimos... si a todo.

SCO Group y MICROSOFT?

Hace ya unas cuantas semanas, leía algunos artículos acerca de la ya conocida querella de SCO-Group contra Novell e IBM en primera instancia.
SCO Group ha argumentado que existe código de UnixWare ("de propiedad de SCO") en la implementación de Linux, y que IBM tomó este código para distribuirlas para el desarrollo del actual Linux, por lo cual lo había demandado por una cifra que alcanza los tres mil millones de dolares. Ante esto surgió la indignación de Novell que argumentó que ese código no era propiedad de SCO, sino del mismo NOVELL, esto ultimo genero otra querella.
Lo que SCO Group pretende que todas las empresas que utilicen Linux les abonen un "derecho", así mismo IBM les de dinero al usar ilícitamente código de propiedad de SCO.
La batalla judicial se ha enmarcado en la demostración por parte de SCO Group de la pertenencia del código de UNIX implementado en Linux. Al parecer SCO no cuenta con las pruebas necesarias para hacer esto. Novell(propietaria de SuSE y Ximian) intenta probar que el codigo de Linux no cotiene la variante UNIX de la cual SCO es propietaria (UNIX System V). Aparte de ello se tienen pruebas de que SCO ha vendido Linux sin cobrar por licencia,... como es que ahora pretende cobrar por ellas?
Por el momento parece que la "causa SCO" que intenta dejar que Linux sea GPL(General Public License) esta perdiendo mucha fuerza por falta de pruebas de SCO.
Pero que tiene que ver Microsoft en esto??
Desde que SCO ha estado litigando, ha derivado muchísimos millones de dolares en abogados y gastos, lo cual se ha visto afectado por la baja facturación, lo que conllevó a fuertes perdidas, déficits, el "mundo" ya no mira con buenos ojos a SCO Group, y al parecer hay cartas enviadas por funcionarios de Microsoft, mediante las cuales les notifican del apoyo económico del gigante hacia SCO. Si esto se llega a confirmar... no sería mas que obvio el interés de Bill por "destruir" a Linux??

domingo, 24 de diciembre de 2006

Aprendiendo algo de AJAX

Bueno ayer 23 de diciembre me puse a revisar algo de lo que seria la tecnología ajax (Asynchronous JavaScript and XML), la verdad no soy un experto en esta materia pero ahí les mando algunas cuestiones básicas que pude captar.
En si no llega a ser considerado como un lenguaje propiamente dicho, es más muchos autores y conocedores dicen que se trata de una suerte de tecnología que facilita la interactividad del usuario con el aplicativo web.
El código de AJAX se implementa del lado del cliente, al combinar el JavaScript con el XML.
Asimismo, AJAX va a tener que ser "ayudado" por lenguajes de programación del lado del servidor para que se pueda apreciar su verdadero poder, entre ellos el más usado por la simplicidad de desarrollo es PHP, sin embargo ya podemos encontrar el AJAX .NET, así como también en el desarrollo web con J2EE con sus distintos frameworks, entre ellos uno de los mas populares... STRUTS.
Mediante AJAX podemos realizar peticiones y respuestas HTTP y está muy apoyado en el XML para la transferencia y procesamiento de datos.
AJAX trabaja de manera asincrónica, es una suerte de intermediario entre el aplicativo web y el servidor, manteniendo de manera asíncrona su comunicación con él. Así cuando un usuario mande una petición, la página web no va a tener que ser cargada de nuevo, teniendo solo una pequeña actualización dependiendo de como nosotros la hayamos programado.

Ejemplos claros los encontramos en Gmail, Google suggest por citar algunos,... en este ultimo veremos que al escribir se filtran los resultados...
Este efecto se puede lograr, gracias a frameworks en JavaScript que son open source... como
rico, json, prototype...
Espero esto les sirva para comprender algunas cosas, por lo pronto iré "investigando" algunas cosillas para ponerlas como ejemplo.

A aquel visitante mas que su opinión me gustaría su critica y su apoyo, porque aquí todos estamos para aprender.
Salu2.

sábado, 23 de diciembre de 2006

Primera Entrada

Este es el principio de lo que espero sea un buen blog para gusto de todos.
Gracias.