Flutter Wireless – Arduino y Radio Frecuencia hecho fácil

Hacer proyectos con arduino es sencillo, pero a mi personalmente siempre se me ocurre enviar toda la información de los sensores a un servidor cada minuto para luego desplegar en un página web una gráfica con los datos.

Lo difícil de hacer eso es sacar la información del arduino y llevarla al servidor. Ethernet, WiFi, Bluetooth, Radio Frecuencia, todas son opciones válidas pero algunas son más costosas que otras. Por ejemplo, el shield de arduino para ethernet es más costoso que una placa Arduino UNO. Por otro lado, la opción más barata, radio frecuencia, es la que requiere mayor complejidad en la implementación porque al final solo tienes señalas de RF en el aire que deben ser captadas por el receptor en la frecuencia y momento apropiada, mucho enredo.

Flutter Wireless es un proyecto opensource que ofrece el precio económico de la radio frecuencia con la facilidad y “seguridad” del Ethernet. Es un dispositivo arduino que incorpora encriptación y un protocolo para enviar y recibir datos. Se explica mejor en el video:

Lo único malo que tiene es que su lanzamiento será hasta abril del 2014 por lo que toca esperar.

Para más información sobre Flutter Wireless ir a su sitio web.

Arduino temperatura humedad

Midiendo temperatura y humedad con arduino

Hace tiempo que tenía esta guía pendiente. En la oficina configuré un arduino UNO con un sensor de humedad y temperatura RHT03 para responder a la pregunta ¿por qué tengo tanto calor en este momento?

Materiales

  • Arduino UNO
  • Sensor RHT03, también conocido como DHT-22

    Sensor humedad y temperatura

    Sensor humedad y temperatura

  • 6 cables para conexiones
  • Resistencia 4.7K
  • Protoboard

Conexión

El sensor tiene 4 pines. Visto de frente, de izquierda a derecha

  1. VCC (3 a 5V)
  2. Salida de datos
  3. No usar
  4. GND

Por lo que la conexión es sencilla:

  • VCC a 5V del arduino.
  • GND a GND
  • Salida de datos al pin digital 7 en este caso, puede usarse otro pin.
  • Conectar además la resistencia de “Salida de datos” a VCC

Código

Para leer los valores del sensor se requiere una librería. En mi caso utilicé la que sirve para DHT-11 y DHT-22 que se encuentra al final de DHTLib

Instalar la librería

Se crea una nueva carpeta en el directorio de libraries de arduino /usr/share/arduino/libraries en mi caso. Se copian los archivos dht.h y dht.cpp en el directorio.

Sketch

El programa lee la salida del sensor cada 10 segundos. La frecuencia mínima de lectura es de 2 segundos para los sensores DHT. En el loop se despliega el resultado de temperatura y humedad que se obtuvo del sensor.

Para ver el resultado yo utilizo screen que muestra la salida del serial de arduino.

$screen /dev/ttyACM0 115200
captura pantalla temperatura y humedad con arduino dht

captura pantalla temperatura y humedad con arduino dht

Cualquier duda o comentario son bienvenidos.

Openvz sin bash history al usar vzctl enter

OpenVZ Linux Containers logo

OpenVZ Linux Containers

Todos los comandos que se ejecutan en la terminal de un container al ingresar mediante vzctl enter terminan en /dev/null por lo que no es posible encontrarlos luego en el history. Para solucionarlo agrega al archivo ~/.bash_profile

HISTFILE=~/.bash_history

Esto va a corregir la variable HISTFILE cada vez que se ingresa a un container mediante vzctl enter

facebook like open source

Las herramientas de software que usan tus redes sociales favoritas | Facebook

Cada vez que iniciamos un nuevo proyecto de software nos preguntamos que herramientas usar para asegurarnos que sea exitoso. Las redes sociales más populares del momento tienen mucho en común, además de millones de usuarios, son adictivas para muchos y ciertamente exitosas, algo que no tienen en común es el conjunto de tecnologías que utilizan.

A continuación, la primera parte de un recorrido por algunos de los lenguajes, frameworks y software de servidores que se usan para mantener corriendo los sitios de redes sociales que usamos a diario.

Facebook

Iniciemos por el gigante de las redes sociales Facebook. Antes de entrar en detalle debemos recordar que Mark Zuckerberg comenzó a desarrollar facebook en enero del 2004, que para efectos de tecnologías y frameworks, muchas cosas han cambiado.

PHP, Memcache y MySQL

