BrandCache Windows 7 y el puerto 80

BrandCache

Este post  aparece por las pocas veces que utilizo Windows para el trabajo web. Son mas familiares los entornos derivados de debian.  No puedo dejar de apuntar como gestiona Windows 7 este puerto para futuros casos en los que me haya olvidado completamente como lo he solucionado.

Tengo un Windows 7 instalado y me dispongo a utilizar Xampp Lite , la instalación por defecto con todo el pack Apache+PHP+MySQL+PHPMyAdmin . Al iniciar el servicio de Apache solo hace que fallar y el paso inicial es revisar si el puerto 80 esta ocupado. Así es  esta ocupado por el propio sistema operativo.

[flickr]https://secure.flickr.com/photos/12949201@N08/9047402715/[/flickr]

Las dos vías posibles para abordar el problema  son:

Los servicio de  SQLServer , que aun des instalado puede haber dejado una entrada el registro solicitando a svchost que escuche en ese puerto.

El SQL Server no era mi caso ya que indicaba e como propietario el usuario SYSTEM

La suerte estaba de mi lado  y el problema era del sistema operativo , esto es verificable con la herramienta de control de puerto de Xampp , en ella se indica que SYSTEM esta usando el puerto 80 y no svchost

Tenemos un windows que ocupa el puerto 80 , hay que buscar que servicio se les ha ocurrido colocar en este puerto.

La respuesta es  :

BrandCache

Ahora ya sabes con quien nos jugamos los cuartos.  Esta es la única referencia de BrandCache que he encontrado sobre el .

Vamos a los servicios de windows a deshabilitarlo

Fuente: Microbiablog.com

HTML5 en Youtube

html5 en youtube

Hace tiempo que existe esta opción , pero es elección del usuario utilizarla o no.

En mi caso ha sido la simple casualidad el activar esto. Pero no es visible ni creo que mucha gente entienda lo que significa

usar esta tecnología. Por ahora es empezar ,menos Flash en tu vida  y además se puede sobrevivir.

http://www.youtube.com/html5?hl=es&gl=ES

En el caso de utilizar una versión de windows sin Windows Media Video y Firefox debemos realizar configuraciones el FF. Desde la versión 20 el valor por defecto es reproducir H.264 mediante este reproductor. Se ha de deshabilitar esta funcionalidad colocando a false el valor:

media.windows-media-foundation.enabled

en el about:config.

A partir de ahora FF solicitará a Youtube los vídeos en formato WebM y los reproducirá sin problemas.

Por una navegación sin Adobe Flash

Camaringo Android

Camaringo

El Camaringo es para mi pequeño Galaxy S2 , con su camara anticuada ,  vamos a darle un poco de vidilla

[appbox googleplay com.perracolabs.cpd]

Hoy gratis !!!!

La versión demo  y utilizando el código “appgratis” , si comillas claro.

 

Sonisphere 2013

Sonisphere 2013

IronMaide_Sonisphere_2013

 

Un día de concierto,con el cabeza de cartel Iron Maiden y bien escoltado por ANTHRAX y MEGADEATH

El SetList de “Los Maiden”:
[slp_get_setlist artist=’Iron Maiden’ date=’31-05-2013′ venue=’Auditorio Miguel Ríos’]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 
 

 
 

  

 

Y la galería de fotos
[flickr-gallery mode=”photoset” photoset=”72157633925526576″]

Timeline de Twitter en un post

Widget oficial de Twitter

Probando el generador de widgets de Twitter me he encontrado con esto. Muy bien y que es esto , lo que tenemos aquí es un script generado automáticamente desde tu perfil. Con el mostramos el nuestro TimeLine de Twitter en cualquier parte de nuestro website o dicho de otra manero editemos el tema e incrustemos lo.
widget_twitter
Yo en este caso he utilizado un post para mostrarlo. Teniedo siempre en cuenta de pegarlo en el editor de texto




Modificar el CSS del Uploader Media WordPress +3.5

