Thursday, December 27, 2007

El manifiesto del Hacker

Casualmente hoy como cosa extraña no tengo mucho sueño, asi que me he encargado de postear algunas cosas que siempre
me gustaria tener a mano, esto, no es que cueste encontrarlo en internet, pero simplemente me gustaria acotar algunas de las
frases, que para mi son las mas representativas de este documento. Perdonaran el "español de españa" pero si de algo estoy
seguro, es que no lo iba a traducir yo :P , en especial , la parte de "crios" me molesta un poco, pero creo que se entiende.

Las frases principales que siempre me han gustado , son: 

  • Las que se refieren a la igualdad dentro de este mundo, ahora aplanado ( esto se lo robe a Thomas L. Friedman ) y para mi popularizado gracias a la tecnologia, GRACIAS GOOGLE, WIKIPEDIA, LINUX, los BLOGS, los FOROS, y todo tipo de democratizacion de la informacion y del espacio de difusion publico. Esta ha sido realmente una de las mayores proezas de la tecnologia desde la invencion de la imprenta, una nueva era, en la que el conocimiento es de todos y no de unos pocos ( la imprenta fue el primer paso hacia la popularizacion de la informacion ) , en donde todos estamos interconectados y en donde no importando en donde te encuentres, Bangladesh, Delhi, Moscu o San Salvador, tenemos las mismas oportunidades de ser escuchados ( leidos ) por una cantidad mas que suficiente de cibernautas. Donde, podemos encontrar la informacion, que antes no era accesible para todos.Una infraestructura que nos permite colaborar los unos con los otros y dejar atras el egoismo ..... pareciera que Marx tenia razon, hace tanto tiempo, cuando escribio el "manifiesto comunista"... ( otro dia explicare este punto ... parecera increible realmente n_n )

  • Las referentes a la falta de respeto del sistema
    educativo, sobre las personas excepcionales, gracias al sistema educativo en el que estamos, la mayoria de jovenes que podrian llegar a ser grandes inventores o creadores, se ven forzados a encasillarse, a aprender formulas y repetir las mismas tonterias que nosotros los que no somos privilegiados nos cuesta aprender. Tristemente, esto lo unico que hace es que estas personas, no avancen en su vida, pues se sienten frustrados, solamente si aparte de una inteligencia excepcional poseen una fuerte personalidad, superan estas frustraciones, lastimosamente, no es siempre el caso. Pero vamos, todo es en pro del sistema.
El dibujo, que tiene que ver, no se,sique mejor que un fractal , arte matematico >_<

/*

Manifesto del Hacker

*/

Hoy han cogido a otro, aparece en todos los periódicos.
"Joven arrestado por delito informático", "hacker arrestado por irrumpir en un sistema bancario".
"Malditos críos. Son todos iguales".
¿Pero pueden, con su psicología barata y su cerebro de los años cincuenta, siquiera
echar un vistazo a lo que hay detrás de los ojos de un hacker?
¿Se han parado alguna vez a pensar qué es lo que les hace comportarse así, qué les ha convertido en lo que son?
Yo soy un hacker, entre en mi mundo. Mi mundo comienza en el colegio.
Soy más listo que el resto de mis compañeros, lo que enseñan me parece muy aburrido.

"Malditos profesores. Son todos iguales".
Puedo estar en el colegio o un instituto. Les he oído explicar cientos de veces cómo se reducen las fracciones. Todo eso ya lo entiendo.
"No, Sr. Smith, no he escrito mi trabajo. Lo tengo guardado en la cabeza".
"Malditos críos. Seguro que lo ha copiado. Son todos iguales".


Hoy he descubierto algo. Un ordenador. Un momento, esto mola.

Hace lo que quiero que haga. Si comete errores, es porque yo le he dicho que lo haga.
No porque yo no le guste, me tenga miedo, piense que soy un listillo o no le guste ni enseñar ni estar aquí.

Malditos críos. A todo lo que se dedican es a jugar. Son todos iguales. Entonces ocurre algo... se abre una puerta a un nuevo mundo... todo a través de la línea telefónica,
como la heroína a través de las venas, se emana un pulso electrónico, buscaba un refugio ante las
incompetencias de todos los días... y me encuentro con un teclado. "Es esto... aquí pertenezco... ". Conozco a todo mundo... aunque nunca me haya cruzado con ellos,
les dirigiese la palabra o escuchase su voz... los conozco a todos... malditos críos. Ya está enganchado otra vez al teléfono. Son todos iguales... puedes apostar lo quieras a que son todos iguales... les das la mano y se toman el brazo... y se quejan de que se lo damos todo tan masticado que cuando lo reciben ya ni siquiera tiene sabor.

O nos gobiernan los sádicos o nos ignoran los apáticos. Aquellos que tienen algo que enseñar buscan  desesperadamente alumnos que quieran aprender, pero es como encontrar una aguja en un pajar.

Este mundo es nuestro... el mundo de los electrones y los interruptores, la belleza del baudio.
Utilizamos un servicio ya existente, sin pagar por eso que podrían haber sido más barato si no fuese por esos especuladores. Y nos llamáis delincuentes. Exploramos... y nos llamáis delincuentes. Buscamos ampliar nuestros conocimientos... y nos llamáis delincuentes.

No diferenciamos el color de la piel, ni la nacionalidad, ni la religión...
y vosotros nos llamáis delincuentes. Construís bombas atómicas, hacéis la guerra,
asesináis, estafáis al país y nos mentís tratando de hacernos creer que sois buenos, y
aún nos tratáis de delincuentes.

Sí, soy un delincuente. Mi delito es la curiosidad. Mi delito es juzgar a la gente por lo que dice y por lo que piensa, no por lo que parece. Mi delito es ser más inteligente que vosotros, algo que nunca me perdonaréis. Soy un hacker, y éste es mi manifiesto. Podéis eliminar a algunos de nosotros, pero no a todos... después de todo, somos todos iguales


Do a little more each day than you think you possibly can

Do a little more each day than you think you possibly can.
- Lowell Thomas

A child on a farm sees a plane fly overhead and dreams of
a faraway place. A traveler on the plane sees the farmhouse
and dreams of home.
- Carl Burns

