Opiniones de los compradores, la nueva forma de comprar

Hasta hace un par de años, cuando cuando compraba por Internet mas que nada me fijaba en el precio, buscaba un par de reviews de blogs y si me parecía buen producto lo compraba.

Pero ya hace un tiempo que me di cuenta de la importancia capital que tienen los comentarios de usuarios que compraron un producto.

El “problema” que le veía a los reviews es que se enfocaban totalmente a las especificaciones o facilidad de uso del producto analizado, pero estas pruebas siempre se hacen con una persona, una limitada cantidad de tiempo y sin informar sobre lo que rodea al proceso de compra como por ejemplo el envío, servicio de atención al cliente, etc.
En cierta medida estas ultimas cosas no es posible meterlas en un review por el mero hecho de que el servicio técnico en un review es extremadamente raro que lo vayan a llamar para meterlo en un review.

Hasta que un dia que estaba buscando un disco duro SSD en Amazon, di con dos que se parecían muchísimo y valían lo mismo. Asi que busque reviews por internet y… empataban. “Ok, me compro cualquiera de los dos” dije, pero antes de hacerlo ya que tenia las dos paginas abiertas decidí hacer scroll hacia abajo y llegue a las opiniones de usuarios.

Y AHÍ CAMBIÓ TODO

En un disco comentaban que en la vida real escribia mucho mas despacio los datos de lo que decían, que el vendedor que comercializaba el disco a través de amazon tardaba hasta dos semanas en entregarlo, que el disco les había fallado al cabo de un año, etc. Y en el otro disco las opiniones eran bastante distintas.

Lo curioso de lo anterior es que los review de ambos discos los daban como igual de buenos…

Entonces ya a partir de ese día las recomendaciones de los compradores han pasado a ser un requisito indispensable para mi a la hora de comprar cosas por internet.

Para quien todavía no esté convencido de mi argumento anterior, tal vez deberían saber que el 90% de las compras de electrónica y electrodomésticos las hago por internet y en estos últimos dos años he dejado totalmente de lado las malas sorpresas que me solía encontrar cuando lo que había comprado no era lo que yo creía.

Mi ultimo caso de compra fue este http://www.pccomponentes.com/asus_rt_ac87u_gigabit_router_dual_band_wireless.html en el que los comentarios de los usuarios fueron decisivos para mi. (necesitaba saber a ciencia cierta cuan bueno era el router y si era realmente verdad que me iba a ir de lujo con fibra óptica de Movistar). Vean la parte de comentarios de los usuarios, entre los cuales yo ya he dejado el mio con la esperanza de que el próximo que lo compre pueda servirse de mi humilde experiencia.

Chau!

Druplicon

DrupalCon Barcelona 2015

Barcelona-2015-DrupalCon

Y aquí estamos, después de muchos años la DrupalCon vuelve a España. Allá en el 2007 http://barcelona2007.drupalcon.org/ se celebró una pero yo recién estaba metiéndome en el mundo de Drupal y ni de casualidad sabia yo que había una comunidad tan grande y pujante. tarde un par de años de hecho en darme cuenta.

Como sea, DrupalCon vuelve a España y va a ser un evento brutal. Drupal desde aquel 2007 hasta estos días ha crecido una barbaridad, y los negocios que se hacen al rededor de él también.

Este año se celebra en Barcelona desde el 21 al 25 de septiembre, y voy a poder ir por fin!. Como se pueden imaginar no soy el único que en España va a ir, de hecho van prácticamente todos los exponentes de drupal en España (yheaaa). Pero eso no es todo, también voy a poder conocer y charlar si dios quiere con auténticos eruditos de drupal de todas partes del mundo.

Quiero aprovechar para invitarlos a que vayan. Para vos que sos programador te digo que vayas porque enriquece mucho ver como se mueven nuestros pares, como piensan, que hacen. Y para vos que sos una empresa, te recomiendo que vayas porque hay mucho negocio, y si estas buscando talentos que te puedo decir, ahí hay muchísimo crack dando vuelta y muchos de ellos siempre están dispuestos a escuchar una buena oferta.

No me extiendo mas, resumiendo, vayan, yo personalmente lo veo como una experiencia que voy a disfrutar :)

Chau!

tux

Montar permanentemente una partición ext4 en Ubuntu/Debian

Cuando creas una nueva partición con gparted (por ejemplo), esta no se va a montar automáticamente cuando inicies el SO. Pasa solucionarlo seguimos estos pasos:

Creamos el directorio donde cargar la partición

sudo mkdir /media/capy/Slave-linux
sudo chown capy. /media/capy/Slave-linux

(capy es mi usuario en linux. usa el tuyo).

Identificamos el uuid de la partición que nos interesa

sudo blkid
/dev/sda1: UUID="6a710399-14eb-489f-a69a-3eeefb1c6410" TYPE="ext4" PARTUUID="00012bdd-01"
/dev/sdb1: LABEL="Slave-linux" UUID="f7923e0a-93d7-466a-9371-59aa56da53bf" TYPE="ext4" PARTUUID="0004a843-01"

En mi caso es “Slave-linux” cuyo UUID es f7923e0a-93d7-466a-9371-59aa56da53bf.

Añadimos la linea mágica en fstab para que la partición cargue cada vez que se inicie

sudo gedit /etc/fstab

Y agregamos el final justo debajo de todo lo que haya, la siguiente linea (Con tu UUID y el label de tu partición):

UUID=f7923e0a-blabla-blabla-blabla-blablablabla /media/capy/Slave-linux ext4 defaults 0 1

Y listo. Si quieres verlo funcionando reinicia o lanza este comando:

sudo mount -a

Chau!

CSS & maquetación

Chrome redimensiona mas imágenes dentro de una tabla.

