Mantente en contacto con nosotros a través de Facebook. Sólo presiona el botón Me gusta

viernes, 30 de mayo de 2014

API gratuita de geolocalización por IP

Hace unos días encontré una web que ofrece gratis el servicio online de consultas de IP para nuestras aplicaciones, lo bueno de esto es que podemos pasar un par de parámetros para obtener la información de la IP que le pasemos, lo malo es que no podemos efectuar más de 10000 consultas por hora, igualmente en muchos casos no vamos a tener que realizar tantas peticiones al servidor y no creo que lleguemos a este límite salvo en contadas ocasiones como por ejemplo si administramos un portal con miles o millones de visitas por día, claro que para eso existen otras soluciones profesionales pero este servicio esta pensado para pequeños proyectos,

Nota de un usuario (El servicio esta caído, no obstante la página del proyecto sigue funcionando ahí pueden descargar los fuentes)

El servicio usa las bases GeoLite de Maxmind las cuales pueden descargarse gratuitamente desde el sitio en cuestión, y la página del proyecto esta alojada en
GitHub

Implementación:

con solo pasarle la ip o el nombre de host nos devuelve los datos referentes a la ip en cuestión

uso:
freegeoip.net/{format}/{ip_or_hostname}

el parámetro {format} nos permite pasarle cualquiera de estos parámetros ( csv, xml, json )

Para aplicarlo en PHP y recuperarlo con JSON
podemos hacerlo de la sig. manera;

(Usé la IP de Facebook para el ejemplo, entiéndase que uds. deberan colocar cualquier IP) 

Este script nos va a devolver un Array de objetos como este:


stdClass Object
(
    [ip] => 173.252.120.113
    [country_code] => US
    [country_name] => United States
    [region_code] => CA
    [region_name] => California
    [city] => Menlo Park
    [zipcode] => 94025
    [latitude] => 37.459
    [longitude] => -122.1781
    [metro_code] => 807
    [area_code] => 650
)

Script:

<?php
//10.000 peticiones por hora
$ip="173.252.120.113";
$r=json_decode(file_get_contents("https://freegeoip.net/json/$ip"));
print_r($r);
?>

Web:https://freegeoip.net/
Código fuente:https://github.com/fiorix/freegeoip

Manejando sesiones en PHP (nivel básico)

Usar sesiones en PHP es de lo más sencillo que hay, siempre recomiendo usarlas en aplicaciones en donde se tenga que mantener una serie de valores constantes al pasar de una página a otra como es el caso típico de las sesiones de usuario,

he visto aplicaciones en donde se pasan los valores de inicio de sesión a través de cookies, o a través de la barra de direcciones con un parámetro del tipo: script.php?id=loquesea , esto es un espanto, una mala práctica de programación, y un riesgo de seguridad importante que compromete toda la aplicación inclusive al entorno donde se esta ejecutando, pero bueno, volviendo al tema de las sesiones, es una buena práctica mantener los datos de usuario en el servidor y no en forma local a través de cookies sino a través de sesiones,

no es el caso de este artículo pero aun es mucho más seguro guardar las sesiones en una base de datos, pero bueno no quiero irme más allá de la finalidad de hacer un "HOWTO" muy sencillo.

Si necesitáramos realizar una aplicación robusta, tendremos que tener en cuenta el uso de https y recurrir a algún framework como CodeIgniter que ya traen un sistema de manejo robusto de sesiones y nos abstraen de ciertas cuestiones técnicas que implican mayor conocimiento sobre seguridad en sesiones,

Básicamente:

para empezar a usar las sesiones debemos invocar a la función session_start();

para asignar un valor a la variable de sesión simplemente hacemos algo como:
$_SESSION ['usuario'] = 'MiUsuario';

Notese: que los valores son almacenados en un Array $_SESSION

para borrar una variable de sesión podemos hacerlo con unset()
unset($_SESSION['usuario']);

y para destruir una sesión completa , esto es como hacer un reset usamos:
session_destroy (); 

Ej.

