Cantidad de páginas vistas y de visitantes con logs de Apache2

Nos ha sucedido que nos han preguntado ¿Cuántas visitas hemos tenido a nuestro sitio? y no hemos tenido respuesta ni tampoco hemos tomado las acciones para activar un plugin que nos ayude en esta tarea.

En ese caso, si usas apache2 como servidor web, dejo estas instrucciones para que puedas usarla y poder responder tecnicamente a la pregunta. Al mismo tiempo, anota en la pizarra que debes activar algún elemento que te ayude a llevar estas mediciones de manera más prolija y funcional.

Estas instrucciones las usé para generar los indicadores descritos anteriormente en un servidor apache2 que sirve un site Joomla. En este caso el CMS Joomla 3.5 no tenía ningún componente de estadísticas de visitas ni nada por el estilo.
Lo primero que se debe saber es que normalmente los archivos de logs de apache están en /var/logs/apache2/. En esa ruta encontrarás los access.log, los cuales se van numerando para guardar los históricos. A veces pueden encontrarse en formato GZ o comprimido.
Lo que recomiendo es tener todos los archivos .log descomprimidos en un directorio, yo use /tmp/logs para asegurar que al reiniciar se borre porque no los necesito para siempre en este caso.
Se deben colocar todos los archivos de logs de acceso de apache en un mismo directorio y luego ubicarse con el shell o terminal en ese directorio.
Con las instrucciones que acá documento, se pueden ver la cantidad de páginas vistas, descartando los accesos al site de administración de joomla.
  1. Cantidad de páginas vistas totales: Con este comando se recibe un número, para este caso, 46.030 visitas totales
    • cat * |  grep GET | grep -v “administrator” |   wc -l
  2. Cantidad de páginas vistas entre Septiembre y Octubre: Con esta instrucción se recibe un número, para este caso, 25.689 visitas entre septiembre y octubre
    • cat * |  grep GET | grep -v “administrator” | egrep -w ‘Sep|Oct’ |  wc -l
  3. Cantidad de usuarios que visitaron la intranet entre Septiembre y Octubre: Con esta instrucción se recibe un número, para este caso, 51 usuarios visitaron la intranet
    • cat * |  grep GET | grep -v “administrator” | egrep -w ‘Sep|Oct’ | awk ‘{print $1}’ | sort | uniq | wc -l 
Breves comentarios:
  • grep permite filtrar la salida de un stdin.
  • grep -v sirve para excluir alguna palabra, en este caso, se excluyen todas las líneas que indiquen administrator para que en las estaísiticas no se cuente el site administrativo
  • egrep -w sirve para aplicar una expresión regular de búsqueda, en este caso egrep -w ‘Sept|Oct’ quiere decir, filtra o deja pasar sólo aquellos registros que sean de septiembre y octubre.
  • wc -l indica la cantidad de líneas o registros que generó la consulta
Espero les sea de utilidad.
Anuncios

17 INCREÍBLES BENEFICIOS DE LAS HOJAS DE GUAYABA PARA SU CABELLO, PIEL Y SALUD

Gracias a la entrada del compañero Anton D en un grupo de Agricultura Urbana, pude recibir este texto que comparto con todos y todas.

La guayaba es venerada porque está llena de vitaminas A y C, potasio, licopeno y fibra dietética. Pero ¿sabía que las hojas de guayaba también poseen muchos beneficios? Siga leyendo para conocer los 17 beneficios de las hojas de guayaba.

1. Promueven la pérdida de peso. El consumo de té de hojas de guayaba se dice que no convierte los hidratos de carbono complejos en azúcar, que es lo que puede causar la sensación de hambre y el aumento de peso si no se quema.

2. Beber té de hojas de guayaba regularmente es beneficioso para las personas que sufren de diabetes. Esto se debe a que ayuda a reducir los niveles de glucosa en la sangre sin causar un aumento en la producción de insulina.

3. El té también es conocido por ayudar a reducir los niveles de colesterol LDL (lipoproteína de baja densidad) o colesterol malo sin tener ningún efecto negativo sobre los niveles de HDL (lipoproteína de alta densidad) o colesterol bueno.

4. El té de hojas de guayaba es muy eficaz contra la diarrea y la disentería porque las hojas tienen propiedades antimicrobianas

