С кайфом сходил поорать в караоке, обзор
+ ор в кайф
+ бахнул сакэ
+ нашёл какое-то вкусное рагу с курицей
- голос
+ ор в кайф
+ бахнул сакэ
+ нашёл какое-то вкусное рагу с курицей
- голос
💯5
Идея для любителей экстремального программирования: russian_roulette_ptr<T>
Источник вдохновения — русская рулетка в варианте с одним прокручиванием барабана на всех игроков
Аллоцировав объект, мы сразу удаляем его. Если использовать его сразу после удаления, то велик шанс, что выделенная под него память не переиспользуется, и всё сработает нормально. Но чем дольше им пользуемся, тем выше шанс выстрелить себе в ногу. Развлекайтесь!
template <class T, class... Args>
russian_roulette_ptr<T> make_russian_roulette(Args&&... args) {
auto ptr = new T(std::forward<Args>(args)...);
delete ptr;
return russian_roulette_ptr(ptr);
}
Источник вдохновения — русская рулетка в варианте с одним прокручиванием барабана на всех игроков
Аллоцировав объект, мы сразу удаляем его. Если использовать его сразу после удаления, то велик шанс, что выделенная под него память не переиспользуется, и всё сработает нормально. Но чем дольше им пользуемся, тем выше шанс выстрелить себе в ногу. Развлекайтесь!
🤣9🥰3❤1
Кресты на моей кукухе
Идея для любителей экстремального программирования: russian_roulette_ptr<T> template <class T, class... Args> russian_roulette_ptr<T> make_russian_roulette(Args&&... args) { auto ptr = new T(std::forward<Args>(args)...); delete ptr; return ru…
Подсказывают, что я набаговал в багоделательном коде, и надо delete заменить на free, чтоб деструктор не вызывать
👍2
Странный факт: в плюсах поля обычного базового класса в плюсах лежат перед полями наследника, но поля виртуального базового класса (
Только что открыл это для себя, попал в ступор
Upd. дальнейшие эксперименты говорят, что на деле всё сложнее. Буду выяснять, как так
struct Derived : virtual Base
) лежат правее полей наследникаТолько что открыл это для себя, попал в ступор
Upd. дальнейшие эксперименты говорят, что на деле всё сложнее. Буду выяснять, как так
70к рублей (учитывая накопленные яндекс бонусы, 60к) и можно иметь нума тачку на 72 потока дома...
Как долго я смогу сопротивляться соблазну....
Upd. О, нет, надо бы ещё и корпус какой-никакой
Как долго я смогу сопротивляться соблазну....
Upd. О, нет, надо бы ещё и корпус какой-никакой
🤩1
Так прикольно быть программистом
Стало интересно, сколько я провайдеру за виртуалку отдал. Провайдер может дать историю csv-шкой. И 4 строчки питона находят ответ примерно моментально (30-40к где-то)
Да, я слабый и пытаюсь оправдать свою трату на развлекательную железку
Стало интересно, сколько я провайдеру за виртуалку отдал. Провайдер может дать историю csv-шкой. И 4 строчки питона находят ответ примерно моментально (30-40к где-то)
🤗3👏1
Кресты на моей кукухе
Странный факт: в плюсах поля обычного базового класса в плюсах лежат перед полями наследника, но поля виртуального базового класса (struct Derived : virtual Base) лежат правее полей наследника Только что открыл это для себя, попал в ступор Upd. дальнейшие…
Всё-таки всё просто
Порядок расположения в памяти такой: нормальные родители (в порядке дфс-а), ребёнок, виртуальные родители
Если у класса или родителя есть виртуальные функции, перед ним будет
Занятно, что указатель кладётся не на сам
https://godbolt.org/z/ze36GqhT7
Порядок расположения в памяти такой: нормальные родители (в порядке дфс-а), ребёнок, виртуальные родители
Если у класса или родителя есть виртуальные функции, перед ним будет
vtbl
Занятно, что указатель кладётся не на сам
vtbl
, а куда-то правее. При этом то, что левее записанного указателя, тоже может читаться (в примере там, видимо, лежит смещение влево относительно виртуальной базы)https://godbolt.org/z/ze36GqhT7
godbolt.org
Compiler Explorer - C++ (x86-64 clang (trunk))
struct Base {
long x = 1;
};
struct D1 : virtual Base {
int kek() {
return x;
}
long d1 = 2;
};
struct D2 : virtual Base {
int lol() {
return x;
}
long d2 = 3;
};
struct DA : D1, D2 {
int lmao() {
…
long x = 1;
};
struct D1 : virtual Base {
int kek() {
return x;
}
long d1 = 2;
};
struct D2 : virtual Base {
int lol() {
return x;
}
long d2 = 3;
};
struct DA : D1, D2 {
int lmao() {
…
Кресты на моей кукухе
Photo
Вы думаете, я шутил?
https://github.com/ydb-platform/ydb/pull/4071/files#diff-cb03abe8e6942443dbdf398736c58902557f1367133f3991bdb99b98faa7f041R217
https://github.com/ydb-platform/ydb/pull/4071/files#diff-cb03abe8e6942443dbdf398736c58902557f1367133f3991bdb99b98faa7f041R217
GitHub
YQ-2824: implement basis for type inference for CSV and TSV by EgorkaZ · Pull Request #4071 · ydb-platform/ydb
Changelog entry
...
Changelog category
Not for changelog (changelog entry is not required)
Additional information
...
...
Changelog category
Not for changelog (changelog entry is not required)
Additional information
...
⚡1👍1
Кресты на моей кукухе
70к рублей (учитывая накопленные яндекс бонусы, 60к) и можно иметь нума тачку на 72 потока дома... Как долго я смогу сопротивляться соблазну.... Upd. О, нет, надо бы ещё и корпус какой-никакой
Обидно
Доставка процов отменилась, заказал другие, в итоге +2к к стоимости и -8 потоков
Хотя за счёт более высокой базовой частоты на бенчах будто бы чуть-чуть лучше себя показывает
Доставка процов отменилась, заказал другие, в итоге +2к к стоимости и -8 потоков
Хотя за счёт более высокой базовой частоты на бенчах будто бы чуть-чуть лучше себя показывает
Хорошая новость: оно запускается и бутается (а это мой первый собранный с нуля комп, так что собой доволен)
Плохая новость: я не думал про дырки в материнке, на которые она крепится, думал, это счастье стандартизировано и однозначно соотносится с форматом платы. Получается, лох: у e-atx бывает, по крайней мере, два расположения, одно из них как у atx, а второе — как у меня)0) Хоть корпус и утверждает, что поддерживает e-atx, плату в него не вкрутишь. Чё с ним делать — хз
Upd. вообще, он прикольный, пожалуй, основной комп в него пересажу. Так ещё и окажусь на шаг ближе к тому, чтоб он стал кораблём Тесея
Плохая новость: я не думал про дырки в материнке, на которые она крепится, думал, это счастье стандартизировано и однозначно соотносится с форматом платы. Получается, лох: у e-atx бывает, по крайней мере, два расположения, одно из них как у atx, а второе — как у меня)0) Хоть корпус и утверждает, что поддерживает e-atx, плату в него не вкрутишь. Чё с ним делать — хз
Upd. вообще, он прикольный, пожалуй, основной комп в него пересажу. Так ещё и окажусь на шаг ближе к тому, чтоб он стал кораблём Тесея
🤯4🔥2💘1
This media is not supported in your browser
VIEW IN TELEGRAM
Пересадил комп в весёлый корпус
Собрал сервак, развлекаюсь настройкой сервисов. Пока дошёл до того, что парррочке из них нужна настройка проксей, плюс ещё кой-чего с сетями поколдовать хочется
До бенчей тоже скоро дойду
А там и скомпилировать весь опыт в стройный текстик можно
Вообще, оч прикольное себе придумал развлечение, дико доволен
Собрал сервак, развлекаюсь настройкой сервисов. Пока дошёл до того, что парррочке из них нужна настройка проксей, плюс ещё кой-чего с сетями поколдовать хочется
До бенчей тоже скоро дойду
А там и скомпилировать весь опыт в стройный текстик можно
Вообще, оч прикольное себе придумал развлечение, дико доволен
❤9🔥1
Ъуъ
Накатил openwrt на роутер
В процессе настройки пару раз успел подумать, что превратил роутер в кирпич. Затем долго и мучительно стучался в интернет. Потом пытался убедить один из портов заработать. Подебил
Теперь можно будет поднять xray проксю прям на роутере, получить бонусом рабочие апдейты на quest2 и ютуб на телевизоре
Лучше бы спать вовремя ложился
Накатил openwrt на роутер
В процессе настройки пару раз успел подумать, что превратил роутер в кирпич. Затем долго и мучительно стучался в интернет. Потом пытался убедить один из портов заработать. Подебил
Теперь можно будет поднять xray проксю прям на роутере, получить бонусом рабочие апдейты на quest2 и ютуб на телевизоре
Лучше бы спать вовремя ложился
🔥5👍3