Pull to refresh
0
0
Dmitry Kuznetsov @unhappy

Пользователь

Send message

PokiToki: Удобный GPT-бот в телеграме

Reading time4 min
Views25K

PokiToki

За последние месяцы только ленивый не сделал телеграм-бота, который работает с API OpenAI. Были такие статьи и на Хабре.


Написать игрушечного ChatGPT-бота можно хоть за час. А вот сделать его удобным в повседневной работе заметно сложнее. Я занимался этим последние несколько недель и хочу показать, что получилось.


Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments3

Работа на орбите, или VR-продуктивность в мире удалёнки

Reading time24 min
Views13K

Я парю в космосе, вокруг простирается грандиозный Млечный Путь. Передо мной висит экран размером как в кинотеатре, плавно изогнутый, на идеальном для просмотра расстоянии. Восемь разных панелей сверкают кодом — грани технологической жемчужины, через которые можно заглянуть в мозг системы, отвечающей за движение десятков миллионов долларов в день. На коммуникационной консоли, расположенной под углом (как чертёжная доска), прямо на кончиках пальцев находится пункт переписки с коллегами, календарь, документация API и видеопотоки с камер «реального» мира. Слева от меня, рядом с огромным массивом кода, на вертикальном экране высотой в два этажа отображаются детали текущей задачи вместе с плейлистом Spotify. Врубаю музыку и вхожу в поток.

Это не отрывок из романа Эрнеста Клайна — это моя повседневность. На этой неделе я проведу 40–50 часов в виртуальной реальности, как уже делал и на прошлой неделе, и каждую рабочую неделю в течение последних 2,5 лет. Виртуальная реальность — это не просто развлечения и игры (хотя их и предостаточно), а еще физические упражнения, медитация, творчество, общение и т. д.  Но в этой статье я сосредоточусь только на работе.

Читать далее
Total votes 25: ↑25 and ↓0+25
Comments35

Как я на коленке делал бесплатный курс программирования, о котором мечтал 3 года (и что пошло не так)

Reading time10 min
Views16K

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

Читать далее
Total votes 61: ↑56 and ↓5+51
Comments27

Правильная архитектура MMO эмулятора

Reading time14 min
Views13K

Предыстория/Мотивация


Все началось с хобби в начале 2020 года — с очередной попытки написания эмулятора игрового сервера Lineage 2 "по новому". Перед этим шагом было несколько попыток распиливания монолита существующих решений на рынке по новым практикам разработки, но затея оказалась тщетной, ибо те монолиты, которые и по сей день существуют и участвуют в так называемом "продакшен-пиратстве", имеют сильную связанность компонентов и решения поставленных задач, сопоставимые с началом 2000х годов, когда сфера только начинала развиваться. А самое главное, что монолит не заточен на построение распределенной архитектуры и, как следствие, обладает низкой эффективностью.


image


Было принято решение взять часть бизнес-логики (основной составляющей обработки действий игрока) из допотопных проектов эмуляторов и создать современный/масштабируемый эмулятор игрового сервера Lineage 2 Prelude Of War.

Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments62

Создание сеток шестиугольников

Reading time25 min
Views96K
image

Сетки из шестиугольников (гексагональные сетки) используются в некоторых играх, но они не так просты и распространены, как сетки прямоугольников. Я коллекционирую ресурсы о сетках шестиугольников уже почти 20 лет, и написал это руководство по самым элегантным подходам, реализуемым в простейшем коде. В статье часто используются руководства Чарльза Фу (Charles Fu) и Кларка Вербрюгге (Clark Verbrugge). Я опишу различные способы создания сеток шестиугольников, их взаимосвязь, а также самые общие алгоритмы. Многие части этой статьи интерактивны: выбор типа сетки изменяет соответствующие схемы, код и тексты. (Прим. пер.: это относится только к оригиналу, советую его изучить. В переводе вся информация оригинала сохранена, но без интерактивности.).
Читать дальше →
Total votes 92: ↑91 and ↓1+90
Comments25

