Немного туп(л,)
84 subscribers
178 photos
26 videos
39 links
Маленький бложег С++ программиста, увлекающегося Rust'ом. Не столько про пргрмрвне, а вообще.
Download Telegram
Немного туп(л,)
Это же канал про пргрмвне? Тогда слушайте! Планета "Шелезяка". Полезных ископаемых нет. Воды нет. Растительности нет. Населена роботами. Кто в детстве смотрел мультфильм "Тайна третьей планеты", про приключения Алисы, должен помнить эту цитату. По сюжету…
Марс - четвёртая по удалённости от Солнца, пустынная и каменистая планета. И да, на ней действительно нет растительности и воды в жидком виде. По крайней мере, насколько нам сегодня известно. При этом, на Марсе бывает, что выпадает иней и идут небольшие снегопады, но они, если я правильно путаю, не водяные. Касательно полезных ископаемых - мы их пока тоже не нашли. Точнее какое-то количество там точно есть, тот же дейтерий, но на той же Луне его больше. Ну и самое главное - Марс действительно населён роботами. На данный момент на Марсе обитают и усиленно трудятся (между прочим без выходных и повышения зарплаты!):

- Curiosity ("Любопытсво") - марсоход, исследующий кратер Гейла, трудится на поверхности не покладая научных приборов с 6 августа 2012 года.
- InSight (Interior Exploration using Seismic Investigations) - посадочный аппарат с сейсмометром, в отличии от остальных обитателей - не перемещается, а только стоит на месте. Тем не менее, выполняет очень важные задачи по изучению Марса, начиная с 26 ноября 2018 года.
- Perseverance ("Настойчивость") - марсоход, поселившийся в районе кратера Езеро с 18 февраля 2021 года.
- Ingenuity ("Изобретательность") - друг и товарищ марсохода Perseverance, маленький вертолётик. Технически на Марс прилетел вместе с марсоходом, но самостоятельно спустился на поверхность 3 апреля 2021 года.
- 祝融 (Чжужун) - первый китайский марсоход, названный в честь китайского бога огня, самый молодой обитатель планеты: высадился на поверхность 14 мая 2021 года в равнине Утопия.
💩1
Немного туп(л,)
Марс - четвёртая по удалённости от Солнца, пустынная и каменистая планета. И да, на ней действительно нет растительности и воды в жидком виде. По крайней мере, насколько нам сегодня известно. При этом, на Марсе бывает, что выпадает иней и идут небольшие снегопады…
Но после упоминания этих молодцов надо обязательно почтить память тех роботов, кто уже завершил свой жизненный путь и обрёл на Марсе вечный покой:

- Марс-2 - аппарат советского производства. К сожалению, он разбился при посадке 27 ноября 1971 года,
- Марс-3 - брат аппарата Марс-2, примарсился 2 декабря 1971 года, но сигнал с орбитальной станцией потерял через 14,5 секунд и не смог передать никакой информации.
- Марс-6, снова советский аппарат, и снова не переживший падения 12 марта 1974 года. Место падения находится где-то в Эритрейском море, или около него, точное место и причины неудачной посадки - не известны.
- Викинг-1, уже американская миссия, в которой был спускаемый аппарат. Это был первый космический аппарат, который успешно сел на поверхность Марса 20 июля 1976 года на западе равнины Хриса ("Золотая равнина"). Там он проработал до 11 ноября 1982 года, а конец миссии был из-за человеческой оплошности: ошибочная команда, отправленная управлением с Земли привела к потере связи.
- Викинг-2, тоже американская миссия со спускаемым аппаратом. Аппарат начал работу на поверхности 3 сентября 1976 года на равнине Утопия, где проработал до 11 апреля 1980 года. Миссия была завершена из-за выхода из строя аккумуляторов.
- В рамках миссии "Mars Pathfinder" на Марсе поселились - стационарная станция и марсоход Sojourner ("Пришелец"), которые работали в долине Арес с 4 июля 1997 года до 27 сентября 1997 года, хотя оконченной миссию признали только 10 марта 1998 года. Предположительно сбой произошёл из-за деградации батарей станции. К слову, сам марсоход теоретически ещё был работоспособен, но из-за отказа станции связаться с ним уже не было возможности.
- Phoenix ("Феникс"), первый обитатель полярного региона Марса. В его задачи входило изучение грунта, атмосферы, проведение метеорологических наблюдений, и поиск следов жизни, а в первую очередь - воды. Успешная посадка произошла 25 мая 2008 года, а последний сеанс связи с ним прошёл 2 ноября 2008 года.
- Spirit ("Дух"), американский ровер, совершивший мягкую посадку 4 января 2004 года и прокатавшийся до 1 мая 2009 года, когда он застрял в песчаной дюне. Потом он продолжал работу, но уже стационарно, до 30 марта 2010 года, когда марсоход не вышел на сеанс связи. Предполагается, что он перешёл в спящий режим из-за нехватки энергии.
- Opportunity ("Возможность") - наверное самый известный обитатель Марса. Посадку ровер совершил 25 января 2004 года в кратере Игл на плато Меридиана. Этот марсоход проехал 45 км по поверхности, что есть абсолютный рекорд среди всех известных нам марсиан. Но, к сожалению, 12 июня 2018 года Оппо перешёл в спящий режим из-за длительной и мощной пылевой бури, которая не давала работать солнечным батареям. 13 февраля 2019 года NASA официально похоронили марсоход. Я тогда не сдержался и даже немного всплакнул, и вы не смеете меня судить...