Each day comes bearing its own gifts. Untie the ribbons.
- Ruth Ann Schabaker

A good scientist is a person with original ideas.
A good engineer is a person who makes a design that works
with as few original ideas as possible.
- Freeman Dyson

I am not born for one corner.
The whole world is my native land.
- Lucius Annaeus Seneca (4 BC-65 AD)

We cannot do everything at once,
but we can do something at once.
- Calvin Coolidge

Sunday, December 09, 2007

Code Monkey

Code Monkey

Buenisima la cancion .... simplemente geek , me tarde un poco en postearla, pero vamos, disfrutemoslo :)



Code Monkey get up get coffee.
Code Monkey go to job.
Code Monkey have boring meeting
with boring manager Rob.

Rob say Code Monkey very dilligent
but his output stink.
His code not functional or ellegant
what do Code Monkey think?

Code Monkey think maybe manager wanna write god damn login page himself.
Code Monkey not say it outloud.
Code Monkey not crazy, just proud.

Code Monkey like freetos.
Code Monkey like tab and mountain dew.
Code Monkey very simple man.
with big warm fuzzy secret heart.
Code Monkey like you.
Code Monkey like you.
================================================

Code Monkey hang around at front desk.
tell you "sweater look nice".
Code Monkey offer buy you soda.
Bring you cup, bring you ice.

You say no thank you for the soda cause,
soda make you fat.
Anyway, you busy with the telephone
no time for chat.

Code Monkey have long walk back to cubical,he sit down pretend to work.
Code Monkey not thinking so straight.
Code Monkey not feeling so great.


Code Monkey like freetos.
Code Monkey like tab and mountain dew.
Code Monkey very simple man.
with big warm fuzzy secret heart.
Code Monkey like you.
Code Monkey like you. -- a lot
================================================

Code Monkey have every reason
to get out this place.
Code Monkey just keep on working
to see your soft, pretty face.

Much rather wake up eat a coffe cake
take bath, take nap.
"This job fullfilling in creative way."
Such a load of crap

Code Monkey think some day he have everything, even pretty girl like you.
Code Monkey just waiting for now.
Code Monkey says "someday, somehow."

Code Monkey like freetos.
Code Monkey like tab and mountain dew.
Code Monkey very simple man.
with big warm fuzzy secret heart.
Code Monkey like you.
Code Monkey like you.

Post original

Sunday, December 02, 2007

MD4J .. not production ready

Estaba probando algunos frameworks, para hacer algunos mantenimientos de manera automatica, siendo que ya poseo los hbms de hibernate, se me ocurrio que un MDA que utilizase hbms como entrada seria fabuloso. Encontre el MD4J , pero por el momento, mi experiencia no ha sido agradable.

Es interesante como md4j ha olvidado algunas cosas basicas
dentro de su task de maven, por ejemplo, luego de generar el codigo,
el goal, busca realizar una compilacion, pero le hacen falta algunas
librerias. Esto se resuelve agregando este par de dependencias en
el POM que se incluye en el proyecto del ejb


<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>


Claro, si lograste llegar hasta alli sin ningun problema, pues me has
sacado una ventaja barbara. Antes de llegar a este problema de compilacion
tube un problema de classpath con los tasks de ant que se corren desde maven
para generar el codigo. Le faltan algunas referencias


dentro de artifact Id maven-antrun-plugin falta esta dependencia
debido a que el classpath de ant no posee un parser de XML por defecto
al menos no aun en el 1.6.5

<dependency>
<groupId>commons-jxpath</groupId>
<artifactId>commons-jxpath</artifactId>
<version>1.2</version>
</dependency>


Ahora viene lo peor, luego de pasar por estos problemas de classpath, cuando
llega el momento de el fabuloso mvn clean install en el modulo web
me dice que no encuentra la propiedad .classpath .... POR FAVOR !!!!

[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error executing ant tasks

Embedded error: Reference maven. .classpath not found.
[INFO] ------------------------------------------------------------------------

en la linea 238 me encuentro con esto

<taskdef name="webdoclet" classname="xdoclet.modules.web.WebDocletTask">
<classpath refid="maven.
.classpath"/>
</taskdef>

Empiezo a creer que evaluar esto ha sido un error, pero vamos, ya tengo 3 horas
quizas lo llevaremos a un mejor fin

bien, lo sustituyo por

<taskdef name="webdoclet" classname="xdoclet.modules.web.WebDocletTask">
<classpath refid="maven.compile.classpath"/>
</taskdef>

ARGGGGHHHHH ! , nuevamente, el goal de compile, parece fallar, pero vamos, solo son
dependencias, veamos

my bad !!!!! son las clases del otro subproyecto las que no compilan .... deben ser las
dependencias, correre el task desde el parent POM y veamos q sucede, claro, tampoco funciona
... veamos las dependencias del web-POM ..
ok, en filter.properties cambie esta propiedad para que machara
domain.package.name = <my package>

interesante, sigue buscando por <gr.abiss.md4j.sampledomain.business>
que era lo que tenia que hacer esa propiedad seguramente, cached quizas ...

lets seee
mvn clean

OMG you've gotta be kidding me !!!!!!!

sigue alli, estara quemado por alli, lets check this out
ohhh si, quemadisimo, ok, queme el mio, no tengo ganas de seguirme peleando
con variables, AUN NO LE HE VISTO EL BENEFICIO A ESTE MDA !!

:)

wow

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] ------------------------------------------------------------------------
[INFO] MD4J QuickStarter ..................................... SUCCESS [10.194s]
[INFO] MD4J QuickStarter: Domain Module ...................... SUCCESS [11.135s]
[INFO] MD4J QuickStarter: EJB Module ......................... SUCCESS [19.864s]
[INFO] MD4J QuickStarter: WAR Module ......................... SUCCESS [31.787s]
[INFO] MD4J QuickStarter: EAR Module ......................... SUCCESS [10.733s]
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 minute 25 seconds
[INFO] Finished at: Sun Dec 02 19:28:37 CST 2007
[INFO] Final Memory: 25M/47M
[INFO] ------------------------------------------------------------------------

Estaba pensando que jamas veria esto :')

falta ver si funciona ....

