martes, 3 de diciembre de 2013

¿Cómo activar Office 2010?

Te preguntarás: ¿Cómo puedo activar mi Office 2010?,  me aparece que no está activo... Tengo la solución para ti.

1. Descarga el Office Toolkit 2010 en https://hotfile.com/dl/175893366/195063e/Activate_Office.rar.html
2. Extrae los archivos
3. Ejecuta el .exe como administrador
4. Clic en la opción del menú "EZ Activator" , espera por unos minutos...
5. Listo!, tu Office 2010 estará activo de por vida

¿Dudas?

Ve el siguiente video...

viernes, 29 de noviembre de 2013

¿Cómo eliminar mi Facebook?

Es muy sencillo eliminar la cuenta de Facebook, sigue los sencillos pasos que te presento. Recuerda, tus datos no se borrarán, pero sí tu cuenta desaparecerá y nadie podrá consultar nuevamente tu Facebook.

 1. Entra a tu cuenta y haz clic en la cejilla de herramientas (parte superior derecha):
 

 2. Del menú que desglosa la cejilla de herramientas, selecciona "Configuración de cuenta" y después la opción "Seguridad":

 

 3. Por último, haz clic en el enlace "Desactivar tu cuenta", que aparece justo debajo de todas las opciones de "Seguridad". 4. Listo!, tu cuenta aparecerá como eliminada.

 Nota: Si posteriormente vuelves a entrar a tu Facebook, con tu correo electrónico y contraseña, se volverá a reactivar.

miércoles, 10 de agosto de 2011

Sumar los valores de filas y columnas de una tabla en PHP

Ayer, un amigo me preguntó:
¿Cómo puedo obtener la sumatoria de los valores de una fila? y además,
¿Cómo puedo obtener la sumatoria de los valores de la columna?

También me comentó que no había encontrado una solución después de realizar varias búsquedas en Google, no tuve más que crearla y compartirla, aquí el código de PHP:

<?php

/* VARIABLES
$nf = número de filas
$nc = número de columnas
$ct= total de columna
$ft= total de fila
$cf = total de columna sumatoria de fila
*/
$cf='';
$ft='';
$c='';
$ct[]=''; 
echo '<table>';
for ($i = 0; $i <= $nf; $i++) {
echo '<tr>';
for ($c = 1; $c <= $nc; $c++) {
echo '<td>'.$c.' </td>';
$ft+=$c;
     if ( ! isset($ct[$c])) {
      $ct[$c]= null;
     }
$ct[$c]+=$c;
}

echo '<td style="background:yellow">'.$ft.' </td>';
$cf+=$ft;
$ft=0;
echo '</tr>';

}
echo '<tr>';
for ($c = 1; $c <= $nc; $c++) {
echo '<td style="background:lime">'.$ct[$c].'</td>';
}
echo '<td style="background:lime">'.$cf.'</td>';
echo '</tr></table>';
?>

Breve explicación:
  • Los valores de la tabla se toman del contador del FOR, pero puede ser aleatorio o extraídos de una base de datos.
  • La tabla es flexible, sólo basta con cambiar el número de filas (variable $nf) y el número de columnas (variable $nc) para crecer o decrecer el tamaño de la tabla.
  • Coloqué un color representativo para las sumatorias: amarillo para la suma de los valores de la fila, verde para la suma de los valores de las columnas.

El resultado:


martes, 29 de septiembre de 2009

Video tutorial: Integrar fotos de Flickr en sitios Web o Blogs (jQuery, API Flickr, PHP)

Preparé un video tutorial para el blog llamado Nettuts, el cual muestro en 5 minutos como integrar fotos desde Flickr a nuestro sitio web o blog utilizando el API de Flickr, PHP y jQuery, este último para mostrar las fotos estilo diapositivas con un efecto FadeIn / FadeOut. ¡Disfrútenlo!

Nota: ¿Desean el código fuente?

martes, 21 de julio de 2009

Menú dinámico / activo con categorías y sub-categorías en PHP y CSS

Después del post (Menú activo con CSS y PHP), me llego una pregunta sobre cómo mantener seleccionada la categoría, tras haber dado click en una sub-categoría, es decir:

Tengo un menú horizontal, el cual tengo las categorías principales: Inicio - Servicios - Portafolio, a su vez tengo un menú vertical con las sub-categorías, ejemplo: Servicios -> Desarrollo web, quiero mantener activo el item de la categoría y además el item de la sub-categoría al entrar a ella.

