Header Ads Widget

Ticker

6/recent/ticker-posts

Cómo compré mi propiedad gracias a las API

 Milton Carranza comparte un interesante proyecto personal que dependía en gran medida de las API: comprar una casa de manera inteligente en un mercado volátil de Praga.

Introducción

Comprar una propiedad en el actual mercado inmobiliario de Praga se ha vuelto difícil, lento y costoso. Esto se debe a múltiples factores: precio , ingresos , falta de voluntad para viajar , fuerte demanda y una oferta decreciente de nuevas propiedades.

Según el índice de propiedad de Deloitte de 2018 , para tener un piso de 70 metros cuadrados en la República Checa se requieren 11,3 años de salario bruto; el más alto de Europa y solo secundado por el Reino Unido con 9,8 años y el más bajo es Bélgica con 3,7 años. Según los expertos, esta tendencia continuará y, en el mejor de los casos, tardará varios años en estabilizarse.

Objetivo

Mi objetivo era comprar la mejor propiedad que satisfaría o superaría mis necesidades sin salirse del presupuesto. Para hacerlo, aproveché varias API que recopilan datos sobre el transporte público, el tráfico, el ruido y las propiedades comerciales en sí. Esto ayudó a tomar una decisión basada en datos que respaldaría las cosas que los agentes inmobiliarios generalmente le dicen sobre el vecindario y descubrirían las cosas que no.

Mis criterios

Personalmente, hubo varios factores que influyeron en el hecho de "hacer el cambio", incluido el aumento de la tasa de interés hipotecaria y los cambios en las leyes. Mi criterio de búsqueda incluyó los siguientes atributos:

  • Precio
  • tipo de propiedad
    • Paquete o empaquetar
    • Casa
    • Plano
  • Habitable: no quería pasar por una gran reconstrucción.
  • Accesibilidad:
    • A mi lugar de trabajo
    • Tráfico
    • Buen transporte publico
  • Tranquilidad
  • Aviones
  • Ubicación

Mercado inmobiliario en la República Checa

Si visita uno de los sitios web inmobiliarios más populares de la República Checa, se verá abrumado por más de 80.000 propiedades, y no todas son interesantes. Después de hacer mi tarea y aplicar algunos filtros en los sitios web; sólo quedó el 0,58%, que todavía es un gran número por recorrer uno a uno (508). Además, tendría que revisar estos sitios todos los días y recordar las propiedades por las que ya pasó. Al final, reduje el número a 120 propiedades por mes, lo que fue una gran mejora.

¿Cómo entraron las API en la ecuación?

Tradicionalmente, cuando no existían las API, solíamos extraer páginas web para obtener la información que necesitábamos. Sin embargo, una semana después de haber terminado el raspador de páginas web perfecto, la página se actualizaría y cambiaría toda la estructura HTML; luego estaba jodido: tenía que verificar la estructura de la página HTML y modificar su código en consecuencia.

En estos días, las API funcionan por contrato, lo que significa que el proveedor de API se compromete a mantener las luces encendidas. Lo hacen al no alterar las estructuras de datos y manteniendo una API estable que no interrumpe la aplicación cliente. Para diseñar mi aplicación de filtrado de bienes raíces, las API fueron, por lo tanto, la opción elegida.

La idea de comprar una propiedad surgió hace 3 años, y al principio, como un ser humano normal, buscaba manualmente, obtenía resultados duplicados, pasaba mucho tiempo y no era muy eficiente. En julio de 2017, me di cuenta de que podía hacer llamadas asincrónicas a una de las páginas web de bienes raíces más populares, y como Newton sintiendo la manzana en su cabeza o Arquímedes tomando un baño, ese fue el momento eureka.

Recuperación de precios y datos de propiedad

En ese momento comencé a buscar llamadas de red, entendiendo las estructuras de datos y los parámetros detrás de cada carga útil. Después de dedicar un tiempo a comprender la API indocumentada y, básicamente, realizar ingeniería inversa del sitio, decidí ejecutar una recuperación y almacenamiento automatizados de propiedades cada dos horas (que podría haberse iniciado todos los días sin ningún problema). Esto resolvió el problema de recordar las propiedades que ya había visitado.

