• Как подготовить MySQL 8.0 с датасетом из 5 млн. фото (2 ТБ) и текстово-числовой информации (50 ГБ) для максимальной производительности на чтение?

    @rPman
    Для обучения нейросети mysql совершенно не подходит, абсолютно бесполезно и создаст дополнительные накладные расходы.
    Храните все в файлах, практически все библиотеки работы с нейронными сетями предоставляют свои форматы для хранения обучающей выборки, используйте их в т.ч. Понятно не удаляйте оригинальные изображения.

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

    Вам может понадобиться хранить сами нейронные сети (в процессе обучения их может быть много) и значения функций ошибки для обучающих данных для каждой сети, в данном случае наверное можно было бы организовать такое хранение в базе, но не изображения, а ссылки на них.
    Ответ написан
    Комментировать
  • Какой посоветуете фреймворк для создания конструктора?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Для тасканий картинок по канве
    https://konvajs.github.io/
    fabricjs.com
    https://two.js.org/
    Легковесное gui
    https://svelte.technology/
    Если результирующее изображение потребуется сохранять
    https://github.com/eligrey/FileSaver.js/
    Ответ написан
    1 комментарий
  • Как ускорить XAMPP под Windows?

    Adamos
    @Adamos
    Лучший способ ускорить WAMP - это вынести его за подоконник.
    Гравитация придаст ему необходимое ускорение.
    Ответ написан
    Комментировать
  • Чем опытнее разработчик, тем меньше соблюдается принцип KISS?

    @stratosmi
    Тем опытнее разработчик тем он лучше понимает когда и что нужно использовать.
    Паттерны, принципы и т.п. - это для начинающих важно. Потом ты уже сам понимать начинаешь.
    Ответ написан
    Комментировать
  • Какую БД выбрать для Electron-приложения?

    @Alex_Zdorgor
    SQL Lite
    Ответ написан
    Комментировать
  • Как настроить nginx + php_fastcgi с функциональностью Apache_mpm_itk + mod_php?

    Sky4eg
    @Sky4eg
    Web разработчик
    Я делал несколько иначе. Вот пример на ubuntu

    фрагмент конфига сайта
    /etc/nginx/sites-available/site.ru

     location ~ \.php$ {
                    fastcgi_split_path_info ^(.+\.php)(/.+)$;
                    # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
    
                    # With php5-cgi alone:
                    #fastcgi_pass 127.0.0.1:9000;
                    # With php5-fpm:
                    fastcgi_pass unix:/var/run/php5-fpm.sock;
                    fastcgi_index index.php;
                    include fastcgi_params;
            }
    


    далее фрагмент
    /etc/php5/fpm/pool.d/site.ru.conf

    ; Start a new pool named 'www'.
    ; the variable $pool can we used in any directive and will be replaced by the
    ; pool name ('www' here)
    [site.ru]
    
    ...
    
    ; Unix user/group of processes
    ; Note: The user is mandatory. If the group is not set, the default user's group
    ;       will be used.
    user = sky
    group = sky
    
    ...
    
    ; The address on which to accept FastCGI requests.
    ; Valid syntaxes are:
    ;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific address on
    ;                            a specific port;
    ;   'port'                 - to listen on a TCP socket to all addresses on a
    ;                            specific port;
    ;   '/path/to/unix/socket' - to listen on a unix socket.
    ; Note: This value is mandatory.
    ;listen = 127.0.0.1:9000
    listen = /var/run/php5-fpm.sock
    
    ...
    
    ; Set permissions for unix socket, if one is used. In Linux, read/write
    ; permissions must be set in order to allow connections from a web server. Many
    ; BSD-derived systems allow connections regardless of permissions.
    ; Default Values: user and group are set as the running user
    ;                 mode is set to 0666
    listen.owner = sky
    listen.group = sky
    listen.mode = 0666
    
    ...
    


    После это сайт работает от имени пользователя, в данном случае sky
    Ответ написан
    1 комментарий
  • Как на php проверить валидность SSL?

    zorca
    @zorca
    <?php
    $g = stream_context_create (array("ssl" => array("capture_peer_cert" => true)));
    $r = fopen("https://www.google.com/", "rb", false, $g);
    $cert = stream_context_get_params($r);
    $certinfo = openssl_x509_parse($cert['options']['ssl']['peer_certificate']);
    echo "Certificate info: <pre>". print_r($certinfo, true) ."</pre>";
    Ответ написан
    Комментировать
  • На кого регестрировать домен?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    1. Кинуть жребий :) Но в этом случае "все равны" больше не будет - тот, на ком будет домен, может его в любое время перенастроить или вообще продать.
    2. Зарегить контору и домен на контору, а самим стать ее учредителями. Тогда "все равны" сохранится.
    Ответ написан
    4 комментария
  • Почему так много удаленки на Bitrix?

    @spaceatmoon
    Очень сильный маркетинг.

    Ради интереса как-то хотел сделать один заказ на битриксе, там все-то нужно было доработать компонент. При просмотре кода будущего проекта я обалдел. В одном компоненте, а именно в одном его файле было всё: роутинг, контроллеры, модели, вьюха. Это было настолько убого, что хотелось плакать и смеяться. Тех денег этот геморой не стоил, так и закончилось моё знакомство с битриксом.
    Ответ написан
    8 комментариев
  • Где лучше всего искать со-основателя из области IT для моего стартапа?

    Jump
    @Jump
    Системный администратор со стажем.
    Где лучше всего искать со-основателя из области IT для моего стартапа?
    Где бываете там и ищите.

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

    Или у людей «горят глаза», но это школьники/студенты без опыта программирования, а иногда и знаний. Или это опытные разработчики, с позицией: «не нужен мне ваш бизнес и пользователи, просто дайте зарплату», которая не отличается от текущих подрядчиков.
    Возможно проблема в том, что вы предлагаете.
    У школьника глаза загорятся достаточно конфету показать, студент готов за тарелку супа мегапроект поднимать.
    А опытный разработчик грамотно оценивает цену своих услуг, и не готов работать за копейки.
    Какую долю от бизнеса вы ему обещаете? И каким образом? Какие гарантии даете, что выполните свое обещание? Или вы предлагаете сразу же переписать на него половину бизнеса? Достаточный ли оборот у бизнеса в данный момент, чтобы вызвать интерес?

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

    Вам нужно искать финансиста, инвестора, который оценит проект и вложит деньги.
    А на эти деньги вы купите работу нужных вам специалистов.
    Ответ написан
    3 комментария
  • Как исправить ошибку: Lost connection to MySQL server during query?

    @hx510b
    "Я знаю, что ничего не знаю"
    Судя по:
    Error in `/usr/sbin/mysqld': malloc(): memory corruption: 0x00007fcbfc124080

    1. сделать копию /var/lib/mysql на другой накопитель

    2. Исследуем и решаем:
    2.1. вариант1 - битая память - прогнать memtest, может перегрев системы? устраняем или, если обе проблемы не подтверждаются, то идем дальше. Хотя тут похоже сторонний виртуальный сервер. Но проблема может быть.
    Если проблема с ОЗУ, то протестировать внутри ОС можно созданием сжатых архивов и проверкой их целостности, в случае проблем с ОЗУ рано или поздно появятся ошибки контрольных сумм.

    2.2. вариант2 - либо испорчены файлы данных, и mysql становится плохо из-за кривого кода. файлы могут быть испорчены некорректным завершением работы сервера либо проблемами с блочным устройством:

    2018-08-20T05:10:47.359613Z 0 [ERROR] InnoDB: Could not find a valid tablespace file for `kubium/game`. Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting-datadict.html for how to resolve the issue.
    2018-08-20T05:10:47.359626Z 0 [Warning] InnoDB: Ignoring tablespace `kubium/game` because it could not be opened.

    - это может быть косвенным признаком проблем с файлами.
    2.2.1. проверяем состояние блочных устройств smartctl - наличие offline uncorrectable или relocated sectos - могут быть причиной порчи данных - замена накопителя. Для чужого хостинга это недоступно. Можно косвенно проверить чтением блочного устройства /dev/vda
    2.2.2. проверяем fsck файловую систему, наличие ошибок в файловой системы может указывать на повреждение содержания файлов БД. чиним и молимся, что важнейшие файлы не были задеты.
    2.2.3. проверяем структуру innodb/myisam файлов, для этого используем штатные средства диагностики или вспомогательные утилиты, например "Percona Data Recovery Tool for InnoDB can help recover corrupted or deleted InnoDB tables. https://launchpad.net/percona-data-recovery-tool-f..." если проблемы - пытаемся чинить.
    Простой старый способ решения некоторых проблем - это dump базы в sql файл , и импорт заново в базу. старую можно переименовать.
    2.2.4. проблема может быть вызвана повреждением файлов индексов, в этом случае пересоздание индексов может все решить.

    2.3. вариант3 - похожие проблемы могут наблюдаться при подсовывании двоичных файлов баз от более свежей версии mysql - проверяем эту версию.
    Можно попробовать обновить версию mysql или сменить ее на mariadb, возможно некоторые проблемы уже решены.

    На машине немного памяти - 1Гб, при исчерпании свободного ОЗУ в системе запускается OOM Killer, который убивает процессы в системе, вполне мог убить процесс mysql прямо посередине критичного изменения файлов БД. Это можно найти в логах.
    Ответ написан
    1 комментарий
  • Прочитал книгу по PHP, что дальше?

    SowingSadness
    @SowingSadness
    web-разработчик
    Стругацких, Пикник на обочине
    Ответ написан
    2 комментария
  • Стоит ли собрать стили в 1 файл или разделить на несколько при подключении к разным HTML документам?

    delphinpro
    @delphinpro Куратор тега Вёрстка
    frontend developer
    Для лендинга целесообразно подключать отдельный стилевой файл, ввиду назначения самой страницы — обычно действие посетитель должен произвести прямо на ней, и не гулять дальше.
    Ответ написан
    Комментировать
  • Книга, которая объяснит как работает ПК начиная с атомного уровня?

    Jump
    @Jump
    Системный администратор со стажем.
    Решил стать программистом, но немного неприятно кодить не понимая, что происходит под капотом.
    Разумно.

    Книга, которая объяснит как работает ПК начиная с атомного уровня

    Одной книгой тут не обойтись, и следует понимать что это довольно большой пласт знаний.
    Но тем не менее я бы порекомендовал три книги, в следующем порядке -
    1. Рудольф Сворень "Электроника шаг, за шагом"
    2. Чарльз Петцольд "Код. Тайный язык информатики".
    3. Эндрю Таннебаум "Архитектура компьютера"

    Прочтение этих книг даст понимание работы от физики полупроводников, до операционных систем.
    Книги с низким порогом вхождения, не требуют специфических знаний, объясняется очень доходчиво, и все вместе дают четкое понимание как это все работает.
    Этого вполне достаточно.
    А уж дальше - если где надо углубиться в специфику, будет уже понимание какие именно книги искать.
    Ответ написан
    Комментировать
  • Где найти и как установить PHP 5.4 на Ubuntu 16.04?

    romeOz
    @romeOz
    Конечно, можно заморочиться и собрать PHP из исходников. Кроме того, вам придётся собрать и Apache из исходников с добавлением модуля PHP (libapache2-mod-php).
    К сожалению или к счастью, у большинства разработчиков навык сборки чего-либо из исходников безвозмездно утрачен. Разве что расширения для того же PHP (pecl) иногда приходится собирать.
    Как вариант, предлагаю воспользоваться такой замечательной штукой, как контейнеризация, а именно Docker-ом. На текущий момент времени, это наиболее изящное и правильное решение. В приведённый ниже пример добавил линкование с СУБД MySQL

    docker network create mysql_net
    
    docker run --name app --net mysql_net -d -p 8080:80 \
      -v /host/to/path/app:/var/www/app/ \
      -v /host/to/path/config_apache:/etc/apache2/sites-enabled/ \
      romeoz/docker-apache-php:5.4

    , где
    • /host/to/path/app - путь к директории с вашим приложением (от корня), в данном случае, CMS Битрикс
    • /host/to/path/config_apache - путь к директории с вашим apache-конфигом. Можете посмотреть, как выглядит базовый файл конфигурации

    Далее, поднимем контейнер с СУБД:

    docker run --name db --net mysql_net -d \
      -v /host/to/path/data:/var/lib/mysql \
       romeoz/docker-mysql:5.5

    , где /host/to/path/data - директория с вашими данным (БД).

    В CMS Битрикс в качестве хоста в настройках БД, необходимо указать db, т.к. контейнер СУБД имеет такое имя - --name db.
    Ваше приложение будет доступно по адресу http://localhost:8080. Для красоты можете задать в /etc/hosts свой домен, к примеру, 127.0.0.1:8080 myapp.
    Если вы привыкли править БД с помощью web-клиента phpmyadmin, то вот здесь есть инструкция, как поднять официальный контейнер и для него. На вашем месте я бы воспользовался иным другим клиентом - свободным или не свободным. К примеру, во всех продуктах от JetBrains, в том числе, и в IDE PHPStorm, встроен отличный инструмент DataGrip, ранее известный, как 0xDBE.

    Естественно, есть необходимость в этом немного разобраться, но, поверьте, оно того стоит. За этим подходом будущее. Плюс не придётся засирать свою хост-систему всяким мусором, ведь контейнер всегда можно убить, а образ породивший его удалить.
    Ответ написан
    5 комментариев
  • Какой sql запрос выполнится быстрее?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    START TRANSACTION;
    select * from users where id = 54 FOR UPDATE
    //проверка бизнес логики на наличие денег
    update `users` set `balance` = `balance` - 150 where `id` = 54;
    COMMIT;


    Запрос "where `id` = 54 and `balance` >= 150" - опасен.
    Innodb лочит не конкретные записи, а диапазоны индексов - при таком запросе в блокировку будут попадать все записи с балансом >= 150, со всеми вытекающими.
    Ответ написан
    Комментировать
  • Как управлять docker'ом?

    @canselot
    Собираем образ PHP
    Стандартный официальный образ PHP не включает в себя никаких модулей, поэтому чтобы включить их нужно собрать свой образ на основе официального. Звучит немного страшновато, но на деле все просто. Создаем директорию для нашего образа images/php и в ней создаем файл Dockerfile следующего содержания:

    # Для начала указываем исходный образ, он будет использован как основа
    FROM php:7.1-fpm
    # Необязательная строка с указанием автора образа
    MAINTAINER PHPtoday.ru <info@phptoday.ru>
    
    # RUN выполняет идущую за ней команду в контексте нашего образа.
    # В данном случае мы установим некоторые зависимости и модули PHP.
    # Для установки модулей используем команду docker-php-ext-install.
    # На каждый RUN создается новый слой в образе, поэтому рекомендуется объединять команды.
    RUN apt-get update && apt-get install -y \
            curl \
            wget \
            git \
            libfreetype6-dev \
            libjpeg62-turbo-dev \
            libmcrypt-dev \
            libpng12-dev \
        && docker-php-ext-install -j$(nproc) iconv mcrypt mbstring mysqli pdo_mysql zip \
        && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
        && docker-php-ext-install -j$(nproc) gd
        
    # Куда же без composer'а.
    RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
    
    # Добавим свой php.ini, можем в нем определять свои значения конфига
    ADD php.ini /usr/local/etc/php/conf.d/40-custom.ini
    
    # Указываем рабочую директорию для PHP
    WORKDIR /var/www
    
    # Запускаем контейнер
    # Из документации: The main purpose of a CMD is to provide defaults for an executing container. These defaults can include an executable, 
    # or they can omit the executable, in which case you must specify an ENTRYPOINT instruction as well.
    CMD ["php-fpm"]

    Также в этой папке создадим пока пустой php.ini, чтобы не было ошибки при сборке образа. Можете добавить в него нужные вам настройки.

    Источник
    Ответ написан
    Комментировать