sadness90

На Пикабу
Дата рождения: 1 января
1317 рейтинг 10 подписчиков 0 подписок 8 постов 6 в горячем
88

Ответ на пост «Электротовары?»1

Это еще что. Я системный администратор и 90% моей работы - непрофильная херня) Сотрудники просто не понимают, чем я должен заниматься и грузят всем подряд. Муж одной из сотрудниц вообще считает меня электриком. Секретарша на полном серьезе как-то заставила меня менять батарейку в калькуляторе, т.к. ТАМ ПРОВОДА и это моя работа! Бухи считают, что я должен выдавать им правильные проводки, знать план счетов и вообще должен уметь решать задачи типа "почему не закрывается 26 счет". Руководство не видит разницы между инженером-чертежником и сисадмином, а бывало даже давали задачи по смете конъюнктурный анализ сделать, и даже провести оценку недвижимого имущества (ТАК КАК ЭТО ДЕЛАЕТСЯ НА КОМПЬЮТЕРЕ, ЗНАЧИТ ДЕЛАТЬ ДОЛЖЕН КОМПУТОРЩИГ). Это я еще молчу про полиграфию типа создания визиток, разработки макетов брошюр, баннеров. Время от времени занимаюсь производством бумажной продукции - чертежей, с фальцовкой и брошюровкой разумеется, т.к. плоттер электрический и там тоже есть провода. Сисадмин в мелкой фирме - самая хреновая на свете работа после проктолога (впрочем, им хотя бы платят ого-го) и уборщицы туалетов в аэропортах. А вы говорите..

36

Nextcloud, или как выпускать обновления с закрытыми глазами

Данный пост будет длинным, возможно чересчур эмоциональным и будет содержать негатив по отношению к ПО Nextcloud. Просто перескажу, с чем можно столкнуться при эксплуатации этой системы. Если вам очень нравится Nextcloud и вас все устраивает, то возможно, дальше вам читать не стоит. И не обновляйтесь пока. Блаженен тот, кто в неведении.

Итак, в компании, где я работаю, для организации внутреннего «облака» используется Nextcloud. Данное ПО было установлено еще несколько лет назад, начинали мы с версии 9. За эти годы впечатление система оставила неплохое. Работа шла, пользователи обменивались файлами, совместно редактировали документы – работали, в общем.

Первый тревожный звоночек был через пару лет, когда разработчики начали переписывать существенную часть кода. Меняли внутреннюю структуру системы, интегрировали приложения, которые раньше поставлялись отдельно. И конечно, одарили багами, некоторые из которых были особенно больными.

Например, мы активно используем функцию комментирования файлов. Один из багов привел к тому, что комментарии не прикреплялись к файлу формата PDF, если до него был открыт другой подобный файл. Другой баг ломал функцию клавиши Enter, позволяющий отправить комментарий без помощи мышки. Было и еще несколько неприятных моментов, но потом все как-то наладилось.

И вот настал день Х, обновляемся последовательно со старого 25-го релиза на 28-й. Разумеется, дождались выхода первого патча, 28.0.1. Из опыта знаю, что никогда, никогда нельзя обновляться на самую последнюю мажорную версию, если для нее не вышло хотя бы одно обновление, закрывающее самые первые, и зачастую самые лютые баги.

Причина обновления банальная – закончилась поддержка старой версии, плюс остро не хватало уникальной фишки 28-й. А именно, в ней появилась функция, ограничивающая возможность пользователей вставлять в имена файлов и папок запрещенные для Windows символы. При наличии таких символов, параллельный доступ по SMB к данным Nextcloud коверкал имена «неправильных» файлов, что уже успело нанести нам некоторый ущерб ранее (долго потом гадали, как раньше назывался файл, к примеру, GJLGRY~K.PDF). Что ж, долго Nextcloud к этому шел, но ладно.

Разумеется, перед обновлением был создан полный бэкап. Само обновление закончилось успехом, ничего не предвещало беды. А потом спустя время посыпались звонки. К сожалению, у нас техническая поддержка, системный администратор, программист (плюсом различная побочка и «факультативы») – это один человек. Немного непросто справляться в такой ситуации, и получилось так, что я упустил время. Была бы возможность сразу протестировать систему вдоль и поперек, я бы, конечно, сразу и откатился на бэкап, будучи изумлен увиденным. Но прошло несколько часов, и восстановление из бэкапа теперь приведет к потере наработок за эти часы, что недопустимо, без каких-либо оговорок. Да и объяснять пользователем (среди которых еще директора и замы!), что им придется вспоминать, что они делали и сделать это еще раз – та еще задача. Гораздо проще для их ушей прозвучит фраза «оно обновилось само и все сломалось, ждем патча от горе-разработчиков». Те, кто обновлял приложения на смартфоне, вопросы задавать не будут (приучены, что нельзя откатиться обратно).

