Lunes 26 de junio de 2017

¿Realmente te conoce? –AdsBlock

Este post nace a través de este enlace Dataselfie, conociendo al Algoritmo de Facebook y su Machine Learning. en el que hablan de como funciona el proceso de la publicidad que te sale en facebook,  a través del tiempo ya has dibujado tu perfil en facebook sea por búsqueda o por likes todo lo que hagas dentro de esa red social te va a salir, luego que ya saben que es lo que te gusta te empiezan a mandar publicidad acorde a ella, nunca se habían realizado esa pregunta ¿Por que me sale esto?. si quieren conocer que facebook sabe mas que ustedes tranquilamente, pueden abrir  este enlace Preferencias Ads en Facebook

El cual con la sesión abierta de facebook, desglosan en Intereses, y veras todo tus gusto, lo que por alguna razón buscaste o le diste por omisión. Ahí te conocerás realmente que es lo que te gusta.

Ya que donaste los datos, que puedo hacer.

Lo mas sensato es darse de baja de una red social donde juegan con tu información. si quieres seguir usándolo lo mas lógico seria usar AdsBlock  que lo puedes instalar en firefox y chrome, no vas a ver mas publicidad pero igual en cualquier momento que abras un enlace vas a empezar a crear nuevamente tu perfil.

Hace años 10 años una persona que respeto me compartió este video sigue vigente creemos que los servicios que usamos son gratis realmente.
https://www.youtube.com/watch?v=6bYLRGS3vFs

 

 

 

 

 

 

 

 

 

Domingo 25 de junio de 2017

Activar/desactivar registro de usuarios en WordPress

Registro WordPress

La solución es de forma inmediata, dentro del Escritorio (al que accedas administración del WordPress), le vas hacer click en  a Ajustes, Generales y activas o desactiva el checkbox de: Cualquiera puede registrarse. depende para lo que requieras.

Si lo que tienes  problema con usuarios que se registran y en realidad son robots o personas spammers, usa el plugin que mencione anteriormente  http://blog.julioh.com.ve/?p=476 en el cual se hace ocultar la url de wp-admin  otra forma es usando .httpass dentro de los directorios y bloqueando su acceso, o en su momentos podrías saber cual es tu ip para indicarle desde donde te conectas por ejemplo algo así.


order allow,deny
deny from 8.8.8.8
deny from 8.8.8.9
allow from all

Sábado 24 de junio de 2017

Seguridad en WordPress , Garantizar el acceso a wp-admin

WordPress por ser un CMS mas usado pues tienes vulnerabilidades y necesitamos blindarlo en seguridad y que mejor usando plugins para que no tengas una mala experiencia.

Esta es una de esas en la cual la ruta  ../wp-admin/ la remplazas para evitar acceso a ella.

En el caso el plugin WPS Hide Login no vas a eliminar /wp-login.php o /wp-admin , pero si lo va remplazar para no sea visible y colocaremos una url que solo sabremos nosotros.

Lo buscamos  WPS Hide Login en plugins  haz clic en Instalar y posteriormente en Activar.

En el plugin accede a Ajustes, Generales y establece la palabra de paso que sustituirá al clásico:

wp-admin por no-vasaentrar guardas los cambios y pruebas.

Configuración del plugin

Cuando intentas acceder a  http://tu-dominio.com/wp-admin
Te dará un 404 not found

De igual forma  también para  /wp-login.php no existen.

 

Prueba de acceso incorrecta

Si por el contrario pones la url de tu dominio con la palabra de paso establecida:

http://tu-dominio.com/?no-vasaentrar

Te va a salir tu panel para acceder, que se busca con esto, evitar ataques de diccionario, evitar suscripciones y proteger tu CMS de la mejor manera.

si por casualidad no te acuerdas de la url, puedes borrar el plugin en la carpeta wp-content y vuelve a la ruta original

 

Lunes 01 de mayo de 2017

Alejandro Pérez

Alejandro Pérez
moving to linux

Flisol Panama 2017

Flisol this year was organized by Jose Reyes and Luis Manuel part of the new organization force in Panama, it was great to see all new generation of Fedora Panama members organizing events. While those are the faces at the events there are others working with them which make the team work.

For a while my activity has been watching new people organizing, and doing the events, which is a really good thing, we need to refresh and  recharge, plus we need to see new people in charge, it has been fun looking at Abdel playing the role of the elderly of the group couching and advising the young new generation of Fedora and Free Software fellows.

Getting back to Flisol, it was good to see new and old community members been part of the conferences and realize how some of the people in the local community has grow as professionals and as person.

Bruno Regno Floss-pa member shared with us the result of his work in the Green Freedom project, it provide 7 schools with computer rooms of 30 thin clients computer and server, running Ubuntu and xfce for desktop to provide students the skills to lean Open Office and some other Open Source tools.

Demostenes Garcia Floss-pa member demonstrate how to use GrapQL, it was nice a new tool to learn. Demostenes is working on an government agency where he is the head of the IT department he leads his team to use Open Source and Agile methodology on as many projects as possible, becoming an example of what can be accomplish on with Open Souce on the local government. You can see its work here

