MuniManantay

MuniManantay

Municipalidad de Manantay

MayaSpace

MayaSpace

Baby Patron | Web Personal

Gyanamala

Gyanamala

Healing is simple

Reaching in to Heaven

Reaching in to Heaven

Artistic Expression

OWeb2 nos deleita con un pack de iconos web 2 gratis con los que podemos decorar nuestros blogs.

Ene
31

Sistema de Caché Simple en PHP

Escrito por Carlos Montalvo hace 1 año y 1 mes

Uno de las mejores alternativas para que tus proyectos en php se muestren más rápido es la de implementar un sistema de cache, con lo que ganamos velocidad y él un consumo reducido de nuestro servidor.

Hoy veremos un Sistema de Cache Simple en PHP, pero lo suficientemente flexible como para poder adaptarla a cualquier proyectos y personalizarla conforme a nuestras necesidades.

La Clase de Cache en PHP

/* file     : cache.class.php
 * Clase  : m2Cache
 * Original: http://www.calinsoft.com/2009/01/sistema-de-cache-simple-en-php.html
*/

//Algunos parámetros de configuración
define('ABSPATH', dirname(__FILE__) );

//Directorio donde almacenaremos los archivos cacheados
define('CACHE_DIR',
	ABSPATH . '/cache'); // tiene que tener permisos 777

//El tiempo que la copia se mantendrá vigente.
define('CACHE_TIME', 3600 ); // 3600 segundos 1 hora.

// La dirección de la Pagina Donde nos encontramos
define('PAGE',
	'http://'. $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']
);

// La dirección de la pagina con el nombre encriptado
define('CACHE_LINK',
	CACHE_DIR . "/" . md5( PAGE ) . ".html"
);

class m2Cache
{
       //Variable para activar el Sistema de Cache
	var $enableCache;

	//Variable para almacenar el tiempo de la creación del archivo
	var $time;

	function m2Cache(){
                //por defecto el sistema  de cache estará desactivado
		$this->enableCache	= false;
                //el tiempo por defecto empieza en 0
		$this->time			= 0;

	}

	//Función para activar el Sistema de cache.
	function enable(){

		$this->enableCache = true;

	}

        // Retorna el estado Actual del  Sistema.
	function status(){

		return $this->enableCache;
	}

        // Función Inicio del Cache.
	function startCache()
	{
	         // verificamos estado
		if ($this->status()):
                       //verificamos que existe la pagina en cache
			if ( @file_exists( CACHE_LINK ) ):
			        // si existe obtenemos la hora de creación del archivo.
				$this->time = @filemtime( CACHE_LINK );

                                // verificamos si está adentro del tiempo permitido.
				if ( ( time() - CACHE_TIME ) < $this->time ):
					// si está adentro del tiempo
                                       // mostramos la pagina cacheada.
					@readfile( CACHE_LINK );

					 die();

				 else:
				 	//Si Expiro se elimina, para prevenir conflictos.
				 	@unlink( CACHE_LINK );

				 endif;

			endif;

			//Habilitamos el uso de búferes de salida
			ob_start();

		else:
		       // no está el activado sistema de cache
			return false;

		endif;

	}

	//función de término del sistema de cache
	function endCache()
	{
		//verificamos estado del sistema de cache
		if ($this->status()):

                        //Creamos el archivo
			$fp = fopen( CACHE_LINK , 'w' );
			// escribimos adentro de el.
			@fwrite( $fp , ob_get_contents() );
			//cerramos
			@fclose( $fp );

			//Volcamos el búfer de salida y deshabilitamos el uso del búfer
			ob_end_flush();

		else:
		        // no está el activado sistema de cache
			return false;

		endif;

	}

}

Método de Uso

/* file: index.php
Para usarlo solo incluimos la clase dentro de la pagina que deseemos cachear.
*/

include 'cache.class.php';

// Instanciamos
$cache = new m2Cache();

// Activamos el cache
$cache->enable();

//al comienzo de la pagina añadimos esto