На этом всё. было ещё много аппаратов, так или иначе связанных с Марсом, кто его целенаправленно изучал, кто сделал пару наблюдений просто пролетая мимо во время манёвров ускорения/торможения, но я перечислил все аппараты, которые достигли поверхности красной планеты.
💩1
Вопрос к знатокам телеграмма: как отключить комментарии к одному конкретному посту на канале? 🤔
💩1
Forwarded from Химия – Просто (Александр Иванов)
Бывают ли научные публикации бредовыми? Ещё как!
Так что, факт публикации и наличие её в базе, ни о чем не говорит.

А вот и ссылочка на эту самую публикации в елайбрари: https://www.elibrary.ru/item.asp?id=37939422
💩1
#achievement unlocked: Чихнув прокусить язык до крови.
😁2😢1💩1
В одном чатике в процессе спора получил прекрасное сообщение. И не могу этого не процитировать здесь.

#quote #rust

Это ты под капот растику не залезал :) а тут коллеги уже залезали. Им надо было. Очень. Вот прям сильно надо было.
Залезли, отключили нахуячили и... ну, да всё порвалось. Писать надо аккратно.
Сделали из рустика такую.. марлю, если можно так выразиться. Дописали там чего-то... чтобы иметь возможно влезть под кожу сущностям, чтобы была возможность рассматривать их как массив элементов типа void в сях, например.

Зачем? Надо было. Я хуй знает, зачем они это хотели. Наверно чтобы выебнуться и сказать, мол, мы не используем C++, мы делаем его из растика. И у безопасТников тут же начинают подворачиваться штанишки.

(с)
💩2😁1
Сейчас я вам расскажу про одну интересную оптимизацию. Нашёл её не я, а мой коллега, но интересной от этого она быть не перестаёт.

#jobbing #cpp #prog

Итак, имелся примерно следующий код на С++:
struct MyType;
using std::vector<MyType> = MyVec;

MyVec storage;

void foo(MyVec& new_elements) {
auto new_capacity = storage.size() + new_elements.size();
storage.reserve(new_capacity);

for (const auto& elem : new_elements) {
// do something with elem
storage.push_back(elem);
}
}

И этот код работал медленно. Даже нет, он работал оооооочень медленно. И мы уверены, что проблема именно тут, на эту функцию показали все анализаторы и профилировщики.

Коллега ускорил это дело примерно в 1000 (sic!) раз, удалив одну строчку.
Угадаете какую?

Правильный ответ будет в следующем посте с объяснением, почему так произошло :)
💩1
Немного туп(л,)
Сейчас я вам расскажу про одну интересную оптимизацию. Нашёл её не я, а мой коллега, но интересной от этого она быть не перестаёт. #jobbing #cpp #prog Итак, имелся примерно следующий код на С++: struct MyType; using std::vector<MyType> = MyVec; MyVec storage;…
Я вас слегка обманул, и ответ будет не здесь, а в следующем посте :)

Потому что, на самом деле, информации, данной в предыдущем посте, недостаточно для вынесения окончательного решения.
Есть ещё один важный участок кода, примерно такой:
struct MyAnotherType;

std::mutex mtx;
std::vector<MyAnotherType> buffer;

// Некоторая функция, для проверки, что буфер готов и с ним можно работать тут
bool buffer_check();