<?php
// Si no existe crea una sesión "usuario"
session_start();
if (!isset($_SESSION['usuario'])){$sesion = "invitado";$_SESSION ['usuario'] = 'MiUsuario';}else{$sesion=$_SESSION ['usuario'];}
echo $sesion;
?>

<?php
// Si esta seteada la sesión "usuario" la destruye
session_start();
if (!isset($_SESSION['usuario'])){exit;}
session_destroy ();
?>

les recomiendo visitar el manual de PHP:
Funciones de sesión: http://ar2.php.net/manual/es/ref.session.php

en esta web se explayan mejor sobre la seguridad en las sesiones:
https://www.tarlogic.com/como-generar-sesiones-en-php-de-forma-segura

Por razones de tiempo,en este momento no puedo subir una aplicación de muestra, pero les sugiero seguirme en Facebook o Twitter (personal), Twitter (TallerdeScripts) donde iré subiendo algunos programas para que puedan probar.



martes, 20 de mayo de 2014

Cargar tabla MySQL desde archivo csv con un script BASH

Nuevamente un código auto-explicado para cargar una tabla desde un archivo .csv alojado en un servidor de Internet

usese con precaución, cualquier dato en la base de datos será destruido y alimentado desde el archivo.csv

#!/bin/bash
wget http://pagina/archivo.csv
mysql -u MIUSUARIO -pMICLAVE NOMBREBASEDATOS --local-infile << EOF USE NOMBREBASEDATOS; TRUNCATE TABLE MITABLA; LOAD DATA LOCAL INFILE 'archivo.csv' INTO TABLE MITABLA FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' (campo1,campo2,campo3,...); EOF

sábado, 26 de abril de 2014

Promocionar mi empresa con Google AdWords

Para el que no tiene la más remota idea sobre AdWords, a grandes rasgos
AdWords es una plataforma para anunciantes que brinda Google para promocionar sitios web en ubicaciones destacadas en los resultados de búsquedas o como anuncios contextuales en sitios webs, con soporte y orientación a diferentes dispositivos, tablets, móviles, Pc's ...

Los costos para iniciar una campaña en esta plataforma son variables y siempre va a depender de lo que uno este dispuesto a invertir, y aquí comienza la historia...

Para empezar a usar AdWords hay que abrir una cuenta (hasta acá es gratis)  para activar una campaña tenemos que optar por un método de pago, existen dos métodos: prepago y postpago, para hacer una explicación sencilla, en el primer método (prepago _recomendado_) se paga una cantidad fija y en el segundo se paga un monto variable según la actividad de la campaña y este monto va a fluctuar según la cantidad de clics que tuvieron nuestros avisos, es un poco arriesgado iniciar una campaña la cual no sabemos que gastos generaremos y se nos puede ir de las manos abultando los costos a cifras que nos puede dejar espasmados, este método lisa y llanamente no es recomendable.

 Al día de la fecha el costo para iniciar una campaña con AdWords en Argentina en el caso del método Prepago puede ser de $50AR iniciales .

Voy a usar una frase para tratar de acotar la idea, de un viejo concepto de lo barato sale caro, y si querés ganar tenés que invertir, esta regla de oro se cumple con la siguiente afirmación:

 "La inversión y la estrategia de la campaña van a determinar un caso de éxito o un rotundo fracaso"

 Cuando armo una campaña, evalúo el presupuesto a invertir, ya que no va a ser lo mismo promocionar una tienda de mascotas que una cadena de electrodomésticos, cada negocio tiene singularidades y presupuestos acorde a las actividades que realicen.

Es fundamental tener un plan de negocio o una estrategia infundada en gastos iniciales y tomarlos permitaseme denominarlo capital de riesgo, uno nunca va a saber si lo invertido tendrá su retorno en los primeros meses, usualmente para determinar si una campaña va a dar sus frutos, y si sus clics van a convertirse en ventas (conversiones) hay que tomar métricas, pero sin tener una estadística real basada en una linea de tiempo es definitivamente una suerte de azar, y supongo que nadie que quiera hacer negocios, le guste malgastar su dinero en algo tan azaroso como un juego de loterías transformando una estrategia de negocios en un tragamonedas virtual,
Si se trabaja concienzudamente en la campaña con un capital inicial coherente al rubro del anuncio a promocionar, el riesgo es mínimo y las posibilidades de retorno suelen ser favorables