Lenguaje de programación PHP, o será C++? la verdad, el código está escrito en PHP pero se ejecuta el resultado de compilar C++. La base de datos es la que los geeks amamos (un poco menos luego de que la adquiriera Oracle), principalmente por su velocidad. Para manejar objetos distribuidos en memoria y mejorar el rendimiento incluyen Memcached a la fórmula.

Al respecto de MySQL, no utilizan nunca un join en producción por dos razones, consumen mucho CPU y la información está distribuida.

Referencias

HipHop for PHP

PHP no es lo más rápido del planeta, aunque algunos piensen que es la pomada canaria del software en la actualidadEn Facebook para poder incrementar el rendimiento de PHP, en lugar de escribir las funciones críticas en C++ como extensiones de php y para asegurarse de mantener el código altamente accesible a los ingenieros (PHP es realmente fácil de aprender, en comparación con C++) decidieron entonces crear una herramienta que reescribiera el código PHP a C++.

El proceso de pasar de PHP a C++ requería compilar el código usando gcc y con esto se perdía la capacidad de programar -> ejecutar que se tiene con PHP. Por lo que HipHop evolucionó de manera que el código lo convierte a bytecode ejecutado en una máquina virtual.

Para mejorar aún más el rendimiento, el bytecode se transforma a lenguaje máquina nativo.

Referencia

 Varnish

Además de usar memcache para mejorar la respuesta de la base de datos, utilizan Varnish. Es un acelerador de aplicación web o  acelerador de HTTP con balance de carga, soporte de Gzip, entre otras características. En Facebook se utiliza principalmente para las fotografías.

Referencia

Hackathons

hackathon en facebook

Facebook además de hacer un uso exhaustivo de herramientas de software libre, y de contribuir a ellas, mantiene una cultura de hackathons que usa para desarrollar nuevas funcionalidades para los usuarios. Cosas como el chat de facebook o el link de eventos en tu perfil se han desarrollado durante un hackathon.

Para conocer la lista completa de herramientas para desarrolladores y del software que utiliza la red social Facebook, visita https://developers.facebook.com/opensource/

What are great examples of viral UX/UI design patterns?

Answer by Stephan Orme:

Note! An expanded version of this post is now available as a downloadable pdf which you can get here: http://worklogistics.com/category/design-patterns/virality/

How this Post is Organized