Uploader Media WordPress

    	.media-menu,.attachments-browser,.media-frame-menu,#wp_editimgbtn,.media-router .active:after {
            display:none;
        }
		.media-modal{
			width:600px;
			max-height:400px;
			margin:auto;
		}
		.media-frame-title h1{
			font-family:"gill sans";
		}
		.media-frame-title,.media-frame-router,.media-frame-toolbar{
			left:0px;
			text-align:center;
		}
		.media-frame-content,.uploader-inline-content{
			margin-top:40px;
			position:static;
			text-align:center;
		}
		.media-toolbar,.media-toolbar-primary{
			position:static;
			width:128px;
			padding:0px;
			margin:auto;
			float:none;
			text-align:center;
		}
		media-button-insert{
			display:block;
		}
		.media-router{
			float:none;
			width:100px;
			margin:auto;
		}
		.media-router a{
			border-right:0px;
		}

Fuente:
Customize Media Manager http://wordpress.org/support/topic/customize-media-manager?replies=5

Modificar campos de Uploader Media WordPress +3.5

Uploader Media WordPress

En este punto venimos del anterior post en el que modificábamos el comportamiento del Uploader Media WordPress median el único hook que se mantiene funcionado de versiones anteriores.

En este post entraremos en harina , nada de limpieza y poseí como dicta el eslogan de WordPress. Tenemos que hacer modificaciones en el Uploader Media WordPress y no tenemos una interfaz de uso estándar (hooks y filtros). Utilizando Backbone.js y JQuery es posible realizar algunas modificaciones y otras no porque no tenemos los nombres de los objetos DOM de dicha pantalla , pero los buscaremos.

Ahora vamos con la parte complicada , se han olvidado dar capacidades de modificación al “Uploader Media WordPress”. La opción encontrada se basa en localizar los elementos dentro del DOM y aplicarles la propiedad de ocultos , de paso asignaremos valores por defecto. Los valores que asignamos realmente estamos simulando el uso del ratón , un poco cutre a mi parecer y más para este CMS pero es lo que hay , por ahora.

Con esto localizamos el elemento

this.$el.find('select.link-to')

Valiendonos de objetos le aplicamos el valor nulo con

.val('none');

Dejando como resultado

this.$el.find('select.link-to').val('none');

Aunque decía antes que casi simulábamos el uso del ratón aquí radica la pequeña diferencia. Estamos utilizando los Backbones.js para el acceso a los objetos del DOM así que siguiendo sus directrices debemos actualizar los valores del modelo de datos. Para eso siemplemnte aplicamos valores a los objetos que deseamos , atributo “link” con valor “none”

this.model.set('link', 'none');

Esta me ha costado algo más de entender
Localizamos el objeto , ascendemos a su padre y a este le aplicamos el oculto. Esto es así para ocular la etiqueta el input que estan contenido en una capa.

this.$el.find('select.link-to').parent('label').hide();

Seguimos desgranando el código con esto tan curioso. Podemos ocultar opciones del elemento HTML select

this.$el.find('select.size option[value=full]').hide();

Lo ultimo y no menos importante , guardar los cambios realizados