Me ha pasado algo curioso y solo en chrome de momento. Tengo un texto en una celda y una imagen en la otra. El problema vino cuando usé un max-width:100% para las img en general. En ese momento toda imagen que estuviera dentro de un <td> pasó a redimensionarse:

broken

Ok, Chrome también tiene sus cositas. La solución ha sido la siguiente:

/* Quiero que todas las img usen como mucho el 100% */
img {
  max-width: 100%;
}

/* Pero si la imagen está dentro de un td anulamos el max-width para evitar ese comportamiento raro. */
table tr td > img {
  max-width: none;
}

Resultado:
fixed

Y todos felices. Chau!

GIT: Mostrar gráfico de ramas en consola

GIT console graphic log

Para conseguir que la consola te muestre el gráfico e ramas (tree view en rigor) en la consola haz lo siguiente:

nano ~/.gitconfig

y al finar de lo que haya dentro del archivo pega esto:

[alias]
glog = log --all --graph --decorate --oneline

Listo, ya podés hacer

git glog

NOTA: glog = “graphic log”

Chau!

logo

Sigo acá!

Solo es que estoy ocupado (mucho mucho mucho), pero apenas tenga un hueco meto algún post que ya tengo ganas!

js-icon

Javascript: Eliminar un item de un array por su nombre

Pongan esto en su codigo:


Array.prototype.removeItem = function (a) {
for (var i = 0; i < this.length; i++) { if (this[i] == a) { for (var i2 = i; i2 < this.length – 1; i2++) { this[i2] = this[i2 + 1]; } this.length = this.length – 1; return; } } }; [/pyg] Y ya podemos eliminar elementos del array: [pyg lang=”javascript” style=”default” linenumbers=””] var frutas = [‘manzana’, ‘banana’, ‘pera’]; frutas.removeItem(‘banana’); console.log(frutas); // Entrega [‘manzana’, ‘pera’] [/pyg] Chau!

js-icon

Boilerplate (esqueleto) de plugin jQuery de la casa y en español ;)

Hola!. Me complace anunciar que pongo a disposición de todo el que quiera hacer plugins de jQuery, el boilerplate que he estado usando en los últimos años.

Es otro boilerplate como los demas, con la diferencia que al estar usandolo todo el tiempo lo fui puliendo poco a poco. Pero mucho mas importante: está en español XD

Pase pasen y vean https://github.com/capynet/jQueryPluginBoilerplate

Chau!

PHP

Detectar el navegador y toda su información desde PHP o Javascript

Hola, les hago una intro bien corta y pasamos al código.

Browscap es un proyecto que recoge la información de todos los navegadores web en una base de datos que distribuye de forma gratuita y en varios formatos.

PHP tiene soporte nativo para hacer uso de esta DB, pero debido a un par de limitaciones que PHP aun no ha solventado en su API, en GitHub un usuario creó una soluciona basada también en la DB de Browscap pero mucho mas robusta y fácil de usar.

Bien, llegados a este punto sabemos que lo que necesitamos usar es Browscap junto a la librería que se creó para explotarla.

Para mas información, toda la documentación completa de php-browscap la pueden encontrar aquí. Yo me centro en una implementación mucho mas simple porque realmente creo que de los 40 datos que entrega sobre el navegados, con apenas 7 tenemos el 99% de los casos cubiertos.

Acá tienen un ejemplo funcionando para que vean lo rápido y certero que es a la hora de conseguir la info del browser (pruébenlo con mas de uno)

Ok, pongamos algo de código que sino todo esto es muy aburrido:
Vamos a aprovechar esta librería bajo dos situaciones. en PHP y en JS

En PHP

Descarguen la librería php-browscap via Composer o a mano. Pueden saber mas sobre como descargarla aquí
Ahora que la tenemos creamos un archivo index.php para usarla.

<?php
require 'vendor/autoload.php';
use phpbrowscap\Browscap;
$bc = new Browscap('cache');
/** @var stdClass $current_browser */
$current_browser = $bc->getBrowser();
?>

Fácil, no?. Ok ya tenemos un stdClass en $current_browser con toda la información disponible del browser que llame a index.php

Aplicaciones?

Puedes por ejemplo tomar decisiones del tipo

<?php
$curr_br = $current_browser->Browser;
$CoolBrowsers = $curr_br == 'Chrome' || $curr_br == 'Firefox';

if ($CoolBrowsers) {
  add_asset('css', 'just-for-cool-browsers.css');
  $output = renderAdvancedLayout();
}
else {
  add_asset('css', 'just-for-bad-bad-browsers.css');
  $output = renderBasicLayout();
}
?>

También puedes detectar si están accediendo desde un móvil o una tablet, incluso saber si es Android, IOS, la version del SO, etc. Con toda esta información a resumidas cuentas puedes entregar un contenido muy preciso.

Beneficios

Estas entregando contenidos a medida, ergo necesitas entregar menos HTML, CSS, Js y las imágenes mas adecuadas al navegador. Esto finalmente se traduce en menos procesamiento del lado del servidor, lo que se entrega pesa menos KB y el navegador tarda menos en leer y renderizar todos los recursos (en especial JS).

En JS

Por ultimo me gustaría compartir un tip para poder aprovechar la detección de browsers en JS:
A ver, con js podemos detectar el browser usando un poco de expresiones regulares, pero llegar al detalle y la precisión a la que llega browscap es virtualmente imposible. Dicho esto, comentar que se puede entregar toda la información del browser detectado desde php simplemente haciendo esto:

<script type="application/javascript">
  var browser = <?php= json_encode($current_browser = $bc->getBrowser()); ?>;
  alert(browser.Browser);
  alert(browser.Version);
</script>

Hasta la próxima!