🐙 Antony
почему-то битсет из libc++ работает блядь правильно во всех случаях
- Чувак, не бросай патроны в огонь! - Я знаю что я делаю - Чувак, тебе все говорят, что так делать нельзя - Я знаю, что я делаю - Чувак, там даже на коробке написано "Не бросать в огонь" - Эта надпись для дебилов - Чувак, у меня колега на работе, такой же как ты, бросил патроны в огонь и умер - Он не знал что он делает. Кстати, а патроны от огня ведь ведь всегда вызрываются? - Да - Вот ты и не парв! Кстати, я видел как Вася-Вильямсон кинул, и всё было хорошо. - Ты про того Васю, который третий год подряд на морозе облизывает металическую качельку? - Да, тот самый! Он недавно профессора получил и между прочим книгу написал "Шепелявость - явление погодное, а не физиологическое" <кидает патроны> - Ну вот, ничего не случилось, я же говорил. Вы все дурачьё!.. Тут главное что: кидать патроны фирмы Acme! А то в прошлый раз я кинул патроны фирмы VaultTec, фейерверка не было, я просто уснул на пару часов, а потом проснулся без 3х пальцев. наверное крысы отгрызли, пока спал! поэтому больше на природе я патроны в огонь не кидаю.
Berkus
ой, всё
Александр
Deleted Account
- Чувак, не бросай патроны в огонь! - Я знаю что я делаю - Чувак, тебе все говорят, что так делать нельзя - Я знаю, что я делаю - Чувак, там даже на коробке написано "Не бросать в огонь" - Эта надпись для дебилов - Чувак, у меня колега на работе, такой же как ты, бросил патроны в огонь и умер - Он не знал что он делает. Кстати, а патроны от огня ведь ведь всегда вызрываются? - Да - Вот ты и не парв! Кстати, я видел как Вася-Вильямсон кинул, и всё было хорошо. - Ты про того Васю, который третий год подряд на морозе облизывает металическую качельку? - Да, тот самый! Он недавно профессора получил и между прочим книгу написал "Шепелявость - явление погодное, а не физиологическое" <кидает патроны> - Ну вот, ничего не случилось, я же говорил. Вы все дурачьё!.. Тут главное что: кидать патроны фирмы Acme! А то в прошлый раз я кинул патроны фирмы VaultTec, фейерверка не было, я просто уснул на пару часов, а потом проснулся без 3х пальцев. наверное крысы отгрызли, пока спал! поэтому больше на природе я патроны в огонь не кидаю.
хах на СИ похоже
Александр
На самом деле не понимаю, почему такое агрессивное отношение к грязным хакам. Одно дело - в продакшн, другое - для тестов для себя
🦥Alex Fails
Шлее
🐙 Antony
На самом деле не понимаю, почему такое агрессивное отношение к грязным хакам. Одно дело - в продакшн, другое - для тестов для себя
Причин очень много. Основная: потому что потом как правило следует неверный вывод. Вот например: > почему-то битсет из libc++ работает блядь правильно во всех случаях Человек сделал неверный вывод, что в его проблемах виновата стандартная библиотека, а не он сам.
Шаурма
На самом деле не понимаю, почему такое агрессивное отношение к грязным хакам. Одно дело - в продакшн, другое - для тестов для себя
На самом деле не понимаю, почему такое агрессивное отношение к переходу на красный. Одно дело - в городе, другое - на райчике
Александр
Причин очень много. Основная: потому что потом как правило следует неверный вывод. Вот например: > почему-то битсет из libc++ работает блядь правильно во всех случаях Человек сделал неверный вывод, что в его проблемах виновата стандартная библиотека, а не он сам.
Так выводы можно разные делать. В таких ситуациях только на своих ошибках можно учиться, ибо другие не пишут статьи на тему "смотрите, как я написал херню и у меня всё сломалось"
🐙 Antony
Более того, потом такой код перетекает в продакшн, ведь эксперимент показал, что он работает. А потом он гарантированно ломается с новой версией компилятора или стандартной библиотеки. И следует новый неверный вывод: "C++ плохой язык". Хотя верный вывод - надо писать всегда и везде правильный код, иначе он не будет работать через пару лет и никто не разберётся почему
🦥Alex Fails
Другой вопрос, что четких гайдлайнов, как это делать, нет. Хотя есть цпп кор гайдлайнс. кмк, надо учиться подходить к проблеме, т.е., оценивать предлагаемое решение, искать в нем баги, уб, уб и исб, етц.
Ruslan
Шлее
Ага, 5.3
🦥Alex Fails
Ага, 5.3
Эт да
Kirill
шлее неимоверно скучный
🦥Alex Fails
Вообще кмк, Qt слишком простой и хорошо документированный в инете, поэтому самому его освоить не составляет особого труда
Anatoly
достаточно прочесть эту для осознания дао Qt, а после уточни моменты в документации к Qt 5
🐙 Antony
а что там с ним было?
reinterpret_cast<std::bitset<32>&😠my_unrelated_POD_data_type) И эта конструкция не работала. Просили починить, но не убирая каст к std::bitset<32>.
🐙 Antony
омг
В итоге, вместо того чтобы написать за пол часа-час класс с интерфейсом близким к std::bitset человек больше дня отлаживался
Subbotin
хэй гайз. а как такое может быть, что у меня ldd на убунте и на центоси на один и тот же бинарник показывает 44 и 35 зависимостей соответственно?
Александр
В итоге, вместо того чтобы написать за пол часа-час класс с интерфейсом близким к std::bitset человек больше дня отлаживался
Я просил не починить, а объяснить, почему не работает. Но не фразой "так нельзя", а "вот такая реализация, поэтому хрен". Все почему-то только ссылаться на UB умеют. И я уже повторял, что дело не в том, что такой класс легко пишется. Я хотел разобраться - я разобрался. Только один человек из конфы меня понял и мы с ним мило побеседовали в ЛС, разобравшись в деталях библиотеки.
Subbotin
а он разве рекурсивен?
Григорий
всем привет
Григорий
немного хочу поныть)
Григорий
нужно внести кое-какие правки в код, а именно следующее: сейчас софт работает с определённым GSM-модемом
Григорий
нужно добавить поддержку другого модема, изначально я планировал сделать красиво: вынести из класса модема общий интерфейс, унаследовать классы конкретных модемов от этого интерфейса и везде его подсовывать
🐙 Antony
Я просил не починить, а объяснить, почему не работает. Но не фразой "так нельзя", а "вот такая реализация, поэтому хрен". Все почему-то только ссылаться на UB умеют. И я уже повторял, что дело не в том, что такой класс легко пишется. Я хотел разобраться - я разобрался. Только один человек из конфы меня понял и мы с ним мило побеседовали в ЛС, разобравшись в деталях библиотеки.
Ваше первое сообщение, в котором вы простие именно "починить": Народ, подскажите. Пишу свой костыль, храню pod-типы в обычном uint8_t[]. Когда кастю их к чему-то конкретному, возникают баги, что объекты побитово одинаковые, а вот == даёт false. Я так понимаю, это из-за UB - как пофиксить? clang 5.0
Subbotin
тип того
спасибо
Григорий
а какой конкретно класс инстанцировать, определять при запросе сведений о модеме
Григорий
это через компорт делается
Григорий
но не тут-то было
Григорий
тут очень много где в коде переинит модема делается, вызывается метод инит, в котором порт удаляется и заново инитится
Григорий
мало того, указатель на порт лежит в классе модема, но передаётся в конструкторе нулл и инитится как я уже выше написал, внутри метода класса модема
Григорий
при этом сам порт в конструкторе принимает ссылку на модем и кое-где эту ссылку юзает
Григорий
при передаче данных
Григорий
короч, перекрёстная связь
Григорий
и много где в коде это всё юзается, аааааааааааааааа
Григорий
так фишка в том, что мне нужно узнать, какой класс инстанцировать, т.е. создать порт и запросить у модема инфу до создания класса модема
Шаурма
спасибо
http://stackoverflow.com/questions/15064685/does-ldd-also-show-dependencies-of-dependencies
🦥Alex Fails
Григорий
да, я так и хочу сделать) просто хотел пожаловаться
Григорий
НИ НАДА ТАК ДЕЛАТЬ
Григорий
Петя пишет слабо связанный код
Григорий
Петя умный
Григорий
делай как Петя
🦥Alex Fails
НИ НАДА ТАК ДЕЛАТЬ
Как я предложил?
Григорий
нет, так как сделано в проекте
🦥Alex Fails
А, ок. Можно в личке с примерами кода обсудить, если детали проекта не обсудить, постараюсь подсобить чуткв
Григорий
спасибо, буду иметь в виду, пока попробую сам)
🦥Alex Fails
Ок👍
🐙 Antony
тебе похоже больше всех жалко
Если в процессе общения хоть один человек поменял свое мировоззрение и перестал делать подобное - день прожит не зря и значит через пару лет на одного высококлассного специалиста станет больше :)
Александр
Ваше первое сообщение, в котором вы простие именно "починить": Народ, подскажите. Пишу свой костыль, храню pod-типы в обычном uint8_t[]. Когда кастю их к чему-то конкретному, возникают баги, что объекты побитово одинаковые, а вот == даёт false. Я так понимаю, это из-за UB - как пофиксить? clang 5.0
Сначала я решил, что проблема в оптимизациях компилятора, основанных на UB. Слышал про какие-то аттрибуты, которые говорят ему "не нужно здесь особо умничать". Это всё было основано на предположении, что std::bitset хранится непрерывным куском в памяти. В итоге так и оказалось - непрерывный массив uulong[]. Потом начал выяснять "почему не работает?". Мне нужна была реализация под конкретный! компилятор и конкретную! версию стандартной библиотеки. Но почему-то все твердили "не лезь туда (еще узнаешь что-нибудь!)" Что в итоге? Разобрался, покопался в исходниках libstdc++ и узнал таки. К слову, теперь я представляю себе, как могут выглядеть внутренности bitset'а и при реверсе чего-либо я узнаю его из тысячи.
Александр
А тот класс мне уже завтра перестанет быть нужен
Александр
Это образно. Говорили не делать так, как я делал.
Александр
🐙 Antony
Простите, Сэнсэй
Велик не тот самурай, который много битв изведал, а тот который знает как этих битв избежать.
Александр
Велик не тот самурай, который много битв изведал, а тот который знает как этих битв избежать.
Благо мне голову не отрубят, если я лишний раз UB получу. А эксперименты мне нравятся.
Surreal
Surreal
У нас же харакири-надзор теперь в стране. Надо осторожнее быть с черным юмором.
Square
https://t.me/bestofdevRant/320
Square
На злобу дня
Александр
В общем, давайте не будем такими категоричными. Написал стрёмный код - ок. Я осознаю, что в продакшн такое не пишут. Осознаю, что это неправильно и UB. Но зачем же сразу набрасываться? Такое ощущение, что я отключил антивирус, чтобы поставить пиратский софт и все вокруг "чуваааак, это небезопасно, ты не знаешь последствий, а что если ты на работе так сделаешь и подставишь компанию?". Я беру на себя ответственность и умею разграничивать работу и личное
Anatoly
к слову, за отключенный антивирус тебе +100 к карме
Berkus
А выглядело так примерно: - мне интересно разобраться почему так. - НИКОГДА ТАК НЕ ДЕЛАЙ ТЫ ЧТО ЧТО ЧУР МЕНЯ БОЖЕ ЭТО ЖЕ БИТСЕТ. - да я просто хочу разобраться. - ТЫ И ПОДОБНЫЕ ТЕБЕ НЕПРОФЕССИОНАЛЬНЫ И ВООБЩЕ НИЧЕГО НЕ ПОНИМАЮТ В ПЛЮСАХ. ВОТ МЫ БОГИ И ЗНАЕМ ЧТО ОЙ БИТСЕТ МАМОЧКА СПАСИ ООСПОДИ
Berkus
Что то такое экранов на 15