Du 24 au 25 août 2019, le festival IT
TechTrain 2019 s'est tenu à Saint-Pétersbourg, auquel ont participé des représentants des communautés Java
JUG.ru (Saint-Pétersbourg),
JUGNsk (Novossibirsk) et
JUG.MSK (Moscou). Comment s'est déroulé le festival, ce qui était sur le stand commun de
JUG - tout cela est décrit plus en détail.

Un lieu familier à Saint-Pétersbourg pour les conférences organisées par le groupe
JUG Ru est le centre de convention et d'exposition ExpoForum. Pour préparer les événements sur le stand, il est plus pratique d'arriver la veille, avant les jours de la conférence.

Vue nocturne et matinale d'Expoforum avant le festival. Entrée au
TechTrain juste avant le départ, le matin du premier jour.
Stands d'entreprises et collectivités
Le premier jour, il y a une certaine période pendant laquelle les participants de l'exposition (sur les stands des entreprises et des communautés) peuvent déjà entrer sur le territoire, alors que les participants ordinaires ne le peuvent pas encore. Grâce à cette opportunité, j'ai pu rapidement faire le tour des stands pour la connaissance initiale.

À gauche de l'entrée se trouvent des stands d'entreprise, à droite des stands communautaires.
Stand CROC , sur le territoire duquel se tiennent traditionnellement les réunions de la communauté Java de Moscou. Stand d'information des organisateurs du festival.

Une rencontre et une conversation inattendues avec Evgeny Trifonov
phillennium , qui invariablement des articles intéressants que les lecteurs de Habr ont régulièrement l'occasion de lire. Stand communautaire
DotNet.Ru .

Stands des communautés de langage de programmation
C ++ ,
JavaScript et
Go .
Activités sur le stand JUG
Cette année, le stand du Russian
Java User Group (
JUG ) a réuni des représentants de trois communautés: Gleb Smirnov et Vladimir Sitnikov (
JUG.ru ), Ivan
Uglyansky (
JUGNsk ), Andrey Kogun, Ivan Ponomarev, Vladislav Senin et auteur de l'article (
JUG.MSK ).
Auparavant, un programme divertissant et éducatif pour les participants au festival a été préparé et des prix ont été sélectionnés pour encourager les gagnants des concours.
Les organisateurs du festival se sont mis d'accord avec les représentants des stands d'entreprises et de collectivités pour participer à la quête générale. Lors de la visite de chaque stand participant à la quête, pour obtenir le cachet convoité du programme, il fallait en quelque sorte faire ses preuves.

Nous avons préparé des questions liées au
langage de programmation
Java . Pour 3 réponses correctes, un tampon a été mis, pour 5 - un cahier a été choisi, pour 10 - un
puzzle en bois . Un super prix était de 4 billets pour la prochaine conférence
Joker Java (2 billets hors ligne et 2 en ligne). Les conditions d'obtention d'un super prix sont décrites ci-dessous.
Le premier jour des questions, il y en avait 30, nous les avons divisées en 6 séries de 5, ce qui suggère que sur 5 réponses correctes au moins 3. Des dépliants soigneusement imprimés avec des questions ont été rapidement démantelés ou gribouillés de réponses. Comme solution temporaire, des bandes étroites avec des questions ont été découpées dans des feuilles et mélangées sur la table.
Avant le deuxième jour, nous avons examiné les questions, jeté une partie et ajouté d'autres, il y avait 34 questions. Lors de la compilation des questions, nous avons tenu compte du fait que l'événement n'est pas une conférence Java. Nous avons essayé d'être aussi amicaux que possible, vous permettant d'utiliser Internet et d'expliquer les réponses aux questions en détail. L'essentiel n'est pas d'obtenir un tampon, mais d'acquérir de nouvelles connaissances.

