Ipad

Toda la semana estuve leyendo sobre el rumor del famoso ITablet como fue nombrado por la comunidad Geek. Finalmente este dia llego y primera sorpresa, no hay live stream del producto. Ok nada que alguien con un Iphone no pueda solucionar. Entre a la pagina donde se mostraba el producto como si uno estuviera ahi.. con un sonido horrible y una imagen peor.. pero en fin.
Auxiliando con una pagina de las llamadas blogs live, me propuse a seguir el evento. http://i.engadget.com/2010/01/27/live-from-the-apple-tablet-latest-creation-event/?sort=newest&refresh=30

Como comente en mi twitter: Se ve como Iphone, se comporta como Iphone, ejecuta applicaciones para Iphone que es.. un IPAD!


Steve jobs inicio con una presentacion del NYT “last time there was this much excitement about a tablet, it had some commandments written on it”, hablo de su carrera y de los productos que tiene la linea I-X.
Del tamaño de un Kindle DX (9″), ultradelgado y con una bateria que puede durar 10 horas de video continuo.. steve presento la capacidad de poder ejecutar las applicaciones actuales del Iphone en ella. Ademas soporta 3G y Wifi.

Mejoras en el touch screen, mejor procesador, en fin.. un aparato capaz de experimentar los multimedios satisfactoriamente.
Presento algunos productos de terceros, que se enfocaron a crear aplicaciones orientadas a PAD, y obviamente la introduccion del tan esperado ebook software, con mayores capacidades que Kindle.

Se incluyen aplicaciones para la industria como el Iworks, perfectamente funcionales, asi como la agenda y todo lo necesario para ser un techie fancy en los próximos meses.

Cosa curiosa, las acciones de Apple se cayeron a pesar de lo que era esperado.

Los costos, en asociacion con ATT, 14.99 USD por 250 MB data, 29.99 por datos ilimitados y en Junio 2010 podrian lanzarse un acuerdo de indole internacional, es decir, para el mercado masivo. Algo interesante es saber que ya no tienen bloqueo ye staran abiertos desde del inicio, es decir, adios jailbreak.. bueno eso dicen…

Trae nuevos articulos aunados, como teclado.. cubierta..

El precio inicia en 499 Dolares.. quien dijo yo?

Published in:  on January 27, 2010 at 7:27 pm Leave a Comment
Tags:

Behind UberTwitter

UberTwitter for BBI really was surprise when read about Paul McDonald.
He’s the UberTwitter founder, from my personal point of view, the best Twitter client for Blackberry. So, why this impress me? Ok.. he’s also de developer, QA, TechSupport, and management guy.
Of course at this moment some dev guys are helping him implementing the UberTwitter over other plataforms as Android, but at this times the “garage” apps are still winning land and with a very good product as it.

What a good example of the garage guys generation.

http://berryaddicted.com/article/exclusive-qa-paul-mcdonald-man-behind-ubertwitter

Published in:  on January 21, 2010 at 10:19 pm Leave a Comment
Tags: ,

Debes ver Avatar en el cine!

Por segunda vez vi Avatar en 3D, y tengo que decir que pude apreciar mejor la pelicula hablada en español. Lo unico que puedo decir es que es una pelicula que DEBE verse en el cine.

Para aquellos que no tengan nociones del porque se “DEBE” de ver en el cine, les pido que se situen en los años 80’s, en esa epoca era todavia muy incipiente el uso de las famosas VCR Beta, por lo que las peliculas se tenian que ver en el cine.. forzosamente. Esto ocasionaba que las peliculas se proyectaran por mas de 15 dias y que en muchas ocasiones se pudieran ver 2 X 1. En fin, a partir de finales de los 80’s, fue posible tener las videos a un bajo costo y por ende el poder ver peliculas de baja calidad ya era posible.
Pues hoy 2010 y despues de los premios golden globe, tendriamos que esperar unos 3/4 años para poder tener en consumo masivo las primeras televisiones de 3D tal y como fueron presentadas en el CES 2010.
Es decir, para poder apreciar la pelicula de Avatar y toda la maravilla tecnologica que existe a su alrededor, tendriamos que esperar al menos un par de años.

Ver Avatar en television es el peor error que puedes cometer!

Published in:  on January 18, 2010 at 2:23 pm Leave a Comment

Google go

O sea.. que es go?                        
http://golang.org/

