Del 24 al 25 de agosto de 2019, se celebró el festival IT
TechTrain 2019 en San Petersburgo, en el que participaron representantes de las comunidades Java
JUG.ru (San Petersburgo),
JUGNsk (Novosibirsk) y
JUG.MSK (Moscú). Cómo fue el festival, qué fue en el stand conjunto de
JUG : todo esto se describe con más detalle.

Un lugar familiar en San Petersburgo para las conferencias celebradas por el
Grupo JUG Ru es el Centro de Convenciones y Exposiciones ExpoForum. Para preparar eventos en el stand, es más conveniente llegar el día anterior, antes de los días de la conferencia.

Vista nocturna y matutina de Expoforum antes del festival. Entrada a
TechTrain justo antes del inicio, en la mañana del primer día.
Stands de empresas y comunidades.
El primer día, hay un cierto período de tiempo en el que los participantes de la exposición (en los stands de empresas y comunidades) ya pueden ingresar al territorio, pero los participantes comunes aún no lo están. Aprovechando esta oportunidad, pude recorrer rápidamente las gradas para conocerme por primera vez.

A la izquierda de la entrada hay stands de la empresa, a la derecha están los stands de la comunidad. Stand
CROC , en cuyo territorio se celebran tradicionalmente reuniones de la comunidad Java de Moscú. Puesto de información de los organizadores del festival.

Una inesperada reunión y conversación con Evgeny Trifonov
phillennium , que invariablemente interesantes artículos que los lectores de Habr regularmente tienen la oportunidad de leer. Stand de la comunidad
DotNet.Ru .

Soportes de las comunidades de lenguaje de programación
C ++ ,
JavaScript y
Go .
Actividades en el stand de JUG
Este año, el stand de Russian
Java User Group (
JUG ) reunió a representantes de tres comunidades: Gleb Smirnov y Vladimir Sitnikov (
JUG.ru ), Ivan
Uglyansky (
JUGNsk ), Andrey Kogun, Ivan Ponomarev, Vladislav Senin y autor del artículo (
JUG.MSK ).
Anteriormente, se preparó un programa entretenido y educativo para los participantes del festival y se seleccionaron premios para alentar a los ganadores de los concursos.
Los organizadores del festival acordaron con representantes de los stands de empresas y comunidades participar en la búsqueda general. Al visitar cada puesto que participaba en la búsqueda, para obtener el codiciado sello en el programa, era necesario probarse de alguna manera.

Hemos preparado preguntas relacionadas con el
lenguaje de programación
Java . Para 3 respuestas correctas, se puso un sello, para 5 - se le dio un cuaderno para elegir, para 10 - un
rompecabezas de madera . Un super premio fue 4 boletos para la próxima conferencia
Joker Java (2 boletos fuera de línea y 2 en línea). Las condiciones para obtener un super premio se describen a continuación.
El primer día de las preguntas había 30, las dividimos en 6 grupos de 5, lo que sugiere que de 5 responden correctamente al menos 3. Los folletos impresos con prudencia con preguntas se desmantelaron rápidamente o se garabatearon con respuestas. Como solución temporal, se cortaron tiras estrechas con preguntas de las hojas y se mezclaron en la mesa.
Antes del segundo día, revisamos las preguntas, desechamos una parte y agregamos otras, hubo 34 preguntas. Al compilar las preguntas, tomamos en cuenta que el evento no es una conferencia de Java. Intentamos ser lo más amigables posible, permitiéndole usar Internet y explicando las respuestas a las preguntas en detalle. Lo principal no es obtener un sello, sino adquirir nuevos conocimientos.