В итоге, после обновления имеем насквозь глючную систему 🚽, еще и не поддерживающую даунгрейд на предыдущую мажорную версию. Никакая чистка кэша в браузере и иные подобные мероприятия не помогают. Что сломали разработчики:

  • Комментарии к файлам. В случае, если после того, как был открыт во внутреннем просмотрщике какой-нибудь документ PDF, мы открываем другой и попытаемся оставить к нему комментарий – то он прикрепится к первому.

  • Перетаскивание файла для загрузки (Drag’n’Drop) не работает. При попытки перетащить файл в окно Nextcloud интерфейс начинает «прыгать». Теперь загрузить файлы можно только через кнопку плюсик, которая еще и подписана как New (тот случай, когда кнопку «релизнуть» нажимаешь быстрее остальных).

  • Расшаривание папок по ссылке не работает. Вернее, ссылка-то генерируется, но вот если по ней пройти, то появляется пустая вкладка с бесконечным крутящимся кружком. И сюда 🐖 подложили, ну ок.

  • При переходе по папкам туда-сюда, открытии документов начинаются странные глюки. Например, может открыться случайный файл на просмотр (из числа открытых ранее), хотя мы пытались открыть папку.

  • Комментарии вообще перенесли на вкладку События (что на боковой панели справа, открывается через меню файла -> Подробности). Что сказать, спасибо – очень логично (нет).

  • Та самая вкладка События для части папок вообще не открывается, пишет «Не удалось загрузить список событий». Соответственно, поля ввода комментариев тоже нет и оставить их невозможно.

  • Клик правой кнопкой мыши по файлу открывает контекстное меню, но не в том месте, где был курсор. Это просто бесит, без последствий для работы. Но как разработчики умудрились сломать даже это?

  • Прокрутка списка иногда приводит к тому, что часть строк пропадает, вместо них появляется белый прямоугольник. Вау, низкий поклон профессионализму разработчиков 👏, так даже я не умею.

  • Бонусом у меня в интерфейсе администратора перестал открываться лог ошибок – «не удалось загрузить». Разработчикам настолько стыдно, что они его решили скрыть?

  • и еще куча мелких багов, о которых даже говорить не хочу, больно. Разработчики умудрились сломать почти всё 😱.

У меня только один вопрос к разработчикам Срамотаcloud Nextcloud – вы там что, совсем упоролись перед новым годом? Вы свое творение вообще запускали? Эта версия 28.0.1 была установлена мною из стабильной ветки и вышла еще до НГ! Что же тогда творится у вас в бета-версиях, там наверно совсем караул? И боюсь представить, что там вообще «под капотом», может еще и дыр для хакеров и вирусов на годы вперед понаделано…🤷‍♂️

В общем, Nextcloud,

Nextcloud, или как выпускать обновления с закрытыми глазами Облака, Nextcloud, Системное администрирование, Обновление, Баг, Длиннопост

Баги не просто тупые и «детские», их просто невозможно было бы не заметить при хотя бы каком-то минимальном тестировании софта, да даже просто при однократном запуске. Вас там не один-два человека сидит софт пилит. Да, я понимаю, что эта система бесплатная в основном, что разработчики мне и моим пользователям ничего не должны. И вообще весь код на Гитхабе – берите и сами правьте, что нужно. Но выпускать откровенно сырую версию в стабильной ветке – у меня просто нет слов. Это даже не бета-версия по качеству (его отсутствию), это смачный плевок какашками в лицо пользователям.