5. El mismo té también es bueno para hacer frente al malestar estomacal. También ayuda a poner fin a la intoxicación alimentaria debido a las propiedades antimicrobianas de las hojas de guayaba.

6. Se recomienda consumir te de hojas de guayaba a las personas que sufren de bronquitis, así como para la tos.

7. Ayudan a lidiar con el dolor de muelas, las encías inflamadas y las úlceras orales. Estos problemas pueden ser tratados efectivamente simplemente masticando unas hojas de guayaba.

8. Beber té de hojas de guayaba es beneficioso para los enfermos de dengue. La receta perfecta para esta enfermedad viral son 9 trozos de hojas de guayaba hervida en 5 tazas de agua hasta que se reduzca a la mitad.

9. Los hombres que sufren de problemas en la próstata e incluso de cáncer de próstata pueden beneficiarse del consumo de té de hojas de guayaba

10. Del mismo modo, el té también muy recomendable para los hombres con problemas de fertilidad.

11. Las hojas de guayaba trituradas colocadas en raspones, abrasiones y cortes menores ayudan a que no se infecten las heridas.

Las infecciones del oído externo se pueden curar más rápido dejando caer té de hojas de guayaba, frió a temperatura ambiente, en el área afectada.

12. Colocar hojas de guayaba machacadas en áreas de la piel con picores debido a las reacciones alérgicas ayuda a proporcionar alivio.

13. Las hojas machacadas también son buenas para aliviar las picaduras de insectos.

14. Las hojas de guayaba finamente trituradas se pueden aplicar sobre el acné y las espinillas. Hacer esto permite que el contenido de vitamina C de las hojas entre en acción ayudando a curar.

15. Está buscando una manera totalmente natural de deshacerse de las espinillas? En una licuadora, ponga unas cuantas hojas de guayaba trituradas y algo de agua. Utilice la mezcla resultante como un exfoliante facial.

16. La misma mezcla se puede utilizar como una máscara facial para ayudar a mejorar la apariencia de los signos de envejecimiento prematuro.

17. Con las hojas de guayaba hervidas en agua y dejándolo enfriar a temperatura ambiente puede darse masajes en el cuero cabelludo para así poner fin a la caída del cabello.

Si usted tiene un guayabo en su patio, tiene suerte! Ahora ya sabe dónde ir cuando necesite un remedio casero para diversos problemas.

Ingreso de Fechas con el widget DatePicker

Muchas gracias por este documento. Estuve pariendo con las fechas porque me empeñaba en usa formato d-m-y cuando mi base de datos estaba configurada en y-m-d. Decidí dejarla en standar como me muestras en tu blog.

Yii 2 en Español

Hola, ¿cómo están?

Un requerimiento muy común en las aplicaciones, es que el usuario ingrese alguna fecha. Las fechas pueden tener diferentes formatos, y no podemos simplemente utilizar un cuadro de texto para ingresarlas. Afortunadamente, existe una fantástica extensión para Yii 2 que encapsula Widgets de JQuery UI como Widgets de Yii.

Podemos pensar en los widgets como componentes que proporcionan cierta funcionalidad de un modo reutilizable, permitiendo incorporarla en nuestros proyectos. Los widgets son utilizados frecuentemente para mejorar la interacción con el usuario. Es importante recordar que la facilidad y sencillez de uso para una aplicación es clave, y además, es muy importante también la estética.

Los widgets nos ayudan en ese sentido. Voy a señalar desde ya que Yii no sólo nos permite utilizar widgets, sino construirlos, tema que veremos más adelante.

JQuery Ui, es un conjunto no sólo de widgets, sino de muchas funcionalidades más…

Ver la entrada original 569 palabras más

¿Cómo validar el dato de un campo de un formulario con una consulta SQL a una tabla externa en Yii2?

Como principante en Yii2, estoy documentando los casos que voy resolviendo, a este caso en particular le dediqué cerca de 8 horas de trabajo porque realmente me costó, por nuevo. Gracias a la ayuda de @JeanCuadros@telegram, pude resolverlo. Gracias a su apoyo colaborativo, tiempo y paciencia.

