blog de 043h68

Certificación SCJP 6 Objetivo 1.1

Hace mucho que surgió en mi cabeza la necesidad de tener la certificación de Java, por el momento no cuento con alguna, desgraciadamente no había tenido espacio de dar una leída al libro de Katy Sierra recomendado, pero aprovechando las circunstancias de mi actual trabajo trataré de publicar a diario un avance de los objetivos del libro con tres propósitos:

Publicaré las notas de estudio para que los interesados en realizar esta certificación sirva de refuerzo o impulso, esperando que algunos de los que ya están certificados puedan ayudar a temas que sean importantes, difíciles o se vayan escapando.

Objetivo 1.1 Declaración de interfaces

Una interfaz es un contrato (Conjunto de requisitos que deben satisfacer las clases que se ajusten a esa interfaz).

Al crear una interfaz, estamos definiendo un contrato para lo que una clase puede hacer, pero sin indicar como lo va a hacer.

Se puede pensar en una interfaz como en una clase que es 100 % abstracta.

Desarrollo inseguro, aún con un Object-Relational Mapping.

Seguro más de una vez has escuchado cuándo alguien dice orgulloso: "Mi aplicación es más segura, uso Hibernate para la persistencia de mis datos."

Si no, algún día toparás con alguien que te lo diga.

El uso de herramientas como Hibernate, que nos permiten trabajar con objetos durante nuestras sesiones de trabajo no garantiza que nuestra aplicación sea inmune. Simplemente no hay aplicaciones inmunes, pero no hay que dejar que sea trabajo fácil para el que intenta corromper nuestra seguridad.

Por defecto Hibernate utiliza sentencias de tipo Prepared Statements lo cual de primera instancia nos permitiría pensar que no debemos preocuparnos por algún SQL Injection, pero no es así, por ejemplo:

String hqlQuery = " select pftDescuento.numeroContrato as numContrato, " +
                           " where pftSolicitud.comp_id.sptTitularGrupo.comp_id.id=  " + idUsuario+
                           ...

Como vemos la variable idUsuario puede contener caracteres no deseados que pueden ser interpretados de manera que generen errores o peor aún, fugas de información.

Otro ejemplo con el mismo caso :

 

Lista de deseos, que es lo que quiere Oracle en el JDK 8,9,10 y 11.

Les comparto la lista de deseos de Oracle que según se planea se empiecen a cumplir a partir del release de la versión 8 del JDK.

Se nota la tendencia a adoptar algunas características de algunos otros lenguajes que en este tiempo han venido ganando gran afecto entre los que gustamos y vivimos de esto que le dicen el desarrollo de software.

Cosas del Core de Java que debes saber.

Hace tiempo me hablaron de una empresa para hacerme una entrevista, y como era una empresa que si me llamo la atención empece el proceso de selección hasta que llego el tan esperado momento de: "¿Podemos concertar una entrevista para que nuestro experto te haga algunas preguntas?" La respuesta ya la conocen y cuándo termino con el cuestionario recordé que algunas de preguntas ya las conocía de tiempo atrás, las cuales no tienen desperdicio y les comparto aquí traducidas, y al final del texto dejo el link del texto "original".

¿Cuál es un objeto inmutable en Java? ¿Se puede cambiar los valores de un objeto inmutable?

Scala ahora sobre .NET

Miguel García, que forma parte del grupo de Scala de la EPFL, se ha esforzado por hacer que la productividad de Scala quede a disposición de los desarrolladores. NET también. En un proyecto financiado por Microsoft, que ha alcanzado un hito importante en la entrega de esa capacidad. En esta entrevista Miguel le dice cómo ahora se puede utilizar Scala en .Net y da una idea de cómo se ha logrado este ambicioso proyecto y la dirección futura.

¿Por qué la gente necesita en Scala. Net?

Miguel:

Hay muchas razones por qué esto es atractivo tanto para los desarrolladores y empresas en general. Scala es un lenguaje de programación conciso y altamente productivo. Mediante el uso de Scala. NET, los desarrolladores pueden producir aplicaciones más rápidamente y tienen la posibilidad de desplegar a través de las dos plataformas importantes de la industria, la JVM y .Net.

Clojure

Según la misma descripción que dan desde el sitio oficial de Clojure