Но и я тоже хорош оказался, чего греха таить. Вот какие вещи я вынес из этой истории:

  • Обновление по-хорошему нужно делать вечером или в выходной, когда в системе никто не работает. И сразу досконально тестировать. Прописная истина, вот только на практике сложно – я много лет отказывался от личной жизни, больше могу, извините.

  • Если не получается п.1, то нужно заводить тестовый сервер и тестировать все обновления в первую очередь на нем. Правда, это удовольствие будет стоить денег, которых как известно, никогда не хватает.

  • Никогда не обновляться на свежий мажорный релиз, если для него не вышло как минимум десяток патчей, закрывающих все известные баги. Себе же потом дороже будет.

  • В идеале вообще не обновляться и не трогать то, что работает. Но это абсолютно непрофессионально для сисадмина и вообще чревато. Последствия в виде возможного взлома потом перевесят все мучения, вызванные багами. Некоторые компании после взлома вообще говорят «пока».

  • Если все же решили обновляться – прошерстить весь интернет, пытаясь выяснить, с чем возможно придется столкнуться. Хорошо, когда много лишнего времени, которого никогда нет.

  • Бэкап должен быть всегда перед любым обновлением, но, к сожалению, иногда он слишком быстро протухает. Терять данные или жить с глюками системы до следующего патча – тут уж каждый сам для себя решает.

  • Заранее продумываем, как будем восстанавливаться из бэкапа и стараемся минимизировать затрачиваемое на это время, выверяя все до мелочей заранее. Береженого бэкап бережет.

  • Устраиваться на одну должность, никаких совмещений обязанностей. Уверяю, что даже совместить только техподдержку и системного администрирование – это на грани возможного. В итоге все равно дойдете до того, что придется принимать антидепрессанты и седативные/успокоительные вкупе с десятком других лекарств от сопутствующих болячек. Правда, в небольших компаниях с ИТ всегда сложности и непонятки. Исконно считается, что сисадмин и программу напишет, и чайник починит, и вообще сделает все, что попросят – «все равно весь день сидит в монитор зырит, лентяй». А если еще и в маленьком городе живете – выбирать будет особо не из чего, если не говорить об удаленке.

Но пишу я сюда не потому, что я очень расстроен и мне хочется просто кому-то пожаловаться. У меня-то все будет хорошо. И не такое видел за свою карьеру, были вещи и похлеще. Но я в очередной раз хочу привлечь внимание к тому факту, что качество ПО неуклонно падает. Об этом уже не раз выходили заметки на разных ресурсах.

На мой взгляд, индустрия сильно меняется. Вместо программистов код, похоже, давно начали писать менеджеры, а теперь и такое явление последних лет, как ИИ. Тестирование больше не модно. Модно увеличивать ценник, показывая важность проведенной работы над новыми версиями. Даже если там только поменялся внешний вид и добавилось несколько функций, которыми возможно мы никогда и не воспользуемся. В идеале еще внедрить новый формат файлов, потому как продажи сами себя не сделают.

Все мы сталкивались с лютыми багами на примере той же Windows 10. То от принтеров нас отучают (думаю это с подачки «зеленых», бумагу экономить надо, лес беречь), то звук или блютус сломают. То еще что-нибудь испортят. А в Windows версии 11 успех решили дополнительно закрепить. Обновление сродни русской рулетке. И это платная ОС, установленная на большинстве компьютеров мира. И такое качество. Впрочем, Windows я люблю, иначе никак – благодаря ей я заработал приличную сумму денег на помощи в решении ее проблем у пользователей.

Сейчас давно уже не начало нулевых, когда выпуск глючного продукта на физическом носителе мог закончится крахом компании-разработчика. Ведь никто не придет и не принесет каждому обновление на дискетке, и интернет мало у кого был. Либо сразу делаешь «как надо», либо уступаешь место компаниям, которые могут писать рабочий код. Впрочем, распространена еще и идея, что необязательно делать лучший продукт – достаточно всех в этом только убедить.

А что сейчас – взять хотя бы предзаказы тех же игр, тонна багов на старте. Десятки патчей, тормоза, денуво. И за все это удовольствие вас еще и заплатить попросят. И кстати, весьма и весьма немало. Еще и заплатить попробуй найди способ в связи известными событиями.

Я считаю, что если хочется что-то поменять к лучшему в ИТ, то прежде всего, нужно начать с себя. Я, к примеру, вообще отказался от покупки видеоигр. Да, у меня большая библиотека в Стиме и мне немного обидно, что она больше не обновляется. Что нет удобного лаунчера, а вместо него теперь десяток ярлыков на рабочем столе, ведущих к папкам с запахом рома. Да, мне оказалось куда приятнее подождать полгода-год после релиза игры и тупо скачать ее с торрента, не заплатив не копейки. А потом удалить ее через час в 4/5 случаев, ибо мое время стоит дороже того шлака, который они называют играми. Аморально, и, если так будут поступать почти все – наверно видеоигр больше не будет. Или же начнут выходить действительно качественные продукты, оптимизированные и вылизанные еще на старте продаж. Может так и «ранний доступ» (бесплатный бета-тест в других словах) уйдет в небытие. Как знать, как знать. Но это лучше, чем и дальше ныть в стиле «выпускают одно говно, наживаются на микротранзакциях, оптимизаций нет, цены заоблачные, опять нужно новое железо и т.п.» и продолжать грызть порядком протухший кактус.

