September 19th, 2020

поумнеть

копипаста и быстрое набивание текста

вот, есть, например, такой кусочек кода, который скомпилируется и на С и на С++
  if (cap.capabilities & V4L2_CAP_READWRITE)
    printf("  V4L2_CAP_READWRITE\n");
  if (cap.capabilities & V4L2_CAP_STREAMING)
    printf("  V4L2_CAP_STREAMING\n");


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

#define DO_CAP2(x,y) if(cap.capabilities & x) printf("  " #x " " y "\n");

...

DO_CAP2 ( V4L2_CAP_VIDEO_CAPTURE, "(Is a video capture device)" );


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

любопытно, а что-то более новое и удобное в с++ появилось?
а в других языках, которые позволят меньше писать, если я пишу, по сути, тупой биндинг к выбору-разбору-подбору и визуализации потрохов чего-то низкоуровневого типа v4l2?

ps: ну, блин. почему, с точки зрения прикладного погромиста, v4l при переходе к v4l2 так испотилось, испохабилось и похужело? с точки зрения прикладного погромиста, в v1 можно было тупо уметь один метод, а всё прочее делало какое-то мидлваре. а вот в v2 внезапно драйвера поимели возможность реализовать любое число методов из всех возможных. и соответственно, прикладные программы стали обязаны реализовывать все представимые методы, ибо а вдруг драйвер умеет только что-то изотерическое. какого хрена?

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

(один стандарт - неплохо, два стандарта - хорошо, дофига стандартов - плохо. переход к перекодированию из дофига в дофига с использованием дофига промежуточных - совсем плохо)
поумнеть

а у нас водопровод, вот

какое-то немалое время назад мы тут тупо наняли водопроводчика, чтоб он и бойлер поставил, и сделал всё по уму. заменил трубы на пропилен, аккуратно смонтировал, сменил смесители на керамические, итп.

несколько лет были офигенно довольны.

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

а потом оказалось, что обычные покупные гусаки, имеют диаметр ЧУТЬ другой. прокладки имеют диаметр ЧУТЬ другой, итд итп.

как итог, кран в ванной конкретно так подтекал в подставленный под него стакан.

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

посмотрим, как именно выйдут самосогласованные композитные силиконовые прокладки и герм.кольца. :)