martes, 31 de diciembre de 2013

Excelente tutorial de bootstrap

http://www.tutorialrepublic.com/twitter-bootstrap-tutorial/
Muchas gracias a toda la gente que vistia mi blog ya sea porque lo tiene agregado o da con el buscando alguna solución, mil gracias, bendiciones para todos, y este es el último post del 2013 por lo que les deseo un FELIZ AÑO NUEVO, deseandoles que Dios llene de bendiciones sus vidas y que todos sus sueños se hagan realidad.

sábado, 28 de diciembre de 2013

Eclipse Shortcuts

http://www.vogella.com/articles/EclipseShortcuts/article.html

Enums en php al estilo java

Este es el link https://gist.github.com/paranoiq/1753178

jueves, 26 de diciembre de 2013

miércoles, 18 de diciembre de 2013

Subgit

Encontre este interesante lonk de como ligar visual svn con git http://blog.subgit.com/visualsvn-subversion-server-and-git/

lunes, 16 de diciembre de 2013

Cambiar de usuario svn de eclipse en windows

Ejecutar %APPDATA%\Subversion\auth y dentro de la carpeta svn.simple buscar el nombre del usuario que se desea cambiar, no es necesario reiniciar eclipse.

sábado, 7 de diciembre de 2013

Mostrar un modal panel con un a4j rich faces 3.3

El siguiente codigo muestra como.
<a4j:commandButton>
<rich:componentControl for="modalPanelReasignarAsistencia" event="oncomplete" operation="show" /> 
          </a4j:commandButton>

viernes, 6 de diciembre de 2013

Vistas parciales o formularios parciales con JSF 1.2 y rich:faces 3

http://java.dzone.com/news/richfaces-region-partial-jsf , este codigo me ayudo a realizar validaciones parciales.

<a4j:commandButton value="Agregar" id="commandButtonAgregar" rendered="#{edicionProveedorMB.tamanioRepresentantes lt 3}"
                reRender="panelGridRepresentante,dataTableRepresentantes,panelGridAgregarRepresentante"
                    action="#{edicionProveedorMB.agregarRepresentante}" immediate="false" process="panelGridRepresentante" ajaxSingle="true" />

miércoles, 20 de noviembre de 2013

viernes, 23 de agosto de 2013

Eliminar tabla mysql sin tener que verificar que tenga relaciones

SET foreign_key_checks = 0; y luego ejecutar la sentencia Drop Table nombreTabla;

Reiniciar y vaciar tabla MYSQL

TRUNCATE nombre_tabla; Esta instrucción vacía la tabla y resetea el autoincremental a su valor inicial. Para que el valor autoincremental tome un valor determinado es posible utilizar la siguiente sentencia. ALTER TABLE nombre_tabla AUTO_INCREMENT=1000

martes, 13 de agosto de 2013

Guardar Form struts x1 ModelMapper

Cuando no pase automaticamente, hay que pasarlo en el request, poniendo el nombre del form, ejemplo. request.setAttribute("asuntoForm", asuntoForm);

jueves, 8 de agosto de 2013

Mapear una imagen blob mysql resultTransformer

Cuando se selecciona de la consulta, ya que esta guardada como blob en la base de datos que en este caso es mysql en hibernate, query.addScalar("logo",Hibernate.BINARY) y en el dto que contendra los datos private byte[] logo;

Excepcion jasper Unknown hyperlink target 0

Me encontre con el sig, link en mi caso el error es porque la version dejasper no es igual a la de ireports http://www.apuntesdejava.com/2010/06/netsfjasperreportsenginejrruntimeexcept.html

lunes, 29 de julio de 2013

Tamaño de tabs en richfaces 3.3

Algunos problemas que tuve era que en rich faces las pestañas salian descuadradas, lo solucione con la propiedad labelWidth y styleClass, en el styleClass le asigne una clase de una hoja de estilos en cascada donde definia el tamaño height: 24px !important; y en el labelWidth simplemente asigne el tamaño.

viernes, 26 de julio de 2013

Evento al cerrar una ventana javascript

    <script type="text/javascript">

window.onbeforeunload = function() {
 
  alert("antes de salir");
   //llamas a tu peticion con ajax para que realice el ccerrado
   //return false;//Si quieres que muestre un dialogo descomenta esta linea
}

    </script>