Ytzvan Mastino another Floss-pa member and entrepreneur from triptable.com talk about DevOps.

Diego Tejera from rootstack.com give a talk about entrepreneurship with Open Source in Panama, something he has accomplish well. It is important to notice that he started Floss-pa and was involve on it for many years before starting his company, now is one of floss-pa sponsors, thanks for your support.

Julian Vega Floss-pa member from Chiriqui talk about Blender and later give a Blender workshop.

Gonzalo Nina from http://ehacking.com.bo/ provide us a talk about ethical hacking and security.

 Vladimir Cespedes talk about Angular 4.0

Leonardo Esquema talk about reactive system and Frameworks.

Work shops of the day where:

Web Scrapping by Luis Manuel Segundo

Webapp with Meteors in real time by Mayron Torres

Marketing Campaing by Jonas Hernandez

So many new people and old ones sharing with the next generation of Floss-pa and Fedora members.

This time the event was hosted at Universidad Tecnologica de Panama  it was fun returning to this university and enjoy sharing with new students and teachers







I'm eager to know the new generation of people, it was fun. Many thanks to Ethical Hacking and Rootstack for the pizza and Alvaro Andrade for the dinner for the organization team. Many thanks to  Shelsy A who help with the design.



Sábado 25 de febrero de 2017

KDE 5.8x o 5.9x en Kubuntu 16.04

Kubuntu 16.04 es la base de KDENeon, la cual se podria decir que es la version oficial para el proyecto KDE y su entorno de escritorio.

Sabemos que la LTS tiene la version 5.5.5 - la cual se ha mantenido pulida de ha poco, pero hemos de saber que KDE LTS es la version 5.8.x y otra versiones mas nuevas que al momento de escribir este post esta en la 5.9.x,

Ahora, les muestro como actualizarlos de una manera mas simple y tener Kubuntu con las versiones de KDENeon sin tener que bajarte la imagen del disco.

Debemos mantener actualizada nuestra distribucion de Kubuntu 16.04.2 que la version mas reciente.


Lo cual notaremos que esta en la version 5.5x 
Procedemos a crear en un archivo con los repositorios que necesitaremos, lo cual en mi caso llame neon.list el cual colocamos en /etc/apt/sources.list.d/ o si desean en el archivo sources.list original de Kubuntu.


y hemos de agregar entonces las direcciones de las versiones de KDE más recientes los cuales son la version LTS y Corriente o Actual.

#KDELTS
deb http://archive.neon.kde.org/user/lts xenial main
deb-src http://archive.neon.kde.org/user/lts xenial main
#Current
#deb http://archive.neon.kde.org/user xenial main
#deb-src http://archive.neon.kde.org/user xenial main

Procedemos a guardar el documento y realizamos una actualizacion de los archivos de repositorios, recordemos desbloquear los que querramos usar.

Tendremos que descargar la llave de verificacion: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 55751e5d no hay que preocuparse por la numeración final ya que al momento de dar la actualización de la lista se los facilitara como vieron en la imagen anterior.

 En este caso, nos mandara un error la version de 32bit (i386) lo cual no estan disponibles ya que solo se esta desarrollando para 64bit (x86_64) y hemos de quitarlo con: sudo dpkg --remove-architecture i386
  Como recomendación debemos desactivar el entorno grafico para que no mande error en la actualizacion utilizamos el comando: sudo apt-get dist-upgrade para que sea completa.
y tocara esperar que la actualización avance de manera natural, si notan que en la actualizacion les da alguna pausa puedes escribir: sudo dpkg --configure-a && sudo apt-get dist-upgrade si es necesario.
Al terminar la actualizacion, hemos de reiniciar el equipo y tendremos la version de KDE que seleccionamos actualizar ya sea la LTS o la Actual.
Como pueden ver en la imagen a continuacion el entorno de escritorio ya esta instalado.

En caso de querer usar la version Actual o corriente es solo comentar los repositorios del entorno LTS por los de la version Corriente y procedemos a realizar una actualizacion.


Al reiniciar, igual entonces tendras la version corriente instalada. 
Y ya tendras entonces las versiones mas recientes de KDE en Kubuntu al igual que las versiones de KDENeon.

Miércoles 25 de enero de 2017

Repositorios OpenSuse

Hace unos días (un mes mas o menos) había tenido inconvenientes con Opensuse que consistía en que los repositorios que trae por defecto el DVD de instalación no se me actualizaban y bueno.. estuve en una larga - larga agonía de "zypper ref" que no copia ejecutar ya que no avanzaba. En la cual que jamas se me ocurrio hacer un cambio de repositorios hasta que me lo aconsejaron y realize el cambio de direccion web en los archivos .repo oficiales.

Les comparto los que he utilizado en estos momentos y su procedencia.

