Tesla, ¿cómo funciona el piloto automático?

¿Qué es Tesla Motors?

Tesla Motors, es una compañía que diseña, fabrica y vende coches eléctricos.Tesla ha desarrollado el Tesla Model S, un liftback de lujo totalmente eléctrico, ¿cómo funciona el Model S?

En el video promocional, Telsa Motors mostró cómo funciona el piloto automático del Model S. Podemos observar las características de este sistema autónomo, donde ahora podrás ordenarle al coche que se encienda y salga del garaje con una aplicación sincronizada a tu móvil. Ya en la autopista puedes dejar que el Model S utilice los carriles con conveniencia y seguridad gracias a los algoritmos que previenen colisiones y desvíos afuera de los carriles.

Tal vez el elemento más atractivo de este sistema es la posibilidad de poder aparcar el automóvil de manera automática. El Model S incluso puede detectar si el espacio es suficiente entre los otros autos.

Tesla asegura en la descripción de este video publicado en su cuenta oficial de YouTube que todas las características de piloto automático llegarán eventualmente con futuras actualizaciones de sistema operativo.

Etiquetas:

Solucionar compatibilidad entre Django 1.9 y autocomplete_light

Le nueva versión de Django 1.9 trae consigo excelentes novedades como “LoginRequiredMixin“, “PermissionRequiredMixin” y muchas cosas más.

Con ésta nueva versión lamentablemente “autocomplete_light” uno de los mejores módulos para la implementación de campos y formularios de auto-completado evita que Django arranque de manera normal, y para solucionar éste inconveniente es necesario realizar unos pequeños cambios.

Modificar como el módulo es importado

Éste es el primer paso, la manera común y normal de hacerlo es a es través de la siguiente línea:

import autocomplete_light

Ahora lo haremos así:

from autocomplete_light import shortcuts as al

Modificar líneas de código

Ahora, el siguiente paso es simplemente modificar todo las líneas “autocomplete_light.” por “al.”
Ejemplo:

'''
Antes
'''
class ProductoAutocomplete(autocomplete_light.AutocompleteModelBase):
	model         = Producto
	search_fields = ['SKU', 'nombre']
autocomplete_light.register(ProductoAutocomplete)
'''
Ahora
'''
class ProductoAutocomplete(al.AutocompleteModelBase):
	model         = Producto
	search_fields = ['SKU', 'nombre']
al.register(ProductoAutocomplete)
Etiquetas:

Unir AWS S3 y AWS RDS a Django y despliegue en AWS Elastic Beanstalk

Él siguiente post es la continuación del tutorial de como desplegar nuestra aplicación de Django en Amazon Web Services o AWS.

En ésta sección veremos:

  • ¿Cómo administrar archivos estáticos y media de Django en AWS S3?
  • ¿Cómo configurar settings.py para AWS S3?
  • ¿Cómo configurar settings.py para AWS Relational Database Service o RDS?
  • ¿Cómo desplegar nuestra aplicación en AWS Elastic Beanstalk o EB?

Leer Más »

Etiquetas:

Desplegar Django en AWS Elastic Beanstalk desde Windows

aws

El siguiente manual te ayudará a tener una muy buena referencia de cómo puedes hacer que tu proyecto actual, o tu siguiente proyecto pueda ser desplegado en AWS Elastic Beanstalk.

¿Por qué es bueno usar AWS Elastic Beanstalk?

Pues te ayuda a eliminar la preocupación por los recursos físicos necesarios para el despliegue de tu aplicación de esa manera podrás enfocarte más en el desarrollo de tu aplicación propiamente dicha.

¿Qué veremos en el siguiente manual?

En el siguiente manual usaremos los siguientes servicios de AWS:

  • AWS Elastic Beanstalk: despliegue de la aplicación
  • AWS S3: almacenamiento de los archivos estáticos y media de Django
  • AWS Route53: enrutamiento de nuestro dominio (opcional)
  • AWS RDS: para el manejo de nuestra base de datos (en este caso será MySQL)
  • AWS IAM: necesitaremos usar un usuario actual o si no lo tenemos crear uno con los permisos necesarios

Leer Más »

Etiquetas:

Asegurar WordPress a través de .htaccess

Asegurar nuestra instalación de WordPress debe ser una de las prioridades, especialmente cuando tu sitio web empieza a generar cierta cantidad de tráfico pues “robots” están en constante explotación de la más mínima vulnerabilidad para convertir nuestra instalación de WordPress en un sitio inseguro para tus visitantes.