Google go new language

Recentiemente anunciado por google, es un lenguaje de programacion diseñado para aterrizar a nivel de sistemas algo de los avances presentados en los lenguajes de programación modernos, atterrizar a nivel de sistemas lo ubicaría a nivel de C, peero como dicen.. el lenguaje es aún experimental y en evolución.

[Me ha tocado ver la evolucion e involución de varios lenguajes de programación muy fuertes en su epoca:
Clipper, C, Visual basic, C++, Modula, Pascal.]

La sintaxis de Go continua en el mismo camino que C, los programas se organizan en funciones, los bloques de código se enmarcan por curly braces {}, palabras reservadas, en fin no muchas sorpresas sintácticas.

El articulo completo aqui: http://www.infoq.com/articles/google-go-primer

Published in:  on January 15, 2010 at 9:25 pm Leave a Comment
Tags: ,

Java Terracotta

http://www.terracotta.org/
If you look up Grid in Wikipedia there’s no simple answer, it starts… “Grid computing is a phrase in distributed computing which can have several meanings” it goes on to describe a number of meanings.
An interesting reason why grid has taken off is the sideways move in Moore’s law. In the past it was simply the clock speed or bus width that changed as we moved up the Moore’s law graph. In the past we could write a little for-loop and expect it to run roughly twice as fast every 24 months, that’s 1,000 times faster in 20 years. Over the last few years though this little for-loop will still be running at the same speed. Now clock speeds have peeked as distributing heat has become a major issue. We’ve already reached a brick wall at around 3-4GHz so to continue we’ve moved “sideways” into multi core. The difference today is that you can run three or more for-loops at the same time without slowing down the first one.
Why all this technie stuff? because I’m testing on Terracotta and all their benefities.
Terracotta is open source infrastructure software that makes it inexpensive and easy to scale a Java application to as many computers as needed, without the usual custom application code and databases used to share data in a cluster.
Terracotta manages mission critical data using Network-Attached Memory (NAM) technology. NAM enables Terracotta to cluster Java Virtual Machines (JVMs) directly underneath applications, and is a proven runtime approach to providing Java applications both high availability and scalability.
This article describe’s a simple java application following from the “The Definitive Guide to Terracotta: Cluster the JVM for Spring, Hibernate and POJO Scalability”
http://www.amazon.com/Definitive-Guide-Terracotta-Hibernate-Scalability/dp/1590599861
The idea is to have a simple java program HelloClusteredWorld.java  (I include the package sample to understand clearly how to define it in the tc-config file)
package sample;
public class HelloClusteredWorld {
private static final String message = “Hello Clustered World!”;
private static final int length = message.length();
private static char[] buffer = new char [length ];   // This variable will be locked and shared
private static int loopCounter; // This variable will be locked and shared
public static void main( String args[] ) throws Exception {
while( true ) {
synchronized( buffer ) {
int messageIndex = loopCounter++ % length;
if(messageIndex == 0) java.util.Arrays.fill(buffer, ‘\u0000′);
buffer[messageIndex] = message.charAt(messageIndex);
System.out.println( buffer );
Thread.sleep( 100 );
}
}
}
}
Another requirement the tc-config.xml file which defines the way terracotta wil be integrated or viceverse.
<?xml version=”1.0″ encoding=”UTF-8″?>
<!–
All content copyright (c) 2003-2007 Terracotta, Inc., except as may otherwise be noted in a separate copyright notice. All rights reserved.
–>
<!–
This is a Terracotta configuration file that has been pre-configured for use with DSO. All classes are included for instrumentation, and all instrumented methods are write locked.
For more information, please see the product documentation.
–>
<tc:tc-config xmlns:tc=”http://www.terracotta.org/config”
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=”http://www.terracotta.org/schema/terracotta-4.xsd”>
<servers>
<!– Tell DSO where the Terracotta server can be found. –>
<server host=”localhost”>
<data>%(user.home)/terracotta/server-data</data>
<logs>%(user.home)/terracotta/server-logs</logs>
<dso>
<persistence>
<mode>permanent-store</mode>
</persistence>
</dso>
</server>
</servers>
<!– Tell DSO where to put the generated client logs –>
<clients>
<logs>%(user.home)/terracotta/client-logs</logs>
</clients>
<application>
<dso>
<roots>
<root>
<field-name>sample.HelloClusteredWorld.buffer</field-name>
</root>
<root>
<field-name>sample.HelloClusteredWorld.loopCounter</field-name>
</root>
</roots>
<!– Start by including all classes for instrumentation.
It’s more efficient to instrument only those classes that
hold shared roots or are part of a shared root’s graph.
–>
<instrumented-classes>
<include>
<class-expression>sample.HelloClusteredWorld</class-expression>
</include>
</instrumented-classes>
<!– Apply write level autolocks for all instrumented methods.
It’s more efficient to create finer-grain locks as dictated
by your application needs.
–>
<locks>
<autolock>
<lock-level>write</lock-level>
<method-expression>void sample.HelloClusteredWorld.main(..)</method-expression>
</autolock>
</locks>
</dso>
</application>
</tc:tc-config>
The servers and clients sections are self-explain and the real mess is located under the application section.
The roots are the fields which will be shared and locked in the application as you can see the buffer variable and loopCounter was wrapped around a root tag, plese take care to include the complete path for each variable including package and classname (sample.HelloClusteredWorld.buffer)
How do you execute it?
start your terractota server
C:\terracotta-3.2.0\bin\start-tc-server.bat
compile your class and execute it TWICE using :
C:\shared\Proyectos\Applications\HelloClusteredWorld>\terracotta-3.2.0\bin\dso-java.bat -jar HelloClusteredWorld.jar sample.HelloClusteredWorld
You will see both JVM are sharing the char[] buffer and int loopCounter, and try stopping and restarting one of the JVM, you will see the High Availability, screen attached:

