Estándar

Viernes video – vv – II

Hoy en Viernes Video:

Desde el foro de canonistas.com Alberto Gallego presenta un corto al NotodoFilmFest que se titula «el hombre que no podía llorar».

Realizado con una Canon 5D Mark II

http://www.notodofilmfest.com/#/Sala/Ficha/30800/

Ahora dos videos que he visto en xataka

 

 

Detrás de la cámara de un fotógrafo de bodas. Usa un goPro enganchada a su cámara y así podemos ver el proceso completo de un fotógrafo de bodas.

A mi no me gusta mucho el tipo de fotos que hace, pero si es muy instructivo.

[vimeo video_id=»33219766″ width=»400″ height=»300″ title=»Yes» byline=»Yes» portrait=»Yes» autoplay=»No» loop=»No» color=»00adef»]

 

 

Timelapse aspiradora, espectacular, cuanto trabajo llevará detrás planificar y hacer un video así.

[vimeo video_id=»18125967″ width=»400″ height=»300″ title=»Yes» byline=»Yes» portrait=»Yes» autoplay=»No» loop=»No» color=»00adef»]

 

Estándar

Viernes Video vv

Hola,

es Viernes y toca Video.

Hoy un par de videos de unos figuras del foro de canonistas.

El primero, de Miguel A. Sojo y Javier Ortega titulado «Esperando a God…»
Ha sido galardonado con premio del jurado en el Festival Cortada de Vitoria sección de cortometrajes de 2 minutos.

Está grabado con 2 camaras Canon 550d, utilizando 2 canon 50mm 1.8, un tamron 17-50 2.8, un macro nikon 2.8 un pentacon 29mm 2.8.
El sonido con pertiga y micro a una grabadora zoom, 2 monopies y un volante manfrotto.

El resultado:

Paranoia total (un trauma infantil con síndrome de estocolmo)

El segunto es de athose y se titula «Depressed»

Grabado con una Canon 7D y Lente Canon EF 50mm 1.8 II con la siguiente exposición f1.8 iso 125 1/50 .

Es capaz de hacer algo como ésto probando, no quiero pensar lo que hará currandoselo un poco.

[vimeo video_id=»25570382″ width=»550″ height=»300″ title=»Yes» byline=»Yes» portrait=»Yes» autoplay=»No» loop=»No» color=»00adef»]

Que buen rollo eh??

Puedes ver otros videos del foro

Estándar

Grails LDAP authentication and authorization

Today I’ve been investigating how to integrate a Grails aplication with an LDAP server to perform authentication and authorization.

There are several plugins available to do the authentication in a grails way.

My choice is Spring Security Core Plugin because it is mature and has several extension plugins to extend the functionality and provide integrations with external systems like Facebook, Twitter, OpenId and LDAP .

Installation and configuration are very well documented at : http://grails-plugins.github.com/grails-spring-security-core/docs/manual/

Peter Ledbrook wrote a great introductory article Simplified Spring Security with Grails .

I’ve updated the example application in the post to do the authentication using an LDAP Server.

My server has the following structure:

Sample LDAP structure

Yo can download the sample.ldif

Once you have all the LDAP structure, install the extension LDAP plugin for Spring Security Core

1
grails install-plugin spring-security-ldap

Now modify Config.groovy adding the specific configuration for LDAP spring-security-ldap

1
2
3
4
5
6
7
8
9
10
11
grails.plugins.springsecurity.providerNames = ['ldapAuthProvider','anonymousAuthenticationProvider','rememberMeAuthenticationProvider']
grails.plugins.springsecurity.ldap.context.managerDn = 'uid=admin,ou=system'
grails.plugins.springsecurity.ldap.context.managerPassword = 'YOUR_PASSWORD'
grails.plugins.springsecurity.ldap.context.server = 'ldap://10.99.8.135:10389'
grails.plugins.springsecurity.ldap.authorities.groupSearchBase = 'ou=Groups,dc=example,dc=com'
grails.plugins.springsecurity.ldap.authorities.retrieveGroupRoles = true
grails.plugins.springsecurity.ldap.authorities.retrieveDatabaseRoles = false
grails.plugins.springsecurity.ldap.authorities.groupSearchFilter = 'member={0}'
grails.plugins.springsecurity.ldap.search.base = 'dc=example,dc=com'
grails.plugins.springsecurity.ldap.search.attributesToReturn = ['mail', 'cn', 'sn', 'givenName', 'jpegPhoto' , 'telephoneNumber']
grails.plugins.springsecurity.ldap.authenticator.attributesToReturn = ['mail', 'cn', 'sn', 'givenName', 'jpegPhoto' , 'telephoneNumber']

 