void bar() {
while (true) { // Напомню, что бесконечный цикл это UB, но тут оставлю для простоты
std::this_thread::sleep_for(1000ms);
std::lock_guard<std::mutex> guard(mtx);

std::vector<MyType> new_elements(buffer.size());
for (const auto& elem : buffer) {
// Transform elem from MyAnotherType to MyType
new_elements.push_back(elem);
}
foo(new_elements);
buffer.clear();
}
}

То есть видно, что есть многопоточка. Могу заверить, что тут всё корректно и гонок данных нет.
Так же, естественно, в боевом коде не просто бесконечный цикл со слипом, всё сложнее, но суть именно такая.
И я снова предлагаю вам догадаться, в чём же проблема. Функция bar() и всё, с ней связанное, не изменялись. Была удалена только одна строчка в функции foo().
💩2
Немного туп(л,)
Я вас слегка обманул, и ответ будет не здесь, а в следующем посте :) Потому что, на самом деле, информации, данной в предыдущем посте, недостаточно для вынесения окончательного решения. Есть ещё один важный участок кода, примерно такой: struct MyAnotherType;…
А вот теперь ответ:
Была удалена строчка storage.reserve(new_capacity);. Ну, ещё можно удалить подсчёт new_capacity, но это и оптимизатор умеет выкидывать.

Ну и, собственно, почему так произошло? А потому что, процесс подготовки буфера за время между итерациями цикла не успевал напихать туда много данных. И в большинстве случаев из буфера извлекалось всего 1-2 элемента (чаще 1).

Получается, мы приходим в функцию foo(), смотрим, что надо увеличить размер на 1 элемента, делаем реаллокацию, часто приводящую к перемещению и всех старых данных в памяти, и вставляем новый элемент.
На следующей итерации, мы снова приезжаем в foo(), снова реаллоцируем на 1 дополнительный элемент и так далее.

Почему помогло удаление? Потому что стандартное поведение std::vector при push'е следующее:
А) Если capacity достаточно - просто вставляем элемент.
Б) Если capacity закончилось - реаллоцируем old_capacity * 2 (а не old_capacity + 1, как было в нашем "ручном" коде).

Собственно, тот, кто это изначально написал - не дурак. Он всё сделал так-то правильно, согласно правил хорошего тона: хочешь расширить одну коллекцию данными из другой коллекции - сначала сделай resize(), чтобы не было аллокаций в цикле при вставлении.
Но он не учёл особенность исходных данных, которые попадают сюда. Более того, есть подозрение, что раньше тут таких проблем не было, оно вполне могло появиться вследствие рефакторинга функции bar(). Например, раньше здесь всё могло крутиться в одном потоке и buffer всегда был намного сильнее наполнен. Или данные могли лежать немного другие, которые строились намного быстрее, поэтому и проблем не было.

Так что такие дела. Профилируйте, и ускорены будете ☝️

P.S. Каким-то образом у меня стало 20 подписчиков, именно поэтому я решил хоть что-то новое написать 😅
💩3
Супруга заказала себе какой-то крем из Кореи. Мне стоит переживать?..

#irl #haha
😁6💩1
Это ведь блог про пргрмрвне? Тогда держите заметку про букву Ё!

Нелюбимая многими буква. Писать её от руки долго, на стандартной раскладке русскоязычной клавиатуры она находится в неудобном углу, на виртуальных клавиатурах мобильных устройств она спрятана за долгим нажатием буквы е, а словари Т9 автозамены большинства таких клавиатур эту букву не содержат. Был прецедент на работе, когда наши методисты потребовали от меня перелопатить весь GUI одного из наших приложений, чтобы удалить все буквы ё оттуда, потому что военная приёмка заворачивала документ назад на редактирование, когда их обнаруживала. И есть вчитаться в кучу технической или юридической литературы, то буквы ё вы там тоже не увидите. Более того, где-то может промелькнуть мнение, что буква ё вообще запрещена к использованию в официальных документах. Однако, истина, как всегда, где-то по середине.

Начну с истории и разберу постулат, мол "буква ё - исконно древняя русская буква и использовать её надо всегда". Нет, это не так.
Использование звука [jo] долгое время считалось просторечным и недопустимым для лиц знатных кровей и достойных занятий. Однако в итоге эта литера была введена в отечественную типографию в 1797 году. Заметьте, литера, не буква. То есть в азбуке такой буквы всё ещё не было. Потом она из из типографии снова пропала, ибо было сложно реализовать надстрочные символы в ограниченной по высоте строке, да и само изготовление типографских литер с такими надстрочными символами было трудоёмким.