Un estudio serio de mercado, contempla esto, y un especialista en SEO y SEM tiene en cuenta estos detalles, si Ud. que esta  leyendo mi artículo tiene una empresa no dude en delegar el trabajo a los que saben sobre mercadeo en la web y estrategias de posicionamiento en motores de búsqueda ya que para obtener resultados como en todos los ordenes de la vida hay que invertir, también en la inversión existe competencia de la cual tendrá que hacer su nicho para no quedar marginado de otros que hacen lo mismo que Ud.

El tema tiene muchos ribetes y tecnicismos que abarcarían unas cuantas páginas de un blog, tómese este artículo como una entradilla para tener unas primeras nociones sobre esta fabulosa herramienta de marketing, que puede hacer que su negocio despegue quizá con algo que jamas se le hubiera ocurrido implementar en su empresa.




martes, 22 de abril de 2014

Impresoras 3D

La ciencia avanza a pasos agigantados, y entre estos avances están las impresoras 3D que nos permiten construir variados tipos de objetos, esta tecnología ya tiene contemplada diferentes ramas como la medicina, la gastronomía, la arquitectura, el arte, y casi todo lo que podamos imaginar.


lunes, 21 de abril de 2014

Detectar si Javascript esta habilitado

con este código vamos a poder verificar si esta habilitado Javascript, para probarlo hay que deshabilitar Javascript en el navegador.

<script language="javascript">
<!--
alert("Javascript Habilitado!");
//-->
</script>
<noscript>Javascript Deshabilitado!</noscript>

lunes, 31 de marzo de 2014

No es un título inventado por mí, es la traducción literal del artículo publicado en Linux.com sobre los argumentos que usan muchos redactores al hablar a favor de Windows argumentando el por qué Windows es mejor que Linux.

El creador de este articulo es Bryan Lunduke, un columnista de Linux.com
que en forma irónica responde a algunos de sus colegas que esgrimen esos argumentos ya arcaicos en defensa del sistema operativo de la ventanita.
  

Parece que no se puede tirar una piedra en el Internet sin golpear un artículo que defiende la superioridad de Windows sobre Linux. Con títulos como "Cinco razones por las que prefiero ejecutar Windows 8 de Linux ", estos artículos son centavos por docena.

A decir verdad , he escrito artículos en los últimos años de " ¿Por qué X es mejor que Y"  (casi siempre el argumento es a favor de la superioridad de los sistemas basados ​​en Linux) . 
 

¿Esta suma de artículos son un poco inútiles? Claro. Es como cantarle al coro , por así decirlo. Pero son muy divertidos de leer. También me he dado cuenta de algo muy interesante acerca de este tipo de artículos ...  
 
Cada artículo que he leído, en los últimos tiempos, con el argumento de que "Windows es mejor que Linux " hace que el autor suene un poco, por falta de una palabra mejor, como un gran bobo. Un furioso bobo enajenado. Los puntos que los escritores de estos artículos utilizan para respaldar sus hipótesis tienden a ser simplemente tonterías malintencionadas. Realmente están tocando fondo, en busca de alguna posible evidencia -no importa lo ridículo- para demostrar la superioridad de Windows sobre Linux.

[" Hey , Bryan ! Tengo una idea. ¿Por qué no tratas de insultar a un grupo de talentosos periodistas de tecnología, algunos de los cuales son tus amigos, llamándolos 'grupo de bobos enajenados' ? " Gran idea , personaje que acabo de crear con el único fin de hacerme a mí mismo una pregunta hipotética. Dalo por hecho !]

Aquí . Te voy a enseñar de lo que estoy hablando. Lo que sigue es la primera razón que se da, por qué Windows es superior, en un reciente artículo de ZDNet por David Gewirtz :