Abortado, mi jboss muere al querer deployar el aplicativo generardo ...

quizas otro dia continuo probando, pero this plain sucks ...

Tuesday, September 04, 2007

quick enterprise java

Sera que podemos hacer una J2EE Application en un abrir y cerrar de ojos, sin depender e un IDE en especifico, y de algunos wizards propietarios, pues casi, casi casi, con un poco de MAVEN podemos lograrlo, en la parte inferior observaremos algunos HOW TO rapidos
que son de utilidad para comenzar con el trabajo de un nuevo dia


-- ----------------------------------------------------------------------
WTP maven
-- ----------------------------------------------------------------------
1. mkdir
2. copiar el pom de inicio
3. crear el proyecto
4. struts-workbench $ mvn -Dwtpversion=R7 eclipse:eclipse
5. importarlo en el eclipse
5.1 los jars han sido agregados como dependencias del modulo J2EE
6.



Nota: Para poder utilizar estos plugins de maven, se deben bajar del site
de WebTide, alli se encuentran una variedad de plugins que pueden sernos utiles
www.webtide.com/resources.jsp

Para instalarlos se realizan basicamente 3 pasos

1. Descomprmirlos en su propio directorio
2. ejecutar mvn install
3. Estamos listos para utilizarlos

-- ----------------------------------------------------------------------
SIMPLE STRUTS APP
-- ----------------------------------------------------------------------
struts plugin

1. Generar el esqueleto del proyecto
1.1 Ingresar al directorio en el que se creara el proyecto
ingresar al directorio en el que creare el proyecto
cd /Users/carlosrobertorodriguez/development/workspace_32

1.2 maven nos generara el layout del proyecto con el comando:

mvn archetype:create \
-DarchetypeGroupId=com.webtide \
-DarchetypeArtifactId=maven-archetype-Struts \
-DarchetypeVersion=1.0-SNAPSHOT \
-DgroupId=com.scs.struts.startup.app \
-DartifactId=startup-struts-simple-app

2. Luego crearemos el proyecto para MI IDE favorito, eclipse.
mvn eclipse:eclipse

si no esta seteada en su workspace la variable M2_REPO, entonces debemos agregarla

mvn -Declipse.workspace= eclipse:add-maven-repo

mvn -Declipse.workspace=/Users/carlosrobertorodriguez/development/workspace_32y \
eclipse:add-maven-repo

o si prefieren hacerlo desde el eclipse, simplemente abran su ide, seteen el path en
windows
preferences
java
build path
classpath
luego presionen
new
M2_REPO = <>

3. Para bajar las librerias necesarias y compilar el proyecto creado por maven, solamente
utilizaremos el goal install del POM generado por el artefacto

mvn install


4. Estamos listos para ver nuestra aplicacion en accion !!!!

mvn jetty:run




-- ----------------------------------------------------------------------
-- ----------------------------------------------------------------------

SIMPLE SPRING APP
con maven y eclipse

1. Generar el esqueleto del proyecto
1.1 Ingresar al directorio en el que se creara el proyecto
ingresar al directorio en el que creare el proyecto
cd /Users/carlosrobertorodriguez/development/workspace_32

1.2 maven nos generara el layout del proyecto con el comando:

mvn archetype:create \
-DarchetypeGroupId=com.webtide \
-DarchetypeArtifactId=maven-archetype-Spring \
-DarchetypeVersion=1.0-SNAPSHOT \
-DgroupId=com.scs.simple.startup.app \
-DartifactId=startup-simple-app

2. Luego crearemos el proyecto para MI IDE favorito, eclipse.
mvn eclipse:eclipse

si no esta seteada en su workspace la variable M2_REPO, entonces debemos agregarla

mvn -Declipse.workspace= eclipse:add-maven-repo

mvn -Declipse.workspace=/Users/carlosrobertorodriguez/development/workspace_32y \
eclipse:add-maven-repo

o si prefieren hacerlo desde el eclipse, simplemente abran su ide, seteen el path en
windows
preferences
java
build path
classpath
luego presionen
new
M2_REPO = <>

3. Para bajar las librerias necesarias y compilar el proyecto creado por maven, solamente
utilizaremos el goal install del POM generado por el artefacto

mvn install


4. Estamos listos para ver nuestra aplicacion en accion !!!!

mvn jetty:run
-- ----------------------------------------------------------------------
-- ----------------------------------------------------------------------


SIMPLE SPRING MVC + HIBERNATE 3.2
con maven y eclipse



1. Iniciar BD de ]
sudo /usr/local/mysql/bin/mysqld_safe --user=mysql

2. Generar el esqueleto del proyecto

2.1 ingresar al directorio en el que creare el proyecto
cd /Users/carlosrobertorodriguez/development/workspace_32

2.2 maven nos generara el layout del proyecto con el comando:

mvn archetype:create \
-DarchetypeGroupId=com.webtide \
-DarchetypeArtifactId=maven-archetype-SpringJpa \
-DarchetypeVersion=1.0-SNAPSHOT \
-DgroupId=com.scs.startup.app \
-DartifactId=startup-springJpa-app


2.3 Luego crearemos el proyecto para eclipse con el comando
primero agreguemos al path del eclipse una variable que apunte al repositorio
maven nos ayudara con esto
mvn -Declipse.workspace= eclipse:add-maven-repo

mvn -Declipse.workspace=/Users/carlosrobertorodriguez/development/workspace_32y \
eclipse:add-maven-repo

o si prefieren hacerlo desde el eclipse, simplemente abran su ide, seteen el path en
windows
preferences
java
build path
classpath
luego presionen
new
M2_REPO = <>

mvn eclipse:eclipse


3. Para bajar las librerias necesarias y compilar el proyecto creado por maven, solamente
utilizaremos el goal install del POM generado por el artefacto

mvn install


4. Estamos listos para ver nuestra aplicacion en accion !!!!

mvn jetty:run

Vale recalcar que este aplicativo no esta utilizando struts, sino un servlet,
pero para los objetivos de esta capacitacion que es el manejo de spring, nos
sera suficientemente util


5. Prestemos atencion a los archivos

/startup-app/src/main/webapp/WEB-INF/
applicationContext.xml