В общем, буква ё точно не "исконно" русская. То есть правы те, кто считают, что букву ё вообще использовать не нужно? Тоже нет. Вернёмся к историческому экскурсу.

Знаковое событие произошло в конце 1917 года, когда нарком просвещения А. В. Луначарский опубликовал декрет, где среди прочего было написано: "Признать желательным, но необязательным употребление буквы ё". Однако, в октябре 1918 года этот декрет повторно публиковали и этот пункт удалили. Недолго музыка играла, недолго фраер танцевал.
Полноценно в алфавит буква ё (а вместе с ней и буква й) вошла только 24 декабря 1942 года приказом народного комиссара просвещения РСФСР В. П. Потёмкина, и было утверждено её обязательное использование.

Так всё-таки значит используем?!
Та не тарапысь!

В 1956 году её снова немного "отменили" :) Точнее не совсем: было запрещено последовательное употребление буквы ё. Правда я не просто так выделил слово последовательное.
Использование буквы может быть последовательным, а может быть выборочным. Последовательное использование значит, что буква ё используется постоянно, в каждом слове, где присутствует соответствующий ей звук (так, как это делаю я). Выборочное же использование подразумевает использование буквы ё только в тех словах, где без неё возможно разночтение. Например: "Вот тут мы и передохнем", или "Вот тут мы и передохнём". Семантический смысл совершенно различный. Ещё букву ё было обязательно использовать в словарях (вместо ударения), детской образовательной литературе и малоизвестных словах (например, вы знали, что есть река Олёкма?).

Окей, значит используем, но редко, а я, такой-сякой дурак, пишу её везде и нарушаю нормы и правила русского языка? Тоже нет ;)
Пришёл прекрасный 2006 год. Тогда и солнце было ярче, и трава зеленее, и постановлением Правительства РФ от 23.11.2006 г. № 714 «О порядке утверждения норм современного русского литературного языка при его использовании в качестве государственного языка РФ, правил русской орфографии и пунктуации» было установлено, что букву ё необходимо использовать там, где возможны разночтения (всё как и раньше, а так же имена людей, фамилии и имена собственные) и рекомендуется выборочное использование, но при этом по желанию автора (или редактора) любая книга может быть напечатана с последовательным использованием буквы ё! Аллилуйя! Я - автор, как хочу, так и пишу 🌚
🔥2💩1
Немного туп(л,)
Это ведь блог про пргрмрвне? Тогда держите заметку про букву Ё! Нелюбимая многими буква. Писать её от руки долго, на стандартной раскладке русскоязычной клавиатуры она находится в неудобном углу, на виртуальных клавиатурах мобильных устройств она спрятана…
Подводя итоги: если вы пишите курсовую, реферат, диплом, техническую документацию, руководство пользователя - вам необходимо использовать букву ё выборочно. Если общаетесь в чатике, ведёте свой блог, решили напечатать книгу - как хотите, но помните: если вы решили использовать букву ё последовательно, но в каком-то одном слове её забудете, то горе вам, посыпайте голову пеплом, я найду это и ткну вас в это место.

При подготовке данной заметки были использованы:
1. Википедия
2. Хабр
👍1💩1
Forwarded from Seer Iλusha aka Vennik
fn you_can_not_call_me<T: Copy + Drop>() {}
💩1
🔥3💩1
У меня на хабре около 1400 статей в закладках... Легко догадаться, что в основном я их туда "кладу", но не читаю 😅 Хотя иногда - всё же читаю.

Например, сейчас я выудил из закладок статейку "О конце времен. Может ли время закончиться?"
Сама статейка не очень научна, как мне кажется (я ненастоящий сварщик физик, чтобы иметь смелость о чём-то действительно аргументированно спорить в этом вопросе), но один момент мне очень понравился.