Seleccionar el valor de un renglon jquery

$(".editar").click(function(e){

 $(this).parents("tr").find(".id").css("background-color","red");

 
});

el td dentro del renglon tiene la clase editar

miércoles, 3 de julio de 2013

Checkout masivo y checkin masivo en clear case

Pense que lo habia visto todo con visual source safe pero este es uno de los peores versionadores con los que he trabajado, me tengo que acomodar a las herramientas que use el cliente. Bueno para hacer un checkout masivo.

c:\Carpeta> cleartool
cleartool> co -c "Checkout masivo" .../*
 
 
Y ahora el chekin masivo 
 
c:\Carpeta> cleartool
cleartool> ci -c "Checkout masivo" .../* 

miércoles, 19 de junio de 2013

Hora incorrecta al guardar en PHP

Me pasaba que cuando intentaba guardar un registro la hora era incorrecta en un tipo de dato timestamp de mysql, el problema se soluciono con la siguiente línea de código :

date_default_timezone_set('America/Mexico_City');   

Iexplorer 8 se traba el scroll, para arriba para abajo y el cpu se va al 100%

La raiz del problema, es el internet explorer, si puedes hacer que tus usuarios no lo usen es mejor, yo solucione el problema con un pequeño parche, dentro de la etiqueta body le agregue un valor con la etiqueta style al heigth, pero el credito no es mio es del compa oscar de oax.

lunes, 10 de junio de 2013

Cron Expressions

  1. Seconds
  2. Minutes
  3. Hours
  4. Day-of-Month
  5. Month
  6. Day-of-Week
  7. Year (optional field)
property name="cronExpression" value="0 40 13 * * ?"  en este ejemplo la tarea corre a las 13:40 horas diario

viernes, 17 de mayo de 2013

MYSQL ERROR 1005 – Can’t create table ‘xxx’ (errno: 150)

Este error sale generalmente porque los tipos de datos en las FOREIGN KEY no son iguales, en este caso a mi me salio porque en a pesar de que los 2 campos eran int uno era unsigned.

jueves, 11 de abril de 2013

Ejemplo sencillo usando Phery


<?php
//Ensure that it's completly compatible with strict mode and throws no notices or warnings, and not using any deprecated code
error_reporting(-1);

if (version_compare(PHP_VERSION, '5.3.3', '<'))
{
 die('This demo needs at least PHP 5.3.3');
}

ini_set('display_errors', 1);

$end_line = 890; date_default_timezone_set('UTC');
$memory_start = 0;
$start_time = microtime(true);

require_once 'Phery.php';

ob_start();   
 
function common(){
  $r = new PheryResponse;
  $r->jquery("#result")->remove(); // load your messages
  return $r;
}

Phery::instance()->set(array(
  'common' => 'common'
))->process();
?>
<!doctype html>
<html>
<head>
  <script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
  <meta charset="utf-8">
  <title>Phery</title>
  <script src="phery.js" type="text/javascript"></script>
  <script>
  $(document).ready(function(){
  
    $(function(){
  phery.remote('common');
});

  });
  </script>
</head>
<body style="background-color:red">
  <?php echo Phery::link_to('Click me', 'alias-for-function', array('class' => 'className', 'args' => array('data' => 'hallelujah'))) ?>
  <div id="result">Este contenido no se ve</div>
</body>
</html> 
 
OJO hace una doble petición el servidor este ejemplo 

Configurar redbean con F3 Framework

Realmente es muy sencillo, solo hay que meter la clase de redbean en la carpeta de lib de F3, luego en el índex hay que incluir la librería, configurar el acceso a base de datos, y listo.

Custom css list images

<ul style="list-style-image: url(customImage.gif)">
<li>primero</li> 
<li>segundo</li>
</ul>

Plugin de jquery para enviar formularios con ajax

http://malsup.com/jquery/form/#fields

.not jquery

Jquery tiene 2 tipos de not uno que funciona como selector http://api.jquery.com/not-selector/ y otro como función http://api.jquery.com/not/ en este caso el que funciona para seleccionar y exluir elementos es el de función.

Lib para tooltips en Jquery

Lib para tooltips en Jquery http://www.nickstakenburg.com/projects/prototip2/

Alinear un span dentro de un div

<div class="titulo">
  <span class="derecha">Titulo</span>
  <span class="izquierda">Boton izquierda</span>
</div>


Y en el css
.derecha { float:right } .izquierda { float:left }

miércoles, 20 de marzo de 2013

Recursos para menus con jquery

2 links para crear menus muy pero muy modernos. Recurso 1
Recurso 2

Lista a Arraylist con distintos objetos modelmapper

import java.lang.reflect.Type;                 

ArrayList<objetoDTO> objetos=null;
   List<Objeto> objetosList
ModelMapper modelMapper = new ModelMapper();
          Type listType = (Type) new TypeToken<List<objetoDTO>>() {}.getType();  
          objetos = modelMapper.map(objetosList, listType);

/*
Este codigo sive para pasar propiedades iguales de una lista a un arreglo
en este caso el objeto Objeto es diferente de ObjetoDTO en campos.

Usa http://modelmapper.org/

*/

