jueves, 3 de junio de 2010 (Hace 141 dias)

En la rambla del cañar sobrevive el único grupo de Acantos (Acanthus mollis) que conozco en Cartagena que crece de forma espontánea. Refugiados a la sombra de una enorme higuera y entre las cañas huyendel calor del verano que ya está llamando a la puerta.

acanto Iacanto I

Problablemente sea más conocido por inspirar a escultores de los capiteles de columnas gracias a sus grandes hojas, pero en estos dias sus espigas de flores son sencillamente espectaculares.

miércoles, 2 de junio de 2010 (Hace 142 dias)

He modificado la función get_calendar de este WordPress 2.9.0 ubicada en /raiz_wp/wp_includes/general_template.php para reemplazar el titulo del més por una lista de mes-año (numero de apuntes).
Creo que con esto se mejora bastante la navegación por los apuntes antiguos y aunque me suena de algún plugins que hace algo parecido vereis que se pueden ahorrar algunos recursos simplemente añadiendo unas líneas a la función.
La función get_calendar ha quedado de la siguiente manera (la parte corregida/modificada está advertida, el resto de la función es la original … creo… :) )
function get_calendar($initial = true) {
global $wpdb, $m, $monthnum, $year, $wp_locale, $posts;
$cache = array();
$key = md5( $m . $monthnum . $year );
if ( $cache = wp_cache_get( 'get_calendar', 'calendar' ) ) {
if ( is_array($cache) && isset( $cache[ $key ] ) ) {
echo $cache[ $key ];
return;}
}
if ( !is_array($cache) )
$cache = array();
// Quick check. If we have no posts at all, abort!
if ( !$posts ) {
$gotsome = $wpdb->get_var("SELECT 1 as test FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'publish' LIMIT 1");
if ( !$gotsome ) {
$cache[ $key ] = '';
wp_cache_set( 'get_calendar', $cache, 'calendar' );
return;
}
}
ob_start();
if ( isset($_GET['w']) )
$w = ''.intval($_GET['w']);
// week_begins = 0 stands for Sunday
$week_begins = intval(get_option('start_of_week'));
// Let's figure out when we are
if ( !empty($monthnum) && !empty($year) ) {
$thismonth = ''.zeroise(intval($monthnum), 2);
$thisyear = ''.intval($year);
} elseif ( !empty($w) ) {
// We need to get the month from MySQL
$thisyear = ''.intval(substr($m, 0, 4));
$d = (($w - 1) * 7) + 6; //it seems MySQL's weeks disagree with PHP's
$thismonth = $wpdb->get_var("SELECT DATE_FORMAT((DATE_ADD('${thisyear}0101', INTERVAL $d DAY) ), '%m')");
} elseif ( !empty($m) ) {
$thisyear = ''.intval(substr($m, 0, 4));
if ( strlen($m) < 6 )
$thismonth = '01';
else
$thismonth = ''.zeroise(intval(substr($m, 4, 2)), 2);
} else {
$thisyear = gmdate('Y', current_time('timestamp'));
$thismonth = gmdate('m', current_time('timestamp'));
}
$unixmonth = mktime(0, 0 , 0, $thismonth, 1, $thisyear);
// Get the next and previous month and year with at least one post
$previous = $wpdb->get_row("SELECT DISTINCT MONTH(post_date) AS month, YEAR(post_date) AS year
FROM $wpdb->posts
WHERE post_date < '$thisyear-$thismonth-01'
AND post_type = 'post' AND post_status = 'publish'
ORDER BY post_date DESC
LIMIT 1");
$next = $wpdb->get_row("SELECT DISTINCT MONTH(post_date) AS month, YEAR(post_date) AS year
FROM $wpdb->posts
WHERE post_date > '$thisyear-$thismonth-01'
AND MONTH( post_date ) != MONTH( '$thisyear-$thismonth-01' )
AND post_type = 'post' AND post_status = 'publish'
ORDER BY post_date ASC
LIMIT 1");
/* translators: Calendar caption: 1: month name, 2: 4-digit year */
$calendar_caption = _x('%1$s %2$s', 'calendar caption');
echo '<table id="wp-calendar" summary="' . esc_attr__('Calendar') . '">';
echo '<caption>';
//INICIO seccion cambiada
$unixPrimero=mktime(0,0,0,4,5,2003);
$anoAnterior="";
$unixUltimo=time();
echo '<select onchange="document.location.href=this.value;">';
while ( $unixPrimero < $unixUltimo ) {
$apuntesMensuales = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_date LIKE '%".date('Y-m-', $unixPrimero)."%' AND post_status='publish' LIMIT 1");
$anoEnCurso=date('Y', $unixPrimero);
if($apuntesMensuales > 0) {
if( $anoAnterior != $anoEnCurso ) {
if($anoAnterior != "") echo "</optgroup>";
echo "<optgroup label=\"$anoEnCurso\">";
$anoAnterior=$anoEnCurso;
}
echo "<option value=\"/".date('Y/m', $unixPrimero)."\"";
if( date('Y/m', $unixPrimero) == "$thisyear/$thismonth" ) echo " selected=\"selected\" ";
echo ">".$wp_locale->get_month(date("m",$unixPrimero))." - ".date('Y', $unixPrimero)." (".$apuntesMensuales.")</option>\n";
}
else {
if( $anoAnterior != $anoEnCurso ) {
if($anoAnterior != "") echo "</optgroup>";
echo "<optgroup label=\"$anoEnCurso\">";
$anoAnterior=$anoEnCurso;
}
echo "<option disabled>".$wp_locale->get_month(date("m",$unixPrimero))." - ".date('Y', $unixPrimero)." (0)</option>";
}
$unixPrimero=$unixPrimero+2678400;
}
echo "<option value=\"/\"";
if( date('Y/m', $unixUltimo) == "$thisyear/$thismonth" ) echo " selected=\"selected\" ";
echo ">".$wp_locale->get_month(date("m",$unixUltimo))." - ".date('Y', $unixUltimo)." (actualmente)</option>\n";
echo '</select>';
// $mesSegundo=$primerMes + 2592000;
// echo date('F Y', $mesSegundo);
// $mesActual="";
// echo sprintf($calendar_caption, $wp_locale->get_month($thismonth), date('Y', $unixmonth));
//FIN seccion cambiada
echo '</caption>
<thead>
<tr>';
$myweek = array();
for ( $wdcount=0; $wdcount<=6; $wdcount++ ) {
$myweek[] = $wp_locale->get_weekday(($wdcount+$week_begins)%7);
}
foreach ( $myweek as $wd ) {
$day_name = (true == $initial) ? $wp_locale->get_weekday_initial($wd) : $wp_locale->get_weekday_abbrev($wd);
$wd = esc_attr($wd);
echo "\n\t\t<th abbr=\"$wd\" scope=\"col\" title=\"$wd\">$day_name</th>";
}
echo '
</tr>
</thead>
<tfoot>
<tr>';
if ( $previous ) {
echo "\n\t\t".'<td abbr="' . $wp_locale->get_month($previous->month) . '" colspan="3" id="prev"><a href="' .
get_month_link($previous->year, $previous->month) . '" title="' . sprintf(__('View posts for %1$s %2$s'), $wp_locale->get_month($previous->month),
date('Y', mktime(0, 0 , 0, $previous->month, 1, $previous->year))) . '">« ' . $wp_locale->get_month_abbrev($wp_locale->get_month($previous->month)) . '</a></td>';
} else {
echo "\n\t\t".'<td colspan="3" id="prev" class="pad"> </td>';
}
echo "\n\t\t".'<td class="pad"> </td>';
if ( $next ) {
echo "\n\t\t".'<td abbr="' . $wp_locale->get_month($next->month) . '" colspan="3" id="next"><a href="' .
get_month_link($next->year, $next->month) . '" title="' . esc_attr( sprintf(__('View posts for %1$s %2$s'), $wp_locale->get_month($next->month) ,
date('Y', mktime(0, 0 , 0, $next->month, 1, $next->year))) ) . '">' . $wp_locale->get_month_abbrev($wp_locale->get_month($next->month)) . ' »</a></td>';
} else {
echo "\n\t\t".'<td colspan="3" id="next" class="pad"> </td>';
}
echo '
</tr>
</tfoot>
<tbody>
<tr>';
// Get days with posts
$dayswithposts = $wpdb->get_results("SELECT DISTINCT DAYOFMONTH(post_date)
FROM $wpdb->posts WHERE MONTH(post_date) = '$thismonth'
AND YEAR(post_date) = '$thisyear'
AND post_type = 'post' AND post_status = 'publish'
AND post_date < '" . current_time('mysql') . '\'', ARRAY_N);
if ( $dayswithposts ) {
foreach ( (array) $dayswithposts as $daywith ) {
$daywithpost[] = $daywith[0];
}
} else {
$daywithpost = array();
}
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false || strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'camino') !== false || strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'safari') !== false)
$ak_title_separator = "\n";
else
$ak_title_separator = ', ';
$ak_titles_for_day = array();
$ak_post_titles = $wpdb->get_results("SELECT post_title, DAYOFMONTH(post_date) as dom "
."FROM $wpdb->posts "
."WHERE YEAR(post_date) = '$thisyear' "
."AND MONTH(post_date) = '$thismonth' "
."AND post_date < '".current_time('mysql')."' "
."AND post_type = 'post' AND post_status = 'publish'"
);
if ( $ak_post_titles ) {
foreach ( (array) $ak_post_titles as $ak_post_title ) {
$post_title = esc_attr( apply_filters( 'the_title', $ak_post_title->post_title ) );
if ( empty($ak_titles_for_day['day_'.$ak_post_title->dom]) )
$ak_titles_for_day['day_'.$ak_post_title->dom] = '';
if ( empty($ak_titles_for_day["$ak_post_title->dom"]) ) // first one
$ak_titles_for_day["$ak_post_title->dom"] = $post_title;
else
$ak_titles_for_day["$ak_post_title->dom"] .= $ak_title_separator . $post_title;
}
}
// See how much we should pad in the beginning
$pad = calendar_week_mod(date('w', $unixmonth)-$week_begins);
if ( 0 != $pad )
echo "\n\t\t".'<td colspan="'. esc_attr($pad) .'" class="pad"> </td>';
$daysinmonth = intval(date('t', $unixmonth));
for ( $day = 1; $day <= $daysinmonth; ++$day ) {
if ( isset($newrow) && $newrow )
echo "\n\t</tr>\n\t<tr>\n\t\t";
$newrow = false;
if ( $day == gmdate('j', (time() + (get_option('gmt_offset') * 3600))) && $thismonth == gmdate('m', time()+(get_option('gmt_offset') * 3600)) && $thisyear == gmdate('Y', time()+(get_option('gmt_offset') * 3600)) )
echo '<td id="today">';
else
echo '<td>';
if ( in_array($day, $daywithpost) ) // any posts today?
echo '<a href="' . get_day_link($thisyear, $thismonth, $day) . "\" title=\"" . esc_attr($ak_titles_for_day[$day]) . "\">$day</a>";
else
echo $day;
echo '</td>';
if ( 6 == calendar_week_mod(date('w', mktime(0, 0 , 0, $thismonth, $day, $thisyear))-$week_begins) )
$newrow = true;
}
$pad = 7 - calendar_week_mod(date('w', mktime(0, 0 , 0, $thismonth, $day, $thisyear))-$week_begins);
if ( $pad != 0 && $pad != 7 )
echo "\n\t\t".'<td class="pad" colspan="'. esc_attr($pad) .'"> </td>';
echo "\n\t</tr>\n\t</tbody>\n\t</table>";
$output = ob_get_contents();
ob_end_clean();
echo $output;
$cache[ $key ] = $output;
wp_cache_set( 'get_calendar', $cache, 'calendar' );
}