1 . "Razón #1 : Tan pronto como usted menciona una distro, todos los fanboys se vuelven locos alegando que Ud. ha tomado la decisión equivocada."

No acabas de alucinar.

La razón #1 para no usar Linux, declarado por un escritor de tecnología de ZDNet y CNN, es que otras personas usan Linux también. Algunas de esas personas tienen opiniones. Y usted, con su evidente incapacidad para existir dentro de un universo con otras personas en ella, simplemente se pondría en  posición fetal y abandonaría el uso de computadoras por completo.

2 . "Windows tiene más software. "

Uno de los mantras comunes en la causa contra Linux , sobre todo en el sistema de escritorio, es que Windows simplemente tiene más software disponible que Linux. De hecho, ni siquiera creo que se pueda usar la frase "Windows es mejor que Linux" en un artículo sin sacar a relucir este argumento viejo y cansado .

Esto por lo general se apoya en un ejemplo de una importante pieza de software que se ejecuta en Linux, como Adobe Photoshop.

Sólo hay un problema con ese argumento: Es que no es del todo cierto. Si desea ejecutar Adobe Photoshop (o la gran mayoría de software de Windows) ... se puede. Con Wine.

Claro, usted podría tener el argumento de que no todo el software de Windows se ejecuta con perfección en Wine en Linux. Entonces otra vez... yo podría hacer el mismo argumento sobre el software de Windows que no siempre corre bien en el propio Windows. Lo cual sería un punto mucho más condenatorio para hacer . Y, porque no soy el tipo que patea a un chico cuando esta caído, voy a seguir adelante ...

3 . "Windows tiene más soporte comercial."

Éste se sacó bastante a menudo.

La idea aquí es que las personas y las empresas quieren apoyo profesional - la capacidad de tomar el teléfono y llamar a alguien cuando tienen un problema. Esto es, obviamente, muy cuestionable. Especialmente para las grandes empresas que tienen trabajo critico en sus computadoras.

Cuando escribo esto, siento como que el redactor ni siquiera estaba tratando de serlo. Este argumento es refutado inmediatamente por una rápida búsqueda en Google de "apoyo a las empresas Linux" y comprobaría el número de opciones en la primera página de resultados por sí solos. Varias compañías de alto perfil ofrecen diversas opciones de asistencia para servidores y equipos de escritorio Linux.

En otras palabras, "Hay montones y montones de soporte comercial para Linux".

4 . "Windows está preinstalado." 


Ah , ahora aquí es un punto válido. Al menos sería, si la instalación de sistemas operativos fueran difíciles en este momento de la historia humana. También se asume que nadie ha tenido que volver a instalar Windows, que, estoy bastante seguro de que es una tarea que se ha hecho por lo menos 50 veces por cada hombre, mujer y niño en el planeta Tierra (en promedio) .

Además ... la lógica aquí es "Usted ya tiene esta cosa... así que no te preocupes por esa otra cosa que podría ser mejor. Puede comprar también algunas nuevas versiones de lo que tiene. Pero, en serio. No pienses en otras cosas mejores , " .

5 . "Windows es fácil de usar. "

El núcleo del argumento aquí por lo general gira en torno a la forma en que es imposible utilizar Linux sin tener que gastar todo el día inclinado sobre el terminal escribiendo comandos arcaicos en Emacs. Lo que esta completamente equivocado (Las distribuciones Linux de escritorio tienden a ser increíblemente fáciles de usar hoy en día) , y también es un argumento un poquito insultante para el lector.

Yo podría seguir y seguir con esto, pero creo que el punto se ha dado. De alguna manera se siente como que todos estos articulos de "X Razones de Windows es mejor que Linux" son regurgitadas versiones de artículos similares escritos en 1998 . Y, al final, simplemente hacen ver a los escritores como que estan mal informados sobre Linux.

También bobos. Esto hace que se vean un poco bobos.
 
Pueden ver el artículo original (en inglés) desde https://www.linux.com/news/software/applications/768257-why-arguing-that-windows-is-better-than-linux-makes-you-look-silly

esta es una síntesis de la traducción del texto original.