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

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

Send message

Так ли хорош PocketBook?

Reading time14 min
Views70K

Или сказ о том, какие глюки нас поджидают




Меня восхищает компания PocketBook. Это лидер рынка на постсоветском пространстве, в области электронных книг, данную компанию знают все. Много было лестных постов тут о продукции данной компании. Нам дают красивую рекламу, хвалебные оды. Давайте нормально поковыряемся в железе и софте, и попробуем восстановить старенькую книжку Pocketbook 515 и посмотрим в душу изделиям данной компании. Ну и оценим, насколько же они реально хороши или плохи. Без прикрас.
Читать дальше →

[в закладки] 9 инструментов, повышающих продуктивность веб-разработчика

Reading time4 min
Views32K
Интернет — это не только то место, где можно научиться программировать. Тут имеется множество полезных онлайновых инструментов, способных помочь разработчику на разных этапах работы над проектом и таким образом сэкономить немного времени.



Автор статьи, перевод которой мы сегодня публикуем, отобрал 9 таких инструментов.
Читать дальше →

ИИ, пытающийся избежать проблем, научился сложному поведению

Reading time6 min
Views34K


В обучении с подкреплением (Reinforcement Learning) часто используется любопытство в качестве мотивации для ИИ. Заставляющее его искать новые ощущения и исследовать окружающий мир. Но жизнь полна неприятных сюрпризов. Можно упасть с обрыва и с точки зрения любопытства это всегда будут очень новые и интересные ощущения. Но явно не то, к чему надо стремиться.


Разработчики из Berkeley перевернули задачу для виртуального агента с ног на голову: главной мотивирующей силой сделали не любопытство, а наоборот — стремление всеми силами избегать любой новизны. Но "ничего не делать" оказалось сложнее, чем кажется. Будучи помещенным в постоянно меняющийся окружающий мир, ИИ пришлось обучиться сложному поведению, чтобы избегать новых ощущений.

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

Процедурная генерация многоэтажных 3D-подземелий

Reading time6 min
Views18K
image

В последнее время я играл в несколько roguelike, поэтому решил попробовать написать собственный процедурный генератор подземелий. Существует множество способов решения этой задачи, и я выбрал алгоритм автора TinyKeep, описанный здесь. Я расширил этот алгоритм, чтобы он работал в 3D и мог создавать многоэтажные подземелья.

Код примера выложен в репозитории Github. Для демонстрации я использую Unity3D, но эти концепции, разумеется, применимы к любому другому движку.

Два измерения


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

Сцена для этого примера называется Dungeon2D. Код для него находится в папке Scripts2D.

Алгоритм


Мир разделён в виде прямоугольной сетки. Я предполагаю, что 1 единицы будет достаточно для обозначения коридора. В полной игре 1 единица измерения Unity может соответствовать например 5 метрам. Для сетки я выбрал размер 30×30.

Короче, сделал столетний блокбастер цветным

Reading time22 min
Views44K

Синопсис

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


верни картинку взад
Читать дальше →

Профсоюз программистов? Не смешите мои тапки

Reading time5 min
Views44K
Политики в этом посте не будет. Профсоюзы это не про политику, профсоюзы это про экономику. Так что будет только про экономику. Хотя ладно, чего я вру, будет политика, будет, профсоюзы хоть и про экономику, но неизбежно скатываются в политику. Так что будет про политику, но по минимуму и только для некоторых пояснений.

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

Работа не волк, часть 5. Увольнение: я ухожу красиво?

Reading time15 min
Views87K
В тот день мой кошелёк остался в офисе, о чём удалось узнать только на трамвайной остановке. Было грустно: уволился коллега, с которым мы работали 4 года бок о бок, мы только проводили его. Надо было возвращаться. Кроме кошелька, в кабинете был тот самый коллега: большой во всех смыслах сисадмин, которого схантили в Питер. Он меня не сразу заметил: согнутый, он гладил огромной ладонью системный блок и о чём-то разговаривал с компьютером. Было невыносимо. Он повернулся и сказал: «Душу здесь оставляю, повесишь на крючок». Спустя год это пришлось пройти и мне, а потом ещё и ещё раз. Позже заявления приходилось подписывать уже мне. 