NonOSS -->  http://sfo-korg-mirror.kernel.org/opensuse/distribution/leap/42.2/repo/non-oss/
NonOSS-Update --> http://sfo-korg-mirror.kernel.org/opensuse/update/leap/42.2/non-oss/
OSS --> http://sfo-korg-mirror.kernel.org/opensuse/distribution/leap/42.2/repo/oss/
OSS-Update --> http://sfo-korg-mirror.kernel.org/opensuse/update/leap/42.2/oss/

Después de realizar el cambio todo se soluciono -- y pueden encontrar los de 42.1 y Tumbleweed que las próximas versiones

(Enlace Oficial de los Repositorios)

Domingo 08 de enero de 2017

David Moreno

David Moreno
dm's blog

Thanks Debian

I sent this email to debian-private a few days ago, on the 10th anniversary of my Debian account creation:

Date: Fri, 14 Aug 2015 19:37:20 +0200
From: David Moreno 
To: debian-private@lists.debian.org
Subject: Retiring from Debian
User-Agent: Mutt/1.5.23 (2014-03-12)

[-- PGP output follows (current time: Sun 23 Aug 2015 06:18:36 PM CEST) --]
gpg: Signature made Fri 14 Aug 2015 07:37:20 PM CEST using RSA key ID 4DADEC2F
gpg: Good signature from "David Moreno "
gpg:                 aka "David Moreno "
gpg:                 aka "David Moreno (1984-08-08) "
[-- End of PGP output --]

[-- The following data is signed --]

Hi,

Ten years ago today (2005-08-14) my account was created:

https://nm.debian.org/public/person/damog

Today, I don't feel like Debian represents me and neither do I represent the
project anymore.

I had tried over the last couple of years to retake my involvement but lack of
motivation and time always got on the way, so the right thing to do for me is
to officially retire and gtfo.

I certainly learned a bunch from dozens of Debian people over these many years,
and I'm nothing but grateful with all of them; I will for sure carry the project
close to my heart — as I carry it with the Debian swirl I still have tattooed
on my back ;)

http://damog.net/blog/2005/06/29/debian-tattoo/

I have three packages left that have not been updated in forever and you can
consider orphaned now: gcolor2, libperl6-say-perl and libxml-treepp-perl.

With all best wishes,
David Moreno.
http://damog.net/


[-- End of signed data --]

I received a couple of questions about my decision here. I basically don’t feel like Debian represents my interests and neither do I represent the project – this doesn’t mean I don’t believe in free software, to the contrary. I think some of the best software advancements we’ve made as society are thanks to it. I don’t necessarily believe on how the project has evolved itself, whether that has been the right way, to regain relevancy and dominance, and if it’s remained primarily a way to feed dogmatism versus pragmatism. This is the perfect example of a tragic consequence. I was very happy to learn that the current Debian Conference being held in Germany got the highest attendance ever, hopefully that can be utilized in a significant and useful way.

Regardless, my contributions to Debian were never noteworthy so it’s also not that big of a deal. I just need to close cycles myself and move forward, and the ten year anniversary looked like a significant mark for that.

Poke me in case you wanna discuss some more. I’ll always be happy to. Specially over beer :)

Peace.

Miércoles 28 de septiembre de 2016

Borrar Kernel Antiguos en OpenSuse

Llevo un par de tiempo en OpenSuse y bueno se ha actualizado la version de Kernel habilitado 2 veces y bueno estos pueden eliminarse si ya no los estas utilizando y no morir en el Intento.

Pues el comando es simple en terminal: rpm -qa | grep -i kernel en mi caso estaban las versiones:
*kernel-default-4.1.31-30.2.x86_64
*kernel-firmware-20160503-3.1.noarch
*kernel-default-4.1.27-27.1.x86_64
*kernel-default-4.1.12-1.1.x86_64

Pues lo siguiente es dar: zypper remove kernel-default-4.1.12-1.1.x86_64 kernel-default-4.1.27-27.1.x86_64

No eliminar el kernel-firmware y la kernel-default mas reciente que tengan por logica.
Saludos a todos y espero les funcione.

Fuente

Lunes 29 de agosto de 2016

David Moreno

David Moreno
dm's blog

Webhook Setup with Facebook::Messenger::Bot

The documentation for the Facebook Messenger API points out how to setup your initial bot webhook. I just committed a quick patch that would make it very easy to setup a quick script to get it done using the unreleased and still in progress Perl’s Facebook::Messenger::Bot:

use Facebook::Messenger::Bot;

use constant VERIFY_TOKEN => 'imsosecret';

my $bot = Facebook::Messenger::Bot->new(); # no config specified!
$bot->expect_verify_token( VERIFY_TOKEN );
$bot->spin();

This should get you sorted. What endpoint would that be, though? Well that depends on how you’re giving Facebook access to your Plack’s .psgi application.

Domingo 21 de agosto de 2016

David Moreno

David Moreno
dm's blog

WIP: Perl bindings for Facebook Messenger

