Решил такой сесть попргрмрвать вечерком перед сном. Чуть-чуть, буквально пол часика. И уже 15 минут обновляется CLion... Когда я уже окончательно перелезу на слакварь, и чтобы никаких этих ваших автообновлений, а?
💩1
Немного туп(л,)
Решил такой сесть попргрмрвать вечерком перед сном. Чуть-чуть, буквально пол часика. И уже 15 минут обновляется CLion... Когда я уже окончательно перелезу на слакварь, и чтобы никаких этих ваших автообновлений, а?
У меня ещё и версия Rust'а старая... А ещё мне нужен nightly-тулчейн, а его почему-то нет... Крч сел не попргрмрвать, а обновить тулзы 👍
💩1
Это же канал про пргрмвне? Тогда слушайте!
К чему я развожу эти "интриги", если вы и так могли догадаться по приложенной картинке....
#astro #truestory
Планета "Шелезяка". Полезных ископаемых нет. Воды нет. Растительности нет. Населена роботами.Кто в детстве смотрел мультфильм "Тайна третьей планеты", про приключения Алисы, должен помнить эту цитату. По сюжету команда главных героев получает сигнал SOS с планеты "Шелезяка" и прежде чем отправиться на неё помогать пославшим сигнал, запрашивают у бортового компьютера информацию об этой планете. Но не суть важно, что там происходит дальше. Сейчас я пришёл, чтобы рассказать вам, что планета, полностью соответствующая описанию Шелезяки из мультфильма, существует в нашем с вами мире. И это... Марс.
👍1💩1
Немного туп(л,)
Это же канал про пргрмвне? Тогда слушайте! Планета "Шелезяка". Полезных ископаемых нет. Воды нет. Растительности нет. Населена роботами. Кто в детстве смотрел мультфильм "Тайна третьей планеты", про приключения Алисы, должен помнить эту цитату. По сюжету…
Марс - четвёртая по удалённости от Солнца, пустынная и каменистая планета. И да, на ней действительно нет растительности и воды в жидком виде. По крайней мере, насколько нам сегодня известно. При этом, на Марсе бывает, что выпадает иней и идут небольшие снегопады, но они, если я правильно путаю, не водяные. Касательно полезных ископаемых - мы их пока тоже не нашли. Точнее какое-то количество там точно есть, тот же дейтерий, но на той же Луне его больше. Ну и самое главное - Марс действительно населён роботами. На данный момент на Марсе обитают и усиленно трудятся (между прочим без выходных и повышения зарплаты!):
- Curiosity ("Любопытсво") - марсоход, исследующий кратер Гейла, трудится на поверхности не покладая научных приборов с 6 августа 2012 года.
- InSight (Interior Exploration using Seismic Investigations) - посадочный аппарат с сейсмометром, в отличии от остальных обитателей - не перемещается, а только стоит на месте. Тем не менее, выполняет очень важные задачи по изучению Марса, начиная с 26 ноября 2018 года.
- Perseverance ("Настойчивость") - марсоход, поселившийся в районе кратера Езеро с 18 февраля 2021 года.
- Ingenuity ("Изобретательность") - друг и товарищ марсохода Perseverance, маленький вертолётик. Технически на Марс прилетел вместе с марсоходом, но самостоятельно спустился на поверхность 3 апреля 2021 года.
- 祝融 (Чжужун) - первый китайский марсоход, названный в честь китайского бога огня, самый молодой обитатель планеты: высадился на поверхность 14 мая 2021 года в равнине Утопия.
- 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 официально похоронили марсоход. Я тогда не сдержался и даже немного всплакнул, и вы не смеете меня судить...
На этом всё. было ещё много аппаратов, так или иначе связанных с Марсом, кто его целенаправленно изучал, кто сделал пару наблюдений просто пролетая мимо во время манёвров ускорения/торможения, но я перечислил все аппараты, которые достигли поверхности красной планеты.
- Марс-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
Так что, факт публикации и наличие её в базе, ни о чем не говорит.
А вот и ссылочка на эту самую публикации в елайбрари: https://www.elibrary.ru/item.asp?id=37939422
💩1
В одном чатике в процессе спора получил прекрасное сообщение. И не могу этого не процитировать здесь.
#quote #rust
(с)
#quote #rust
Это ты под капот растику не залезал :) а тут коллеги уже залезали. Им надо было. Очень. Вот прям сильно надо было.
Залезли, отключили нахуячили и... ну, да всё порвалось. Писать надо аккратно.
Сделали из рустика такую.. марлю, если можно так выразиться. Дописали там чего-то... чтобы иметь возможно влезть под кожу сущностям, чтобы была возможность рассматривать их как массив элементов типа void в сях, например.
Зачем? Надо было. Я хуй знает, зачем они это хотели. Наверно чтобы выебнуться и сказать, мол, мы не используем C++, мы делаем его из растика. И у безопасТников тут же начинают подворачиваться штанишки.
(с)
💩2😁1
Сейчас я вам расскажу про одну интересную оптимизацию. Нашёл её не я, а мой коллега, но интересной от этого она быть не перестаёт.
#jobbing #cpp #prog
Итак, имелся примерно следующий код на С++:
И этот код работал медленно. Даже нет, он работал оооооочень медленно. И мы уверены, что проблема именно тут, на эту функцию показали все анализаторы и профилировщики.
Коллега ускорил это дело примерно в 1000 (sic!) раз, удалив одну строчку.
Угадаете какую?
Правильный ответ будет в следующем посте с объяснением, почему так произошло :)
#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;…
А вот теперь ответ:
Была удалена строчка
Ну и, собственно, почему так произошло? А потому что, процесс подготовки буфера за время между итерациями цикла не успевал напихать туда много данных. И в большинстве случаев из буфера извлекалось всего 1-2 элемента (чаще 1).
Получается, мы приходим в функцию
На следующей итерации, мы снова приезжаем в
Почему помогло удаление? Потому что стандартное поведение
А) Если
Б) Если
Собственно, тот, кто это изначально написал - не дурак. Он всё сделал так-то правильно, согласно правил хорошего тона: хочешь расширить одну коллекцию данными из другой коллекции - сначала сделай
Но он не учёл особенность исходных данных, которые попадают сюда. Более того, есть подозрение, что раньше тут таких проблем не было, оно вполне могло появиться вследствие рефакторинга функции
Так что такие дела. Профилируйте, и ускорены будете ☝️
P.S. Каким-то образом у меня стало 20 подписчиков, именно поэтому я решил хоть что-то новое написать 😅
Была удалена строчка
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
Это ведь блог про пргрмрвне? Тогда держите заметку про букву Ё!
Нелюбимая многими буква. Писать её от руки долго, на стандартной раскладке русскоязычной клавиатуры она находится в неудобном углу, на виртуальных клавиатурах мобильных устройств она спрятана за долгим нажатием буквыТ9 автозамены большинства таких клавиатур эту букву не содержат. Был прецедент на работе, когда наши методисты потребовали от меня перелопатить весь GUI одного из наших приложений, чтобы удалить все буквы
Начну с истории и разберу постулат, мол "буква
Использование звука
В общем, буква
Знаковое событие произошло в конце 1917 года, когда нарком просвещения А. В. Луначарский опубликовал декрет, где среди прочего было написано: "Признать желательным, но необязательным употребление буквыНедолго музыка играла, недолго фраер танцевал.
Полноценно в алфавит буква
Так всё-таки значит используем?!
Та не тарапысь!
В 1956 году её снова немного "отменили" :) Точнее не совсем: было запрещено последовательное употребление буквы
Использование буквы может быть последовательным, а может быть выборочным. Последовательное использование значит, что буква
Окей, значит используем, но редко, а я, такой-сякой дурак, пишу её везде и нарушаю нормы и правила русского языка? Тоже нет ;)
Пришёл прекрасный 2006 год. Тогда и солнце было ярче, и трава зеленее, и постановлением Правительства РФ от 23.11.2006 г. № 714 «О порядке утверждения норм современного русского литературного языка при его использовании в качестве государственного языка РФ, правил русской орфографии и пунктуации» было установлено, что букву
Нелюбимая многими буква. Писать её от руки долго, на стандартной раскладке русскоязычной клавиатуры она находится в неудобном углу, на виртуальных клавиатурах мобильных устройств она спрятана за долгим нажатием буквы
е
, а словари ё
оттуда, потому что военная приёмка заворачивала документ назад на редактирование, когда их обнаруживала. И есть вчитаться в кучу технической или юридической литературы, то буквы ё
вы там тоже не увидите. Более того, где-то может промелькнуть мнение, что буква ё
вообще запрещена к использованию в официальных документах. Однако, истина, как всегда, где-то по середине.Начну с истории и разберу постулат, мол "буква
ё
- исконно древняя русская буква и использовать её надо всегда". Нет, это не так.Использование звука
[jo]
долгое время считалось просторечным и недопустимым для лиц знатных кровей и достойных занятий. Однако в итоге эта литера была введена в отечественную типографию в 1797 году. Заметьте, литера, не буква. То есть в азбуке такой буквы всё ещё не было. Потом она из из типографии снова пропала, ибо было сложно реализовать надстрочные символы в ограниченной по высоте строке, да и само изготовление типографских литер с такими надстрочными символами было трудоёмким.В общем, буква
ё
точно не "исконно" русская. То есть правы те, кто считают, что букву ё
вообще использовать не нужно? Тоже нет. Вернёмся к историческому экскурсу.Знаковое событие произошло в конце 1917 года, когда нарком просвещения А. В. Луначарский опубликовал декрет, где среди прочего было написано: "Признать желательным, но необязательным употребление буквы
ё
". Однако, в октябре 1918 года этот декрет повторно публиковали и этот пункт удалили. ё
(а вместе с ней и буква й
) вошла только 24 декабря 1942 года приказом народного комиссара просвещения РСФСР В. П. Потёмкина, и было утверждено её обязательное использование.Так всё-таки значит используем?!
Та не тарапысь!
В 1956 году её снова немного "отменили" :) Точнее не совсем: было запрещено последовательное употребление буквы
ё
. Правда я не просто так выделил слово последовательное.Использование буквы может быть последовательным, а может быть выборочным. Последовательное использование значит, что буква
ё
используется постоянно, в каждом слове, где присутствует соответствующий ей звук (так, как это делаю я). Выборочное же использование подразумевает использование буквы ё
только в тех словах, где без неё возможно разночтение. Например: "Вот тут мы и передохнем", или "Вот тут мы и передохнём". Семантический смысл совершенно различный. Ещё букву ё
было обязательно использовать в словарях (вместо ударения), детской образовательной литературе и малоизвестных словах (например, вы знали, что есть река Олёкма?).Окей, значит используем, но редко, а я, такой-сякой дурак, пишу её везде и нарушаю нормы и правила русского языка? Тоже нет ;)
Пришёл прекрасный 2006 год. Тогда и солнце было ярче, и трава зеленее, и постановлением Правительства РФ от 23.11.2006 г. № 714 «О порядке утверждения норм современного русского литературного языка при его использовании в качестве государственного языка РФ, правил русской орфографии и пунктуации» было установлено, что букву
ё
необходимо использовать там, где возможны разночтения (всё как и раньше, а так же имена людей, фамилии и имена собственные) и рекомендуется выборочное использование, но при этом по желанию автора (или редактора) любая книга может быть напечатана с последовательным использованием буквы ё
! Аллилуйя! Я - автор, как хочу, так и пишу 🌚🔥2💩1
Немного туп(л,)
Это ведь блог про пргрмрвне? Тогда держите заметку про букву Ё! Нелюбимая многими буква. Писать её от руки долго, на стандартной раскладке русскоязычной клавиатуры она находится в неудобном углу, на виртуальных клавиатурах мобильных устройств она спрятана…
Подводя итоги: если вы пишите курсовую, реферат, диплом, техническую документацию, руководство пользователя - вам необходимо использовать букву , я найду это и ткну вас в это место .
При подготовке данной заметки были использованы:
1. Википедия
2. Хабр
ё
выборочно. Если общаетесь в чатике, ведёте свой блог, решили напечатать книгу - как хотите, но помните: если вы решили использовать букву ё
последовательно, но в каком-то одном слове её забудете, то горе вам, посыпайте голову пепломПри подготовке данной заметки были использованы:
1. Википедия
2. Хабр
👍1💩1
Forwarded from Seer Iλusha aka Vennik
fn you_can_not_call_me<T: Copy + Drop>() {}
💩1