Archivos para desarrollo

Desarrollo ágil y seguridad

Ya hace algún tiempo que tenía estos enlaces. pero necesitaba un ratito para recopilarlos porque andaban dispersos por ahí. Llevamos unos años hablando de metodologías ágiles de desarrollo (en contraposición con otras metodologías más pesadas y tradicionales). Pero yo no había visto mucho de cómo introducir la seguridad en estos contextos. Hasta que encontré estos textos, que comparto aquí:

Agile Security – Requirements. En el resumen:

As a product owner you have scores of tools and processes to help you find vulnerabilities after they’ve been coded. Adopting security throughout the SDLC is cost effective, but difficult in practice to implement for agile shops. Security requirements, in particular, are difficult to prioritize or scope in early iterations. You can make the task more manageable by prioritizing requirements that prevent exploitable flaws, sorted by risk.

En Agile Security – Product Owner’s Perspective continúa, en este caso con lecturas recomendadas, motivaciones y consejos. Aunque prometen más, parece que la serie no ha seguido, siendo el último articulito uno genérico, que no habla de seguridad ágil, sino algo más genérico: Software Security Throughout the Life Cycle: 9 Steps.

Ahora ustedes podrían sentirse decepcionados por la escasez de los recursos aportados (o no). Para que eso no suceda, y como tenía más artículos recopilados, van a continuación.

En Secure software development and agile methods – notes unas notas sobre el tema, a partir de una sesión dedicada al tema en Finlandia, en la que participaba gente de Nokia (¿Nokia ágil?) y de F-Secure. Está resumida pero va bastante al grano y además se pueden descargar las presentaciones que se utilizaron.

Haciendo una búsqueda en Google encuentro el The Agile Security Forum al que habrá que echar un ojillo con más calma. Microsoft también tiene un documento en Streamline Security Practices For Agile Development donde tratan de encajarlo con su SDL (Secure Development Cycle). Finalmente (por acabar, no porque no haya más documentos sobre el tema), en Agile Security Engineering J.D. Meier también aporta su punto de vista.

Dejar un comentario

Localización en Android: HOW-TO

Algún día tendré que ponerme a jugar con Android y desarrollar un programita (o más) pero la pereza continúa pudiendo conmigo y retrasando este propósito. Mientras tanto, un recurso interesante. En A Deep Dive Into Location Reto Meier va mostrando diversas ideas y trucos para desarrollar una aplicación basada en localización con el objetivo de:

Rather than shaking my fist at the sky, I’ve written an open-source reference app that incorporates all of the tips, tricks, and cheats I know to reduce the time between opening an app and seeing an up-to-date list of nearby venues – as well as providing a reasonable level of offline support — all while keeping the impact on battery life to a minimum.

Definitivamente interesante.

Dejar un comentario

8 hábitos para ser mejor programador

En 8 habits for becoming a better programmer:

  • Hacer revisión del código
  • Utilizar buenas herramientas
  • Pruebas automatizadas y compilación continuada del proyecto
  • Ejecutar paso a paso en el depurador todo el código nuevo
  • Evitar la complejidad
  • Código de diagnóstico en las aplicaciones
  • Escribir código legible
  • Reutilizar código de alta calidad

Como bola extra, esta presentación de Ed Yourdon que acabo de encontrar: Top 10 Software Engineering Concepts.

Comentarios (1)

Algoritmos galácticos

En Galactic Algorithms nos hablan de una forma de llamar a esos algoritmos que tienen un buen coste asintótico pero que no los usarísmoa para calcular nada: Dick Lipton comenta como es un gran avance el ser capaces de predecir el comportamiento de un algoritmo sin ejecutarlo. También que hay algoritmos que son un gran descubrimiento aunque luego no se utilicen en el ‘mundo real’, por motivos como: descubrir nuevas técnicas, ser utilizables en el futuro si algunos paradigmas de computación cambian, abrir la puerta a otros algoritmos que sí son utilizables, o descubrirnos que algunos cotas temporales de algunos son excesivas (un programa costoso, pero con una cota polinómica cambiaría las ideas previas sobre determinados problemas, por ejemplo).