A couple of weeks ago I started looking into wrapping the Facebook Messenger API into Perl. Since all the calls are extremely simple using a REST API, I thought it could be easier and simpler even, to provide a small framework to hook bots using PSGI/Plack.

So I started putting some things together and with a very simple interface you could do a lot:

use strict;
use warnings;
use Facebook::Messenger::Bot;

my $bot = Facebook::Messenger::Bot->new({
    access_token   => '...',
    app_secret     => '...',
    verify_token   => '...'
});

$bot->register_hook_for('message', sub {
    my $bot = shift;
    my $message = shift;

    my $res = $bot->deliver({
        recipient => $message->sender,
        message => { text => "You said: " . $message->text() }
    });
    ...
});

$bot->spin();

You can hook a script like that as a .psgi file and plug it in to whatever you want.

Once you have some more decent user flow and whatnot, you can build something like:



…using a simple script like this one.

The work is not finished and not yet CPAN-ready but I’m posting this in case someone wants to join me in this mini-project or have suggestions, the work in progress is here.

Thanks!

Miércoles 27 de abril de 2016

Alejandro Pérez

Alejandro Pérez
moving to linux

Flisol Panama 2016

Flisol is a big event on latam, many communities join and celebrate and exchange free software and knowledge with each others and general public. Normal event will include free software installations, talks and workshops.

This year Flisol Panama was organized by Jose Reyes who took care of all organization, so many thanks for the job done,

Flisol  David on April 9 of this year hosted by  Universidad del Itsmo thanks for hosting the event on David, Kiara Navarro and me visit hosted the event, we present talks and share with the local community, which bring some new members to Floss-pa our Panamanian free software group and some of them showed interest on becoming Fedora contributors.


Blender talk by JulianVega


On Flisol official Date April 23 we celebrated it at the Universidad Interamericana de Panama  thanks for hosting it. While we did not have the normal attendance for this event  we have really interested crowd. Must interesting part of the crowd was to have 2 people interested on becoming Fedora packagers, both of them starting working to archive that task. Another interesting development was to meet a group of students who want to contribute with some software development and design for our local group Floss-pa, plus others who  wanted to contribute on organization and learn more about free software.


Special thanks to Gonzalo Nina who soon will become a packager and full Fedora Panama contributor.

So it was a good event with many things to learn and do.

Thanks to the people who work to make it possible and we hope to have new contributors doing some task on Fedora.

Miércoles 16 de marzo de 2016

Alejandro Pérez

Alejandro Pérez
moving to linux

Wayland not to Wayland, at least on Fedora 23 and comming Fedora 24

Wanted to try Wayland, since the beginning and been testing it from time to time, first when Fedora 23 was released, then some of my normal applications will crash at launch so it was no Wayland.

After reading there was no go for Wayland for the coming Fedora 24 decided to try it again, to my surprise this time all my apps run and response was good, so try it for a week to see if I can live with it for that time.

Found some issues, while not sure why, the copy and paste between some programs it is not quite working, most important to me was the gnome-terminal keyboard shorcuts for copy and paste did not work have to use mouse to do copy and paste while it is annoying, I could live with that, so keep playing with it for my daily task basically all other stuff normal.

But notice two big issues, on my normal day, my notebook has an external monitor so I'm on dual headed, first day started to work with Wayland did not notice it because started the notebook with the secundary monitor connected and everything works fine.

Then another day started my notebook outside of my desk and when arrive to my desk connected the secondary display it show as normal except that the applications on the secundary display have some issues with the mouse, once I click on the nothing happen then notice that all clicks was done on the application on my main display even do the mouse pointer was on the secondary display. So humm, solved by going into the control panel and switch primary display, that solve the issue.

What did not work for me and the more annoying bug was that some times I have to grab my notebook and move some place else to work, so disconnect secondary display and go to other room with all my gnome session and applications open so I can continue working, but not in Wayland, as son as disconnect the display gnome session shut down and all applications close, so found my no go Wayland while that can be manage by turning of the seconday display on control panel.

So, while appreciated the effort done on Wayland, it was the right call to delay it for Fedora 25. Wayland is not there for normal users yeat. But it is working better that before. Will run another try when Fedora 24 is release and later on.

Viernes 27 de febrero de 2015

Laravel 5 con vagrant en ubuntu

Las siguientes instrucciones fueron probadas y funcionan para Ubuntu 14.10.

Recientemente inicié a trabajar en un sitio web que usará Laravel 5 y decidimos usar vagrant para hacer el proceso de creación y configuración de nuestros ambientes de trabajo locales algo más simples.

A continuación les dejo las herramientas que estaremos utilizando:

Laravel: su eslogan lo dice todo "The PHP Framework For Web Artisans" que se puede traducir mas o menos así: El marco de trabajo en PHP para los artesanos de la web. Laravel busca ser simple y robusto, pero orientado a objetos, utiliza composer para manejo de las dependencias lo que le permite reutilizar código de otros proyectos (en especial symfony).

