воскресенье, 19 сентября 2021 г.

[prog.philosophy] Пример того, как я "усложняю" код на ровном месте. И пояснение почему так делаю

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

Преамбула

Суть в том, что при написании кода есть отдельный класс ошибок, вызванных невнимательностью. Ну, например, в POSIX есть функция pipe, которая создает анонимный пайп. В качестве параметра в эту функцию передается указатель на массив из двух int-ов. В случае успеха в этот массив будет помещено два хэндла: первый для чтения из пайпа, второй для записи в пайп.

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

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

int x = ...;
int cx = ...;
int y = ...;
int cy = ...;
define_rect(x, cx, y, cy);

Корректен ли вызов define_rect? Может быть он должен был быть записан как:

int x = ...;
int cx = ...;
int y = ...;
int cy = ...;
define_rect(x, y, cx, cy);

?

пятница, 17 сентября 2021 г.

[prog.thoughts] Что могло бы войти в SObjectizer-5.7.3 (SO-5.8?)

SObjectizer давно уже достиг состояния, когда его возможностей хватает для закрытия наших потребностей. Да и потребностей у нас сейчас заметно поменьше, чем в былые годы. В прошлом году мы задействовали SObjectizer только в aragata. В этом году относительно недавно стали его применять в разработке прототипа нового заказного приложения. Что из этого получится и будет ли SObjectizer применяться там впоследствии -- открытый вопрос, на который сейчас сложно дать ответ. Однако же, пока что возможностей SObjectizer (+so5extra) и в этом новом проекте хватает.

Тем не менее, раз базовые потребности закрыты, а проект вполне себе жив, то вольно-невольно задумываешься о том, а куда его можно было бы двигать дальше. С учетом как нашего прошлого опыта, так и текущих впечатлений от применения SObjectizer в новой для нас области.

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

Итак, милости прошу под кат тех, кому интересно следить за SObjectizer-ом.

среда, 15 сентября 2021 г.

[life.music] Продолжение саги о попытке приобщения к бюджетной аудиофилии. Кратко о USB-ЦАП и побывавших у меня "свистках"

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

понедельник, 6 сентября 2021 г.

[soft.bragging] Вторая сотня звезд на GitHub-е для SObjectizer

Однако, двести.

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

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

Пользуясь случаем обозначу текущий статус проекта.

SObjectizer/so5extra не умер. Проект живет. Проект используется. Причем, наверное, вне нашей крохотной компании он используется даже гораздо шире. Хотя информации о том, где и как SO-5 применяется, по прежнему, очень мало. Какие-то сведения до нас доходят отрывочно, случайно и эпизодически. Так, несколько месяцев назад узнал, что SObjectizer применяют на бакэнде в 2GIS.

На данный момент развития проекта нет. Главная причина в том, что для нас самих в SObjectizer-е есть все, что нам сейчас нужно. Добавлять что-то еще просто "шоб было" нет ни смысла, не ресурсов. Так что новая функциоальность в SO-5 появится либо тогда, когда нам самим в нем что-то потребуется, либо если кто-то у нас закажет доработку SObjectizer-а.

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

Поэтому если кто-то сомневается пробовать ли SObjectizer или не пробовать, то не сомневайтесь, пробуйте.

Тем же, кто попробовал, большое спасибо за правильный выбор ;)

среда, 1 сентября 2021 г.

[work.reflection] Не быстро, недорого, качественно

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

Похоже, что из афоризма "Выберите любые два" нас можно описать как: не быстро, недорого, качественно.

Ключевое -- это качественно. Делать абы как совесть не позволяет, а для качественного результата нужно время. Да и не только совесть, уже просто руки по другому не могут. Когда ты всю карьеру занимался проектами, которые поднимаются с нуля, а затем развиваются и работают годами, то оно как-то само собой получается: сделаешь тяп-ляп, потом сам же и отгребешь, да еще в самый неподходящий момент. Отсюда и "не быстро".

А из того, что сроки удлиняются, стоимость часа работы снижается, что и ведет к "недорого".

Хотя, судя по тому, что сейчас пишут в Интернетах по поводу уровня зарплат в той же России, мы, похоже, последние, кто еще "недорого".

[life.cinema] Очередной кинообзор (2021/08)

Подошло время очередного кинообзора. В этот раз в него попали и несколько сериалов. Как обычно, в начале списков идет то, что понравилось больше.

Фильмы

Батя (2020). Хорошее кино. Местами, как по мне, очень трогательное. Возможно, оно было бы еще лучше, если бы на место Стаса Старовойтова взяли бы умеющего играть актера.

Кроваво-красное небо (Blood Red Sky, 2021). Не ожидал, что в области фильмов про вампиров можно снять что-то свежее и интересное. Да еще от Netflix. Но тут вот звезды сошлись. Любителям жанра нужно посмотреть.

Воспоминания (Reminiscence, 2021). Идея хорошая, снято красиво, смотреть за развитием истории было интересно. Но вот розовых соплей что-то слишком уж много.

Опасный элемент (Radioactive, 2019). В принципе, хороший фильм, смотреть было интересно. Разве что обилие флешбэков несколько портило впечатление.

Отряд самоубийц: Миссия навылет (The Suicide Squad, 2021). Лично мне отлично зашел. Ожидал треша и угара, их и получил. Джеймс Ганн снял не супергеройское кино, на которое претендовала унылая первая часть, а мастерский стеб на весь этот жанр.

Кодекс киллера (The Protégé, 2021). Еще одна попытка снять "Джона Уика в юбке". Немного успешнее предыдущих. По крайней мере бодренько. Хотя с перипетиями сюжета и мотивацией героев явно что-то намудрили или налажали (скорее и то, и другое), так что я лично не очень понял что там и почему. Но ведь боевики смотрят не ради сюжета ;)

Малышка (Sweet Girl, 2021). Смотреть до какого-то момента было интересно. И твист неплохой сделали ближе к завершению. Но блин, финальная разборка в фонтане выглядит настолько невероятно, что это напрочь убивает все хорошие впечатления от фильма.

Маша (2020). Добротно снято и история неплохая. Но 2/3 фильма показывают какую-то придурошную малолетку, которая своей идиотией раздражает без меры, а в конце показывают убогий и не объясненный толком финал, после которого остается куча вопросов на тему "а что же было между двумя ключевыми историческими точками?"

Сериалы

Иерро (Hierro, 2019). Первый сезон. Интересно. Хотя слишком быстро становится понятно что к чему. И развязка какая-то несуразная.

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

Харлан Кобен. Невиновен (El inocente, 2021). Отлично снят. Необычный способ подачи материала (серии начинаются от лица разных персонажей). Интересно следить за развитием событий. Но постепенно начинают накапливаться несуразности и ближе к концу все происходящее начинает вызывать вопрос "Что за хрня здесь творится?" В общем, по итогу сериал разочаровал.


Отдельно упомяну совершенно неожиданный "Солнцепек". ИМХО, посмотреть его нужно. Но вот оценивать как кино подобные картины еще рано.

понедельник, 30 августа 2021 г.

[blog] Включил премодерацию комментариев

Сегодня какой-то спамер стал донимать меня комментариями с левыми ссылками.

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

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