Archive for the 'productividad' Category

Continuous Integration: Improving Software Quality and Reducing Risk, Paul M. Duvall

Sinopsis editorial:

For any software developer who has spent days in “integration hell,” cobbling together myriad software components, Continuous Integration: Improving Software Quality and Reducing Risk illustrates how to transform integration from a necessary evil into an everyday part of the development process. The key, as the authors show, is to integrate regularly and often using continuous integration (CI) practices and techniques.

The authors first examine the concept of CI and its practices from the ground up and then move on to explore other effective processes performed by CI systems, such as database integration, testing, inspection, deployment, and feedback. Through more than forty CI-related practices using application examples in different languages, readers learn that CI leads to more rapid software development, produces deployable software at every step in the development lifecycle, and reduces the time between defect introduction and detection, saving time and lowering costs. With successful implementation of CI, developers reduce risks and repetitive manual processes, and teams receive better project visibility.

 

 

 

 

Valoración: Muy recomendable.

 

Más información :

Refactoring, Martin Fowler

Sinopsis Editorial:

As the application of object technology–particularly the Java programming language–has become commonplace, a new problem has emerged to confront the software development community. Significant numbers of poorly designed programs have been created by less-experienced developers, resulting in applications that are inefficient and hard to maintain and extend. Increasingly, software system professionals are discovering just how difficult it is to work with these inherited, “non-optimal” applications. For several years, expert-level object programmers have employed a growing collection of techniques to improve the structural integrity and performance of such existing software programs. Referred to as “refactoring,” these practices have remained in the domain of experts because no attempt has been made to transcribe the lore into a form that all developers could use. . .until now. In Refactoring: Improving the Design of Existing Code, renowned object technology mentor Martin Fowler breaks new ground, demystifying these master practices and demonstrating how software practitioners can realize the significant benefits of this new process.

 

With proper training a skilled system designer can take a bad design and rework it into well-designed, robust code. In this book, Martin Fowler shows you where opportunities for refactoring typically can be found, and how to go about reworking a bad design into a good one. Each refactoring step is simple–seemingly too simple to be worth doing. Refactoring may involve moving a field from one class to another, or pulling some code out of a method to turn it into its own method, or even pushing some code up or down a hierarchy. While these individual steps may seem elementary, the cumulative effect of such small changes can radically improve the design. Refactoring is a proven way to prevent software decay.

 

In addition to discussing the various techniques of refactoring, the author provides a detailed catalog of more than seventy proven refactorings with helpful pointers that teach you when to apply them; step-by-step instructions for applying each refactoring; and an example illustrating how the refactoring works. The illustrative examples are written in Java, but the ideas are applicable to any object-oriented programming language.

 

El mero hecho de querer leer este libro o de haberlo leído ya te identifica como un profesional con unas inquietudes superiores a la media. Este libro es para mejorar tu código, para aprender a reescribir tu código para que sea más mantenible, más comprensible, más coherente y cohesionado. Habla de refactorizar, es decir, reescribir tu código para conseguir lo anterior sin añadir, cambiar o eliminar ninguna funcionalidad existente.

 

Martin Fowler es una de las personalidades actuales en el campo de la ingeniería del software, un profesional que sienta cátedra con cada uno de sus escritos. Su página web es digna de leerse de principio a fin. Quizás este libro no destaque especialmente por su complejidad o profundidad, es un libro de buenas prácticas, de consejos para reescribir el código, sin embargo el nivel de profundidad al que llega es digno de agradecer.

 

Valoración: IMPRESCINDIBLE

 

Más información :

La semana laboral de 4 horas, Timothy Ferriss

Sinopsis editorial:

Olvídate del trasnochado concepto de jubilación y deja de aplazar tu vida: no hace falta esperar; existen demasiadas razones para no hacerlo. Si tu sueño es dejar de depender de un sueldo, viajar por el mundo a todo tren, ingresar más de 10.000 euros al mes o, simplemente, vivir más y trabajar menos, este libro es la brújula que necesitas. En esta guía paso a paso sobre cómo diseñar tu vida descubrirás: -Cómo Tim pasó de ganar 40.000 dólares al mes trabajando 80 horas semanales a 40.000 dólares mensuales en 4 horas por semana. -Cómo subcontratar a ayudantes virtuales y dedicarte a hacer lo que quieras. -Que existen ejecutivos de grandes empresas recorriendo el mundo sin dejar su trabajo. -Cómo eliminar el 50% de tu trabajo en 48 horas aplicando lo s principios de un olvidado economista italiano. -Cómo transformar una carrera profesional larga en breves temporadas de actividad laboral y frecuentes «minijubilaciones».

 