Vagrant: es una herramienta que permite crear ambientes de trabajo simples de configurar, reproducibles y portátiles, que emplean tecnología estándar y que son controlados en un flujo de trabajo único y constante, para ayudar a maximizar la productividad y flexibilidad de su equipo de trabajo. Por ejemplo: al iniciar un proyecto, en lugar de hacer circular un documento con los pasos que todos los desarrolladores tienen que seguir para hacer que la aplicación funcione en su máquinas (ambiente local), les pasamos una máquina virtual ya configurada y lista para usar, la principal ventaja de esto, aparte de facilitar el trabajo, es que todo el mundo tiene la misma configuración y no importa cuantos nuevos miembros se unan al equipo, todos usaran las mismas herramientas. Cabe mencionar que incluso podemos jugar con las configuraciones del servidor creando máquinas virtuales adicionales

VirtualBox: es un programa (software) de virtualización, es decir que nos permite crear máquinas virtuales a las cuales les asignamos recursos del sistema físico (nuestro computador). Vagrant usará virtualbox como proveedor para ejecutar las máquinas virtuales.

Composer: es un manejador de dependencias para PHP.

Requerimientos

Debemos tener instalado todo lo que sigue, los pormenores de cada programa pueden ser encontrados en el sitio web respectivo, por lo que no entraremos en detalles:

  1. composer, de preferencia globalmente, ver detalles
  2. virtualbox 4.3.22, que se puede descargar desde aquí
  3. vagrant 1.7.2, que se puede descargar desde aquí

Crear un proyecto de pruebas:

Como mencioné antes, vamos a usar Laravel, por lo que ahora crearemos un proyecto nuevo, usaré composer para esto pero existe una alternativa:


cd ~/Projects
composer create-project laravel/laravel my-project --prefer-dist


La salida del comando anterior debería ser algo como lo siguiente (texto acortado por brevedad):

Installing laravel/laravel (v5.0.1)
- Installing laravel/laravel (v5.0.1)
Downloading: 100%

Created project in my-project
Loading composer repositories with package information
Installing dependencies (including require-dev)
...
Writing lock file
Generating autoload files
Generating optimized class loader
Compiling common classes
Compiling views
Application key [********MySuperSecretKey*********] set successfully.

Instalar y configurar laravel/homestead

Laravel Homestead es una "caja" oficial de Vagrant (Vagrant box), pre-empacada y lista para usar en tu ambiente local. No hay que preocuparse con dañar algo, pues si algo sale mal podemos ¡destruir y recrear el ambiente de desarrollo en minutos!

El siguiente comando descargará la caja laravel/homestead, esto puede tardar algún tiempo:

vagrant box add laravel/homestead

Instalamos homestead en nuestro sistema globalmente:
composer global require "laravel/homestead=~2.0"

Inicializamos los archivos de configuración de homestead:
homestead init

Editamos el contenido del archivo ~/.homestead/Homestead.yml
homestead edit

Para más detalles sobre las configuraciones pueden consultar aquí
Aquí dejo un ejemplo de mi configuración para my-project en el archivo ~/.homestead/Homestead.yml:

---
ip: "192.168.10.10"
memory: 4096
cpus: 1

authorize: ~/.ssh/id_rsa.pub

keys:
- ~/.ssh/id_rsa

folders:
- map: ~/Projects/
to: /home/vagrant/Projects

sites:
- map: myproject.app
to: /home/vagrant/Projects/myproject/public

databases:
- homestead

variables:
- key: APP_ENV
value: local

# blackfire:
# - id: foo
# token: bar
Vale la pena mencionar que el archivo Homestead.yml es global así que al añadir nuevos proyectos, se debe modificar ya sea para agregar dichos proyectos o reemplazar los anteriores

Antes de poder acceder a nuestra máquina virtual tenemos que modificar el archivo hosts, para añadir una línea (192.168.10.10 myproject.app)y que nuestro sistema operativo sepa la forma de resolver el dominio myproject.app a una dirección ip, esto normalmente se haría en un servidor de nombres DNS, pero para nuestro ambiente local no hace falta.
sudo nano /etc/hosts

A continuación un ejemplo de mi archivo /etc/hosts:

127.0.0.1 localhost
127.0.0.1 myhost

192.168.10.10 myproject.app

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
Ahora lo que resta es ir al directorio donde está instalado Homestead y ejecutar vagrant up:

cd ~/.composer/vendor/laravel/homestead/
vagrant up


Asumiendo que todo a salido bien, la máquina virtual con su aplicación debería estar funcionando y debemos poder acceder en nuestro navegador preferido a la dirección http://myproject.app, sino pueden revisar la sección de problemas conocidos
.

Problemas conocidos:

  • He escuchado comentarios de las versiones de Vagrant (1.7.2) y VirtualBox (4.3.22) afectan en gran medida, por lo que es recomendable mantener ambos actualizados
  • En Ubuntu, tuve el problema de que algunos módulos del kernel no cargan correctamente, la solución, editar el archivo /etc/modules y añadir los módulos siguientes uno por línea: vboxdrv, vboxnetadp y vboxnetflt, por ejemplo:

    #virtual box module
    vboxdrv
    vboxnetadp
    vboxnetflt

    Además para no tener que reiniciar cargamos los módulos mencionados:

    sudo service vbxdrv start
    sudo modprove vboxnetadp
    sudo modprobe vboxnetflt