$cache->startCache();

/*
acá vendría la pagina en si comenzando supuestamente por
<html>
<head>
<body>
.......................
.......................
.......................

Y luego

</body>
</html>
*/

//al final añadimos
$cache->endCache();

Conclusión y Descarga de archivos

Con el parámetro CACHE_DIR indicamos el directorio donde almacenaremos la cache , con CACHE_TIME indicamos el tiempo de vida de la cache (en este caso 60 minutos/1 hora) y la función $cache->enable(); de la clase la cual nos permite activar el sistema de cache por defecto esta desactivado (muy bueno cuando uno va hacer cambios en la pagina).

He realizado una mini página sencilla adaptándola al sistema de cache para que observen su funcionamiento correcto, en la cual la estructura de archivos es la siguiente.

sistema_cache

Si tienen alguna duda sobre la clase pregunten, cabe resaltar como dije al principio que esta clase es muy simple pero flexible.

Descarga


Categorizado: Desarrollo Web | Web2Dev
Etiquetado: |

¿WordPress o MovableType? la rivalidad que nunca tiene fin, son varios los factores por que la mayoría de bloggers eligen Wordpress como plataforma de publicación, pero la que más he oído y ustedes no me dejaran mentir es que es flexible tanto para los desarrolladores como para los bloggers, con mas fuerza para estos ultimos, por los plugins que se tienen y con la incorporación de widgets para los themes de Wordpress, lo que permite que un usuario sin conocimientos de html o php puede montar un sitio web sin complicarse salvo excepciones pero seamos sinceros montar un sitio con Wordpress es sumamente fácil hablando de lo básico, y recordando que el mod Fantastico de Cpanel lo trae incluido ¿que más se puede pedir?.

wpwpwp

Pero ¿Cuál Es Mejor Para Web sites Con Mucho Tráfico?, Nos podemos dar una idea con  solo saber esto  Wordpress (Dinámico) y Movable Type (Estático).

No me dejaran engañar pero la mayoría de los grandes bloggers con mucho tráfico que usan Wordpress han tenido que cambiarse a un servidor dedicaco, propio o un VPS uno que otro cambio Apache por Lighttpd o Nginx.

Por lo que se los bloggers de Movable Type optaron por añadir FastCGI para un optimo rendimiento.

El punto fuente de las paginas estáticas es:

- Son entregadas más rápidamente
- No necesitas preocuparte por la performance de una base de datos

Aunque también depende mucho de la configuración de los servidores y el hardware que tenga.

No digo las ventajas de las paginas dinámicas por que son varias ustedes lo saben yo lo sé.

Solo quería dar entender que en el único punto fuerte que tiene movable type podría ser ese. Y por que hago tanto incapie en esto por que un Robin Good de MasterNewMedia cuyo sistema de publicación de contenidos es Movable Type entrevisto a nada mas y nada menos que a Matt Mullenweg desarrollador fundador de WordPress.org y le pregunto acerca de las ventajas de la utilización de WordPress frente a la adopción de una solución de las web continen tanto trafico y dijo claramente que los 2 son buenas alternativas al concluir.

Ya no les digo más vean la entrevista, mas abajo la traducción.

Si no pueden ver el video diriganse a http://www.qik.com/video/75124

Transcripción Completa en Castellano

Intro

Robin Good: Hola muchachos, soy Robin Good para MasterNewMedia, y adivinen?

Hay un muchacho aquí, me dice… pero no le ceo.

Por favor de nuevo ¿Cuál es tu nombre?

Matt Mullenweg: Matt Mullenweg.

Robin Good: Oh, no es el tío que yo pensaba…

De cualquier manera, este chico es muy interesante porque dice que es el que diseñó esta herramienta increíble que ustedes usan para publicar online y que se llama WordPress.

Wordpress, sí, yeah, ¡ese!

¡Este es el chico que la hizo! Matt Mullenweg. ¿Pueden creerlo?, está aquí mismo.