Наряду с этим, я регулярно отправляю баг-репорты для программ, которыми пользуюсь, независимо от модели их распространения. Обратная связь позволяет кардинально улучшить продукты, что, несомненно, будет только на пользу их пользователям. Но, конечно, когда я сталкиваюсь с полным пофигизмом и вредительством, навроде Nextcloud, я уже баг-репорты не пишу. Это впустую потраченное время, которое можно использовать разумнее – например, поискать альтернативное ПО.

А что-то из ПО пишу и сам, чем-то даже делюсь с остальным миром, в т.ч. иногда и исходниками. В основном то, для чего нет альтернатив, или когда альтернативы распухшие и неудобные. Но это я уже отвлекся.

Показать полностью 1
83

Неожиданные трудности взаимодействия между Windows и Linux в части сетевых папок

Неожиданные трудности взаимодействия между Windows и Linux в части сетевых папок Windows, Полезное, Помощник, Программное обеспечение, Linux, Поиск файлов, Скриншот

Как-то понадобилось мне скопировать терабайтную папку на 500 000 файлов на сервер-хранилку. Из них около 100 файлов наотрез отказались копироваться — оказалось, Linux не нравится, что имя файла длинное. А с виду так и не скажешь. А дело вот в чем.

В отличии от Linux, лимитирующей длину имен файлов и папок 255-ю байтами (файловая система ext4 и подобные), Windows в своей файловой системе NTFS ограничивает имена 255-ю двухбайтовыми символами в кодировке UTF-16. Набранные кириллицей имена в Windows могут быть длиной до 255 знаков, что невозможно в Linux, так как каждый символ кириллицы тоже будет занимать по два байта (в этой ОС обычно применяется кодировка UTF-8), быстро исчерпывая лимит.

Делюсь с вами написанной мною программой FindLongFilenamesLinux, которая и предназначена для поиска и переименования таких файлов и папок с именами, превышающими лимит, которые невозможно скопировать из Windows на NAS на основе Linux (с файловой системой ext4 и подобными). Мне это оказалось удобнее, чем каждый раз пробегаться по некопируемым файлам через Total Commander. Хотя тут кому как, лично мне не жаль было потратить на написание программы пару часов, зная, что подобная задачка с файлами встрянет еще не раз)

Для запуска программы требуется компонент .NET Framework 4.8+ (в актуальных билдах Win10/11 стоит по умолчанию, в Win7/8 устанавливается автоматически вместе с обновлениями).

Программа (Assets->FindLongFilenamesLinux.zip): https://github.com/carpediem-av/FindLongFilenamesLinux/releases