¿Cómo se hace esto?

Tomaremos como ejemplo el CSS del post anterior para dar diseño a nuestros menus, de tal forma que quedará lo siguiente:

#menu, #menu-vertical{
padding: 0;
width: 100%;
background: transparent;
voice-family: "\"}\"";
voice-family: inherit;

}

#menu ul{
font: bold 11px Arial;
margin:0;
margin-left: 20px;
padding: 0;
list-style: none;

}

#menu li{
display: inline;
margin: 0 2px 0 0;
padding: 0;
text-transform:uppercase;

}

#menu-vertical li{
display:block;
margin: 15px 0 0 0;
padding: 0;
text-transform:uppercase;
}

#menu a {
float: left;
display: block;
color: white;
margin: 0 1px 0 0; /*Margenes entre el menu*/
padding: 5px 10px;
text-decoration: none;
letter-spacing: 1px;
background-color: black; /*Color por Default*/
border-bottom: 1px solid white;
}

#menu-vertical a {
color: white;
margin-left:0px;
padding:5px;
text-decoration: none;
letter-spacing: 1px;
background-color: black; /*Color por Default*/
border-bottom: 1px solid white;
}

#menu a:hover{
background-color: #535353; /*Menu hover bgcolor*/
}

#menu #current a, #menu-vertical #current a{ /*TAB seleccionado, Página Actual*/
background-color: #80931D;
border-color: #80931D;

}
.clean {clear:both;}

HTML

<div id="menu">
<ul>
<li <?php Menu("/lab/menuactive/active-menu.php","");?> ><a href="active-menu.php" title="Inicio" class="active">INICIO</a></li>
<li <?php Menu("/lab/menuactive/active-menu2.php",""); ?> ><a href="active-menu2.php" title="segundo" class="active">SEGUNDO</a></li>
</ul></div>
<div class="clean"></div>
<div id="menu-vertical">
<ul>
<li <?php Menu("/lab/menuactive/active-menu.php","/lab/menuactive/active-menu-principal.php"); ?> ><a href="active-menu-principal.php" title="Inicio" class="active">Principal</a></li>
<li <?php Menu("/lab/menuactive/active-menu.php","/lab/menuactive/active-menu-principal2.php"); ?> ><a href="active-menu-principal2.php" title="segundo" class="active">Secundario</a></li>

<li <?php Menu("/lab/menuactive/active-menu2.php","/lab/menuactive/active-menu-principal3.php"); ?> ><a href="active-menu-principal3.php" title="Inicio" class="active">Principal de Segundo</a></li>
</ul></div>


- La función de Menu trabaja con 2 parametros, el 1. es la categoría, 2. la sub-categoría. Se incluye entre las listas, porque imprimirá el id=current, el cual indica que esta el item activado. En las categoría se deja en blanco el parametro de sub-categoría por obvias razones, pero para la subcategoría es importante agregar la categoría y el enlace a la sub-categoría misma del item.

PHP

function Menu ($direccion,$subdireccion) {

/* El array $secciones, mantiene los enlaces de las categorías y sub-categorías,
active-menu.php es la categoría que tiene como sub-categorías a active-menu-principal.php
y active-menu-principal2.php, es ahí donde debes agregar las sub-categorías, para que
funcione el script. */

$secciones = array(
"/lab/menuactive/active-menu.php" => array (
"/lab/menuactive/active-menu-principal.php",
"/lab/menuactive/active-menu-principal2.php"
),

"/lab/menuactive/active-menu2.php" => array (
"/lab/menuactive/active-menu-principal3.php"
)
);


//Obtiene el URL actual
$url = $_SERVER['PHP_SELF'];

//Aquí es donde se hace la magía
foreach ($secciones as $llave=>&$valor)
{

if($direccion==$llave && $subdireccion==$url){
echo 'id="current"';
}

if($direccion==$llave && $subdireccion==""){
foreach ($valor as $valores){
if($url==$valores or ereg($direccion,$url))
echo 'id="current"';
}
}
}
}
DESCARGAR ARCHIVOS
Ojo: Debes cambiar la dirección URL (ruta) de tus enlaces (ejemplo: /lab/menuactive por la ruta en donde coloques tus archivos)

Ejemplo funcionando:




miércoles, 24 de junio de 2009

Soy Blogger y Soy Viejo