Podeis ver como queda echando un vistazo al calendario que aparece en estas páginas, en la columna de la derecha.

martes, 1 de junio de 2010 (Hace 143 dias)

Con esta foto queda inaugurada la nueva vuelta al marcador del contador de fotografías de mi Nikon D70. Esta es la primera fotografia (DSC_0001.jpg) despues de las primeras 9999 y me ha pillado fotografiando un nido de Pitos reales (Picus viridis).

dsc_0001dsc_0001

Sacando cuentas, y teniendo en cuenta que compré la cámara sobre Octubre de 2005, me salen 55 meses, 181 fotos/mes, 6 fotos al dia.
Lo cual no es mucho si tenemos en cuenta que en una sesión como la de hoy, en un par de horas junto al nido puedo tirar cerca de 300 fotos. O cuando nos hemos ido de viaje, que en 5-6 dias hemos hecho alrededor 700-800 fotos. Creo que el record de fotografías lo tengo en una sesión en el hide del bebedero de los Simonetes donde en 4-5 horas hice casi 800 fotos.

Ventajas de la Nikon D70

Eso sí, al Cesar lo que es del Cesar: en todo este tiempo la Nikon se ha portado como una campeona, ni un solo problema. Y mira que le he hecho perrerias de todo tipo (la última hace una semana y que me puso los pelos de punta: no estabilizé bien el trípode y en un roce se volcó estrellando el objetivo 300 y la camara de frente contra el suelo. Afortunadamente estaba en una ladera de tierra blanda y el trípode volcó «cuesta arriba» con lo el impacto «solo fue fuerte»). Es una cámara robusta.
Sigue leyendo…

