Carlos Ble

Carlos Ble

I am a professional software developer, I solve problems.

I also teach and mentor developers to build better software.

Working as an independent professional since 2009.

Can I help you?

  • Do you need high quality tailor-made software?
  • Need training on TDD, clean code or refactoring?
  • Is it risky? do you need advise?
  • May I pair with you to write better code?

Events

Upcoming public training courses:

  1. [in English] May 5, 6 & 7
    TDD - Train the Trainers (iSQI)
    Potsdam, Berlin
  2. [en Español] 23, 24 y 25 de Abril.
    Curso de TDD con examen de certificacion iSQI
    Madrid
  3. [en Español] 29, 30 y 31 de Octubre.
    Curso de TDD con examen de certificacion iSQI
    Madrid

Conferences:

  1. I'll be at SocratesUK 2014
  2. I'll be at the London Test Gathering Workshops.

Archive for the ‘Screencasts’ Category



Recording screencasts with Linux

I am recording some screencasts for a TDD training. I will tell you more about that later. For now, let me write how am I doing it for me to remember in the future.

For recording I am using Kazam, adding the ppa repository to my Ubuntu (apt-get install kazam). The "Audio source 1" is Built-in Audio Analog Stereo in my case. The "Encoder type" is "GStreamer - H264/MP4". Framerate is 10.

Once the screenshot is recorded I am using Kdenlive (apt-get install kdenlive) to cut parts I want to discard. Under the "Project" menu the item "Add Clip" let me load the recorded mp4. Then drag the the clip from the project view at the left hand side dropping it in the white region at the bottom, in the "Video 1" track.

After that "Render" (button) the video to produce another .mp4 file. Then open the .mp4 file with Audacity (apt-get install audacity).  Select a region where there is only noise and go to the "Effects" menu and choose the "Noise removal". Then click on "Get noise profile" in the pop up window. Right after that select the whole track and go again to "Noise removal", this time clicking "OK". Then export the file as .mp3.

Then  go back to Kdenlive and mute the audio, within the video track. There is a small icon for that at the left hand side, at the beginning of the track. Now "Add clip" again including the .mp3 file, to later drag it onto the "Audio 1" track. Finally "Render" again the video to product another .mp4 file.

Is not easy for at least thanks to this nice tools (Kazam, Audacity and Kdenlive) it's possible.

Clean Coders: E1 subtitulado

CleanCoders.com es el portal que contiene la serie de videos sobre código limpio de Uncle Bob. Es formación en video. Los episodios se corresponden con capítulos del libro "Clean Code". Es excelente para quien prefiere ver vídeos a leer libros. Además la formación es muy amena, es divertida.

En nuestro equipo (SaludOnNet) proyectamos un capítulo a la semana como actividad formativa. Me parece muy recomendable para los equipos de desarrollo. Hay gente que no suele leer libros técnicos para aprender pero el video les resulta más asequible.

Cuando ví el primer episodio me encantó. Y además pensé que es genial la forma en que el tío Bob cuenta toda esta batalla del desarrollo de software. Así que pensé tambien que quería que la gente que no domina el inglés, pudiera entenderlo.

Escribí un email al autor y él me pasó un guión que usó para hacer el video. No era exactamente lo que dice en el video pero me servía para entender algunas expresiones y palabras que de oído me era dificil sacar. Despues me puse a trabajar con Gnome-Subtitles y varias semanas más tarde ... ¡ya lo tenemos subtitulado en Español!

Se puede descargar aquí: E1-960x540.srt

La descarga de episodio 1, cuesta menos de un euro. Hasta la fecha el fichero se llama E1-960x540.mp4.  Mientras que el .mp4 y el .srt tengan el mismo nombre,  el reproductor VLC carga bien los subtitulos en Windows, Linux y MacOS. Se puede configurar para que las letras salgan amarillas y no blancas en el propio reproductor.
Si el fichero no se llama igual, podemos añadir manualmente los subtitulos. Es diferente la forma de añadirlos en Windows y Linux. Esta es la forma de hacerlo en ambos casos:

 

<-- Windows

Linux -->

 

 

 

 

¿Te gustaría que hubiese más episodios de Clean Code subtitulados en castellano?

 

 

This is the second part of the "Replace conditional with polymorphism" screencast, where I kept using the Command and Template Method design patterns. This time we see how a base controller class emerges from refactoring.

Nota: En los tests del controller que se muestran en el video hay un inconveniente y es que al usar " hardcoded json" como dato de entrada, puede haber bugs en el propio test. En una version posterior a este screencast, usamos el Translator para generar el json por nosotros en estos tests, ya que hay otro TestCase para los casos de serializacion-deserializacion. Es decir, hubo un refactor de tests.

Lectura adicional recomendada: Pensando en Generics

¿Te gustaría patrocinar el próximo screencast? Just let me know! :-)

First refactoring screencast

Note: Although this screencast is narrated in Spanish, the code is in English. Some parts of the code are legacy. There are more notes about this below. Although the code is C#, everything is valid for Java, including the use of Generics.

Me complace presentar el primero de una serie de screencasts narrados sobre refactoring. La idea surgió para ayudar en la formación de mi equipo de desarrollo pero quería tambien compartirlo con todo el mundo.

En este primer video vemos los patrones de diseño "Template Method", "Factory" y "Command", aplicando el refactoring "Replace conditional with polymorphism". Además veremos cómo usar "Generics" de manera emergente.

Aviso: Algunas partes del código eran heredadas. No prestes atención a la implementación del JsonTranslator ya que en este primer video es incorrecta. En el segundo vídeo veremos cómo en su lugar utilizamos DataContractJsonSerializer.
Las clases DTO tienen el sufijo puesto en el nombre para evitar colisiones con objetos que ya existían, pero no significa que sea una buena practica, es sólo convivencia temporal con código legado.

Desde ahora abro la posibilidad de que cualquier empresa que desarrolle software pueda patrocinar estos screencasts. Habría publicidad de la empresa al comienzo del screencast y en algún punto intermedio (una imagen con el logo). Si tu empresa tìene interes, no dudes en contactar conmigo.