La historia del blog (bitácora) se remonta hace aproximadamente 15 años cuando Justin Hall, siendo estudiante de la Universidad de Swarthmore, escribió en lo que fue el primer blog personal.
A lo largo de la historia ha habido distintas generaciones web, desde la web 1.0 donde el usuario de internet era meramente observador, donde los sitios casi nunca se actualizaban, y si lo eran gracias al famoso webmaster. Los tiempos han cambiado, la manera de crear y compartir información también, tras la llegada de la web 2.0, el usuario se volvió más participativo y colaborativo, el boom de los blogs como herramienta de creación y difusión de contenido, que en base al sistema de gestion (CMS) puede ser actualizados por cualquier persona sin conocimientos de programación. Tras 5 años de estar conviviendo con la web 2.0, empiezan a despuntar otras herramientas / servicios que plenamente pueden llegar a convertirse iconos de una nueva generación web, por ejemplo con Google Wave o la revolución que se esta viviendo con Twitter y la búsquedas en tiempo real.

Desde que estoy en Twitter he disminuido notablemente mis actualizaciones en el blog, esto porque comparto información de forma más rápida y con mayor impacto por sus características de ser una plataforma de comunicación. Los blogs han sido usados para distintos fines como sitios web de corporaciones, organizaciones y personales, más sin embargo no han salido de lo mismo crear y compartir contenido en la red. Por otro lado, el microblogging esta siendo utilizado como herramienta para otros objetivos desde educativos (e-learning), empresariales, y hasta político (e-government).

Conclusión:
Las nuevas aplicaciones ya no están centradas en el creación de contenido, sino en la moderación/administración y la comunicación entre usuarios. Hay que tener muy claro esto, cuando se quiere emprender en la web.

Simple jQuery plugin: Enlaces con mensajes de 'Cargando'

LoadingMessage, es un pequeño plugin que hice en jQuery para brindar una retroalimentación al usuario que haya dado click sobre un enlace en la aplicación, este regresa un mensaje de cargando, el cual puede ser personalizado.
El objetivo de este plugin es evitar la repetición de código, naturalmente el plugin se puede extender aún más, ya que no funciona para formularios, solo para enlaces <a href=''> funciona con formularios agregando un id y title al botón (los datos no se envian de forma asíncrona, pero mostrará el mensaje de cargando).

jQuery Plugin:
$.fn.LoadingMessage = function (a){
var attr, loading,href;
$(this).click(function(event){
var href=$(this).attr('href');
if(a.attr=='text'){ if($(this).attr('title')!=''){ attr=$(this).attr('title'); } else { attr=$(this).text();}}
else if (a.attr=='url'){attr=href;}
loading = '<div id="'+a.css+'">'+a.text+' '+attr+'<\/div>';
$('body').prepend(loading);
if(a.type=='asyn'){
event.preventDefault();
$(a.loadhere).load(href, function() {
$('#'+a.css).remove();
});} });
return false; };

Cómo funciona:
$('#enlaces a').LoadingMessage({
text:'Cargando',
attr:'text',
css:'loading'
});
Aquí estoy diciendo que especificamente los enlaces dentro del #enlaces mostrarán el mensaje de cargando, claro puedo decir que todos los enlaces en mi aplicación muestren el mensaje con: $('a').

LoadingMessage
funciona con los parametros:
  1. text: es el mensaje que se enviará, en el caso del ejemplo dira Cargando.
  2. attr: significa el atributo de el enlace, puede enviarse 2: url o text. Text significa que mostrará el título del enlace. Nota: Si <a title="'enlace'"> se mostrará lo que contenga el atributo title, si no lo tiene, toma el texto del enlace.
  3. css: se envía el nombre del id del CSS, nuestro ejemplo se llamo a #loading. OJO no hay necesidad de escribir #.
Actualización (21/07/2009): se incluyó ejemplo con formulario.

Actualización (06/01/2011): agregue la función de cargas asíncronas / AJAX:

  1. type: utilizado para hacer llamadas asíncronas / AJAX. Si se incluye con type:asyn, el contenido cargará en el div indicado sin refrescar el sitio.
  2. loadhere: el div donde se cargará el contenido de manera asíncrona. Puede ser class o id.

Cómo funciona:
$('#enlaces a.asyn').LoadingMessage({
text:'Cargando',
attr:'text',
css:'loading',
type:'asyn',
loadhere:'#contenido'
});