Now you are ready to authenticate against your LDAP, also the group membership is readed from LDAP.

In the expample application the sec tag lib is used to show a link to the create post action based on the role of the logged user.

1
2
3
<sec:ifAllGranted roles="ROLE_USER">
  <g:link controller="post" action="timeline">My Timeline</g:link>
</sec:ifAllGranted>

How is this managed if you are using an LDAP? the answer is simple as everything in grails. Create a group in your LDAP named USER and add the users to it.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
dn: cn=USER,ou=Groups,dc=example,dc=com
objectClass: groupOfNames
objectClass: top
cn: USER
description: USER_ROLE
member: uid=wpauli,ou=Users,dc=example,dc=com
member: uid=aeinstein,ou=Users,dc=example,dc=com
member: uid=mborn,ou=Users,dc=example,dc=com
member: uid=mcurie,ou=Users,dc=example,dc=com
member: uid=sito,ou=Users,dc=example,dc=com
createTimestamp: 20111121102018Z
creatorsName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system
modifiersName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system
modifyTimestamp: 20111121110901Z

I’ve added to the application some other properties that came from LDAP ( Photo, Telephone number, Full Name ).

This is done extending the org.springframework.security.core.userdetails.User to add all new attributes:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import org.springframework.security.core.GrantedAuthority
import org.springframework.security.core.userdetails.User
 
class MyUserDetails extends User {
 
    // extra instance variables final String fullname final String email final String title
    String fullname
    String email
    String title
    String phone
 
    byte[] photo
 
    MyUserDetails(String username, String password, boolean enabled, boolean accountNonExpired, boolean credentialsNonExpired, boolean accountNonLocked, Collection authorities, String fullname, String email, String title, byte[] photo, String phone) {
 
        super(username, password, enabled, accountNonExpired, credentialsNonExpired, accountNonLocked, authorities)
 
        this.fullname = fullname
        this.email = email
        this.title = title
        this.photo = photo
        this.phone = phone
    }
 
}

And providing your own implementation for the org.springframework.security.ldap.userdetails.UserDetailsContextMapper interface.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import org.springframework.ldap.core.DirContextAdapter
import org.springframework.ldap.core.DirContextOperations
import org.springframework.security.core.userdetails.UserDetails
import org.springframework.security.ldap.userdetails.UserDetailsContextMapper
/**
 *
 * @author SiTo
 */
 
class MyUserDetailsContextMapper implements UserDetailsContextMapper {
 
    UserDetails mapUserFromContext(DirContextOperations ctx, String username, Collection authorities) {
 
        String fullname = ctx.originalAttrs.attrs['cn'].values[0]
        String email = ctx.originalAttrs.attrs['mail'].values[0].toString().toLowerCase()
 
        def title = ctx.originalAttrs.attrs['sn']
 
        def phone = ctx.getStringAttribute('telephoneNumber')
 
        byte[] photo = (byte[])ctx.getObjectAttribute('jpegPhoto')
 
        def userDetails = new MyUserDetails(username, '', true, true, true, true,
            authorities, fullname, email, title == null ? '' : title.values[0], photo, phone)
 
        return userDetails
    }
 
    void mapUserToContext(UserDetails user, DirContextAdapter ctx) {
        throw new IllegalStateException("Only retrieving data from LDAP is currently supported")
    }
 
}

The final step is register the custom implementation using the Spring DSL in the resources.groovy file

1
2
3
4
5
beans = {
   ldapUserDetailsMapper(MyUserDetailsContextMapper) {
      // bean attributes
   }
}

Now we are ready to use all new properties that are maintained by the LDAP into our app.

For example, show the Photo of the logged user:

Add the following method to your PersonController.groovy

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class PersonController {
 
    def springSecurityService
 
    // PersonController CODE
 
    def photo = {
        def userDetails = springSecurityService.principal
        def photo = new File(GrailsResourceUtils.WEB_APP_DIR  + "/images/person.jpg").readBytes()
 
        if( userDetails.photo != null ){
            photo = userDetails.photo
        }
 
        response.outputStream << photo
        response.setHeader("Content-disposition", "attachment; filename=avatar.jpg")
        response.contentType = 'image/jpeg'
        response.outputStream << photo
        response.outputStream.flush()
        return;
 
    }
}

And modify the main.gsp to show the photo:

 

1
2
3
4
         <sec:ifLoggedIn>
          Hola <sec:loggedInUserInfo field="fullname"/> [<sec:loggedInUserInfo field="phone"/>] (<g:link controller="logout">Salir</g:link>)
          <img src="${createLink(controller:'person', action:'photo')}" width="40px" />
         </sec:ifLoggedIn>

 

Done!

 

This is how it looks:

That’s all…

