Search
Write a publication
Pull to refresh
387
3.2
Олег Чирухин @olegchir

Продакт GigaIDE Cloud, фаундер Anarchic

Send message

Торговля с помощью протокола FIX. Часть первая: настройка тестового окружения

Reading time6 min
Views13K


В этом цикле статей создадим окружение для работы с тестовой биржей и обмена сообщениями с ней, разберёмся с основными биржевыми терминами и закрепим знания на практике.


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


Для настройки всего необходимого понадобятся лишь базовые знания в программировании и умение пользоваться Git-ом.

Читать дальше →

Съемочная площадка в офисе — практичный способ не налажать с трансляцией

Reading time17 min
Views9.5K


Сегодня каждый день натыкаешься на какую-то вебинар или онлайн-конференцию. На удалёнку переходят вузы и школы, крупные корпорации спешно переосмысливают свои флагманские ивенты в онлайне (вроде двухдневного Microsoft Build), у JUG Ru Group онлайн продлится сразу несколько недель. Отрасль захвачена стремительными инновациями.


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


Вместо этого я собираю вещи и иду в пустой офис. Зачем?


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

Читать дальше →

Запись видео UI автотестов, работающих в headless Chrome

Reading time7 min
Views6.1K
Всем привет!

В данной статье хочется рассказать о том, как была решена задача записи видео автотестов, работающих в headless Chrome (с записью в не headless режиме проблем быть не должно). Будет рассмотрено несколько разных подходов, рассказано про трудности и пути их решения.

Постановка задачи

  1. Тесты выполняются под Windows
  2. Тесты используют Selenium Web Driver + Headless Chrome
  3. Тесты запускаются в несколько потоков

Для упавших тестов нужно сохранить видео, при этом

  1. Время выполнения должно вырасти не более чем на 10%.
  2. Обойтись минимумом изменений в текущей имплементации

Если интересно решение, добро пожаловать под кат.
Читать дальше →

Java-дайджест за 13 мая

Reading time5 min
Views5.8K


Иллюстрация получена вот из этого видео.


  • Джеймс Гослинг, создатель языка Java, заявил об участии в летней конференции JPoint и уже появился в списке спикеров на сайте. Говорят, кризис — время возможностей. Иногда это действительно так! Пару лет назад трудно было представить, что Гослинг будет отвечать у нас на вопросы из чата.


  • В рассылочке появилось интересное письмо о том, что в спеке языка ведется работа над более аккуратным использованием слов вроде «class», «interface» и «type». Например, вместо «sealed types» правильнее говорить «sealed classes and interfaces». Примечание: а вместо Linux нужно говорить GNU/Linux!


  • Стивен Стюарт-Галлус сделал на Java и выложил на GitHub игрушечную реализацию System F JIT, в наличии MethodHandles и Higher Order Abstract Syntax. Соответствующий тред есть на Reddit, где автору можно задавать вопросы. System F — система, которую придумал в 1972 году Жан-Ив Жирар для доказательств в логике, которая представляет собой систему типизированного лямбда-исчисления, отличающаяся от просто типизированной системы наличием механизма универсальной квантификации над типами.

Читать дальше →

Пультовая Всевластья. Как устроен стриминг на онлайн-конференциях JUG Ru Group

Reading time10 min
Views7.9K

В 17-м эпизоде 2-ого сезона South Park Мистер Гаррисон поручает классу сделать доклады, от успешности которых зависит, останется ли он в должности учителя. В конце концов герои делают доклад со слов существ, постоянно ворующих подштанники Твика, — кальсонных гномов. Все уже видели этот эпический бизнес-план:


  1. Собираем кальсоны
  2. ???
  3. PROFIT

Примерно на такую же схему надеются люди, решившиеся в первый раз организовать онлайн-митап или что-то в этом роде:



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


Мы профессионально делаем конференции с 2013 года, и сейчас тоже переключаемся в онлайн. Эта статья — о том, как у нас устроены студии и пультовые для проведения онлайн-конференций и митапов. Мы утверждаем, что такая схема сильно повышает шансы на успех. Другим организаторам эта информация пригодится как вклад в коллективный опыт о том, как делать нестыдные мероприятия.


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