The following is part of a larger product virality study I’m working on. There are three parts here:

  • Virality K-Factor equation
  • Virality design pattern library
  • Reference sharing design

    Product Virality: Basic structure and the K-Factor Equation

    In the diagram below, I’ve broken product virality into two parts: Sharing and Engagement and I’ve organized and expanded the standard virality equation around these phases to get better insight into the factors that go into it.

    These factors are color coded and matched to specific design patterns, which follow below. The attempt here is to directly link the virality equation with specific UX design solutions so that the two perspectives can inform each other.

    UX Design Pattern Library
    The UX design patterns below are organized by phase. Each pattern is color coded to show which part of the virality K-factor equation they impact  (see above for key). There are five basic phases:

    • The act of Sharing/Inviting
    • The Invitation
    • Sign up
    • First Run Engagement
    • Deepening Engagement

    This is a general approach and the order and importance of each phase will vary for different products, for example, some products may not have a sign up at all.

    The Sharing/Invite Ask
    The context for this phase is that a user is in the process of making a decision to share content or to invite another user. The main challenges for this step are: a) getting a user to decide to share b) making it all the way through the invite process and c) increasing the number and frequency of invites.

    Each example below illustrates one or more design patterns that address these challenges. This examples come from the following sites:

    Engagement: The Invitation
    The context for this phase is that our potential new user has just received an invite and they are in the process of deciding what to do with the invite.

    The design goal is to get users to a) read, view or otherwise engage with the invite and b) accept the invite and follow link back to site (or take the next step in engagement whatever that may be). Examples come from:

    • Quora http://www.quora.com/
    • Flickr http://www.flickr.com/
    • UX Show and Tell http://uxshowandtell.com/
    • SlideShare http://www.slideshare.net/

    Engagement:  Sign Up
    Note Sign up is a major hurdle for users, instead of signing up first, often a better design is to have users use the service prior to signing up. This is called Lazy Registration and it’s used to deepen engagement and user commitment before going through sign up.

    The context here is the user is in the process of deciding if they want to sign up for the service and explore it further. Users come to this stage in several frames of mind, Joshua Porter posits there are three types: 1. Decided users (design need: fast sign up) 2. Unsure (design need: re-iterate value) and 3. Skeptical (design need: additional description, social proof, etc)

    The challenges of this phase are: a) Moving undecideds into decided and b) getting users all the way through a sign-in process. The examples below come from:

    • Geni http://www.geni.com/home
    • About.me https://about.me/
    • Square, Inc. https://squareup.com/
    • Path http://www.path.com/
    • DailyKos.com http://www.dailykos.com/
    • Quora http://www.quora.com/
    • LinkedIn http://www.linkedin.com/
    • SlideShare http://www.slideshare.net/

    Engagement: First Run

    Context: user has just completed sign up and we need to help them get started using the site. Note When the Lazy Registration pattern is used, First Run happens before users sign up.

    The First Run design challenge is to a) orient new users b) provide as much immediate value as possible c) help users discover useful new functionality. Examples come from:

    • UX Show and Tell http://uxshowandtell.com/
    • Flickr http://www.flickr.com/

    More First Run Engagement articles:

    Engagement – Deepening Engagement
    The context here is that the user is using the product.

    The design challenge is to get a) more frequent and deeper use of service. b) help users discover full feature set c) engage ongoing interest and d) support users in using and learning product.

    Increased retention and increased sharing are often outcomes of deepening engagement. Examples come from:

    Reference Sharing  Design

    Below is a generalized Sharing Use Flow diagram, this follows the following steps:

    1. The Ask
    2. Select share method
    3. Choose who to share with
    4. The Invitation
    5. Invite Landing Page – First Run (not shown)
    6. Sign Up (not shown)

    View Answer on Quora

    What are some of the most mind-blowing facts about coffee?

    Answer by Peter Baskerville:

    Not sure whether others think the following facts about coffee are mind-blowing  but they were to me when I first heard them:
    • 70% – the percentage of all coffee beans that are produced by peasant farmers who receive less than 1% of the money you pay the cafe for your coffee. See, for every kilo of coffee beans that your cafe sells for about $350, the peasant farmer receives about $2.
    • 1.6 billion – the number of cups of coffee that are drunk worldwide everyday – according to the International Coffee Organisation with the Scandinavian countries leading the per capita consumption stats with Finland 12.0 kg, Norway 9.9 kg, Iceland 9.0 kg, Denmark 8.7 kg and Swedan 8.2 kg compared to the USA on 4.2 kg. IOC – Frequently Asked Questions
    • 300 – the number of years that Caffe Florian in Venice has been trading continuously.Opened by Floriano Francesconi on 29 December 1720 under the arcades of the Procurative Nuove using the name “Venezia Trionfante” (‘Triumphant Venice’) but was later renamed in honour of its founder Floriano Francesconi. Famous patrons included Marcel Proust, Charles Dickens and the womanizer Giovanni Giacomo Casanova.
    • 800 – The number of Volatile Molecular Species (different flavour influencing components) found in the coffee oil extracted from roasted coffee beans compared to wine which only has 150.
    • 800 – The number of years that coffee beans were kept from being taken from Arabia via a ban on exporting fertile coffee beans. Coffee was first discovered in about 800 AD in Ethiopia, yet fertile coffee beans were only smuggled out of Arabia to the rest of the world in the 1600s by the Dutch traders and a legendary Indian named Baba Budan.
    • 1 billion – the number of coffee trees fathered by one 'Noble Tree' in over 60 countries worldwide. This Noble Tree was taken from France by Gabriel Mathieu de Clieu and after a perilous journey was planted in Martinique in 1723. From there this noble tree became the father to all the famous plantations of South America and beyond.
    • The largest insurance company in the world was started in Edward Lloyd’ Coffee House near the Thames on Tower Street in London in 1685.
    • Wallenford Estate is reputed to be the rarest and most expensive coffee bean in the world but few people taste it. It is grown high in the mountains on the isle of Jamaica known as Blue Mountain. Unless you live in Japan you will have never heard of it because the Japanese buy the full production.
    • The vast majority of coffee beans (apart from coffee from Brazil) are hand picked. See quality coffee is high grown in mountainous regions where it is impossible to use mechanical harvesters.
    • Regardless of the brand on the outside of a commercial coffee machine it will have an E61 group head designed in 1961. Ernesto Valente from  Faema invented the E-61 "continuous delivery" group in 1961 and it remains the standard for all quality commercial coffee machines produced today.

    • Drinking coffee is actually good for you.  According to the respected Mayoclinic.com "Past studies have generally found no connection between coffee and an increased risk of cancer or heart disease however recent studies have also shown that coffee may have benefits, such as protecting against Parkinson's disease, type 2 diabetes and liver cancer. And it has a high content of antioxidants."

    View Answer on Quora

    Coding dreams