BASIC. Кроссплатформенное ПО тогда и сейчас

Reading time7 min
Views19K


Удивит ли вас, если я скажу, что BASIC все еще не утратил свою актуальность? Помимо того, что этот язык явился прародителем современных домашних вычислительных систем, он все еще остается жизнеспособным даже вне кругов ретро-энтузиастов. Предлагаем окунуться в краткий обзор истории его становления, начиная с азов и заканчивая современными реализациями.
Читать дальше →
Total votes 48: ↑43 and ↓5+38
Comments68

Как изгонять вирусов на Corona SDK

Reading time9 min
Views5.5K
image

$google = "We don't allow apps that lack reasonable sensitivity towards or capitalize on a natural disaster, atrocity, conflict, death, or other tragic event";
mysql_query("UPDATE cvirus_users SET winners = winners+19, message='$google' WHERE imea='$imea' ");

Без паники, парни, статья не заразная! К тому же её автор умер еще в прошлом году. Делать на том свете нечего, кроме как игры писать и публиковать сами-знаете-где.

Рубятся в свежие игры не более 7 пользователей в день. Преодолеть магическую планку ни одна из них не в силах. Еще и черти смеются, — Слабо сделать игру, чтобы в неё залипло больше 7 человек? Скажем, тысяча?

Пришлось постараться.
Total votes 28: ↑26 and ↓2+24
Comments15

SoftEther VPN — продвинутый мультипротокольный VPN-сервер и клиент

Reading time3 min
Views387K
Как скоро я смогу вас заинтересовать, если скажу, что в этой статье речь пойдет о VPN-сервере, который может поднимать L2TP/IPsec, OpenVPN, MS-SSTP, L2TPv3, EtherIP-серверы, а также имеет свой собственный протокол «SSL-VPN», который неотличим от обычного HTTPS-трафика (чего не скажешь про OpenVPN handshake, например), может работать не только через TCP/UDP, но и через ICMP (подобно pingtunnel, hanstunnel) и DNS (подобно iodine), работает быстрее (по заверению разработчиков) текущих имплементаций, строит L2 и L3 туннели, имеет встроенный DHCP-сервер, поддерживает как kernel-mode, так и user-mode NAT, IPv6, шейпинг, QoS, кластеризацию, load balancing и fault tolerance, может быть запущен под Windows, Linux, Mac OS, FreeBSD и Solaris и является Open-Source проектом под GPLv2?

То-то и оно. Такое пропустить нельзя.
Читать дальше →
Total votes 125: ↑120 and ↓5+115
Comments45

Коронавирус COVID-19: только факты, без паники

Reading time5 min
Views298K
Паника — худшее, что может случиться во время пандемии. Хабр всегда был и остается местом, где людям важны факты, а не домыслы. Факты такие: коронавирус оказался заразным и в некоторых случаях — смертельным. Государства избирательно закрывают границы, авиакомпании отменяют рейсы, массовые мероприятия переносятся. Лучшее, что можно сделать — как следует подготовиться. Ниже мы собираем самые внятные и полезные статьи, которые выходили на площадке в последнее время. Материал будет дополняться.
Читать дальше →
Total votes 118: ↑105 and ↓13+92
Comments220

Тестирование. Ошибки при сертификации или ISTQB мне очень нужен

Reading time5 min
Views19K

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


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


image

Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments4

Сертификация ISTQB. Часть 2: Как готовиться к сертификации ISTQB? Истории из практики

Reading time7 min
Views9K
Quality-lab сертификация ISTQB2

В Первой части нашей статьи по сертификации ISTQB мы постарались ответить на вопросы: Кому? и Зачем? нужен данный сертификат. Меленький спойлер: сотрудничество с ISTQB открывает больше дверей скорее перед компанией-работодателем, чем перед новоявленным владельцем сертификата.

Во Второй части статьи наши сотрудницы поделятся своими историями, впечатлениями и инсайтами по сдаче теста ISTQB, как в пределах СНГ, так и за рубежом.
Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments0

11 лучших шрифтов для программирования

