вторник, 3 апреля 2018 г.

И ещё раз про AppVeyor

Недавно отвалился билд со странной, периодически появляющейся ошибкой от devenv - "This operation should only take place on the UI thread". Гугл по ней ничего полезного не дал, все файлы были в порядке.

Исправил тем, что поменял devenv на msbuild для сборки. И всё заработало без проблем. 

Ещё недавно переоткрыл для себя braced initialization в C++ . Вот здесь в примерах плохо понятно, почему это круто, но на самом деле даже при переприсваивании объекта можно серьёзно сэкономить в объёме на названии конструктора.

Например какой-нибудь код, вида :  m_current_line->ToId = Maybe<unsigned int>(m_current_rule->Id);  запросто превращается в m_current_line->ToId = {m_current_rule->Id}; ,а это уже на 20 символов меньше к набору и чтению. И в чтении теряются только типы, которые не всегда так уж важны. Удобно!

вторник, 2 января 2018 г.

Мои итоги года (часть 2 или про программирование в целом)

Я во многом этот год провёл за PHP и куда меньше за плюсами, но во многом старался ковырять много интересных штук. Однако недавно поймал себя на мысли что всё равно как-то интерес ко всему этому стал угасать.

И да, я в этой части не буду говорить про блокчейн и про биткойн. Во-первых, это скорее финансовые инструменты и они мне менее интересны. Тем не менее, если вычесть это и ML, то 2017 в этом плане для меня абсолютно ничем не примечательный год. 

И мне грустно от этого. Почему?

вторник, 26 декабря 2017 г.

Об игровых движках в 2017

Вот тут Jeff Preshing пишет о том, зачем может понадобиться писать свой игровой движок. Тут довольно классические причины: вам нравится, вам хочется контроля за тем, что в движке делается (это обо мне), ну и, обучение само собой, куда без него.

Далее  описывается разработка очень специфичного движка, заточенного под специфичную задачу, что, как я считаю и может являться основной причиной разработки нового движка. По идее, только за счет минимализма в движке можно выиграть у монстров типа того же Unity или UE.

Что отметил для себя: я как-бы сторонник обобщения до предела, но тут как раз в статье постулируется подход "наоборот", что порой, не всё стоит обобщать и выделять в абстракции и пример с умными указателями действительно хорош.

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

Приятно, что Unity и Unreal не полностью убили разработку игровых движков (особенно на плюсах).

четверг, 14 декабря 2017 г.

Мои итоги года (часть 1 или метапост)

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

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

суббота, 11 ноября 2017 г.

Ubuntu 17.10, VNC и автологин

Неожиданно в новой убунте перестал работать tightvncserver, который дает возможность . Тупо падает с "No VNC extension on ..." и всё. Правки из гугла не помогли, более того - непонятно почему раньше этой проблемы не было.

Перестал работать автологин в LightDM. При этом, как узнал потом, теперь, вместо единого файла /etc/lightdm/lightdm.conf, есть целых три файла:
  • /etc/lightdm/lightdm.conf
  • /etc/lightdm/lightdm.conf.d/
  • /usr/share/lightdm/lightdm.conf.d/
В сумме там 10 замечательных файлов, каждый из которых может поменять конфигурацию, при этом у трех в одной папке ещё и приоритеты совпадают. Отладить это немыслимо. Хорошо хоть логи есть. У меня такое ощущение, что я пропустил момент, когда такой бардак стал нормой. Раньше был едва-едва один файл конфигурации у приложения и админить такой зоопарк было как-то проще. И автологин работал.

В итоге, к черту выпилил стандартный greeter, заменив его на тупейший скрипт - и, о чудо, всё заработало, автологин пошел. tightvncserver тупо заменил на Vino в автозагрузке, который заработал сразу.

Обидно как-то, 2017-й год на дворе, а апдейты софта в Linux как были русской рулеткой с пятью патронами, так и остались.

среда, 8 ноября 2017 г.

Курс по программированию GPU и рендерингу

Вот тут (предыдущий год тут) нашел очень крутой и современный курс по программированию на GPU и рендерингу.  Демки студентов выглядят круто, в заданиях(помимо возни с CUDA, OpenGL) есть даже рендер травы на Vulkan .

пятница, 13 октября 2017 г.

libclipboard и буфер обмена


Недавно у меня возникла задача: встроить в свой плюсовый движок работу со стандартным буфером обмена системы (в моем случае - Windows и Linux (X11)) для получения и копирования туда текста.  Задача, скажем честно, хотя и тривиальная на первый взгляд, но, вообще, довольно нетривиальная в реализации из-за отвратительной реализации работы с буфером обмена в X11.