sábado, 22 de marzo de 2014

Android App Opensource Ley de Infogobierno

Ley de Infogobierno Android

"La Asamblea Nacional (AN) publicó en Gaceta Oficial N° 40.274, de fecha 17 de octubre, la Ley de Infogobierno, con el objetivo de establecer los principios, bases y lineamientos que regirán el uso de las Tecnologías de Información en el Poder Público a fin de mejorar la gestión y los servicios que se prestan a las ciudadanas y ciudadanos."

Lo e publicado en github con la intención de que la sirva de guía a otros que este comenzando con android. Es un proyecto Opensource, que puedes ver también en el Playstore.

Requisitos Android Support v7.

GITHUB: https://github.com/bomba1990/Ley-de-Infogobierno

PLAY STORE https://play.google.com/store/apps/details?id=com.publisnet.leydeinfogobierno

martes, 31 de diciembre de 2013

TeLoProveo.com Una propuesta innovadora para el sector servicios venezolano

José G. Pestana
Co-fundador de TeLoProveo.com

29 de diciembre de 2013




Los postes y paredes de todas las grandes ciudades de Venezuela tienen algo en común: están repletas de anuncios de personas que ofrecen servicios. Ya se trate de profesores particulares de física o técnicos en reparación de electrodomésticos, muchos venezolanos suelen recurrir a carteles improvisados en la vía pública como forma de publicidad, ante la imposibilidad de pagar los altos costos asociados a la difusión en los medios tradicionales.

En una economía con escasa producción nacional y con tantas dificultades para la obtención de divisas destinadas a las importación de bienes como la venezolana, el sector servicios se ha convertido en la tabla de salvación para muchas personas que trabajan por cuenta propia o que, trabajando en una relación de dependencia, simplemente buscan completar su ingreso mensual para llevar sustento a su hogar. Y es que prestar un servicio, a diferencia de vender un bien, requiere relativamente poco capital y más aún si se hace desde la informalidad, dado que se evita el pago de impuestos.

A pesar de las "ventajas" relativas de la informalidad, los venezolanos son personas a las que les gusta progresar e innovar. Son muchos los que en aras de crecer invierten y hasta  optan por incorporar la tecnología en sus pequeños negocios. Hoy en día es habitual para los trabajadores no dependientes más humildes el uso del teléfono celular, el correo electrónico y las redes sociales como medios publicitarios y de negociación. Esta parece ser la tendencia, teniendo en cuenta los indicadores de uso de las Tecnologías de Información y Comunicación en nuestro país.

Aún con la creatividad y capacidad de innovación, el trabajo por cuenta propia tiene todavía tiene una gran cantidad de obstáculos que salvar para desarrollarse, en especial la competencia y la dificultad para encontrar trabajos apropiados, además del ya mencionado alto costo de la publicidad en medios tradicionales. Por esta razón, un grupo de emprendedores venezolanos creó TeLoProveo.com, un sitio web que pretende conectar a las personas que requieren servicios con las que los proveen. Con esta iniciativa, los trabajadores por cuenta propia podrán anunciarse gratuitamente y conseguir clientes fácilmente.

En TeLoProveo.com las personas, actuando como clientes, publican solicitudes de servicio que luego son enviadas por el sitio a los proveedores registrados, de acuerdo a sus perfiles e intereses. De esta forma, los prestadores de servicio reciben por correo electrónico las  oportunidades de trabajo, sin realizar ningún esfuerzo, y pueden elegir por cuales participar y enviar sus ofertas. El sitio además permite observar las ofertas de otros proveedores, interactuar con los clientes y obtener una calificación por el trabajo realizado, entre muchas otras características que contribuyen a ampliar la transparencia y confianza en las transacciones, así como construir una reputación.

Lo mejor de todo es que en TeLoProveo.com se puede ofrecer cualquier tipo de servicio y se puede registrar quien lo desee: los que practican un oficio, los que realizan una actividad profesional, los que trabajan por cuenta propia, los que trabajando bajo una relación de dependencia tratan de completar su ingreso y las organizaciones. TeLoProveo.com es la contribución que un equipo de venezolanos comprometidos con el desarrollo del país hace para tenderle la mano a un gran número de compatriotas que busca progresar a través de la prestación de servicios. Si quieres conocer más, visita: www.teloproveo.com

jueves, 19 de diciembre de 2013

#eBookBonanza #Packt$5




Packt’s $5 eBook Bonanza is back!


Following on from the success of last year’s festive offer, the publisher will be celebrating the holiday season with an even bigger $5 Bonanza.

From December 19th, customers will be able to get any eBook or Video from Packt for just $5. This sale covers every title in the 1700+ range and customers can grab as many as they like until January 3rd 2014 – more information is available at http://bit.ly/1jdCr2W
Packt is celebrating #eBookBonanza! All eBooks and Videos are available for just $5! VISIThttp://bit.ly/1jdCr2W NOW! #Packt$5

Desde el 19 de diciembre, los consumidores podran comprar cualquier video o eBook de Packt por solamente 5$. Incluyendo el compreto rando de libros populares sobre javascript. a oferta sera hasta el 3 de enero de 2014