И стало понятно: любое увольнение — больно, часто некрасиво. А значит, самое время понять, что же делать, чтобы увольнение было максимально комфортным, безболезненным и правильным. 


Уходить почти всегда грустно: даже если вы ненавидели работу, босса и коллег, вы наверняка любили компьютер, который был верным другом и молчаливым помощником, сам офис, дорогу на работу и домой, что-нибудь да любили. Хотя бы свой опыт.

Часть 1. Поиск работы: источники, резюме, собеседование с HR
Часть 2. Устройство и адаптация: собеседуем с боссом, проходим испытательный срок с ветерком
Часть 3. Работа в роли новичка: рост в компании
Часть 4. Работа в роли опытного сотрудника: как не перегореть
Часть 5. Увольнение: я ухожу красиво
Читать дальше →

Java-дайджест за 18 декабря

Reading time5 min
Views5.2K


  • Вышел первый пробный билд JDK 15. Страничка проекта — здесь, но смотреть там пока совершенно нечего.
  • RedHat зарелизили WildFly 18. Заявлена поддержка Jakarta EE 8, MicroProfile 3.0, JDK 13, есть куча изменений в подсистемах безопасности и EE, и многое другое.
  • Tobias Hartmann, HotSpot-инженер в Oracle, опубликовал в почтовой рассылке valhalla-dev большое письмо «Optimizing the way to Valhalla: JIT Status Update». Valhalla — это проект в OpenJDK, представляющий из себя инкубатор самых крутых современных идей в виртуальной машине и языке Java, такие как Value Types и Generic Specialization. Письмо представляет собой сплошной чеклист, и копипастить его в этот дайджест бессмысленно. В целом, там подробности про оптимизацию доступа к массивам и скаляризацию в C2.
Читать дальше →

'Hello World' вам в облако

Reading time69 min
Views25K

Мир сходит с ума, заталкивая калькулятор для 2+2 в облака. Чем мы хуже? Давайте Hello World затолкаем в три микросервиса, напишем пару-тройку тестов, обеспечим пользователей документацией, нарисуем красивый пайплайн сборки и обеспечим деплой в условный облачный прод при успешном прохождении тестов. Итак, в данной статье будет показан пример того, как может быть построен процесс разработки продукта от спецификации до деплоя в прод. Инетересно? тогда прошу под кат

Atlas Shrugged, или поворот не туда

Reading time2 min
Views30K
image

Самое дорогое, что есть у каждого человека — его жизнь и время, отпущенное ему. Каждый распоряжается этими ресурсами по-своему. Нет второго шанса, нельзя родиться заново, часы не отмотать назад. Игорь Сысоев день за днем почти 20 лет своей жизни посвящал кропотливой работе над тем, чтобы подарить людям всего Человечества, пожалуй, лучший веб-сервер из существующих. Игорь совершенно не обязан был публиковать исходники NGINX под свободной лицензией, но он поступил так добровольно, это был его вклад в изменение нашего Мира к лучшему.

Вряд ли Игорь думал в тот день, когда публиковал исходники в первый раз, что open source поможет ему стать долларовым миллиардером. Наверное не думал он и о том, как когда-нибудь однажды попадет в один ряд с другими отцами-основателями сети Интернет, такими как Тим Бернс Ли, Пол Бэран или Брюстер Кейл. А сбылось это: на сегодняшний день по данным Netcraft, число сайтов, обслуживаемых nginx, превысило 447 миллионов. И вы тоже можете использовать для своего сайта этот веб-сервер, это произведение современного искусства, причем совершенно бесплатно!

Поэтому в конечном итоге, деньги, которые Игорь Сысоев счастливым образом получил, были честно заработаны его собственными кровью и потом (а не на горе и страдании или рабском труде других людей), он их заслужил! Его Филдсовская или Нобелевская премия Мира если хотите…

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

