Proxy: Patrón de Diseño para Seguridad
Entre los patrones de diseño que ya comenté en otro post, quiero agregar uno que dejé pasar, y al que he retomado hace poco, tanto de forma teórica, como para implementación en algunos desarrollos. Es el patrón de diseño Proxy.
Este patrón es usado para agregar una capa de seguridad sobre un sistema ya desarrollado y que es totalmente ajeno a este aspecto. Es decir, podemos desarrollar un sistema de control de almacén en el que solo tendremos en cuenta el stock en sí del almacén y, para agregar los usuarios, permisos y demás, entonces, agregamos el la capa proxy que se encarga de asegurar el acceso solo a los usuarios que deban de poder acceder.
Leer más ➤Desarrollo Web
Hace tiempo, comenté acerca del desarrollo web en plataformas como Java, PHP, Erlang, Python... en ese momento, veía la maraña en la que está tejida la red de redes, el abanico de posibilidades a la hora de desarrollar una aplicación web y comenzaban a sonar términos como CRUD, SOA, MVC, ActiveRecord, Scaffolding...
Es una verdad que cada entorno, en cada lenguaje, ha ido implementando una serie de características que facilitasen y acelerasen la creación de entornos web, de toda índole, en poco tiempo y, una vez aislada la idea base, dado un nombre e incluso un acrónimo de tres letras (como el buen Jargon file manda :-) ), se convierte en un concepto de estudio e implementación en el resto de lenguajes.
Leer más ➤Lenguajes esotéricos
Otro viernes... las oficinas a medio gas y toca trabajar... me da por buscar información, ahora que aprendo más sobre Ruby y Erlang y, topo con un lenguaje llamado COW. Un lenguaje esotérico.
Leer más ➤Ruby: Esa pequeña Joya
El lenguaje de programación Ruby, creado por Yukihiro Matsumoto (a.k.a. Matz), fue ideado para ser un lenguaje que simplificara las actividades diarias y necesidades de programación de su creador, al igual que Perl (la otra joya) fuera creada por Larry Wall para cubrir sus necesidades como administrador de sistemas, Matz necesitaba un lenguaje que fuese igual o más potente que Perl, y con igual o mejor implementación de orientación a objetos que Python.
En su trabajo, Matz, usaba Perl, mientras desarrollaba Ruby en paralelo, hasta que fue lo suficientemente bueno como para reemplazarlo. El nombre de Ruby, por tanto, está motivado por la similitud, en simbología, con Perl. La primera liberación fue en 1995.
Leer más ➤Sistemas de Control de Versiones: ¿Centralizados o Distribuidos?
Desde hace tiempo, la tendencia de uso de los sistemas de control de versiones, ha sido el uso centralizado mediante sistemas tan populares como CVS o Subversion. Ahora, desde que muchos grandes proyectos optaran por los sistemas de control de versiones distribuidos, cada vez hay más gente que se va cambiando a ellos y, sobre todo, proyectos grandes.
¿Será que es mejor el enfoque distribuido al centralizado?
Leer más ➤Desarrollo Orientado a Pruebas (TDD)
El desarrollo orientado a pruebas (TDD, test driven development) es una forma de desarrollar basándose en que un cierto algoritmo responda de una forma específica a unos datos específicos. Para explicar mejor esto, voy a explicar primero el enfoque tradicional y luego expongo las mejoras que introduce esta forma.
Leer más ➤Bases de Datos Relacionales: SQLite, MySQL y PostgreSQL
Sobre los SGBD, cabe destacar, entre los que son libres, estos tres motores, de los cuales, dos de ellos son sistemas servidores y gestores de base de datos relacionales (MySQL y PostgreSQL) y otro es tan solo un motor embebido para aplicaciones monousuario o de muy baja carga (SQLite).
Los sistemas libres han hecho gala del uso de LAMP (Linux, Apache, MySQL y PHP) para el desarrollo rápido de webs. Estos sistemas son fáciles, rápidos y cómodos para usuarios nóveles, dan mucho control sobre el desarrollo y permiten, gracias a la cantidad de proyectos ya desarrollados, tener a disposición Foros, Bitácoras, CMS, ERP, CRM y muchos más tipos de webs.
Leer más ➤Servidor de hora en GNU/Linux
En las redes internas de la mayoría de empresas, se sucede la necesidad, muchas veces, de tener sincronización horaria en las máquinas para mejorar el rendimiento y la calidad de los datos a almacenar, de cara a anotaciones y lanzamiento de tareas programadas.
La sincronización horaria es completamente posible de llevar, simplemente, instalando un servidor de hora NTP dentro de nuestra red, para que nos haga de servidor de sincronización.
Leer más ➤Gráfico Burndown (más de Scrum)
En estos días, después de haber pasado más de 24 horas en el último Sprint, sin descansar, donde comenté la experiencia de haber usado Scrum y XP en [otro artículo][1], volvemos a la carga.
Esta vez, con dos semanas de Sprint, bastante más tiempo, podemos realizar algunas técnicas más para poder medir cuánto vamos a tardar realmente en terminar el proyecto que tenemos entre manos.
Leer más ➤Algoritmos heurísticos y algoritmos voraces
Realizando una práctica de la asignatura de programación 3, de la Universidad Nacional de Educación a Distancia (UNED), he podido comprobar la diferencia, en coste computacional y rendimiento, que supone realizar un algoritmo mediante un algoritmo heurístico, como puede ser el de vuelta atrás (backtracking) y un algoritmo voraz (reducción).
Leer más ➤Scrum y XP en la práctica
Hace un tiempo escribí sobre Srum y XP, en ese mismo artículo, comentaba que estas técnicas, tanto Scrum como XP, eran dos técnicas que me gustaban mucho y que probaría en un futuro... bueno, pues ese futuro ya es presente :-)
La semana pasada, tuvimos, en la empresa en que trabajo, la presión de entregar un proyecto de forma rápida. Pensé que, en estos casos, lo que más se necesita es, como no, la organización. No se puede estar haciendo una actividad de desarrollo entre varias personas y estar con la cabeza preguntando siempre: ¿qué queda por hacer?; así que, me lancé, cogí dos tacos de post-it, uno de tamaño normal para las partes a desarrollar y otro de tamaño más pequeño, para las tareas que hay dentro de cada una de las partes.
Leer más ➤Libros electrónicos
Hay mucha gente que piensa que este será el punto de partida de un dispositivo que permitirá reducir el consumo de papel, del formato de libro convencional y que, a nivel ecológico, tendrá un gran avance hacia un ecosistema más sostenible.
Leer más ➤Categorías
Etiquetas
- programación (110)
- desarrollo de software (79)
- erlang (75)
- opinión (37)
- noticia (36)
- libros (28)
- servidores (26)
- desarrollo web (24)
- base de datos (24)
- administración de sistemas (23)
- php (22)
- desarrollo ágil (22)
- empresa (21)
- otp (20)
- ruby (19)
- ingeniería de negocio (18)
- elixir (18)
- desarrollo profesional (16)
- redes (16)
- seguridad (14)