• Как сделать вывод длинной случайной строки из .txt в php?

    SagePtr
    @SagePtr
    Еда - это святое
    Для начала, прочитать файл и "проиндексировать" его - сохранить где-то смещения строк, чтобы весь файл повторно каждый раз не перечитывать. А потом уже можно брать случайное смещение из файла, хранящего смещения, и по нему уже брать из исходного файла случайную строку.
    Ответ написан
    2 комментария
  • Разве Composer бесполезен в 2017?

    clockworkbird
    @clockworkbird
    leko.team
    Если тимлид не ставил задач по подключению композера и настройки тестов, то получается, что вместо реальных задач вы занимались самодеятельностью и потратили на это ресурсы компании (свое рабочее время).
    Junior-вакансия это прощает, но если хотите работать в команде, нужно понимать, что в работе важен результат, а не самолюбование.
    Кроме того, исходя из того, что проект старый, высок риск того, что вы подключив композер что-то сломали. Например, кто-то когда-то "пофиксил" код в копипастенной библиотеке (как бы это дико не звучало), а вы выкачали ее исходную версию из репозитория и т.д. - моментов, на самом деле много.
    Может это разовая задача по внешнему проекту на 3 рубля и какой смысл в ней городить огород, если ее нужно сделать за пару часов, отдать клиенту и забыть.
    Конечно, тимлид хоть и динозавр, но будет обоснованно не доволен. Странно, что он не контролировал ход работы - такую самодеятельность в процессе работы нужно пресекать на корню.

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

    Рефакторинг проекта и модернизация процесса разработки - замечательные, но отдельные задачи, которые требуют предварительного обсуждения и согласования.
    Сделай поставленную задачу, предложи вариант развития (композер и тесты), обсудите с командой и тимлидом, запланируйте внедрение - все будут довольны.
    Ответ написан
    2 комментария
  • Как получить все элементы очереди RabbitMQ?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Нельзя получить "все сообщения из очереди". Получаете их по очереди без ack, записываете в базу, потом делаете ack. Можно посмотреть в сторону метода basic.consume.

    А вообще вы же с очередью работаете. Не надо делать батч из очереди. Это противоестественно. Особенно учитывая что размер очереди изначально не известен
    Ответ написан
    Комментировать
  • Можете пожалуйста посоветовать хорошие обучающие видео по сетевым технологиям?

    @dmshar
    "качественных фундаментальных знаний о сетях" из видеороликов невозможно получить в принципе. Ни по сетям, ни по какой другой сфере технических знаний.
    Если Таненбаум для вас не по зубам, то есть Олифер. А есть совершенно бесподобная и непревзойденная книжка для (почти) новичков Джеймс Куроуз Компьютерные сети, Нисходящий подход,. Прочитав - поймете разницу между книгой и видеоклипом.
    P.S. И сети - это не плотницкое дело. Умственных усилий на изучение и понимание надо на три порядка больше. По сути - это и объясняет, почему клипы про дерево - имеют место быть, а про работу сети - нет. Кто этого не понимает - даже в сети раскует остаться на уровне "плотника".
    Ответ написан
    2 комментария
  • Какую часть сервера лучше писать на PHP/Java/Go/C#/Rust вместо Node.js?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Все что написал автор не имеет особого значения. Языки выбирают вообще не по такому принципу.
    Любой из них - вашу задачу решает. И на 99% выбор будет обусловлен экспертизой вашей команды
    по отношению к ЯП.

    И оцените риски принципиальной невозможности что-то сделать. Например - запустить фоновое задание или поток внутри процесса Node. Это - важный момент и Liberrum Veto, который может просто исключить какой-то
    язык или технологию из списка вообще.
    Ответ написан
    Комментировать
  • Как вы боретесь с выгоранием?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    1. Это не выгорание, при выгорании невозможно не то что работать, а тупо встать с дивана.
    2. Нужно заранее запланировать таску "допиливание" и не закрывать проект (даже морально) пока эта таска не закрыта. Может быть даже проактивно спрашивать заказчика - есть ли какие-то доработки?
    Ответ написан
    Комментировать
  • Как защитить вебинар от копирования?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Всё, что попадает клиенту на его устройство - может быть записано, ничего вы с этим не сделаете.
    Самые вредные камеру перед монитором поставят.

    Ваш максимум - персонифицировать вывод, что позволит вам в случае слива определить, кто конкретно это сделал.
    Что с этим знанием делать - я не знаю, может, есть варианты каких-то соглашений перед просмотром с ответственностью за распространение. :)
    Но то, что запись не запретить - это 100%.
    Ответ написан
    Комментировать
  • Валидация формы, как сохранить загруженные файлы?

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

    У вас как раз накопился технический долг в виде реализации полноценного файлового менеджера.
    Который должен сразу после выбора пользователем файлов отправлять каждый файл по ajax на сервер. Сервер в это время складывает файлы во временный каталог пользователя, отдавая в качестве ajax-ответа его временное хэш-имя. Во время отправки формы вы уже не отправляете содержимое input[type=file], а отправляете список хэш-имен удачно загруженных файлов, а на стороне сервера если все поля валидны и файлы валидны (их можно допроверить), то просто копируете файлы из временного каталога в постоянный (или в базу, или в облако, или другой каталог облака, смотря где основное хранилище). Если какая-та проверка неудачная, то вы легко можете вернуть обратно клиенту его заполненные поля, и список загруженных файлов, указав, в каком файле какая ошибка. На стороне клиента можно восстановить как поля, так и список файлов в менеджере.
    Если не хотите в полной мере решать технический долг, то можно поступить более простым путем.
    После выбора файлов пользователем, вычитываете их содержимое объектом FileReader и складываете в кодировке base64 в скрытые поля input[type=hidden] (при окончании зачищаете input[type=file], чтобы форма была нагружена только бинарными данными из скрытых полей), это позволит вам отправлять список файлов вместе с отправкой формы и восстанавливать input[type=hidden] поля при возникновении ошибки, при возврате данных формы обратно клиенту для корректировки.
    Такой подход увеличит время отправки и получения формы, не освободит от того, что вам нужно прорисовывать состояние списка файлов на форме, освободит только от использования ajax.
    Ответ написан
    Комментировать
  • Как в opencv достигается такая скорость работы?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Потому что он написан не на бидоне, а на C, с использованием SIMD инструкций.
    Ответ написан
    4 комментария
  • Как вывести картинки на https?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    То с чем вы столкнулись - CORS
    Причины могут быть разные.
    Если ссылки относительные, то есть не указан протокол http и https, но при этом нет редиректа с http на https, то предположительно следующая причина:
    У вас скорее всего используется apache + nginx. Соответственно, за статику отвечает nginx. А он выводит через http, так как не настроен редирект статики. Обратите внимание все ли форматы картинок, файлов css & js выводятся через http. Напишите хостеру и пусть, добавить необходимые конфиги.
    А если ссылки абсолютные, то замените http на https при помощи плагина Better Search Replace
    Ответ написан
    Комментировать
  • Как искать информацию в SQL базе в колонке JSON формата?

    С JSON можно нормально работать в MySQL, только надо выбирать подходящие для поиска структуры данных, а не как в 1-м столбце (ассоциативный массив).
    Каждый такой объект в 1-м столбце
    {
            "age_to": "8",
            "gender": "children",
            "age_from": "4",
            "quantity": "400",
            "additionally": "no"
        }
    надо хранить в отдельной записи для возможности поиска по ним.
    В целом, искать нужно при помощи JSON Path Syntax (читать документацию), например так:
    SELECT * FROM table WHERE column ->> '$.a.b' = 'bla-bla'

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

    SEARCH: Боль в костях
    Это уже полнотекстовый поиск.
    Короче, нельзя просто класть любой JSON в СУБД и полагаться на её возможности. Нужно изначально проектировать БД для записи и чтения с разными видами запросов.
    Ответ написан
    Комментировать
  • Как при выводе из БД убрать области?

    Stalker_RED
    @Stalker_RED
    Все записывается в одну ячейку в БД
    это плохо.

    Можно накостылить, обработать эту запись как текст
    https://ideone.com/MaF2uh

    Можно прямо в БД https://dev.mysql.com/doc/refman/8.0/en/regexp.htm...
    Ответ написан
    1 комментарий
  • Что выбрать: git или svn?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Берите git
    svn может быть слегка проще, но старее, популярность гита сейчас такова, что многие разработчики и не знают про другие системы.

    Документация - на сайте. есть на разных языках. https://git-scm.com/doc

    "поднимать" не обязательно, можно просто на локальном диске git init и все.
    Ответ написан
    1 комментарий
  • Как сделать компилятор других языков на сайте?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Арендуете виртуальный сервер, потому что на обычном хостинге установить компилятор у вас не выйдет.
    Ставите на нем консольный компилятор.
    Изучаете как пишется бэкенд на любом удобном языке, а именно - как дать возможность пользователю аплоадить файл, как этот файл передать в компилятор, как вернуть пользователю готовый результат.
    profit.

    Если вы хотели чтобы ответ был подробнее и понятнее, и при этом кратко и просто, то не выйдет.
    То, что вы хотите - довольно сложный функционал, если нужно сделать красиво и удобно.
    Ответ написан
    Комментировать
  • Укрепить знания PHP велосипедом или через фреймфорк?

    Sanes
    @Sanes
    Стоит задача реализовать интернет-магазин

    Про велосипеды не может быть речи.
    Ответ написан
    Комментировать
  • Как правильно сделать регулярное выражение для phpstorm?

    @dodo512
    Find: \$_POST\[(".*?")\];
    Replace: \$this->query->get($1);
    Ответ написан
    Комментировать