Pack esta celebrando navidad, asi que aprovechen!!!!

Visit http://bit.ly/1jdCr2W NOW!



jueves, 28 de noviembre de 2013

Joomla: Eliminar o cambiar meta TAG generator.



En la instalación de Joomla 2.5, el joomla automáticamente pone una etiqueta "generator", les voy a mostrar como quitarla o cambiarla por lo que nosotros queramos:



Joomla crea una etiqueta asi:
<meta name="generator" content="Joomla! - Open Source Content Management" />
Para eliminarla tenemos que hacer esto:

Acceder al archivo index.php de nuestro template y una linea después de defined('_JEXEC') or die;, añadimos el siguiente código para cambiarla:


$this->setMetaData('generator','Grupo Publisnet C. A. htp://publisnet.com');


Para remover la etiqueta en Joomla:

$this->setMetaData('generator','');

lunes, 12 de agosto de 2013

Mastering Ext JS



Este es un excelente libro que te enseña a programar con Ext JS, desde el programador novato hasta el más experto. Esta 100% garantizado que vas a aprender hasta un grado medio-alto de como trabajar y manejar Ext JS. Además de que esta escrito de una manera muy sencilla, tienes ejemplos buenos y concisos, donde no hay manera de perderse.

Aparte que todo el set de herramientas de Ext JS, es para la programación de interfaces web de alto nivel  que te permite hacer aplicaciones fascinantes del lado del cliente, con una facilidad increíble, y con un alto grado de calidad, pensado precisamente en el desarrollo de aplicaciones empresariales. Y que con la ayuda de este libro podrán sacarle el mayor provecho.

viernes, 16 de noviembre de 2012

Tutorial JqGrid + PHP + MYSQL

Siguiendo los cursos de JqGrid, ahora voy a mostrarles como hacer para montar el lado del servidor con PHP y MYSQL.

JqGrid es un sistema muy poderoso pero tiene la limitante que en modo data local máximo puede contener mil registros por las limitantes de Javascript, pero conectado directamente con un servidor que se encargue de todos los procesos, puede contener el numero de registros que necesitemos. Lo cual nos permite almacenar tranquilamente 20.000 filas de elementos sin ningún problema.

En este tutorial explicamos como conectar JqGrid con mysql, para cargar los datos JqGrid requiere para poder realizar la consulta ajax, que el archivo este en formato json o xml, en este tutorial vamos a explicar como se usa JqGrid en formato json, para cargar la data desde un servidor en php.



Formato de la solicitud AJAX
La solicitud ajax echa por JqGrid al servidor tiene estos parámetros:

  • nd: es simplemente la hora en la que se hizo la solicitud.
  • rows: el numero de lineas que se va a mostrar al usuario.
  • page: la pagina que se va a consultar en el momento.
  • sidx: el elemento por el cual se va a ordenar la consulta.
  • sord: el tipo de orden de la tabla asc o desc.
  • _search: esto es un bolleano que contiene false o true en el caso de que se se use la barra de filtros y se este buscando algo en especifico.
  • Listas de elementos: cada uno de los index de los elementos que usemos en la búsqueda van a salir de la filter toolbar también serán enviados como parámetros.


Formato del archivo JSON
El archivo json por el servidor debe contener los siguientes atributos:

  • page: La pagina actual que esta mostrando.
  • records: el numero de registros que hay en total en la tabla.
  • rows: las filas que vamos a devolver actualmente al sistema
  • total: el numero de paginas en total que hay en el sistema.
Conectando JqGrid con PHP y Mysql.
El proceso para hacer el puente de la información es:
  1. Primero hacemos lo normal y nos conectamos a la base de datos. 
  2. Después guardamos en un array todos los elementos de la solicitud que hace JqGrid.
  3. Construimos la consulta de filtrado para la barra de búsqueda. para construir la consulte lo dividi en dos partes el area de los like y el área de los equal, porque hay campos como los nombres que la búsqueda se puede parecer y hay campos como un total que tienen que ser exactos, pero ya cada uno podrá elegir como prefiera.
  4. Hacemos una consulta a la base de datos para saber el numero de filas que hay en total. 
  5. Calculamos el numero de paginas que hay, y averiguamos si la pagina es la correcta.
  6. Construimos la consulta añadiéndole los filter, los search y el orden.
  7. Hacemos la consulta para traernos los resultados que necesitamos en especifico.
  8. Por ultimo le devolvemos los datos al JqGrid.