springDemo-servlet.xml

En el primero podemos observar que estos artefactos fueron hechos por un italiano +_+

Podemos observar en el paquete com.scs.startup.app.domain , los objetos con los cuales se realizara la persistencia del aplicativo, debidamente anotados haciendo uso de las capacidades de java 1.5 + hibernate 3.2

Luego, movamonos hacie el paquete com.scs.startup.app.service.dao , en el cual se encuentran los
servicios de persistencia de Dat Access Object para persistir los objetos anotados en el paquete
que revisamos con anterioridad

Thursday, August 23, 2007

espacio en particiones UNIX ( du -cks ) DUCKS :)

Patos, si, patos, asi no se me olvida el comando, muy buena manera de recordar el comando, aunque en realidad du -chs me parece mejor, pq no me gusta ver el monton de numeritos a la par de los archivos o carpetas, en fin

Super quick guide
% de utilizacion -h para "human readable" en darwin unix

$> df -h

que archivo(s) son los que utilizan mayor espacio, retorna el top 15 sobre el directorio especificado en "human readable format"

$> sudo du -sh /* | sort -nr | head -15

( si no eres un usuario de algo que necesite permisos para hacer eso, quitale el sudo )

Este buen articulo sobre como encontrar en donde se esta tu el espacio en unix y similares explora tanto los comandos como los resultados, muy util si eres un begginer de administrador unix como yo ... Articulo

Tuesday, August 14, 2007

Feral Employees

Se que yo fui uno de ellos, pero ya cuando estas del otro lado, esto es simplemente hilarante








For the fallen...

Interesante poema, fue escrito al inicio de la Primera guerra mundial, en especial ,
me gusta el texto en negrillas

With proud thanksgiving, a mother for her children,
England mourns for her dead across the sea.
Flesh of her flesh they were, spirit of her spirit,
Fallen in the cause of the free.

Solemn the drums thrill: Death august and royal
Sings sorrow up into immortal spheres.
There is a music in the midst of desolation
And a glory that shines upon our tears.

They went with songs to the battle, they were young,
Straight of limb, true of eye, steady and aglow.
They were staunch to the end against odds uncountered:
They fell with their faces to the foe.

They shall grow not old, as we that are left grow old:
Age shall not weary them, nor the years condemn.
At the going down of the sun and in the morning
We will remember them.


They mingle not with their laughing comrades again;
They sit no more at familiar tables at home;
They have no lot in our labour of the day-time;
They sleep beyond England's foam.

But where our desires are and our hopes profound,
Felt as a well-spring that is hidden from sight,
To the innermost heart of their own land they are known
As the stars are known to the Night;

As the stars that shall be bright when we are dust,
Moving in marches upon the heavenly plain;
As the stars that are starry in the time of our darkness,
To the end, to the end they remain.

-- Laurence Binyon

Monday, August 06, 2007

Trails ... TAPESTRY ON RAILS


Bueno, he probado este framework en un par de ocasiones, para hacer aplicativos super sencillos y simplemente funciona, tal como ellos lo anuncian, segun el ultimo post de estos muchachos , estan a punto de sacar una nueva version, lo cual me alegra, no todos los dias tengo una herramienta que yo comprendo y puedo modificar y que adicionalmente me quita tanto trabajo como lo hace esto, no he probado aun el codigo que se encuentra en el svn del proyecto, soy demasiado perezoso, como para hacerlo realmente, prefiero un conveniente Archetype de MAVEN para comenzar a trabajar :), anyways, este es el link, piden que ayudemos linkeandolos, para que su nueva pagina sea la que muestre el google al inicio, me parece un poco weirdo que teniendo un producto que funciona encima de otros frameworks tan robustos, tenga poca atencion, espero que esto mejore >_< ... btw los frameworks robustos de los que hablo, son hibernate, spring y Tapestry. Tienen aun algun camino por hacer con AJAX, pero hace poco integre el listado con TACOS, y fue bien straight forward, por lo que le auguro rapidez de respuesta a este issue

IDE tuning ECLIPSE


La verdad, no es que trabaje lento mi IDE favorito, muy decente en un fedora 6, 1024 + 512 de RAM con un ATLON XP, pero como siempre, podria ser mas rapido :P, asi que realice el proceso de "tunear" mi instalacion de el Eclipse Europa, para hacer el cuento largo, corto, simplemente aplique los pasos de siempre, redactar el eclipse.ini, y desconectar cosas que no utilizo.

Aqui estan los parametros de mi eclipse.ini, por si a alguien le interesa ...

-vmargs
-Xms512m
-Xmx512m
-XX:PermSize=128m
-XX:MaxPermSize=128m


  • Xms: Es el tamaño inicial del heap
  • Xmx: Es el tamaño maximo del heap
  • XX:PermSize: Es el tamaño inicial en megas para espacio para "permanent Generation"*
  • XX:MaxPermSize: Es el tamaño maximo en megas para espacio para "permanent Generation"*

* Es el espacio utilizado por lo que la gente de la sun llama "permanent generation" , segun entiendo , es el lugar en donde la JVM guarda la informacion necesaria para instanciar metodos y clases, podriamos llamarla "reflective data" utilizando un poco de jerga

Pero para que me pongo a explicarles estas cosas, hay buena documentacion por alli
que seguramente ayudara mas que yo a confundirlos ñ_ñ
Pagina de IBM con informacion de los parametros
Pagina de la SUN que habla de garbage collector
Y finalmente, Aqui esta la guia que utilice la primera vez y que es la que utilice la primera vez y que es valida hasta ahora, muy buen articulo, la verdad Click aqui

Tuesday, July 31, 2007

Tapestry 5 Preview on OSCON 2007

He visto muchas veces presentaciones sobre algun producto de SW, algunas comienzan con las ventajas que tienen, otras, sobre, los problemas de otras tecnologias que probablemente son la competencia, otras veces, aumentan la tencion comenzando con features o productos anteriores de el equipo o compañía que esta realizando la presentacion, haciendo enfasis en cada uno de los cambios y de ser posible en la revolucion que han creado, todo esto ultimo, lo veo cada vez que veo a ..... si , exacto, ya no dire el nombre, ustedes ya lo saben, la compañía a la que pertenece tiene una manzanita. Pero esta vez fue de las pocas veces en que una diapositiva es tan directa, que tiene frases que yo he escuchado una y otra vez de desarrolladores desperados, no tienen nada que ver con como resolver un problema, ni siquiera un deseo, de darles una clasificacion creo que serian algo asi como un grito desesperado por atencion y aliento divino ... y estas son las frases con las que comenzo Howard Lewis Ship, creador de Tapestry&nbsp; su exposicion en OSCON ....



A few observations
•❝If ...
•... I have to type one more angle bracket I'll chop off my pinkie! ❞
•... I have to run Ant/Maven one more time I'll staple myself to death! ❞
•... I have to restart Tomcat on more @&*$**@! time I'm going to become a&nbsp; sheep farmer! ❞
•... I have to write any more &%@&^@ boilerplate code I'll start to listen to
those voices in my head! ❞
•You have a budget for mental investment

En el idioma que sea, yo se que han oido o dicho algo parecido jajaja, esto señores, hizo que me identificara inmediatamente con la situación qu ese estaba describiendo, aumento mi nivel de empatía y por que no de atención


Será que más de una vez dije ... hubiera sido agricultor jajaja, el resto de la presentación es muy sobria y responde pocas preguntas al decir verdad, lastima que no pude ver la ponencia, seguramente fue interesante... más que antes que el estubo Rod Jhonson ...&nbsp; algun dia quizas ....

Powered by ScribeFire.

Tuesday, July 24, 2007

jdbc & named parameters

Interesante que en el API de java no hay algo tan sencillo como sustitucion de parametros, no numericos posicionales... increible si me preguntan, bueno, abajo se encuentra la solución sencilla a este problema. Simplemente se realiza un wrapper sobre el statement, se parsea, cambiando los parametros por marcas posicionales (?) y creando un mapa que poseera los indices en los que aparece el parametro , no me llevare el credito por este codigo, pues lo encontre en
here, gracias Adam Crume .... creo.... bueno solamente realice un par de modificaciones y agregue un metodo para poder pasar todos los parametros de manera simultanea, ya que en mi caso la necesitaba para completar operaciones de reportes con parametros que vienen de una pagina en el request.

Luego posteare la solución integral por si a alguien le es util



import java.util.List;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Map;
import java.util.Set;

/**
* @author croberto
*
*/
public class NamedParameterStatement {


/** The statement this object is wrapping. */
private final PreparedStatement statement;

/** Maps parameter names to arrays of ints which are the parameter indices.
*/
private final Map indexMap;

private String parsedQuery;

/**
* Creates a NamedParameterStatement. Wraps a call to
* c.{@link Connection#prepareStatement(java.lang.String)
prepareStatement}.
* @param connection the database connection
* @param query the parameterized query
* @throws SQLException if the statement could not be created
*/
@SuppressWarnings("unchecked")
public NamedParameterStatement(Connection connection, String query) throws SQLException {
indexMap=new HashMap();
parsedQuery=parse(query, indexMap);
statement=connection.prepareStatement(parsedQuery);
}


/**
* Parses a query with named parameters.
* The parameter-index mappings are put into the map, and the
* parsed query is returned.
* @param query query to parse
* @param paramMap map to hold parameter-index mappings
* @return the parsed query
*/
@SuppressWarnings("unchecked")
static final String parse(String query, Map paramMap) {

int length=query.length();
StringBuffer parsedQuery=new StringBuffer(length);
boolean inSingleQuote=false;
boolean inDoubleQuote=false;
int index=1;

for(int i=0;i char c=query.charAt(i);
if(inSingleQuote) {
if(c=='\'') {
inSingleQuote=false;
}
} else if(inDoubleQuote) {
if(c=='"') {
inDoubleQuote=false;
}
} else {
if(c=='\'') {
inSingleQuote=true;
} else if(c=='"') {
inDoubleQuote=true;
} else if(c==':' && i+1 Character.isJavaIdentifierStart(query.charAt(i+1))) {
int j=i+2;
while(j j++;
}
String name=query.substring(i+1,j);
c='?'; // replace the parameter with a question mark
i+=name.length(); // skip past the end if the parameter

List indexList=(List)paramMap.get(name);
if(indexList==null) {
indexList=new LinkedList();
paramMap.put(name, indexList);
}
indexList.add(new Integer(index));

index++;
}
}
parsedQuery.append(c);
}

// replace the lists of Integer objects with arrays of ints
for(Iterator itr=paramMap.entrySet().iterator(); itr.hasNext();) {
Map.Entry entry=(Map.Entry)itr.next();
List list=(List)entry.getValue();
int[] indexes=new int[list.size()];
int i=0;
for(Iterator itr2=list.iterator(); itr2.hasNext();) {
Integer x=(Integer)itr2.next();
indexes[i++]=x.intValue();
}
entry.setValue(indexes);
}

return parsedQuery.toString();
}


/**
* Returns the indexes for a parameter.
* @param name parameter name
* @return parameter indexes
* @throws IllegalArgumentException if the parameter does not exist
*/
private int[] getIndexes(String name) {
int[] indexes=(int[])indexMap.get(name);
if(indexes==null) {
throw new IllegalArgumentException("Parameter not found: "+name);
}
return indexes;
}


public void setParameters(Map parameters)throws SQLException{
Set keys = parameters.keySet();
Object param = null;
for (String key : keys) {
param = parameters.get(key);
setObject(key, param);
}
}


/**
* Sets a parameter.
* @param name parameter name
* @param value parameter value
* @throws SQLException if an error occurred
* @throws IllegalArgumentException if the parameter does not exist
* @see PreparedStatement#setObject(int, java.lang.Object)
*/
public void setObject(String name, Object value) throws SQLException {
int[] indexes=getIndexes(name);
for(int i=0; i < indexes.length; i++) {
statement.setObject(indexes[i], value);
}
}


/**
* Sets a parameter.
* @param name parameter name
* @param value parameter value
* @throws SQLException if an error occurred
* @throws IllegalArgumentException if the parameter does not exist
* @see PreparedStatement#setString(int, java.lang.String)
*/
public void setString(String name, String value) throws SQLException {
int[] indexes=getIndexes(name);
for(int i=0; i < indexes.length; i++) {
statement.setString(indexes[i], value);
}
}


/**
* Sets a parameter.
* @param name parameter name
* @param value parameter value
* @throws SQLException if an error occurred
* @throws IllegalArgumentException if the parameter does not exist
* @see PreparedStatement#setInt(int, int)
*/
public void setInt(String name, int value) throws SQLException {
int[] indexes=getIndexes(name);
for(int i=0; i < indexes.length; i++) {
statement.setInt(indexes[i], value);
}
}


/**
* Sets a parameter.
* @param name parameter name
* @param value parameter value
* @throws SQLException if an error occurred
* @throws IllegalArgumentException if the parameter does not exist
* @see PreparedStatement#setInt(int, int)
*/
public void setLong(String name, long value) throws SQLException {
int[] indexes=getIndexes(name);
for(int i=0; i < indexes.length; i++) {
statement.setLong(indexes[i], value);
}
}


/**
* Sets a parameter.
* @param name parameter name
* @param value parameter value
* @throws SQLException if an error occurred
* @throws IllegalArgumentException if the parameter does not exist
* @see PreparedStatement#setTimestamp(int, java.sql.Timestamp)
*/
public void setTimestamp(String name, Timestamp value) throws SQLException
{
int[] indexes=getIndexes(name);
for(int i=0; i < indexes.length; i++) {
statement.setTimestamp(indexes[i], value);
}
}


/**
* Returns the underlying statement.
* @return the statement
*/
public PreparedStatement getStatement() {
return statement;
}


/**
* Executes the statement.
* @return true if the first result is a {@link ResultSet}
* @throws SQLException if an error occurred
* @see PreparedStatement#execute()
*/
public boolean execute() throws SQLException {
return statement.execute();
}


/**
* Executes the statement, which must be a query.
* @return the query results
* @throws SQLException if an error occurred
* @see PreparedStatement#executeQuery()
*/
public ResultSet executeQuery() throws SQLException {
return statement.executeQuery();
}


/**
* Executes the statement, which must be an SQL INSERT, UPDATE or DELETE
statement;
* or an SQL statement that returns nothing, such as a DDL statement.
* @return number of rows affected
* @throws SQLException if an error occurred
* @see PreparedStatement#executeUpdate()
*/
public int executeUpdate() throws SQLException {
return statement.executeUpdate();
}


/**
* Closes the statement.
* @throws SQLException if an error occurred
* @see Statement#close()
*/
public void close() throws SQLException {
statement.close();
}


/**
* Adds the current set of parameters as a batch entry.
* @throws SQLException if something went wrong
*/
public void addBatch() throws SQLException {
statement.addBatch();
}


/**
* Executes all of the batched statements.
*
* See {@link Statement#executeBatch()} for details.
* @return update counts for each statement
* @throws SQLException if something went wrong
*/
public int[] executeBatch() throws SQLException {
return statement.executeBatch();
}







}//class