En este momento, pude registrarme con un vistazo rápido y ver casas, pisos y parcelas. Esto mejoró la situación inicial y dio mayor visibilidad al mercado, aportando el primer criterio de consideración: el precio .

Geolocalización y tiempo real de viaje

¿Cuál es la distancia más corta entre 2 puntos? Una línea recta, ¿no ?. Incorrecto. La mayoría de los sitios web de bienes raíces te dicen cosas como "tienes un restaurante a 300 metros de la propiedad" o "tienes un supermercado a 500 metros de la propiedad". Desafortunadamente, dejan de lado que debe arriesgar su vida al pasar por una carretera o conducir directamente a través de un campo de maíz para llegar a estos lugares.

Una línea recta da una falsa sensación de distancia / tiempo. Lo que quieres saber es cuánto tiempo me tomaría llegar allí en transporte público o en coche. Para encontrar distancias reales a ubicaciones cercanas, la API de Google Maps vino al rescate. Por lo general, cada propiedad viene con coordenadas geográficas, y desde allí, con una simple llamada a la API, puede calcular el tiempo de viaje y la distancia para conducir desde cada propiedad hasta su lugar de trabajo, centro de la ciudad o lugar de interés.

Usando tales datos, pude agregar filtros importantes a la investigación:

  • El tiempo de viaje de casas y parcelas debe ser de menos de 30 minutos y no más de 25 kilómetros desde mi punto de interés.
  • El tiempo de viaje en pisos debe ser de menos de 20 minutos y no más de 10 kilómetros desde mi punto de interés.
Con el aumento de precios de la API de Google Maps, los desarrolladores están recurriendo a estas 5 poderosas alternativas

Datos de transporte público

¿Quién usa un automóvil para ir al trabajo? No mucha gente que vive en una ciudad como Praga. Por lo tanto, descubrir los datos del transporte público fue un criterio importante para mí. Esto le dio otro filtro importante a mi investigación:

  • El tiempo de viaje de Casas y Parcelas debe ser inferior a 50 minutos.
  • El tiempo de viaje en pisos debe ser menor a 35 minutos y no más de 10 kilómetros desde mi punto de interés.

Una vez más, Google Maps vino al rescate. Reciclé las coordenadas geográficas y solicité tiempo de viaje en transporte público desde las propiedades hasta puntos de interés particulares. Hasta ahora, había mejorado los datos en dos dimensiones, descubriendo un valor oculto que originalmente no se podía consultar.

Para cada propiedad en cuestión, se disparó una llamada como esta:

$ curl https://maps.googleapis.com/maps/api/directions/json?origin=&destination=&mode=transit&key=

Aquí estamos interesados ​​en los valores de distancia y duración devueltos por la API. Estos valores se toman de una tabla de horarios, por lo que no están influenciados por el tráfico (en el caso de los autobuses).

Tráfico

Después de encontrar candidatos potenciales, me di cuenta de que necesitaba profundizar en ciertos aspectos. Por ejemplo, cualquier buscador de conexión de viaje público puede responder con el horario del punto A al punto B, pero ¿qué pasa si estás tomando un autobús y resulta que es la hora pico? Estas atorado.

Los tiempos de viaje en transporte público (autobús, tranvía) se ven afectados por el tráfico, pero ¿cómo lo confirmamos? ¡De nuevo Google Maps! En cuanto a la predicción del tráfico, la API es muy precisa. Una simple llamada a la API cada 15 minutos devolverá mucha información sobre los tiempos de espera en el tráfico. En mi caso particular, algunos datos desmentían las afirmaciones de los agentes inmobiliarios o las confirmaban.

Por ejemplo, una afirmación de un agente inmobiliario que el autobús tardaría 9 minutos en llegar a un punto de interés resultó ser cierta en la mayoría de los casos. Mientras revisaba la API de tráfico, encontré un tiempo de viaje de 15 minutos durante el tráfico pesado, que no es el fin del mundo.

Para cada propiedad en cuestión, se activó una solicitud de API como esta:

