Direcciones IP de Google APPs

En más de una ocasión es posible que queramos aceptar el tráfico que viene de google, ya sea por los correos que envía como por sus aplicaciones. En mi caso para ciertos usuarios de la red estoy bloqueando todo el tráfico excepto a unas aplicaciones web y las aplicaciones de Google.

La lista de direcciones IP actualizadas de Google a Noviembre de 2015 son las siguientes :

  • ip4:64.18.0.0/20
  • ip4:64.233.160.0/19
  • ip4:66.102.0.0/20
  • ip4:66.249.80.0/20
  • ip4:72.14.192.0/18
  • ip4:74.125.0.0/16
  • ip4:108.177.8.0/21
  • ip4:173.194.0.0/16
  • ip4:207.126.144.0/20
  • ip4:209.85.128.0/17
  • ip4:216.58.192.0/19
  • ip4:216.239.32.0/19
  • ip6:2001:4860:4000::/36
  • ip6:2404:6800:4000::/36
  • ip6:2607:f8b0:4000::/36
  • ip6:2800:3f0:4000::/36
  • ip6:2a00:1450:4000::/36
  • ip6:2c0f:fb50:4000::/36

Con esta información es mucho más sencillo poder manejar el tráfico hacia las aplicaciones.

Si quisieramos filtrar solo algunas de las aplicaciones, nos podemos ayudar del comando dig de linux.

ctala@CTMGroupSpA:~$ dig gmail.com

; <<>> DiG 9.9.5-3ubuntu0.5-Ubuntu <<>> gmail.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11676
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;gmail.com.            IN    A

;; ANSWER SECTION:
gmail.com.        73    IN    A    64.233.190.17
gmail.com.        73    IN    A    64.233.190.18
gmail.com.        73    IN    A    64.233.190.83
gmail.com.        73    IN    A    64.233.190.19

;; Query time: 4 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Sat Nov 07 11:00:02 CLT 2015
;; MSG SIZE  rcvd: 102

Y podemos ver en el «Answer Section» Las direcciones Ips que tiene en este caso de ejemplo el servidor de GMail.

👉 ¿Te gustó este contenido? Hay más esperando por ti.

Cada semana, comparto aprendizajes y reflexiones que no encontrarás en ningún otro lugar. ¡Únete a la comunidad de más de 9,000 emprendedores que ya están avanzando!

¿ Desarrollar o no Desarrollar? He ahí el dilema

En que momento debemos desarrollar un software o simplemente usar una solución ya hecha anteriormente por la comunidad.

Recuerdo ya que hace muchos años mi primer blog fue programado 100% por mi, lo desarrollé en php siguiendo un tutorial que había en un libro que compré. Cuanto me arrepentí de haberlo hecho. Un par de años después de tenerlo funcionando un robot lo llenó de comentarios y la BdD colapsó, ni si quiera me di la oportunidad de recuperar el contenido que tenía en él. Estaba demasiado molesto…

Creo que poco antes de desarrollar este CMS ( la verdad ni si quiera se puede llamar así ) pensé en usar un sistema que ya existiera, pero en ese momento ganó el sentimiento de pertenencia y no la lógica por lo que terminé desarrollándolo. Si tuviera que elegir HOY si desarrollar un CMS para blogging personal ni si quiera pensaría en algo distinto a wordpress.

¿ Entonces cuando es necesario o no desarrollar un software ?

Leer más

¿ Es necesario un framework ? Simplificando el desarrollo de software

Esta es una discusión que he tenido en bastantes ocasiones con pares y alumnos. La idea de este post es explicar un poco lo que se ha logrado con todas estas discusiones.

En muchos de los casos durante la universidad no hemos tenido la necesidad de desarrollar un software complejo, un software el cual deba de adaptarse a las necesidades del entorno, las modificaciones de ciertas librerías o simplemente al tiempo. La semana pasada le di el ejemplo a un alumno sobre codeignigter, en mi caso fue el primer framework que utilicé para desarrollo web utilizando php y actualmente ( no se si vaya a cambiar pronto) ya no es compatible con las nuevas versiones de php. Esto le puede pasar a cualquier desarrolo, la cantidad de actualizaciones, parches y modificaciones que salen anualmente son muchas más de las que podemos contar. Si esto le pasa a una aplicación que es mantenida por cientos de personas en la comunidad .. ¿Que nos espera a una aplicación desarrollada por nosotros ?

Ojo, esto no es para asustar a nadie, es simplemente para generar conciencia de lo que podría a pasar si no prevenimos.

Es solo cosa de mirar algunas de las aplicaciones más usadas del momento, como lo es Flickr y Facebook, ambas son en base a php y la verdad no creo que vayan a dejar de ser compatibles con sus nuevas versiones o no estén preparados para situaciones como esa. Deben de tener docenas si no cientos de desarrolladores con acceso al código que ocupan y tienen que además tener un estándar que seguir para publicar su código o simplemente para entender el que ya está escrito.