Grails Rocks!

See you.

Estándar

fuego y puestas de sol

Hola,

este puente he tenido la oportunidad de hacer unas fotos en el campo en la hora azul.

El resultado:

luna hallowen

Ésta es muy apropiada para el Halloween

fuego

calavera

Si alguien sabe decirme de que reptil puede ser éste cráneo que me encontré, lo agradecería. No sé si es un lagarto al algún tipo de serpiente.

puestadesol

y para terminar un HDR de tres fotos

hdr

Hasta la proxima

Estándar

Resúmen del workshop de fotografía de retrato

 

El Domingo 25 estuve en el curso de fotografía de retrato que organizó workshopexperience.

En líneas generales, estuvo muy bien, quizás demasiada gente.Si los organizaran con menos asistentes
creo que se sacaría todavía más partido.
El profesor, muy bueno. Un profesional con amplia experiencia ,  soltura y desparpajo enseñando.

Empezamos fuerte, con frases que definen bien el tipo de fotografía de retrato:

Los retratos no son fotos de carnet,  Madrid está lleno de fotomatones

o

Intenta robar parte del alma del sujeto

Consejos para hacer retratos:

  •   Lo fundamental en la fotografía de retrato es la mirada y si lo acompañamos de las manos mejor siempre que aporten algo a la escena.

 