$ curl https://maps.googleapis.com/maps/api/directions/json?origin=&destination=&mode=driving&key=

En este caso, estamos interesados ​​en los valores de distancia y duración devueltos por la API. Como estos resultados se dan en tiempo real, variarán según la hora del día en que los recupere. Desafortunadamente, en este momento no puede obtener datos de una fecha pasada.

Aviones y contaminación acústica

¿Alguna vez ha tenido la sensación de que le gustaba mucho algo, hasta que descubrió algo horrible al respecto? Así me sentí después de decir "este es el indicado", solo para que un amigo me dijera rápidamente "ten cuidado, esa propiedad puede estar cerca de la pista de un avión".

Casi lo dejo caer; luego recordé algunas páginas web que ofrecen información sobre la contaminación acústica . Después de eso, encontré otra fuente que proporcionó la elevación de la aeronave. El ruido producido por una aeronave viene dado aproximadamente por su altura y tamaño, por lo que derivé un modelo simple para ingresar la elevación de la aeronave, que asumió una aeronave de tamaño mediano, para generar el nivel de ruido en decibelios.

Tenía un modelo, pero todavía no tenía los datos. Al igual que con las propiedades, comencé a buscar algunas llamadas de red y descubrí la API de la página web, los campos crípticos, la API no documentada, etc. Después de analizar los datos con el modelo, descubrí que cuando llegan aviones, vuelan en promedio. 750 metros sobre la propiedad, lo que hace que el sonido sea apenas audible.

Algoritmo de alto nivel:

1. Get Flight information.
    a. Extract Aircraft altitude
    b. Adjust altitude base on the property altitude, as may be given in meters or feet above sea level.
    c. Is the aircraft ascending or descending?

2. Compare with [Aircraft Noise level chart](https://www.nats.aero/environment/aircraft-noise/)
    a. Consider height
    b. Consider if the aircraft is ascending or descending
    c. Assume a middle sized aircraft

3. Get the noise level
    a.Interpolate the values if applicable

Llamada a la API para recuperar información de la aeronave en vivo:

$ curl ‘https://opensky-network.org/api/states/all?lamin=45.8389&lomin=5.9962&lamax=47.8229&lomax=10.5226

De la salida, estamos interesados ​​en el elemento con índice 7; en cada una de las matrices anidadas, que contiene la altitud de la aeronave.

Buenas prácticas en torno a las API

En estos días, las API están impulsando negocios, capacidades, transformación digital, entre otras iniciativas. Por ello, deben ser atendidos como ciudadanos de primer nivel , no solo desde el punto de vista técnico, sino desde la gestión de producto , documentación , marketing , seguridad , experiencia de usuario / desarrollador (sí, los desarrolladores también tenemos sentimientos), Entre muchos otros.

De las API utilizadas aquí, no se controló el acceso a 2 de ellas. No había mecanismos de seguridad encima de ellos, por lo tanto, podría acceder a ellos y, potencialmente, abusar de ellos. En el caso de las API públicas , se deben implementar los mecanismos adecuados de limitación de velocidad , cuota, estrangulamiento, HTTPS en todas partes, validación, auditoría, monitoreo y autenticación y autorización adecuados.

Si está produciendo su API, asegúrese de documentarlo bien. Hay un artículo llamado: Por qué los desarrolladores odian su API , en el que la documentación figuraba como el problema de API número uno. Hay muchas opciones para los formatos de descripción de API, es decir: swagger, API Blueprint, RAML, WADL, etc. para ayudar en este proceso.

Con respecto a la automatización , siempre hay mucho trabajo manual y repetitivo en torno al desarrollo de software (implementaciones, compilaciones, pruebas, etc.) en el que podríamos permitirnos invertir algo de tiempo en automatizarlo. La automatización dará sus frutos a largo plazo. Recuerde el núcleo de cualquier automatización: procesos claros y bien establecidos.

En estos días, todos los datos necesarios para tomar una decisión informada o basada en datos están disponibles, y tenga en cuenta: los números pueden decirle cosas increíbles, pero si no se siente cómodo en la propiedad, no hay energía en la tierra. eso cambiará eso.

Publicar un comentario

0 Comentarios