Terracotta simple tests results

Published in:  on at 5:18 pm Leave a Comment
Tags: , ,

16 salarios IT en declive para el 2010/Top 16 Declining Technology Salaries for 2010

Recessionary economic pressures have hit every industry and wages are down, including IT. In its annual salary guide, Robert Half Technology outlines in great detail the changes to 70 job titles and compares 2009 to the coming year. — Whattt?? mejor en español.
La presion de la recesión económica ha impactado cada industria y los salarios van a la baja, incluyendo IT. En esta guía anual de salarios, Robert Half Technology describe con gran detalle los cambios de 70 puestos de trabajo y los compara el 2009 con el 2010.
La siguiente es una lista de esos puestos de trabajo mas afectados por el declive promedio nacional del salario. Existen diferencias regionales y skills especificos pueden mostrar diferencia en los números.
Por ejemplo, un desarrollador con skills en sharepoint puede sumar 10% al salario promedio, para mas detalle consulte la lista completa de Robert Half Technology:
tienen que verlo..fusilado de aquí:
Published in:  on at 5:02 pm Leave a Comment
Tags: , ,

SMS maliciosos

A partir del 1ro de Enero del 2010 empece a recibir un #$#)/* mensaje de un proveedor de servicios 3300, con relacion a los sueños.

He recibido alrededor de 8 en total, hable al centro de servicio de IUSACELL y me comentaron que respondiera ese mensaje con BAJA, pues ellos no reconocian el servicio.
¿What? como fue posible que mi numero fuera seleccionado mágicamente (o aleatoriamente) y como es posible que este tipo de mensajes lleguen a tu celular sin haberlos autorizado?
Pedi a IUSACELL que me bloquearan la recepcion de este emisor (3300) y me dicen que no pueden hacerlo y que mejor evite abrir invitaciones y/o mandar mensajitos a las promociones por ahi abiertas.. Creen que yo voy a malgastar mi dinero en tonterias asi??,

Seguro que es un mecanismo automático y con algun SMS Spoof en acción para ocultar pistas, (Wow- yo y mi teorias de conspiración!!)

Esten atentos y traten de darse de baja de esos servicios antes de que sea demasiado tarde y costoso :D

Robo en celulares

Published in:  on January 13, 2010 at 6:35 pm Leave a Comment

Ldap and jboss configuration

Jboss and LDAP configuration

Well, I was requested to set the configuration for LDAP login authorization on my Jboss app server.
Including users and role validation, it took some time to have the configuration and want to share with you my final results. I hardly recommend to use the an ldap browser in order to have all the LDAP data available and tested

http://www.brothersoft.com/ldap-browser-14779.html

I’ll try to give an overview of how to configure the Jboss and web.xml files in order to allow the user and role automatic validation.