La deuxième tentative a consisté en des tickets prédécoupés pour 1/5 de la feuille A4. En plus d'eux, il y avait 4 copies de feuilles avec une simple liste numérotée de questions, cette option s'est avérée la plus pratique. Il était permis de sélectionner toutes les questions de la liste générale.
Lors de l'impression de fichiers préparés au format
PDF , j'ai réussi à me sentir comme des participants à la quête - l'ordinateur de l'hôtel était une version allégée du système d'exploitation, sans possibilité de parcourir les disques. Il y avait des raccourcis sur les versions portables de
Word ,
Excel et
PowerPoint dans le menu, mais il n'y avait aucun moyen d'exécuter un programme pour ouvrir le
PDF . Une complication supplémentaire était que l'interface et le clavier ont été commutés en chinois par les clients des locuteurs natifs de l'hôtel de cette langue. La découverte du
PDF dans
Word , hélas, n'a pas été enregistrée - la mise en page a été considérablement déformée. Lors du re-collage d'un lecteur flash, il était possible de prendre un moment avec la possibilité d'ouvrir un menu contextuel pour sélectionner un dossier avec un fichier.
La liste finale des questions- Quelle instruction n'existe pas dans le bytecode Java: a) lookupswitch b) goto c) throw d) return?
- C2, G1, C4, CMS - qu'est-ce qui est superflu?
- Panama, Valhalla, Amber, Loom - qu'est-ce qui unit ces mots?
- Pour quelle licence OpenJDK est-il autorisé?
- Qu'est-ce qu'un compilateur C2?
- Qu'est-ce qu'un JUG?
- Qu'est-ce que GraalVM?
- Qu'est-ce que 0xCAFEBABE?
- Qu'est-ce que sun.misc.Unsafe?
- Qu'est-ce que JPoint, Joker, JBreak?
- Combien de Champions Java russes existe-t-il actuellement (et les énumérer)?
- Énumérer les trois environnements de développement Java (IDE) les plus populaires par ordre décroissant de popularité.
- Il existe une tradition lors de l'utilisation des noms de langages de programmation JVM, de frameworks et de bibliothèques pour utiliser les noms d'îlots, par exemple, lesquels?
- Les distributions JRE et JDK (respectivement pour l'exécution et le développement d'applications Java) sont construites sur la base du code OpenJDK. Nommez au moins une distribution existante autre qu'Oracle JDK.
- Quels sont les langages de programmation JVM que vous connaissez (fonctionnant en Java virtuel
machine, compilé en Java bytecode ou JIT-compilé à l'exécution). - Nommez au moins un serveur gratuit (open source) et un serveur d'applications commerciales (AS) pour Java.
- Quel âge a le langage Java? (lu à partir de la version 1.0)
- Que sont JIT et AOT?
- Décrypter et expliquer ce qu'est JEP?
- Décrypter et expliquer ce qu'est JMX?
- Décrypter et expliquer ce qu'est JNDI?
- Décrypter et expliquer ce qu'est JSP?
- Décrypter et expliquer ce qu'est JSR?
- Décrypter et expliquer ce qu'est JPA?
- Décrypter et expliquer ce qu'est TCK?
- Java a-t-il une gestion manuelle de la mémoire?
- Qu'est-ce que -Xmx? Qu'est-ce que -Xss?
- OOM, NPE, IOOBE - quelles sont ces abréviations?
- Les programmes Java sont-ils interprétés, compilés JIT ou AOT?
- Existe-t-il un opérateur goto ou un équivalent en Java?
- Qu'est-ce que Epsilon GC? En quoi est-il différent des autres GC?
- Qu'est-ce qu'un maillon faible en Java? Quels types de maillons faibles existe-t-il?
- Quelle est la différence entre une ClassNotFoundException et une NoClassDefFoundError?
- Trouvez 2 erreurs: class Hello {void main () {System.out.println ("Hello, world"); }}
Pendant le stand, ils ont réussi à communiquer avec au moins des dizaines de participants au festival, commençant très souvent la conversation en premier. Visiter le stand ne se résumait pas toujours à des réponses pour recevoir des prix, beaucoup répondaient à des questions comme ça et posaient des questions intéressantes. Par exemple, on m'a personnellement posé les questions suivantes:
- "Est-ce que je connais les réponses à toutes les questions posées?" (répondu par l'affirmative, déclarant qu'il a participé à leur rédaction)
- "Y a-t-il un avenir pour Java ?" (Je veux dire, cela vaut-il la peine d'apprendre Java avec la popularité croissante du langage Kotlin , - ils sont arrivés à la conclusion que même dans ce cas, une bonne connaissance de Java est obligatoire)
- "Quel est le premier livre à lire tout en apprenant Java?" (recommandé la 4e édition de Thinking in Java de Bruce Eckel: soit immédiatement la version anglaise , soit le premier russe , puis l'anglais avec les chapitres restants non traduits dans la traduction russe)
Jeu Devinez le Président
Spécialement pour le festival
TechTrain , l'application Web Guess the Speaker a été écrite. Le code est dans
le référentiel GitHub : le backend est écrit en
Java (en utilisant
Spring Boot ), le frontend est en
TypeScript / JavaScript (en utilisant
Angular ). Le jeu est toujours disponible sur le serveur
jugspeakers.online (dans le cas où le site n'est pas disponible, l'option est laissée pour télécharger le kit de distribution déjà construit à partir de
GitHub pour l'exécuter ou le compiler vous-même, voir la
description ). L'application a été lancée sur un ordinateur portable et diffusée sur plasma. De plus, les participants à la quête et les visiteurs du stand ont été invités à y jouer eux-mêmes sur leurs smartphones et ordinateurs portables.
Le programme contient des photos des conférenciers de toutes les conférences tenues par
JUG Ru Group pendant toutes les années, et de toutes les réunions de
JUG.ru ,
JUGNsk et
JUG.MSK . Le joueur est invité à sélectionner un ou plusieurs ensembles, dont chacun est une conférence. Après avoir sélectionné, le nombre d'enceintes dans les ensembles sélectionnés s'affiche ci-dessous. Lors de la combinaison de différents ensembles de doublons (les mêmes personnes peuvent être des orateurs de différents types de conférences) sont exclus. Si vous sélectionnez tous les ensembles, le nombre total d'enceintes sera de 954.

La première vue de l'écran montre la situation où une seule première conférence est sélectionnée. Le deuxième type d'écran est les 6 sets proposés pour que le jeu gagne des prix (3 conférences Java et 3 types de mitaps Java). Ainsi, le nombre maximum de points possible était de 285. Peut-être deux types de jeux - devinez le nom et le prénom de la photo (voir la troisième capture d'écran) ...

... et vice versa - devinez la photo par son prénom et son nom (voir la quatrième capture d'écran). À la fin du jeu, les résultats sont affichés: le nombre de questions correctement, incorrectement répondues et manquées (si le jeu a été interrompu). De plus, vous avez la possibilité de voir dans quels problèmes des erreurs ont été commises (voir la cinquième capture d'écran). Le jeu peut être interrompu à tout moment en sélectionnant le lien «Annuler» (voir la sixième capture d'écran).
Attribution des gagnants
Les résultats du concours ont été annoncés à 16h00 le deuxième jour. Les six personnes qui ont marqué le plus de points sur les 285 possibles ont eu la possibilité de choisir leurs propres prix.

Andrei Kogun et Aleksey Stukalov (conférenciers présents dans la série de photos du jeu) près du plasma sur le stand. Un tableau avec les résultats actuels. Andrew commence à faire le point, annonçant les gagnants.

Gagnant et finalistes avec des prix sélectionnés.

Finaliste avec un parapluie arborant le logo de la Conférence
Joker .

Cinquième et sixième place. Ivan Uglyansky, Andrei Kogun et Gleb Smirnov - fatigués, mais dignes de deux jours de festival.
Des gens intéressants sur le stand
Alexey Stukalov (
Haulmont ), Anton Arkhipov et Yuri Artamonov (
JetBrains ), Alexander Belokrylov (
BellSoft ), Nikita Salnikov-Tarnovsky (
Plumbr ), Evgeny Trifonov, Oleg Chirukhin et Alexei Fedorov (
JUG Ru Group ), Oleg Dokuka (
Netifi ) - tous ces personnes dignes et intéressantes qui sont directement liées à
Java , ont regardé le stand et ont pu parler avec elles.
Rapports
J'ai réussi à voir deux reportages le premier jour (Grigory Bakounov «AI vs. AI», Roman Gordeev «En route vers un système distribué») ...

... et deux rapports dans le second (Sergey Abdulmanov "Pourquoi ne pas vous lancer dans les petites entreprises", Richard Stallman "Le logiciel libre et votre liberté").

Je vais certainement regarder au moins trois autres reportages dans l'enregistrement: John Romero "Quake Postmortem", Evgeny Borisov "Spring Patterns", Kirill Tolkachev et Maxim Gorelikov "Getting sh! T done in devops style: design so that your collaborateurs don't want you you" pincer. "
Activités non techniques
En plus des rapports et des quiz techniques, il y avait de nombreux événements non techniques. L'un d'eux a été l'occasion de jouer à
DOOM avec
John Romero , l'un des créateurs du jeu. Le premier jour dans la même salle, il a signé des autographes. Malheureusement, je n'ai pas deviné photographier une très longue lignée de personnes qui voulaient un autographe.

Dépêchez-vous pour le déjeuner, afin que dès que possible pour revenir au stand, s'est involontairement arrêté pour regarder le match. À ce moment, juste en place à droite, était assis un nouveau rival, John.

C'était très intéressant de voir la confrontation - l'écran de gauche montrait ce qui était visible par un joueur, sur l'écran de droite - par le second. La photo la plus à droite montre
cacodemon de
DOOM sur le stand des jeux informatiques.
Machines à sous et jeux informatiques

Le temps libre sur le stand et les rapports de visite n'a été laissé que pendant la dernière demi-heure avant la fermeture du festival. J'ai réussi à jouer à toutes les machines à sous pendant cette période, y compris à réaliser mon rêve d'enfance - tirer pour la première fois dans Sniper (il s'est avéré que jouer était assez facile).

En plus des machines, il y avait des tiroirs (photo de gauche), selon les inscriptions sur lesquelles il fallait deviner ce qu'il y avait à l'intérieur. En supposant une réponse, on pourrait mettre ses mains dans le rideau rond pour toucher et regarder à travers les fenêtres d'en haut en appuyant sur le bouton de rétro-éclairage. Dans des cubes transparents (deuxième plan), il y avait divers objets rares odorants, dont l'odeur pouvait être ressentie en rapprochant le nez des trous. Dans les cubes en bois (photo de droite), il y avait quelque chose qui devait être deviné par le son, appuyant l'écouteur contre son oreille.

Au coin des jeux informatiques, c'est ici que se trouvait le monstre de
DOOM , cité plus haut avec une photo de John Romero.
JUG coordonne sa participation au festival
JUG.ru :
JUGNsk :
- Meetup - annonces de réunions et inscription pour celles-ci, abonnement à une notification par mail sur les réunions
- YouTube - Rapports vidéo
- Deck des orateurs - Présentations
- VK - annonces de réunions, reportages photos, liens vers les documents des réunions passées
- Twitter : compte (annonces de réunions, reportages photos, vidéos) et hashtag (tweets avec commentaires sur les réunions)
- Télégramme - annonces de réunions, reportages photos, liens vers les documents des réunions précédentes, communication
JUG.MSK :
- TimePad - annonces de réunions et inscription pour celles-ci, abonnement à une notification par mail sur les réunions
- YouTube - Rapports vidéo
- Deck des orateurs - Présentations
- VK - annonces de réunions, reportages photos, liens vers les documents des réunions passées
- Twitter : compte (annonces de réunions, reportages photos, vidéos) et hashtag (tweets avec commentaires sur les réunions)
- Habr - avis de réunions, vous pouvez retrouver tous les avis par tag