Matt, quiero acercarme por si preguntan: “¿Lo tocaste?” Yeah, lo estoy tocando, miren, lo estoy tocando ¡es real!

Ventajas de WordPress

Robin Good: Matt, desafortunadamente soy un usuario MovableType. Escribo en ingles y sirvo al 70% de mis lectores, cerca de un millón de visitants por mes que viene de todo tipo de países: India, Canada, Norte América y…

Matt Mullenweg: Similar a nuestro tráfico. Cerca de dos tercios de nuestro tráfico es internacional.

Robin Good: Entonces tenemos algo en común. He sentido envidia de la gente que usa WordPress por las muchas ventajas que tienen. Sin embargo mi gente de IT dice: “Sabes, tienes ciertas ventajas con MovableType. Tienes un montón de tráfico y esas cosas, no saltes a WordPress porque te gusta”..

Matt Mullenweg: ¿Qué ventajas piensas que tendrías?

Robin Good: Las ventajas que veo, como persona ignorante, no técnica es que tengo mucha flexibilidad para ajustar mi diseño y para personalizar cosas.

Nos vuelve loco pedir a dos o tres webmasters que ajusten cosas durante días hasta que funcionan

Y si tuviera una gran comunidad de gente ayudándome y yo pudiera preguntar mis dudas. Lo que no puedo hacer con MovableType. A veces es muy duro. Estas son las dos cosas principales cosas que creo que tendríamos .

Matt Mullenweg: Muy bien. Ambas me parecen bien.

Buenos Motivos Para Cambiar a WordPress

Robin Good: Seguramente te han preguntado muchas veces por MovableType y por qué le sugerirías a una persona que cambiara. ¿Hay una buena razón para que un website con mucho tráfico se cambie de MovableType a WordPress?

Matt Mullenweg: mi opinión las dos razones que mencionaste son válidas. Hay una gran comunidad alrededor de WordPress. Aquí en Italia en el WordPress Italia. Son maravillosos. Tenemos cien personas trabajando aquí en Italia, en Milán, eso es muy bueno. Y también, aunque no lo dijiste, también hay montones de plugins disponibles.

MovableType solía tener más plugins en el mayor desarrollo. En los últimos años realmente han pasado a WordPress. Y ahora tenemos 1300-1400 plugins en nuestro directorio, y eso es bastante potente. Puedes hacer mucho con ellos.

¿Es Bueno WordPress para Sitios con Alto Tráfico?

Robin Good: Desde el punto de vista de satisfacer las demandas de tener muchos usuarios al mismo tiempo. ¿Hay alguna diferencia fundamental entre los dos sistemas?

Matt Mullenweg: Sí, tenemos un modelo muy diferente de publicación, pero creo que si uno se fija en los Technorati 100, Wordpresses la plataforma blog más utilizada, de los blogs más grandes en el mundo. Hosteamos de todo, desde los blogs de la CNN, o I can has cheezburger, que sirve millones de páginas por día.

Se puede defender… si está configurado correctamente, puede hacer frente a cualquier cantidad de tráfico que desee.

Sitios Estáticos Vs. Dinámicos

Robin Good: Tú sabes mejor que yo cómo es la web. A la gente realmente que las cosas no sean demasiado exageradas: “Estoy bien, y esto es mejor …” Ellos realmente quieren saber la verdad detrás de las cosas y aquí me doy cuenta de que algo para defender cualquier posición, ya que tienes un gran mercado ya.

Mi punto es: lo que la gente me dice sobre las ventajas que tiene MovableType en términos de la forma en que producen las páginas. El almacenamiento en caché, estático, dinámico. ¿Cuán relevante es eso en tu opinión, y cuánto puede aportar en conjunto al desempeño de grandes sitios web?

Matt Mullenweg: MovableType es estático por default. Y WordPress es dinámico por default. En mi opinión el futuro de la Web es dinámico. Todos tienen una experiencia personal en la Web.

