• В нативный код из уютного мира Java: путешествие туда и обратно (часть 2)


      Это вторая часть расшифровки доклада Ивана Углянского (dbg_nsk) с JPoint 2020, посвященного связи Java с нативным кодом. В прошлой части мы поговорили про традиционный способ связи — через Java Native Interface (JNI), рассмотрели специфичные ему проблемы и оценили производительность. Картина получилась удручающей, поэтому давайте разбираться, чем можно заменить JNI?

      Читать дальше →
      • +33
      • 3.4k
      • 7
    • Бесплатный IT-фестивальчик TechTrain: вторая волна


        В этом году, когда из-за пандемии все мероприятия перешли в онлайн, мы уже проводили «фестивальчик на удалёночке» TechTrain. Теперь число заражений снова бьёт рекорды, вопрос «как интересно провести выходной дома» снова актуален, и мы устраиваем TechTrain 2020 Autumn: он состоится 24 октября.


        Что можно будет увидеть? И доклады, и различные разговорные формы: круглые столы, интервью, набросы в прямом эфире. И, как водится на TechTrain, топовых спикеров, которые в своей сфере пользуются большим уважением. Например, на вопросы о производительности будут отвечать трое экспертов сразу: двое из Java-мира (Алексей Шипилёв и Андрей Паньгин), третий из .NET (Андрей Акиньшин).


        Какие-то темы рассчитаны на определённых разработчиков («Ускоряем Flutter-разработку»), какие-то — на всех («Будущее IDE»). Расписали все темы под катом.

        Читать дальше →
        • +24
        • 2.5k
        • 6
      • Развитие iPhone: от 2G до 5G


          Сегодня Apple представила iPhone 12, но там обошлось без сюрпризов. «5G, мини-вариант с экраном 5.4'', лидар в Pro-вариантах» — всё, можете считать, что посмотрели часовую презентацию.


          Зато думаю, что это хороший повод оглянуться, вернуть свой 2007-й и вспомнить, как айфоны менялись на пути от самого первого до самого нового. Теперь история iPhone захватывает уже четыре поколения сотовой связи — что с самым популярным смартфоном успело произойти за всё это время? Каких возможностей, которые сегодня кажутся само собой разумеющимися, сначала вообще-то не было?


          Пост обо всех 14 поколениях получился бы слишком длинным, поэтому я выбрал шесть самых значимых моделей.

          Читать дальше →
        • Мобильные танки и тесты: интервью о тестировании World of Tanks Blitz


            У всех есть какое-то представление о франшизе World of Tanks. Но, как правило, оно «снаружи» (пользовательское) и общее. А что, если посмотреть изнутри, и рассмотреть какие-то очень конкретные вопросы? Скажем, на каком языке пишут тесты для мобильной World of Tanks Blitz, и по каким причинам выбрали его?


            Студия разработки мобильных «танков» MS-1 компании Wargaming присутствовала на нашей конференции Heisenbug, и там мы позадавали такие вопросы Дмитрию Сычеву — Lead QA Automation в World of Tanks Blitz. А теперь решили для Хабра сделать и текстовую версию этого небольшого разговора.

            Читать дальше →
            • +13
            • 2.2k
            • 1
          • Делаем свой телеканал



              Вы, возможно, удивитесь, но телевидение всё ещё живо. Да, аудитория поредела и «состарилась», а технологии приумножились и помолодели (IPTV, SmartTV, различные приставки), но всё-таки жизнь есть не только в YouTube и TikTok. Мало того, сейчас сделать свой телеканал можно при достаточно небольших инвестициях времени и финансов. В 2017 году мой брат (Ruler-ufa) попросил меня о помощи с технической реализацией нового музыкального телеканала на башкирском и татарском языках. О том, что у нас получилось, и пойдёт речь в этой статье. Сразу оговорюсь, что нюансов подбора контента, оформления эфира и подобных тем здесь не будет, т.к. я занимался исключительно технической частью. Кроме того, задача была сделать все максимально просто и дёшево, т.к. бюджет был ограничен, поэтому некоторые вещи можно было сделать по-другому — правильнее, но гораздо дороже.
              Читать дальше →
            • C++ Russia: что будем обсуждать уже через месяц


                Всем привет!


                До C++ Russia осталось меньше месяца — самое время показать вам, о чём там расскажут-то.


                Как обычно, спектр тем будет широкий — от прикладных («решаем нетривиальные задачи средствами современного CMake») до довольно академических («как лямбды в C++ и других языках соотносятся с исходной идеей лямбд»). Как обычно, состав спикеров интересный, и о некоторых технологиях поведают их непосредственные авторы: обсудим Compiler Explorer с Мэттом Годболтом, а про GWP-ASan расскажет Константин Серебряный.


                А подробнее о блоках программы и каждом докладе — под катом.

                Читать дальше →
                • +21
                • 2.1k
                • 3
              • Программа Joker 2020: Java изнутри и снаружи


                  До конференции Joker меньше полутора месяцев, и пришло время рассказать Хабру, о чём будут её доклады.


                  Если говорить в целом, то так. Помимо докладов, будут воркшопы: они хорошо подходят онлайн-формату. Будут интересные новые спикеры вроде Питера Лори (на Stack Overflow — второй в мире по тегу «jvm»). Конечно, будут и хорошо знакомые имена: Тагир Валеев, Евгений Борисов и не только. Докладов по Spring в этот раз набралось на целый блок.


                  А за конкретикой приглашаем под кат — там описан каждый доклад.

                  Читать дальше →
                  • +25
                  • 2.8k
                  • 4
                • В нативный код из уютного мира Java: путешествие туда и обратно (часть 1)


                    Java и другие управляемые языки просты и удобны во многих случаях, но иногда их возможностей недостаточно — например, если нужна библиотека, написанная только на C или C++. Иногда хочется позвать пару методов из системного API, или попытаться улучшить производительность для модуля — и тогда прямой путь в нативный код.


                    Но тут возникают подводные камни: написать нативный метод и вызвать библиотеку может быть и легко, но JVM начинает крашиться в случайных местах, производительность падает, сборщик мусора перестает справляться с работой, а в репозитории царствуют бесконечные C-шные файлы с буквами JNI. Что же могло пойти не так?


                    Иван Углянский (dbg_nsk) из Huawei разбирается со всем по порядку: что необычного в интеропе между Java и нативным кодом, как оно работало раньше и что нужно делать для их нормальной совместной работы (и можно ли это вообще сделать). Иван рассказывает, как избежать просадок производительности, внезапных OOM и размышляет на тему будущего — в контексте проектов Panama и Sulong.


                    Мы подготовили текстовую версию доклада о работе с нативами в Java. В первой части:


                    • Зачем вообще работать с нативным кодом в Java.
                    • С какими ошибками и проблемами придётся столкнуться при работе с нативами.

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


                    Далее — повествование от лица спикера.

                    Читать дальше →
                  • Новая неделя стримов: от SvelteJS до Rider


                      Мы продолжаем нашу серию разговорных YouTube-шоу для различных IT-специалистов. На этой неделе снова будет шесть разных выпусков для самых разных айтишников: например, джависты смогут похоливарить на тему «Spring или Microprofile», а плюсовики — на тему билд-систем. Полное расписание под катом.

                      Читать дальше →
                    • Глубокий мир автоответов почты, и что там водится



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

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

                        Параллельно мы начали делать две вещи: вручную собирать почты для правила, убирающего автоответы в подпапку и думать, как это автоматизировать. Автоматическое решение, конечно, нашлось, но и автоответы собрать тоже удалось. Ниже распределение типов автоответов с одного из писем в мае про то, что происходит с границами.

                        Мой фаворит, конечно, некто Андрей, установивший автоответ: «Спасибо! Ваше письмо доставлено, если вопрос не терпит отлагательств пожалуйста продублируйте его еще раз. С Уважением к Вашему делу!».

                        Встречаются и более богатые сюжетом письма по экрану текста. Сейчас покажу.
                        Читать дальше →
                      • Разработать видеоплатформу за 90 дней

                          Этой весной мы оказались в очень весёлых условиях. Из-за пандемии стало ясно, что наши летние конференции необходимо переносить в онлайн. А чтобы провести их в онлайне качественно, нам не подходили готовые софтовые решения, требовалось написать собственное. И на это у нас было три месяца.


                          Понятно, что это были увлекательные три месяца. Но со стороны не вполне очевидно: что вообще представляет собой платформа для онлайн-конференций? Из каких частей она состоит? Поэтому на последней из летних конференций DevOops я расспросил тех, кто отвечал за эту задачу:


                          • Николай Молчанов — технический директор JUG Ru Group;
                          • Владимир Красильщик — прагматичный Java-программист, занимающийся бэкендом (вы также могли видеть его доклады на наших Java-конференциях);
                          • Артём Никонов — отвечает за весь наш видеостриминг.

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


                          Читать дальше →
                        • Краткое описание BPMN с примером

                            Краткое описание BPMN

                            О том, что такое BPMN, написано очень много. Но проблема в том, что почти вся информация, которую можно найти в Интернет, ориентирована на людей, которые уже ранее сталкивались с BPMN или с другим стандартом моделирования бизнес-процессов. Я же предлагаю разобраться «с нуля» — что такое BPMN? В чем особенности и преимущества этой технологии и почему она появилась и оказалась столь востребованной, по крайней мере, за рубежом. Да и у нас в стране ей все больше и больше интересуются.

                            Также я хочу сразу обратить ваше внимание на то, что здесь я буду говорить именно о нотации BPMN, т.е. о языке моделирования бизнес-процессов. Я, конечно, постараюсь максимально просто описать основы BPMN так, чтобы они были понятны даже новичкам. Но также важно понимать, что здесь я буду говорить именно о языке, а не о методологии.
                            Читать дальше →
                            • +5
                            • 217k
                            • 7
                          • Знакомство с нотацией IDEF0 и пример использования

                              Одна картинка стоит тысячи слов
                              Народная мудрость
                              IDEF0
                              Зачастую в моей работе возникает необходимость не просто изучить и решить определенную проблему, но выявить ее местонахождение в общей модели работы компании. Мало понимать, что определенное подразделение работает неправильно, важно понимать, каким образом оно взаимодействует с другими. Иначе невозможно выявить все существующие проблемы и выбрать оптимальный метод решения поставленной задачи. А для этого требуется изучить работу компании и составить ее функциональную модель.
                              Читать дальше →
                            • Анонс новых конференций JUG Ru Group: итоги прошедшего сезона, новые даты и доступ к докладам


                                В апреле мы сообщили, что наш летний конференционный сезон переезжает в онлайн. Скажем прямо: тогда мы и сами не до конца знали, как он будет выглядеть. Конечно, понимали, что с технической составляющей заморочимся, а доклады будут держать привычную планку. Но какими именно должны быть «виртуальные стенды» компаний или «виртуальные дискуссионные зоны» со спикерами, решалось уже на ходу.


                                Недавно этот сезон завершился: это были очень насыщенные четыре недели, которые многому нас научили. Можете сами прикоснуться к этому и увидеть самые звёздные выступления: мы уже выложили для всех несколько видеозаписей с разных конференций этого сезона — в том числе QA-сессии Джеймса Гослинга, Бьярне Страуструпа и Джоэла Спольски (ссылки в этом посте). Если захочется не ограничиваться ими, скоро начнём продавать и доступ ко всем видеозаписям прошедшего сезона.


                                И теперь пришло время анонсировать осенне-зимний сезон. Как и предыдущий, он пройдёт в онлайне. Но теперь в анонсе мы можем не «размахивать руками в воздухе», а делиться конкретными скриншотами и деталями, опираясь на полученный опыт. Что вообще представляют собой «онлайн-конференции от JUG Ru Group»? Чем они отличаются от простого просмотра прошлогодних докладов с YouTube? Как всё прошло на недавних, и чем будут отличаться новые?

                                Читать дальше →
                              • «А Crysis потянет?» Почему до сих пор обсуждают игру, выпущенную 13 лет назад

                                • Translation
                                image

                                Каждый год выпускаются сотни новых игр. Некоторые из них добиваются успеха и продаются миллионами копий, но само по себе это не гарантирует статуса легенды. Однако изредка появляются игры, которые становятся частью истории отрасли, и мы продолжаем обсуждать их и играть в них спустя годы после выпуска.

                                Для игроков на PC есть одна игра, ставшая почти легендарной благодаря своей невероятной, обогнавшей своё время графике и способности снижать фреймрейты компьютера до однозначных чисел. Позже она стала знаменитой благодаря тому, что на десяток лет превратилась в надёжный источник мемов. В этой статье мы расскажем о Crysis и о том, что сделало его таким уникальным.

                                Первые дни Crytek


                                Прежде чем погрузиться в историю Crysis, стоит совершить краткое путешествие во времени и узнать, как было заложено основание Crytek. Эта компания по разработке ПО была основана осенью 1999 года в Кобурге, Германия тремя братьями — Авни, Джеватом и Фаруком Йерли. Объединившись под руководством Джевата, братья начали создавать демо игр для PC.
                                Читать дальше →
                              • Руководство по FFmpeg libav

                                • Translation

                                Долго искал книгу, в которой было бы разжёвано, как использовать FFmpeg-подобную библиотеку, известную как libav (название расшифровывается как library audio video). Обнаружил учебник «Как написать видеоплеер и уложиться в менее чем тысячу строк». К сожалению, информация там устаревшая, так что пришлось создавать мануал своими силами.

                                Большая часть кода будет на C, однако не волнуйтесь: Вы легко всё поймёте и сможете применить на любимом языке. У FFmpeg libav уйма привязок ко многим языкам (в том числе и к Python и к Go). Но даже если Ваш язык прямой совместимости не имеет, всё равно можно привязаться через ffi (вот пример с Lua).

                                Начнём с краткого экскурса о том, что такое видео, аудио, кодеки и контейнеры. Затем перейдем к ускоренному курсу, посвященному использованию командной строки FFmpeg, и, наконец, напишем код. Не стесняйтесь переходить сразу в раздел «Тернистый путь изучения FFmpeg libav».

                                Есть мнение (и не только моё), что потоковое интернет-видео уже приняло эстафету от традиционного телевидения. Как бы то ни было, FFmpeg libav точно достоин изучения.

                                Оглавление


                                Читать дальше →
                                • +65
                                • 17k
                                • 9
                              • Учимся читать научные статьи у Эндрю Ына из Стэнфорда

                                • Translation

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

                                Альберт Эйнштейн

                                Каждому, кто серьёзно занимается машинным обучением, необходимо научиться понимать то, что публикуется в научных статьях. Подобные публикации делают учёные, находящиеся на переднем крае исследований в соответствующих областях. Это — искусственный интеллект (AI, Artificial Intelligence), машинное обучение (ML, Machine Learning), глубокое обучение (DL, Deep Learning) и многие другие сферы.



                                Для того чтобы оставаться в курсе последних открытий и расширять собственные знания, нужно обладать научным складом мышления и соответствующими привычками. Технологии AI, ML и DL развиваются с невероятной скоростью. Поэтому нам нужно, чтобы не отставать от прогресса, запастись соответствующими знаниями. Эти знания можно получить только в ходе работы с научными публикациями.

                                Здесь вы найдёте руководство по эффективной работе с научными статьями. В частности, мы остановимся на следующих темах:

                                • Систематический подход к чтению подборок публикаций для получения знаний в интересующей вас области.
                                • Правила чтения научных статей.
                                • Полезные интернет-ресурсы, которые могут помочь вам в поиске публикаций и важнейшей информации.
                                Читать дальше →
                              • Неделя онлайн-стримов от JUG Ru Group #6



                                  Наш сезон конференций успешно открыт, но при этом шоу о технологиях тоже не заканчиваются! На этой неделе будем говорить о Java, DevOps, тестировании и распределенных системах.
                                  Читать дальше →
                                • Неделя онлайн-стримов от JUG Ru Group #4



                                    Продолжаем готовиться к конференциям и говорить обо всём: от DevOps до C++ в формате разговорных шоу и митапов. Записи эфиров мероприятий прошлой недели уже доступны, а на этой неделе просыпаемся по утрам уже в привычном шоу-формате и открываем .NET-бар на карантине.
                                    Читать дальше →
                                  • Продолжение стрима для тестировщиков и не только

                                      Недавно мы провели онлайн-шоу «Ошибка выжившего» с автором Allure/Allure 2 Артемом Ерошенко. Если вы еще не видели его, обязательно посмотрите запись эфира.

                                      А уже 8 мая мы ждем вас на следующем выпуске «Ошибки», где мы с Артемом обсудим будни тестировщиков и ответим на ваши вопросы в прямом эфире.



                                      Под катом — все детали и ссылка на регистрацию.
                                      Читать дальше →
                                      • +19
                                      • 2.3k
                                      • 3