El segundo intento fue boletos precortados para 1/5 de la hoja A4. Además de ellos, había 4 copias de hojas con una simple lista numerada de preguntas, esta opción resultó ser la más conveniente. Se le permitió seleccionar cualquier pregunta de la lista general.
Al imprimir archivos preparados en formato
PDF , me las arreglé para sentirme como participantes en la búsqueda: la computadora en el hotel era una versión simplificada del sistema operativo sin capacidad de buscar discos. Había accesos directos en las versiones portátiles de
Word ,
Excel y
PowerPoint en el menú, pero no había forma de ejecutar ningún programa para abrir
PDF . Una complicación adicional fue que la interfaz y el teclado fueron cambiados al chino por los huéspedes de los hablantes nativos de este idioma del hotel. El descubrimiento de
PDF en
Word , por desgracia, no se guardó: el diseño estaba muy distorsionado. Al volver a pegar una unidad flash, era posible tomarse un momento con la capacidad de abrir un menú contextual para seleccionar una carpeta con un archivo.
La lista final de preguntas.- ¿Qué instrucción no existe en Java bytecode: a) lookupswitch b) goto c) throw d) return?
- C2, G1, C4, CMS: ¿qué es superfluo?
- Panamá, Valhalla, Ámbar, Telar: ¿qué une estas palabras?
- ¿Para qué licencia tiene licencia OpenJDK?
- ¿Qué es un compilador C2?
- ¿Qué es un JUG?
- ¿Qué es GraalVM?
- ¿Qué es 0xCAFEBABE?
- ¿Qué es sun.misc.Unsafe?
- ¿Qué es JPoint, Joker, JBreak?
- ¿Cuántos campeones rusos de Java hay en este momento (y enumerarlos)?
- Enumere los tres entornos de desarrollo Java (IDE) más populares en orden descendente de popularidad.
- Existe una tradición cuando se usan los nombres de lenguajes de programación JVM, marcos y bibliotecas para usar los nombres de islas, por ejemplo, ¿cuáles?
- Las distribuciones JRE y JDK (respectivamente, para ejecutar y desarrollar aplicaciones Java) se basan en el código OpenJDK. Nombre al menos una distribución existente que no sea Oracle JDK.
- ¿Cuáles son los lenguajes de programación JVM que conoces (ejecutándose en Java virtual
máquina, compilada a Java bytecode o compilada JIT en tiempo de ejecución). - Nombre al menos un servidor de aplicaciones (AS) gratuito (código abierto) y uno comercial para Java.
- ¿Qué edad tiene el lenguaje Java? (leer de la versión de lanzamiento 1.0)
- ¿Qué son JIT y AOT?
- Descifrar y explicar qué es JEP?
- Descifrar y explicar qué es JMX?
- ¿Descifrar y explicar qué es JNDI?
- ¿Descifrar y explicar qué es JSP?
- ¿Descifrar y explicar qué es JSR?
- ¿Descifrar y explicar qué es JPA?
- Descifrar y explicar qué es TCK?
- ¿Java tiene administración de memoria manual?
- ¿Qué es -Xmx? ¿Qué es -Xss?
- OOM, NPE, IOOBE: ¿cuáles son estas abreviaturas?
- ¿Se interpretan los programas Java, se compilan JIT o se compilan AOT?
- ¿Hay un operador goto o algún equivalente en Java?
- ¿Qué es Epsilon GC? ¿Cómo es diferente de otros GC?
- ¿Qué es un enlace débil en Java? ¿Qué tipos de enlaces débiles hay?
- ¿Cuál es la diferencia entre una ClassNotFoundException y un NoClassDefFoundError?
- Encuentra 2 errores: clase Hello {void main () {System.out.println ("Hola, mundo"); }}
Durante el stand, se las arreglaron para comunicarse con al menos docenas de participantes del festival, muy a menudo comenzando la conversación primero. Visitar el stand no siempre se reducía a las respuestas para recibir premios, muchas de las preguntas respondidas simplemente así y preguntas interesantes. Por ejemplo, personalmente me hicieron las siguientes preguntas:
- "¿Conozco las respuestas a todas las preguntas formuladas?" (respondió afirmativamente, diciendo que él participó en su redacción)
- "¿Hay un futuro para Java ?" (Quiero decir, ¿vale la pena aprender Java con la creciente popularidad del lenguaje Kotlin ? Llegaron a la conclusión de que incluso en este caso, un buen conocimiento de Java es obligatorio)
- "¿Cuál es el primer libro que lee mientras aprende Java?" (recomendó la cuarta edición de Thinking in Java por Bruce Eckel: ya sea inmediatamente la versión en inglés , o primero en ruso , y luego en inglés con los capítulos restantes no traducidos en la traducción al ruso)
Juego de Guess the Speaker
Especialmente para el festival
TechTrain , se escribió la aplicación web Guess the Speaker. El código está en
el repositorio de GitHub : el backend está escrito en
Java (usando
Spring Boot ), el frontend está en
TypeScript / JavaScript (usando
Angular ). El juego todavía está disponible en el servidor
jugspeakers.online (en caso de que el sitio no esté disponible, se deja la opción de descargar el kit de distribución ya construido desde
GitHub para ejecutarlo o compilarlo usted mismo, vea la
descripción ). La aplicación se lanzó en una computadora portátil y se transmitió en plasma. Además, los participantes de la búsqueda y los visitantes del stand fueron invitados a jugar ellos mismos en sus teléfonos inteligentes y computadoras portátiles.
El programa contiene fotos de oradores de todas las conferencias celebradas por
JUG Ru Group durante todos los años, y todas las reuniones de
JUG.ru ,
JUGNsk y
JUG.MSK . Se invita al jugador a seleccionar uno o más conjuntos, cada uno de los cuales es una conferencia. Después de seleccionar, el número de altavoces en los conjuntos seleccionados se muestra a continuación. Al combinar diferentes conjuntos de duplicados (las mismas personas pueden ser oradores de diferentes tipos de conferencias) están excluidos. Si selecciona todos los conjuntos, el número total de altavoces será 954.