El método de seguridad que uso y recomiendo es a través de “.htaccess“, pues éste archivo (que para muchos puede ser insignificante) nos ayuda a restringir y garantizar accesos así como administrar las direcciones de WordPress para que se vean “bonitas”.

Denegar el acceso al archivo wp-config.php

A través de la siguiente modificación al archivo “.htaccess” que se encuentra en la raíz de nuestra instalación de WordPress denegaremos cualquier tipo de acceso a éste archivo.

/.htaccess
# Denegar el acceso al archivo wp-config.php
<Files wp-config.php>
  order allow,deny
  deny from all
</Files>

Denegar el acceso a los archivos .htaccess

Seguimos modificando el archivo “.htaccess” ubicado en la raíz de nuestra instalación de WordPress, ésta ves para protegernos de cualquier intención de acceso a nuestros archivos “.htaccess”, éste código lo que hace es proteger todo archivo cuyo extensión inicie con “hta“.

/.htaccess
# Denegar el acceso a los archivos .htaccess
<Files ~ "^.*\.([Hh][Tt][Aa])">
  order allow,deny
  deny from all
  satisfy all
</Files>

Evitar la navegación en las carpetas de WordPress

La siguiente línea evitará que cualquier usuario o bot revise las carpetas de tu instalación de WordPress, de ésta manera evitas que sepan que plugins tienes instalados, por lo tanto determinar a que eres vulnerable.

/.htaccess
# Denegar la navegación a través de los directorios de WordPress
Options All -Indexes

Solo a las extensiones necesarias

Terminamos ya con el archivo “.htaccess” ubicado en la raíz de nuestra instalación de WordPress, ahora pasamos a a la carpeta “wp-content” que almacena todos los plugins, plantillas, imágenes, etc. Entonces como ésta carpeta contiene mucha información únicamente permitiremos el acceso a archivos que contengas las extensiones específicadas a continuación.

/wp-content/.htaccess
# Permitir el acceso únicamente a los siguientes archivos de wp-content
Order deny,allow
Deny from all
<Files ~ ".(xml|css|js|jpe?g|png|gif|pdf|docx|rtf|odf|zip|rar|svg|woff|ttf|eot)$">
  Allow from all
</Files>

Denegar la ejecución de archivos .php

Los ataques son originados a partir de la vulneración de archivos “.php”, ya sea a través de método “POST o GET” logran inyectar código en éstos archivos y por lo tanto dañar muchos archivos más de nuestra instalación de WordPress. Así denegaremos cualquier ejecución de los archivos “.php”.

Primero bloquearemos cualquier archivo “.php” ubicado en la carpeta “/wp-content/uploads”.

/wp-content/uploads/.htaccess
# Denegar la ejecución de archivos .php
<Files *.php>
  deny from all
</Files>

Además bloquear los archivos “.php” ubicados en la carpeta “/wp-includes”.

/wp-includes/.htaccess
# Denegar la ejecución de archivos .php
<Files *.php>
  deny from all
</Files>

Denegar el acceso a los archivos de wp-includes

Ésto es una extensión a lo ya dicho en el punto anterior, y permite reforzar la seguridad de la carpeta wp-includes.

/wp-includes/.htaccess
# Retringir todo acceso a wp-includes
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^wp-admin/includes/ - [F,L]
  RewriteRule !^wp-includes/ - [S=3]
  RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
  RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
  RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

Compacto

Si deseas puedes descargar el siguiente archivo “.zip” que contiene todos los archivos “.htaccess” disgredados por carpetas de la manera que corresponde.
Descargar muestra .htaccess

Si conoces algún método adicional de protección y necesitas ayuda, déjanos un comentario.

Etiquetas:

YouTube estará solucionando el famoso problema de “301” reproducciones

El día de hoy Google ha realizado un anuncio que ha hecho a muchos creadores y productores de contenido muy felices pues estaría solucionando el problema de “301” reproducciones por un dato más exacto de reproducciones realizadas.

A través de un anuncio de la cuenta oficial en Twitter de YouTube, ahora todos los videos mostrarán un conteo real de todas las reproducciones que la compañía asegura como reproducciones por personas reales, pero no incluirá reproducciones de robots, las cuales pasarán a través de un proceso de verificación.

Remover el irritante y poco informativo “301” es una señal de que la compañía es capaz de diferenciar entre reproducciones de personas y reproducciones de sistemas automatizados. El famoso contador de “301” ha sido usado como un punto de referencia a través del cual se empieza a verificar que las reproducciones son auténticas o no.