Uno que entra en esta categoría podría ser el de divide y vencerás para multiplicar matrices grandes, el algoritmo de Strassen.

Dejar un comentario

Seis formas de empezar a programar software libre

Lo veo en 6 Easy Ways To Get Started Programming Open Source y habla de 6 Easy Ways To Get Started Programming Open Source:

  1. Implicarse en los proyectos que utilizamos
  2. Hacer lo que nos gusta
  3. Aprender las herramientas
  4. Fijarse en las dinámicas sociales del proyecto
  5. Empezar por cosas pequeñas
  6. Empezar nuestro propio proyecto

Comentarios (1)

Informática es algo más que programar

En Computer Science Is More Than Just Programming Duncan Buell comenta sobre un curso de informática para historiadores y cómo es necesario algo más que programar para hacer programas: conocer el contexto, representar adecuadamente la información, …

Dejar un comentario

Algunas cosas falsas que los programadores creen sobre los nombres

Programar es decidir y suponer cosas: una parte importante de la disciplina es tener claro que es lo que se supone y que esas decisiones sean lo más conscientes posibles. Muchos problemas de seguridad (y también de robustez y simple funcionamiento) tienen que ver con el ‘es que yo creía …’, ‘¿quién imaginaba que alguien podría hacer eso?’ y afirmaciones similares.

En Falsehoods Programmers Believe About Names Patrick McKenzie escribe 40 suposiciones que vemos frecuentemente sobre los nombres de personas que no tienen por qué ser ciertas.

Dos ejemplos:

# My system will never have to deal with names from China.

# People have names.

Es muy difícil imaginarse todos esos casos, pero hay que tener cuidado (sobre todo dependiendo del contexto en el que nos movamos) de que nuestra aplicación no termine teniendo (o causando) problemas por suponer demasiado.

En forma humorística, ya lo decían en Exploits of a Mom.

Comentarios (1)

Programación colaborativa en JavaScript

Tengo la intuición de que se podrían conseguir cosas con la programación colaborativa: en el extremo, ¿podríamos tener una aplicación web en un wiki y que ‘cualquiera’ pudiera editarla y seguir ejecutándose? Supongo que con los mecanismos de control adecuado (poder volver atrás, no poder borrar datos o ‘robarlos’ …) se podría intentar algo.

En ese sentido y más allá de la programación por parejas que ‘santificó’ la programación extrema y las metodologías ágiles, descubría el otro día en Plataforma para programar javascript de forma colaborativa la existencia de JS Bin – Collaborative JavaScript Debugging que es lo primero que conozco (desde mi ignorancia, claro) sobre desarrollo colaborativo.

Suena interesante.

Dejar un comentario

Humanos y virus informáticos

Es un tema que habíamos comentado de pasada. En Primer humano “infectado” por un virus de computadora nos hablan del caso de Mark Gasson, que se implantó un chip de identificación por radio frecuencia (RFID) y lo infectó con un virus de ordenador, como cuentan en Could humans be infected by computer viruses?.
A partir de allí elucubran con la posibilidad de transmitir el virus a otros dispositivos.
En esta línea de infecciones hipotéticas pero complicadas, comentamos en su día aquello de Infecciones en red.

Naturalmente, el principio de la Navaja de Occam nos dice que hay formas más fáciles de causar perjuicios, pero recordemos que la cantidad de dispositivos programables que hay a nuestro alrededor sin demasiada seguridad es grande (y creciendo) como veíamos, por ejemplo, en ¿Pueden atacar tu coche?.

Comentarios (2)

Sistemas de control de versiones

Martin Fowler publicó una nota sobre VersionControlTools con algunas ideas, comentarios y recomendaciones.

Después, en VcsSurvey con los resultados de una encuesta en la lista de desarrollo de software de ThoughtWorks (que no conozco). Los sistemas mejor situados serían git, seguido de Mercurial y Subversion. El viejo CVS queda en sexta posición, bastante lejos de los que podrían considerarse de plena actualidad.

Dejar un comentario

Entradas más antiguas »
Seguir

Get every new post delivered to your Inbox.