company_banner

Java-конференция Joker: предварительная программа, Unconference и другие подробности

    Привет, хабр!

    Как многие из вас уже знают, 15 октября в Питере пройдёт Joker 2013, конференция по Java-технологиям, организатором которой выступает сообщество JUG.ru, а генеральным спонсором — компания «Одноклассники». Конференция ориентирована на профессионалов в области разработки ПО на Java. Участников ожидает более 30 докладов от гуру Java-разработки на русском и английском языках, стенды компаний-лидеров в области Java-разработки и зона свободного общения, где можно будет пообщаться с друзьями и коллегами или просто отдохнуть.

    Что ожидает участников:
    • 14 октября: мастер-классы
    • 15 октября: 4 трека, 30 докладов
    • 16 октября: закрытый Unconference!


    Доклады


    В данный момент программа конференции сформирована примерно на три четверти. Вашему вниманию предлагается предварительная программа докладов из числа тех, что уже утверждены суровым Java-фашистом real_ales. Судя по количеству заявок на доклады (более 50), мы добавим ещё один трек параллельно с тремя треками ниже. Таким образом, треков будет 4, а докладов — около 30.
    Время Зал 1 Зал 2 Зал 3
    09:00 – 10:00 Регистрация, welcome-кофе
    10:00 – 10:45 Роман Елизаров, Devexperts
    Факты и заблуждения
    о Java-сериализации
    Сергей Куксенко, Oracle
    JDK8: Stream style
    Роман Антипин, Одноклассники
    Миграция на Cassandra
    с Tarantool + Voldemort
    11:00 – 11:45 Андрей Паньгин, Одноклассники
    Аварийный дамп — «чёрный ящик» упавшей JVM
    Шура Ильин, Oracle
    Project Jigsaw. Take 2
    Яков Жданов, GridGain
    In-memory accelerator
    for MongoDB
    11:45 – 12:15 Кофе
    12:15 – 13:00 Gil Tene, Azul Systems
    Understanding Java Garbage Collection and what you can do about it
    Антон Кекс, Codeborne
    Как я создал desktop-приложение на Java, скачанное 9 000 000 раз
    Евгений Борисов
    Spring 4.0: новое поколение
    13:15 – 14:00 Антон Архипов, ZeroTurnaround
    Скрипты в Java-приложениях
    Geertjan Weilenga, Oracle
    Unlocking the Java EE Platform with HTML5
    14:00 – 15:00 Обед
    15:00 – 15:45 Kirk Pepperdine
    The (not so) dark art of Performance Tuning
    Андрей Бреслав, JetBrains
    Компромиссы, или
    Как проектируются языки программирования
    Pawel Lipinski, Pragmatists
    Clean Tests:
    how to structure your tests, so that they serve you well
    16:00 – 16:45 Александр Отенко, Oracle
    О чём молчит профайлер
    Николай Чашников, JetBrains
    Разработка API в Java-проекте: как оказывать влияние на людей и не приобрести врагов
    Николай Алименков, XPInjection
    Парадигмы ООП, основы здравого дизайна и архитектуры Java-приложений
    16:45 – 17:15 Кофе
    17:15 – 18:00 Алексей Шипилёв, Oracle
    О чём молчат Heap Dump-ы
    Никита Липский, Excelsior и Миша Быков, Oracle
    Занимательные истории из жизни технической поддержки JVM
    Михаил Хлуднев, GridDynamics
    В поисках Tommy Hilfiger
    18:15 – 19:00 Никита Сальников-Тарновский, Plumbr
    Спорим, в твоем приложении есть утечка памяти?
    Владимир Иванов, Oracle
    Invokedynamic: роскошь или необходимость?
    Владимир Красильщик, Luxoft
    Java Mapping для прагматичных программистов

    Подробнее с программой конференции можно ознакомиться тут.

    Чем мы руководствовались


    Несколько простых правил:
    • первый зал — самый большой, а значит в него мы ставим самые популярные доклады (по результатам опроса на хабре и в нашей рассылке);
    • доклады разбиваем на пары, внутри пары перерывы небольшие, а между парами — большие, чтобы народ успел пообщаться;
    • доклады внутри пары должны быть близки по тематике, чтобы минимизировать вероятность того, что внутри пары люди будут переходить из зала в зал и куда-то не успеют;
    • начать надо не раньше 10:00, а закончить не позже 19:00. При этом в трек должно влезть 8 докладов.
    • keynotes многие не любят, поэтому нафиг его. Лучше впихнём вместо него больше докладов!


    Билеты


    Стоимость билета составляет 5000 рублей в случае, если его покупает организация (юрлицо). В случае, если организация не хочет оплачивать сотруднику билет, и тот сам покупает билет за свои деньги, то мы даём ему небольшую скидку: стоимость билета для частных лиц составляет 4000 рублей. Кроме того, скидку на билеты получают представители компаний-спонсоров.
    Кому Сколько Где купить
    Физическим лицам (покупаем сами) 4000 рублей тут
    Юридическим лицам (покупает контора) 5000 рублей тут


    Мы уже опробовали этот метод (разные цены для юрлиц и физлиц) на JPoint. Практика показала, что некоторые недобрососвестные конторы дают прямые указания своим сотрудникам указание покупать билеты как физлицам, а потом возвращают им стоимость билета. Бегать за такими конторами и хватать их за руку мы, пожалуй, не будем — у нас масса других дел :)

    Видео


    Все 4 трека будут записаны на видео. Будем ли мы давать доступ к эим видео всем желающим — пока непонятно. С одной стороны, наша жадность говорит нам, что если видео не публиковать в открытом доступе или тупо не снимать, то нас четвертуют больше народу придёт на конференцию. С другой стороны, мы прекрасно понимаем, что людям из других городов тратить 2-3 рабочих дня на нашу конференцию (плюс поезд/самолёт, плюс гостиница) может быть слишком накладно.

    Видеозапись всех докладов конференции точно будет доступна участникам конференции. Возможно, для остальных она будет платной. Посмотрим ближе к делу.

    Мастер-классы


    За день до конференции, 14 октября, некоторые из наших спикеров проведут платные мастер-классы. Некоторые из них стоят ощутимых денег (7000 р.), а некоторые — сущие копейки (1000 р.). Изначально была идея сделать вторые вообще бесплатными, но стало непонятно, как регулировать количество людей. Тут заработала вот какая логика:
    • количество мест на мастер-классах всегда ограничено, а значит регистрацию на мастер-классы нужно закрывать, как только закончатся места.
    • практика встреч JUG.ru и CodeFreeze показывает, что на бесплатные ивенты приходит от 40 до 70 процентов зарегистрированных юзеров. Таким образом, непонятно, сколько придёт народу. Тем более, в будний день.
    • участников мастер-классов надо где-то разместить (арендовать зал) и чем-то кормить. Аренда зала и еда стоят денег :)
    • наконец, когда человек платит (особенно из своего кармана, а не из кармана конторы), то он начинает ответственнее относиться к тренингу. В частности, больше делать, слушать и записывать и меньше тупить в телефон или спать.

    Кто проводит Тема Стоимость
    Paweł Lipiński Test Driven Development in Java 7000 рублей
    Евгений Борисов Spring 3.2 — копаем до самого ядра 7000 рублей
    Евгений Кривошеев Проектирование обоснованной архитектуры 7000 рублей
    Gil Tene How NOT to Measure Latency 1000 рублей
    Николай Чашников Работа в IntelliJ IDEA для профессионалов 1000 рублей


    Unconference


    А теперь самое интересное! На следующий день после конференции Joker, то есть 16 октября, пройдёт Joker Unconference.


    Unconference — это такое мероприятие, где участники сами формируют темы для обсуждения. Мы организуем пространство таким образом, что
    • любой участник сможет предложить для обсуждения любую тему, связанную с Java. Например, написать её на некоей общей доске;
    • участники смогут проголосовать за темы, которые им нравятся. Например, поставив на вышеупомянутой доске плюсики напротив интересных им тем;
    • как только набирается некоторое количество народа (например, 10 человек), которые хотят обсуждать какую-то определённую тему, то все желающие послушать или поучаствовать в дискуссии идут к ближайшему столу, рассаживаются и начинают обсуджать тему;
    • у каждой такой ситуативной дискуссии назначается модератор, который следит за хронометражом и за тем, чтобы участники не спали не уходили от заданной темы;
    • вся эта ботва продолжается с 11 утра до 6 вечера с перерывом на обед;
    • ближе к 5 вечера начинают наливать, и разумеется
    • всё заканчивается грандиозной пьянкой!


    Это будет закрытое мероприятие, вход на который будет осуществляться строго по приглашениям. Приглашения получат или уже получили
    • все спикеры прошедших встреч JUG.ru и CodeFreeze;
    • все, кто помогает нам делать JUG.ru;
    • спикеры JPoint;
    • некоторые из участников августовского OpenJDK TestFest;
    • участники конференции Joker, которых захотят увидеть на Unconference наши спикеры.

    Последний пункт означает следующее. Каждый спикер конференции Joker 2013 будет иметь 3 или 4 приглашения на Unconference, которые он будет раздавать, как ему заблагорассудится. Вот, что каждый спикер может сделать со своими wildcards:
    • раздать друзьям
    • подарить коллегам
    • вручить первому встречному
    • разыграть в лотерею
    • отдать участникам конференции, которые будут задавать интересные вопросы
    • подарить симпатичной девушке
    • продать за деньги
    • сжечь

    Собственно, именно тут и заключается основная интрига лично для меня. Сколько народу придут на unconference в среду? Что это будут за люди? О чём они будут говорить? Останутся ли они довольны или придётся их накуривать? Я пока не знаю. Но думаю, что будет круто!

    Резюме


    Мы уже готовим конференцию Joker с начала июля, и тратим на неё огромное количество времени и сил. И мы будем очень рады увидеть на ней вас всех! Приходите — будет интересно!

    JUG Ru Group
    697.46
    Конференции для программистов и сочувствующих. 18+
    Share post

    Comments 65

      0
      А видио потом выложите? Просто пилить в Питер ради конференции — я пас
        +3
        В посте же написано про видео. Ответ на ваш вопрос там точно есть!
          0
          Добрый день. Есть ли новости про видео? в частности «JDK8: Stream style»?
        0
        Жаль, что в Москве JUG не так активен… Очень бы хотелось посетить конференцию, но не уверен, что получится выбраться в Питер, да еще и на два-три рабочих дня…
          0
          Ой, чую неладное ща будет, ну да ладно…

          Меня просто поражает тот вал конференций, который устраивается по Java…

          Вначале нам говорили, что проблемы этого поганого и страшного C++ с кучей утечек памяти решаются просто переходом на Java, и опа доклад из разряда «Спорим, в твоем приложении есть утечка памяти?», где товарищ из Plumbr будет показывать как память тает на глазах при редиплоях из-за кривых библиотек, забытых close после открытия соединения и невыполнения какой-то магии в десяток строк, которую просто не выполняют, потому что документация слишком большая и разработчики до этого места просто не дочитали.

          Ещё говорят про замечательный Garbage Collector, который всё делает за нас, и память контролирует и чистит всё, который «вааще решает все проблемы», но на каждой, или практически на каждой конференции рассказывают опять про то как этим «простым» GС нужно правильно пользоваться и как его нужно понимать…

          Потом нам говорят про простоту языка Java (опять же в C++ всё просто безумно сложно), но опять же ни одна конференция уже не обходится без доклада о том, как использовать что-то иное на JVM или писать свою DSL, чтобы всё было наконец-то красиво…

          Я уже не говорю про то нагромождение технологий и библиотек, имеющих довольно правильную прикладную идею в зачатке, но выросших до огромных монстров с нагромождением XML-ля или ещё чего похлеще, а порой и библиотек как бы решающих проблемы других ранее созданных библиотек, которые также стремятся в сторону универсальности — чит. монструозности. И во всём этом вале путаются порой специалисты с многолетним опытом java-разработки…

          И вот я смотрю на всё это, и понимаю, что эффект Java родил такой прикольный и походу дела довольно прибыльный бизнес по поставке неиссекаемого источника знаний…

          Нет, не поймите меня неправильно, и тут бы я с удовольствием и Кекса бы послушал, и Елизарова, и Бреслава даже просто потому что они реально крутые докладчики и говорят как правило по делу, однако… никак не пропадает ощущение того, что где-то мы свернули не туда…
          • UFO just landed and posted this here
              +1
              Я им про Фому, а они про Ерёму… По-сути опять попали в небо пальцемЯ уже давно понял, что серебряной пули нет (можешь мои старые комментарии почитать, если не веришь)… Я вообще написал про бизнес по поставке знаний (или в кавычки это взять?)… Просто кроме того, что «серебряной пули нет» я ещё вижу и бессмысленность такого огромного количества конференций по сути об одном и том же.
                +4
                Например про другую конфу «Цена участия в конференции зависит от даты оплаты — она будет меняться от 13 000 до 21 000 рублей.» — вот это вот бизнес. Причем не «бизнес по поставке знаний», а просто бизнес.

                А Joker, JPoint да и JavaOneMoscow — это благотворительность.
                  +6
                  На этом каменте мы с real_ales, jetliner и alexbel всплакнули и хлопнули по рюмашке.
                    +1
                    Ну я не конкретно про эту конференцию… Просто это уже третье упоминание про очередную Java-конференцию за сегодня. Я вообще про движуху. Есть же ещё куча всяких «тренингов» и курсов по переделке вчерашних бухгалтеров в java-программеров. Вот тут реальные деньги поднимаются.
                      0
                      дык это я движуху навожу. Ты наверняка видишь упоминания одной и той же конфы. Так и задумано))

                      Про бухгалтеров в Java-программеров, да это беда. Дефицит кадров называется. Проблема в том, что при таком дефиците любой вменяемый специалист к 30-35 годам становится менеджером, и мы теряем вменяемого инженера. Остаются таксебешные или те, кому насрать. И я даже не знаю, какой случай хуже.
                    +3
                    Окей, допустим я хочу сделать бизнес из Java-конференций. Ну и чего? Конференций много, они все в разных городах и странах. Возьмём питерцев.

                    Человек 10 не-докладчиков из Питера я видел на JavaOne в Москве. В Киеве и Риге мы из питерцев не видели никого кроме докладчиков. На апрельском JPoint было человек 10 из Москвы, 2 человека из Казани, 1 из Самары, 1 из Минска.

                    Вывод: люди не ездят из города в город.
                    • UFO just landed and posted this here
                    +1
                    1. «Вал конференций по Java». Мне кажется, в каждом крупном городе, где есть девелопмент, должна быть 1-2 Java-конференции в году. Чтобы люди общались, перенимали опыт друг друга и докладчиков и вообще смотрели по сторонам.

                    2. GC, утечки памяти, Performance — это специфика того, что все организаторы конференций любят Oracle, а точнее, конкретных докладчиков из Oracle (двое самых видных, Walrus и TheShade, уже отметились тут в каментах). Тот факт, что они рассказывают про системные вещи — так сложилось. Хотя вот они весь последний год ещё про лямбды мутили. Тот же JUG постоянно ругают, что у нас много «системных» докладов и мало прикладных. Тут тоже всё просто: фреймворки меняются, а база остаётся!

                    3. Конференция — она на то и конференция, что много разных докладов. У нас на Joker будут доклады как про GC и утечки памяти, так и про Spring, JavaEE, IntelliJ IDEA, скриптовые языки, написание тестов, оптимизации производительности, BigData, Lucene/Solr, Cassandra и т.п.
                      –3
                      Мне кажется, в каждом крупном городе, где есть девелопмент, должна быть 1-2 Java-конференции в году
                      Именно Java?.. Ну-ну… Чтобы носа в иные области не показывать и дальше считать, что мы програмим на самом лучшем?.. Или чтобы обсуждать про то как совладать с тем обилием говнокода на Java? Просто извините, но я сам сейчас програмлю на Java и с бэкграундом в нескольких других языках программирования — и я вижу проблемы Java и технологий, и судя по темам, которые поднимаются на конференциях — я не один такой умный. В то время как чистые джаависты и им сочувсвующие, с которыми я общаюсь, до сих пор витают в своих мифах (как-то как же сложно управлять памятью в C++) и нос куда-нибудь дальше какого-нибудь JavaScript не кажут, в то время как на самом деле Java — это порой не меньшее говно чем многие другие языки и технологии, а порой и большее.

                      Я не пытаюсь вас учить, как нужно конференции делать. Я совершенно про другое… Чувствую из моего первого комментария не понятно и нужно развить мысль?..
                        +4
                        Я считаю, что конференции для программистов должны проходить в Питере минимум раз в месяц. Кому-то интересна жаба, кому-то плюсы, кому-то дотнет, кому-то питон, кому-то руби, кому-то андроид, кому-то российский футбол и так далее. Проблема простая: этим никто не занимается. Точнее, один ITMozg пытается. Только у них постоянно говно какое-то выходит плохо полчается. Серьёзные люди, заглянувшие туда, неделю потом плюются.

                        Мы вот сейчас прорабатываем ещё 4 технических конференции (не-Java) на 2014 год совместно с разными конторами. Посмотрим, что из этого получится.
                          +1
                          Я считаю, что конференции для программистов должны проходить в Питере минимум раз в месяц

                          А я вот тоже так считаю! Но понятие программисты не ограничивается одним Java, а ваш изначальный комментарий был именно про конференцию по Java.
                            0
                            ну да, 1-2 в году по Java это норма, имхо. Например, для Питера мы задумали так: одна хардкорная, про кровавые внутренности Java (JPoint), а другая общая (Joker).
                        • UFO just landed and posted this here
                            0
                            Мне приходится работать и соответсвенно общаться с разными людьми. И поверьте, меня не окружают сплошь идиоты. Я наверное немного переборщил с эмоциональностью моего предыдущего комментария… Сори… Но например даже рассказ про такую элементарную штуку как счётчик ссылок, который, например, можно было бы использовать для автоматического закрытия соединения с базой, но которая по естественным причинам невозможна в java, у людей округляет глаза — для многих свет клином сошёлся на GC (а счётчик ссылок — это то решение, которое используется в Objectove-C, С++ и вроде как Питоне для автоматического возвращения памяти в кучу), а проблему забывания закрытия соединения в лучшем случае решается использованием try-finally конструкций с ручным проставлением close (которые тоже ещё нужно не забыть написать) в каждом месте где происходит открытие соединения.

                            И на java они вполне себе вменяемо работают. Проблема-то в другом: однажды проглотив эту пилюлю java они теперь ни во что другое смотреть не хотят. А технологии, нереализуемые на java для них просто не существуют. Ну в лучшем случае глянут на какую-нибудь Scala — но она настолько мозг вынесет, что они скорее всего опять убегут в своё комфортный мир Java, найдя 100500 оправданий почему овчинка выделки не стоит. Отсюда и мифы.
                            • UFO just landed and posted this here
                                +1
                                А хотите доклад «Невыносимая легкость RefCounting или различные подводные грабли данного подхода»? Надеюсь в минут 40 уложусь. ;)
                                  0
                                  Я хочу, но я дурак не главный по этой части! real_ales, что скажешь?
                                    +3
                                    Короче тащите печеньки на Unconference — там расскажу.
                                      0
                                      кстате да!
                                        +1
                                        блин :( Ну хоть обзор того, что собираешься рассказать, чтобы подогреть интерес… Просто чего тащиться если там только про loop-ссылки и связанное с этим только будет, о чём и так все знают?
                                          +1
                                          Тащиться, в принципе, не нужно!!! Ни по одной причине! Все и так все знают!
                                            +1
                                            Ну ладно преувеличил немного… Ну не все всё знают… Тезисы-то или обзор хотя бы проблем можно всё-таки узнать? Интересно же, чёрт побери!
                                    +1
                                    Кстати не «технологии, нереализуемые на java для них просто не существуют», а технологий, нереализуемых на java просто не существует. ;)

                                    Гуглим тезис Чёрча. ;)
                                      –1
                                      Какое отношение невозможности предсказания того, что алгоритм завершится за конечное число шагов, а не будет бесконечным, имеет к тому, что счётчик ссылок на java если и реализуем, то выглядить скорее всего будет хуже чем то убожество, что получается, когда пытаешься реализовать хоть что-то похожее на механизм передачи методов в другие методы?
                                        +2
                                        Гугл бан детектед.
                                        Тезис Чёрча, говорит там о том, что все сколько-нибудь нормальные языки Тьюринг-полны — а следовательно эквивалентны. Вот например шикарнейший свежачок.

                                        RefCount ради RefCount? А как, кстати, вы его будете на C++ реализовывать? ;)

                                        А вот с этого места " убожество, что получается, когда пытаешься реализовать хоть что-то похожее на механизм передачи методов в другие методы" поподробнее.
                                          0
                                          ну да, теоретик из меня конечно полное говно… Самоучка — что с меня взять… Но всегда приятно узнавать что-то новое.

                                          А теперь по поводу того, как реализуется счётчики и почему это невозможно нормально сделать в java: например за основу можно взять общеизвестный shared_prt. Аналогично реализуется счётчик для открытой базы: в классе cчётчика реализуем указатель на переменную, в которую как раз и пишется количество копий. Ну что-то типа такого (это псевдокод, который даже скорее всего не компилится, а db — это база данных за которую мы не хотим забыть закрыть, когда нам соединение с ней уже не нужно, т.е. последняя копия уничтожается и счётчик уходит в 0):

                                          struct A {
                                          A() {
                                          a = new int(1);
                                          db.open();
                                          }

                                          ~A() {
                                          if( 0 == (--(*a)) ) {
                                          delete a;
                                          db.close();
                                          }
                                          }

                                          A& operator=(const A& src) {
                                          this.~A();
                                          a = src.a;
                                          (*a)++;
                                          }

                                          A(const A& src) {
                                          a = src.a;
                                          (*a)++;
                                          }
                                          private:
                                          int* a;
                                          }

                                          На Java это невозможно хотя бы потому что все объекты создаются в heap, а деструктор отсутвует как сущность.

                                          Теперь по поводу убожества с передачей функции в функцию. На java приходится писать минимум какой-то интерфейс, который потом имплементировать минимум в анонимном классе и получается что-то типа (очередная пачка псевдокода):

                                          interface Comparer {
                                          int compare();
                                          }



                                          public void foo(Comparer comparer) {...}



                                          foo( new Comparer() { public int compare() {… } } ) // что это за хрень такая длинная даже без реализации???

                                          Как это делается в современном C++

                                          void foo(int (*)())

                                          foo([] {...}) // и всё, если я не ошибся с синтаксисом лямбд в C++ (блин, нужно срочно пописать на C++, а то я совсем оджавился)

                                          Да-да, я знаю, что в восьмой появятся вроде как лямбды… Но сейчас-то их нет :) А в C++ есть…
                                            +1
                                            ну что, делаем сплит ветки. Начнем с RefCount.

                                            вопрос 1. что будем делать при многопоточной работе?

                                            вопрос 2. как будем дружить со сторонней либой, поставляемой в бинарниках?

                                            Ну и по мелочи, если наша структура не 100%-й лист — как подстрахуемся от циклов?
                                              0
                                              Слушайте, вы меня пытаетесь убедить, что «не всё так просто» (с)… Так я, блин, это и так знаю (я это понял, ещё когда Александреску и Майерса читал). Приведённый мной код — это этакий псевдокод, который позволяет просто концепцию понять. Конечно нужно ещё посидеть, подумать и написать гораздо больше с учётом тех требований, что есть (как то многопоточность, например). Но я напишу это один раз и буду пользовать где это необходимо., а лучше даже писать ничего не буду, а буду пользовать уже написанные инструменты, потому что в C++ это возможно. А в Java? Не уверен… Хотя может я что-то не знаю?

                                              Вы же сейчас хотите, чтобы я вам на коленке и по-быстрому тут чуть ли не boost заново написал, по сути пытаясь в очередной раз показать, что «серебряной пули» нет. Так я и так это знаю!

                                              Мне вот интересно, как написать аналогичный по функционалу счётчик ссылок на Java (да-да, чтобы close автоматом вызывалась, когда она нам не нужна), ведь C++ и Java как бы эквивалентны.
                                                0
                                                Во первых вы так и не ответили на мои вопросы. Я их задал не для того, чтобы показать, что все не так просто, а чтобы вы задумались что же не так просто. Писать новый boost не надо, просто подумайте.

                                                Так все таки, вам close звать или счетчик ссылок? Если close — то WeekReference, если счетчик ссылок — то эмулятор RAM машины можно за пару месяцев наклепать.

                                                Они не как бы эквивалентны, они эквивалентны. ;)
                                                Вот SQL им не эквивалентен, а вот PL/SQL уже таки да. ;)
                                                  0
                                                  Мне конечно же нужно решить задачу: нужно гарантировано (обязательно!) вызвать close, как можно ближе к моменту, когда ресурс уже не используется, вызвать один раз (обязательно!), при этом сделать так, чтобы снизить вероятность того, что этот вызов будет забыт при следующей «раздаче костылей» например неожиданным появлением return в середине какой-нибудь функции. Как это делается с помощью WeakReference? Приведите более развёрнуто или ссылку дайте — потому что я про них знаю, но каким боком они мне гарантируют закрытие соединения в момент, когда оно мне уже точно не нужно — я не понимаю.

                                                  Про реализацию RAM-машины за пару месяцев (!!!) — вот уж точно вся сила и простота java в одной фразе! :)

                                                  Раз вы ещё не поняли, что я неплохо осведомлён про проблемы счётчика ссылок, то вот вам ответы:

                                                  1. в той реализации, что привёл я — будем получать откровенную задницу, потому что использовать этот код в многопоточной среде (который был написан за минуту и 5 секунд обдумывания, учитывая то что я на C++ уже довольно долго не программлю на регулярной основе), это всё равно что использовать HashMap вместо ConcurrencyHashMap в той же самой многопоточной среде. Конечно код требует доработки с учётом требования многопоточности (ну не 2 месяца!). Простое, но наверное не самое лучшее решение — это реализовать что-то типа механизма sinchonized функций, чтобы в каждый момент времени только один поток мог что-то менять в разделяемом ресурсе счётчике, благо у нас функции-то элементарные и быстрые, а долгая инициализация и запуск использования ресурса запускается один раз (для реализации этого можно привлечь boost Thread, который например позволит уйти от использования системных вызовов и сделает код мультиплатформенным).

                                                  2. смотря какая либа: если это что-то старое и в ней поставляется какое-то api, которое требует после всего этого вызвать какую-то дессериализацию, то ничто не мешает написать обёртку над её api c использованием того же механизма счётчика, который будет автоматом запускать эту дессериализацию, когда обработчик из либы нам не нужен. Если это что-то новое, написанное с использованием стандарта C++11, то тут вообще проблем быть не должно, если конечно разработчик не сраный «индус» (я не о нации — я о типе разработчиков), которые умудряются даже на java такое творить, что волосы встают дыбом на самых причинных местах, если чувак реально писал с использованием стандартной техники — механизм дессериализации для функционала будет вызван автоматом. Надеюсь я вас правильно понял и ответил на этот вопрос, потому что ответил так, как понял пространное «дружить со сторонней либой, поставляемой в бинарниках»… Если не то — уточните вопрос.

                                                  3. проблема loop-ов — есть такое. Но никто не обещал «серебряной пули». Разрешается использованием механизма аналогичного weak_prt, например. А вообще крайне сложно что-то действительно универсальное для столь пространной постановки задачи, вырванной из контекста. Думать нужно… а вы что хотели?

                                                  А давайте я вам ещё помогу и сам себе задам вопрос: а что будет, если моя мегаумная ссылка в какое-нибудь статическое хранилище попадёт, в котором будет сидеть до посинениязакрытия программы? Да, это тоже проблема :) Мне отвечать? Или я уже сумел показать, что понимаю проблемы и этого подхода.

                                                  Ещё раз: я прекрасноо понимаю, что «серебряной пули» нет, но есть механизмы, применение которых оправдано или не очень в той или иной ситуации. Отличие C++ от Java в том, что я могу реализовать эти механизмы используя сам язык и возможности (в подавляющем большинстве случаев), заложенные в нём, на Java такой универсальности нет. С другой стороны механизмы уже заложенные в Java подходят наверное для большинства задач и не приходится «изобретать велосипед» каждый раз, но когда он необходим — возникает проблема, как то написание за 2 месяца эмулятора RAM машины.

                                                  Расскажите или ткните носом на то, как использовать WeakReference для автоматического вызова close как можно ближе к моменту, когда ресурс нам уже не нужен — это гораздо интереснее (ну по крайней мере для меня) чем переливать из пустого в порожнее то, что мы и так оба знаем и понимаем.
                                              0
                                              Теперь про лямбды. Кстати в Java они у меня также давно есть. ;) Не вижу проблем.

                                              Правда в продакшене я лямбды использовать не могу, потому что по требованиям продакшена сборка должна делаться GCC 4.5, а там лямбды еще не сделаны.
                                                0
                                                Кстати в Java они у меня также давно есть. ;)
                                                Каким макаром, интересно? Поделитесь опытом…

                                                А по поводу лямбд и сборки GCC4.5 — есть boost, в котором лямбды ещё с использованием синтаксиса предоставляемого C++03 реализованы.

                                                Ну и потом, даже передача функции по имени в C++ гораздо более логична и описана в любой книжке по C++. Да, тут тоже не очень красиво, что в этом случае придётся определить именованную функцию функцию за пределами текущей функции…

                                                Хотя можно опять же можно определить структуру или класс внутри функции, а в ней уже статик функцию и передавать её. Это вроде бы не отличается от того, что есть в java… Но тут мы неожиданно вспоминаем про макросы, через которые всю эту тягомотину и кучу текста можно привести к тому, что для нас действительно имеет значение сейчас, а именно передаваемые параметры, возвращаемое значение, логика передаваемой функции…

                                                А ещё есть функторы, а на их основе можно сделать опять же делегаты…

                                                Да короче в C++, даже в старом, есть механизмы, которые мне, как разработчику позволят сделать что-то типа DSL для этой задачи, что в будущем облегчит использование передачи функции в другую функцию, с минимумом текста и прочего булщита, которое совершенно не имеет отношения к решаемой задачи.

                                                В Java я таких механизмов к сожалению не нахожу, поэтому каждый раз приходится писать туеву хучу текста из всяких new, public, static + имя функции, в то время как мне всё это не нужно: я просто хочу, чтобы внутри одной функции выполнялась логика передаваемой. Может я просто чего-то не знаю — если ткнёте носом, как это сделать на Java — буду признателен (помните, что на Гугл я уже забанен:)) ).
                                                  0
                                                  лямбда билды доступны для публичного скачивания уже 100 лет. Кстати текущий 106-й — он же и последний, больше лямбда билдов не будет.

                                                  Уважаемый, обсуждать синтаксис любых языков скучно и не интересно. Язык для меня — это семантика, а не синтаксис. Для синтаксиса есть IDE.
                                                  Ну и должен заметить, что услышав слово DSL — я хватаюсь за пистолет (TheShade знает почему) ;)
                                                    0
                                                    лямбда билды доступны для публичного скачивания уже 100 лет.
                                                    То же самое про boost lambda можно сказать и присутсвие в C++ этих лямд. Поэтому ваш плач, что у вас GCC 4.5, в которой «ничаво не работает» совершенно неконструктивен — вы просто пошли по пути наименьшего сопротивления, решив не заморачиваться, а просто свалив всю вину за свою некомпетентность на язык.

                                                    Уважаемый, обсуждать синтаксис любых языков скучно и не интересно. Язык для меня — это семантика, а не синтаксис. Для синтаксиса есть IDE.
                                                    Для написания наверное убогий и многословный синтаксис — это не такая уж и большая проблема, но вот для последующей поддержки — вот это да! Когда к коду возвращаешься через пару лет, или даже кто-то другой начинает в нём разбираться — вот тут и начинается откровенное давление всей этой избыточности, которая к решению задачи по сути не имеет никакого отношения. Да и IDE разные: та же Idea всячески скрывает и сворачивает в Scala и Closure представления огромные и адово избыточные тексты на java, чтобы разработчику было проще их читать. Значит наверное не я один охреневаю от того, сколько же пустой хрени приходится забивать, а потом видеть на java, чтобы всё это хотя бы заработало. В других IDE такой дружественности как-то не заметил, а с моим кодом не только я, но и команда с разными IDE работает.

                                                    А вы случаем не из тех, которым скучно создавать для магических чисел именованные и осмысленные финализированные переменные, чтобы во время поддержки было более понятно, какой смысл был вложен в очередной «42» или что хуже «58»? Ведь на этапе написания и так всё понятно, и вообще это проблема того, кто потом в этом говне разбираться будет?

                                                    Ну и должен заметить, что услышав слово DSL — я хватаюсь за пистолет (TheShade знает почему) ;)
                                                    Надеюсь не чтобы вышибить себе мозги?.. Шутка :) Мне TheShade спросить, или вы сами поясните? Пока эта фраза совершенно бессмысленна и откровенный bullshit. Посмею только предположить, что эта неприязнь скорее всего основана только на вашем негативном опыте. Но тот же issue-трекер YouTrack от JetBrains написан с использованием DSL, и они уже не раз говорили, как этот изначально заложенный в проект механизм позволял им на порядок делать меньше работы, чем если бы они лабали всё на raw-java (что вроде бы делается с JIRA). А ещё можете спросить у Кекса на конференции, как он пишет на Java и для упрощения кода пытается делать этакие небольшие локальные DSL, чтобы не генерить 10 строк кода, когда можно обойтись более лаконичными 2. Может опыт других участников конференции позволит вам обрести катарсис и просветление в этом вопросе?
                                                      0
                                                      Данная дискуссия началась с вашего плача, как «Java задолбала, не продохнуть от конференций».
                                                      Мой вам совет не ходите на конференции — там скучно и одни банальности. ;)
                                                        –2
                                                        Как я понял, ответов на свои вопросы я не получу…

                                                        Ну что ж.

                                                        В принципе вы даже косвенно подтвердили мою уверенность, что многие (но не все) конференции (а особенно по Java) превратились из просветительского и образовательного мероприятия либо в откровенное зарабатывание бабла, либо в самопиар, либо в маркеттинговые плащадки по всё той же продаже «серебряных пуль» для решения проблем уже проданных. Вы же докладчик? Интересно, а на сессии вопросов и ответов вы тоже на все неудобные вопросы, на которые сами ответов не знаете, в Гугл посылаете и сыплете такими красивыми, но такими далёкими от решения практических проблем, теоретическими выкладками? В принципе это довольно давний (что даже школьники в форумах уже давно освоили) и даже уже неинтерсный способ приструнить вопрошающего, а заодно повысить своё самомнение на ровном месте, при этом не дав конечно и толики ответа на то, что спрашивали изначально.

                                                        Вы не только не смогли ответить практически ни на один мой вопрос внятно (а не наборами тэгов с посылом «ищи в Гугле»), но также не смогли из контекста обсуждения понять, что я хожу (да-да) на конференции, смотрю на доклады и докладчиков, и в принципе готов получать знания (ну потому что понимаю, что я не такой умный (как вы?) и у меня ещё есть куда развиваться), а моё ощущение от конференций появилось не на ровном месте.

                                                        Откуда вы взяли, что я считаю, что «Java задолбала» я вообще не понял: я просто указал на минусы Java (с надеждой и ожиданием разочароваться в своём видении — тут же такие гуру собрались, раз знания в народ на конференциях толкают), а также преподнёс сокращённую историю того, как классно смогли продать «серебряную пулю» под названием Java энтерпрайзу с его «индусами» и любовью к дешёвым (и не очень квалифицированным) работникам, к подхожу «компенсируем качество количеством», а также дал небольшой дайджест, что из этого вышло (сославшись на темы конференций, показывающих проблемы, о которых во время прослушивания изначально красивой сказки никто и подумать не мог).

                                                        В общем последнее, что обычно делают люди, когда уже доводов не осталось — это начинают раздавать советы…

                                                        В принципе гуру на поверху оказались просто пшиком и шарманщиками, что только и могут с утра до вечера крутить гайку на 12… Жаль :(
                                                          +2
                                                          Ответы вы уже получили. Не разжеванные просто, подумайте, и все поймете.
                                                          Во первых разжевывать вам эти ответы долго — уж точно стоит выносить в отдельный пост, а не в комменты.
                                                          Во вторых, вы только один минус Java подметили правильно, все остальное чепуха. Я вам могу еще кучу накидать, причем не из серии «а пацаны то не знали» или «ораклоиды скрывают», а вполне себе общеизвестных, нужно только не выключать критический взгляд на мир. Ну и в третий раз — серебрянной пули нет: ни Java ни C++ таковыми не являются.
                                                          А в третих, вы настолько эмоционально вступаете в беседу, что аж подозрительно «не тролль ли?». ;)
                                                            –3
                                                            image
                                                            Как думаете, мне с моей эмоциональностью стоит посоревноваться с итальянцами или всё же для начала стоит вызвать на дуэль народов Чукотки :)

                                                            Ладно… В общем история повторяется, как уже было с обсуждением Нокии 3 года назад, как происходят попытки объяснить людям, сидящим в SVN плюсы git'а, в спорах любителей SQL и noSQL и пр.: все просят «думать», заваливают терминологией (которую порой не понимают), цифрами (которые не умеют анализировать — в этой дискусии этого правда не было), после ответа на один вопрос задают «уточняющие» (наверное чтобы докапаться, где человек споткнётся), пытаются осмеять, подловить на незнании, дают советы и пр. пр., а воз и ныне там…

                                                            Ладно… Вот вам напоследок выдержка из комментария настоящего Программиста (ingspree — между прочим тоже на конференциях выступает):
                                                            Если посмотреть полную версию, то (я очень надеюсь на это!) должно быть заметно, что я таки стараюсь объяснить, о чëм речь. Большая проблема темы в том, что никто о ней не рассказывает/не пишет понятными словами, все быстро скатываются на специфичную терминологию и считают само собой разумеющимся, что всем понятно, о чëм речь и зачем это.
                                                            Наверное стоит задуматься?
                                                            • UFO just landed and posted this here
                                                                –3
                                                                You made my day! :D

                                                                Мне всегда было интересно, как выглядит кармадрочер, а тут вы нарисовались.

                                                                Я прямо как бидон сметаны съел. А вы, скажите, когда друг другу...Ладно, не здесь (это место не для пошлых шуток!) :)

                                                                Ну зовите ещё друзей! «Кружите меня, кружите!» (с)
                                    +1
                                    Честно говоря, мне кажется, что с Java Вам пытались продать серебряную пулю. А как только вы поняли, что это нет так (а так и быть не может), то сильно-сильно огорчились.
                                    Java это самая обычная технология. Магии тут нет.
                                      +1
                                      Честно говоря, мне кажется, что с Java Вам пытались продать серебряную пулю. А как только вы поняли, что это нет так (а так и быть не может), то сильно-сильно огорчились.
                                      Вам неправильно кажется, потому что к тому времени, когда я начал профессионально и серьёзно заниматься программированием на java и с использованием сопутсвующих технологий, у меня мало того, что неплохой бэкграунд в программировании вообще был (т.е. я не с пальмы слезне из универа сразу в java окунулся, не видя других перспектив) и мне было с чем сравнивать, я уже много всего услышал и прочитал про Groovy, Scala, Clojure, включая критику от созтдателей этих языков программирования. Kotlin тогда, помнится, только проклёвываться начал, а Андрей Бреслав во всю рассказывал про него, естественно сравнивая с Java (естественно Java в докладе не блестал). Ну и что таить немного попрограммить на java к тому времени тоже пришлось. Ну оооочень немного… Так вот, в таких условиях мне никто и ничего продать не смог бы, отсюда и разочарования от «купленного» кота в мешкей" «серебряной пули» нет и не может быть.
                                        +1
                                        Кстати, а какая же Ваша любимая технология?
                                        C++, C#, Erlang, Haskell? По ним мало конференций? А почему, как Вы думаете?
                                          0
                                          Блин, во мне сейчас борятся питонист средней паршивости и хардкорный любитель плюсов! А можно оба?

                                          По поводу конференций сказать много что-то существенное особенно не могу, поэтому далее только рассуждения дилетанта, (осторожно!) возможно глупые.

                                          Я их (конференции) не особо считаю, но по ощущениям их меньше, чем по Java. Но именно это скорее всего и создаёт ощущение какой-то большей основательности и целостности предоставляемого материала на каждой из конференций… Почему их меньше? Ну с моей точки зрения из-за меньшей популярности. Всё, что связано с Java тянется за локомативом под названием JavaEE. Энтерпрайз рулит, а впарить ему что-то ещё, когда там так основательно обосновалась Java, ох как непросто. Плюс ни за одним из этих языков не стоит такой мощи как Оракл. Да, конечно и MS устраивают всякие NativeDays, да и Google активно продвигает и использует внутри себя Python, но для Оракл Java — это в первую очередь продукт, который они всячески продают (не напрямую конечно), в первую очередь конечно же корпоративному рынку, поэтому Оракл конечно же выгодно поддерживать и подпитывать комьюнити, что в том числе делается и через кучу конференций, и через всякие тренинги, и через всякое сертифицирование и прочие мероприятия связанные с Java.

                                          Чтобы не создавалось впечатления, что «Оракл во всём виновата» замечу, что Java конечно популярна не только потому что это Оракл (или ранее Sun) продавила — если бы в Java не было бы кое-каких действительно революционных для совего времени технологий, то как бы Sun не пыжилась — ничего бы не получилось.

                                          Но я говорю не про прекрасное прошлое, а про немного странное настоящее, в котором, как мне кажется, конференций по Java ух как много.
                                            +2
                                            Хочу, блин, в Питере хардкорную конференцию по плюсам!
                                            Где??? Организаторыыыыыыыыыы! Ау!!!
                                            Что, нет волонтеров время тратить?

                                            " за одним из этих языков не стоит такой мощи как Оракл" ну дык, и уж точно не проблемы Оракла. ;)
                                            А уж за Joker'ом Оракл стоит постольку, поскольку в Питере есть офис. Не было бы офиса — не было бы мультиков.
                                              0
                                              офис — громко сказано. Просто есть несколько человек, которым не насрать.
                                                0
                                                Хардкорную? А с какой книги Александреску начинается хардкор?

                                                Мы организуем, не вопрос, но нужна будет помощь в экспертизе со спикерами.
                                                  +1
                                                  Хардкор не в книгах, харкор в головах.
                                                    0
                                                    кажется, ты путаешь слово «хардкор» и слово «хаос». Классик сказал бы, что ты путаешь слова «хардкор» и «разруха».
                                                0
                                                Чтобы не создавалось впечатления, что «Оракл во всём виновата» замечу, что Java конечно популярна не только потому что это Оракл (или ранее Sun) продавила — если бы в Java не было бы кое-каких действительно революционных для совего времени технологий, то как бы Sun не пыжилась — ничего бы не получилось.


                                                именно, ну собственно эти революционные технологии появились на java просто потому что на ней проще и быстрее было их создавать и развивать как опенсорс, чем например на cpp, который конечно и мощнее и быстрее и т.д.
                                                  +1
                                                  Я не очень понял, что в вашем понимании является революционными технологиями на java (неужели вы про какой-то там Spring или Maven? — ну я вас умоляю), потому что я-то как раз под революционными технологиями понимал сами основы java, а именно JVM и Garbage Collector. И я прекрасно осознаю, что Java — это не первый язык где они применяются, но именно Java популяризировала эти идеи и сделала массовыми. И да, я не зря написал «для своего времени»: сами идеи-то по-началу создают такой эффект «Вау!», но время и опыт работы уже расставили по своим местам многое: изначальная идея «Написал один раз — запустил где угодно» оказалась не такой уж и жизнеспособной — это в принципе работает только на больших компьютерах (да и то… есть куча нюансов), а в мобильной сфере java по сути не представлена (java на Android — это на самом деле отдельная несовместимая с изначальным JVM от Оракл сущность эксплуатирующая по сути только синтаксис java), а GC (вот уж где все ждали той самой «серебряной пули», которая по сути и продала Java корпорациям и той армии дешёвых индусов в них, которые, как оказалось, даже на Java творить чёрти знает что — сходите на доклад чувака из Plumbr про утечки памяти в java — он там наверняка упомянет, кто был первым их клиентом — не удивлюсь, если то же было в своё время с java — в общем я что-то отвлёкся)… Так вот GC порой бывает слишком неуправляем и приводящий к скрытым ошибкам, которые проявляются только когда продукт уже какое-то время на продакшине, поэтому из года в год, из конференции в конференцию перетекают темы о том как правильно курить GC, да и для некоторых проектов эта технология оказалась какой-то слишком неуправляемой (ну например приведите мне хоть один более или менее популярный браузер, написанный на java, ну или игру уровня графики да хоть да хоть Call of Duty пятилетней давности).
                                      +3
                                      А вот еще.
                                      Я был бы очень рад не повторяться с докладами. Что совсем новое всегда лучше чем даже обновленное. Но почему тогда, вопросы на конференциях одни и те же? Почему тогда, вот уже с регулярностью в 3 года при любом голосовании «что рассказать» Java Memory Model если не первая — то в топе???? (как она мне надоела ;))
                                        0
                                        давай к нам на JUG с ней!
                                      +3
                                      На мой взгляд, конференция — это отличный способ выбраться из своей маленькой ракушки и пообщаться с коллегами. Можно рассказать о своих проблемах и послушать как другие решали похожие. Можно найти крутых разработчиков к себе в проект. Можно пообщаться с людьми, которые разрабатывают на Java очень интересные вещи и делают это на протяжение долгих лет. Можно поговорить с людьми, которые замешаны в разработки самого языка Java и JVM, делают инструменты и фреймворки для Java разработчиков. Наконец, можно просто хорошо провести время в общении с другими профессионалами, отдохнуть от работы и набраться вдохновения. И все это за $100! О чем мы тогда вообще говорим? :)
                                        0
                                        за $90 :)
                                          +1
                                          О! Тогда вообще вариантов не остается! :)
                                        +1
                                        Мне кажется, что наличие энтузиастов в любом языке программирования, сделало бы огромную пользу для сообщества в этом языке. Собрать людей и дать им возможность пообщаться — большое дело!
                                          0
                                          А можно обновить расписание треков? Спасибо.
                                            0
                                            А оно изменилось? Я ничего об этом не знаю!

                                          Only users with full accounts can post comments. Log in, please.