Reading time3 min
Views255K
Много статей и сайтов сравнивают шрифты для программирования — всё это отличные ресурсы. Так зачем я опять поднимаю эту тему? Потому что сам всегда терялся в десятках шрифтов и не мог понять, какой лучше. Так что я опробовал много шрифтов и выбрал следующие для вас. Они довольно популярны и их легко получить. И самое главное, все эти шрифты бесплатны!

Я ранжировал шрифты по следующим показателям:

  • Насколько различимы схожие символы, такие как 0O, 1lI.
  • Легко ли читается шрифт (ширина строк, ширина/высота символов).
  • И мои личные предпочтения!

Все скриншоты сделаны в VSCode на одном фрагменте кода. Если не обозначено иное, то везде установлен размер "editor.fontSize": 14.
Читать дальше →
Total votes 56: ↑54 and ↓2+52
Comments117

Кластер хранилища Ceph на VMWare за 10 минут

Reading time10 min
Views52K


Этот мануал написан для желающих попробовать гибкость и удобство распределенного файлового хранилища Ceph в виртуальной среде на домашнем ПК. Сразу поясню, что 10 минут — это время на разворачивание самого кластера (установка и настройка Ceph на виртуальных машинах). Но на создание и клонирование виртуальных машин и на установку ОС потребуется отдельное время.

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

Кто еще не в теме Ceph, можно прочитать вводную статью Знакомство с Ceph в картинках и посмотреть модное промо от производителя.
Читать дальше →
Total votes 28: ↑26 and ↓2+24
Comments49

«Бэкап мне на ленту запили». Рассказ от первого лица

Reading time11 min
Views19K
В предыдущей статье мы поведали вам о новых фичах в вышедшем в январе обновлении Update 4 для Veeam Backup & Replication 9.5 (VBR), где осознанно не упомянули бэкапы на магнитную ленту. Рассказ об этой области заслуживает отдельной статьи, потому что новых фич было действительно много.

– Ребята из QA, напишете статью?
– Почему бы и нет!


Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments14

Теплый и ламповый VPN

Reading time9 min
Views393K

Ничего не предвещало беды, как вдруг в 2 часа ночи раздался телефонный звонок.

— Алло, милый! У меня youtube не работает!
— Прекрасно, иди спать!
— Нууу! Там новая серия вышла!
— Завтра всё сделаю!
— Ну Заяя, нуууу!
— Ладно! Ладно! Сейчас.


Из этого поста вы узнаете ответы на следующие вопросы:
Как спасти свою милую от стресса в 2 часа ночи? Как вернуть доступ к youtube.com, если ваш провайдер его заблокировал? Как быстро поднять VPN и настроить клиентские устройства (Android, Windows, Debian, dd-wrt) для работу с ним? Как безопасно серфить интернет на открытых точках доступа? Как заработать карму в глазах своей возлюбленной? Если вам это интересно, добро пожаловать под кат!
Читать дальше →
Total votes 188: ↑169 and ↓19+150
Comments157

IPSec VPN для OS X и iOS. Без боли

Reading time5 min
Views54K
VPN (англ. Virtual Private Network — виртуальная частная сеть) — обобщённое название технологий, позволяющих обеспечить одно или несколько сетевых соединений (логическую сеть) поверх другой сети (например, Интернет).
© Wikipedia


VPN используется для удаленного подключения к рабочему месту, для защиты данных, для обхода фильтров и блокировок, для выдачи себя за гражданина другой страны и вообще — штука незаменимая. Практически повсеместно в качестве простого средства для организации пользовательского VPN используется всем известный OpenVPN, который использовал и я. Ровно до тех пор, пока у меня не появился Macbook и OS X в придачу. Из-за того, что подход Apple к конфигурации DNS сильно отличается от подхода других *nix-систем, проброс DNS через VPN нормально не работал.

После некоторых исследований у меня получилось два варианта:
— Использование DNS «мимо» VPN, что сильно небезопасно, но решает проблему.
— Использование нативных для OS X VPN-протоколов: PPTP и семейства IPSec.
Разумеется, я выбрал второе и разумеется — IPSec, а не устаревший PPTP.
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments13