Wednesday, July 04, 2007

fotos


Yo se que en estos momentos deberia estar dormido, pero ya que andaba buscando material para hacer una estupida presentación de la U, que mas puedo decirles fui a parar por aqui, desde infectedX , y estas, son fotos que merecen toda la pena ver

High Speed photos


If fire were water photos

Tuesday, May 29, 2007

05 - el MI en la Economia Global

Los efectos de la integracion de mercado



  • Muchos acuerdos comerciales y de los mecanismos de integracion existentes


  • Influencia del libre comercio

  • En la actualidad no existe un lider claro


  • La situacion de los paises en desarrollo

    Muchas politicas politicas comerciales macroeconomicas pueden ser perjudiciales para acabar con lapobreza de los paises en desarrollo, y si no se acaba con ellas, la situacion de los ciudadanos de estos paises puede hacerse aun mas dificil.





CAPITULO 6



La economia politica y la creacion de ventajas

El desaria de la apertura de los mercados

En el entorno del marketin gin ternacional hay dos factores principales e juego, en primer lugar, los mercados se estan fragmentando como consecuencia de la participacion; combina da de un mayor numero de paises pequenhos y el creciente reconocimiento y la mayor importancia de los mercados regionales.





Ventaja copmparativa y ventaja competitiva

Un principio economico fundamental es que la calidad de vida de cualquier pais depende casi en su totalidad de la economia nacional y no de como funciona esa respecto a otrso paises. Si no se aprecio este principio se ; incurre en guerras innumerables