La primera vista de la pantalla muestra la situación cuando solo se selecciona una primera conferencia. El segundo tipo de pantalla son los 6 sets propuestos para que el juego gane premios (3 conferencias Java y 3 tipos de mitaps Java). Por lo tanto, el número máximo posible de puntos fue de 285. Quizás dos tipos de juegos: adivina el nombre y el apellido de la foto (mira la tercera captura de pantalla) ...

... y viceversa: adivina la foto por nombre y apellido (mira la cuarta captura de pantalla). Al final del juego, se muestran los resultados: el número de preguntas correctas, erróneamente respondidas y perdidas (si el juego fue interrumpido). Además, tiene la oportunidad de ver en qué problemas se cometieron los errores (vea la quinta captura de pantalla). El juego se puede interrumpir en cualquier momento seleccionando el enlace "Cancelar" (ver la sexta captura de pantalla).
Entrega de ganadores
Los resultados de la competencia se anunciaron a las 16:00 del segundo día. Las seis personas que obtuvieron la mayor cantidad de puntos de un posible 285 tuvieron la oportunidad de elegir sus propios premios.

Andrei Kogun y Aleksey Stukalov (oradores de la conferencia presentes en el conjunto de fotos del juego) cerca del plasma en el stand. Un tablero con resultados actuales. Andrew comienza a hacer balance, anunciando los ganadores.

Ganador y finalistas con premios seleccionados.

Subcampeón con un paraguas con el logo de
Joker Conference.

Quinto y sexto lugar. Ivan Uglyansky, Andrei Kogun y Gleb Smirnov: cansados, pero dignos de dos días de festival.
Gente interesante en el stand
Alexey Stukalov (
Haulmont ), Anton Arkhipov y Yuri Artamonov (
JetBrains ), Alexander Belokrylov (
BellSoft ), Nikita Salnikov-Tarnovsky (
Plumbr ), Evgeny Trifonov, Oleg Chirukhin y Alexei Fedorov (
Grupo JUG Ru ), Oleg Dokuka (
Netifi ) Estas personas dignas e interesantes que están directamente relacionadas con
Java , miraron el stand y pudieron hablar con ellos.
Informes
Logré ver dos informes el primer día (Grigory Bakunov "AI vs. AI", Roman Gordeev "En el camino a un sistema distribuido") ...

