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

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

Send message

Потерянное искусство: художники золотого века игровых обложек

Level of difficultyEasy
Reading time11 min
Views14K
image

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

Над оформлением обложек часто работали известные художники, талантливые иллюстраторы и комиксисты. Свои картины они рисовали на основе внутриигровой графики и геймплея. Цель была проста: изобразить дух игры на её обложке.

Подробно рассказываем о феномене и вспоминаем значимых художников, которые подарили свои рисунки хорошим играм.
Читать дальше →

IntelliJ IDEA 2023.2. Language Server Protocol, AI Assistant, IntelliJ Profiler в редакторе, GitLab merge requests, ftw

Reading time8 min
Views12K

Только что вышла IntelliJ IDEA 2023.2. В этом релизе в IDE появилась куча интересных фичей и важных улучшений.

Вы можете скачать последнюю сборку с официального сайта, или из бесплатного приложения Toolbox, или из snap-пакетов для Ubuntu.

Этот релиз IntelliJ IDEA 2023.2 представляет вам AI-ассистента, вооруженного набором инструментов машинного обучения. IntelliJ Profiler показывает подсказки в редакторе, делая профилирование более интуитивным и иформативным. Еще, в этом релизе появилась интеграция с GitLab.

В том посте мы пробежимся по всем основным фичам IntelliJ IDEA 2023.2. В отличие от официального анонса, вся европейская политкорректность выкинута на свалку, автор перевода не видит никакой ценности в соблюдении повесточки.

Кроме того, в этот четверг в Питере будет встреча Javawatch, посвященная Java 21. Я прочитаю мини-доклад минут на 30 о новых фичах, и потом мы сможем все вместе собраться и за кружкой пива это обсудить. Анонс события в телеге, обсуждение в чате. Я бывший PMM в JetBrains Big Data и тимлид в Remote Development/Projector, а сейчас работаю над российским дистрибутивом Java - Axiom JDK.

Волшебно. Читать далее.

Прожарка java.lang.String

Level of difficultyEasy
Reading time5 min
Views7.7K

Давайте абьюзить баг в java.lang.String, который позволит делать очень странные строки. Мы сделаем "Hello World", который не начинается с "Hello" и покажем, что не все пустые строки равны между собой. Научимся прожаривать строки в чужих классах.

Вкуснотища. Читать далее.

Простыми словами об InlineKeyboard в Телеграмм ботах на java

Level of difficultyMedium
Reading time6 min
Views29K

За 4 месяца самостоятельной жизни моего первого бота стало понятно, что пользователям не хочется что‑либо вводить в поле сообщения. Что значительно удобней было бы просто нажимать на очередную кнопку при выборе формы документа. Иными словами, в целях упрощения взаимодействия с ботом необходимо минимизировать возможность использовать обычную клавиатуру смартфона или ПК.

И такая возможность есть, если применить InlineKeyboard — вариант кнопок (за которыми скрыт необходимый функционал), прикрепленных непосредственно к сообщению от бота.

Применить такую клавиатуру я решила при разработке другого бота. Однако столкнулась с тем, что ни в документации Telegram bot Api, ни в статьях / разборах, размещенных в Интернет, нет прозрачного пошагового пояснения всей цепочки процессов. Разобравшись для себя с взаимосвязями вызовов в InlineKeyboard я решила этим поделиться с другими разработчиками.

Читать далее

Автоматически ищем техдолг с помощью RefactorFirst

Level of difficultyEasy
Reading time4 min
Views2.5K

Недавно вышла новая версия библиотеки RefactorFirst 0.4.0, которая позволяет определять и визуализировать технический долг. С этой информацией можно пойти к своему тимлиду или продукт-оунеру и выбить время на рефакторинг, имея под руками железные доказательства.

Она ищет в Java-коде Божественные Классы и классы с очень высоким уровнем связности, которые следовало бы отрефакторить. Для этого используются правила God Class Rule и Coupling Between Objects Rule из опенсорсного коданализатора PMD.

Коротко опишу, что это такое, и как этим пользоваться.

Интересно. Читать далее.

Новые фичи в IDEA 2023.2 EAP 7

Level of difficultyEasy
Reading time5 min
Views5.3K

Быстро приближается релиз IntelliJ IDEA 2023.2, а значит, текущему EAP-у осталось жить недолго. Вы все еще можете успеть попробовать новые фичи, и попросить исправить их до релиза, когда исправлять будет уже поздно.

JetBrains ушел из России, но его IDE всё ещё является основным средством разработки на Java. Как у бывшего product marketing manager в JetBrains, у меня есть некоторый опыт в написании и переводе таких статей. Изначально, принести эту новость сподвигло то, что в ней есть важное обновление плагина Big Data Tools, над которым когда-то работала моя команда. Кроме того, JB разродились официальной поддержкой LSP, что наверняка, стоило им титанических моральных усилий. PMM-ов бывших не бывает, им просто перестают за это платить.

Я попробую описывать самые значимые новости, касающиеся JetBrains IDE. Чтобы получать больше таких новостей - подписывайтесь на Хабре на наш блог, а ещё вы можете пройти в мою личную телегу @Javawatch.