Supongamos que queremos levantar un registro de propietarios de un edificio que estén interesados en contratar un nuevo servicio de Fibra al Hogar (FTTH). Por el alto costo que tiene FTTH, sabemos que no todos querran el servicio; pero debemos asegurar que sólo se registren los propietarios que están al día en el condominio. Para ello tenemos una tabla donde registramos a los propietarios (campo:cedula)que están al día, indicando también el apartamento (campo: apartamento) donde viven. También tendremos una tabla de registro de propietarios interesados en el servicio, donde registraremos sólo aquellas personas  que indiquen correctamente la combinación de su Cédula de Identidad (campo:cedula_interesado) y su Apartamento (campo:apartamento_interesado) y que están al día en el condominio. Para ello haremos una regla de validación que nos asegure esto.

A nivel de Base de Datos:

  • Tenemos una tabla de propietarios de un edificio donde se tiene la Cédula de Identidad y el apartamento donde vive ya precargado en la tabla llamada propietarios, donde sólo se cargan a los propietarios que están al día.
  • Tenemos una tabla llamada interesados, donde registraremos a todos los propietarios que quieren el servicio de FTTH y que irán llenando el formulario y que sólo se registrarán efectivamente si superan la validación.

Lo primero que debo decir es que el tema se resuelve en el modelo de la tabla interesados, cuyo archivo php supongamos que se llama /models/Interesados.php, en ese archivo haremos 2 cambios:

  • En la función rules, cambiaremos la regla para validar el campo apartamento para que asegure que en la tabla propietarios existe el registro que contiene la Cédula y el apartamento que está al día
  • Agregaremos la función que llamaremos validarApartamento(), la cual será llamada desde la función rules.

Como premisa de novato, debo indicar que el modelo de la tabla de interesados y de referencia externa que en este caso es propietarios, deben existir.

De esta manera en la función rules() hacemos esto: Agregamos una regla para el campo apartamento_interesado para que llame a la función validarApartamento <<note que el nombre de la función se pone sin () en la definición de la regla>>:

public function rules()
{
return [

[[‘cedula_interesado’, ‘apartamento_interesado’], ‘required’],

[[‘apartamento_interesado’], ‘validarApartamento’],
];
}

Ahora agregamos la función validarApartamento más abajo en el mismo archivo donde modificamos la función rules anteriormente:

public function validarApartamento($attribute,$params)
{
if (empty(Propietarios::find()->where([‘cedula’=>$this->cedula_interesado])->andwhere([‘apartamento’=>$this->apartamento_interesado)->one()))
{
$this->addError($attribute,’Por favor revise que ha introducido correctamente su número de cédula y su apartamento, le recordamos que si no está al día con el condominio, No podrá registrarse.’);
}

 

Con estos dos cambios ya podrá validar lo requerido. Con esta lógica podrán validar cualquier campo contra cualquier tabla externa. Suele haber la necesidad de cumplir premisas como “para realizar el registro, debes asegurarse que exista en la tabla tal”.

 

Espero les sea de utilidad. Cualquier recomendación, bienvenido el comentario.

 

Como instalar Android Studio en Debian GNU / Linux de 64 Bits

Leninmhs

Esta entrada tiene el propósito de enseñar como instalar Android Studio en el Sistema Operativo Debian GNU / Linux para la arquitectura de 64 Bits de forma practica y rápida.

android studio 2 iconoAndroid Studio es un entorno integrado (IDE) para el desarrollo de aplicaciones para Android creado por Google, es multiplataforma por lo que podrá desarrollar para Android desde Windows, Mac y GNU / Linux. Esta bajo licencia Apache 2.0 y esta escrita en Java y todas sus parafernalias para lograr características como la emulación de dispositivos y versiones de Android.

Android Studio entre otros requerimientos mostrados aquí http://developer.android.com/intl/es/sdk/index.html resalto la recomendación para memoria ram que debe ser como mínimo 2 GB RAM siendo lo recomendado de 8 GB RAM


Ver la entrada original 192 palabras más

Recomendaciones para hacer Presentaciones Digitales Efectivas

Esta entrada es para documentar los lineamientos a seguir para hacer presentaciones electrónicas de trabajo. Son las mejores prácticas que he venido acumulando a lo largo de los años. Para nada es una camisa de fuerza y obviamente cada quien tiene su estilo. En este caso, sólo recomiendo las siguientes líneas; pero soy consciente que hay millones de maneras distintas de hacer presentaciones.

Sigue leyendo

¿Deseas hacerte programador Web?

El tiempo me ha permitido pasearme por distintos roles y responsabilidades a lo largo de mi desarrollo profesional; pero sin duda uno guarda una escencia desde que inicia en estos pasos de las ciencias de la computación. En mi caso, mi pasión siempre ha sido la automatización, y por lo tanto, el desarrollo de sistemas de información, principalmente.

Free-Code-CampSi el tiempo les ha alejado de la programación y quieren volver a recuperar esta habilidad, actualizarse, mejorar las habilidades de desarrollo o simplemente aprender de cero, pués los invito al Free Code Camp, donde arrancas de un nivel recontra-novato y vas aprendiendo a tu ritmo cada una de las lecciones prácticas que este sistema te va ofreciendo.

Empecé hace un mes y repasé los conceptos no olvidados con las prácticas no perdidas de HTML. Luego de este capítulo entré en el tema de los CSS, que realmente aprendí y sigo aprendiendo. Y justo por estos días ya entro en la zona de nadadores y uno sabe que no toca piso… con temor arranqué bootstrap y superada esta parte de la piscina, aranqué con el temido jQuery.

Es maravilloso encontrar lo impresionante que es el cerebro, que desempolva todas esas habilidades y me ha permitido reencontrarme conmigo mismo.

Lo más bonito de programar es que se hace lo que se piensa o imagina….siempre será intangible, pero se construye y funciona. Es por ello que comparto esta entrada para invitarte a explorar este maravilloso sitio.

 

Notas sobre Canaima GNU/Linux 5

Revisando el portal de nuestra meta-distribución Canaima GNU/Linux, me pregunto lo siguiente:

  • ¿Existe algún mecanismo de participación más activo distinto al de la listas de distribución?
  • ¿Por ejemplo un repositorio donde bajar el proyecto y hacer un fork y poder apoyar de manera directa?

En Ipostel estamos usando Linux Mint y observo que Canaima 5 está tomando algo de esto; prefiero aportar a la comunidad nacional de Canaima GNU/Linux e incrementar la cantidad de usuarios.

En Ipostel contamos con al menos 4.000 computadoras conectadas a la red institucional. Aun estamos atados a aplicaciones WINx86 y estamos intentando nuevamente migrarlas a nuevas y actualizadas aplicaciones web para romper la dependencia del Sistema Operativo y avanzar nuevamente.

Es muy importante el soporte colaborativo y rápido en ambientes de producción.

Es necesario tomar en cuenta la realidad de una institución pública, que varias veces hemos documentado y compartido en decenas de eventos donde además de satisfacer la lista, debemos mantener en la mente que debe contemplar la convivencia con el enemigo privativo:

  • Autenticación contra ldap, quizá con Samba 4 la cosa ahora sea más viable y sencilla
  • Acceso a recursos compartidos
  • Manejo de colas y gestión  centralizada inteligente de impresión para planificación de consumibles
  • Políticas de fortalecimiento de passwords
  • Inventario de equipos (CMDB)
  • …y algo importante y casi trivial: Poder cambiar el fondo de pantalla de las 4000 máquinas en tiempo real

En Ipostel hemos avanzado en migración a nivel de servidores; pero a nivel de escritorio, como en todas las experiencias, ha sido casi nulo. Con algunos picos de avances raudos y veloces gracias al ímpetu de alguna autoridad de tecnología que cree en el Software Libre; con el añadido de exigencias legales como decretos presidenciales o leyes en pleno proceso de construcción; más el temor de no cumplir planificaciones de migración reportados a los controladores y que ven los que critican cómodamente el poco o nulo avance sin conocer la realidad de cada institución que en la realidad no son factibles técnica ni operativamente para su migración en los escritorios. A este coctel le agregamos los constantes reversos a Windows porque la realidad operativa alcanza la limitación de PCs que ya cumplieron su vida útil y sólo cuentan con 1GB Ram y no soportan una máquina virtual Windows sobre Linux para acceder las aplicaciones de negocio.

No se trata de una resolución de la máxima autoridad de la institución, estamos en tiempos de máxima efectividad y eficiencia y Canaima debe venir a apoyar esta misión; no puede ser un factor distractor de la razón de ser de la institución o la excusa fácil para no cumplir. Está demostrado que la firma sola no funciona.

¿Qué hacer?

La clave es fortalecer equipos locales de soporte Canaima y articular con las demás microcomunidades de Canaiama a nivel nacional.

No evalúo el esquema de soporte actual de Canaima porque lo desconozco, sólo les comparto mi humilde visión para formar parte de un micro o nano núcleo de desarrollo de Canaima desde Ipostel. Cuando hablo de desarrollo, no necesariamente me refiero a echar código o algo así; me refiero a tener un grupo de gente vinculada a la comunidad para sumar fuerzas intelectuales.

Si queremos que Canaima crezca, HAGAMOS COMUNIDAD PARA EL USO Y MADURACIÓN DE NUESTRA META-DISTRIBUCIÓN.

Primeros pasos prácticos con github

github-markEsta entrada está dirigida a todos aquellos que han escuchado, solicitado que se use, sugerido o exigido que las cosas se hagan con un buen sistema de control de versiones.

Pués la idea es poner las manos en el teclado y que se pueda saber cómo hacer que github te ayude a participar colaborativamente en los proyectos libres.

Comparto con Uds. el manual que me sugirió mi amigo Jorge, el cual está disponible en https://git-scm.com/book/es/v1.

Asumo que ya tienes una cuenta github y que también tienes git instalado en tu equipo. En este caso trabajé sobre Debian GNU/Linux 8

Estos pasos los usé para clonar el documento de Jorge Mustaine y colaborar en su iniciativa y hacerla colectiva. Es un ejercicio práctico de convertir el discurso en acción. No importa cuan pequeña sea la acción, lo importante es hacer… y ahora agrego de manera escrita “compartir”, aunque obviamente, siempre esa la había pensado… pero no la escribía porque pensaba que no hacía falta.

1.- Desde github, ubicar el proyecto en el cual se desea colaborar y darle al botón fork que está en la parte superior derecha (por ahora)

2.- crear un directorio local para el repositorio en tu equipo. En mi caso le llamé git en mi directorio home
mkdir git

3.-Iniciar el repositorio git local
git init

4.- Clonar (copiar el repositorio localmente en tu equipo) el proyecto conociendo el URL del mismo:
git clone https://github.com/juancmonsalves/cuaderno.git

5.- Hacer los aportes editando los archivos locales

6.- Hacer git add nombre_archivo. En este caso, sólo edité el archivo hablardesl.md
git add hablardesl.md
7.- git push origin master

8.- Desde Github hacer Pull Request, escribir el comentario y darle al botón de “crear solicitud de pull request”

 

Jorge quedó en hacer un hagout para hablar de git. Seguramente documentaré el resultado del evento.

 

Saludos

Creando la primera aplicación Yii2

En esta aplicación se usó el widget de Calendario con JUI. Para ello deberás instalarlo antes de usarlo porque no viene por defecto en un proyecto básico yii2.

Asumiendo que ya tienes tu proyecto base configurado y que tienes composer en tu directorio de binarios. Procedemos a instalar la extensión posicionándote en la raiz de tu proyecto yii2. Para identificar que estás en la raíz debes identificar que existe el directorio vendor

composer require –prefer-dist yiisoft/yii2-jui

Si todo está bien, aparecererá algo como esto:

Using version ^2.0 for yiisoft/yii2-jui
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
  – Installing yiisoft/yii2-composer (2.0.4)               
    Loading from cache

  – Installing bower-asset/jquery (2.2.2)
    Loading from cache

  – Installing bower-asset/jquery-ui (1.11.4)
    Downloading: 100%         

  – Installing bower-asset/yii2-pjax (v2.0.6)
    Loading from cache

  – Installing bower-asset/punycode (v1.3.2)
    Loading from cache

  – Installing bower-asset/jquery.inputmask (3.2.7)
    Loading from cache

  – Installing cebe/markdown (1.1.0)
    Loading from cache

  – Installing ezyang/htmlpurifier (v4.6.0)
    Loading from cache

  – Installing yiisoft/yii2 (2.0.7)
    Loading from cache

  – Installing yiisoft/yii2-jui (2.0.5)
    Downloading: 100%         

Writing lock file
Generating autoload files

Al principio de tu vista, incluye la librería para su uso:

use yii\jui;

Luego utiliza el datepicket dentro del ActiveForm

    <?= $form->field($model,’fechasolicitudparte’)->widget(\yii\jui\DatePicker::className(),[
‘language’ => ‘es’,
‘dateFormat’ => ‘dd-MM-yy’])
?>