a) JSP Page including the validation
 Including the j_security_check action and j_username/j_password inputs. Jboss will catch this values automatically and we don´t will require to modify or code nothing else.

<form action=”j_security_check” method=”post”>
  Username: <input type=”text” name=”j_username” size=”22″/>
  Password: <input type=”password” name=”j_password” size=”22″/>
  <input type=”submit” value=”Login” />
 </form>

b) user/password intercepted by the JBoss SecurityInterceptor and passed to the JAASSecurityManager class as Principal and Credential objects. You can redirect to specfic pages support if the validation was succesful or not. For this we includes the pages on web.xml

 <login-config>
  <auth-method>FORM</auth-method>
  <form-login-config>
   <form-login-page>/sched/welcome.do</form-login-page>
   <form-error-page>/sched/welcome.do?error=true</form-error-page>
  </form-login-config>
 </login-config>
 

c) The authentication is setup in the login-config.xml file specifying that this security domain requires a certain set of LoginModules:

Use the following screen to figure how the final configuration was obtained:

<application-policy name = “myApp”>
        <authentication>
            <login-module code=”org.jboss.security.auth.spi.LdapLoginModule”
                          flag=”required”>
                <module-option name=”java.naming.factory.initial”>com.sun.jndi.ldap.LdapCtxFactory</module-option>
                <module-option name=”java.naming.provider.url”>ldap://1.1.1.1:389/</module-option>
                <module-option name=”java.naming.security.authentication”>simple</module-option>
                <!– Rebind as a user with search priviledges for the role queries –>
                <module-option name=”java.naming.security.principal”>uid=admin,ou=system</module-option>                   
                <module-option name=”java.naming.security.credentials”>secretpasswordinplaintext</module-option>                   

                <module-option name=”principalDNPrefix”>uid=</module-option>                   
                <module-option name=”principalDNSuffix”>,ou=users,ou=system</module-option>
                <module-option name=”rolesCtxDN”>ou=cess,ou=groups,ou=system</module-option>
                <module-option name=”uidAttributeID”>uniquemember</module-option>
                <module-option name=”matchOnUserDN”>true</module-option>
                <module-option name=”roleAttributeID”>cn</module-option>
                <module-option name=”roleAttributeIsDN”>false</module-option>
                <module-option name=”searchTimeLimit”>5000</module-option>
                <module-option name=”searchScope”>ONELEVEL_SCOPE</module-option>
            </login-module>
        </authentication>
    </application-policy> 

d) be sure to specify the security domain in the jboss-web.xml file, with a declaration like this:

  <?xml version=’1.0′ encoding=’UTF-8′ ?>
    <!DOCTYPE jboss-web
   PUBLIC “-//JBoss//DTD Web Application 2.3V2//EN”
   ”
http://www.jboss.org/j2ee/dtd/jboss-web_3_2.dtd“>

  <jboss-web>
   <security-domain>java:/jaas/myApp</security-domain>
  </jboss-web>

 

e) Includes changes over jboss-log4y.xml in order to get more useful trace data in the log file.

  <category name=”org.jboss.security”>
   <priority value=”DEBUG”/>
  </category>
  <category name=”org.jboss.web.tomcat.security”>
   <priority value=”TRACE”/>
  </category>
  <category name=”org.apache.catalina”>
   <priority value=”DEBUG”/>
  </category>  

f) Includes the roles and filters desired in your application in the web.xml, in this example we are allowing the use of the application just at the users with role ADMIN.

 <web-app>
 <welcome-file-list>
   <welcome-file>/index.jsp</welcome-file>
  </welcome-file-list>

  <!– security roles –>
  <security-role>
     <role-name>ADMIN</role-name>
  </security-role>  
  
  <security-constraint>
   <web-resource-collection>
    <web-resource-name>System admin actions</web-resource-name>
    <url-pattern>/sched/*</url-pattern>
    <url-pattern>/admin/*</url-pattern>
   </web-resource-collection>
   <auth-constraint>
    <role-name>AGENT</role-name>
   </auth-constraint>
  </security-constraint>
  ….
 </web-app>

Published in:  on January 12, 2010 at 11:35 pm Leave a Comment

Developing a semantic web application

Published in:  on October 22, 2009 at 2:52 pm Leave a Comment
Tags:

Jena tutorial

Published in:  on October 20, 2009 at 3:37 pm Leave a Comment
Tags: