Páginas

19 de noviembre de 2015

Buscar contenidos en un archivo (grep)




grep [opciones] [expresión regular] [archivo]

-b Muestea el numero de veces que esta en el principio de cada linea .
-c Muestra el numero de linea coincidentes
-h Visualiza el las lineas coincidentes pero no muestra los archivos .
-i Busca tanto en mayusculas como en minusculas .
-l Muestra el nombre del archivo pero no muestra las lineas .
-n Visualiza numero de lineas que son iguales y el numero de linea.
-s Modo silencionso.
-v Muestra la lineas NO coincidentes.
-w Solo palabras completas .

$>grep -c hola *-doc -> busca en la ruta donde esta todos los archivos doc que esta en la carpeta

18 de noviembre de 2015

Buscar secuencas en la base de datos



select * from all_sequences
where
--sequence_owner='RRRRR' and
sequence_name like upper('%ZZZZZZZ%')
order by sequence_owner, sequence_name ;

17 de septiembre de 2015

valor de la etiquetas xml

public void leerXMLNodesInner(Document original,Node currentNode, String path,List laplanado){
String newPath = path + currentNode.getNodeName();

if (!currentNode.getNodeName().equals("#document")){

     String finalPath = newPath;

try {
Node foundNode = (Node)xpath.evaluate(finalPath+"/text()", original, XPathConstants.NODE);

String paths = finalPath;
if (foundNode!=null){
if (foundNode.getNodeType() == Element.TEXT_NODE){

String value = foundNode.getNodeValue().trim();

}
}else{
System.out.println("path "+paths +" value null");
}

} catch (XPathExpressionException e) {
private static void leerXMLNodes(Document original){ leerXMLNodesInner(original,original.getFirstChild(), "/"); } System.out.println("Error xPath expersion "+e.getMessage());
} catch (DOMException e) {
System.out.println("Error DOME expersion "+e.getMessage());
}



> NodeList listaHijos = currentNode.getChildNodes();
if(listaHijos != null){
for(int i = 0; i < listaHijos.getLength(); i++){
Node currentChild = listaHijos.item(i);
if(currentChild.getNodeType() != Node.TEXT_NODE && currentChild.getNodeType() != Node.COMMENT_NODE){
leerXMLNodesInner(original,currentChild, newPath+"/");
}
}
}
}else{
System.out.println("Fin del fichero");
}



}



para saber el valor que tiene la etiqueta utilizamos


Node foundNode = (Node)xpath.evaluate(finalPath+"/text()", original, XPathConstants.NODE);

preguntamos por el tipo y el nodo