Читать дальше →

Java-дайджест за 30 апреля

Reading time4 min
Views4.9K


  • Марк Рейнхольд (Chief Architect of the Java Platform Group at Oracle) рассказал о новом проекте: Project Leyden. Проект должен решить проблему долгого запуска, медленного достижения пиковой производительности и лютого пожирания оперативной памяти… нет, не с помощью GraalVM. Предполагается генерить статические бинарники на существующей инфраструктуре — HotSpot JVM, jaotc AOT compiler, AppCDS и jlink. Ссылка на твит с обсуждением — здесь. Забавно, что твит сразу же заретвитил Томас Вюртингер (сумрачный гений GraalVM), а Рейнхольд заретвитил ретвит обратно к себе в ленту. Там у них своя атмосфера.
Читать дальше →

Ликбез по респираторам. Помогает ли респиратор от заражения вирусом. Обзор 11 респираторов

Reading time7 min
Views1.4M


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

Читать дальше →

JEP 360: Sealed Types (Preview)

Reading time10 min
Views5.8K


В то время, как половина мира заточилась в самоизоляции, ходят слухи, что Java 15 может присоединиться к флешмобу. Если в Бельгии нельзя размножаться людям, то почему классы должны наследоваться бесконтрольно, разве это справедливо?


Задача этого JEP — описать улучшение языка программирования Java, новую фичу под названием «sealed types» (изолированные типы). Изолированные типы — это такие классы и интерфейсы, которые могут запрещать наследовать или реализовывать себя.

Читать дальше →

Java-дайджест за 21 апреля

Reading time2 min
Views4.9K


  • Выпущен монитор системных ресурсов, работающий на Raspberry Pi и 7-дюймовом экране. Зонд жрет всего 30 мегабайт оперативки без использования GraalVM (но как?). И зонд, и дисплей-сервер для Raspberry Pi используют JavaFX. В качестве платформы для мониторинга пока доступна только Windows с установленным Open Hardware Monitor.


  • Международная Java-конференция JPoint пройдет в онлайне. Остальные конференции JUG Ru Group весенне-летнего сезона тоже переходят на удалёнку. Благодаря этому теперь можно купить абонемент на все восемь конференций сразу, подробности уже есть на сайте.


Читать дальше →