" Clojure es un lenguaje de programación dinámica que se dirige a la máquina virtual de Java. Está diseñado para ser un lenguaje de propósito general, la combinación de accesibilidad y el desarrollo interactivo de un lenguaje de script con una infraestructura eficiente y robusto para la programación multiproceso. Clojure es un lenguaje compilado - que compila directamente al código de bytes de JVM, sin embargo, sigue siendo completamente dinámico. Cada función compatible con Clojure se admite en tiempo de ejecución. Clojure proporciona un fácil acceso a los marcos de Java, con notas de tipo opcional y la inferencia de tipos, para garantizar que las llamadas a Java pueden evitar la reflexión."

Aquí les dejo un buena entrada a este blog en donde le dan un recorrido a lo que es Clojure. De donde nace, como, de que se trata y por que la gente de Lisp se esta pasando a este lenguaje.

http://batsov.com/Clojure/Java/2011/05/12/jvm-langs-clojure.html

Saludos!!

El álgebra de datos y el cálculo de mutaciones

Les comparto este texto que encontré como noticia en el HN.

Corregido. :P

Saludos !

http://blog.lab49.com/archives/3011

Canción muy Geek

Bueno, leyendo un poco por ahí encontré un blog donde publican la entrada de una canción, sin duda la mas friki que he escuchado en mi corta vida.

Les dejo el texto por acá y también el link de descarga por si alguno quiere.

*************************************************************************************************
Hoy no me pude dormir
y me puse con el Delphi
me agarro la inspiracion
y me hice un ABM

Como lo quise hacer bien
le puse un page control
un treeview y diez edits
y un bitmap en el fondo

Coro:

Lo podes abrir y datos cargar
tirar un lookup y mandar a grabar
y mi ABM es el mejor

Valida muy bien, tambien es veloz
y si lo usas mal te tira un error
y mi ABM es el mejor

Para que ande muy bien
le puse un poco de assembler
y para no recompilar
lo meti en una DLL

Este ABM que hice
tambien es compatible
no solo usa BDE
tambien ADO y DBExpress

Coro.

Para que no tenga igual
le exporte una interface
ya es un objeto COM
y lo herede de otra clase

Tambien le redefini
sus metodos virtuales
y le agregue en published
a todas sus propiedades

Coro.

Escalabilidad y paradigmas de almacenamiento de datos

No hace muchos años que empezamos a hablar de el Cloud computing y en pensar en todos los beneficios que esto nos traería, todo mundo habla del tema y pareciera que sera todo fabuloso, aunque hay un pequeño grupo de gente que vamos a tener que pensar diferente para enfrentar estos nuevos cambios.

Paradigmas en el almacenamiento de datos.

Quería nombrarle "Nuevos Paradigmas en el almacenamiento de datos", pero la verdad es que muchos de los paradigmas que resurgen hoy en día son mas viejos que los mismos que hemos utilizado quizás desde que desarrollamos, aunque no los conozcamos O.O

   
Es interesante destacar que las <a href="http://es.wikipedia.org/wiki/NoSQL">NoSQL</a> existen desde hace muchos años (1970), con experimentos en universidades europeas y norteamericanas, sobre sistemas de almacenamiento abiertos. Los almacenamientos de par Clave/Valor, vieron la luz en 1979 con el proyecto DBM, y mas tarde BerkeleyDB (1986). Si consideramos que LotusDB es una base de datos orientada a documentos, tenemos que la empresa Lotus dió a luz este proyecto en 1989.

Steve Wozniak: Android puede ser la plataforma dominante para smartphone

El co-fundador de Apple, Steve Wozniak, nunca ha sido de los que tienen pelos en la lengua.

Hoy no es diferente, como se demuestra en una entrevista con el periódico holandés De Telegraaf en los Países Bajos. La primera revelación es una admisión de que Apple ha colaborado con una conocida empresa japonesa de electrónica de consumo en 2004 para desarrollar un teléfono que se adelantó a su tiempo. Woz es citado diciendo que mientras que Apple se contentó con la calidad, que "quería algo que sorprendiera al mundo." Obviamente, el teléfono fue dejado de lado seguido por el anuncio de Apple del iPhone en enero de 2007.

Distribuir contenido