Pataconf, Octubre 6 de 2016, dia de charlas!

colombiadevorgpataconfcolombia

Pataconf es una iniciativa de Colombia-dev.org para promover diferentes comunidades de desarrollo de software en Colombia. La idea era ofrecer charlas para todas las audiencias, principiantes, intermedias y avanzadas.

En la imagen muestro las charlas que se ofrecieron para la edición realizada el 6 de octubre de 2016:

pataconfoct2016agenda


Security: Shared Key Generation – Elliptic Curve Diffie Hellman – @halzate93

  • Cifrado caesar
    “En criptografía, el cifrado César, también conocido como cifrado por desplazamiento, código de César o desplazamiento de César, es una de las técnicas de cifrado más simples y más usadas. Es un tipo de cifrado por sustitución en el que una letra en el texto original es reemplazada por otra letra que se encuentra un número fijo de posiciones más adelante en el alfabeto. Por ejemplo, con un desplazamiento de 3, la A sería sustituida por la D (situada 3 lugares a la derecha de la A), la B sería reemplazada por la E, etc. Este método debe su nombre a Julio César, que lo usaba para comunicarse con sus generales.” (Wikipedia)
  • Encriptación de curva Eliptica
    “La Criptografía de Curva Elíptica (del inglés: Elliptic curve cryptography, ECC) es una variante de la criptografía asimétrica o de clave pública basada en las matemáticas de las curvas elípticas. Sus autores argumentan que la CCE puede ser más rápida y usar claves más cortas que los métodos antiguos — como RSA — al tiempo que proporcionan un nivel de seguridad equivalente. La utilización de curvas elípticas en criptografía fue propuesta de forma independiente por Neal Koblitz y Victor Miller en 1985.”(Wikipedia)

enlaces de interés:

¿Que es la criptografia de curva eliptica?

Ejemplo de uso en el BITCOIN

 


Diseño de sistemas mediante contratos en Elixir – @epsanchezma

“El diseño por contrato es una metodología para el diseño e implementación de aplicaciones y componentes popularizada por el lenguaje de programación Eiffel. Consiste en considerar los elementos de diseño como participantes de una relación similar al contrato de negocios. Así, se pueden diseñar los componentes asumiendo que se cumplirán ciertas condiciones de entrada (pre-condiciones), mientras que se deberán garantizar ciertas condiciones de salida (post-condiciones), así como la invariante de clase (propiedades que se mantienen invariantes a pesar del procesamiento realizado por el componente).” (Wikipedia)

DBC (Design By Contract)
Lógica de Hoare
DBC vs TestingEiffel
Elixir

 

Según articulo de la revista de la Universidad Autónoma de Mexico(http://www.revista.unam.mx):

“… El diseño por contratos puede ser visto como la aplicación a la construcción de software de los contratos que rigen los asuntos de las personas. Cuando dos personas establecen un contrato se desprenden, de éste, las obligaciones y beneficios de cada una. Este tipo de contratos en software especifican, en forma no ambigua, las relaciones entre las rutinas y los llamadores de las mismas…” leer mas


0_o Profe, ¿y eso para qué sirve? – @earayo

Se hablo de la forma como se aplican temas que vimos en la universidad en el mundo real. La aplicación del álgebra lineal para la solución de problemas, como ejemplo se explico como se trabaja con vectores y matrices en el algoritmo del Page Rank de Google.
Se hizo el ejemplo(ver en Github) con Clojure (clojure.com, clojure.org) una muestra aproximada de como se implementa el Page Rank.

https://clojuredocs.org/


Dilo en Kotlin – @danielgomezrico

Presentando el lenguaje de programación Kotlin  que corre sobre la máquina virtual de Java (JVM).

para probarlo https://kotlinlang.org/

Tutorial Koans  https://kotlinlang.org/docs/tutorials/koans.html


Gestión de energía usando hardware Open-Source – @jotathebest

IoT: El intenet de las Cosas
Big Data
Hardware Abierto
–  Arduino
–  Raspberry PI
–  NodeMCU basados en el ESP8266
Herramientas como Ubidots

logosopenharware


Así implementamos una Android app que podrá ser usada por millones de personas – @cdmunoz

Puntos a tener en cuenta al inicio de un proyecto en Android:

  • Patrones de Diseño
  • Escalabilidad
  • Repositorios de Datos
  • Reactive Programming
  • Activities only or Fragments
  • Backend an API integration
  • Cual SDK usar
  • En cuales dispositivos sera desplegado
  • Material design

Initial Stack

  • Dagger for dependency injection
  • RxJava
  • Butterknife
  • Standar Android API
    • Vectores drawables
    • Activities and Fragments
    • Standard Gradle

The Evolution

  • Asynchronous images loading an chaching
  • HTTP connections
  • Mapping between API level and View Model
  • Pimped Gradle
  • Verbose Code
  • UI optimizations
  • Animations
  • Continuous Integrations
  • Custom UI components
  • Feature flag

To

  • Retrofit
  • Picasso
  • Mapstruct
  • RxBindings
  • Retrolambda
  • gradle flavors
  • Multidexing
  • Calabash
  • Transition everywhere
  • Recyclerviews over Listview
  • Jenkins and Concourse

Desarrollar con buenas practicas

  • SCRUM
    • preplanning
    • planning
    • Daily meetings
    • Retrospective
  • Technical analysis
  • huddles
  • Code reviews
  • Learning sessions and android labs
  • Instagram Style (Hacer que funcione, no importa como e ir mejorandolo)

? Mesos is the answer ? – @scastillo

Pagina Oficial:
“…Apache Mesos abstracts CPU, memory, storage, and other compute resources away from machines (physical or virtual), enabling fault-tolerant and elastic distributed systems to easily be built and run effectively…”  http://mesos.apache.org/

 

Otros enlaces:

“… is an open-source cluster manager that was developed at the University of California, Berkeley. It “provides efficient resource isolation and sharing across distributed applications, or frameworks”…” (Wikipedia)

 

“…Mesos nos ofrece una capa de abstracción entre los servidores y los recursos, es un concepto un poco diferente, pero a mi parecer cuando lo entiendes me parece excepcioal. Por otro lado Mesos te proporciona una gestión de cluster y como una una gestión de los recursos del cluster…” (http://maauso.com/apache-mesos/)