Марк Андриессен: Настало время создавать самим (It's Time to Build)

Reading time7 min
Views6.5K
image

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

Многие из нас хотели бы связать причину с той или иной политической партией, с тем или иным правительством. Но суровая реальность заключается в том, что провалилось всё – ни одна западная страна, ни государство, ни город не были подготовлены – несмотря на упорный труд и зачастую чрезвычайные жертвы со стороны многих людей в этих учреждениях. То есть проблема лежит глубже, чем ваш любимый политический противник или ваша нация.

Часть проблемы явно заключена в недальновидности, недостатке воображения. Но другая часть проблемы – это то, что мы не сделали заранее и то, что мы не делаем сейчас. Это недостаток действия, и в частности наша повальная неспособность «строить/создавать».

(Прим. пер.: Я, как великодушный диктатор, единолично выбрал перевод слова «build» как строить/создавать")

Мы видим это на примере вещей, которые нам срочно нужны, но которых нет. У нас недостаточно тестов на коронавирус или материалов для тестов, включая, на удивление, ватных тампонов и обыкновенных реагентов. У нас недостаточно вентиляторов, комнат с отрицательным давлением, коек в палатах интенсивного ухода. К тому же у нас недостаточно хирургических масок, защиты для глаз, медицинских халатов – в то время, как я пишу это, Нью-Йорк отчаянно запрашивает дождевики, чтобы использовать их в качестве медицинских халатов. Дождевики! В 2020! В Америке!
Читать дальше →

Вы не хотите усиливать иммунитет. Или крайности организма человеческого

Reading time10 min
Views36K

Что бывает, если сильно повысить иммунитет, простимулировать кроветворение или просто кушать не то, что "прописано в спецификации"? Почему общепринятый образ "больше == лучше" применительно к организму совсем не полезен для здоровья?

Читать дальше →

Патчинг Java кода на продакшене без анестезии

Reading time6 min
Views12K
image

Здесь я расскажу об устройстве одного из многих инструментов, которые помогают в разработке различных сервисов для проекта Одноклассники. Внутри компании мы называем его «Hot Code Replace» (HCR), и предназначен данный инструмент для исправления критических и несложных багов в работающих продакшн сервисах без их остановки. Это чрезвычайно важная особенность, так как позволяет избежать достаточно занудного и трудоёмкого процесса выкладывания новой – исправленной версии барахлящего сервиса, избежать сопутствующей этому достаточно продолжительной паузы в доступности каждого хоста, избежать сброса кешей.

В общем, экономит массу времени и уменьшает интервал от момента обнаружения ошибки до исправления с часов до минут. Чаще всего, как и было задумано, исправляют мелкие ошибки в коде, например, программист забыл проверить на null и у некоторых пользователей определённые действия на сайте приводят к ошибке. То есть когда исправление осуществляется изменением нескольких строчек внутри метода. И ради таких мелких изменений больше не нужно отвлекать коллег и ждать часами выкладки на продакшн.
Читать дальше →

IT: Уйти и не вернуться

Reading time6 min
Views60K
image

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

В этой статье я постарался обобщить причины, по которым люди добровольно покидают ту сферу, в которую тысячи других только мечтают попасть. Я тоже совсем недавно стоял на перекрестке IT дорог. Я поделюсь с вами теми простыми рекомендациями, которые помогли мне в свое время не застрять на пороге, а сделать шаг вперед. Итак, начнем.

3 причины, почему специалисты покидают IT


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

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

Высокопроизводительный NIO-сервер на Netty

Reading time9 min
Views130K
Преамбула

Здравствуйте. Я являюсь главным разработчиком крупнейшего в СНГ сервера Minecraft (не буду рекламировать, кому надо, те знают). Уже почти год мы пишем свою реализацию сервера, рассчитанную на больше чем 40 человек (мы хотим видеть цифру в 500 хотя бы). Пока всё было удачно, но последнее время система начала упираться в то, что из-за не самой удачной реализации сети (1 поток на ввод, 1 на вывод + 1 на обработку), при 300 игроках онлайн работает более 980 потоков (+ системные), что в сочетании с производительностью дефолтного io Явы даёт огромное падение производительности, и уже при 100 игроках сервер в основном занимается тем, что пишет/читает в/из сети.

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

Здесь я постараюсь расписать серверную часть работы с сетью через Netty, может быть это кому-то будет полезно.
Читать дальше →

Как разработчикам Myst удалось уместить на одном CD-ROM целую вселенную

Reading time11 min
Views35K
image

Привет, я Рэнд Миллер, соавтор «Myst». Мы поставили перед собой задачу создать реальный мир «Myst», но болезненно ударились о реальные ограничения CD-ROM. Играми я начал заниматься ещё с начала старшей школы, и я уже не молод, то есть это было довольно давно. Игры, которые у меня тогда были на компьютере, непохожи на современные. Меня очень захватила игра Lunar Lander. Я помню её до сих пор. В ней не было графики. Это была строка текста на ЭЛТ-экране, сообщавшая мне, насколько далеко я был от лунной поверхности, насколько быстро я перемещался, сколько топлива осталось, а ещё вопросительный знак. Нужно было вводить количество топлива, которое вы хотите сжечь, нажимать на ввод, и так повторять, пока не упадёшь на поверхность.

В начале старшей школы друг из колледжа взял меня с собой в компьютерный центр Университета Нью-Мексико. Я увидел эту игру на экране, и это была настоящая магия. Для меня это была магия. И он сказал: «Есть и другие игры», и что можно самому делать игры. «Вот, ты пишешь программы, чтобы они делали это». Для меня это изменило всё, и с тех пор я захотел этим заниматься. Cyan была образована примерно в середине 80-х, и в то время нам казалось, что это очень многозначное название, поэтому мы можем заниматься чем угодно. У нас с моим братом Робином была идея голубого неба, и она нам понравилось, поэтому мы выбрали такое название.
Читать дальше →

Список книг по наступательной информационной безопасности

Reading time14 min
Views177K

Grimoire ensorcele by naiiade

Любую достаточно развитую технологию можно сравнить с оружием: когда у врага есть ружье, а у тебя нет, поневоле хочется изменить баланс сил в свою пользу. В области IT-безопасности знания, передаваемые различными способами, и есть то самое оружие, использование которого ограничивается не столько нормами УК, сколько этическим выбором.

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

Разбор доклада Баруха Садогурского «DevOps для разработчиков (или против них?!)»

Reading time1 min
Views5.7K


Впервые в своей истории JUG.ru выходит обеими ногами в онлайн и представляет новый формат: смесь доклада и подкаста. Вашему вниманию мы представим живой разбор доклада Баруха Садогурского «DevOps для разработчиков (или против них?!)». В разборе будут участвовать:


  • Барух Садогурский, Developer Advocate в компании JFrog, автор доклада, евангелист DevOps и любимец публики;
  • Антон Кекс, основатель компании Codeborne, гуру методологии XP и настоящий Software Craftsman;
  • Олег Анастасьев, ведущий разработчик в Одноклассниках и гуру распределенных систем;
  • Алексей Федоров, лидер питерского JUG и организатор Java-конференций Joker и JPoint.


Участие бесплатное!


РЕГИСТРАЦИЯ ТУТ

Java-дайджест за 13 апреля

Reading time4 min
Views6.5K


  • Системе контроля версий Git исполнилось 15 лет.
  • Testcontainers исполнилось целых пять лет! Testcontainers — это Java-библиотека, позволяющая делать легкие одноразовые экземпляры популярных баз данных, веб-браузеров Selenium, или чего угодно ещё, что можно запустить в Docker-контейнере.
  • Вышел долгожданный Spring Graal Native 0.6.0. Вот здесь на GitHub есть огромное количество примеров использования вместе с разными технологиями, например, Kotlin и Netty.

Читать дальше →

Размытие фонового изображения в Unity

Reading time6 min
Views16K


Одной из задач, которая может возникнуть у разработчика приложений на Unity, это перевод текущего изображения на задний план с целью переключить акцент внимания пользователя на что-то новое, например, на появляющееся меню или сообщение. В статье рассказывается об опыте решения данной задачи разработчиком, имеющим базовые знания в Unity, при этом не потребовалось использования внешних ресурсов или дополнительной лицензии Unity. Надеюсь, этот материал будет полезен тем, кто столкнулся с подобной проблемой и не нашел на разных её этапах эффективных путей решения.
Читать дальше →

В софте всё восхитительно, но все недовольны

Reading time15 min
Views48K


Есть типичная позиция, которую можно встретить на Хабре и не только: «хотя железо с годами всё лучше, человечество свело эффект на нет тем, что пишет софт всё хуже».

Мол, ядер в процессорах стало больше, но тормозит всё пуще прежнего. Electron и Slack — порождения тьмы, пришедшие лишить нас счастья и памяти. Мобильные приложения стали прожорливее, чем старые операционные системы. А в самих операционных системах уже толком нет прогресса, но почему-то они продолжают разбухать в размерах. То ли дело было, когда люди умели уместить ОС на дискету!

Скажу прямо: когда я вижу подобные заявления, у меня бомбит. По-моему, в них упускают целый ряд важных факторов. А в итоге ситуация напоминает классическую речь Луи Си Кея «Everything's amazing and nobody's happy»: всё стало удивительно хорошо, а люди сидят и жалуются.

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

Information

Rating
2,082-nd
Location
Россия
Works in
Date of birth
Registered
Activity

Specialization

Chief Technology Officer (CTO), Chief Executive Officer (CEO)
Lead
From 2,000,000 ₽
Product management
Project management
Marketing research
Game Development
Web development
Software development