Задать вопрос
  • Как сменить дистрибутив Linux через SSH без доступа к веб-панели?

    @pfg21
    ex-турист
    не получится.
    сделать теоритически можно (убунту основана на дебиане и множество пакетов идентично), но потребуется хорошие познания в линуксе и много ковыряний.
    Ответ написан
    2 комментария
  • Изучение php с нуля для верстальщика?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Тут проблема скорее не в том, что 4-5 лет, а в том, что за редчайшими исключениями, любые видеокурсы - это отборный говнокод. Конкретно про Дмитрия Лаврика не скажу, но простая статистика говорит о том, что учить РНР по видеокурсам не стоит.

    Лучше потратьтесь на книжку, Джон Дакетт, PHP&MySQL. Там очень толково, на примерах даётся не только язык, но и все важные аспекты программирования - обработка ошибок, отладка, рефакторинг, структура приложения, SQL, обработка изображений, и куча всего остального. В последних главах весь материал даётся на примере создания простой но рабочей социальной сети.
    Ответ написан
    1 комментарий
  • Можно ли как то внедрить Laravel постепенно, например установить как основной каркас и в него уже встроить CMS?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    разработчики все время советуют перейти на новые технологии а если точнее на Laravel и с MySQL на PostgreSQL чтоб сайт не только стал современным но и работал шустрее.
    Переход с самописа на лару - хороший шаг, переход на постгрес нужен только если нужны конкретные задачи, решаемые постгресом лучше чем мускулем. Например, если у вас есть большой массив json данных, хранимых в соответствующих полях и требующий каких-либо выборок на основании этих полей, то есть по сути - если у вас база хранит ненормализованные сортируемые данные. В остальном выгода от перехода с мускуля на постгрес будет не видна без микроскопа.

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

    Обычно заявы по типу "мускуль гуано, надо менять на постгрес" без конкретных аргументов признак поклонников карго культа, а не профи. Так что я бы послушал аргументы для начала, а то потом окажется что там индексы только первичные на таблицах, про explain никто никогда не слышал, а выборки идут по тысяче в циклах, но виновата, конечно же, тормознутая бд.
    Ответ написан
    2 комментария
  • А return 0(1) * _getch(), есть ли смысл от такой конструкции?

    @Furax
    Похоже на неуклюжую попытку игнорировать результат вызова функции _getch() и не словить предупреждений.

    Синтаксис "0(1)" специфичен для Visual Studio. Clang 18.1.3 и GCC 13.3.0 его не понимают. Писать на C++ так, чтобы при переносе на другую платформу приходилось править синтаксис, - довольно плохая практика (обычно находится и так достаточно проблем, чтобы их ещё руками плодить). С другой стороны, функция _getch() объявлена в conio.h, которого на том же линуксе нет, поэтому, возможно, переносимость и не была целью.

    Кстати, за более чем 15 лет на C++ вижу такой синтаксис впервые. Повод задуматься о том, насколько он будет понятен следующему разработчику.
    Ответ написан
    1 комментарий
  • Можете посоветовать какой-нибудь задачник по патернам проектирования?

    @Mercury13
    Программист на «си с крестами» и не только
    Задачник невозможен, потому что…
    1. Паттерны проявляют себя в крупных программах. Даже 2000 строк можно написать по наитию.
    2. Нет единого ответа. И как вы будете сверяться, верно вы сделали или нет?
    3. Сильно зависит от языка: например, идиома pimpl — это чистый Си++.
    4. Даже зависит от того, библиотека встроенная или внешняя: внешние библиотеки в низкоуровневый код всегда стараются вносить очень осторожно.

    Пример: нам надо включать-выключать лог в консольной программе, простейший вопрос. Варианты…
    1. Просто переменная isLoggingOn, которая включает этот самый лог.
    2. Одиночка-стратегия-null object.

    И тут появляется вопрос: а что делать, если у нас тут ещё и форматирование на манер printf? Где находится утилита форматирования: в «волшебном круге» интерфейса Logger или нет? А если нет — то можно придумать модуль-утилиту за пределами этого «волшебного круга»? А если пишем на Си#, может, этот модуль-утилита — это метод-расширение? А если пишем на Си++, может, вообще можно не заморачиваться из-за того, что связанные с std::format функции шаблонные и если ни одна не расшаблонилась — с нас и взятки гладки?
    Ответ написан
    Комментировать
  • Вендинг: как создать ПО для собственного аппарата?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Есть разные варианты реализации - зависит от требований к аппарату и финансовых возможностей. Самый простой вариант: обычный х86 ПК на mini-ITX плате с виндой или линуксом внутри. Дополнительные девайсы подключаются по USB/Ethernet и работают через стандартные драйверы. Вариант чуть более сложный - на базе малинки/апельсинки с линуксом. Экран - любой встравиваемый с тачем и HDMI. Возможные проблемы - надо подбирать дополнительные девайсы, которые хорошо и адекватно работают под линуксом и для которых есть драйверы. Для удалённого управления используется стандартный сотовый модем. Управление - SSH + VNC для просмотра и контроля изображения. Девайс туннелируется в отдельную приватную сетку. ПО обычно в виде стандартной ХТМЛ страницы, отображаемой в браузере. Если приложение может работать без интернета - то через локальный веб-сервер. Либо хромиум/фаерфокс в киоск режиме либо NWJS со всем уже встроенным. Самый замороченный вариант - планшет на андроиде в качестве основы экрана/монитора/тача, там может не всякий девайс получиться заставить работать. Дополнительных портов тоже не очень. Я делал ПО для всех этих трёх вариантов. Везде использовал NWJS. В т.ч. на планшете - он был с виндой и х86 вроде даже (ну вот так захотелось клиенту). А для малинки делал даже готовую сборку дистрибутива линукса и упаковку в готовый образ со всеми настройками и ПО - его только залить на флешку, подключить и девайс готов к работе.
    Еще один важный момент, который следует учитывать - условия и место работы киоска. В пыльном месте - воздушные фильтры в корпус с минимальным количество отверстий и везде пассивное охлаждение. На улице -требуется промышленное исполнение оборудование, иначе слишком дорого будет ездить ремонтировать его из постоянных сбоев и поломок. В какой-нибудь деревне или промышленном районе - встроенный ИБП, несколько модемов или мультисим для связи. И т.д. и т.п.
    Ответ написан
    Комментировать
  • Вендинг: как создать ПО для собственного аппарата?

    @SunTechnik
    Ответ написан
    Комментировать
  • ИИ на стадии обучения программированию. Стоит ли?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Обучение - это формирование связей в тканях мозга, поэтому оно больше похоже на накачивание мышц, а не на загрузку файлов на флешку. И происходит это, как и с накачиванием мышц, только под нагрузкой. Нельзя нарастить бицуху, если гантели будет тягать робот. Нельзя научиться программированию, если задачи решает ИИ.
    Ответ написан
    Комментировать
  • Можете помочь с установкой Wubuntu?

    NVidia не пускает вас скачать свои драйверы.
    Используйте VPN

    Но смысла особого в использовании именно в "Wubuntu" нет, используйте обычные версии: Ubuntu/Kubutu/Xubuntu.
    Ответ написан
    Комментировать
  • Как в ubuntu смотреть, какой пользователь что делал?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    zver - наш воображаемый пользователь-зверь.

    1. Какой пользователь в какое время заходил?

    - last - история входов.
    - last zver - история входов зверя.
    - lastb zver - история неудачных входов зверя.
    - last zver | grep "Jan 21" - история входов зверя за 21 января сего года.
    - last -s -7days zver - история входов зверя за последние 7 дней.
    - last -s 2025-01-15 -t 2025-01-21 zver - история входов зверя за 15-21 января 2025 года.

    2. Действия того или иного пользователя?

    - cat /home/zver/.bash_history - история команд зверя.
    - who -u - показывает активных пользователей (терминалы и время входа).
    - ps -u zver - показывает список активных процессов зверя.
    - sudo iotop -u zver - мониторинг ввода вывода пользователя зверя (в режиме реального времени).
    - sudo iftop -f "src user zver" - показывает сетевой трафик зверя.
    - sudo tail -f /var/log/syslog | grep zver - просмотр действий зверя в реальном времени.
    - sudo journalctl -f | grep zver - отслеживание действий зверя в реальном времени (если используется systemd).
    - sudo lsof -u zver - какие файлы открыты у зверя.
    - find /home/zver -type f -mmin -60 - какие файлы изменил зверь за последний час.
    - stat /home/zver/nomera-devchonok.txt - показывает подробности что делал зверь с файлом стратегического назначения.

    3. Если пользователь пользовался sudo -i, sudo -s, sudo su, как посмотреть, что он делал под этими оболочками?

    - sudo grep zver /var/log/auth.log - история команд (втч. под sudo) зверя.
    - sudo zgrep zver /var/log/auth.log* - просмотр истории команд зверя из текущих и архивных логгов.
    - sudo aureport -x --summary - показывает сводку команд (втч. под sudo).

    Расширенный мониторинг зверей - auditd и еще.
    Ответ написан
    2 комментария
  • Какой использовать стек для написания онлайн сервиса управления производством?

    @rPman
    Я знаю, очень часто у компании нет нескольких миллионов рублей, что бы заплатить сторонней компании на атусорсе, что бы реализовать свои хотелки, к тому же, выбрав компанию разработчика, вы подсядете на его вендорлок (искусственно созданные усложнения, затрудняющие поддержку другими разработчиками) и сменить уже почти не получится, а зная это, компания будет требовать даже за простую работу высокую стоимость и дальше.

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

    Готовое решение никогда не будет полностью готовым! Всегда в нем будет требоваться что то доработать под нужды организации. Именно на этом (и не только) зарабатывают 1С разработчики, коробочная версия продукта, с хорошей поддержкой законодательства и возможностью доработки... только уж дорого получается.

    p.s. задачу нужно начинать с проведения анализа, составления ТЗ (даже если кажется что это простенькая задача),.. и где то в самом низу можно подумать о выборе технологих и фреймворков, уже после того как уже есть люди, которые будут готовы это решать и в них разбираются

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

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

    @Drno
    Потому что правильно использовать режим киоска на линукс)
    Ответ написан
    Комментировать
  • Как настроить ассоциацию типа файлов к программе в Astra Linux?

    @SamDurak Автор вопроса
    Adamos Спасибо!
    полное решение чуть иное.
    в Astra Linux 1.8.1.12 игнорируется пользовательская база типов файлов, поэтому нужно добавить новый тип в общесистемную....
    В файл (имя на ваше усмотрение) /usr/share/mime/packages/drawio.xml закидываем содержимое, чтобы определить новый тип mime на основании расширения файла
    -> после, обновляем базу данных "update-mime-database /usr/share/mime"
    -> закидываем в секцию [Default Applications] файла ~/.config/mimeapps.list сведения ассоциации (или общесистемный "/etc/xdg/mimeapps.list" я использовал пользовательский т.к. оно работает, и мне так показалось правильней)
    text/drawio - это мой из головы придуманный не присутствующий в БД mime тип

    sudo -s
    cat << EOF > /usr/share/mime/packages/drawio.xml
    <?xml version="1.0" encoding="utf-8"?>
    <mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
        <mime-type type="text/drawio">
            <comment>File drawio</comment>
            <comment xml:lang="ru">файл drawio</comment>
            <glob pattern="*.drawio"/>
        </mime-type>
    </mime-info>
    EOF
    update-mime-database /usr/share/mime
    exit
    nano ~/.config/mimeapps.list


    в mimeapps.list добавляем в формате
    [Default Applications]
    .....
    <наш mime тип>=<название файла desktop для запуска приложения который хранится к примеру тут ~.local/share/applications/fly/> получилось так:
    text/drawio=drawio-x86_64-25.0.2.AppImage.desktop

    Поддержке астры о решении чур не рассказывать =))) а то они не знают как у них это работает....
    Ответ написан
    1 комментарий
  • Направления создание клона Minecraft?

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    Освоить базовый синтаксис русского языка.
    Ответ написан
    1 комментарий
  • Существуют ли эталонно красиво написанные программы?

    @Everything_is_bad
    Беда в том, что довольно трудно найти хорошо написанный код, который можно было обозреть целиком.
    бесполезное занятие, больше похоже на прокрастинацию, короче пока сам не начнешь понимать какой код "красивый", какой нет (а это только когда сам напишешь кучу кода), толку от рассматривания не будет.
    Ответ написан
    Комментировать
  • В чем различие между phpMyAdmin, MySQL workbench и Microsoft SQL Server?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Это поговорка "В огороде бузина, а в Киеве дядька" по-айтишному.

    • Microsoft SQL Server - это сервер. То есть программа, которая постоянно висит в памяти и принимает запросы от клиентов. Условно говоря - то, что и называется базой данных. Ну или точнее - СУБД, системой управления базами данных
    • MySQL workbench и phpMyAdmin - это клиенты, то есть программы, которые могут посылать запросы на сервер. Но на Microsoft SQL Server они посылать запросы не могут, потому что работают с другим сервером - MySQL.
    • при этом отличия между MySQL workbench и phpMyAdmin минимальные - обе являются графическими клиентами для СУБД MySQL, позволяя администрировать базу данных, редактировать таблицы в визуальном редакторе и выполнять SQL запросы. Только первое это десктопная программа, а второе - убогий веб-интерфейс, которому для работы нужен веб-сервер. И вместо которого всегда надо использовать нормальный клиент, например DataGrip, ну или хотя бы тот же Workbench.
    Ответ написан
    5 комментариев
  • Выбор между видеокартами Nvidia и AMD для анимации интерфейсов — бюджетные варианты?

    @rPman
    Анимация интерфейса не должна требовать дискретную видеокарту, должно хватать встроенной.

    Если это не так, гнать разработчика взашей.
    Ответ написан
    Комментировать
  • Как скрыть ответ api от клиента?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Никак. Все что "загрузилось браузером" - доступно клиенту. Вопрос лишь в усложнение получения доступа к этим данным, например - разбить получение данных на разные части.
    Ответ написан
    2 комментария
  • Как решать задачу?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Надо сделать несколько наблюдений: во-первых, нам без разницы, в каком порядке шары на каждом уровне - важны лишь количества там шаров всех 4 цветов. Во-вторых, если на каком-то уровне остались только белые шары - то мы этот уровень больше никогда трогать не будем. В-третьих, что бы мы не делали на одном уровне - это никак не влияет на другие уровни. Поэтому можно их все рассматривать независимо. Надо решить задачу для каждого уровня отдельно и просуммировать количество дней (и единицы, если на уровне можно что-то оставить).

    Рассмотрим теперь один уровень, который описан 4 числами a,b,c,d и нам надо оставить как можно больше шаров белого цвета (их d). За один ход мы можем приравнять к 0 одно из 4 чисел и вычесть по 1 из отсавшихся ненулвевых. Ясно, что нет смысла занулять d. Т.о. за 3 хода мы можем получть 0,0,0,max(0,d-3). Но, например, если у нас было 2 2 2 3, то занулив a и b мы уменьшениями на 1 зануляем и c. Т.е. для маленьких чисел имеет смысл подумать в каком порядке их занулять. Но мне лень даже думать как именно - ведь их всего 3 числа - можно тупо перебрать все 6 перестанвок и выбрать ту, в которой за наименьшее количество ходов мы их все занулим.
    Ответ написан
    6 комментариев
  • Какой отечественный linux выбрать для веб-разработки?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    "Отечественных" линухов всего пять.
    Альт - самая давняя разработка, много лет назад отделившаяся от ветки Mandrake и уже больше двадцати лет пилимая своей командой. init-система - systemd, формат пакетов rpm. Как и любой пакетный дистриб, полностью зависит от воли сборщика. Выпускает дистрибы типа "сервер", "рабочая станция" etc. Особенностью дистриба "рабочая станция" является крайне нелепое разбиение диска по умолчанию
    RED OS - разработка на базе центоса компании "РЕД СОФТ". Присутствует некий софт собственной разработки типо для облегчения входа в домен и все такое (не проверялось). init - systemd, формат пакетов RPM. Справедливо также замечание о пакетном дистрибе. Есть свободная и сертифицированная редакция. В оформлении навязчивые красные тона.
    Astra - пожалуй самый распиаренный и самый неудобный дистриб. Основное применение - армейка, госструктуры, вот это все, соответственномного своих разработок, которые нельзя заменять на что-то более удобное. Я бы наказывал програмистов приговаривая работать на астре :D Основана на дебиане. init - systemd, формат пакетов DEB. Справедливо также замечание о пакетном дистрибе. Есть свободная и сертифицированная редакция.
    ROSA - наиболее мне понравившийся (из systemd-дистрибов) дистрибю Основан на Mandriva. Разрабатывается НТЦ РОСА, есть свободная и сертифицированная версии, причем последние - основная продукция. init - systemd, формат пакетов - RPM
    Calculate - единственный представитель не-systemd дистрибов. Основан на Gentoo, соответсвенно порог входа - такой же как на генте. Анонсируется множество улучшений, которые по факту не работают - они есть, но по ним совершенно нет никакой документации, поэтому как правило используется как "русская гента с инсталлятором". init - systemv, формат пакетов - XPKG. Похож на пилу-болгарку - в умелых руках невероятно опасен, в неумелых способен довести до нервного срыва :D
    Ответ написан
    Комментировать