Skip to content

Instantly share code, notes, and snippets.

View luque's full-sized avatar

Rafael Luque luque

  • http://www.osoco.es
  • Madrid, Spain
View GitHub Profile
@luque
luque / gist:5c58964aa47d0d8fc886cadc982dc3f7
Last active February 14, 2021 21:20
Notas sobre "Episodio 1: ¿Qué es Diseñar y cómo hacer que un diseño nos enseñe?" del webinar Diseño a la Gorra de Hernán Wilkinson.
Algo que me gusta es que Hernán nos invite a plantearnos preguntas como ¿qué es el desarrollo de software? o ¿qué es el diseño de software?. Existen multitud de visiones o filosofías sobre qué es el software y me parece muy importante que los desarrolladores conozcamos la historia y estas distintas ideas y nos posicionemos también personalmente, respondiendo a estas preguntas por nosotros mismos. De nuestra visión sobre el software, incluso de qué papel juega o debería jugar en la sociedad, va a depender nuestra respuesta a muchas otras cuestiones, como:
* ¿Cuáles son los principales problemas que hay que resolver en el desarrollo de software?
* ¿Qué aspectos del desarrollo son los que consideramos más importantes?
* ¿Qué es para nosotros software de calidad?
* ¿Cómo debería ser el desarrollo de software en el futuro?
* ¿Qué papel político y social debería tener el software?
* ¿Qué tipo de herramientas preferimos para trabajar?
Por ejemplo, si uno acepta la visión reduccionista que define un programa como u
{ "elements" : [ { "tag" : "Element" }, { "tag" : "Software System", "background" : "#1168bd", "color" : "#ffffff" }, { "tag" : "Container", "background" : "#438dd5", "color" : "#ffffff" }, { "tag" : "Component", "background" : "#85bbf0", "color" : "#000000" }, { "tag" : "Person", "background" : "#08427b", "color" : "#ffffff", "fontSize" : 22, "shape" : "Person" }, { "tag" : "Existing System", "background" : "#999999", "color" : "#ffffff" }, { "tag" : "Bank Staff", "background" : "#999999", "color" : "#ffffff" }, { "tag" : "Web Browser", "shape" : "WebBrowser" }, { "tag" : "Mobile App", "shape" : "MobileDeviceLandscape" }, { "tag" : "Database", "shape" : "Cylinder" }, { "tag" : "Failover", "opacity" : 25 }, { "tag" : "Message Bus", "width" : 800, "shape" : "Pipe" }, { "tag" : "Microservice", "shape" : "Hexagon" } ], "relationships" : [ { "tag" : "Failover", "position" : 70, "opacity" : 25 }, { "tag" : "Element", "color" : "#000000" }, { "tag" : "Person", "background" : "#ffbf00", "shape" : "Person" }, { "tag"
Título:
"Programación basada en escenarios"
"Desarrollo incremental con behavioral programming"
"Desarrollando a partir de las especificaciones de comportamiento"
Descripción:
@luque
luque / gist:0c60e4f7af690eac6f35fbb38cc9a16b
Last active May 6, 2019 14:35
Development of constructivist software libraries
We have developed PharoPDS (https://github.com/osoco/PharoPDS) ---a Pharo library of probabilistic data
structures (Bloom filters, etc.)--- in the spirit of a Seymour Papert's "microworlds".
The library provides built-in interactive tutorials and domain-specific playground tools to allow the
users (developers in this case) exploring, playing and learning the data structures.
See also: https://osoco.es/thoughts/2019/05/understanding-bloom-filters-with-pharo-smalltalk/
The unique combination of concepts of Pharo Smalltalk and "moldable development" enable us to build the
instrospection, tooling and visualization with only a few lines of code.
Introduction
============
Industry statistics as a whole have failed to improve much since 1968, when software engineering and
scientific management were introduced as means for resolving the "software crisis". Unfortunately
abandoned projects, cost/time overruns, and bloated, buggy software still dominate the landscape.
In spite of the efforts to mitigate this situation --like XP, agile, software craftsmanship or DDD-- the
reality is that a usual software project stack involves an increasingly larger number of programming
languages, DSLs, frameworks, systems, tools, techniques and processes, so it is a fact that the
@luque
luque / osoco-lechazoconf-2018
Created April 3, 2018 10:46
Reseña Patrocinio Oro LechazoConf 2018
En OSOCO llevamos más de 15 años colaborando en la creación de productos basados en software con
startups y con empresas medianas y grandes. Entendemos dicha colaboración de una forma
holística. Los retos a los que se enfrentan nuestros clientes no son problemas técnicos que conocen
de antemano, sino situaciones de incertidumbre que requieren flexibilidad y rapidez a la hora de
tomar decisiones.
Por ello, nuestra relación con ellos no se limita a ofrecerles servicios de desarrollo. En su lugar,
nuestra prioridad es entender su propuesta de valor, para así ser capaces de sugerir opciones
viables que agilicen la salida al mercado del producto o servicio.
Augmenting Human Intellect: A Conceptual Framework by Doublas C. Engelbart.
(http://www.dougengelbart.org/pubs/augment-3906.html0)
By "augmenting human intellect" we mean:
- increasing the capability of a man to approach a complex problem situation,
- to gain comprehension to suit his particular needs,
- and to derive solutions to problems.
The first phase of a program aimed at developing means to augment the human intellect.
@luque
luque / es-cqrs-trenches-notes
Last active October 25, 2017 13:08
ES y CQRS desde las trincheras - Nota preparatorias
* Descripción
Event sourcing es una aproximación distinta de la tradicional (salvo en algunos sectores) al concepto de persistencia
de una aplicación, que aunque ni mucho menos nueva, está empezando a considerarse cada vez con más frecuencia como una
opción interesante en algunos contextos.
Tanto event sourcing como CQRS (Command-Query Responsibility Segregation) constituyen un potente paradigma de arquitectura
del que se puede sacar un gran partido, pero que como todo, no está exento de trampas a evitar y detalles a tener en cuenta
si se quiere aplicar con éxito.
Following notes from:
* NixOS manual: https://nixos.org/nixos/manual/
* https://chris-martin.org/2015/installing-nixos
For systems without CD drive, the NixOS live CD can be booted from a USB stick:
$ curl -O https://d3g5gsiof5omrk.cloudfront.net/nixos/17.03/nixos-17.03.1769.da2159dafb/nixos-minimal-17.03.1769.da2159dafb-x86_64-linux.iso
# dd if=nixos-minimal-17.03.1769.da2159dafb-x86_64-linux.iso of=/dev/sdc
@luque
luque / Domain-Specific Tools talk
Last active July 17, 2017 11:15
Notes for Domain-Specific Tools talk
* Títulos potenciales:
- Building Domain-driven Development Tools
- Agile Domain-aware Tools to craft (design, assess, learn, visualize, etc.) your code
- Moldable tools to craft your code
* Descripción:
Las herramientas de desarrollo tienen un impacto sobre los hábitos mentales de los desarrolladores de software,
afectando directamente a cómo construimos, percibimos y razonamos acerca del software e incluso limitando el
rango de las potenciales soluciones que podemos alcanzar.