«ПсихическоеЗдоровье: ошибка выполнения»

Reading time11 min
Views30K
Искав информацию для нового исследования взаимосвязи продуктивности разработчиков от качества их сна я наткнулся на эссе Кеннета Рейца, известного популяризатора Python и активного контрибьютора open source проектов, который пишет о его опыте безумия и переживаний связанных с этим состоянием. Делюсь с вами переводом.


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

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

Однако, где-то полтора года назад, все изменилось. Как только я избавился от постоянных, изнуряющих головных болей, я с интересом погрузился в изучение йоги, медитаций и восточных философий. На самом деле, мне всегда были интересны различные подходы в познании мира и самого себя, так что, принимая во внимание тот факт, что я вырос в крайне религиозной семье, я проводил много времени за чтением таких авторов как Кен Уилбор, Рэм Дэс, Теренс Маккена и Алекс Грей. Естественным образом я ассимилировал их идеи в своем собственном мировоззрении, которое, кстати говоря, на тот момент мне казалось вполне нормальным и не сулящим никаких опасностей.



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

А я был болен.
Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments92

7 игр за 7 дней: rewarded video

Reading time5 min
Views24K
image

Ты решил выпустить свою игру под iOS? Значит, читай дальше. Яхты, машины, виллы — все это будет твое. Главное — удачно жениться. А разработчикам игр остаются свобода и счастье творчества. Sic!

Да, закатай губу и помни, каждый день в яблочный магазин выкладывается более 1000 игр. Представь, что какой-то тип-игроман заходит в Appstore раз в неделю посмотреть свежие приложения. Его ждет 7*1000=7000 новых игр. И еще миллион старых, которых он не пробовал. Он пролистает 3 страницы с иконками и описаниями, увидит 3 десятка приложений, почитает отзывы и скачает себе пару бесплатных игрушек. Какова вероятность, что он увидит твое гениальное, неслыханное, эпохальное, умопомрачительное приложение? Невелика? Ах, ты с кафедры мат. статистики? Да ладно?! А не переживай. Удача и реклама спасут тебя. Выпусти 100 приложений, размести в них современную рекламу и 50 долларов в день тебе обеспечены до самой смерти.

Я расскажу, как осуществляется автором этот гениальный план, опубликую финансовые итоги 2015 года (тс-с-с), и проинформирую уважаемых читателей о рекламных сервисах, которые, по-моему мнению, самые модные и доходные в этом сезоне. Ссылок на приложения не даю, никого не трогаю, починяю примус.
Читать дальше →
Total votes 48: ↑44 and ↓4+40
Comments13

С 26 февраля закрывается сервис Mailbox, который когда-то купил Dropbox

Reading time1 min
Views8.2K
Для тех кто не пользовался: Mailbox — это почтовый клиент для iOS, Android, OSX, Windows. Интегрировался он только с Gmail.

Основное отличие от обычных почтовых клентов — использование принципа 'Inbox Zero', который превращает папку «входящие» в список дел и предполагает стремиться к тому, чтобы держать ее пустой.
Знаете хорошие альтернативы? Оставьте под катом.
Total votes 7: ↑7 and ↓0+7
Comments17

От желания создать игру до запуска — один шаг

Reading time10 min
Views58K
Однажды я принял решение взять себя в руки, побороть лень и сделать свою игру. В этой публикации я расскажу о пути от идеи до реализации, который страшил меня много лет (и, наверняка, страшит многих), но оказался увлекательным, обучающим и сильно меняющим отношение к созданию игр.

Идея


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

Вывод

Прежде чем писать код, нужно тщательно и спокойно обдумать игровую механику, ее понятность, удобство и интерес. В моем случае этого сделано не было, так как идея захватила меня. В итоге игра получилась «на любителя».
Читать дальше →
Total votes 38: ↑26 and ↓12+14
Comments10

Information

Rating
Does not participate
Date of birth
Registered
Activity