Ana María Matute ( http://joneztala.es/ )
Ana María Matute ( http://joneztala.es/ )

 

  • En cuanto a la fotografía digital, intentar no revisar las fotos en el visor, para forzarnos a «ver la toma» antes derealizar la captura.  «Mejor poco y bueno que mucho y malo».
  • Aguantar la cámara y esperar el gesto, no disparar como una ametralladora.

 

Emilio Botín ( por http://joneztala.es/)
Emilio Botín ( por http://joneztala.es/)

 

  • Si hay maquillaje de por medio, SIEMPRE base mate, el maquillaje con base de brillo arruinará cualquier sesión.

Temas técnicos:

  • Usar objetivos luminosos para situaciones de poca luz. Permiten disparar sin usar flash y proporcionan un gran desenfoque.
  • Teleobjetivos cortos para dar espacio vital al sujeto retratado. Puff, el canon 70-200 F2.8 que bien me vendría 😛

Otros consejos:

  • Crear complicidad con el sujeto y así obtener expresiones más naturales y relajadas.
  • Intentar que se olvide de la cámara.
  • El profesor en algunas ocasiones antes de realizar una sesión de retratos, le realiza una pequeña entrevista con un café, sin cámara para intentar conocerle más y así poder «Capturar el semblante físico e inentar captar su carácter» . (éste hombre toma mucho café, lo usa para ganarse a sus «clientes» 😀 )

La composición

  •  No hay nada por encima del retratado
  •  Ojo con los espacio vacíos, siempre tienen que estar justificados.
  •  Cuidar el fondo, no puede haber distracciones, sobre todo en exteriores.
Mario en la ventana
Mario en la ventana
  •  No tengas miedo a romper las reglas (como la de los tercios)
  •  No hay problema en cortar parte de la cabeza (en determinados encuadres claro)
  •  Siempre a la altura de su mirada, y con el foco en los ojos
  •  No hace falta contarlo absolutamente todo en una foto, deja que el espectador piense al ver la foto. (Por ejemplo, no hace falta sacar lo que está mirando el retratado)
Lo que hay ahí !!
Lo que hay ahí !!
  •  Un retrato con más de una persona, es muy complicado que funcione. Hay que tener mucho cuidado con que una de las dos personas retratadas no nos distraiga de la otra.
newman y redford
Newman y Redford (cada uno mirando para un lado)

El encuadre

  • Primerísimo plano: Parte del rostro del sujeto.
  • Primer plano: El rostro ocupa toda la foto.
  • Plano medio: Rostro , hombros y parte del pecho
  • Plano americano: Todo el sujeto hasta justo por encima o debajo de la rodilla.
  • Plano general: Todo el sujeto y parte del entorno.
  • Gran plano general: Todo el sujeto y el escenario en el que se encuentra.

Tipos de iluminación horizontal:

  • Frontal (0º): Proporciona una luz muy plana. Elimina defectos o imperfecciones.
  • Lateral (de 0º a 45º): Aumenta el contraste y añade profundidad a la foto a través de las sombras que produce.
  • Lateral (de 45º a 90º): Se usa para resaltar un perfil. Es una iluminación que produce unas sombras muy duras.
  • Crea una clima misterioso. Debido a éstas características, se suele usar sin difusor para acentuar más el efecto.
  • Contraluz (de 90º a 180º): Poco usada en retratos, salvo para crear siluetas y perfilar al sujeto.

Tipos de iluminación vertical:

  • Cenital: 90º en la vertical del sujeto. Usada para dotar una escena de una luz general.
  • Alta: Es la disposición de la luz natural. Si es demasiado alta, se acentúan las sombras sobre los ojos.
  • Inferior (o de candilejas): Desde el suelo. Usada amplicamente para expresar tensión y misterio.

Enlaces interesantes sobre iluminación:

Color o blanco y negro:

Pues depende, lo fundamental es intentar educar tu mirada como fotógrafo para que a la hora de realizar
la toma, realices el encuadre la iluminación y el resto de parámetrizaciones de la exposición teniendo en cuenta el
post-proceso que vas a realizar, vamos que hagas la foto teniendo en cuenta si la vas a pasar a blanco y negro.

Podeis ver un par de tutoriales que publiqué hace un tiempo de como realizar la conversión a blanco y negro usando Digital Photo Professional y Photoshop.

Un ejemplo propuesto en el curso:

Tres personas con camisetas de colores, juntas en la misma foto el contraste de los colores hacía llamativa la foto
y el pasarla a blanco y negro, hacía que la foto no mostrase nada. Esa foto era claramente a color desde el momento
en el que decidimos coger la camara para hacerla.

Prácticas:

Durante el curso estuvimos realizando difentes ejercicios para ir practicando el complicado mundo de los retratos.

En el exterior:

Con el sujeto totalmente en zonas de sombra (sin luz directa del sol)
En el sol, usando como luz secundaria el reflejo de un reflector blanco para compensar las sombras duras.
Con fondos feos, para intentar mejorar nuestros encuadres y concienciarnos de que hay que tenerlos
en cuenta.

En el intenior:

Usando una única luz alta (mas o menos a 45º por encima del sujeto) y practicando con un reflector blanco en un lado
del sujeto para ver como afectaba a las sombras.

Para finalizar:

Nos fuimos a una plaza de madrid, donde los fondos de los retratos se hacían mas evidentes, porque
son mas llamativos. Ahí es donde estuvimos viendo las ventajas de usar un tele corto (desenfoques del fondo) combinados
con un flash de mano usando un cable syncrho para separarlo de la cámara( convierte el destello del flash en la luz principal
y el sol en la luz de relleno ).

Supongo que será porque no expuse bien, o por lo poco que conozco del uso del flash de mano, pero las fotos que yo hice
me quedaron un poco artificiales, se notaba demasiado la diferencia en la iluminación, y a mi me daban la impresión
incluso de que estaba recortado el sujeto y puesto en otra foto.

Como conclusión:

Un curso muy recomendable y agradable impartido por un muy buen fotógrafo y profesor.

Pasé una mañana muy divertida con Susana, Gema estupendas modelis las dos (fotógrafas no tanto :P) y Félix (http://fotocar.es/)

En cuanto tenga un ratillo pongo alguna foto más tomada durante las prácticas del curso…

Estándar

DomPdf y las imagenes

Para un proyecto en PHP tenía que generar unos PDF’s.

De casualidad encontré la una librería para la generación de PDF’s llamada dompdf usando como plantilla un HTML.

La librería funciona genial y es muy facil de usar, pero me ha dado un pequeño quebradero de cabeza. Incluir imágenes.

Por si a alguien le sirve, parece que a DomPDF no le gustan las rutas absolutas para insertar imágenes. He probado diferentes versiones y la única manera de hacerlo funcionar es poner la ruta relativa a la raiz del dominio.

En vez de:

1
<img src="http://eldominio.es/images/laimagen.jpg" alt="" />

usar:

1
<img src="./images/laimagen.jpg"/>

 

Estándar

Imagemagick y shell script para juntar imagenes

Hola,

hoy toca un trocillo de código que puede ser bastante util.

Me hacía falta juntar 60 imágenes de dos en dos para el proyecto de descucheck.es así que con un par de preguntas a google, he dado con el comando para realizar el «montage» usando ImageMagick .

1
montage 2.png 2t.png -tile 2x1 -geometry +0+0 2j.png

Un pequeño script en la línea de comandos, y en unos pocos segundos el resultado deseado.

1
for ((i=2;i<30;i++)); do montage $i.png $i"t.png" -tile 2x1 -geometry +0+0 $i"j.png"; done

Espero que os sea de utilidad.

 

Estándar

Proyecto blanco y negro

Decidido, voy a comenzar a realizar más fotografías en blanco y negro.

Éste verano intentaré olvidarme del color para intentar mejorar mi técnica , composición, gestión de la luz y post-proceso.

Como inspiración os dejo unos enlaces y fotos:

 

Iré poniendo fotos en el blog a ver que tal.