La ventaja comparativa se centra en la eficacia de la produccion nacional, mientras que la ventaja competitiva se centra en la de la empresa.



Segun el principio de la ventaja comparativa dinamica, En lugar de concentrarse en factores hereados estaticos y en aumentar los costos a corto plazo, lo que han hecho ha sido centrarse en la movilidad de factores y las economias de escala



Que el reto competitivo proviene de empresas bien gestionadas basaas en paises caracterizados por estrategias nacionales orientadas al desarrollo. El modo de entender este desafio suele depender de si uno se posiciona del lado de los retadores o los retados



El aumento de la prodeuctividad se traduce en una mayor calidad de vida. Cuanto mas rapidamente aumenta la tasa de credito de la productiviadad, mas rapidamente crece e l pais sin inflacion



El circulo vicioso de la pobreza se deriva de



  • Una structura economica debil


  • Una estructura social inadecuada


  • Imperfecciones del mercado






La importancia del marketing en los paises en desarrollo

Los mercados desarrollados dependen cada vez mas de los mercados emergentes en el mundo en desarrollo. La expansion continuada de economias desarrolladas depede de la inversion el mundo en desarrollo y del comercio con este.



La economia politica y la creacion de ventajas



En un mundo de cambio tecnologico, de tasas de crecimiento de volumen y productividad diferentes entre sectores y recortes de costes, la eleccion racional para un pais pequenho, es seleccionar a industrias de crecimiento y utilizar la politica publica para complementar las fuerzas del mercado y asi organizar los recursos necesarios para entrar y participar con exito en el mercado internacional



El pais Z deberia especializarse en la biotecnologia y no en los alimentos basicos, independientemente de si los costos son mayores o mentores de los de sus paises vecinos ricos.