Aquí esta el código explicado:
(isset($_REQUEST['rows']))?$_REQUEST['rows']:'',
  'page'=>(isset($_REQUEST['page']))?$_REQUEST['page']:'',
  'orderby'=>(isset($_REQUEST['sidx']))?$_REQUEST['sidx']:'',
  'orden'=>(isset($_REQUEST['sord']))?$_REQUEST['sord']:'',
  'search'=>(isset($_REQUEST['_search']))?$_REQUEST['_search']:'',
 );
 $se ="";
 //creamos la consulta de busqueda. 
 if($post['search'] == 'true'){
  $b = array();
  //Usamos la funci{on elements para crear un arreglo con los datos que van a ser para buscar por like
  $search['like']=elements(array('total','nota'),$_REQUEST);
  //haciendo un recorrido sobre ellos vamos creando al consulta.
  foreach($search['like'] as $key => $value){
   if($value != false) $b[]="$key like '%$value%'";
  }
  //Usamos la funci{on elements para crear un arreglo con los datos que van a ser para buscar por like
  $search['where']=elements(array('fecha','cantidad','taza','cliente'),$_REQUEST);
  //haciendo un recorrido sobre ellos vamos creando al consulta.
  foreach($search['where'] as $key => $value){
   if($value != false) $b[]="$key = '$value'";
  }
  //Creamos la consulta where
  $se=" where ".implode(' and ',$b );  
 }
 //Realizamos la consulta para saber el numero de filas que hay en la tabla con los filtros
 $query = mysql_query("select count(*) as t from inventario".$se);
 if(!$query)
  echo mysql_error();
 $count = mysql_result($query,0);

 if( $count > 0 && $post['limit'] > 0) {
  //Calculamos el numero de paginas que tiene el sistema
  $total_pages = ceil($count/$post['limit']);
  if ($post['page'] > $total_pages) $post['page']=$total_pages;
  //calculamos el offset para la consulta mysql.
  $post['offset']=$post['limit']*$post['page'] - $post['limit'];
 } else {
  $total_pages = 0;
  $post['page']=0;
  $post['offset']=0;
 }
 //Creamos la consulta que va a ser enviada de una ves con la parte de filtrado
 $sql = "select id, fecha, cliente, cantidad, taza, total, nota from inventario  ".$se;
 if( !empty($post['orden']) && !empty($post['orderby']))
  //Añadimos de una ves la parte de la consulta para ordenar el resultado
  $sql .= " ORDER BY $post[orderby] $post[orden] ";
 if($post['limit'] && $post['offset']) $sql.=" limit $post[offset], $post[limit]";
  //añadimos el limite para solamente sacar las filas de la apgina actual que el sistema esta consultando
  elseif($post['limit']) $sql .=" limit 0,$post[limit]";
 
  
 $query = mysql_query($sql);
 if(!$query)
  echo mysql_error();
 $result = array();
 $i = 0;
 while($row = mysql_fetch_object($query)){
   $result[$i]['id']=$row->id;
  $result[$i]['cell']=array($row->id,$row->fecha,$row->cliente,$row->cantidad,$row->taza,$row->total,$row->nota);
  $i++;
  
 }
 //Asignamos todo esto en variables de json, para enviarlo al navegador.
 
 $json = new stdClass();
 $json->rows=$result;
 $json->total=$total_pages;
 $json->page=$post['page'];

 $json->records=$count;
 echo json_encode($json);
 
 mysql_close($link);
 
 function elements($items, $array, $default = FALSE)
 {
  $return = array();
  if ( ! is_array($items)){
   $items = array($items);
  }
  foreach ($items as $item){
   if (isset($array[$item])){
    $return[$item] = $array[$item];
   }else{
    $return[$item] = $default;
   }
  }
  return $return;
 }
?>
Este es el resultado final: http://bomba1990.pythonanywhere.com/sosinformatico/js/JqGrid_Basico4
Codigo Github: https://github.com/bomba1990/JqGrid-Ejemplos/blob/master/JqGrid-Basico-4-DB.html
https://github.com/bomba1990/JqGrid-Ejemplos/blob/master/ajax.php

Suerte y espero que les sea de utilidad a todos los que lo solicitaron.

jueves, 8 de noviembre de 2012

Sistema echo en Codeigniter + HMVC + Jquery UI + JqGrid

Sistema echo en Codeigniter + HMVC + Jquery UI + JqGrid

Este sistema es un sistema que desarrolle ya hace algún tiempo, donde hago uso de JqGrid, y últimamente me an solicitado que publique una entrada para conectar JqGrid con el servidor, como no e tenido tiempo no e podido sacar un tutorial dedicado a esto, ademas de que es un poco enredado, así que e decidió subir este código y ponerlo a la orden para que puedan ver como es.

Este no es un sistema para producción es solamente un sistema desarrollado para una tesis, espero que le sirva de utilidad a alguien más.

Este sistema cuenta con los siguientes Modulos:
  • Clientes
  • Productos
  • Pedido
  • Historial Medico, como para oftalmologo, pero es sumamente básico.
La parte de la consulta es enredada porque cuando lo desarrolle lo hice de una forma tal que pudiese funcionar con varias columnas sin necesidad de cambiarlo mucho. 

Instalación

Para instalar el sistema, se debe tener ya un servidor con Apache, Window y Linux.
Lo primero que se debe hacer es crear una base de datos para el sistema, importar el archivo eye2000.sql y luego configurar el archivo database.php.
Con eso es suficiente para que el sistema empiece a funcionar

Screenshots

URL EN GITHUB