Este documento resume las principales novedades y cambios entre las versiones de PHP 5.6, 7.0, 7.1 y 7.2. Entre los cambios incompatibles se encuentran modificaciones en el manejo de excepciones, variables, listas y bucles foreach. Las nuevas características incluyen tipos escalares estrictos, el operador de coalescencia nula, clases anónimas y generadores. La documentación también destaca mejoras en rendimiento en PHP 7 gracias a optimizaciones en cadenas y arrays.
controladores de 1000 líneas, métodos con más de una responsabilidad, tocas una clase y se joden todas las demás, spaghetti code… basta!
si no soportas al menos dos de los elementos del listado anterior, bienvenido a cream code with objective-c
esta charla nos permitirá explorar un conjunto de técnicas y patrones que podemos aplicar en nuestro día a día para conseguir código más limpio, legible y sobre todo mantenible en el tiempo
http://www.idealista.com/labs/blog/idealista/descubre-que-es-el-creamcode-en-codemotion/
controladores de 1000 líneas, métodos con más de una responsabilidad, tocas una clase y se joden todas las demás, spaghetti code… basta!
si no soportas al menos dos de los elementos del listado anterior, bienvenido a cream code with objective-c
esta charla nos permitirá explorar un conjunto de técnicas y patrones que podemos aplicar en nuestro día a día para conseguir código más limpio, legible y sobre todo mantenible en el tiempo
http://www.idealista.com/labs/blog/idealista/descubre-que-es-el-creamcode-en-codemotion/
PHP, una introducción a modo de presentación como tutorial básico llegando hasta clases y pasando por la conexión con una oferta de servicios web mediante protocolo SOAP con WSDL.
Java Básico
- Introducción
- Variables, funciones
- Operadores y funciones matemáticas
- Estructuras de control de flujo
- Matrices de JavaScript
- Manejo de cadenas de texto
- Trabajando con fechas y horas
- Programación Orientada a Objetos con JavaScript
- Los eventos
- Los objetos del navegador
- Formularios y controles HTML intrínsecos
- Almacenando información del usuario: las cookies
- Expresiones regulares
- Introducción a AJAX
Función: estructura de una función, nombre de una función, resultados de una función, llamada a una función, prototipos de funciones, parámetros de una función, paso de parámetros por valor, parámetros const de una función, ámbito alcance, ámbito de programa, ámbito de bloque, variables locales, visibilidad de una función.
Slides for my talk in FrontFest 2018 (Madrid, Feb 17). It's a technical comparison of the change detection mechanism as implemented in AngularJS, React, Angular2 and VueJS
See demos at https://github.com/jabadia/frontfest-frameworks-demos
En esta primera lección estarás creando tus primeros ejemplos utilizando controles básicos.
Te recomiendo que visites:
http://gcoronelc.blogspot.pe/
http://www.desarrollasoftware.com/
https://www.youtube.com/channel/UC7c3C0Dtr6HnSpxAAWN643A
El desarrollo de una aplicación web debe utilizar la arquitectura en capas.
El patrón MVC te ayuda a definir cuales son las capas que debes utilizar al momento de desarrollar una aplicación.
PHP, una introducción a modo de presentación como tutorial básico llegando hasta clases y pasando por la conexión con una oferta de servicios web mediante protocolo SOAP con WSDL.
Java Básico
- Introducción
- Variables, funciones
- Operadores y funciones matemáticas
- Estructuras de control de flujo
- Matrices de JavaScript
- Manejo de cadenas de texto
- Trabajando con fechas y horas
- Programación Orientada a Objetos con JavaScript
- Los eventos
- Los objetos del navegador
- Formularios y controles HTML intrínsecos
- Almacenando información del usuario: las cookies
- Expresiones regulares
- Introducción a AJAX
Función: estructura de una función, nombre de una función, resultados de una función, llamada a una función, prototipos de funciones, parámetros de una función, paso de parámetros por valor, parámetros const de una función, ámbito alcance, ámbito de programa, ámbito de bloque, variables locales, visibilidad de una función.
Slides for my talk in FrontFest 2018 (Madrid, Feb 17). It's a technical comparison of the change detection mechanism as implemented in AngularJS, React, Angular2 and VueJS
See demos at https://github.com/jabadia/frontfest-frameworks-demos
En esta primera lección estarás creando tus primeros ejemplos utilizando controles básicos.
Te recomiendo que visites:
http://gcoronelc.blogspot.pe/
http://www.desarrollasoftware.com/
https://www.youtube.com/channel/UC7c3C0Dtr6HnSpxAAWN643A
El desarrollo de una aplicación web debe utilizar la arquitectura en capas.
El patrón MVC te ayuda a definir cuales son las capas que debes utilizar al momento de desarrollar una aplicación.
Drupal 8 ya está en camino y sabemos lo que estás pensando… ¿Cuáles son los cambios principales?
Este webinar de tan solo 1 hora de duración ofrece un panorama detallado de los cambios principales que podrás encontrar en Drupal 8 y una mirada exclusiva a algunas de las nuevas funciones y capacidades que estos cambios traen consigo:
- Editores: Views en el Core, más ( y mejores) bloques, funcionalidades de Entity mejoradas, etc.
- Desarrolladores de Front-end: HTML5, biblioteca, mejoras en accesibilidad, temas nuevos y elementos del UI, mejor rendimiento, etc.
- Desarrolladores de Back-end: Nuevo sistema de gestión de configuraciones, API Entity modificado por completo, caching mejorado y nuevas funciones de servicios integrados
How using Git together with software development best practices learned from Open Source development projects can increase efficiency and turnover for your activity
Skillms, web solution of talent management designed by BeezNest for small to medium-size companies with staff selection, 360° appraisals, skills management, training needs surveys and diversity at work.
Chamilo "Lectoura", proyecto Hackaton EdTech, Lima 2017Yannick Warnier
Proyecto de modificación de la plataforma Chamilo para ofrecer un sistema autónomo en Raspberry Pi con 370 mil textos en español y un sistema de medición de comprensión lectora.
Nivel muy básico de explicación de como se desarrolló la primera versión del plugin Chamilo para Wordpress, el cual se puede encontrar en https://github.com/chamilo/chamilo-wordpress/
Calidad de código en Chamilo: Behat, Travis-CI y Scrutinizer-CIYannick Warnier
En esta presentación, se muestran ejemplos de los esfuerzos realizados y de las herramientas usadas para mejorar la calidad del código de Chamilo (en particular a partir de la versión 1.11)
Diapositivas de soporte para la preparación a la certificación básica de docente de Chamilo 1.8 (CHACOBU18). Estas diapositivas contienen el 90% de los temas pedidos en el examen. Versión oficial.
Puede comprar su derecho de examen y pasar el examen inmediatamente en https://shop.beeznest.com/index.php?id_product=9&controller=product&id_lang=1
These were the support slides in the "Chamilo o Moodle, esta es la cuestión" conference organized by MENSA México in March 2013. It pinpoints and debunks myths that have been the tools of Moodle defender for the previous 2 years. Good support if you need to sell Chamilo against Moodle.
Aletas de Transferencia de Calor o Superficies Extendidas.pdfJuanAlbertoLugoMadri
Se hablara de las aletas de transferencia de calor y superficies extendidas ya que son muy importantes debido a que son estructuras diseñadas para aumentar el calor entre un fluido, un sólido y en qué sitio son utilizados estos materiales en la vida cotidiana
10. 5.6 a 7.0: BW incompatible
●
Dejar set_exception_handler() por
Exception/Throwable
●
Constructores internos: siempre devuelven
exceptions cuando fallan
●
Parse errors → “ParseError” object exception
http://php.net/manual/en/migration70.incompatible.php
11. 5.6 a 7.0: BW incompatible
●
E_STRICT
http://php.net/manual/en/migration70.incompatible.php
12. 5.6 a 7.0: BW incompatible
●
E_STRICT
http://php.net/manual/en/migration70.incompatible.php
13. 5.6 a 7.0: BW incompatible
●
Gestión de variables
http://php.net/manual/en/migration70.incompatible.php
14. 5.6 a 7.0: BW incompatible
●
list() funciona al revés para variables/arrays
http://php.net/manual/en/migration70.incompatible.php
15. 5.6 a 7.0: BW incompatible
●
list() ya no funciona vacío. Prohibido:
http://php.net/manual/en/migration70.incompatible.php
16. 5.6 a 7.0: BW incompatible
●
Variables variables no pueden usarse con global
http://php.net/manual/en/migration70.incompatible.php
17. 5.6 a 7.0: BW incompatible
●
Parentesis alrededor de argumentos
http://php.net/manual/en/migration70.incompatible.php
Notice: Only variables should be passed by reference in /tmp/test.php on line 13
18. 5.6 a 7.0: BW incompatible
●
foreach ya no cambia el puntero interno
19. 5.6 a 7.0: BW incompatible
●
foreach ya no usa el array de iteración mientras
itera, en el caso de un foreach por valores
●
foreach puede modificar el array de iteración al
vuelo durante su iteración
20. 5.6 a 7.0: BW incompatible
●
Literales octales inválidos
●
0128 ya no es cortado a 012 automáticamente
●
Ya bota un PARSE ERROR
●
Bitshifts negativos
●
var_dump(1 >> -1) → ArithmeticError
●
División por 0
●
De E_WARNING a DivisionByZeroError
21. 5.6 a 7.0: BW incompatible
●
String con hexadecimales ya no son “numeric”
●
is_numeric(‘0x123’) → false
●
substr(‘foo’, ‘0x1’) → Notice: non-well formed
numeric value…
●
u{EFEZRFZ → FATAL ERROR (unicode)
22. 5.6 a 7.0: BW incompatible
●
call_user_method() + call_user_method_array()
●
Eliminadas (call_user_func())
●
Fin de “ereg” (ver preg)
●
Funciones mcrypt_* eliminadas
●
ext/mysql y ext/mssql eliminados
●
set_magic_quotes_runtime() → eliminado
●
set_socket_blocking() → removed
23. 5.6 a 7.0: BW incompatible
●
dl() no se puede usar en PHP-FPM
●
always_populate_raw_post_data + asp_tags:
removed
●
xsl.security_prefs removed
24. 5.6 a 7.0: BW incompatible
●
Resultados de “new” ya no pueden ser
asignados por referencia (PARSE ERROR)
●
Etiquetas ASP y script eliminadas:
●
<%
●
<%=
●
<script language=”php”>
●
Yield (varios cambios)
25. 5.6 a 7.0: BW incompatible
●
Ya no switch() con multiple “default:”
●
$HTTP_RAW_POST_DATA... ya fue
●
Comentarios # en los archivos .ini … ya fueron
●
JSON remplazado por JSOND
●
34. → 34 o 34.0
●
3.e3 → 3.0e3 o 3e3
●
“” → no es válido
●
Otras cosas de funciones, session handlers y
orden de ordenamiento
26. 5.6 a 7.0: Lo nuevo
●
Declaración escalares (coerciva o estricta)
27. 5.6 a 7.0: Lo nuevo
●
Declaración tipo de retorno
28. 5.6 a 7.0: Lo nuevo
●
Null coalescing operator
30. 5.6 a 7.0: Lo nuevo
●
Arrays constantes
●
Clases anónimas
●
new class implements Logger { ... }
●
closure::call()
●
unserialize() filtrado (whitelist de clases)
●
expectations/assert()
●
“use” agrupado:
●
use somenamespace{ClassA, ClassC as C};
31. 5.6 a 7.0: Lo nuevo
●
Generadores
●
session_start() opciones como arrays
●
Nueva función preg_replace_callback_array()
●
CSPRNG (cifrado)
32. 5.6 a 7.0: Eliminados
●
Constructores tipo PHP 4
33. 5.6 a 7.0: Eliminados
●
Llamadas estáticas a métodos no-estáticos
●
password_hash() salt
●
ldap_sort()
●
Warning sobre date.timezone (default UTC)
34. 7.0 a 7.1: BW incompatible
●
ArgumentCountError exception (Fatal Error)
●
error_log funciona con syslog
●
$str[ ] ya no está autorizado para strings!!!!
●
…
●
Mcrypt... ya fue
35. 7.0 a 7.1: Lo nuevo
●
DateTime incluye microsegundos
●
Fatal errors → Error exception en muchas clases
●
Nullable types: function test(?string $name) { ...
●
Void functions: function edit(&$left): void { …
●
[ ] como list: [$id1, $name1] = $data;
●
Visibilidad de constantes de clases
36. 7.0 a 7.1: Lo nuevo
●
Pseudo-tipo “iterable”: function iterator(iterable $a)
●
Excepciones multi-catch
●
} catch (FirstException | SecondException $e) {
●
Soporte de keys en list()
●
Soporte para offsets negativos en strings
●
var_dump(“abcdef”[-2]) → “e”
●
HTTP/2 server push support in ext/curl
37. 7.0 a 7.1: Lo nuevo
●
E_WARNING y E_NOTICE cuando
●
‘1b’ + ‘algo’;
38. 7.1 a 7.2: BW incompatible
●
No mucho
●
Strings sin comillas que no son constantes pasan
de lanzar un E_NOTICE a un E_WARNING
●
__autoload() ya no va (spl_autoload_register() sí)
●
create_function() ya no va
●
(unset) algo → ya no va
●
each() ya no va. Use foreach()
●
39. 7.1 a 7.2: Lo nuevo
●
Tipo “object” para aceptar cualquier objeto
●
function test(object $obj) : object
●
Carga de extensiones en .ini por su nombre sin
extensión (.so/.dll)
●
Sobreescribir métodos abstractos
●
Sodium incluido en core (criptografía avanzada)
●
Varias cosas para PDO, LDAP, EXIF y Sockets
40. 7.* en general: optimizaciones
●
$a = “$b and $c”; mejor que $a = $b.” and “.$c;
●
“Hey” . strlen($str); mejor que “Hey” . strlen($str);
https://www.slideshare.net/jpauli/symfonycon-2017-php7-performances
41. 7.* en general: optimizaciones
●
Mejor arrays con índices numéricos incrementales
solo (no necesariamente paso de 1)
https://www.slideshare.net/jpauli/symfonycon-2017-php7-performances