Исходный код (C#): https://github.com/carpediem-av/FindLongFilenamesLinux

Сайт автора: http://carpediem.0fees.us

Показать полностью
78

Mdadm RAID1: замена дисков на более емкие

Как-то встала задача увеличить объем зеркального массива на сервере с Debian без потери данных и без простоев. Простых и кратких инструкций в интернете нашел на тот момент не особо много, в основном на английском. Составил для себя на будущее свою, чем с вами и поделюсь сегодня. Может кому пригодится, всякое случается в практике сисадмина.

0. Посмотреть, какие диски каким именам в каталоге /dev соответствуют, и определиться, что будем менять:

lsscsi //простой список (годится, если все диски разных моделей)

lshw -class disk //подробно и с серийниками

1. Пометить каждый раздел RAID на первом заменяемом диске как извлеченный:

mdadm --manage /dev/mdX --fail /dev/sdYZ

mdadm --manage /dev/mdX --remove /dev/sdYZ

где X - номер массива, соответствующего диску

Y - буква заменяемого диска

Z - номер раздела RAID на этом диске, соответствующий массиву X

2. Заменить первый диск на новый.

3. Создать на новом диске разделы RAID, используя все свободное пространство кроме нескольких последних МБ. Пример:

parted -a optimal /dev/sdY

(parted) mklabel gpt //схема разметки GPT

(parted) mkpart primary 2048s 5999GB //создать раздел размером 5999 ГБ (не ГиБ!), начиная с 2048 сектора

(parted) set 1 raid on //пометить его тип как RAID

(parted) print //вывести список разделов диска для проверки

где Y - буква нового диска (внимание, не спутайте с другим, а то потеряете на нем данные!)

4. Добавить разделы нового диска в соответствующие массивы:

mdadm --manage /dev/mdX --add /dev/sdYZ

где X - номер массива

Y - буква нового диска

Z - номер раздела RAID на этом диске, соответствующий массиву X

5. Подождать окончания синхронизации. Проверка статуса:

cat /proc/mdstat

6. Повторить шаги 0-5 для второго заменяемого и второго нового дисков.

7. Увеличить соответствующие замененным дискам массивы:

mdadm --grow /dev/mdX --bitmap none

mdadm --grow /dev/mdX --size=max

{Подождать окончания синхронизации}

mdadm --grow /dev/mdX --bitmap internal

где X - номер массива

8. Увеличить файловые системы соответствующих из шага 7 массивов:

{остановить зависимые от массива сервисы}

umount /dev/mdX

fsck.ext4 -f /dev/mdX //проверка целостности ФС, для примера указан формат ext4

resize2fs /dev/mdX

mount /dev/mdX

{запустить сервисы}

где X - номер массива

Показать полностью
6

Быстрое копирование-вставка текста и ускорение заполнения форм типовыми данными

Быстрое копирование-вставка текста и ускорение заполнения форм типовыми данными Windows, Полезное, Софт, Офисные будни, Помощник, Программное обеспечение

Случалось ли вам заполнять длинные формы с большим количеством полей на веб-сайтах? Думаю, каждый сталкивался с ними на Госуслугах и иных подобных порталах. И если разовое заполнение обычно не вызывает затруднений, то внесение множества данных в одну и ту же форму несколько раз (например, на оформление пропусков по списку сотрудников) может отнять существенное количество времени.

Комбинации клавиш для копирования-вставки из текстового/табличного файла, конечно, выручают, но спустя некоторое время и они начинают утомлять.

Для себя я написал небольшую программу для автоматизации заполнения форм, обладающую следующими функциями:

  1. Вставка в поля типовых строк, повторяющихся от формы к форме (например, адреса, различные номера и т.д.).

  2. Реализация последовательности комбинаций клавиш Ctrl+C, Alt+Tab, Ctrl-V в виде одной глобальной «горячей» клавиши.

Первая функция реализована максимально просто и удобно – по нажатию иконки программы в трее можно кликнуть нужный текст для вставки. После этого программа вставит выбранную строку в текущее активное окно, например такое как браузер или Word, Excel. Для ее работы текст нужно заранее ввести в программу, кликнув по иконке в трее правой кнопкой мыши и выбрав пункт «Редактировать строки» (или просто кликнув двойным щелчком по той же иконке). Можно сделать подпункты, если перед дочерними строками добавить, как минимум, два пробела (сами пробелы при вставке текста программой игнорируются).

Вторая функция работает следующим образом. При нажатии сопоставленной в настройках моей программы комбинации клавиш будет произведена эмуляция нажатия последовательно Ctrl+C, Alt+Tab, Ctrl-V. То есть, из текущего активного окна приложения, с которым вы работаете, выделенный текст копируется, делается переключение на предыдущее окно и текст вставляется в поле, которое было активировано заранее. У меня на клавиатуре имеются дополнительные клавиши F13-F19, чем я и воспользовался, привязав к одной из них эту функцию. А при наличии мыши с дополнительными программируемыми кнопками, можно одну из них настроить на выдачу выбранного в моей программе сочетания комбинации клавиш (обычно это проще, чем написать соответствующий самодостаточный макрос для самой мыши).

Полезность второй функции возможно и спорная, но лично мне она очень пригодилась при заполнении большого количества форм из данных файла Excel.

Исходный код этой крошечной программы я решил отдать в общественное достояние на Github. Возможно, кому-нибудь захочется «подогнать» программу «под себя» или посмотреть алгоритмы ее работы.

Для запуска программы требуется компонент .NET Framework 4.8+ (в Win10/11 стоит по умолчанию, в Win7/8 устанавливается автоматически вместе с обновлениями).

Ссылка на программу (Assets->TrayTextPaste.zip): https://github.com/carpediem-av/TrayTextPaste/releases/

Исходный код программы: https://github.com/carpediem-av/TrayTextPaste

Личный сайт с другими моими программами: http://carpediem.0fees.us/

Показать полностью
31

Мысли вслух про технический прогресс в IT-сфере

Прошу не воспринимать текст ниже слишком близко к сердцу. Возможно, у вас были схожие мысли, или же вы видите индустрию совсем иначе, чем я — все мы люди разные. Написано в плохом настроении после обычного обновления прошивки на SSD и последующей потере всех данных на нем, параллельно вспоминая о былых временах господства Windows 98 и XP.

Прогресс идет семимильными шагами, и никто его не может остановить. Многие айтишники впервые за свою практику уже столкнулись с тем, что процессоры могут ломаться. Этот ценный опыт подарила нам компания AMD с приходом 5000 серии Ryzen и закрепила свой успех в 7000-й.

Теперь и SSD показали, насколько тонкими и многослойными могут быть техпроцессы, и как мало они способны удерживать данные. Ультрасовременные будущие SSD с 5-битовыми ячейками покажут на практике, насколько высокой может быть скорость передачи данных по шине PCIe 6.0, и насколько высокой будет скорость потери этих самых данных из-за утекания заряда флеша.

Еще говорят, скоро можно будет даже отказаться от радиаторов отопления - одного системного блока с новейшим процессором, видеокартой и SSD вполне будет хватать на обогрев небольшого двухэтажного коттеджа. Конечно, придется потратиться на услуги электрика - все-таки подключение системного блока к трем фазам электроснабжения - удел профессионала.

Зато возросшая производительность систем больше всех обрадует текущее поколение программистов - программы можно будет вообще не оптимизировать, раздувая простую программу-калькулятор до размера в пару гигабайт. Можно будет перестать оптимизировать и игры — это утомительно и не приносит пользы, так как проще нарастить мощность "железа", чем понять, что отличает программиста от менеджера, и почему второй тоже может писать программы, пройдя двухнедельные курсы по Python.

Многие производители возлагают большие надежды на искусственный интеллект, и совершенно справедливо. В конце концов, менеджерам также наскучит программирование и их заменят другие специалисты, как когда-то менеджеры заменили большую часть программистов и инженеров. Например, выпускники ПТУ, славящихся подготовкой кадров для работы в сельскохозяйственной, пищевой и других отраслях промышленности. Искусственный интеллект будет для них большим подспорьем при разработке новых, современных программ.

И конечно, миру нужно больше и больше обновлений на Windows и другие программы, так как имитация бурной деятельности софтверных компаний просто невозможна без замкнутого цикла допущения ошибок и героического их исправления. Также не секрет, что обновления улучшают экономическую ситуацию в любой отдельно взятой софтверной компании. Дело в том, что старую версию программы можно объявить устаревшей и перестать выпускать на нее критические обновления, предложив взамен приобрести новую версию с новыми, прогрессивными функциями. Даже если новые возможности вам не нужны, они могут пригодиться вашим будущим внукам. Конечно, к тому времени придется снова купить новую версию программы, но ведь это мелочи по сравнению с мощью, сокрытой в недрах программного кода более современного продукта.

Одно только огорчает — за все эти прелести технического прогресса заплатят (деньгами, временем и нервами), как обычно, рядовые пользователи, радующиеся каждому лишнему терагерцу, терабиту и терабайту, которые вкупе вот-вот доведут наши компьютеры до совершенства и программы наконец-то перестанут тормозить! Конечно, придется подождать какое-то время, но уже к пятому тысячелетию все должно начать меняться. А пока можно заняться очередным откладыванием денег на новое «железо». Новые программы настолько мощные, что для своей работы им нужно оборудование сопоставимого уровня. При этом совершенно не важно, пишите ли вы текст в редакторе или смотрите котиков на Youtube, программы просто обязаны быть мощнее, так того требует технический прогресс.

Даже в популярной видеоигре Elden Ring разработчики моментально отреагировали на требования рынка и добавили трассировку лучей, чтобы подарить вам незабываемые игровые впечатления. Несмотря на малозаметные улучшения, проявляющиеся при активации этой функции, игра показывает достойные требования к видеокарте. И конечно, вместе с качеством сетевого кода всё это показывает стабильно высокую степень профессионализма разработчиков данного продукта.

Показать полностью
22

Программа просмотра свободного места в сетевых папках

Программа просмотра свободного места в сетевых папках Windows, Полезное, Софт, Файловый сервер, Nas

Иногда использование сетевых папок, подключенных как обычный диск, неудобно. Например, если файловый сервер или NAS часто бывает выключен, то Проводник Windows может время от времени заметно тормозить. Или может вам просто не хочется видеть в нем кучу «лишних» дисков.

Но в этом случае, открыв сетевую папку по пути вида "\\ПК\папка", мы не сможем увидеть, сколько свободного пространства в ней присутствует. Конечно, остается вариант с RDP и веб-интерфейсом NAS, но вряд ли такой способ покажется удобным в повседневной работе.

Для себя я написал маленькую программу, которая выводит список всех сетевых папок на сервере и показывает напротив них число свободных гигабайт. На рабочий стол я вывел ярлык, дописав в поле Объект через пробел после имени программы сетевое имя сервера (можно и IP).

Скачать можно здесь или здесь.

Бонус: исходный код на Гитхабе доступен здесь https://github.com/carpediem-av/SharedFoldersFreeSpace

Пардон (シ. .)シ, но программа требует для запуска Microsoft .NET Desktop Runtime 6.0 (https://dotnet.microsoft.com/en-us/download/dotnet/6.0).

Показать полностью
758

Самый простой способ разместить IP-камеру на сайте в 2022 году

В чем главная проблема современных недорогих IP-камер? Вы не можете просто так добавить их на свой сайт! Они выдают видео совсем не в том формате, который понимают браузеры. Да, конечно, можно зайти напрямую на камеру (и часто только с IE), и у многих моделей есть «облако». Но проблема остается — я не могу просто так взять и поместить камеру на сайт, как например, простую картинку!


А хочется чего-то совсем простого, что настраивается в пару кликов и работает почти везде. Вот такую программу я и написал, чем с вами сегодня и поделюсь.

Самый простой способ разместить IP-камеру на сайте в 2022 году IP-камера, Видеонаблюдение, Просто, Трансляция, Стрим, Csharp, Dotnet, Html 5, Длиннопост

Ключевые особенности и преимущества данной программы:


1. Ориентированность на бесперебойность работы. Если процесс трансляции (FFMpeg) неожиданно завершается, то программа это обнаружит и попытается его перезапустить. Плеер на стороне клиента также периодически проверяет, не остановилось ли видео, и если да – попытается это исправить.


2. Максимальная экономия трафика, подходит для 3G/4G. Когда нет активных зрителей, все процессы FFMpeg будут остановлены автоматически – т.е. программа не будет забирать видеопоток с камер. Также предусмотрено кэширование захваченных статических снимков, по умолчанию время хранения в кэше равно одной минуте. В случае одновременных запросов снимка с одной камеры с разных клиентских устройств будет запущен только один процесс FFMpeg.


3. Нетребовательность к «железу». 20-30 камер вполне будут работать на компьютере с 4 ГБ оперативки и средним двухъядерным процессором. Никакого перекодирования видеопотока не происходит.


4. В отличии от моего предыдущего проекта, эта программа способна транслировать видео большему количеству зрителей. Точное число зависит от ширины исходящего интернет-канала сервера.


5. Максимально возможная простота. Один мой друг любит говорить, что «простота хуже воровства». Но только не в сфере ИТ! В современном мире мало у кого есть лишнее время, чтобы разобраться с той или иной программой, а особенно, с «полуфабрикатами». То, что предлагаю я вам – полностью готовое решение с минимумом настроек. Просто пропишите RTSP-ссылки к вашим камерам, задайте пару общих параметров и получите веб-ссылки на камеры! Разве что сертификат SSL вам придется получить самостоятельно (была мысль встроить Let’s Encrypt в программу, но не было времени – может это сделает кто-нибудь из вас).


6. Кроссплатформенность. Благодаря среде .NET Core я смог скомпилировать программу-сервер под две 64-битные платформы: Windows и Linux. Что касается Linux, я ориентировался на Debian и Ubuntu, работу на других дистрибутивах не могу гарантировать. Конфигуратор, к сожалению, написан на обычном .NET Framework, и будет доступен только под Windows. Надеюсь, это не доставит вам заметных неудобств.


Слабые стороны:


1. Видео воспроизводится с ощутимой задержкой. Это особенность технологии HTTP Live Streaming (HLS). Так, если интервал I-кадров равен четырехкратной частоте кадров, а количество сегментов в плейлисте равно трем, то задержка (расхождение с реальным временем) составит около 12 секунд. Применить технологию Low Latency HLS мне не удалось.


2. Под Linux в консоль запущенной программы попадают строки от FFMpeg, этот вопрос я не

смог решить. Знаю, что можно как-то через xterm сделать, но нет гарантии, что на вашем компьютере он будет присутствовать.


3. Программой используется FFMpeg со статически слинкованными библиотеками. Это негативно сказывается на расходе оперативной памяти, если камер много (и соответственно, много одновременно работающих процессов FFMpeg). Но вы всегда можете заменить FFMpeg на нужный вам билд со всеми оптимизациями. А пользователи Linux могут заменить файл "ffmpeg-linux64" на символическую ссылку на системный FFMpeg. У меня же в приоритете была надежность запуска, да и времени на такого рода оптимизации нет — этим мой выбор и обусловлен.


Поддерживаемые камеры – практически любые, способные выдавать H.264 поток по протоколу RTSP. Если ваша камера умеет H.265, то вам нужно переключить ее в H.264, так как сервер не осуществляет перекодирование, а большинство браузеров пока «не умеют» новый формат. Надеюсь, это временно, и когда-нибудь можно будет вернуть обратно. Также можно оставить основной поток в H.265, а дополнительный сделать в H.264 и тогда в Конфигураторе указывать ссылку на него. Сохранится и возможность воспроизведения браузерами, и хорошее качество записи на диск (если требуется).


Установка и настройка:


1. Распаковываем программу в нужное вам место. Программа после запуска должна иметь возможность писать в свою вложенную папку data (да, не самое лучшее решение, я знаю), поэтому проверьте права на запись в нее.


2. Определитесь, будете ли вы использовать SSL-сертификат. Если да (строго рекомендую), то получаете сертификат на свое доменное имя и устанавливаете:

a. Для формата PEM: разместите файлы сертификата под именами cert.pem и privkey.pem в подпапке data.

b. Для формата PFX: разместите сертификат под именем cert.pfx в подпапке data (в случае использования обоих форматов приоритет отдается PEM).

c. Иные форматы: не поддерживаются, требуется конвертация (например, через программу OpenSSL).


3. Запускаем Конфигуратор файлом "Configurator.exe". Если сервер не на Windows, то вам придется скопировать Конфигуратор на соответствующий компьютер, там настроить и скопировать конфиг "data/config.xml" на сервер. Также можно расшарить папку с файлами программы по сети и запускать Конфигуратор из нее – этот способ использую я сам.


4. Добавляем камеры, прописываем RTSP-ссылки. Придумываем секретный общий ключ из латинских букв и цифр, указываем адрес сервера (необязательно в случае «просто посмотреть, протестировать»). Если используется SSL сертификат – включите защищенное соединение галочкой. Если вы используете сертификат формата PFX, то укажите пароль на него.


5. Копируем себе ссылки на камеры из поля в нижней части окна Конфигуратора.


6. Запускаем серверную часть файлом RTSP2HLS.exe (Windows) или RTSP2HLS (Linux). Оба варианта являются консольной программой.


7. Если целью установки программы не было тестирование, то скорее всего вам придется пробросить порты на роутере, чтобы сервер был виден из интернета (по умолчанию используется порт tcp/8000, его лучше изменить в Конфигураторе). А также добавить сервер в автозагрузку. Здесь вам придется действовать самим.


8. Готово – теперь вы можете смотреть камеры в браузере по тем ссылкам, которые вы скопировали в п.5.


Важное замечание – внесенные в Конфигураторе изменения вступают в силу только после перезапуска программы-сервера. Кстати, сам Конфигуратор требует для своего запуска платформу .NET Framework 4.0 или выше.


В случае, если видео воспроизводится некорректно – прерывается, сбрасывается на начало или сильно расходится с реальным временем, попробуйте следующее:


• Увеличьте число сегментов в плейлисте в Конфигураторе. Внимание – это увеличит задержку воспроизведения, видео будет отставать от реального времени сильнее.


• Проверьте настройки своей камеры – интервал ключевого кадра (интервал I-кадра) рекомендуется выставить равным N помноженное на частоту кадров, где N – число от 2 до 6. Если снимаемая сцена в основном статична (т.е. в кадре мало движения), то большие значения N заодно повысят ее качество. Параметр также влияет на задержку видео, плюс увеличивает время захвата снимка.


• Отключите функцию поддержки перемотки видео (в Конфигураторе).


Также программа-сервер умеет выдавать снимки с видеокамер. Для этого в ссылках, полученных из Конфигуратора, замените слово player на image. Открыв такую ссылку в браузере, вы увидите снимок в формате JPEG, его можно использовать в качестве превью на вашем сайте.


Ну а дальше все зависит только от ваших желаний.


Дистрибутив программы: https://github.com/carpediem-av/rtsp2hls/releases

Исходники программы: https://github.com/carpediem-av/rtsp2hls

Страничка автора (меня): http://carpediem.0fees.us

Показать полностью 1
Отличная работа, все прочитано!