Domingo 07 de diciembre de 2014

Instalar y actualizar ack-grep en ubuntu (dpkg-divert)

Hace poco actualicé Ubuntu a la versión 14.10 en mi laptop y traté de actualizar ack-grep pero este proceso siempre fallaba con el siguiente error:

package ack-grep 2.12-1 failed to install/upgrade: trying to overwrite 
`/usr/bin/ack', which is the diverted version of `/usr/bin/ack-grep'


Después de investigar un poco recordé la guía oficial de instalación de ack-grep recomienda renombrar el paquete posterior a su instalación para que sea posible llamar dicho programa simplemente escribiendo ack en lugar de ack-grep, lo que la guía no dice es que esto causará problemas al tratar de actualizar el paquete, al menos es lo que me pasó después de actualizar Ubuntu.

Instalar ack (guía oficial)

Esta es la forma recomendada de instalar ack-grep en Ubuntu (http://beyondgrep.com/install/):

Primero necesitamos instalar el paquete:

sudo apt-get install ack-grep 


Y luego, por conveniencia, renombramos el paquete instalado:

sudo dpkg-divert --local --divert /usr/bin/ack --rename --add /usr/bin/ack-grep 


Este comando causa que el paquete sea renombrado localmente y si se ejecuta sin problemas están listos para usar ack

Acerca de dkpg-divert


dpkg-divert crea una "desviación", en este caso local, que cambia el nombre de ack-grep por ack, si ejecutan el siguiente comando:

dpkg-divert --list |grep ack


verán algo como lo siguiente:

desviación local de /usr/bin/ack-grep a /usr/bin/ack


si quieren eliminar dicha desviación puede usar:

sudo dpkg-divert --remove /usr/bin/ack-grep


y deberían ver el siguiente resultado si todo sale bien:

Eliminando `desviación local de /usr/bin/ack-grep a /usr/bin/ack'


Instalar ack (mi recomendación)

El principal problema con la guía oficial es que no dice nada sobre remover la desviación y los posibles problemas que puedes encontrar, y lo cierto es que prefiero usar "ack" antes que "ack-grep" así que usaré un alias.

La instalación ack-grep es igual:

sudo apt-get install ack-grep 


Ahora vamos a crear un alias y para esto editamos el archivo de configuración de nuestra consola de comandos, por defecto en Ubuntu sería ~/.bashrc

nano ~/.bashrc


y añadimos un línea como la siguiente al final:

alias ack='ack-grep'


Para que el cambio sea visible hay que recargar la terminal, lo cual vuelve a leer el archivo ~/.bashrc, por lo general lo más simple sería cerrar la ventana del emulador de terminal o podemos ejecutar:

exec $SHELL


Y luego debemos poder ejecutar ack de forma normal.


Conclusión

Aunque la guía oficial ofrece una forma simple de hacer que el comando ack esté disponible para todos, crear una desviación local puede causar problemas y a menos que sepamos la forma de usar dpkg-divert podríamos terminar con un paquete roto en nuestro sistema.
Mi solución tiene la ventaja de que no afecta futuras actualizaciones y aunque el ejemplo solo afecta la cuenta de un usuario, solo haría falta actualizar el archivo /etc/bash.bashrc (o el equivalente para el shell que esten usando) para hacer este alias accesible a todos los usuarios; cabe resaltar que para mi solución ack está disponible para todos los usuarios si invocan al comando ack-grep sin necesidad de crear un alias.

Lunes 15 de septiembre de 2014

evironment specific wordpress configuration

Everyone who has ever setup Wordpress knows the wp - config.php file and all settings that you can define there, this works fine to configure your wordpress instalation on any given environment but there are times when we have to work on different environments or stages as your applications is developed, tested and installed on production.

I have worked on companies that have one local environment per developer, then one for QA(quality assurance), another for staging and finally other one for production, in some cases there is a development environment where all development code is merged so developers can test their changes with what others have done, there is not a right answer here but one thing is for sure you don 't have the same settings on each of those environments and you don' t want to, here are some reason why that is the case :

  1. your local working copy: you want to be able to do just anything and you don 't care about database access rights so is usual to setup for example mysql root account without password.
  2. staging environment: you want to configure your database and the settings of your application to be as close as production as possible but this environment is accessible to a lot of people like: QA, software architects,  system administrators and perhaps even developers so you want to keep things simple and share easy to remember passwords with those who need them.
  3. production: this is the place that you want to keep protected, very specific user access rights, security policies, strong passwords, and so on. Maybe only certain sys admins whose are trust worthy can access here and see the application event log and change/install/update any required software.

With all of that being said here a simple example of a possible configuration of database users and privileges using MySQL 5.5.x, see here for a complete list of all supported Privileges and how to grant them.





environment user name permissions
local root ALL
staging root ALL
staging qa CREATE, DROP, SELECT, INSERT, UPDATE, DELETE
production root ALL
production app_user SELECT, INSERT, UPDATE, DELETE


Now let's say that you want to use root on your local without password, on staging you want to configure qa and use app_user for production.

Here is an example of your wp-config.php file for production, is very likely that you will just provide an example with place holders, then a sys admin will replace with actual values and deploy the final file to production environment.


Now the questions is: how do we allow different settings on staging and local environments? some people will just edit the config file to adjust it for every environment however this is very dangerous because you could end up overwriting one or more of those files and if you do override production your site will not work.

My suggestion/solution
inspired on this wordpress plugin I got the idea of defining an stage constant and then use that constant to load an environment specific configs file, another way could be just checking if an environment specific file existed but I think using a constant is better.

So we need to update our wp-config.php file making sure that it contains the WP_STAGE constant and that this is used to load the right configs file, here is how it looks like:


And this is how the wp-config-local.php looks like:

As you can see if you define some value for WP_STAGE constant and you create a file named like: wp-config-{WP_STAGE}.php the original (production settings in this case) will be ignored and your stage specific settings are loaded instead.

You may use local settings as default and create an specific version for production and staging. In my example I am loading and external file OR what is defined on wp-config.php so If something is required in many environments I will have to redefine it as many times as it is required, you could "move" this common setting to wp-config.php outside of the if block. In the worst case scenario if by accident you upload any of your environment/stage specific configs to production it will not be used unless your WP_STAGE constant is also changed and your production files are not going to get overwritten.

Miércoles 14 de mayo de 2014

Jose Antonio Gonzalez

Jose Antonio Gonzalez
J. ANTONIO GONZALEZ B

MOTO E Y MOTO G LTE debutan en Londres.

Desde la ciudad de Londres hoy en la mañana se hace oficial el lanzamiento de MOTO E y MOTO G LTE   ambos montados con el sistema operativo  Android 4.4, KitKat y con la potencia de un Qualcomm Snapdragon 200 with 1.2GHz dual-core A7 CPU Adreno 302 400MHz single-core GPU. <!--[if gte mso 9]> Normal 0 21 false false false ES-TRAD X-NONE X-NONE

Viernes 11 de enero de 2013

Jose Antonio Gonzalez

Jose Antonio Gonzalez
J. ANTONIO GONZALEZ B

PowerCam: A Million Shades of Fun!

En este video se resumen muchas de las bondades de esta app una buena alternativa a instagram la cantidad de filtros o efectos que puedes aplicar en tiempo real   uno de mis favoritos es los Collage  y luego de haber encontrado el efecto indicado lo puedes compartir a travez de twitter , facebook , flickr o email con un par de toques en la pantalla. esta app esta disponible para iphone,
Jose Antonio Gonzalez

Jose Antonio Gonzalez
J. ANTONIO GONZALEZ B

El Toque: Kidults, no quiero o no puedo irme de casa

Un tema muy interesante tocado por El toque de RADIO NEDERLAND un tema muy in

Jueves 20 de octubre de 2011

Gaddiel Espinosa

Gaddiel Espinosa
Gaddiel Espinosa Weblog

test

test


Gaddiel Espinosa

Gaddiel Espinosa
Gaddiel Espinosa Weblog

Como hacer un tar remoto y traer de regreso el archivo en una sola conexión SSH (En Unix)

implemente haciendo

ssh root@[Maquina] “tar -zcfP archivo.tar.gz [AlgunDirectorio] &> /dev/null && cat archivo.tar.gz” > archivo.tar.gz

noten que desvio la salida de errores y la de output a &> /dev/null para evitar basurilla, luego simplemente hacemos

un cat en el server remoto y luego desviamos la salida estandar del comando entero de SSH en un simple archivo.

Asi nos queda de forma local un archivo tar.gz totalmente pristino


Miércoles 21 de septiembre de 2011

Gaddiel Espinosa

Gaddiel Espinosa
Gaddiel Espinosa Weblog

Instalación de paquetes rpm

rpm -q (me dice si este paquete ya esta instalado o no)

rpm -qa (me dice todos los paquetes que están instalados)

rpm -i (instala el paquete)

rpm -e (desinstala el paquete)

rpm -ivh (para instalar y ver el progreso)

rpm -Uvh (para instalar y actualizar el paquete)


Jueves 23 de junio de 2011

Aristides Villareal

Aristides Villareal
avbravoubuntu

Archivos temporales de google chrome en ubuntu

Encontrar archivos temporales

Google Chrome /home/tu-usuario/.cache/google-chrome/cache
Chromium /home/tu-usuario/.cache/chromium/cache
Mozilla Firefox /home/tu-usuario/.mozilla/firefox/xxxxdefault/cache

Miércoles 22 de junio de 2011

Aristides Villareal

Aristides Villareal
avbravoubuntu

lista de paquetes instalados

Fuente:
http://www.guia-ubuntu.org/index.php?title=Recuperar_lista_de_paquetes_instalados

dpkg --get-selections | grep -v deinstall > ubuntu-files
Ésto nos genera un archivo llamado ubuntu-files, el cual contiene la lista que deseamos.
Para luego instalar todos estos paquetes en las otras máquinas, bastará con llevarnos este fichero a dichas máquinas y ejecutar:
sudo apt-get update
sudo apt-get dist-upgrade
sudo dpkg --set-selections < ubuntu-files
sudo dselect install
Ya tenemos una nueva máquina que tiene una réplica exacta de la instalación de la máquina plantilla.
Nota: Si te aparece que el comando dselect no se encuentra, instala el programa con
sudo apt-get install dselect
Aristides Villareal

Aristides Villareal
avbravoubuntu

Ver informacion del hardware

sudo apt-get install sysinfo

Viernes 25 de febrero de 2011

Sebastián Cervantes

Sebastián Cervantes
Notas de Mr. Shadow

Document Freedom Day 2011


Document Freedom Day (DFD) es un día mundial por la liberación de documentos. Será un día de esfuerzo a nivel local para educar al público sobre la importancia de Formatos de Documentos Abiertos y Estándares Abiertos en general.

Hay muchas maneras de involucrarse en el DFD 2011. Algunas de estas son:
  • Poniendo un banner en su sitio web
  • Escribiendo una entrada de blog
  • Organizando un evento en tu ciudad
  • Ayudando a la campaña financiera 
Este es el cuarto año del DFD y el primero en Panamá. Cada ultimo miércoles del mes de marzo se lleva a cabo esta importante fecha para promover el uso de Formatos de Documentos Abiertos.

En la provincia de Coclé este año la fecha será movida del 30 de marzo al 2 de abril y formará parte de las actividades previas al FLISoL.

Martes 08 de febrero de 2011

Sebastián Cervantes

Sebastián Cervantes
Notas de Mr. Shadow

Matrix en Windows XP

Alguna vez se han preguntado que hubiera pasado si la Matrix corriera en en Windows XP??

La respuesta es esta.



Si alguien lo consigue en español o subtitulado me avisa.

Lunes 07 de febrero de 2011

Sebastián Cervantes

Sebastián Cervantes
Notas de Mr. Shadow

Humor Geek

Aquí les dejo un par de chistes Geek para liberar el estrés XD

Oiga, usted ¿Por qué no ha levantado la mano?
Porque yo no utilizo Windows.
El profesor, extrañado, preguntó de nuevo:
Vaya, y sino utilizas Windows ¿Que Sistema Operativo utilizas?
GNU/Linux. -Respondió orgulloso-
El profesor, cuyos fanáticos oídos no podían dar crédito a algo así, exclamó:
Pero hijo mío ¿qué pecado has cometido para utilizar tal basura?
El alumno, muy tranquilo, le respondió:
Mi padre es informático y usa OpenSuse, mi madre es asesora en seguridad y usa Debian Linux y mi hermano estudia Física y utiliza Linux Mandriva, por eso yo también utilizo GNU/Linux remató orgulloso y convencido-
Bueno, -replicó irritado el profesor- pero ese no es motivo para utilizar Linux. Tú no tienes porqué hacer lo que hacen tus padres. Por ejemplo, si tu madre se prostituyese y se drogase todo el día, tu padre se tocara los cojones, bebiese como un cabrón y traficase con drogas y tu hermano atracase comercios y robase a abuelitas, entonces, ¿tú qué harías?
Seguramente instalaría Windows.

Un estudiante de ingeniería en computación enseña un programa al profesor y le pregunta:
"Profesor, ¿Dónde está el error? ¿En qué parte del código?" El profesor mira el programa, luego mira fijamente al estudiante, mueve la cabeza lentamente de izquierda a derecha y dice:
"En tu ADN".

Y Dios dijo:
No es bueno para el Programador estar solo.
Y tomo un hueso del cuerpo del Programador y creo una criatura que buscaría al Programador, lo admiraría y amaría las cosas que hiciera el Programador.
Y Dios llamo a la criatura EL USUARIO.

Un ingeniero de Microsoft, uno de Intel y un programador de Linux se encuentran en el lavabo. El de Microsoft acaba primero, y a la hora de lavarse las manos lo hace a conciencia, con mucho jabón y agua, usa un montón de toallitas de papel y dice: Los de Microsoft, lo que hacemos lo hacemos bien.
El ingeniero de Intel, también se lava a conciencia, pero utiliza muy poca agua, muy poco jabón y para secarse la esquinita de una toallita de papel. Cuando acaba dice: Los de Intel, además de hacerlo bien, lo optimizamos al máximo.
El programador de Linux, sin lavarse, mira a los otros dos y dice: Los de Linux no nos meamos en las manos...

Y por ultimo un video de un tetris humano



Y como ñapa un jueguito de PONG jajaja



Espero les haya gustado