if (foundNode.getNodeType() == Element.TEXT_NODE){


cogemos el valor de la etiqueta

String value = foundNode.getNodeValue().trim();




Quitar espacio en blanco




String stringSinEspacio= stringConEspacio.trim();

15 de septiembre de 2015

buscar contenido en archivos



Con el programa Notepad++ hay una opción para buscar contenido en archivos

buscar -> encontrar en archivos. ( control + sift + F )

seleccionamos donde están los archivos donde queremos buscar y la palabra que se quiera buscar
y te saca un listado de los elementos encontrados y en que archivo se ha encontrado

8 de septiembre de 2015

grep buscar contenidos en archivos



buscar "palabra" en todos los archivos en txt

grep "palabra" /home/miusuario/documentos/*.txt

buscar "palabra" y "palabra_2" en todos los archivos de esa ruta

grep -r -e "palabra" -e "palabra_2" /home/miusuario/documentos/

26 de agosto de 2015

modo dios en Windows 10. 8.1, 8, 7


Lo que en español se llama "modo dios" en windows que exisitía desde la versión 7 de windows.
Es tan simple como crear una carpeta por ejemplo en el escritorio y renombrarla con este nombre

 ModoDios.{ED7BA470-8E54-465E-825C-99712043E01C}

se cambiara de icono y te permite tener todas las opciones de windows en una sola pantalla sin tener que ir buscándolo en diferentes menus

4 de agosto de 2015

error en log4j



Si en algún momento sale un error de este tipo de log4j

log4j:ERROR Could not find value for key log4j.appender.INFO
log4j:ERROR Could not instantiate appender named "INFO".

es porque INFO lo has puesto como si fuera un paramentro definido en el log4j.properties

esto no seria correcto

log4j.rootLogger=ERROR, CONSOLE, INFO

lo correcto seria

log4j.rootLogger=INFO, CONSOLE,




maven sin hacer test



bajar las librerias en maven y generar el jar sin hacer test

mvn -Dmaven.test.skip=true clean install

27 de julio de 2015

maven bajarse paquetes de libreria


Una forma para bajarse los jars y las dependecias de ellos nada mas hay un comando que se debe de utlilizar  estos comoandaso


mvn initialize -P dependencies



10 de julio de 2015

Atajos de eclipse para programar mas rapido


Atajos iniciales

CTRL + H    Carga la ventana de búsqueda
CTRL + E    Acceso a los ficheros que ya están abiertos
CTRL + O    Acceso a los atributos y métodos de esa clase
CTRL + O (2 veces)    Igual que el anterior pero añadiendo los atributos y métodos de las clases padre
CTRL + L    Acceso a la línea indicada
CTRL + K    Rastrea la variable seleccionada
CTRL + F    Buscar / Reemplazar una palabra
CTRL + D    Eliminar la fila
CTRL + SUPR    Eliminar la siguiente palabra
CTRL + RETRO    Eliminar la anterior palabra
CTRL + MAY + SUPR    Eliminar hasta el final
CTRL + Q    Volver a la anterior pestaña de edición
CTRL + 3    Cargador de vistas
CTRL + MAY + F    Formatea el texto según lo configurado
CTRL + MAY + S    Guarda todos los documentos abiertos
CTRL + MAY + O    Organizador de imports (añadiéndolos si faltan)
CTRL + MAY + T    Buscador de tipos en el workspace
CTRL + MAY + R    Acceso a la búsqueda de recursos
CTRL + 7    Comenta el texto seleccionado  

Atajos Expertos


CTRL + SHIFT + X  Cambiar el texto a mayuscula    Seleccionar el texto a pasar a mayúscula y pulsar
CTRL + SHIFT + Y Cambiar el texto a minúscula    Seleccionar el texto a pasar a mayúscula y pulsar
CTRL + SHIFT + G Buscar todas las clases en el que método está siendo utilizado.    Selecionamos el método y presionamos
 CTRL + N Crear rápido una clase, interface ,etc.    Presionamos la teclas
ALT + ENTER Ver las propiedades de una clase o proyecto.    Primero se debe seleccionar y luego presionar

F3  Sobre el método  o la clase entramos donde se encuentra implementado.
CTRL+ SHIFT + FLECHA ABAJO: Posiciona el cursor en el método o propiedad siguiente al que estamos actualmente.
CTRL+ SHIFT + FLECHA ARRIBA: Posiciona el cursor en el método o propiedad anterior al que estamos actualmente.



Algunos atajos mas


Crear metodo main    Escribir main,pulsar  CTRL + ESPACIO y seleccionar main method     Implementa : public static void main (String[] args){ }

Impresion rápida por consola    Escribir syso y pulsar CTRL + ESPACIO     Implementa : System.out.println();

Sentencia IF    Escribir if,pulsar CTRL + ESPACIO y seleccionar la opción statement    Implementa : if (condition) {} o con la opción else

Bucle DESDE (for)    Escribir for,pulsar CTRL + ESPACIO y seleccionar la opción    Implementa : for (int i = 0; i < array.length; i++) {} u otras opciones

Bucle MIENTRAS (while)    Escribir while,pulsar CTRL + ESPACIO y seleccionar la opción    Implementa : while (condition) {} u otras opciones

Bucle REPETIR HASTA (do..while)    Escribir do,pulsar CTRL + ESPACIO y seleccionar la opción    Implementa : do {}



Referencias
eclipse atajos de teclado

9 de julio de 2015

Office 365 config gestor de correos



Office 365 Small Business:

POP setting


  • Server name: outlook.office365.com
  • Port: 995
  • Encryption method: SSL
  • Nombre
  • Password



  • SMTP setting


  • Server name: smtp.office365.com
  • Port: 587
  • Encryption method: TLS/STARTTLS
  • Nombre
  • Password
  • 24 de junio de 2015

    Configuracion JMS (Weblogic - java con spring)


    abria que tener corriendo el welogic y poner en el navegador

    http://localhost:7001/console/

    creacion un cluster con el weblogic

    Entornos-> cluster

    pulsamos boton nuevo.

    se introduce un nombre del cluster

    pulsamos boton de aceptar.

    creacion un servidores con el weblogic

    Entornos-> Servidores

    boton nuevo.

    se introduce un nombre del cluster

    el puerto del servidores
    seleccionamos "Si hacer este servidor sea miembre de un cluster existente"
    selecionamos el cluster que hemos relacionado
    pulsamos boton siguinte.
    pulsamos boton Terminar.



    Para la configuracion de JMS

    primero empezare para la configuracion en el welogic

    Servicios->Mensajes->Servidores JMS,

    se pulsa a nuevo
    se introduce un nombre del JMS
    pulsamos boton siguinte.
    seleccionamos destino
    pulsamos boton Terminar.

    Para poner el nombre JNDI para la cosas JMS

    Servicions -> mensajes -> modulos JMS

    si no hay ningun modulo se crea uno nuevo. y se hace de esta manera
    se pulsa a nuevo
    se introduce un nombre del sistema de JMS
    pulsamos boton siguinte.
    seleccionamos el cluster donde tengamos nuestro servidores.
    pulsamos boton siguinte.
    No seleccionamos nada y pulsamos boton Terminar.

    cuando ya tienes creado un sistema jms
    volvemos a Servicions -> mensajes -> modulos JMS
    se pulsa a nuevo
    como queremos crear una cola seleccionamos "Cola"
    pulsamos boton siguinte.
    introducimos un nombre y tambien el nombre JNDI
    pulsamos boton Terminar.


    Luego habria que configurar la parte spring. Esta claro que en la parte java habria que tener unos minimos para ahora no voy a ponerme a explica como es la creacion del un proyecto web con spring(pero podria ser otro punto muy bueno para el log). y que cada proyecto tiene su configuracion y que no todos son iguales he intentado extrapolar esos problemas dando importancia a la configuracion propia de jms

    Teniendo en cuento lo anterior voy a dar pequeñas pinceladas a la configuracion , o lo
    que yo he tenido que hacer para implementar las colas jms en mi proyecto. Espero que esto
    tambien sirva

    en mi ficher de configuracion en mi caso es kernel.properties.xml

    tengo unas etiquetas para la configuracion y el arquivo que debe de cargar para empezar

       <JMSManagerImpl>
    <ctx>jms.sender.context.test.xml</ctx> //nombre del fichero
    <JMSMessageTypeTest>weblogicCola</JMSMessageTypeTest> //nombre de la propiedad
      </JMSManagerImpl>

    el fichero que voy a configurar ahora mismo es jms.sender.context.test.xml

    como estamos usando spring debemos de tenere
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:amq="http://activemq.apache.org/schema/core" xmlns:jms="http://www.springframework.org/schema/jms"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
                            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                            http://www.springframework.org/schema/util
                            http://www.springframework.org/schema/util/spring-util-3.0.xsd
                            http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd
    http://activemq.apache.org/schema/core
    http://activemq.apache.org/schema/core/activemq-core-5.5.0.xsd
    http://www.springframework.org/schema/jms
    http://www.springframework.org/schema/jms/spring-jms-3.0.xsd">
    <context:annotation-config />

    y terminar  con la etiqueta </beans>

            <bean id="weblogicCola" class="isf.domain.gcjms.DefaultProductorImpl">
                   <property name="template">
                   <ref bean="weblogicJmsTemplate" />
                   </property>
                   <property name="destination" ref="colaTEST"/>
            </bean>

    <bean id="weblogicJmsTemplate" class="org.springframework.jms.core.JmsTemplate">
    <property name="connectionFactory">
    <ref bean="weblogicConnectionFactory" />
    </property>
    <property name="destinationResolver">
    <ref bean="weblogicDestinationResolver" />
    </property>
    </bean>

    <bean id="colaTEST" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="jms/micola" /> //nombre JNDI
    <property name="jndiTemplate" ref="weblogicJndiTemplate" />
    </bean>

    <bean id="weblogicJndiTemplate" class="org.springframework.jndi.JndiTemplate">
    <property name="environment">
    <props>
    <prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>
    <prop key="java.naming.provider.url">t3://localhost:7010,localhost:7011,localhost:7012</prop>
    </props>
    </property>
    </bean>


    el fichero que voy a configurar ahora mismo es jms.listener.context.test.xml

    como estamos usando spring debemos de tenere
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:amq="http://activemq.apache.org/schema/core" xmlns:jms="http://www.springframework.org/schema/jms"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
                            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                            http://www.springframework.org/schema/util
                            http://www.springframework.org/schema/util/spring-util-3.0.xsd
                            http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd
    http://activemq.apache.org/schema/core
    http://activemq.apache.org/schema/core/activemq-core-5.5.0.xsd
    http://www.springframework.org/schema/jms
    http://www.springframework.org/schema/jms/spring-jms-3.0.xsd">
    <context:annotation-config />

    y terminar  con la etiqueta </beans>

        <bean id="weblogicJndiTemplate" class="org.springframework.jndi.JndiTemplate">
    <property name="environment">
    <props>
    <prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>
    <prop key="java.naming.provider.url">t3://localhost:7010,localhost:7011,localhost:7012
    </prop>
    </props>
    </property>
    </bean>

    <bean id="weblogicDestinationResolver"
    class="org.springframework.jms.support.destination.JndiDestinationResolver">
    <property name="jndiTemplate">
    <ref bean="weblogicJndiTemplate" />
    </property>
    <property name="cache">
    <value>true</value>
    </property>
    </bean>

    <bean id="weblogicConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiTemplate">
    <ref bean="weblogicJndiTemplate" />
    </property>
    <property name="jndiName"> // nombre que tiene las colas JMS por defectgo
    <value>weblogic/jms/ConnectionFactory</value>
    </property>
    </bean>


    <bean id="weblogicJmsTemplate" class="org.springframework.jms.core.JmsTemplate">
    <property name="connectionFactory">
    <ref bean="weblogicConnectionFactory" />
    </property>
    <property name="destinationResolver">
    <ref bean="weblogicDestinationResolver" />
    </property>
    </bean>


    <jms:listener-container container-type="default" connection-factory="weblogicConnectionFactory" acknowledge="transacted" concurrency="10" destination-resolver="weblogicDestinationResolver">
    <jms:listener id="listener" destination="jms/micola" ref="testMessageListener" method="onMessage" />
    </jms:listener-container>

    <bean id="testMessageListener" class="isf.domain.gcjms.JMSSessionAwareMessageListenerImpl">
    <property name="consumerAsyncronous">
    <bean class="isf.domain.gccmq.core.listener.ConsumerWLSTest"></bean> //nombre y paquete de la clase lisener
    </property>
    </bean>
    </beans>


    y en la parte de java

    he crrado una clase main para probarlo


    public class JMSManualTest {

    public static void main(String[] args) throws IOException {
    System.out.println("Arrancando Spring Context...");
    //levanto el contexto de spring para que la parte de lisener este activa cuando yo mando.
    ApplicationContext context = new ClassPathXmlApplicationContext("classpath:jms.listener.context.test.xml");
    System.out.println("Spring Context OK");
    do{
    System.out.println("Mensaje a enviar:");
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String mensaje = "";
    boolean finComando = false;
    while(!finComando){
    String line = br.readLine();
    if(line.endsWith(";")){
    if(line.length() > 1){
    mensaje += line.substring(0, line.length()-1);
    }
    finComando = true;
    }else{
    mensaje += line;
    }
    }
    System.out.println("Enviando mensaje...");
    sendJMSMessage(mensaje);
    System.out.println("Mensaje enviado");
    }while(true);
    }

    public static void sendJMSMessage(String message){
    JMSMessage mensaje = new JMSMessage(message, "");
    mensaje.setJmsMessageType("JMSMessageTypeTest");
    mensaje.setJmsPriority(1);
    //Especifica la fecha de expiraci�n del mensaje
    mensaje.setJmsExpiration(3000);
    //Identificador de correlaci�n, usado para asociar un mensaje con otro mensaje
    //mensaje.setJmsCorrelationId(Long.toString(System.currentTimeMillis()));
    //Permite uno de los dos modos de entrega permitidos,persistente o no persistente
    mensaje.setJmsDeliveryMode(1);
    //Usado para identificar la prioridad del mensaje
    mensaje.setJmsPriority(1);

    //Propiedades del mensaje
    // Properties prueba = new Properties();
    // prueba.put("Rango", 7);
    // mensaje.setJmsProperties(prueba);
    //Indica si un mensaje ha sido entregado
    mensaje.setJmsRedelivered(true);

    try {
    JMSFactory.getInstance().producer(mensaje);
    } catch (JMSInvalidDefinitionBeanException e) {
    e.printStackTrace();
    } catch (JMSMessageWrapperException e) {
    e.printStackTrace();
    } catch (Exception e){
    e.printStackTrace();
    }
    }

     en la parte de recivir

    public class ConsumerWLSTest implements IConsumerAsynchronous {

    @Override
    public JMSMessage onMessageJms(JMSMessage _jmsmessage) {
    return onMessageJms(_jmsmessage, null);
    }

    @Override
    public JMSMessage onMessageJms(JMSMessage _jmsmessage, Session _session) {
    try{
    System.out.println("Mensaje Recibido: [" + _jmsmessage.getJmsBody() + "]");
    return null;
    }finally{
    try {
    _session.commit();
    } catch (JMSException e) {
    e.printStackTrace();
    }
    }
    }

    }





    18 de junio de 2015

    11 de mayo de 2015

    funciones de contar en excel



    para contar cuantas unidades se tiene de un tipo de celda

    =CONTAR.SI(Tabla3[Estado];cerrado) -> cuenta cuantas celdas tienen la palabra cerrado

    =CONTAR.BLANCO(Tabla3[Estado]) .> cuenta la celdas de tu columna estados las que estén vacíos

    =CONTAR.SI(Tabla3[Estado];*) -> cuenta las celdas que tengan algún texto


    30 de abril de 2015

    Cargar properties en java



    Se crea primero un archivo de propiedades dentro del src
    por ejemplo src/es/properties/test.properties

    escribo en el fichero test.properies
    testPropoerties=2;


    desde la parte java debo de primero cargar el fichero de properties

    java.io.InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("/es/properties/test.properties");

    se comprueba que se ha cargado cerrectamente
    if (inputStream == null) {
    throw new Exception("No se encuentra el fichero de propiedades: test.properties");
    }

    cargamos lo que hemos leido al fichero properties
    private Properties prop = new Properties();
    prop.load(inputStream);
     
    para ver si esta bien cargado
    Systen,out.println("properties "+prop.getProperty("testPropoerties"));


    27 de abril de 2015

    llamada a procedimientos sql desde java




    para llamar desde java a procedimientos sql, este seria el codigo.

       java.sql.Connection connection //hay que crearse una funcion
       java.sql.PreparedStatement ps ps=connection.prepareCall("CALL NOMBRE_PAQUETE.NOMBRE_PROCEDIMIENTO('TMP')");
       ps.execute();


    instalacion del Galssfish 2.1


    La version de glassfish 2.1 es porque es la version 6 de java.

    “java -Xmx256m -jar filename.jar”


    En este momento se ejecuta la instalación de Glassfish 2.1. En la siguiente ventana leemos las condiciones de uso y pulsamos Accept

    Si los puertos 8080 los tienes ocupados debes de modificar los ficheros de setup y de setup-cluster
      “lib\ant\bin\ant -f setup.xml”

    “lib\ant\bin\ant -f setup-cluster.xml”

    Glassfish\bin, ejecutamos el comando “asadmin start-domain domain1”.

    Una vez iniciado el servidor, podemos acceder a la consola a través del navegador, concretamente a través del puerto por defecto 4848.

    en el navegador localhost:4848

     setup.xml, el user por defecto era “admin” y el password “adminadmin”.


    ya estaria la instalacion hecha

    esta información lo saque de esta pagina
    https://glassfish.dev.java.net/downloads/v2.1-b60e.html
    donde tambien puedes encontrar glassfish de versiones antiguos

    SVN KIT comparar entre dos revisiones



    SVNKIT son unas librerias para poder realizar commit o rolback desde java. Estas librerias no tienes un java doc muy bueno por ese motivo. quiero compartir como se puede sacar toda la informacion de dos revisiones.  

    Esta funciona newInstance de la clase SVNClientManager. devuelve una lista de revisiones y por lo tanto una lista de los cambios que se han producido.

    el objeto que devuelve arg0 tiene toda la información de la revision , numero, cambios y mensaje del commit.


    SVNClientManager.newInstance(new DefaultSVNOptions(), "lectura", "lectura").getLogClient().doLog( SVNURL.parseURIEncoded(rama.getUrlv()+"/"+vIncio),//URL null,//path SVNRevision.HEAD,//pagRevision SVNRevision.create(referencia),//starRevision SVNRevision.HEAD,//endRevision false,//stop on copi false,//div change 50L,//log limiet new org.tmatesoft.svn.core.ISVNLogEntryHandler(){//handler public void handleLogEntry(SVNLogEntry arg0) throws SVNException { //System.out.println(arg0.getRevision()); } });

    6 de enero de 2015

    Compraracion entre String


    String s ="";
    String s1 = new String("");
    para comprar  s == s1 -> false


    metodo .intern()

    String s ="";
    String s1 = new String("").intern();
    para comprar  s == s1 -> true

    esto es porque s es una dirección de memoria a ese string
    s1 crea un objero y wrappea el valor de la cache internamente en ese objeto
    este valor lo guarda internamente  y eso es lo que devuelve intern

    String s = new String("");
    String s1 = new String("");
    para comprar  s == s1 -> false
    s.equals(s1) -> true

    Unable to locate an executable at "/usr/bin/java/bin/java" (-1)


    debe de abrir la cosnsola 

    y teclee

    $> export JAVA_HOME=/Library/Java/Home


    y vuelve el problema  java -version