Java-дайджест за 14 декабря

Reading time6 min
Views6.9K


  • Дело Google vs Oracle будет рассматривать Верховный Суд США. В последний раз. Запасаемся попкорном, русская рулетка начинается. Прочитать суть проблемы можно в оригинальной PDF-ке, в которой Oracle утверждает, что у них скопировали 11500 строк кода из 37 пакетов, тем самым стибрив черезвычайно сложную и важную архитектуру, и хотят они за это 8.8 миллиардов баксов. Google же возражает, что пытаться запатентовать API — это безумие какое-то, и без возможности открыто использовать API современная жизнь невозможна. Дуэль между мегакорпорациями будет проводиться в формате блица, когда Google нужно будет за 30 минут объяснить суть проблемы, а Oracle за 30 минут должны будут на всё это ответить.


  • JDK 14 перешел в первую фазу заморозки, про это есть сообщение в рассылке и твит Марка Рейнхольда. Много изменений, только JEP-ов 16 штук, последним подтвердили Foreign-Memory Access API. Репозиторий форкнут в jdk/jdk14. В новостях каждый раз перечислять одни и те же JEP-ы, список которых больше не изменится, кажется, не имеет смысла: полноценная развернутая статья будет сразу же после финального релиза Java 14.

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

Утренний Java-дайджест за 12 декабря

Reading time3 min
Views4.7K


  • Окончание жизни Spring Boot 2.1.x намечено на 1-е ноября 2020. Какие-то обновления до этой даты все еще будут, а после — пропадут. Нужно обновляться на 2.2. Сама процедура обновления не кажется сложной, инструкции есть в wiki. Там же есть список поддерживаемых версий.
Читать дальше →

Индексируем миллиарды текстовых векторов

Reading time9 min
Views9K

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

Как сделать из нейросети журналиста, или «Секреты сокращения текста на Хабре без лишних слов»

Reading time10 min
Views14K
Только не удивляйтесь, но второй заголовок к этому посту сгенерировала нейросеть, а точнее алгоритм саммаризации. А что такое саммаризация?

Это одна из ключевых и классических задач Natural Language Processing (NLP). Она заключается в создании алгоритма, который принимает на вход текст и на выходе выдаёт его сокращённую версию. Причем в ней сохраняется корректная структура (соответствующая нормам языка) и правильно передается основная мысль текста.

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

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

Как глупые решения при проектировании самолёта времён Второй мировой привели к созданию Macintosh

Reading time10 min
Views64K

Сначала в падениях самолётов обвиняли пилотов. Однако реальной причиной этого был их дизайн. Этот урок привёл нас к новой эре удобства для пользователя – однако опасности никуда не делись


Из книги "Удобство пользователей: как скрытые правила дизайна меняют нашу жизнь, работу и игры"



Бомбардировщик Б-17 «Летающая крепость» прошёл путь от чертёжной доски до взлётной полосы всего за 12 месяцев, как раз вовремя для того, чтобы стать зловещей рабочей лошадкой ВВС США во время Второй Мировой войны. Пилоты обожали его за потрясающую прочность: Б-17 мог пролетать сквозь яростные шквалы шрапнели и пуль, и выходить из этого испытания немного покоцанным, но в пригодном для полётов состоянии. Он был символом американского гения, оснащённым десятком пулемётов и удерживаемым в воздухе четырьмя пилотами.
Читать дальше →

Java-дайджест за 10 декабря

Reading time2 min
Views4.8K


  • Вышла четвертая альфа-версия «Remnants of the Precursors» — написанного на Java бесплатного аналога «Master of Orion» (это игра 1993 года). Пятую альфу обещают 5-го сентября. Автор обещает выложить исходники после перехода в бету. Скачать четвертую альфу можно по ссылке.


  • Вышла NestedJ — библиотека, которая в виде репозитория Spring Data реализует сортированное дерево, оптимизированное на чтение. Логика обхода в этой библиотеке стоит O(n) и позволяет делать такие штуки, как поиск узлов-детей и узлов-родителей. 144 коммита и 31 звездочка на GitHub.

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

