Собственно кто-что посоветует чтоб было дешево и linux нормально работал? Готовые железяки или ручками собирать самому? Хочется домашнюю файлопомойку без облаков, RAID 1. Хранить планируется около 8 терабайт (сейчас реально 4-5 терабайт, но 3 в запас под всё что может потребоваться). Хорошо если получится использовать не только как бекап систему, но и как своё облако (удалённая сетевая папка, samba, файлокачалка/торрентокачалка, домашний медиасервер (DLNA?), TFTP для локалки, возможно ownCloud, git-репа, пара своих веб-приложений, может легенький сайтик поднять на который не ожидается большая нагрузка, может ещё что-то что я не вспомнил сразу).
Предлагаю вашему вниманию две бесплатные электронные книги. Первая написана мной: «Вредные советы для C++ программистов» (PDF-формат). Это переработанный под печать вариант «60 антипаттернов для С++ программиста». Если вы уже читали 60 антипаттернов, то, пожалуй, читать новый вариант смысла нет. А если нет, то рекомендую — это и возможность местами улыбнуться, и польза.
Теперь про вторую книгу: «Путеводитель C++ программиста по неопределённому поведению». Здесь я был редактором, автор: Дмитрий Свиридкин. Книга опубликована частями, ссылки на которые приведены ниже. Сейчас Дмитрий перерабатывает материал под книжное издание, но это отдельная история.
Часть 1: предисловие, что такое неопределённое поведение, и как оно проявляется, сужающие преобразования и неявное приведение типов.
Часть 2: переполнение целых знаковых чисел, числа с плавающей точкой, integer promotion, char и знаковое расширение.
Часть 3: висячие ссылки, string_view, синтаксический сахар с ложкой дёгтя (range-based for), self-reference, std::vector и инвалидация ссылок.
Часть 4: списки захвата лямбда-функций, кортежи, внезапная мутабельность, неявные ссылки, use-after-move, lifetime extension.
Часть 5: Most Vexing Parse, неконстантные константы, семантика перемещения, std::enable_if_t против std::void_t, забытый return.
Часть 6: эллипсис и функции, operator [], iostreams (счастливой отладки!), оператор запятая, function-try-block, типы «нулевого» размера.
Часть 7: NULL-терминированные строки, std::shared_ptr, (не)явное приведение типов, как передать стандартную функцию и ничего не сломать.
Часть 8: бесконечные циклы и проблема остановки, рекурсия, ложный noexcept, переполнение буфера.
Часть 9: (N)RVO vs RAII, разыменование нулевых указателей, static initialization order fiasco, static inline, нарушение ODR, зарезервированные имена.
Часть 10: тривиальные типы и ABI, неинициализированные переменные, С++20 unbounded ranges, невиртуальные виртуальные функции, VLA.
Часть 11: невалидные указатели, placement new для массивов, data race, повторный захват mutex, сигнало(не)безопасность, как сделать всё правильно и уйти в deadlock.
Часть 12: std::vector::reserve и std::vector::resize, невыровненные ссылки, время жизни и смерти, статический анализ и UB, заключение.
Привет, ЛОР!
А есть ли в природе дешёвые одноплатники (дешевле $100) со встроенным 4G-модемом, которые бы работали на онтопике?
Всё, что удалось найти – либо партией от 1000 штук по индивидуальным запросам, либо от 200 баксов.
По остальным требованиям ничего необычного, думаю, 2 ГБ памяти есть сейчас даже на собаке.
upd: а, ну очевидно, что необходима корректная работа под онтопиком (Debian?).
Всевозможные учебники и книги - это хорошо, но обычно их предлагают купить и часто не совсем дёшево, даже если они описывают базовый уровень. Бесплатным решением, очевидно, является официальная документация. Когда я открыл документацию к python, я был приятно удивлён, что она написана практически как учебник. Для Java вроде бы тоже всё относительно неплохо в этом плане, хотя хотелось бы отдельный оффлайновый pdf.
Мне захотелось скачать себе документацию в подобном виде для C и C++. Зашёл на их официальные сайты, там описание стандарта предлагают получить на сайте ISO за немалые суммы денег. Да и само описание стандарта далеко не для обучения. Хорошо, подумал я, попробую тогда посмотреть документацию к одной из реализаций языка - GCC-CPP, и вижу, что описанное там тоже вовсе не подходит для обучения. Даже описания типов и примеров объявления нет (может плохо искал, но в заголовках не заметил).
Нет, это не тред «подскажите книгу по Сям», таких для начинающих я и сам могу гору насоветовать.
Вопрос следующий: существует ли нормальная доступная бесплатная документация по которой можно изучать C, C++? Официальная документация по другим языкам была бы тоже интересна.
Update
C, C++ Online-ресурсы и учебные пособия для начинающих:
free-programming-books - ресурс содержащий множество книг и статей по программированию, в том числе по C и C++ (там же можно найти ссылку на распространяемую бесплатно автором html-версию книги Eckel B. «Thinking in C++»)
Цикл лекций "Modern Fortran Programming for Chemists and Physicists" (2014 г., отдельные презентации в виде pdf-файлов) от Pekka Manninen (Ph.D., Docent, личная страничка на сайте химического факультета Хельсинкского университета)
Introduction to Modern Fortran - курс лекций Computing Services Department, the University of Liverpool. Насколько я понял, разрешено копировать для самостоятельного обучения ("... its presence here does NOT constitute permission to copy it for any reason or use other than attending the course or using it for personal study").
Деревенец О.В. Песни о Паскале. 2016 (сайт автора) - помимо книги в pdf на сайте доступны сборник задач «А слабо?», ответы к задачам сборника «А слабо?», исходные файлы примеров, задачник «Загогулины для начинающего программиста».
Да-да, LevelDB - это не сервер, а либа. Предположим мы прикрутим к ней некий бинарный протокол и через epoll будем слушать сеть как redis.
Вопрос такой: кто из них выдержит большее число ключей на вставку в секунду? Не беря в рассчёт то, что иногда память кончается, LevelDB это умеет класть на диск порциями (LSM tree), а redis только целиком делать снепшот - это пока не важно.
Как я понимаю, LevelDB вставляет новые ключи в skiplist в памяти, а redis вставляет новые ключи в хеш-табличку и кажется, что второе побыстрее (да, теряется инфа про порядок ключей, сортировку).
Всем привет. Пытаюсь выбрать «идеальный» бэкенд-фреймворк для REST Api либо на Питоне, либо на Go. Конкретные кейсы не озвучу, потому что скажешь «блог» - посоветуют Вордпресс. Выбор между этими языками странный, согласен, но все же. Выбираю между aiohttp (Python), fastapi (Python) и gin/gonic (Golang). Синхронщину типа Flask (Python) я отмёл, потому что, мне кажется, в плане производительности их в 2019 уже не особо перспективно использовать. Тем более, что особой разницы в плане «удобства» разработки, что на Flask, что на aiohttp нет (оба микрофреймворки), а второй явно шустрее. В Django много лишнего, а drf для него медленный очень - тоже отмел. Помогите определиться с выбором, на чем из перечисленного на текущий момент пилить REST Api более перспективно и удобно сайты среднего размера различной тематики у которых фронтенд в виде SPA? Ну, скажем, современный интернет-магазин. Есть ли вообще смысл юзать питоновскую асинхронщину нынче, когда есть го?
В приоритете - гармония между производительностью полученного проекта, моей производительностью в плане скорости разработки и потреблении ресурсов сервера.
Искать работу кодером...не возьмёт никто, а вот просто взять и что-то попробовать сделать полезное и за денежку хотелось бы.
Собственно сабж, думаю будет полезно не только мне.
Совсем недавно я приступил к изучению Linux Device Drivers, третьей редакции. Там сказано, что примеры должны работать с ядром версии 2.6, а у меня 4.10. Какие проблемы могут возникнуть с запуском кода из книги и как их можно избежать?
Вот есть у меня, предположим, какой-то свой объект в разделяемой памяти. Хочу чтобы при его изменении, я мог сделать какой-нибудь вызов, а другое приложение это поймало при помощи epoll. (точнее libev).
Не так давно, но уже и не так недавно встретил несколько проектов
которые лично мне показались ну оочень интересными как в плане реализации таки в плане использования список их небольшой
KORE.io - веб разработка на С. Фреймворк https://kore.io
позволяет делать высокопроизводительные сетевые сервисы, есть механизмы работы с БД, https по умолчанию, вебсокеты и много других плюшек, что позволяет слать всякие нодыжс в топку гореть.
libcello - высокоуровневая надстройка над С http://libcello.org, создана по приколу Даниелем Холденом для упрощения написания прикладного софта на С, есть отключаемый GC, работа со строками, foreach, таблицы, деревья и другие абстрактные типы. Позволяет писать железобетонный код шля в топку Ратоманов с их контролем памяти )
Есть у вас в закромах всякие удобные и полезные приколюхи на С ?
Добрый день, господа.
Скорее всего в сообществе lor есть люди, которые работали со связкой Linux+CAN, возможно кто-то поможет советами.
Я полностью 0 с шиной и не работал с не ни на стороне МК, ни на стороне Linux. Собственно в основном у меня следующие вопросы:
Краткий и сзажий, но информативный мануал ( это и вот это я уже видел, нифига не кратко и сжато). Киньте ссылкой, пожалуйста.
В каком направлении копать по интеграции linux<-->CAN? (очень бы хотелось мануал с простенькими примерами)
Среды разработки/Дебагер (НЕ обязательно open и под ontopic). Имеется в виду не только среды разработки ПО для МК, но и среды дебага схем, где можно мышкой натыкать компоненты и связи, залить прошивку в виртуальный контроллер и посмотреть как оно работает.
Задача: есть одноплатный компьютер Cubieboard (опционально. На его место может стать Эдисон или еще чего-нибудь). К нему, по CAN хочется подключить рассредоточеные контроллеры, которые будут собирать информацию с датчиков, отдавать управляющий сигнал на двигатели.
CAN выбрал по причинам: универсальность, помехозащищенность, популярность.
Ethernet НЕ выбрал по причине: overkill (в моем случае).
сексуальные предпочтения в основном работаю с PIC'ами, не люблю arduino