Me cago en la madre que parió a los putos israelitas, o parafraseando a otro con más gracia que yó

que se metan su Estado en el puto culo, a ver si les explota dentro y le quedan los huevos colgando del campanario.

Aunque siempre me ha gusta aquello que decía una gitana que conocí

mal encuentro tenga vuestra sangre al llegar al corazón

Así os pudrais.

sábado, 29 de mayo de 2010 (Hace 146 dias)

O como la llaman los cazadores «la patirroja«, es probable que sea la pieza de caza por excelencia y motivo por el cual se han hecho auténticas barrabasadas en pos de su supuesta protección (estoy hablando de cepos, venenos, lazos, etc…, dedicados a los competidores naturales del cazador dominguero).

Perdiz y su perdigónPerdiz y su perdigón

Como el resto de las gallinaceas, las perdices construyen sus nidos en el suelo, apenas una pequeña depresión excavada en el suelo y «decorada» con los materiales que el ave puede encontrar estando tumbada en el nido: alguna rama y alguna piedra. En el este nido pueden llegar a incubar hasta 12-14 huevos de los cuales naceran otros tantos polluelos nidífugos, es decir: son capaces de andar (y comer) y escapar del nido casi desde el mismo momento de su nacimiento. En estas especies, con tantos ojos interesandos en echarle el guante, cada segundo cuenta. Sigue leyendo…

viernes, 28 de mayo de 2010 (Hace 147 dias)

He subido a Facebook el vídeo de «Como cocinar un cristo» de Javier Krahe.
Es el mismo que subí a youtube en su dia, pero he pensado que quizás se le podría dar algo más de propaganda al tema haciendolo correr por Facebook.

Asi es que si tienes/usas Facebook puedes divulgar el vídeo desde esta dirección:
www.facebook.com/video/video.php?v=120583987978833.

Pásalo!!, que no caiga el juicio a Krahe en el olvido … y quien sabe, quizás aún quede alguien que no lo haya visto…

Cuaderno de campo es un blog desarrollado y mantenido por Trebol-a y en el que escriben Trebol-a, Miguel, Merche y Mónica
Si quieres saber algo más sobre los autores acude a la página acerca-de, si quieres contactar con alguno de nosotros hazlo a través de contactar ó de Google+

Creative Commons: Todo el contenido de la web (imágenes, textos, vídeos, a excepción de aquellas obras de otros autores enlazados por Cuaderno de Campo) se acoge a los términos expresados en la licencia Creative Commons