Автор популярного (300k юзеров) расширения для Хрома для увеличения изображений по ховеру публикует на гитхабе поступающие ему предложения по "монетизации" 👌 (мы-то знаем) своего экстеншна: https://github.com/extesy/hoverzoom/discussions/670
#github #opensource
#github #opensource
GitHub
Temptations of an open-source browser extension developer · extesy hoverzoom · Discussion #670
Over the years, I have received many proposals to monetize this extension so I think I'll just start posting them here for fun (but not for profit). The main reason I continue to maintain this ...
Недавно на моей электронной книжке PocketBook (кстати, рекомендую) почему-то отказывалась открываться одна PDF-ка (вернее открывалась, но не отрисовывалась). Как оказалось, такое бывает не только у меня, но я нашла такой замечательный проект как KOReader (https://github.com/koreader/koreader) с простыми инструкциями по установке и теперь могу читать книжку. Есть поддержка Android • Cervantes • Kindle • Kobo • Linux • Pocketbook • reMarkable. Вооот 😀
#github #opensource
#github #opensource
GitHub
GitHub - koreader/koreader: An ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes…
An ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices - koreader/koreader
🔥1
Никогда не понимала дефолтного поведения git:
Ну делай это по-умолчанию, ведь это нужно в большинстве случаев, нет?
#git
$ git push
fatal: The current branch login has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin login
Ну делай это по-умолчанию, ведь это нужно в большинстве случаев, нет?
#git
Наверное никогда не привыкну к .hpp, да и не понятно зачем так делать 🧐 (изменения конечно для мажорного релиза, ага)
Ссылка: https://github.com/opendocument-app/OpenDocument.core/releases/tag/v3.0.0
#cpp #github
Ссылка: https://github.com/opendocument-app/OpenDocument.core/releases/tag/v3.0.0
#cpp #github
Если вы хотите стать C++ разработчиком, то пожалуйте годный (ну мне так кажется) роадмап (+ английский). Иду по нему, есливчо.
#cpp
https://salmer.github.io/CppDeveloperRoadmap/Russian/
#cpp
https://salmer.github.io/CppDeveloperRoadmap/Russian/
Как вы знаете, мои котятки, в cmake есть 3 способа добавить target:
Все бы ничего, но почему бы не назвать их все *_target?
Ведь так всё более явно, нет? CMake и так сложен для старта...
#cmake
- add_executable
- add_library
- add_custom_target
Все бы ничего, но почему бы не назвать их все *_target?
- add_executable_target
- add_library_target
- add_custom_target
Ведь так всё более явно, нет? CMake и так сложен для старта...
#cmake
Лично я считаю, что auto в c++ нужно использовать только тогда, когда это повышает читаемость, например когда тип уже находится на той же строке кода или тип не так важен, например итератор. Ненавижу когда используют auto для вывода типа результата вызова функции:
Приходится открывать объявление f, чтоб убедиться, что она возвращает то что нужно. Еще мне кажется, что частенько auto это лень кодописателя, перекладываемая на кодочитателя. На мысль написать про
auto натолкнула эта статья https://habr.com/ru/articles/754662/
#cpp
auto r = f();Приходится открывать объявление f, чтоб убедиться, что она возвращает то что нужно. Еще мне кажется, что частенько auto это лень кодописателя, перекладываемая на кодочитателя. На мысль написать про
auto натолкнула эта статья https://habr.com/ru/articles/754662/
#cpp
Хабр
С++: стреляем по ногам по-современному
Мы все привыкли к старому-доброму С++ вместе с его старыми-добрыми погрешностями и милыми недостатками. Мы с ними как-то сжились, научились игнорировать, а самые умные-даже избегать. Но тяжелая...
🔥1
Есть такой канал (не реклама) "Книги для программистов", там делают краткий обзор книг и дают ссылку на скачивание (не делайте так, ок?☺️).
Постов много, книги вроде свежие, но мне что-то ничего не приглянулось, за качество обзоров также не ручаюсь. Поискала тему "CMake" и нашла лишь одну, хотя книг много (позже поделюсь), так что вооот.
Подписчиков: 155k.
Ссылка: https://t.me/progbook
#обзорканалов
Постов много, книги вроде свежие, но мне что-то ничего не приглянулось, за качество обзоров также не ручаюсь. Поискала тему "CMake" и нашла лишь одну, хотя книг много (позже поделюсь), так что вооот.
Подписчиков: 155k.
Ссылка: https://t.me/progbook
#обзорканалов
Telegram
Книги для программистов
Все о книгах из мира IT.
Наши курсы: https://clc.to/CVcXPw
По рекламе: @proglib_adv
Для обратной связи: @proglibrary_feeedback_bot
РКН: https://www.gosuslugi.ru/snet/67931954509aba565214777d
#WXSSA
Наши курсы: https://clc.to/CVcXPw
По рекламе: @proglib_adv
Для обратной связи: @proglibrary_feeedback_bot
РКН: https://www.gosuslugi.ru/snet/67931954509aba565214777d
#WXSSA
Ужас, почему я этого не знала. 😱 Оказывается поток ввода можно связать (
Так, библиотечные cin и cout уже связаны, а потому например приглашение на ввод от
Связать можно и другие потоки, например fstream. Подробности тут: https://en.cppreference.com/w/cpp/io/basic_ios/tie
Алярм: это нет тот tie(), что в <tuple>😉.
#cpp
tie()) с потоком вывода, так что чтение из ввода приведет к сбросу (flush()) буфера потока вывода. Так, библиотечные cin и cout уже связаны, а потому например приглашение на ввод от
cout<<"enter:" гарантированно выведется при запроса на ввод от cin >>val. Связать можно и другие потоки, например fstream. Подробности тут: https://en.cppreference.com/w/cpp/io/basic_ios/tie
Алярм: это нет тот tie(), что в <tuple>😉.
#cpp
Наверное уже многие видели, что в C++ 26 добавят переменную
Что это дает? Например, можно забить на неиспользуемую переменную в цикле, да так что не будет ворнинга от компилятора.
Пример:
А еще теперь можно не ломать голову над названием блокировок (самая мякотка в том, что деструктор вызовется так как вы и ожидали):
#cpp #cpp26
_ , да да прямо как в этом вашем питоне.Что это дает? Например, можно забить на неиспользуемую переменную в цикле, да так что не будет ворнинга от компилятора.
Пример:
std::size_t count = 0;
for (const auto& _: list) {
++ count;
}
А еще теперь можно не ломать голову над названием блокировок (самая мякотка в том, что деструктор вызовется так как вы и ожидали):
std::unique_lock _{list_lock};
Ну и конечно же распаковка кортежей:auto [_, _, value, _] = list.do_something();Больше про эту тему и другие нововведения про C++ 26 расскажет Антон Полухин тут (все примеры оттуда): https://habr.com/ru/companies/yandex/articles/753260/
#cpp #cpp26
👍1
К слову о пиратстве. Это плохо, да и тупо незаконно. Я как-то читала книгу по JS и там в начале было написано, что автор потратил на ее написание целый год фуллтайма и просил (именно просил) её не пиратить, так как жил он все это время на продажи других своих книг. К слову, книгу я эту купила, хотя это было дорого. Но бывают случаи, когда книга старая и ее никак не достать даже в библиотеке, или ее нельзя купить или вы нищий студент и денег тупо нет.
Для таких случаев некоторые нехорошие люди используют Library Genesis, которую находят через поисковик. А вот вы не делайте так, пиратство это зло 😁
Для таких случаев некоторые нехорошие люди используют Library Genesis, которую находят через поисковик. А вот вы не делайте так, пиратство это зло 😁
ТГ-канал любимейшего новостного (и не только) портала об opensource opennet.ru.
Комменты конечно же нужно читать на самом сайте (а также писать, ведь есть аноним), но вот быстро получать новости в любимой тележеньке можно и через канал (официальный он или нет я не знаю).
Подписчиков: 10k
Ссылка: https://t.me/opennet_ru
#обзорканалов
Комменты конечно же нужно читать на самом сайте (а также писать, ведь есть аноним), но вот быстро получать новости в любимой тележеньке можно и через канал (официальный он или нет я не знаю).
Подписчиков: 10k
Ссылка: https://t.me/opennet_ru
#обзорканалов
Telegram
opennet.ru
Новости opennet.ru. Дополнительный канал @opennet_full - полные тексты.
Бесполезное. В C++14 в <iomanip> добавили std::quoted(), которая позволяет обрамлять строку двойными кавычками и экранировать обратным слешем кавычки внутри строки (как в CSV или XML). Пример:
Наверное это также может быть удобным при отладке. Плюс, quoted() можно использовать для обратного процесса (отковычивания), если взять поток ввода, а не вывода.
Подробности: https://en.cppreference.com/w/cpp/io/manip/quoted
#cpp
#include <iomanip>Выведет (да, вот так вот с 3 кавычками и слешом):
std::string str("str\"ing");
std::cout << std::quoted(str)
"str\"ing"
Без quoted выведет: str"ing
Двойные кавычки и слеш можно заменить другими символами, если дефолтное поведение не нравится.Наверное это также может быть удобным при отладке. Плюс, quoted() можно использовать для обратного процесса (отковычивания), если взять поток ввода, а не вывода.
Подробности: https://en.cppreference.com/w/cpp/io/manip/quoted
#cpp