Siguiendo los dictados de la teoria de la ventaja comparativa dinamica, el pais X o cualquier otra economia en expansion tieene una gran libertad de maniobra para crear las ventajas comparativas que desee. Siempre que tenga la voluntad y la ingenuidad de creer o copiar el conjuro de medidas e instituciones adecuadas para alcanzar las posiciones de costes y calidad necesarias para el exito







CAPITULO 7



EL RIESGO POLITICO Y LA NORMATIVA POLITICA



Existe una serie de funciones aceptables para los gobiernos en las sociedades modernas.



  • Crear una base legal en la sociedad


  • Mantener una politica macroeconomica eficaz y estable


  • Intervenir en servicios sociales basicos






Una empresa puede perer la propiedad de sus activos extranjeros de cuatro formas distintas



  • Confiscacion. Se quitan los activos a las empresas sin pago alguno


  • Expropiacion. Se quitan los activos a las emrpesas con algun pago, con precios abajo del valor


  • Nacionalizacion. Es el proceso por el que un gobierno decide hacerse con la propiedad de un sector para su propio control


  • Requisicion.Implica quitar los medios de produccion a una empresa






Powered by ScribeFire.

03 - El MI en la economia global

Marketing tambien es el uso del conocimiento para tener poder sobre el pecio de los productos en el mercado.

El trabajo del marketing es ENCONTRAR EL VALOR INTRINSECO, VALOR AGREGADO o EXCEDENTE DEL CONSUMIDOR





El marketing en el sistema empresarial

Laadopcion del enfoque de marketing



La orientacion de la empresa en el sistema de negocio

•&nbsp;&nbsp;&nbsp; El sistema de negocio solo tiene exito si genera valor para sus participantes

•&nbsp;&nbsp;&nbsp; Que genera valor y sinergia

•&nbsp;&nbsp;&nbsp; En esta sinergia las desiciones de una empresa influye en las desiciones de las otras empresas del sistema de negocio, que a su vez influyen en las decisiones de la primera empresa



Un marco de referencia para el marketing internacional

El marketing internacional es uan disciplina que engloba una serie de paradigmas que abarcan numerosas teorias, La busqueda de paradigmas adecuados es importante puesto que indican que disciplina se deberia estudiar, que preguntas se deberian preguntar y que normas se deberían seguir a la hora de interpretar las respuestas obtenidas.



Fuentes de ventaja competitiva

La ventaja competitiva depende de la capacidead de la empresa para integrar el conocimiento.

Las empresas con actividades de marketing internacional, cuanto mas integran el cumplimiento y nmas sofisticadas son los procedimientos que emplean, provocan mayores dificultades para ser imitados por la competencia.



El conocimiento tacito como el caso de los productos y los sistemas tecnologicaos se transfiere a nivel internacional mediante alianzas estrategicas o inversion extranjera directa, en funcion del grado de aplicacion necesaria. Los individuos son los principales depositarios de dicho conocimiento.



El exito de la empresa se deriva del crecimiento, de la cuota de mercado, de la fidelidad de los clientes de la imagen y del posicionamiento, pero sobre todo, de los beneficios y los flujos de caja



Las desiciones estrategicas de marketing internacional alas que se enfrentan la empresa se dividen en dos grupos, las relativas a los productos y las relativas a los mercados locales



Los recursos ….





El tamaño de la empresa en el mercado internacional



Cuando los horizontes de una empresa son muy limitados incluso aunque tenga un producto excelente, apenas conocera en mercado. En general las empresas pequeñas:

•&nbsp;&nbsp;&nbsp; No confian en su capacidad de exportacion

•&nbsp;&nbsp;&nbsp; Tienen menos conocimientos sobre como exportar

•&nbsp;&nbsp;&nbsp; Las tecnologias de la comunicacion integran a los proveedores en los procesos de negocio de los clientes, lo que garantiza una mayor comunicacion y eficacia.



Tecnologia e innovacion

La innovacion ofrece beneficios de escala considerables, por lo que las empresas ubicadas en paises muy tecnológicos, como Estados Unidos, tienen mayores posibilidades de innovación



Algunas empresas han conseguido internacionalizar sus actividades con exito concentrandose en losproductos basados en el conocimiento cuya demanda es muy elastica.



Estilos de direccion en la empresa internacional

•&nbsp;&nbsp;&nbsp; Estilo europeo

o&nbsp;&nbsp;&nbsp; Gestion de la diversidad cultural

o&nbsp;&nbsp;&nbsp; Importancia de la orientacion hacia las personas y de la negociacion interna

o&nbsp;&nbsp;&nbsp; Enfoque a corto y largo plazo

o&nbsp;&nbsp;&nbsp; Enfasis en todos los grupos de interes y no solo en los accionistas

o&nbsp;&nbsp;&nbsp; Adaptacion a las necesidades de los consumidores

o&nbsp;&nbsp;&nbsp; Integracion del individuo en la empresa

o&nbsp;&nbsp;&nbsp; Poca distincion entre la vida profesional y la personal

•&nbsp;&nbsp;&nbsp; Estilo norteamericano

o&nbsp;&nbsp;&nbsp; Enfasis en los beneficios de los accionistas

o&nbsp;&nbsp;&nbsp; Enfasis en el individuo logros personales y movilidad profesional

o&nbsp;&nbsp;&nbsp; Fuerte competencia, en la creencia de que esta lleva a la satisfaccion de los clientes

o&nbsp;&nbsp;&nbsp; Enfasis en la orientacion al producto en lugar de la orientacion al cliente las relaciones con los clientes pueden rozar la contracción.



Aspiraciones, dedicacion y expectativas del equipo directivo



Las aspiraciones y las expectativas de los directivos y la dedicaciojn de la emrpesa al desarrollo internacional



A medida que los directivos acumula experiencia en una situacion concreta, mejoran su capacidad de elaborar proyecciones más certeras sobre los resultados de la empresa en los mercados extranjeros





Los resultados de la empresa en el sistema de negocio

Para que la empresa pueda establecer una ventajqa en costes, es necesario que este en posesion de plantas productivas en las que se gneneren economias de escala