... y dos informes en el segundo (Sergey Abdulmanov "Por qué no deberías entrar en una pequeña empresa", Richard Stallman "El software libre y tu libertad").

Definitivamente voy a ver al menos tres informes más en la grabación: John Romero "Quake Postmortem", Evgeny Borisov "Spring Patterns", Kirill Tolkachev y Maxim Gorelikov "Getting sh! T hecho en estilo devops: diseño para que tus colegas no te quieran pellizcar ".
Actividades no tecnicas
Además de los informes y las pruebas técnicas, hubo muchos eventos no técnicos. Una de ellas fue la oportunidad de jugar
DOOM con
John Romero , uno de los creadores del juego. El primer día en la misma sala firmó autógrafos. Desafortunadamente, no adiviné fotografiar una larga fila de personas que querían un autógrafo.

Apresurándose para almorzar, de modo que lo antes posible para volver al estrado, se detuvo involuntariamente para ver el partido. En este momento, justo en el lugar a la derecha se sentó un nuevo rival John.

Fue muy interesante ver la confrontación: la pantalla de la izquierda mostraba lo visible de un jugador, en la pantalla de la derecha, el segundo. La foto de la derecha muestra
cacodemon de
DOOM desde el stand de juegos de computadora.
Máquinas tragamonedas y juegos de computadora

El tiempo libre de estar parado en el stand y visitar los informes solo se dejó durante la última media hora antes del cierre del festival. Logré jugar en todas las máquinas tragamonedas durante este tiempo, incluso cumplí el sueño de mi infancia: disparar por primera vez en Sniper (resultó que jugar es bastante fácil).

Además de las máquinas había cajones (imagen izquierda), según las inscripciones en las que era necesario adivinar lo que había dentro. Suponiendo una respuesta, uno podría poner las manos en la cortina redonda para tocar y mirar a través de las ventanas desde arriba presionando el botón de luz de fondo. En cubos transparentes (segundo disparo) había varios objetos raros y olorosos, cuyo olor se podía sentir al acercar la nariz a los agujeros. En cubos de madera (foto a la derecha) había algo que tenía que ser adivinado por el sonido, presionando el auricular contra su oído.

En la esquina de los juegos de computadora, fue aquí donde se ubicó el monstruo de
DOOM , citado anteriormente con una foto de John Romero.
JUG coordina la participación en el festival
JUG.ru :
JUGNsk :
- Meetup : anuncios de reuniones y registro para ellas, suscripción a una notificación por correo sobre reuniones
- YouTube - Informes de video
- Portavoz - Presentaciones
- VK : anuncios de reuniones, reportajes fotográficos, enlaces a materiales de reuniones pasadas
- Twitter : cuenta (anuncios de reuniones, reportajes fotográficos, videos) y hashtag (tweets con comentarios sobre reuniones)
- Telegram : anuncios de reuniones, reportajes fotográficos, enlaces a materiales de reuniones anteriores, comunicación
JUG.MSK :
- TimePad : anuncios de reuniones y registro para ellas, suscripción a una notificación por correo sobre reuniones
- YouTube - Informes de video
- Portavoz - Presentaciones
- VK : anuncios de reuniones, reportajes fotográficos, enlaces a materiales de reuniones pasadas
- Twitter : cuenta (anuncios de reuniones, reportajes fotográficos, videos) y hashtag (tweets con comentarios sobre reuniones)
- Habr - revisiones de reuniones, puedes encontrar todas las revisiones por etiqueta