LINUX.ORG.RU

Сообщения KennyMinigun

 

«Елочки» не отрисовываются при ответе на голосование

Форум — Linux-org-ru

Steps to reproduce:

  1. https://www.linux.org.ru/vote-vote.jsp?msgid=14576180
  2. PROFIT!111

Вестимо, где-то лишний escape.

 , ,

KennyMinigun
()

C++ codestyle: когда использовать `struct`

Форум — Development

Касательно code style. Не холивара (struct vs class) ради.

Веду парочку pet-проектов, придерживаюсь одинакового code style в них. Причем, сам code style в процессе разработки изменяется (как я считаю нужным). Сейчас вот задумался над такими пунктами:

  1. struct keyword should be used for types which do not have access specifiers (i.e. all members are public)
  2. struct keyword can also be used for data straightforward objects that provide merely getters and setters
  3. Implicit private section of class should not be used. I.e. the private access specifier should be used explicitly

А почему создал данную тему – я не уверен что написать в ‘‘rationale’’ для данных правил. Т.е. выгдядит, как вкусовщина.

Помогите придать смысла или отказаться от них.

 , ,

KennyMinigun
()

Можно создать голосование на меньше чем 2 пункта

Форум — Linux-org-ru

Сабж: www.linux.org.ru/polls/polls/14670374

Баг? Фича?

 , , ,

KennyMinigun
()

Для std::vector, полезен ли .reserve() перед std::move в конец оного?

Форум — Development

Вопрос о std::move для range: https://en.cppreference.com/w/cpp/algorithm/move

Полезно ли делать .reserve перед тем, как добавлять элементы в конец контейнера с помощью вышеупомянутой функции и std::back_inserter? Или STL сам это уже делает?

std::vector<T> result;
while (someCondition) {
  // ...
  std::vector<T> part = process();
  result.reserve(result.size() + part.size()); // <-- сабж, полезно ли?
  std::move(part.begin(), part.end(), std::back_inserter(result));
}

 

KennyMinigun
()

Всем Disco Dingo, леди и джентельмены

Форум — Talks

Сабж, название следующего выпуска Ubuntu будет Disco Dingo. Танцуем, что ли.

https://www.omgubuntu.co.uk/2018/10/ubuntu-19-04-name-revealed

 , ,

KennyMinigun
()

Палец Линуса^W Мартина

Форум — Talks

Так вот, NVIDIA начали работу над поддержкой EGL Streams в KDE: https://www.phoronix.com/scan.php?page=news_item&px=NVIDIA-KDE-KWin-EGLSt...

 , , ,

KennyMinigun
()

Qt Creator научился распознавать перегруженные операторы

Форум — Development

Компильнул пару часов назад 4.8 (beta2) с git master. Перегруженные операторы неожиданно подсветились. Правда «Follow Symbol Under Cursor» (aka F2) работает только для многосимвольных операторов (напр. ==, +=, <<, ->). По односимвольным не переходит (или мне не удалось найти способ). Надеюсь к официальному выходу 4.8 сделают.

 , ,

KennyMinigun
()

Выбираем Nokia 6.1

Форум — Mobile

Ищу андроидофон по критериям:

  • До $350
  • Минимум bloatware по дефолту
  • Небольшой размер (около 5.2")
  • Хорошее время жизни от батареи

Мое внимание привлек сабжевый телефон (хотя 5.1 тоже вроди ок). Порадовало, что там Android One. Но он немного больше, чем хотелось.

Есть тут владельцы оного? Android 9 Pie уже прилетел? Или стоит дорлатить за 7.1? Что посоветуете?

 , ,

KennyMinigun
()

Я не понимаю git gc

Форум — Development
/tmp/test $ git init
Initialized empty Git repository in /tmp/test/.git/

/tmp/test master # $ git commit --allow-empty -m 'Commit #1'
[master (root-commit) 1dc2d41] Commit #1

/tmp/test master $ git co -b feature
Switched to a new branch 'feature'

/tmp/test feature $ git commit --allow-empty -m 'Commit #2'
[feature f35f72b] Commit #2

/tmp/test feature $ SHA=$(git rev-parse HEAD)

/tmp/test feature $ git co master
Switched to branch 'master'

/tmp/test master $ git show --pretty=oneline $SHA
f35f72b78586ca394dc9cccb33c7fab18d2aa373 Commit #2

sg302447 /tmp/test master $ git branch -D feature
Deleted branch feature (was f35f72b).

/tmp/test master $ git gc --aggressive
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), done.
Total 3 (delta 1), reused 2 (delta 0)