Под катом - обзор перечисленных фичей, со скриншотами. Поехали.

Читать далее

LLM API для Java

Level of difficultyEasy
Reading time6 min
Views5.2K

Прочитав сегодняшнюю статью о том, как в Сан-Франциско массово собираются LLM-щики, коллега сказал — "лучше б там собирались BDSM-щики, это, по крайней мере, понятное развлечение". Для человека не посвященного, "нейросети" — это всё ещё что-то про Python и математическую статистику.

Тем не менее, можно кусать низко висящие фрукты и с помощью Java, дергать API для Chat GPT, и тогда ничего учить не придётся. В этой статье будут ссылки на несколько фреймворков с простым API для жабы и котла, которые можно использовать хоть сейчас.

Волшебно. Читать далее.

Как Сан-Франциско пытается спасти себя с помощью ИИ

Level of difficultyEasy
Reading time6 min
Views21K

В центре, перед городской ратушей

После ковида Сан-Франциско перестал быть собой. Вот уже третий год как разработчики поняли, что они могут спокойно работать на удаленке, и не платить безумную арендную плату за жизнь в городе с массой бездомных. Город начал приходить в упадок. А после этого в прошлом году ещё и разрушился пузырь IT-компаний, капитализации упали в несколько раз, и сейчас новые инвестиции получить крайне сложно. Это лето обещало быть одним из самых болезненных для новых стартапов. Но тут появилась очередная золотая лихорадка: генеративные ИИ.


Сейчас весь город (и во многом экосистема Долины) делают ставку на одну новую технологию. Как до этого было с сотнями стартапов, разрабатывающих NFT, и попыткой реализовать «метавселенную», в которую ввязались и Цукерберг, и Наделла, и десятки компаний поменьше. Почти все эти стартапы сейчас закрылись, сотрудники оказались на улице, а инвесторы потеряли вложения. Но тут к счастью на горизонте возникла новая технология, которая точно взлетит! И теперь те, кому деньги кошелек жгут, вливают финансы уже в неё.

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

Java-дайджест: начало июля

Level of difficultyMedium
Reading time9 min
Views6.8K

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

В этом выпуске будет новый бесплатный (на самом деле нет) GraalVM Enterprise, отмена Java 8 в бигдате, совершенно новая система модулей (которую никто не просил, но мы её заслужили тем не менее), утилита для поиска и истребления легаси в проекте, библиотеки для работы с Large Language Models (иначе говоря, ChatGPT), всратый офис с графическим интерфейсом на Java, и многое другое. И конечно, обзор этой недели Java на Хабре.

Если есть время, оставьте комментарий, про какую часть Java-экосистемы вам хотелось бы читать дальше. Помогите Даше-путешественнице найти смысл существования. Новостей куча, поэтому пока я пишу про то, что интересно лично мне: GraalVM, Spring, Clouds, OpenJDK dev. Например, в Hibernate на каждый релиз чинят десятки каких-то багов, но я про них ничего не пишу, потому что не знаю ни одного живого человека, которому бы это было интересно.

Как всегда, статья подготовлена при поддержке "российской джавы" AxiomJDK и моего IT-бара Failover Bar, потому что я пишу её в рабочее время :)

Прекрасно. Читать далее.

Моя Родина – АСУ ТП — смертельно больна

Reading time2 min
Views46K

Моя Родина – АСУ ТП — смертельно больна

Если вы отправитесь на любой тематический АСУ ТП-форум или группу, вы к сожалению не найдете обсуждения стандартов, архитектуры РСУ, лучших практик для ISA101, ISA88, ISA95.

В лучшем случае вы найдете дискуссии на тему «являются ли АСУ-шники настоящими программистами когда пишут код на LAD/FBD» или «обязан ли монтажник/программист знать технологический процесс объекта на котором работает» и т.п.

Проще говоря – сообщество и особенно ИТ-сообщество разработчиков в сфере АСУ ТП отсутствует в принципе.

Читать далее

Генетика нормального распределения

Reading time9 min
Views2.8K

Без Фортуны, богини удачи, не обходились ни одно сражение, ни одна экспедиция или начинание, ни одна победа. Боги и люди молили ее быть на их стороне, строили посвященные ей храмы. И проклинали за изменчивость и непостоянство, но продолжали молить. За тысячелетия имена многих богов забылись, немногие остались на страницах фэнтезийных романов и марвеловских комиксов. Но и сегодня не найдется на планете человека, который не просил бы удачу улыбнуться ему. Боги умерли, их заменили наши знания. Богиню плодородия заменили удобрения, Посейдона — прогноз погоды, богиню любви — порноиндустрия. Даже Афина, богиня разума, растворилась в знаниях. Но удаче продолжают молиться все. Живучесть богини объясняется просто, она воплощает один из фундаментальных законов нашей реальности.