A la hora de gestionar los costes, las empresas se enfrentan a multiples costes



Los costes de personal

Tecnologia y las economias de escala de fabricacion

Las fluctuaciones del tipo de cambio

La estructura del mercado



En la distribucion de recursos por mercado ‘ producto y sistema de negocio



La cobertura del mercado se puede elegir entre dos estrategias genericas,

•&nbsp;&nbsp;&nbsp; Diversificacion. Muchos mercados , expansion rapida

•&nbsp;&nbsp;&nbsp; Concentracion. Pocos mercados, expansion lenta, el primer mercado sirve de base

•&nbsp;&nbsp;&nbsp;

El objetivo de una estrategia de diversificacion de mercado es obtener una tasa alta de rentabilidad mediante la cobertura de amplia cantidad de mercados





Teorias del Comercio

•&nbsp;&nbsp;&nbsp; Paradoja de Leontieff

•&nbsp;&nbsp;&nbsp; Teoria pura y monetaria

•&nbsp;&nbsp;&nbsp; Teoria del equilibrio y el comercio interncacional

•&nbsp;&nbsp;&nbsp; Teoria de la localizacion

•&nbsp;&nbsp;&nbsp; Teoria de la Demenda Reciproca

o&nbsp;&nbsp;&nbsp; Un pais es rico si exporta mas de lo que importa

•&nbsp;&nbsp;&nbsp; Teoria del ciclo de vida del producto









Powered by ScribeFire.

Wednesday, May 23, 2007

01 - definiciones/historia

marketing internacional
Es la estrategia para lograr vender bienes o servicios en mercados foraneos

En un producto existen 2 tipos de valores
• Valor de Uso
• Valor agregado. Este es el que debemos encontrar



Globalizacion
Es el poder de realizar las operaciones de mi empresa en cualquier parte del mundo.

Es un fenomeno de desacumulacion de capital
La oportunidad esta en convencer a esos capitals que en nuestros paises, se pueden realizar las operaciones descompuestas ( o componentes ) que estos necesitan











Lideres del Marketing Internacional
Michael Porter
o Estrategia
Kenichi Ohmae
o Concepto de economia sin fronteras, que es la base de la globalizacion
o Libros
• La mente del estratega
• El poder de la triada
• El fin del estado nacion
o Los mercados hoy en dia son manejados en el mundo entero por las necesidades y deseos de los clientes y el gerente debe de actuar como si estuviese a igual distancia de todos ellos dondequiera que ellos se encuentren

Siendo que en los mercados de capital, no se debe permitir la acumulacion de capital, para que se pueda mantener la plusvalia, la globalizacion es la salvacion del modelo capitalista.

Gary Hamel
Henry Mintzberg
Charles Handy
o Sociedad comunitaria, para el modelo corporativo del futuro. Esto da base a la responsablidad social empresarial (RSC: Responsabilidad Social Compartida ). En la misma proporcion en la que yo retribuyo a la sociedad, esta me retribuye comprando mi servicio
Adrian J. Slywotzky
o Value Migration
o Profit Patterns
• Paul Krugman
o Criticas a las teorias de la moda, etc
o Libro: El internacionalismo POP
• Peter Senge
o Autor de la quinta disciplina
o La empresa que aprende
• James F. Moore
o Predators and Prey: A New ecology of Competition
o Vincula todo con la responsabilidad economica

Sunday, May 13, 2007

Sunday, April 15, 2007

quotes .....

When I do good, I feel good.
When I do bad, I feel bad.
And that's my religion.
- Abraham Lincoln (1809-1865)

The stupid neither forgive nor forget;
the naive forgive and forget;
the wise forgive but do not forget.
- Thomas Szasz

There are risks and costs to action. But they are far
less than the long range risks of comfortable inaction.
- John Fitzgerald Kennedy (1917-1963)


Planning is bringing the future into the present
so you can do something about it now.
- Alan Lakein


We don't stop playing because we grow old;
we grow old because we stop playing.
- George Bernard Shaw (1856-1950)

Everybody can be great. Because anybody can serve. You
don't have to have a college degree to serve. You don't have
to make your subject and your verb agree to serve. You don't
have to know the second law of thermodynamics in physics to
serve.
- Martin Luther King, Jr. (1929-1968)

Wednesday, February 28, 2007

And I am LOL

Your results:
You are Spider-Man
























Spider-Man
80%
Green Lantern
70%
Superman
70%
Hulk
65%
Supergirl
60%
Robin
55%
Catwoman
55%
Iron Man
40%
Wonder Woman
35%
The Flash
30%
Batman
30%
You are intelligent, witty,
a bit geeky and have great
power and responsibility.


Click here to take the Superhero Personality Test

Wednesday, February 21, 2007

Que caricatura te asocias ?

Bueno, quizas no es tan original, luego de haber realizado el post
anterior, pero si ya me dio curiosidad por el soudtrack que tendria
mi vida..del cual debo aceptar no fue del todo esperado por decirlo de
alguna manera , realizare el mismo ejercicio, solamente que ahora con caricaturas
siendo que no se pueden subir fotos, si no les da hueva, podrian poner un link
a las fotos, para que los demas participantes puedan verlas
Ahora bien, para hacerlo más interesante, vamos a formar el team del proyecto
en el que me encuentro en estos momentos en caricatura

Los participantes serán
+ Nelson Hernandez
+ Fuz Salazar
+ Julian Rivera
+ Renato Bonilla
+ Carlos Rodriguez ( Su servilleta )
+ Ricardo Ramirez .... El RiRa

voten, agreguen dibujos y al final en el siguiente post tendremos al equipo TPAR
en comic jajajaja

Tuesday, February 20, 2007

Cual es mi soundtrack ?

Bueno sres y sras, solamente quiero saber que musica me pondrian ustedes, si fuera yo
entrando a un salon o un cuarto .... imaginemonos el caso mas normal, en donde estoy
en mi usuall mood, no voy a poner los que yo creo que podrian ser buenos candidatos
debido a que el autoconcepto que tengo de mi mismo podria variar en sobremanera de lo
que realmente es ...

Favor no pongan nada rebuscado, asi las puedo oir luego.

Votacion abierta !