dememax: (glider)
2023-05-21 09:09 pm

GStreamer element: "parent_class" idiom in the boilerplate

Как в glib, в GStreamer имя "parent_class" используется для определения первого поля структуры нового класса, например:
struct _GTypeModuleClass
{
  GObjectClass parent_class;
...
Для нового элемента в GStreamer используется макро G_DEFINE_TYPE (которое раскрывается в DEFINE_TYPE_EXTENDED) из GObject:
https://gitlab.gnome.org/GNOME/glib/-/blob/main/gobject/gtype.h
Read more... )
Update: Совсем забыл сказать, для чего это всё делается (define ..._parent_class parent_class), чтобы не писать длинно:
G_OBJECT_CLASS (some_class_parent_class)->finalize (object);
а коратко
  G_OBJECT_CLASS (parent_class)->finalize (object);
Всё!
Но иногда в исходнике других упоминаний parent_class нет вообще, и это ещё больше меня расстраивает.
Зачем?!
"Один ответ на это есть!" Boilerplate! В смысле, copy-past technology!

Update 2: Мло того, есть ещё и в обратную сторону:
> git grep -n -H -E "^ *# *define +parent_class +.*_parent_class *$" | wc
    146     438   16605
> git grep -n -H -E "^ *# *define +.*_parent_class +parent_class *$" | wc
    748    2244   83736


https://mpd.livejournal.com/190287.html
dememax: (сонливость)
2022-06-03 11:54 pm

Перед отпусом. Усталость. Радость от решения.

С декабря немного приуныл по поводу работы. А уж февральские события - не добавили оптимизму в жизни...
Много было вещей, которые так и не смог доделать, либо не стали использовать в результате.
Контекст: в стартапе не так много народу, а задачки по продукту возникают разные.
Я с радостью берусь за что-то новое, но не всегда удаётся оптимально сделать, т.к. не можешь знать всё, а там бывает - очень разные вещи (скажем, драйвер USB gadget webcam в линуксе, алгоритмы смешивания цветов в OpenGL, странное падение компонента GStreamer на встроенной системе, ...).
Предположу, что надо уже давно меняться и не автономничать, а находить правильного ментора среди знакомых и бывших коллег по конкретной задаче, чтобы оптимальнее работать. Но попадаешь в ловушку: вот, сейчас ещё времени побольше потрачу на это - и получится! Но в результате выгораешь, и хоть и продвинулся, но готового решения нет. Read more... )
Кросс-пост: https://mpd.livejournal.com/181617.html
dememax: (glider)
2020-03-29 12:46 pm

Python: string concatenation, The Zen of Python, and code review

Предупреждение: Мне нравится питон, но это не мешает критиковать.

В The Zen of Python есть такая мысль:
There should be one-- and preferably only one --obvious way to do it.
(выделение в тексте моё)
Понятное дело, я не единственный, кто обращает внимание на то, что в плане конкатенации строк (нас будут интересовать строковые переменные) в питоне - этот принцип уже давно далеко от реального положения дел; имеем:Но вы мне возразите... )
dememax: (Hacker Emblem)
2019-11-03 01:07 pm

GStreamer Conference 2019

Была в Лионе с 30 октября по 1 ноября.
Вчера и сегодня там хакфест.

Ездил полностью за свой счёт, в SSI (где я сейчас работаю) не используется этот фреймворк. Пробовали когда-то давно, что-то не получилось, ну и бросили, сделали свой код для пайплайна.

А вообще, лучше было бы поехать на Open Source Summit + Embedded Linux Conference Europe 2019, к которой по GStreamer была прицепом, но как-то не сложилось, а жаль.

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

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

Очень много было незавуалированной rust-пропаганды.