20 Apr
Archivado en: PHP, Programación
Para implementar una librería específica para la API de Google Maps en Code Igniter he seguido las instrucciones que puedes encontrar en el wiki de CI. Vayamos por pasos:
require('GoogleMapAPI.class.php');
class CiGoogleMapAPI extends GoogleMapAPI{
function CiGoogleMapAPI(){
parent::GoogleMapAPI();
}
function fetchURL($url) {
if(ini_get('allow_url_fopen')==true)
{
return file_get_contents($url);
}else{
return $this->curlFetchURL($url);
}
}
function curlFetchURL($url){
// create a new curl resource
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
// grab URL and pass it to the browser
$content= curl_exec($ch);
// close curl resource, and free up system resources
curl_close($ch);
return $content;
}
function getCache($address) {
$_ret = array();
$this->ci =& get_instance();
$this->ci->load->database();
$sql='SELECT lon,lat FROM ' . $this->_db_cache_table. ' WHERE address ="'.$address.'"';
$_res=$this->ci->db->query($sql);
if($_row = $_res->row()) {
$_ret['lon'] = $_row->lon;
$_ret['lat'] = $_row->lat;
}
return !empty($_ret) ? $_ret : false;
}
function putCache($address, $lon, $lat) {
if(strlen($address) == 0 || strlen($lon) == 0 || strlen($lat) == 0)
return false;
$this->ci =& get_instance();
$this->ci->load->database();
$data = array(
'address' => $address,
'lon' => $lon,
'lat' => $lat,
);
$this->ci->db->insert($this->_db_cache_table, $data);
return true;
}
}
CREATE TABLE GEOCODES (
address varchar(255) NOT NULL default '',
lon float default NULL,
lat float default NULL,
PRIMARY KEY (address)
);
Ya está todo preparado, para comprobar que funciona, vamos a crear un controlador y una vista que muestre un mapa con 3 coordenadas, para ello:
<?php
class Gmap extends Controller
{
function Gmap()
{
parent::Controller();
$this->load->library('Cigooglemapapi');
$this->cigooglemapapi->setAPIKey('PON_AQUI_LA_APIKEY');
}
function index()
{
$this->cigooglemapapi->setWidth('100%');
$this->cigooglemapapi->disableDirections();
$this->cigooglemapapi->addMarkerByAddress('Obispo Cobos 12 Ubeda Spain','Mi casa','<b>Mi casa</b>');
$this->cigooglemapapi->addMarkerByAddress('Trinidad 6 Ubeda Spain','La casa de Juán','<b>La casa de Juan</b>');
$this->cigooglemapapi->addMarkerByAddress('Rastro 2 Ubeda Spain',"La casa de Marta","<b>La casa de Marta</b>");
$this->load->view('gmap');
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<?php $this->cigooglemapapi->printHeaderJS(); ?>
<?php $this->cigooglemapapi->printMapJS(); ?>
<!-- necessary for google maps polyline drawing in IE -->
<style type="text/css">
v\:* {
behavior:url(#default#VML);
}
</style>
</head>
<body onload="onLoad()">
<?php
$this->cigooglemapapi->printMap();
?>
</body>
</html>
Ahora ponemos en nuestro navegador: http://localhost/index.php/gmap y debería aparecer el mapa.

Si eres programador de PHP mas de una vez habrás tenido que reinventar la rueda programando accesos a bases de datos, formularios y demás. Los mas ordenados, se construyen sus propias clases en PHP que almacenan para ser usadas en futuros proyectos y no tener que volver a reprogramar una y otra vez las mismas cosas.
Los frameworks, entre otras muchas cosas, nos ofrecen la posibilidad de usar formularios, acceso a bases de datos, envios de mail, etc. sin tener que programarlos desde cero. Nos permite tener un código mas ordenado, limpio y facil de actualizar, un código mas seguro y robusto y mucho mas eficiente.
Hay muchos frameworks para PHP: Zend, Prado, CakePHP, Symfony… (comparativa de distintos frameworks de PHP) pero es sin duda CodeIgniter el que por ahora me ha convencido y atrapado más.
Algunas caracterisiticas importantes de Code Igniter:
Code Igniter usa el patrón de diseño Modelo-Vista-Controlador como paradigma de arquitectura de desarrollo, la cual separa en 3 capas distintas: la representación de datos, el interfaz de usuario y el controlador de eventos respectivamente.
La mejor forma de ver todo lo que explico es viendo un videotutorial en el que se muestra como programar un blog sencillo con CI en 20 minutos.
Desde la web oficial de Code Igniter podéis descargar el framework, ver mas videos, leer la documentación y aceder a los foros de la comunidad de desarrolladores.
Gracias a EmezetaBlog, nos llega una chuleta para programadores de PHP la cual nos puede servir a mas de uno a la hora de trabajar con PHP. Lista para descargar e imprimir.
Un alto porcentaje de las comunicaciones mundiales se hacen a través de los numerosos cables submarinos que cruzan todos los océanos de nuestro planeta. A primeros de mes un barco rompía por accidente uno de éstos cables dejando sin acceso a Internet a cerca de 75 millones de habitantes de Asia [en inglés].
A continuación podemos ver un mapa con la localización de éstos cables (click en la imagen para agrandar):
No me extraña nada ésta noticia de La voz de Galicia que dice que Los dueños de pisos suben el alquiler al saber que se cobran ayudas de 210 euros.
Al menos pasó lo mismo en Andalucía cuando hace unos años la Junta de Andalucía otorgaba una ayuda economica para comprase un ordenador. Entonces las tiendas subieron casi al el 75% los precios de los ordenadores. Fue terminar el periodo de ayudas, y volvieron a bajar los precios.
Creo que deberían de controlar éste tipo de artimañanas y sancionar duramente para que no se repita. Estaba esperando que sucedíera ahora con el tema de las ayudas para los jovenes que alquilan pisos, y mira por donde hoy me he topado con ésta noticia.
Mis primeros contactos con la blogosfera fué hace unos años a través de bitacoras.com y su sitema bitacorae. El proyecto vuelve de nuevo con ams fuerza y mas 2.0 que nunca, de la mano de su CEO Jose Luis Perdomo y CFO Raul Ordoñez (jasp), que es paisano mío.
Para quien no la conozca, bitacoras.com es una red social de bloggers de habla hispana, que te permite enviar una copia de tus post de forma automatica, para que otros bloggers o lectores puedan estar al minuto de loq ue se escribe en los blogs hispanos. Además puedes conocer a otros bloggers afines a la temática de tu blog entre otras muchas cosas.
Sinceramente debo decir que me encanta la nueva web. Tiene un diseño muy 2.0 en el que prima la usabilidad y la claridad en los contenidos. Sin duda es una forma de estar al tanto de la actividad bloguera hispana y una herramienta eficaz para crear una verdadera comunidad de bloggers.
Una práctica cuánto menos desleal tanto para las demás empresas registradoras cómo para los usuarios. Si consultas la disponibilidad de un dominio en el whois de NetworkSolutions, ésta lo registra y se apodera de él.
Si quieres registrarlo lo tendrás que hacer obligatoriamente con ellos. Ellos se defienden diciendo que es para proteger a los usuarios. Que no se preocupen, no necesitamos ser protegidos de ésa manera.
Personalmente creo que las entidades reguladoras deberían tomar cartas en el asunto y penalizar de alguna manera a las empresas que realicen ésta práctica pero me imagino que como casi siempre habrá muchos intereses de por medio.
09 Dec
Archivado en: Software Libre
Para quienes no conozcáis a éstas alturas lo que es SourceForge, deciros que es el sitio web mas grande del mundo de desarrollo se software de código abierto. Si tienes un proyecto de código abierto, SourceForge te da un hosting y herramientas para ayudarte a llevarlo a cabo.
Sin duda una de los ataques al software libre ha sido siempre el hecho de que no se cobra la licencia de uso, cómo ocurre en el software privativo, y por lo tanto puede llevar a la confusión de que con el software libre no se puede ganar dinero. Nada mas lejos de la realidad. Los que hayan estudiado ingeniería informática, sabréis que en la primera clase de fundamentos de programación, lo primero que nos dicen que el 70% de los beneficios del software provienen del mantenimiento del mismo.
Un modelo de negocio basado en el software de código abierto pasa por ofrecer una adecuación del software a las necesidades del cliente y soporte técnico que englobe un mantenimiento y actualizaciones sobre él.

Ahora, desde sourceforge.net, mediante MarketPlace podemos encontrar a aquellos profesionales que pueden ofrecernos ese soporte sobre las aplicaciones de código abierto.
Desde el punto de vista del experto, podemos ofrecer nuestros servicios en un determinado proyecto que se encuentre en sourceforge y establecer un precio por éstos servicios. El que busca soporte puede escoger al experto gracias a un sistema de evaluación (reputación) al mas estilo eBay.
Los modelos de negocios en el software están cambiando, aunque haya quienes prefieran quedarse anclados en el pasado.