Давайте поговорим. О тлене и депрессии

Reading time10 min
Views38K
«Мужчина приходит к врачу. Жалуется на депрессию, говорит, жизнь груба и жестока, что он чувствует себя одиноким в угрожающем мире. Врач предлагает простой рецепт: «Великий клоун Пальячи сегодня в городе, сходите, это вас подбодрит». Мужчина взрывается слезами. «Но доктор», — говорит он — «Я и есть Пальячи»

Недавно, после статьи про "Гаджеты для сна", где в результате опроса выяснилось что у более 50% опрошенных «все хреново с эмоциями и стрессом», я написал одному хорошему человеку с запросом: «пришли мне, пожалуйста, три самых полезных статьи про депрессию». Он мне ответил: «Я на антидепрессантах, изучаю вопрос изнутри».

Возможно это сезонное аффективное расстройство (SAD), а возможно, это объективно пришел полярный зверек. «Тьма, пришедшая со Средиземного моря, накрыла ненавидимый прокуратором город». В этом году я понял, что и я качусь под откос. Когда перестали радовать «Рик и Морти», «Кремниевая долина», «Доктор Хаус», большой лохматый пёс и три кота.

Но патроны еще есть — я с радостью жду утренний кофе, вечернее рубилово с мужиками в хоккей, плюсики на Хабре и годные комментарии. И «Дюну 2020» очень жду.

Я бы хотел «поговорить» и, как минимум, собрать корпус публикаций, которые могут быть полезны для исследования вопроса.

Вот мои топ-3 статьи:


А под катом я хочу поделиться длинным полотном из фейсбука, который послужил для меня «последней каплей» и я больше не могу молчать.

image

(Да простится мне такой «неформат», ибо тема важная)
Читать дальше →

Как выучить иностранный язык

Reading time10 min
Views115K

Я расскажу о том, как изучать иностранный язык и буду это делать на примере личного опыта изучения английского языка. Английский я начал учить в 36 лет, а уже сейчас у меня свободный английский язык (как письменный, так и устный), подтверждённый официальными сертификатами. Чтобы не быть голословным: у меня есть сертификат IELTS 7.5 баллов (это С1 level) и сертификат переводчика NAATI. Короче, я знаю о чем говорю.


Оглавление:


  1. Отступление про умных людей и прочих полиглотов
  2. Первый шаг
  3. Какой преподаватель нужен (уровень преподавателя)
  4. Где искать преподавателя
  5. Развитие навыков: слушание
  6. Развитие навыков: чтение
  7. Развитие навыков: письмо
  8. Развитие навыков: разговор: произношение
  9. Развитие навыков: разговор: языковой барьер
  10. Словарный запас
  11. Самое главное


Итак, вопрос: “Как выучить английский язык?”.

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

Совет от создателя RimWorld: когнитивные искажения при прогнозировании фана от игры

Reading time3 min
Views4.2K
(статья 2007 года)

Чтобы разрабатывать игры, нам нужно оценить, будут ли они веселыми или нет. Учитывая описание игры, хорошо узнать, будет ли она работать, прежде чем мы ее создадим.

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

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

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

Расширяем возможности UObject в Unreal Engine 4

Reading time15 min
Views31K

Всем привет! Меня зовут Александр, я уже более 5 лет работаю с Unreal Engine, и почти все это время — с сетевыми проектами.

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



На самом деле, статью я написал скорее как справочник. Большую часть информации крайне сложно найти в документации или сообществе, а тут можно быстро открыть ссылку и скопировать нужный код. Решил заодно поделиться и с вами! Статья ориентирована на тех, кто уже немного знаком с UE4. Будет рассмотрен С++ код, хотя знать его не обязательно. Можете просто следовать инструкциям, если вам нужно то, о чем пойдет речь. Более того, не обязательно копировать все, вы можете вставить код из раздела с нужными свойствами и он должен работать.

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

Information

Rating
2,090-th
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