Valoración: Entretenido

 

Más información :

tr, el comando para modificar caracteres

El otro día tuve que pasar a minúscula el nombre de una serie (unos 30) de ficheros que me habían pasado. Cambiar el nombre, uno a uno, me hubiera llevado como 10 minutos así que busqué algún script que automatizara el trabajo.

El script que encontré es el siguiente :

for i in `ls -1`; do mv $i `echo $i |tr “[:upper:]” “[:lower:]“`; done

Fácil y rápido, te pasa a minúscula todos los caracteres que estuvieran a mayúscula para los ficheros dentro del directorio desde donde ejecutes la sentencia.

Este pequeño fragmento de código me dió a conocer un comando que no conocía tr, que según su página man, sirve para “traducir, –estrujar– y/o eliminar caracteres”.

Ciertamente este comando no es muy potente ya que sólo permite especificar ún carácter o un grupo de los ya predefinidos, la lista puede verse ejecutando tr --help. Esto impide definir expresiones regulares, pero claro, el objetivo de este comando no es ese.

Algunos ejemplos más son los siguientes:

# Cambia espacios en blanco por guión bajo
tr [:blank:] _

# Cambia todo aquel carácter que no sea un carácter de control o de puntuación
tr -c "[:cntrl:][:punct:]" "*"

The productive programmer, Neil Ford

No recuerdo como descubrí la existencia de este libro, seguramente a través de amazon. Sea como fuere, fué una suerte el haberlo encontrado pues me ha dado conocer grandes consejos para mejorar mi productividad laboral. La verdad es que últimamente estoy un poco obsesionado con este tema y es posible que escriba algunas entradas más relacionadas.

Anyone who develops software for a living needs a proven way to produce it better, faster, and cheaper. The Productive Programmer offers critical timesaving and productivity tools that you can adopt right away, no matter what platform you use. Master developer Neal Ford not only offers advice on the mechanics of productivity-how to work smarter, spurn interruptions, get the most out your computer, and avoid repetition-he also details valuable practices that will help you elude common traps, improve your code, and become more valuable to your team. You’ll learn to: Write the test before you write the code Manage the lifecycle of your objects fastidiously Build only what you need now, not what you might need later Apply ancient philosophies to software development Question authority, rather than blindly adhere to standards Make hard things easier and impossible things possible through meta-programming Be sure all code within a method is at the same level of abstraction Pick the right editor and assemble the best tools for the job

This isn’t theory, but the fruits of Ford’s real-world experience as an Application Architect at the global IT consultancy ThoughtWorks. Whether you’re a beginner or a pro with years of experience, you’ll improve your work and your career with the simple and straightforward principles in The Productive Programmer.

Todo trabajador suele, a lo largo del tiempo, definir y adoptar un conjunto de prácticas que facilitan y agilizan el desarrollo de su actividad. En el ámbito del desarrollo software este aspecto es determinante para destacar como empresa e incluso como profesional. Resulta también llamativo que las empresas no formen a sus trabajadores para ser más productivos, ofrecen cursos de lenguajes de programación, bases de datos, BPMs, CRMs, servidores, pero no cursos de productividad que a corto-medio plazo tendrán mayor rendimiento que cualquier certificación.

Este libro habla de atacar la carencia de productividad desde distintos flancos. Para ser más productivo no es imprescindible saber más, aunque eso siempre ayuda, basta con adoptar una serie de pautas que hagan tu día a día más agradable y al final de la jornada estés satisfecho contigo mismo.

A continuación voy a listar algunos consejos que se proponen en este libro para mejorar nuestro rendimiento en el trabajo:

  • Automatizar tareas: tener un conjunto de scripts para cada proyecto que te permitan automatizar todas la tareas posibles.
  • Mejorar la comunicación con nuestros compañeros y clientes : es decir, intentar hablar un lenguaje común que no de lugar a confusiones y evite malentendidos.
  • Intentar máximimizar el flow : establecer horas en las que no se debe ser molestado excepto causa mayor (ie atentando terrorista en tu edificio), desactivar mensajes emergentes, correo, im, …