Если кратко: автор обращается к псевдоевклидову пространству-времени, координаты в котором представлены в виде x^2 + y^2 + z^2 - c^2 t^2, где x, y, z - привычные координаты трёхмерного пространства, c - скорость света в вакууме, а t - время. Далее переходит к формуле x^2 + y^2 + z^2 + K t^2 и допускает, что K плавно со временем меняется от -1 до +1.
И вот при таком допущении, по заверению автора, появляется интересная штука: при уменьшении по модулю значения K внутреннему наблюдателю, считающему K (то есть скорость света) константой, начинает казаться, что вселенная расширяется, причём с ускорением. И лишь в момент, когда K достигнет нуля, то есть вселенная достигнет координатной сингулярности, и начнёт расти (напомню, что изначально K было меньше нуля), мы придём к обычному четырёхмерному евклидову пространству и увидим, что все объекты стоят на своих местах и никуда не двигались (точнее пространство не расширялось).

Мне нравятся такие предположения, потому что они выглядят простыми. Это как переход от геоцентрической солнечной системы к гелиоцентрической.
Однако у этой статьи есть нюанс, кажется нарушается принцип причинности, а это немножечко проблема, но всё ещё #твёрдый_факт.

#science #physics
💩1
Когда я заканчивал перед сном оформлять вчерашнюю запись, я вспомнил, что лет 6 назад что-то прикольное и связанное со скоростью света я публиковал на своей странице в ВК. Учитывая, что из ВК я слинял, имеет смысл перенести эту запись сюда 👀

#old #science #physics

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

Как вы знаете (хотя может и не знаете, но тогда сейчас узнаете) при приближении скорости перемещения тела к скорости света начинает наблюдаться эффект "замедления времени" (назовём это так). То есть тело, которое ускорено до околосветовой скорости проживает меньшее количество времени за то же время (прикольно звучит, да?). Есть даже "парадокс двух близнецов", суть которого такова: возьмём двух братьев близнецов и одного отправим в космос на околоземную орбиту. Продержим его там годик-другой, после чего вернём на Землю. И весь прикол в том, что теперь эти братья близнецы будут сильно отличаться: тот, что вернулся из космоса будет намного моложе того, что оставался на Земле (ну, не то чтобы "намного", но это уже можно будет отличить).

Но попрошу заметить, что наш космонавт не приближался к околосветовой скорости, а был очень далёк от неё: скорость движения МКС, например, по орбите Земли составляет 27'700 км/ч (или 7,69 км/с), в то время как скорость света составляет около 300'000 км/с. Таким образом, можно сделать вывод, что любое (подчеркну ЛЮБОЕ) увеличение скорости перемещения приводит к замедлению старения.

Данный вывод можно было бы использовать, чтобы массово начать продавать спорткары или заманивать людей заниматься бегом, но нет. Видите-ли, вы будете ехать (бежать) по поверхности планеты, которая, внимание, вращается. А когда вы просто стоите, вы уже имеете какую-то линейную скорость. А значит, если вы начнёте двигаться противоположно вращению Земли, вы свою конечную линейную скорость только уменьшите. А добавьте сюда ещё вращение планеты вокруг Солнца. И вращение Солнца вокруг центра Млечного Пути. И движение Млечного Пути в пределах нашей вселенной. И ещё расширение этой самой вселенной. И так далее и тому подобное.

Подводя итоги: если вы будете быстрее перемещаться в пространстве, возможно вы проживёте на пару секунд подольше. Но это не точно.

И это #твёрдый_факт.
💩1
О, нашёл на своей стене в ВК ещё один #твёрдый_факт!

#quote #readit #old

Допустим, что Вселенная бесконечна. И что во Вселенной бесконечно много планет, просто потому, что в бесконечном пространстве им всем хватает места.

Однако не все из них населены (но, как минимум, одна точно). Следовательно, должно существовать конечное число населённых планет. Любое конечное число, поделённое на бесконечность, стремится к нулю так быстро, что результат просто невозможно заметить, так что в среднем население населённой планеты в этой Вселенной, можно сказать, равно нулю.

Отсюда следует, что население всей Вселенной тоже равно нулю, а те, кто встречается вам время от времени - только продукт вашего больного воображения.

© Дуглас Адамс, Ресторан "У конца Вселенной" в переводе В. Филиппова (с небольшими ремарками вашего покорного)
💩1
Ремарка про "твёрдые факты"

Нужно понимать, что они не совсем научны, особенно утверждение Дугласа Адамса. Однако они забавны и способны у юношеского пытливого ума разжечь интерес к физике.

А вообще само выражение "твёрдый факт" из замечательного мультфильма "По ту сторону изгороди". Крайне рекомендую к просмотру.

P.S. Жена, может пересмотрим мультфильм, а? 🌚
💩1
Тронулись! Мы все тронулись!
💩2😁1