Clase que transforma a Objetos Hibernate a DTO

Importante tanto las proyecciones, HQL o SQLQueries deben de llevan como alias el campo del dto precedido por una z, ya que hibernate no soporta los mismos alias. Tomado de https://hibernate.atlassian.net/browse/HHH-5063.
Ejemplo:
query.setResultTransformer(new ResultTransformerUtil(DTO.class)).list();
import org.hibernate.transform.AliasToBeanResultTransformer;

public class ResultTransformerUtil extends AliasToBeanResultTransformer{

 private static final long serialVersionUID = -63993253786054062L;

 public ResultTransformerUtil(Class<?> resultClass) {
        super(resultClass);
    }

    @Override
    public Object transformTuple(Object[] tuple, String[] aliases) {
        String[] cleanedUpAliases = new String[aliases.length];
        for (int i = 0; i < aliases.length; i++){
            cleanedUpAliases[i] = aliases[i].replaceFirst("z", "");
        }
        return super.transformTuple(tuple, cleanedUpAliases);
    }
}

Clase que escribe json en struts 1.x

Requiere la librería json http://code.google.com/p/google-gson/
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import javax.servlet.http.HttpServletResponse;
import com.google.gson.Gson;


public class JsonUtil {
    public static void escribirJSON(HttpServletResponse response,Object object){
     Gson gson = new Gson();
  response.addHeader("Content-Type", "text/html; charset=utf-8"); 
  try {
             response.getOutputStream().write(gson.toJson(object).getBytes("UTF-8"));
             response.getOutputStream().flush();
         } catch (UnsupportedEncodingException e) {
             e.printStackTrace();
         } catch (IOException e) {
             e.printStackTrace();
         }
    

miércoles, 27 de febrero de 2013

Eliminar todas las tablas de una base de datos Oracle

Creditos y gracias a szaman en http://stackoverflow.com/questions/1690404/how-to-drop-all-user-tables.


BEGIN
   FOR cur_rec IN (SELECT object_name, object_type
                     FROM user_objects
                    WHERE object_type IN
                             ('TABLE',
                              'VIEW',
                              'PACKAGE',
                              'PROCEDURE',
                              'FUNCTION',
                              'SEQUENCE'
                             ))
   LOOP
      BEGIN
         IF cur_rec.object_type = 'TABLE'
         THEN
            EXECUTE IMMEDIATE    'DROP '
                              || cur_rec.object_type
                              || ' "'
                              || cur_rec.object_name
                              || '" CASCADE CONSTRAINTS';
         ELSE
            EXECUTE IMMEDIATE    'DROP '
                              || cur_rec.object_type
                              || ' "'
                              || cur_rec.object_name
                              || '"';
         END IF;
      EXCEPTION
         WHEN OTHERS
         THEN
            DBMS_OUTPUT.put_line (   'FAILED: DROP '
                                  || cur_rec.object_type
                                  || ' "'
                                  || cur_rec.object_name
                                  || '"'
                                 );
      END;
   END LOOP;
END;
/

lunes, 25 de febrero de 2013

Configurar pagina maestra de tiles con struts 1.x para css y javascripts

Bueno algunas veces necesitamos agregar javascript o hojas de estilo que no sean propios de la página maestra sino de los hijos, pues bien lo podemos hacer de la siguiente forma.

En tiles-defs.xml

       <definition name="master" path="/jsp/templates/principal.jsp">
  <put name="title" value="Sistema" />
  <put name="body" value="/recursos/html/contenido.html" />
  <putList name="cssList" />
  <putList name="jsFilesList" />
     </definition>


Y ahora en el principal.jsp


  <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

   <tiles:useAttribute id="cssList" name="cssFilesList" classname="java.util.List" />
        <c:forEach var="cssFileName" items="${cssList}">
              <link type='text/css' rel="stylesheet" href="<%=request.getContextPath()%><c:out value='${cssFileName}' />" />
        </c:forEach>
   
   <tiles:useAttribute id="jsList" name="jsFilesList" classname="java.util.List" />
        <c:forEach var="jsFileName" items="${jsList}">
              <script type="text/javascript" src="<%=request.getContextPath()%><c:out value='${jsFileName}' />"></script>
        </c:forEach>

Ya por último los hijos que extiendan de master en su respectivo xml sobreescriben.

<definition name="childPage" path="/child.jsp" extends="master">
        <putList name="cssList">
            <add value="/css/hoja1.css"/>
            <add value="/css/hoja2.css"/>
        </putList>
   <putList name="jsList">
            <add value="/js/Script1.js"/>
            <add value="/js/Script2.js"/>
        </putList>
    </definition>

lunes, 18 de febrero de 2013

Cambiar puertos de oracle xpress edition en windows



 Muchas veces cuando desarrollas en java el xpress edition ocupa el puerto 8080 el cual ocupa jboss o glassfish, entonces si utilizas varios servidores es mas facil cambiar el puerto de oracle que el de los servidores.

Todo esto es por línea de comandos en Windows.

C:\WINDOWS\system32>sqlplus system@xe

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

Enter password:

Connected to:
Oracle Database 11g Express Edition Release

SQL> -- ver qaue estatus tienen
SQL> select dbms_xdb.gethttpport as "HTTP-Port"
            , dbms_xdb.getftpport as "FTP-Port" from dual;

HTTP-Port   FTP-Port
---------- ----------
     8080          0


SQL> -- estable el puerto http y ftp

SQL> begin

 2    dbms_xdb.sethttpport('9999');

 3    dbms_xdb.setftpport('2100');

 4  end;

 5  /



PL/SQL procedure successfully completed.



SQL> select dbms_xdb.gethttpport as "HTTP-Port"

            , dbms_xdb.getftpport as "FTP-Port" from dual;



HTTP-Port   FTP-Port

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

       80       2100


SQL> -- Deshabilitar el accesos

SQL> begin

 2    dbms_xdb.sethttpport('0');

 3    dbms_xdb.setftpport('0');

 4  end;

 5  /

lunes, 11 de febrero de 2013

OR dinamico en Hibernate

Esta funcion es util cuando se tiene una serie de valores que se pueden ir agregando dinamicamente en Hibernate, por ultimo lo agregamos al criteria.


Disjunction disjunction=Restrictions.disjunction();
            for(Objeto objeto:lista){
                disjunction.add(Restrictions.eq("campo",objeto.getId()));   
            }
criteria.add(disjunction);

Seleccion de registros distintos en Criteria hibernate DISTINCT

Pues bien a veces necesitamos registros distintos.

Tenemos dos formas la primera es seteandole a la proyeccion un distinct, lo malo de hacerlo de esta forma es que solo trae el registro seteado en la proyeccion.

ProjectionList projectionList = Projections.projectionList();
  projectionList.add(Projections.distinct(Projections.property("rfc")));

criteria.setProjection(projectionList);

Y la segunda es mediante el resultTransformer el cual trae la clase persistida en forma completa
equivalente a un distinct de todo *

criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);


domingo, 10 de febrero de 2013

Base de datos en javascript

Tengo un buen rato siguiendo las bases de datos del lado del cliente, y aunque html5 ya proporciona almacenamiento del lado del cliente todavía sigue siendo limitado, así que encontré este motor que funciona de lado del cliente :) http://javascriptsql.sourceforge.net