Links de Viernes 10/06/2016

facebook-insights

Obtener datos de multiples tablas en Oracle | JOIN

join

La sentencia JOIN en SQL permite combinar registros de dos o más tablas en una base de datos relacional. En el Lenguaje de Consultas Estructurado de Oracle (SQL) hay cinco tipos de JOINs: Natural JOIN, Self-join, Nonequijoins, Outer Join y Cross joins.

Matemáticamente, JOIN es composición relacional, la operación fundamental en el álgebra relacional, y, generalizando, es una función de composición.

Para entender como funciona la cláusula JOIN podemos ver el siguiente bloque de código

Podemos observar de forma reducida todos los tipos de JOIN que soporta una base de datos Oracle:

  • NATURAL JOIN une dos tablas basándose en las columnas que tengan el mismo nombre.
  • JOIN tabla2 USING nombre_columna realiza un equijoin basado en el nombre de columna que se especifica en la cláusula USING.
  • JOIN tabla2 ON tabla1.nombre_columna = tabla2.nombre_columna realiza un equijoin basado en la condición que se especifica en la cláusula ON.
  • LEFT / RIGHT / FULL OUTER son usados para realizar OUTER joins.
  • CROSS JOIN regresa un producto cartesiano de dos tablas.

Continue reading

Los 12 principios del manifiesto ágil

manifiesto ágil

En marzo de 2001, 17 críticos de los modelos de producción basados en procesos, convocados por Kent Beck, que había publicado un par de años antes el libro en el que explicaba la nueva metodología Extreme Programming Beck) se reunieron en Salt Lake City para discutir sobre el desarrollo de software.

En la reunión se acuñó el término “Métodos Ágiles” para definir a aquellos que estaban surgiendo como alternativa a las metodologías formales: CMM-SW, precursor del CMMI, PMI, SPICE (proyecto inicial de ISO 15504), a las que consideraban excesivamente “pesadas” y rígidas por su carácter normativo y fuerte dependencia de planificaciones detalladas, previas al desarrollo.

Los integrantes de la reunión resumieron en cuatro postulados lo que ha quedado denominado como “Manifiesto Ágil”, que son los valores sobre los que se asientan estos métodos. Hasta 2005, entre los defensores de los modelos de procesos y los de modelos ágiles fueron frecuentes las posturas radicales, más ocupadas en descalificar al otro, que en estudiar sus métodos y conocerlos para mejorar los propios.

Continue reading

¿Qué es la Gestión de Proyectos Predictiva?

Gestión de Proyectos

Algunos productos se desarrollan “a medida”, comenzando por el diseño, y ejecutando después un plan de ejecución; otros sin embargo son el resultado en serie de cadenas o procesos de producción.

Con los servicios ocurre algo similar: algunos son actuaciones únicas y específicas concebidas y realizadas para las necesidades de la ocasión, y otros son procedimientos normalizados, ejecutados según protocolos y prácticas estandarizadas, que con carácter repetitivo se emplean siempre para prestar el mismo servicio, o servicios del mismo tipo.

Se dice que los primeros son proyectos, y los segundos operaciones. Unos y otros tienen tres características comunes:

  • Los realizan personas.
  • Se ejecutan con recursos limitados.
  • Se llevan a cabo siguiendo una estrategia de actuación.

Los productos o servicios realizados por las organizaciones pueden ser el resultado de operaciones o de proyectos. Las operaciones desarrollan productos de características similares, o prestan servicios con un mismo protocolo de actuación.

Los electrodomésticos, muebles, automóviles, refrescos, prendas de vestir, etc. son ejemplos de productos realizados a través de operaciones.

La evaluación SCAMPI para medir la madurez CMMI de una empresa de software, o la impartición de un curso reglado de java son ejemplos de servicios habitualmente realizados como operaciones

gdp1

Continue reading

Links de Viernes 03/06/2016

WatchKit-main2

Y seguimos con mas recursos para IOS y WatchKit:

Links de Viernes 27/05/2016

watchOS-2-update-how-to

Links de Viernes 22/04/2016

manos-de-tijeras

He vuelto con nuevos links para leer en sus viernes de querer regresar a casa…

Links de Viernes 25/03/2016

swift2

El día de hoy les traigo muchos enlaces con información util para programación en Swift 2 y el IDE XCode para iPhone / iPad / WatchOS / MacOS.

Política de Transporte de Seguridad en IOS 9 | NSAppTransportSecurity

NSAppTransportSecurity

A partir de la versión 9 del sistema operativo IOS se implemento de fabrica la Política de Transporte de Seguridad que evita que una aplicación pueda hacer una petición http a una url insegura (permitiendo únicamente peticiones vía https).

Dicho comportamiento podremos observarlo con el siguiente error:

Connection failed: Error Domain=NSURLErrorDomain Code=-1022 "The resource could not be loaded because the App Transport Security policy requires the use of a secure connection." UserInfo={NSUnderlyingError=0x7fada0f31880 {Error Domain=kCFErrorDomainCFNetwork Code=-1022 "(null)"}, NSErrorFailingURLStringKey=MyServiceURL, NSErrorFailingURLKey=MyServiceURL, NSLocalizedDescription=The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.}

Para evitar la política de transporte de seguridad existen dos métodos a través del archivo de configuración info.plist de tu aplicación:

Método 1: Permitir acceso a cualquier url no segura (NSAllowsArbitraryLoads)

  • Abrir tu archivo info.plist
  • Crear un row del tipo dictionary con el nombre NSAppTransportSecurity
  • Dar click a la entrada NSAppTransportSecurity y crear un row de tipo Boolean con el nombre NSAllowsArbitraryLoads y el valor YES

Debería quedar así:

NSAllowsArbitraryLoads

Método 2: Permitir acceso a un dominio específico (NSExceptionDomains)

  • Abrir tu archivo info.plist
  • Crear un row del tipo dictionary con el nombre NSAppTransportSecurity
  • Dar click a la entrada NSAppTransportSecurity y crear un row de tipo dictionary con el nombre NSExceptionDomains
  • Dar click a la entrada NSExceptionDomains y crear un row de tipo dictionary con el nombre del dominio que vas a utilizar (ejemplo tudominio.com)
  • Dar click a la entrada tudominio.com y crear un row de tipo Boolean con el nombre NSExceptionAllowsInsecureHTTPLoads y el valor YES
  • Dar click nuevamente a la entrada tudominio.com y crear otro row de tipo Boolean con el nombre NSIncludesSubdomains y el valor YES

Debería quedar así:

NSExceptionDomains

Después de esto podrás conectarte de manera satisfactoria a la url que deseabas acceder.

Las lecciones que enseñamos con nuestro ejemplo son mucho más poderosas que las palabras

nuestro ejemplo

Quiero compartir con ustedes un mensaje del actual Presidente de Rotary International para el periodo 2015-2016:

Hace algunos años, me pidieron que hablara ante un club Interact en mi ciudad natal de Colombo (Sri Lanka). Siempre he tomado con seriedad mis interacciones con los jóvenes rotarios por lo que preparé mi discurso con sumo cuidado y con el mismo entusiasmo que para otros eventos. Después de la reunión, conversé con algunos interactianos, respondí sus preguntas y les expresé mis mejores deseos.

Salí del aula donde nos habíamos reunido esa tarde de otoño. El resplandeciente sol brillaba directamente en mis ojos por lo que busqué un poco de sombra detrás de una columna mientras esperaba que me recogieran.

Mientras esperaba oculto a la vista, escuché a los jóvenes que acababan de escuchar mi discurso. Por supuesto, sentí curiosidad. ¿Qué podrían estar diciendo? ¿Qué habían aprendido con mi presentación? Pronto me di cuenta que lo que habían aprendido no era exactamente lo que me había propuesto.

No hablaban de lo que les dije, de las historias que les conté o de las lecciones que quise impartir en su escuela. Para mi asombro, el principal tema de conversación fue mi corbata. Los escuché hablar sobre mi ropa occidental, mi historial y mis negocios; analizaron y opinaron sobre cada aspecto de mi apariencia y comportamiento. Justo cuando empezaron a especular sobre mi automóvil, llegaron a recogerme y salí a la vista. Es posible que se sintieran un poco avergonzados, pero igualmente les sonreí y me despedí mientras me subía al automóvil.

Sin importar lo que aprendieron de mí ese día, yo aprendí mucho más. Aprendí que las lecciones que enseñamos con nuestro ejemplo son mucho más poderosas que las palabras. Me di cuenta de que, como líder rotario y miembro prominente de la comunidad, para bien o para mal, era un modelo a seguir para esos jóvenes. Sus ojos estaban puestos en mí de una manera que no había notado antes. Si decidían imitarme, seguirían el ejemplo de lo que vieron, no de lo que les dije.

Todos los rotarios somos líderes de nuestras comunidades de una u otra manera. Todos asumimos la responsabilidad que eso conlleva. Nuestros valores e ideales rotarios no pueden limitarse al entorno de nuestros clubes sino que deben mantenerse en nosotros cada día. Dondequiera y con quienquiera que estemos, ya sea que participemos o no en la labor de Rotary, siempre representamos a Rotary. Debemos actuar en consecuencia: sobre lo que pensamos, decimos, hacemos y cómo lo hacemos. Nuestras comunidades y niños se merecen lo mejor de nosotros. K.R. RAVINDRAN