Para una compañía que vende publicidad a grandes empresas esta distinción es de suma importancia.

Para visitantes, no significa mucho, sin embargo, para los creadores significa que no tendrán que esperar mucho para saber que tanto impacto ha tenido su video.

Etiquetas:

OpenDNS como herramienta de control parental para el hogar

opendns

Lo confieso, dependo mucho de internet y no me gustaría tener ningún tipo de limitación de acceso al contenido pero considero que hubiese sido muy bueno tener ese filtro y cuando el momento llegue y tenga que formar una familia ¿cuáles serán mis medidas para proteger a mi familia?

Internet es la herramienta más poderosa que tenemos cerca a nuestras manos, millones de millones de bytes de información de todo tipo, información verdadera e información falsa, el juicio final que define si creemos o no en la información que recibimos está en cada uno de los usuarios que recibió dicha información. Adultos o jóvenes tenemos la capacidad de diferenciar y tomar una decisión, pero ¿qué hay acerca de los menores?

En diversas oportunidades, me he tomado la molestia de leer los comentarios que diversas personas realizan en las publicaciones que los medios locales (de Perú) hacen en Facebook y cada vez que son noticias de espectáculos el  ~95% de los comentarios es para quejarse al respecto y el mensaje suele ser el mismo “protección al menor”. Algunos lo expresan con minúsculas y otros con mayúsculas pero el mensaje es el mismo.

¿Depende de ellos o depende de nosotros?

El pedido es siempre el mismo “que la información cambie”, y hasta cierto punto estoy de acuerdo pero aquí uno de los datos más importantes:

2015-07-31_22-45-39

Exacto, menores de 13 años no deben utilizar Facebook y lo dice en sus términos legales. Entonces si eres padre de familia preocúpate por que se cumpla esto y haz respetar este tratado. Además no debemos promover que se rompa ésta regla. Facebook es una fuente donde circula mucha información buena y mala, pero más allá de que Facebook puede ser un peligro, el mayor peligro son los enlaces que se encuentran en las redes sociales, y este contenido el que debe ser filtrado y es aquí donde empieza la labor de “OpenDNS” como una herramienta para el control de contenido para el hogar.

¿Gratuito o de pago?

Con OpenDNS puedes obtener seguridad para tu hogar de manera gratuita también puedes obtener mayores parámetros de filtración y configuración pagando únicamente $19.95 Dólares Americanos al año lo que serían S/. 65.00 Nuevos Soles (menos de S/.6.00 Nuevos Soles mensuales) por una herramienta que además de brindarte excelentes filtros de contenido también te protege de la información que es descargada a cada uno de tus aparatos electrónicos.

¿Qué otros beneficios obtengo al usar OpenDNS?

  • Seguridad
    • Administra más de 70 billones de peticiones diariamente, más del 2% de toda la internet con un 100% de uptime.
    • Todo el contenido que pasa a través del servidor DNS está encriptado.
    • Alertas ante accesos a sitios no-seguros.
  • Confianza
    • Personal técnico las 24 horas del día, los 7 días de la semana.
    • Servidores de respaldo, a pesar de que diversos servidores caigan siempre habrán servidores de respaldo.
    • En caso de que un dominio se encuentre mal configurado, OpenDNS te dará un mensaje de que “Las DNS han expirado” en vez de un mensaje de error.
  • Velocidad
    • Uno de los cachés más grandes del mundo de DNS. De ésta manera de obtiene una respuesta inmediata ante una solicitud.
    • Un enrutado que permite un acceso más rápido.
    • Integrado con servidores de contenido estático.
Etiquetas:

Especificaciones y requisitos de Windows 10

w10

Windows 10 es el nuevo sistema operativo de Microsoft que será lanzado el 29 Julio del 2015, éste nuevo sistema operativo ser más fácil de utilizar con un aumento de velocidad de desempeño así como nueva funcionalidades.

Los requisitos necesarios para que instales este nuevo sistema operativo son los siguientes:

  • SO más reciente: Asegúrate de que estás ejecutando la última versión, ya sea Windows 7 SP1 o Windows 8.1 Update.
  • Procesador: Un procesador a 1 GHz o más rápido o SoC
  • RAM: 1 gigabyte (GB) para 32 bits o 2 GB para 64 bits
  • Espacio en disco duro: 16 GB para un SO de 32 bits o 20 GB para un SO de 64 bits
  • Tarjeta gráfica: DirectX 9 o posterior con un controlador WDDM 1.0
  • Pantalla: 1024 x 600