Por razones de rendimiento hay un plugin que convertirá Wordpress rendimiento estáticas, se trata de WP Super Caché y hace que el rendimiento sea el mismo que obtienes con algo que produce archivos estáticos como MovableType.

Sin embargo, cuando lo estático realmente no tiene un buen desempeño … ¿Recibes un montón de comentarios … un montón de interacción en tu blog?

Robin Good: Yeah.

Matt Mullenweg: Tú no estás constantemente reconstruyendo estos archivos. Ellos son generados y atraídos. Pero eso también te permite una mayor flexibilidad. Supongamos que quieres tener elementos aleatorios en cada página web o personalizarlos. Tal vez que la gente se registre y tenga una experiencia especial. Eso es mucho más fácil cuando tienes un sitio dinámico.

Robin Good: ¿Tú dices que si tengo un montón de interacción, muchas cosas que es necesario reconstruir con frecuencia, es mejor ir de tu manera que la de MovableType?.

Matt Mullenweg: Creo que ambos van a funcionar bien, hay grandes blogs, al igual que el tuyo propio, que utilizan con gran éxito MovableType. Tú puedes hacer bien un trabajo. Una razón para cambiar yo diría que es más las cosas que hemos hablado antes.

Robin Good: Gracias Matt, lo aprecio mucho.

(Vía MasterNewMedia)

Categorizado: Desarrollo Web
Etiquetado: | | | |
Ene
29

¿Bill Gates Loves Macs?

Escrito por Carlos Montalvo hace 1 año y 1 mes

Este video es medio raro es de octubre de 1983 para hacerles un resumen sobre este vídeo, es de un inusual evento llamado Macintosh Software Dating Game donde se realizó un juego entre Macintosh y 3 grandes industrias del Software de esos años entre los cuales estaban Fred Gibbons , Mitch Kapor y Bill Gates.

El juego consistía en que Steve Jobs realizaría una serie de preguntas a cada uno de los panelistas y según sus respuestas el elegiría con quien se quedaría.

Imagen de previsualización de YouTube

¿Ahora entiende por qué dije raro? Nunca pensé que Steve Jobs y Bill Gates coquetearan (por asi decirlo) entre los halagos de Gates y las preguntas sobre Mac de Jobs.

Y finalmente Jobs tiene que elegir a un ganador pero realmente dice que los necesita a los tres.

El video fue presentado durante la presentación de la conferencia D5 del año 2007, y viendo el video uno se da cuenta cómo ha cambiado el mundo de software, ¿increíble no?

Categorizado: Curiosidades
Etiquetado: | |
Ene
29

Hoy por hoy en el mundo del desarrollo web necesitamos incorporar esta tecnología a nuestros proyectos para tener aplicaciones interactivas.

De esta forma es posible realizar cambios sobre las páginas sin necesidad de recargarlas, lo que significa aumentar la interactividad, velocidad y usabilidad en las aplicaciones.

En todo este tiempo desde que empezó ajax he estado recopilando una serie de directorios de recursos ajax para poder facilitar la búsqueda de calendarios, datagrid, formularios, calculadoras, efectos, gallerias, ventanas modales y mucho mas, ahora lo comparto con ustedes.

Recursos Ajax

  1. Ajax Solutoire
    ajax-1
  2. DevSnippets
    ajax-1
  3. BestAjaxScripts
    ajax-1
  4. Ajax Lady
    ajax-1
  5. DhtmlGoodies
    ajax-1
  6. Free Ajax Scritps
    ajax-1
  7. Ajax Rain
    ajax-1
  8. Ajax Scripts
    ajax-1
  9. W3CTag
    ajax-1
  10. Host Scripts Ajax
    ajax-1
  11. Ajax Daddy
    ajax-1
  12. Ajax Case
    ajax-1
  13. Ajax.clear-mind.be
    ajax-1
  14. AjaxIgg
    ajax-1
  15. MiniAjax

    ajax-1
  16. W3C Gallery

    ajax-1
  17. AjaxWith

    ajax-1
  18. Ajax FreeScript
    ajax-1
