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

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

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

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

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

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

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

Profile

dememax

May 2023

S M T W T F S
 123456
78910111213
14151617181920
21 2223 24252627
28293031   

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 1st, 2025 12:03 pm
Powered by Dreamwidth Studios