В отличии от знаменитого Е=мс2 или закона сохранения энергии, этот закон не так распиарен и странно называется: центральная предельная теорема. А для непосвященных ее определение и вовсе звучит загадочно: сумма многих слабо связанных величин, имеет распределение близкое к нормальному. Тем не менее, это утверждение определяет то, как из прошлого получается будущее в макромире, в мире где мы живем. Более того, оно определяет какими мы будем — высокими или низкими, толстыми или худыми, глупыми или умными.

Читать далее

Интегрируем Яндекс Музыку в Visual Studio Code

Reading time15 min
Views25K

Представьте, что вы можете слушать свои любимые песни на Яндекс.Музыке, прямо из своего любимого редактора кода, не переключаясь между приложениями. Это уже не мечта, а реальность! В этой статье мы рассмотрим, как интегрировать Яндекс.Музыку в Visual Studio Code и наслаждаться любимой музыкой прямо во время работы.

Читать далее

Нюансы разработки парсера для своего языка программирования

Level of difficultyMedium
Reading time7 min
Views13K

image


Недавно прочитал на Хабре статью Свой язык, или как я устал от ассемблера и С, и невольно взглядом зацепился за один абзац:


Я решил не сильно париться, поэтому использовал библиотеку parglare. Она очень легкая и удобная, всем рекомендую. Для описания синтаксиса парсер принимает строку в соответствующем формате, использует регулярные выражения (не надо осуждать регулярки, они всесильны!).

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


Ведь в жизни практически любого программиста может наступить момент, когда ему в голову приходит светлая идея — разработать свой собственный язык программирования. Может быть и не ради захвата мира, наравне с C/C++, Python или хотя бы PHP, а в качестве личного пет-проекта, с которым он, длинными зимними вечерами будет оттачивать собственное мастерство.


А так как у любого языка (не только программирования), все начинается с анализа его грамматики, то самой первой задачей создателя будет выбор инструментов для синтаксического анализа исходного текста.


Это история — заметки на память о муках выбора связки лексер-парсер для разбора грамматики NewLang. А так же попытка описать и систематизировать выводы об особенностях разных анализаторов с которыми пришлось поработать при выборе парсера для разбора грамматики у своего языка программирования.

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

Темная тема = шрифтовой ад / Решение

Reading time3 min
Views8.8K

В предыдущей статье я подробно разобрал проблемы связанные со шрифтами для темной темы и причины их актуальности. В данном материале смотрим на то, какие есть решения и что предлагает индустрия. + figma файл с адаптированным мной под темную тему стандартным текстовым набором стилей Material Design для Roboto.

Читать далее

Запускаем Vagrant на MacOS Apple M1/M2

Reading time5 min
Views14K

Очень часто в разработке возникает необходимость поднять локальное окружение для отладки каких-либо рабочих моментов. В своей работе я постоянно пользуюсь Vagrant для тестирования инфраструктурного кода, например ansible-ролей.

Vagrant остаётся одной из самых популярных утилит для подобных задач, имеет гибкий синтаксис и поддержку базовых алгоритмических структур – можно поднимать N и K машин в цикле, используя заранее вводимые переменные, а потом еще и ansible-inventory генерировать на выходе, разбивая машины по группам.

Долгое время я оставался пользователем MacBook на процессоре Intel, но больше так продолжаться не могло – пришлось сменить компьютер, хотя я и знал о некоторых особенностях работы М1 с виртуальными машинами.

В этой статье я расскажу, как настроить и запустить Vagrant на процессорах Apple M1/M2 и вернуться в привычный рабочий режим.

Читать далее

Абстрактно ориентированный программист

Reading time7 min
Views54K
Начну с истории о программистах, которую мне приходилось слышать неоднократно.

Я попросил Джо написать простенькую программу, которая делает <xyz>. Работы там было на несколько часов, в худшем случае на день. Ему понадобилось несколько дней, за который он написал гораздо более сложный фреймворк, чем требовалось. Почему он снова так намудрил?

Возможно, дело в том, что Джо – Абстрактно ориентированный программист (АОП).
Читать дальше →

Про самый попсовый термин в продуктовом глоссарии и почему MVP мёртв

Reading time3 min
Views5K

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

Читать далее

Сюрприз про ваши данные в законе о классифайдах

Reading time2 min
Views8.6K

Госдума экстренно (два чтения за одни сутки) приняла новый закон, который коснётся HH.ru, CIAN, Яндекс.Вертикалей, Авито и других классифайдов больше 100к уников. Он назначает всякие меры контроля, но есть интересный пункт, который практически никто не заметил. Он касается принудительного сбора ваших данных с каждой страницы классифайда государством.

Читать далее

Создание сервера для онлайн ММО игр на PHP ч. 5 — LUA и JavaScript

Level of difficultyEasy
Reading time5 min
Views4.6K

Продолжая серию статей про разработку сервера для онлайн игр (адрес проекта http://mmogick.ru) на языке PHP в это части я хочу рассказать про безопасное добавления пользовательского кода для добавления функционала игровых механик. В статье я опишу существующие решения для PHP , сравню скорость работы приведу видео примеры.

Для тестов будет использовано следующее железо:

Читать далее

Information

Rating
2,043-rd
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