Lo bueno es que ya muchos desarrolladores han lidiado con los mismos problemas a los cuales podríamos enfrentarnos y han desarrollado frameworks en los cuales se han recopilado los conocimientos de muchos desarrolladores para hacer nuestras aplicaciones aún más fácil de realizar.

Ok, podemos decir que los frameworks están para hacer que un desarrollo complejo se convierta en un desarrollo simple. Es posible que para aplicaciones sencillas si agreguemos una complejidad innecesaria al implementar un framework, pero este post se basa en aplicaciones un poco más complejas, esas en las que se requiere ya de un equipo, en las que usaremos manejo de versiones, en las que dividiremos el código en hitos y cada uno de ellos se convertirá en un entregable de un proyecto.

Ok, ¿ pero que es un framework ?

Wikipedia : «A software framework is a universal, reusable software environment that provides particular functionality as part of a larger software platform to facilitate development of software applications, products and solutions. «

Personalmente me gusta el término de «un esqueleto que incluye lo básico para generar una aplicación compleja sin la complejidad requerida para realizarla«.

Si partimos de lo básico, un framework separa la lógica de las vistas, ordenando la forma en que desarrollaremos. De ahora en adelante hablaré un poco del Modelo Vista Controlador ( MVC ). En este modelo el framework provee una clara separación en 3 capas, y la posibilidad de interactuar entre ellas. Teniendo estas separaciones será muy difícil para nosotros desarrollar de manera inadecuada, aunque he visto casos que al no entender el concepto igual logran hacerlo pero se dan cuenta rápidamente que hay algo mal.

En general los frameworks se encargarán de conectar a la Base de datos por nosotros,  se encargan que los datos sean accesibles por las vistas y algunos incluso nos facilitan la generación de código CRUD ( Create Read Update Delete ) para poner nuestra aplicación en marcha lo antes posible. Si tuvieramos que implementar esto por nuestra cuenta ( créanme tuve que hacerlo hace años atrás ) nos demoraríamos mucho tiempo y agregaríamos esa complejidad al desarrollo que tanto tratamos de ignorar. Teniendo esto en cuenta nosotros o nuestro equipo de puede enfocar simplemente en el desarrollo y éxito de la aplicación olvidándonos de desarrollo que cientos de personas ya han hecho por nosotros.

Hay dos frases que me gusta recalcar cuando hablamos de un framework :

  1. No reinventar la rueda
  2. Enanos parados sobre los hombros de gigantes. ( nanos gigantum humeris insidentes )

Ambas se refieren a lo lejos que podemos llegar basándonos en conocimiento ya escrito. ¡ Imagínense que sería de la física si tuviéramos que descubrir la ley de gravedad por cada científico que quisiera explicar por que una manzana se cae al piso ! Ahora piensa nuevamente por que quieres desarrollar algo que ya cientos de personas lo han hecho antes que tu, ¿ ahora suena más ridículo no ?

¿ Como elegir un framework ?

Les recomiendo que cumpla la mayoría de los puntos a continuación.

  • Que sea sencillo de utilizar. La idea es simplificar, no hacer más complejo el desarrollo.
  • Mejore el rendimiento de la aplicación. Muchos framework por ejemplo usan caché para mejor rendimiento.
  • Asegure seguridad. Esto es muy importante y es una de las mejores razones de usar el framework.
  • Separe el lenguaje de las vistas.
  • Ojalá sea Orientada a Objetos !
  • Habilidad de poder configurar
  • Que tenga buena documentación.
  • Que tenga una buena comunidad. La comunidad es la que te ayudará cuando tengas problemas.

 

Ok, espero que con todo lo anterior ya puedas decir que un framework si es necesario no importando el lenguaje que utilizarás. Yo hace un tiempo que uso Yii y me he estado portando a Yii2, cumple con todas las características que dije anteriormente y al parecer se ajusta muy bien a mi mindset, ahora la pregunta es ¿ cual framework usarás tu ?.

 

 

👉 ¿Te gustó este contenido? Hay más esperando por ti.

Cada semana, comparto aprendizajes y reflexiones que no encontrarás en ningún otro lugar. ¡Únete a la comunidad de más de 9,000 emprendedores que ya están avanzando!

#Transbank y Servidores fuera de #Chile para los #eCommerce

Ya somos muchos los que hemos estado teniendo problemas con conexión de nuestro eCommerce a Transbank. ¿ A que se debe esto ?

Desde ya hace unas semanas, un par antes del #CyberDay en Chile, han habido dificultades con las conexiones de los sitios web a transbank.  Ahora existe un comunicado «Algo más oficial» para los que tenemos nuestros propios sitios eCommerce en nuestros propios servidores.

Por políticas de seguridad han bloqueado ciertos IPs del extranjero ( no estoy seguro que sean todos ) y esto es sencillo de arreglar pidiendo que agreguen tu IP a un whitelist para que pueda generar las conexiones en el servidor de producción. Esto se debe a un incremento en la seguridad por parte de Transbank para evitar posibles problemas.

Leer más