/tmp/test master $ git show --pretty=oneline $SHA
f35f72b78586ca394dc9cccb33c7fab18d2aa373 Commit #2

Почему Commit #2 все еще существует?

 , ,

KennyMinigun
()

В неподтверждённых можно голосовать

Форум — Linux-org-ru

Сабж: www.linux.org.ru/view-all.jsp?section=5

Можно ткнуть любую опцию и нажать «голосовать». Только не видно куда результат идет и считается ли он

Баг или фича?

 , ,

KennyMinigun
()

Линус теперь няшка

Форум — Talks

https://www.phoronix.com/scan.php?page=news_item&px=Linus-Torvalds-New-Po...

Ответ к коммиту, который добавляет драйвер для контроллера BigBen в ядро и включает его по умолчанию:

We do *not* enable new random drivers by default. And we most *definitely* don't do it when they are odd-ball ones that most people have never heard of.

Yet the new «BigBen Interactive» driver that was added this merge window did exactly that.

Just don't do it.

Yes, yes, every developer always thinks that _their_ driver is so special and so magically important that it should be enabled by default. But no. When we have thousands of drivers, we don't randomly pick one new driver to be enabled by default just because some developer thinks it is special. It's not.

So the

default !EXPERT

was completely wrong in commit 256a90ed9e46 («HID: hid-bigbenff: driver for BigBen Interactive PS3OFMINIPAD gamepad»). Please don't do things like this.

Linus

 , ,

KennyMinigun
()

Структура данных для набора одинаковых std::vector

Форум — Development

Есть контейнер типа std::vector<std::vector<T>>. Обычно в нем хранится 3-5 векторов гарантированно одинакого размера (по 2-6 элементов). Хочу, чтоб контейнер находился в одном куске памяти, как какое проще всего сделать? (может уже есть такая структура?)

 ,

KennyMinigun
()

Курица или яйцо

Форум — Talks

JS (Юникод) знает ответ:

["🥚", "🐔"].sort()

Источник (примечание: особо впечатлительным профиль не смотреть): https://twitter.com/aBagorn/status/1051286652663025664

 , ,

KennyMinigun
()

Constexpr if и числа в Clang

Форум — Development

Есть такой код:

int main()
{
  constexpr int flags = 2;
  
  if constexpr (flags & 3) {
    return 0;
  }
  
  return 1;
}
GCC спокойно проглатывает и работает. Clang же противится:
prog.cc:5:17: error: constexpr if condition evaluates to 2, which cannot be narrowed to type 'bool' [-Wc++11-narrowing]
  if constexpr (flags & 3) {
                ^
https://wandbox.org/permlink/P4JWOgkWj8veamrf

Причем без -Werror. Если подать -Wno-c++11-narrowing то тоже работает (как надо).

Кто прав? Баг ли?

P.S. Наиболее похожее что удалось нагуглить вот: https://stackoverflow.com/questions/41253121/strange-behavior-of-narrowing-in...

 , ,

KennyMinigun
()

Странное поведение поиска на некоторых символах

Форум — Linux-org-ru

Если например поискать в комментариях какого-либо пользователя что-то вроди http:// то в результатах получим подсветку только http (т.е. :// вроди как игнорируется).

Самое веселье начинается если пробовать искать http://site в комметариях: в результатах пусто.

Вот например, возьмем такой запрос: www.linux.org.ru/search.jsp?q=http://esxi&range=COMMENTS&interval=ALL...

Результаты пусты, однако там должно быть хотя бы вот это: Krita убивает Gimp (комментарий)

Я подозреваю, что возможно на стороне сервера не вызывается urldecode (и поиск производится по строке как в GET http%3A%2F%2Fesxi)

 , ,

KennyMinigun
()

KDE Plasma 5.14

Новости — KDE
KDE Plasma 5.14
Группа KDE

9 октября 2018 состоялся выпуск KDE Plasma с номером версии 5.14. В этом выпуске много усилий было приложено к улучшению Discover — пакетного менеджера для KDE Plasma. Среди прочего, хотелось бы выделить добавление возможности обновления прошивок из Discover а также едва заметных улучшений графического интерфейса для полее приятного пользования программой. Были переработаны графические эффекты оконного менеджера KWin. А также добавлен новый виджет управления дисплеями.

Полный лог изменений KDE Plasma 5.14 доступен по ссылке.

( читать дальше... )

>>> Официальная новость (на русском)

 ,

KennyMinigun
()

Посоветуйте минимальный Agile Board

Форум — Talks

Всяческие Agile борды на данный момент просто напичканы кнопками, категориями и настройками. Есть ли что-нибудь, чтоб можно было поднять сайтик с минимальным интерфейсом и минимум функций (aka GNOME) чтоб хоть как-то напоминало Agile Board? Т.е. чтоб порог вхождения был ниже плинтуса, и интерфейс не вызывал вопросов «а как тут создать задание?». Cамодельность в каком-нибудь online блокноте (как Google Keep) не подходит: там хоть и просто, но надо все делать самому и помнить кучу правил.

Пока что я осилил такой свой критериев:

  • Минимальное количество телодвижений на типичные действия
  • Отсутствие overengineered bullshit: неиспользуемых полей, непонятных связей, свистелок, перделок etc
  • Однозначность (т.е. как можно малый «просвет» для интерпретации сущностей неподготовленым умом)
  • Не требует обучения пользованию / помнить «howto».

 , ,

KennyMinigun
()

Bash Hackers Wiki

Форум — Development

Наткнулся в сети на вику, которая открыла для меня новые глубины боли Bash. Да так, что «трюки» с арчвики показались мне цветочками...

Короче, сабж: http://wiki.bash-hackers.org

Для оценки ситуации с «белым пушистым зверьком» (aka «песец») в Bash, предлагаю взглянуть хотя б на две странички:

Может кому пригодится...

 , , ,

KennyMinigun
()

Пример, когда с std::launder действительно работает иначе

Форум — Development

Вопрос чисто практический. Пытаюсь собрать примеры кода, которые работают по разному с std::launder и без него.

На cppreference подано 3 примера (в моем понимании):

  1. Подменяется обьект (struct X) с const member (const int X::n) в куче через placement new и доступ к его данным через старый указатель (p) есть UB
  2. Обьект (struct Y) создается в заранее алоцированном пространстве, но с другим типом (std::byte[] s). Использование созданного обьекта используя только reinterpret_cast есть UB.
  3. Метод обьекта подменяет *this, использование обьекта (struct A) по старой ссылке есть UB.

У меня получилось только для пункта 3 собрать пример, когда работа кода отличается: https://wandbox.org/permlink/qi5yoGmIPgeset9I

Для пункта 1 у меня не удается «обмануть» компилятор (я хочу, чтоб он закешировал значение root.next и код вошел в вечный цикл): https://wandbox.org/permlink/A1DDj7KInEKRP4uG

Для пункта 2 пока нет идей откуда может произойти UB.

Есть у кого идеи как увидеть UB из-за неиспользования std::launder? (UBSAN в планах тоже)

 , ,

KennyMinigun
()

«Только для модераторов» в недавней новости

Форум — Linux-org-ru

Линус Торвальдс временно уходит с поста координатора Linux

Странное ограничение (учитывая природу новости). Или обсуждение *только* в Talks? Может тогда закинуть ссылку в коментарии, чтоб меньше искать? (Линус извинился, Линус берёт паузу ). С пометкой «обсуждение в Talks».

Shaman007

 ,

KennyMinigun
()

RSS подписка на новые темы