Categorizado: Desarrollo Web
Etiquetado: |
Ene
28

Temas Wordpress 01/28

Escrito por Carlos Montalvo hace 1 año y 1 mes

Typebased

themes50

Descarga

Demo


BlogTheme

theme51

Descarga

Demo


Snapshot

theme51

Descarga

Demo


The Original Premium News

theme51

Descarga

Demo


The Original Premium News

theme51

Descarga

Demo


Categorizado: Diseño | Diseño Web
Etiquetado: |

Reparado las paginas internas tales como contact y portafolio, el re direccionamiento permanente para la nueva estructura de permanlinks ya esta, gracias a los usuarios que me avisaron por correo, seguiré chequeando para que todo este como antes.

Ene
27

Hace un par de meses atrás hablamos sobre como detectar navegadores web mediante php, donde hacíamos uso de la variable súper global $_SERVER['HTTP_USER_AGENT'] para poder extraer el nombre clave del navegador.

Basados en ese mismo script podemos complementar para poder detectar si no visitan desde el iPhone

// Simple browser detection
$is_lynx = $is_gecko = $is_winIE = $is_macIE = $is_opera = $is_NS4 = $is_safari = $is_chrome = $is_iPhone =false;

if (strpos($_SERVER['HTTP_USER_AGENT'], 'Lynx') !== false) {
	$is_lynx = true;
}elseif ( strpos($_SERVER['HTTP_USER_AGENT'], 'iPhone') !== false ) {
	$is_iPhone = true;
} elseif ( strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'chrome') !== false ) {
	$is_chrome = true;
} elseif ( strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'webkit') !== false ) {
	$is_safari = true;
} elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'Gecko') !== false) {
	$is_gecko = true;
} elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'Win') !== false) {
	$is_winIE = true;
} elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') !== false) {
	$is_macIE = true;
} elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'Opera') !== false) {
	$is_opera = true;
} elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'Nav') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'Mozilla/4.') !== false) {
	$is_NS4 = true;
}

$is_IE = ( $is_macIE || $is_winIE );

Y con solo un If simple determinaríamos si el usuario que nos visita lo hace por un iPhone

if ($is_iPhone):

// Nos visitas por medio del iPhone

endif;
if ($is_iE):

// Nos visitas por medio de IExplore

endif;

Y para los que solo deseen la validación del iPhone separo el código correspondiente.

$is_iPhone = false;

if (strpos($_SERVER['HTTP_USER_AGENT'], 'iPhone') !== false ):
	$is_iPhone = true;
endif;
Categorizado: Desarrollo Web
Etiquetado: | |
Ene
27

¡La evolución de Mac!

Escrito por Carlos Montalvo hace 1 año y 1 mes

Celebrando los 25 años de Mac en youtube an recopilado imágenes del desarrollo de Macintosh desde su primer modelo en 1984.

Imagen de previsualización de YouTube Categorizado: Actualidad
Etiquetado:
Ene
27

Así como en las principales bibliotecas del mundo, la Biblioteca Nacional del Perú (BNP) entidad del Estado siempre a la vanguardia de los adelantos tecnológicos a favor de la cultura, brinda a los usuarios que cuenten con laptops, el servicio gratuito de conexión inalámbrica a internet (Wi Fi) en su sede de San Borja.

bnp_wifi

De lunes a sábado desde las 8.30 hasta las 20.30 horas, tras registrar su computadora portátil en la puerta de ingreso los lectores se dirigen a cualquier Sala de Lectura (Educación, Humanidades, de Investigadores y Hemeroteca). Aquellos que tienen sus laptops con poca batería pueden conectar sus cables y sólo pagan S/. 2,00 (dos nuevos soles) por consumo de energía por todo el día. La conexión también puede realizarse desde el Hall de entrada.

Es imprescindible mencionar que para acceder al uso del Wi Fi el público debe gestionar su carné de lector.

Categorizado: Actualidad
Etiquetado: |