Notas importantes

  • La posibilidad de actualización de un dispositivo depende de otros factores más allá de las especificaciones del sistema. Por ejemplo, la compatibilidad de los controladores, el firmware y las aplicaciones, y de las características, con independencia de que el dispositivo cumpla o no las especificaciones mínimas del sistema para Windows 10.
  • Si tu PC o tableta usa actualmente Windows 7 SP1 o Windows 8.1 Update, puedes comprobar si cumple los requisitos necesarios; para ello, usa ‘Comprobar mi PC’ en la aplicación Get Windows 10.
  • Las aplicaciones, los archivos y las configuraciones se migrarán como parte de la actualización; sin embargo, puede que algunas aplicaciones o configuraciones no se migren.
  • En el caso de las aplicaciones antivirus y antimalware, Windows comprobará durante la actualización si tu suscripción antivirus o antimalware está actualizada. Windows desinstalará la aplicación y conservará las configuraciones. Una vez completada la actualización, Windows instalará la última versión disponible con las configuraciones establecidas antes de la actualización. Si tu suscripción no está actualizada, la actualización habilitará Windows Defender.
  • Puede que antes de la actualización se quiten algunas aplicaciones del fabricante.
  • En el caso de algunas aplicaciones de terceros, la aplicación “Get Windows 10” analizará si son compatibles. Si hay algún problema conocido que impida la actualización, se te notificará la lista de aplicaciones que tienen problemas conocidos. Si eliges aceptar, se quitarán las aplicaciones del sistema antes de realizar la actualización. Asegúrate de hacer una copia de la lista antes de aceptar la eliminación de las aplicaciones.

Sección de características obsoletas

  • Si tienes Windows 7 Home Premium, Windows 7 Professional, Windows 7 Ultimate, Windows 8 Pro con Media Center o Windows 8.1 Pro con Media Center e instalas Windows 10, se eliminará Windows Media Center.
  • Para ver DVDs se requiere un software de reproducción independiente.
  • Los gadgets de escritorio de Windows 7 se quitarán como parte de la instalación de Windows 10.
  • Los usuarios de Windows 10 Home tendrán disponibles las actualizaciones de Windows Update automáticamente.
  • Los juegos Solitario, Buscaminas y Corazones que vienen preinstalados en Windows 7 se quitarán como parte de la instalación de la actualización a Windows 10. Microsoft ha lanzado sus propias versiones de Solitario y Buscaminas, y ahora se llaman “Colección de solitarios de Microsoft” y “Buscaminas de Microsoft”.
  • Si tienes una unidad de disco conectada a través de USB, necesitarás descargar el último controlador de Windows Update o del sitio web del fabricante.
  • Si tienes Windows Live Essentials instalado en el sistema, se quitará la aplicación OneDrive y se reemplazará con la versión de bandeja de entrada de OneDrive.

