Вопрос по стандартам синтаксиса C++
Навеяно i++ + i++
Вот есть int a = 1
и int b = 3
.
Какой результат должен быть у a+++b
? 4 или 5?
Иными словами, компилятор должен воспринимать это как (a++) + b
или как a + (++b)
?
Навеяно i++ + i++
Вот есть int a = 1
и int b = 3
.
Какой результат должен быть у a+++b
? 4 или 5?
Иными словами, компилятор должен воспринимать это как (a++) + b
или как a + (++b)
?
Состоялся выпуск Mayo, программы для просмотра и конвертирования 3D-файлов. Поддерживается довольно много форматов, среди них STEP, IGES и STL.
( читать дальше... )
>>> Подробности
Привет
Достаточно часто создаются темы, где люди думают переходить на Gentoo и хотят уточнить некоторые моменты. Чтобы сэкономить время себе и другим, решил создать этот топик, в котором буду собирать ответы на частые вопросы.
TL; DR: Для тех, кто думает перейти на Gentoo (комментарий)
В каких случаях имеет смысл выбирать Gentoo:
1. Вы любите настраивать систему под себя. В Gentoo есть больше возможностей по кастомизации системы в сравнении с многими другими дистрибутивами: USE флаги, параметры компиляции, поддержка пользовательских патчей в пакетном менеджере, хуки пакетного менеджера (вставка своих шагов на этапе установки пакетов), игры с версиями приложений и/или зависимостей, игры с альтернативными имплементациями (openrc/systemd/..., rsyslog/syslog-ng/metalog, slang/ncruses, dhcpcd/dhclient/...).
2. Вы хотите обучиться основам Линукс. Установка Gentoo невозможна без практического понимания базовых принципов Линукс: интерфейс командной строки, chroot, работа с диском (MBR, GPT, возможно LVM, возможно шифрование, типы файловых систем, параметры монтирования и т. п.), настройка сети (WiFi/Ethernet, DHCP, ifconfig/ip, выбор между wicd/NetworkManager/sysinit и т. п.), ядро (конфигурация/компиляция/установка, firmware, внешние модули aka @modules-rebuild, возможно параметры при запуске и т. п.), графический сервер (Xorg/wayland, драйвера) и др. Большинство дистрибутивов скрывают это за инсталлятором, но в Gentoo вам придется столкнуться с этим непосредственно.
3. Требуется система максимально оптимизированная под определённую платформу или нефункциональные требования: минимальный размер (embedded), минимальный отклик (банковские системы, игровые сервера), максимальное быстродействие в конкретных областях (обработка видео потоков) и т. п. Стоит заметить, что Gentoo имеет смысл выбирать только в том случае, когда нет дистрибутива уже заточенного под эти требования, или он чем-то не устраивает.
В остальных случаях Gentoo скорее всего не лучший выбор, разве что Just for Fun.
Сильные стороны Gentoo:
#1 Gentoo очень гибкая и всенастраиваема
Пример того что в Gentoo делается просто:
- Использовать openrc вместо systemd или наоборот; pulseaudio или без него
- Наложить кастомный патч; пример когда это нужно
- Подключить или отключить такие вещи как vaapi, vdpau, opencv и т. п.
- Иметь несколько веток софта; уточню, что это работает только для определённых пакетов; например можно одновременно установить python 2.7, 3.4, 3.5 или qt4 и qt5, но нельзя одновременно установить qt 5.7 и 5.8
#2 Очень удобный и функциональный пакетный менеджер
Примеры удобных фич:
- Прервать установку (вплоть до перегрузки компьютера), а потом ее продолжить. Можно продолжить с последнего пакета (emerge --resume
), продолжить но пропустить последний пакет, например, если его установка прервалась с ошибкой (emerge --resume --skipfirst
, некоторые нюансы); для больших пакетов можно продолжить саму компиляцию (ebuild <полный путь и имя файла>.ebuild merge
).
- Когда при установке обновляется конфиг приложения, определяется редактировался ли предыдущий конфиг пользователем. Если да, конфиг не перезаписывается, а кладётся радом, и выводится сообщение пользователю с предложением обновить конфиг.
- Обновить всю систему, но исключить некоторые пакеты (удобно для исключения больших пакетов из ежедневного обновления)
- Почистить зависимости - удалить те пакеты, которые больше никому не нужны.
- Поскольку ebuild - текстовый файл, то можно пропарсить на предмет требований к количеству ресурсов для установки:
$ for F in $(find /usr/portage -name "*.ebuild") ; do REQ=$(grep "CHECKREQS" "$F") ; if [[ -n "$REQ" ]]; then echo -e "\n$F\n$REQ" ; fi; done
#3 Хорошая документация, по крайней мере на английском. Более того, поскольку Gentoo-специфичные утилиты являются лишь надстройкой на generic механизмами, документация от других дистрибутивов (например от Arch) в большинстве случаев тоже подходит.
Опрос 2014: У какого дистрибутива лучшая документация
#4 Достаточно свежий софт, много сторонних репозиториев.
Список сторонних репозиториев
Gentoo - rolling release, а значит как только новая версия конкретного софта появилась в репозитории, её можно установить.
Но здесь не имеется ввиду, что как только новая версия зарелизилась, она моментально становится доступна в основном дереве; лаг есть, но он как правило не большой, хотя зависит от пакета. В тестинг ветке новые версии появляются раньше. Кроме того мейнтейнеры Gentoo могут маскировать некоторые версии, если в них обнаруживаются серьезные баги. Однако всегда можно размаскировать нужную версию. Кроме того для некоторых пакетов есть -live версии, когда исходники скачиваются напрямую из github или аналога.
Пример когда «у меня не самый свежий софт в Gentoo»
#5 Полный порядок в системе, ничего лишнего - эстетическое удовольствие, плюс возможно можно немного улучшить перформанс
#6 В процессе установки и эксплуатации получаешь полное понимание как работает система, а значит возникающие проблемы решаются быстро. На самом деле без должного знания Линукса (или желания его узнать в процессе) Gentoo нормально не установить.
Недостатки
#1 Сложная и долгая первичная установка. Если устанавливать в первый раз, нужно готовиться потратить несколько дней. Для опытных - несколько часов + компиляция.
Время установки (компиляции) Gentoo, еще немного цифр по большим пакетам
#2 Пакетный менеджер хоть и удобный, но очень медленный
#3 Если не обновлять систему долго (полгода и более), то сложность обновления сопоставима с установкой новой системы. Есть мнение, что emerge-webrsync --revert=yyyymmdd
должен помочь (лично я не проверял).
Особенности
#1 Высокий порог входа; дистрибутив не для новичков. Если человек не комфортно чувствует себя в командной строке, никогда не компилировал ядро, не разбивал диски на разделы, не привык изучать докуменацию, вчитываться в сообщения и анализировать логи, то Gentoo покажется сложной в обслуживании, а возникающие проблемы будут списываться на дистрибутив.
#2 Обновляться нужно часто.
#3 Основные фичи - в командной строке. Для тех, кто не привык работать в командной строке, это будет минусом. А для тех, кто комфортно чувствует себя в командной строке, это будет плюсом, так как работа в командной строке более эффективна, а типовые сценарии можно обернуть в скрипты и еще больше сократить время на обслуживание системы.
#4 Есть две ветки: stable и testing. В stable меньше шансов встретить проблему, но в testing более свежий софт. Ветки можно комбинировать.
Мифы
Миф #1 Gentoo даст прирост производительности за счет того, что весь софт компилируется под конкретное железо.
Краткий ответ: Без дополнительных телодвижений - в пределах пары процентов, так что вряд ли вы это заметите.
Детальный ответ.
Не следует ожидать что просто скомпилировав систему из исходников вы получите сколько-нибудь заметное улучшение перформанса.
Для большинства приложений компиляции под конкретное железо даст прирост производительности в районе 1-2%.
Ложка дегтя: в некоторых случаях даже может быть замедление. Например Firefox, можно ускорить с помощью PGO. В Gentoo по умолчанию это отключено, так как PGO увеличивает время компиляции почти в два раза. В бинарных дистрибутивах соотв. софт может быть скомпилирован с PGO.
Так как добиться улучшения производительности?
Узкий круг приложений может быть значительно ускорен при компиляции под конкретную платформу - на 30%-50% и больше. В основном это приложения которые активно занимаются вычислениями. Но для этого требуется соотв. настройки. Например, активация SIMD инструкций, даст прирост производительности в мультимедиа приложениях. Некоторые процессоры имеют аппаратную поддержку шифрования AES. В бинарных дистрибутивах подобные фичи будут отключены, так как не все процессоры это поддерживают, а бинарные дистрибутивы в первую очередь заботятся о совместимости.
Небольшое улучшения перформанса возможно если убрать из системы всё лишнее (мнение 1, мнение 2).
Еще интересный случай
Миф #2 Обновления занимают много времени
Краткий ответ: 5-10 минут на фоне, не мешая основной работе.
Детальный ответ.
Обновления не занимают много времени, но опять же, при правильном подходе.
Во-первых, как было сказано выше, обновляться нужно часто. Для testing ветки это каждый день, или по крайней мере не реже чем в раз 2-3 недели. Для стабильной ветки - раз в неделю достаточно (на стабильной ветке намного реже выпускаются обновления)
Во-вторых, есть пакеты которые правда очень долго компилятся: libreoffice, firefox, chromium... Их всего 10-15. Я их исключаю из ежедневного обновления, а обновляю раз в несколько месяцев.
Еще нужно сказать, что на этом вопросе часто заостряют неоправданно много внимания. Обычно обновления происходят на фоне, и не сильно влияют на работу; так какая разница как долго они выполняются?
В итоге, у меня обновления занимают примерно 5-10 мин ежедневно (у меня тестинг-ветка).
К тому же всё происходит на фоне, в любой момент можно поставить на паузу (Ctrl+Z, fg), продолжить после прерывания (умышленного или случайного).
Мой скрипт ежедневного обновления
Миф #3 Gentoo требует много времени на обслуживание
Краткий ответ: это зависит от вас.
Детальный ответ.
Обслуживание Gentoo занимает меньше времени по сравнению с другими дистрибутивами, но только при грамотном обращении, конечно. Достигается это за счет следующего:
- хороший пакетный менеджер: маскировки, глобальные и индивидуальные установки для пакетов (USE флаги, опции компиляции, каталоги), хуки, приоритеты (чтобы компиляция происходила на фоне и можно было работать), много опций для установки и анализа, подсказки после установки.
- всё происходит в CLI, а значит типовые операции можно обернуть в скрипты/алиасы.
- уже существуют много утилит для облегчения обслуживания: eselect, equery, eix, eclean, euse, genlop и др.
Грамотное обращение означает, что вы правильно и регулярно обновляете систему, исполняете предписания emerge, которые он выдает после установки, держите в порядке конфигурационные файлы, а если таки возникает проблема, которую решить вы не можете, то вы обращаетесь в форумы, а не просто жалуетесь на жизнь.
Что до проблем с обновлениями - см. следующий пункт «Миф #4 Установка, обновление постоянно падают; частые блокировки»
Миф #4 Установка, обновление постоянно падают; частые блокировки
Краткий ответ: Не чаще чем в других дистрибутивах
Детальный ответ.
Если говорить про «часто» и «постоянно», то проблемы с обновлением/установкой могут быть если:
- система давно не обновлялась
- система неправильно обслуживается (см. выше про Грамотное обращение)
В редких случаях пакет просто не компилируется. На самом деле это проблема не Gentoo, а тех, кто писал этот софт. И в подавляющим большинстве случаев это не является проблемой, и вот почему. Если это обновление, то можно продолжить процесс запустив emerge с параметрами --resume --skipfirst
- он обойдет проблемный пакет, пересчитает зависимости чтобы система осталась консистентной, и продолжит обновление (а можно изначально передать параметр --keep-going
, тогда это будет происходить автоматически, прерываний вообще не будет). Если пакет критичен, можно установить предыдущую версию, которая компилировалась (а проблемную замаскировать чтобы пакетный менеджер ее не видел).
Что может заблокировать обновление полностью:
- просьба пакетного менеджера поменять флаги пакета. При этом emerge предлагает сделать это автоматически, но лично я предпочитаю делать вручную. Для ручного способа, решается добавлением строчки в package.use
- просьба пакетного менеджера задать лицензию. Это валидно только для не-свободных лицензий, например EULA, Skype, Adobe Flash и т. п. Если мы говорим имено про обновление, то такое бывает только когда лицензия обновляется, что бывает очень редко (как много у вас пакетов под не-свободной лицензией, и как часто они меняют лицензию?). Решается добавлением одного слова в make.conf
- просьба пакетного менеджера размаскировать пакет. По моему опыту нужно не размаскировывать, а наоборот замаскировывать пакеты, которые тянут замаскированные зависимости. Это, да, требует минут 5-10 на разобраться. Но, если только у вас нет смешения веток и live пакетов, такой вариант случается раз в пятилетку.
- сложные блокировки. Большинство блокировок пакетный менеджер разрешает сам; по моим наблюдениям, качество данного механизма значительно улучшилось пару лет назад. Из своего опыты скажу, что (учитывая частые обновления) блокировок, которые бы совсем останавливали обновление я уже не видел года 1.5. Но если они есть, то это действительно сложный кейс.
Иными словами, при порядке в системе, кейсы, которые требуют значительного времени и напряжения уственых усилий (сложные блокировки, замаскированные зависимости) случаются раз в несколько лет; кейсы, которые решаются за пару минут - раз в несколько месяцев.
Миф #5 В Gentoo нет бинарных пакетов
Краткий ответ: Есть там, где это действительно нужно.
Детальный ответ
29 декабря 2023 года было официально объявлено о релизе бинарного варианта Gentoo: Gentoo становится бинарным / https://www.gentoo.org/news/2023/12/29/Gentoo-binary.html
Также есть Calculate Linux - полностью бинарный форк Gentoo.
С самого начала в «классическом» Gentoo в основном репозитории всегда были несколько бинарных пакетов: libreoffice-bin, firefox-bin, некоторые другие. Связано это с тем, что из исходников они очень долго компилируются, и иногда проще поставить бинарник.
Бинарный пакет можно сделать самому командой quickpkg --include-config y <установленный пакет>
- удобно для бекапов.
Но стоит обратить внимание на то, что при использовании бинарных пакетов пропадают те главные особенности, ради которых имеет смысл выбирать Gentoo. Если вам нужен уже скомпилированный софт, возможно вам имеет смысл присмотреться к другим дистрибутивам.
FAQ
#1 Установка на слабый компьютер
Смотря что есть слабый компьютер.
Из собственного опыта: Intel Core2 Duo 6600 @ 2.40GHz, 2Gb RAM + 4Gb swap хватало для комфортной работы в Gentoo.
Зачастую ebuld'ы содержат информацию о том, сколько нужно памяти для компиляции пакета. TOP 5:
16G - chromium
8G - ledger, isabelle
7G - ceph
6G - firefox x64 (для x32 нужно 3G), pypy x64 (для x32 нужно 3G)
5G - electron
Если компьютер и вправду слабый, то лучше выбрать не Gentoo (точнее не-source-based дистрибутив). Альтернатива - можно вынести компиляцию на другой «не-слабый» компьютер с помощью distcc.
Опрос 2021: Какую операционную систему и/или дистрибутив GNU/Linux вы используете на ПК?
Опрос 2018: Какой ОС вы пользуетесь на основном ПК?
Опрос 2017: Какую ОС вы используете на основном ПК?
Опрос 2014: Какой дистрибутив вы используете на десктопе?
W3Tech стастика дистрибутивов на серверах
Отличия дистрибутивов, время работы ноутбука
Чем удобны USE флаги
Сколько памяти нужно для РАБОТЫ Gentoo (сколько нужно для компиляции было указано выше)
Сколько места на диске нужно для Gentoo
Правильное полное обновление Gentoo, Мой скрипт ежедневного обновления, Еще вариант
Gentoo для девелоперов
Практика инсталляции Gentoo: в двух словах простым языком
Небольшой скрипт - сборка livecd
Это текстовая версия моей статьи про разработку графического приложения на чистом ассемблере под линукс.
( читать дальше... )
В общем хочу поделится открыто классом QpTableView, который выводит ячейки в строке таблицы по шаблону в несколько рядов.
Небольшое видео для наглядности https://youtu.be/zgqkdXJhbpc?si=F0zMMr8oJgx69_47
По итогам работы понятно, что создавать свои виджеты на основе QAbstractItemView можно и нужно.
Но похоже придется из собирать свои виджеты в составе исходников Qt, что на самом деле не проблема (надо один раз попробовать только).
Надо сказать что на то, чтобы изучить исходный QTableView и QHeaderView и сделать свои варианты ушло 5 рабочих недель.
В основном время убило изменение ширины и высоты секций интерактивно мышкой (там отрисовка сразу идёт при перетаскивании края секции мышкой).
И ещё много ушло времени на модель выделения ячеек (selectionModel), что тоже оказалось не просто.
В общем, если кому интересно на гитхабе здесь: https://github.com/PavelDorofeev/How-to-create-own-QTableView-with-new-capabilities
После более трёх месяцев разработки состоялся выпуск 4.7.0 редактора документов LaTeX TeXstudio, написанного на языке C++ с использованием фреймфорка Qt (поддерживаются версии 5 и 6).
( читать дальше... )
>>> Подробности
Представляю Вашему вниманию разработанную мной первую версию мультимедийной библиотеки Little DirectMedia Layer, сокращённо LDL.
Библиотека написана на С++ 98 стандарта, что позволяет компилировать ее начиная с Visual C++ 6.0. Код распространяется на условиях Boost Software License 1.0. Но библиотека не ограничивает программистов в выборе стандарта языка C++, программист может использовать любой современный стандарт языка. Я придерживаюсь философии downgrade — это использование старых устройств и софта в повседневной жизни, когда компании не поддерживают свои же «устаревшие» операционные системы или устройства, увеличивая с каждой новой версией своего продукта системные требования, или прекращают поддержку девайса. Миллиарды устройств по всему миру ежесекундно перемалывают миллиарды инструкций неоптимизированного кода.
В этом году я выступил на конференции С++ 2023 с докладом «Вперед в прошлое, или Разрабатываем фреймворк под Windows 95 в 2023 году».
Своим проектом я хочу доказать, что старое железо еще может приносить пользу и его рано списывать в утиль. Есть что-то чарующее в старых технологиях, подходах и железках, а еще это вызов новым библиотекам и программам.
В самом начале процесса разработки я и не предполагал, что данная библиотека вообще возможна. Но при практической реализации прототипа, добавляя строчку за строчкой в фундамент будущей библиотеки, убеждался в возможности ее создания и практическом применении.
Резюмируя вышесказанное, возможно писать быстрые программы, нужно просто воспользоваться знаниями древних.
Возможности библиотеки:
Планы на будущее:
Ссылки:
>>> Подробности
Вообщем у меня есть один долгоживущий проект, посвященный теме ревью кода. Что он делает можно увидеть из этого gif
На данный момент, вся логика максимально отдалена от структур проекта, репозиториев, коммитов и всего такого, поэтому можно комментировать любой кусок кода или произвольный текст, что использовалось на практике для «тыкания носом» в выдержку из какого-нибудь лога или YAML-конфига.
Но для современной разработки этого мало, ревью cейчас проводится по большому количеству файлов, с учетом отличий. Поэтому я буду проект серьезно переделывать.
Хотелось бы услышать ваши мысли и пожелания, в первую очередь по интерфейсу - как это должно выглядеть для максимального удобства проведения code review.
Например тот же Gerrit мне всегда казался слишком сложным и его использование на практике в коммерческой разработке я не видел.
Здравствуйте, любители свежей олдятинки!
Провёл ревизию и выяснил, что есть вполне живые и работоспособные движки к классическим игрушкам. Вот некоторые примеры:
Вышел релиз IWYU (или include-what-you-use), программы позволяющей находить избыточные и предлагать недостающие #include
в вашем коде на C/C++.
( читать дальше... )
>>> Подробности
Luau (GitHub) - встраиваемый, Lua 5.1-совместимый (и частично с Lua 5.2-5.4), язык со следующими улучшениями (или «улучшениями»?):
0xABC
, 0XABC
, 0b01010101
, 0B01010101
, 1_048_576
, 0xFFFF_FFFF
, 0b_0101_0101
)repeat...until
и continue
)+=
, -=
, *=
, /=
, %=
, ^=
, ..=
)function foo(x: number, y: string): boolean
local k: string = y:rep(x)
return k == "a"
end
type Point = { x: number, y: number }
type Array<T> = { [number]: T }
type Something = typeof(string.gmatch("", "%d"))
local maxValue = if a > b then a else b
)for k, v in {1, 4, 9} do
assert(k * k == v)
end
По соображениям безопасности отсутствуют io
, os
, package
и debug
.
(En|Destr)oy!
Состоялся выпуск 3.0 C++ (стандарт C++17) header-only библиотеки парсинга аргументов командной строки argparse, распространяемой по лицензии MIT.
( читать дальше... )
>>> Подробности
Доброго времени суток, уважаемые!
Хочу рассказать об одном замечательном проекте, который позволяет играть по сети, через Интернет и даже в кооперативе на довольно старых игровых консолях.
Проект называется XLink Kai. Для меня он интересен тем, что ПО может работать на Linux и на одноплатниках типа Raspberry PI. Для быстрого старта есть инструкция на сайте. Я протестировал Xlink Kai
, устанавливая на Raspberry Pi от первой B+ до 3-й B+ и XBox Original в качестве игровой консоли. Использовал различные варианты подключения (описаны на сайте) и разные носители. Стабильной и качественной работы добился на Raspberry Pi 3B+ c SD-картой U3 и проводной сеткой. Поддерживается работа с XBox Original/360/One, Playstation 2/3/4/PSP/Vita и т.д, полный список консолей и игр есть на сайте. Данный проект помимо «железных» игровых консолей позволяет играть по сети на некоторых эмуляторах игровых приставок. Я попытался протестировать Xemu, но данный эмулятор у меня работает нестабильно, буду еще копаться в этом направлении.
На скрине:
Веб-интерфейс XLink Kai доступен на localhost
и на порту 34522
по умолчанию. Если вы будете устанавливать XLink на отдельном ПК или одноплатнике, как это делал я, самый простой и быстрый способ получить доступ к веб-интерфейсу - пробросить его порт себе на localhost:
ssh -L 34522:localhost:34522 nuxster@192.168.1.27
Думаю, вебку можно просто перенастроить на нужный интерфейс, но я не стал в это вникать.
Так же, думаю, будет полезно запускать XLink Kai через systemd:
apt install dnsutils
cat > /etc/systemd/system/xlink.service<<EOF
[Unit]
Description=XLink Kai
StartLimitBurst=5
StartLimitIntervalSec=200
[Service]
StandardError=journal
StandardOutput=tty
ExecStartPre=/bin/sh -c "until host google.com; do sleep 1; done"
ExecStart=/usr/bin/kaiengine
Restart=on-failure
RestartSec=1
Nice=-5
[Install]
WantedBy=network.target
EOF
systemctl daemon-reload
systemctl enable xlink
systemctl restart xlink
Уверен, что можно сделать лучше\правильнее, мне просто нужно было его запустить.
Возможно, кто-то знает другие подобные проекты, прошу рассказать о них. Эта тема мне интересна, и я хочу поизучать ее какое-то время. Если кто-то испытывает такие же теплые чувства к старым играм и игровым железкам очень приятно было бы увидеть ваши посты.
Решение Бьярне Струструпа по повышению безопасности в С++ опирается на концепцию «профилей». Это наборы правил, при соблюдении которых достигаются определенные гарантии безопасности. Профили будут определены в стандарте ISO C++ и будут касаться таких распространенных проблем безопасности, как указатели, диапазоны массивов и т.д.
Идея заключается в том, чтобы использовать сам компилятор языка Си++ в качестве сложного статического анализатора, которому можно поручить выполнение требований профиля. Например, если профиль ориентирован на безопасность памяти, то компилятор может применять правила, предотвращающие такие распространенные ошибки, связанные с памятью, как переполнение буфера или разыменование нулевого указателя.
Струструп подчеркивает, что эти профили не должны создавать значительных накладных расходов во время выполнения. Основное внимание уделяется тому, что может быть сделано во время компиляции с помощью статического анализа, который не только не добавляет значительных накладных расходов, но иногда даже может повысить производительность. Цель состоит в том, чтобы сделать проверки безопасности как можно более эффективными, опираясь на локальный статический анализ, а не на ресурсозатратный глобальный статический анализ.
Профили разработаны таким образом, чтобы быть гибкими. Они могут применяться к различным фрагментам кода, обеспечивая постепенный переход от старого, менее безопасного кода к современному, более безопасному. Это облегчает модернизацию существующих кодовых баз с применением улучшенных мер безопасности без их полного переписывания.
Струструп также отметил, что сообщество может внести свой вклад в доработку этих профилей и формализацию их спецификаций. Для этого он создал репозиторий на GitHub.
https://thenewstack.io/bjarne-stroustrups-plan-for-bringing-safety-to-c/
Теоретически можно не просто поместить все файлы нужные для загрузки ОС в начало диска, но и сложить их в такой последовательности, чтобы для загрузки было бы минимальное количество перемещений головок жесткого диска.
Вручную на неполном диске это сделать несложно. Переместить на свободный диск всю систему. Потом скопировать обратно последовательно /boot, /etc/, /bin/, /lib, /usr/bin, /usr/lib и дальше в порядке вероятности доступа при загрузке. Но на живой системе постоянно поддерживать такое будет затруднительно.
В общем может кто-то уже изобретал такого рода дефрагментатор, который бы мог список указанных файлов держать последовательно и поближе к началу диска?
Перемещено hobbit из general
Что ж, этот день настал. Будем делать gtk 2.26.
Минимальный план работ такой:
Приглашаются все желающие. Пишите ваши соображения.
Разные частичные наработки у меня есть, но я их пока нигде не публиковал. Причешу немного и выложу на гитхаб.
P.S. hobbit, верни тэг gtk2 в БД сайта!!!
В связи с последними новостями о возможной блокировке доступа к сервисам хранения кода, например, github было принято решение о переносе всех репозиториев на сервера размещённых на территории РФ.
Я уверен, что с данной задачей столкнулся не только я, но и многие другие и запустил веб-сервис для хостинга IT-проектов и их совместной разработки. Веб-сервис основан на системе контроля версий Git и системы управления репозиториями Gitea.
Серверное оборудование расположено в трёх местах: Москва, Пущино и Новосибирск. Синхронизация данных между ними происходит каждый час.
Веб-сервис будет бесплатным.
Перемещено Pinkbyte из development
Не понимаю как это из под юзера сделать? Пишет не хватает прав - приходится выполнять с повышеными правами и пароль вводить, но это же не серьезно. Есть тут вообще такие кто едет на этой оси? Маякните - буду вас вопросами донимать если что.
Привет. Сабж. У двоюродного брата своя фирма строительная и ему кто-то настроил keenetic ultra в доме с усилителями. Уже 3 раза перенастраивал. Сбрасывал настройки, обновлял проштву и всё равно бородит. Отвал wifi и попроводу, чего не должно быть.
Сейчас у тётки натработе бородит ьакой же. Бородатые одмины, подскажите эта вообще фирма хорошая или tp-link, asus, zyxel лучше?
У брата 6-9 месяцев в использоании. У тётки 2 месяца. Новые аппараты бородят. Пропадает иньернет и wifi и по проводу. У тётки, когда от роутера пропадает, то через свич, попроводам работает. Что втоптсание ещё добавить?
Thalassa CMS – это система управления контентом, позволяющая создавать статические сайты с возможностью комментирования.
Отличительные особенности:
В новой версии:
%[discuss:]
добавлены функции ifparent
и parent
Автор этой замечательной программы есть на LOR под ником Croco.
>>> Подробности
← назад | следующие → |