this.updateLinkTo();
var _AttachmentDisplay = wp.media.view.Settings.AttachmentDisplay;
	wp.media.view.Settings.AttachmentDisplay = _AttachmentDisplay.extend({
		render: function() {
			_AttachmentDisplay.prototype.render.apply(this, arguments);
			this.$el.find('select.link-to').val('none');
			this.model.set('link', 'none');
			this.$el.find('select.link-to').parent('label').hide();
			this.$el.find('select.size option[value=full]').hide();
			this.model.set('size', 'large');
			this.updateLinkTo();

El antes y el después en imagenes

 

pre_v2post_v2

Modificar pestañas de Uploader Media WordPress +3.5

Uploader Media WordPress

En el paso a 3.5 se modifico el Uploader Media WordPress , esto incluyó principalmente el “drag and drop” y el uso de un popup integrado muy bonito. Por el camino se ha perdido la capacidad de varios hooks para modificar la antigua ventana.

El como modificar estas ventanas se divide en dos partes , las pestañas y los atributos. La modificación también se puede atacar desde varios frentes , JavaScript (JQuery , Backbone) y hooks.

Nota:No me gusta eliminar elementos ni trabajar con la interfaz de JS si no esta totalmente claro que ha de ejecutarse en cliente , prefiero enviar siempre el código HTML perfectamente maquetado.

Espero que pronto tengamos unos hooks para trabajar con el Uploader Media WordPress. El primer paso esta dado y para pestañas ya tenemos algo.

El JavaScript lo encontraras en internet de formas muy parecidas , ya que es un “workaround”/parche fácil de implementar. Para este caso utilizaremos el fichero de funciones del tema y así evitaremos tener que modificar diferente PHP y poder estropear el maquetado. en la siguiente entrega veremos como trabajar con JS y el Uploader Media WordPress

Eliminar las pestañas

  • Inserta de URL
  • Crear Galería

Para este paso utilizaremos un hook de WordPress y un array de campos que deshabilitaremos dos opciones.

hook: media_view_strings

//Elimina las opciones de insertar imágenes desde URL y crear galería

		function remove_media_tab($strings) {

			unset(
				$strings["insertFromUrlTitle"],
				$strings['createGalleryTitle']
			);
			return $strings;
		}
		add_filter('media_view_strings','remove_media_tab');

Buscando las cadenas di con este increible post sobre modificación de pestañas en el Uploader Media WordPress , siempre pensado en versiones 3.5+. Siguiendo el filtro por los ficheros del core he localizado estas opciones modificables

$strings['selected'],  //Removes Upload Files & Media Library links in Insert Media tab
$strings['insertMediaTitle'],  //Insert Media
$strings['uploadFilesTitle'],  //Upload Files
$strings['mediaLibraryTitle'],  //Media Library
$strings['createGalleryTitle'],  //Create Gallery
$strings['setFeaturedImageTitle'],  //Set Featured Image
$strings['insertFromUrlTitle']  //Insert from URL

Es función la situaremos en el fichero functions.php de nuestro tema activo. Utilizaremos el mismo filtro

Fuentes:

WP 3.5 and Hiding Media Tabs

Apache Listado personalizado

Apache Listado personalizado


Hay muchas forma de hacer Apache Listado personalizado personalizado , yo me he decantado por Webmin. No he encontrado mucha información y la traducción al castellano no tiene ningún sentido , así que recomiendo ponerlo en ingles al menos para configurar lo.

Apache Listado personalizado
Apache Listado personalizado

 

A nivel de configuración en el site de Apache que elijas sería así:

		Options Indexes MultiViews
		AuthName "Titulo para mostrar automaticamente"
		AuthType Basic
		AuthUserFile .htpasswd
		require valid-user
		AllowOverride None
		IndexOptions SuppressHTMLPreamble FoldersFirst
		IndexIgnore *oto*
		HeaderName "/header.shtml"
		ReadmeName "/footer.html"

		Order allow,deny
		allow from all

La parte de estilos , cabecera y pie son Apache Directory Listing

                IndexOptions SuppressHTMLPreamble FoldersFirst
		IndexIgnore *oto*
		HeaderName "/header.shtml"
		ReadmeName "/footer.html"

Notas:

El parametro ReadmeName hace referencia al Footer de la web y la traducción en el Webmin es tambien infumable.  No se como recordarlo para otras veces.

Respecto a lo demas , hay mil de opciones para ahbilitar , por ejemplo iconos personalizados imagenes de fondo y mucho CSS para que quede más bonito.

Fuentes:

Apache Doc IndexOptions
Apache Doc IndexIgnore
Apache Doc HeaderName
Apache Doc ReadmeName

Habilitar the_excerpt() en Twenty Eleven

Estoy investigado el tema Twenty Eleven y me he dado cuenta de lo amplio que es. Llevo un par de mejoras y esta ultima me ha costado un poco  , no he hecho caso a Feliz Zapata y no tengo la jerarquía de páginas de wordpress a mano.

Mi intención es habilita en el home del tema el modo resumen para las entradas. Eso de poner la etiquete  a mano cuando editas un post es trabajo que se puede automatizar. La idea es sencilla , cambia la funcion the_content() por the_excerpt(). Y el problema me llegó al abrir el loop principal de index.php , no se parece en nada a los que había visto.

 

El original:



 

En este caso tenemos el get_template_part que no dirige al fichero content.php. En este fichero buscamos la sección


//…..

Ahora comentamos la función

 

Y generamos otra linea sustituyendo simplemente the_content por the_excerpt

 

Para ajustar la cantidad de texto a mostrar con nuestro diseño podemos limitar el numero de palabras a mostrar. Para ello nos valemos de un filtro en functions.php

function custom_excerpt_length( $length ) {
	return 20;
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );

Utilizamos el filtro ‘excerpt_length’

Nota: Para cambiar el mensaje de “Continue reading” debemos hacerlo en los ficheros de traducción a código a FUEGO , por eso de tener algo de estilo y no chapucear el código

 

Fuentes:

Propia experiencia

Function Reference/the excerpt

Linkdin WordPress en español