Requisitos adicionales para usar algunas características

  • Cortana solo está disponible actualmente en Windows 10 para Estados Unidos, Reino Unido, China, Francia, Italia, Alemania y España.
  • El reconocimiento de voz variará según el micrófono del dispositivo. Para tener una experiencia de voz mejor, necesitarás:
    • Micrófono de alta calidad
    • Controlador de hardware con la geometría de varios micrófonos expuesta
  • Windows Hello requiere una cámara por infrarrojos con iluminación especializada para el reconocimiento facial o la detección del iris, o un lector de huellas dactilares compatible con el Marco biométrico de Windows.
  • Continuum está disponible en todas las ediciones de Windows 10 si activas y desactivas manualmente el “modo tableta” en el Centro de actividades. Las tabletas y los equipos 2 en 1 con indicadores GPIO o los que tengan un indicador de portátil o tableta táctil podrán configurarse para entrar automáticamente en el “modo tableta”.
  • Se puede hacer streaming de música y vídeo a través de Xbox Music o Xbox Video en determinadas regiones. Para ver la lista más actualizada de regiones, visita el sitio web de Xbox en Windows.
  • La autenticación en dos fases requiere el uso de un PIN, equipo biométrico (lector de huellas dactilares o cámara por infrarrojos con iluminación), o un teléfono con capacidades WiFi o Bluetooth.
  • El número de aplicaciones que se pueden acoplar dependerá de la resolución mínima de la aplicación.
  • Para el uso táctil, necesitas una tableta o un monitor que sea compatible con la función Multitáctil (más información)
  • Para algunas características es necesaria una cuenta Microsoft
  • Acceso a Internet (pueden aplicarse tarifas adicionales del proveedor de acceso a Internet)
  • Para un arranque seguro se requiere firmware compatible con UEFI v2.3.1 Errata B y con la entidad de certificación de Microsoft Windows en la base de datos de firmas UEFI
  • Algunos administradores de TI pueden habilitar Inicio de sesión seguro (Ctrl + Alt + Supr) antes de que aparezca la pantalla de inicio de sesión. En las tabletas sin teclado, puede que sea necesaria una tableta con el botón Windows porque la combinación de teclas en una tableta es el botón Windows + botón de encendido.
  • Es posible que algunos juegos y programas requieran tarjetas gráficas compatibles con DirectX 10 o superior para un rendimiento óptimo
  • BitLocker To Go requiere una unidad flash USB (solo para Windows 10 Pro).
  • BitLocker requiere el Módulo de plataforma segura (TPM) 1.2, TPM 2.0 o una unidad flash USB (solo para Windows 10 Pro y Windows 10 Enterprise)
  • Cliente Hyper-V requiere un sistema de 64 bits con servicios de traducción de direcciones de segundo nivel (SLAT) y 2 GB de RAM adicionales (solo para Windows 10 Pro y Windows 10 Enterprise).
  • Miracast requiere un adaptador de pantalla que sea compatible con el Modelo de controladores de pantalla de Windows (WDDM) 1.3 y un adaptador Wi-Fi que admita Wi-Fi Direct.
  • La impresión directa por Wi-Fi requiere un adaptador Wi-Fi que admita Wi-Fi Direct y un dispositivo compatible con la impresión directa por Wi-Fi.
  • Para instalar un sistema operativo de 64 bits en un PC de 64 bits, el procesador tiene que ser compatible con CMPXCHG16b, PrefetchW y LAHF/SAHF.
  • InstantGo solo funciona con equipos diseñados para el modo de espera conectado.
  • El cifrado de dispositivo requiere un PC con InstantGo y TPM 2.0.
Etiquetas:

Procesar etiquetas personalizadas de plantilla dentro de un campo en Django

django-logo-positive

 

Hace una horas mientras programaba se presentó la necesidad de que Django sea capaz de procesar etiquetas personalizadas de plantilla (custom template tag en inglés) que se encuentra dentro del campo de un modelo.

Estuve buscando mucho por diferentes lugares la solución hasta que la encontré y es la siguiente:

Estructura de los archivos

Usaré el ejemplo común de Django, que tiene la siguiente estructura de archivos:

polls/
    __init__.py
    models.py
    templatetags/
        __init__.py
        poll_extras.py
    views.py

Entonces el archivo poll_extras.py que contiene todas nuestras etiquetas personalizadas, agregaremos una nueva:

polls/templatetags/poll_extras.py
'''
En las líneas anteriores está nuestras etiquetas ya escritas
'''
@register.tag(name="evaluate")
def do_evaluate(parser, token):
  """
  uso de la etiqueta {% evaluate object.textfield %}
  """
  try:
    tag_name, variable = token.split_contents()
  except ValueError:
    raise template.TemplateSyntaxError, "%r tag requires a single argument" % token.contents.split()[0]
 
  return EvaluateNode(variable)
 
class EvaluateNode(template.Node):
  def __init__(self, variable):
    self.variable = template.Variable(variable)
 
  def render(self, context):
    try:
      content = self.variable.resolve(context)
      t = template.Template(content)
      return t.render(context)
    except template.VariableDoesNotExist, template.TemplateSyntaxError:
      return 'Error rendering', self.variable

También es necesario que al momento de cargar el campo en la plantilla se llame a poll_extras de lo contrario nos arrojará un error diciendo que la etiqueta no existe

pollS/models.py
class Poll(models.Model):
  contenido = models.TextField()
  '''
    Campos de la tabla
  '''
 
  def contenido_eval(self):
    return '{% load poll_extras %}' + self.contenido

Por último en nuestra plantilla no llamaremos al campo sino al método que hemos creado para que así analice las etiquetas presentes allí.

{% extends 'template_base.html' %}
{% load poll_extras %}
{% block content %}
 
<h1>Contenido</h1>
{% evaluate poll.contenido_eval %}
 
{% endblock %}
Etiquetas: