Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
Rpsl

Rpsl

Кратко о себе
  • 70
    вклад
  • 2
    вопроса
  • 75
    ответов
  • 31%
    решений
Лайки
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Как лучше организовать базу данных?

    FanatPHP
    FanatPHP @FanatPHP
    Чебуратор тега РНР
    Здравствуйте! Я скачала файл из Интернета, а он мне оказался не нужен. Как его теперь закачать обратно? (с)

    Задача какая-то бредовая, особенно в части про
    Если удалил после скачивания книгу и нет больше пользователей которые скачали книгу то удаляем user_id и книгу?

    А структура примитивная:
    таблица книг
    таблица юзеров
    таблица скачиваний вида книга_ид-юзер_ид
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Что лучше использовать для компиляции less в Yii 2.0?

    miraage
    Mikhail Osher @miraage
    Старый прогер
    На мой взгляд, всю работу с эссетами лучше поручить Grunt/Gulp.
    Ответ написан более трёх лет назад
    5 комментариев
    5 комментариев
  • Почему nginx (в связке с unicorn) не запускается на 80 порту?

    opium
    Пума Тайланд @opium
    Просто люблю качественно работать
    Попробуйте прочитать хоть один мануал по настройке такой связки, вопрос из разряда я сделал полную фигню, не вникая в конфиги ни на грамм, почему у меня получилась фигня, ведь я сделал фигню, а хотел конфетку, причем конфетку я не делал я делал фигню.
    Ответ написан более трёх лет назад
    10 комментариев
    10 комментариев
  • Как перезагрузить скрипт Node.js из под этого же скрипта?

    Scorpi
    Scorpi @Scorpi
    Просто запустите node через forever и после

    process.exit(0)
    он сам перезапустит ваше приложение.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как составить регулярку на PHP для замены синтаксиса логики псевдокода в синтаксис TWIG?

    BatteryLow @BatteryLow Автор вопроса
    В общем если кому пригодится поступил в итоге так:

    Рекурсивно сформировал массив с содержимым скобок в строке функцией:
    function recursiveSplit($string, $layer, &$result) {
            preg_match_all("/ЕСЛИ\((([^()]*|(?R))*)\)/",$string,$matches);
    
            if (count($matches) > 1) {
                for ($i = 0; $i < count($matches[1]); $i++) {
                    if (is_string($matches[1][$i])) {
                        if (strlen($matches[1][$i]) > 0) {
                            $result[$layer][]=$matches[1][$i];
                            $this->recursiveSplit($matches[1][$i], $layer + 1, $result);
                        }
                    }
                }
            }
        }

    Дальше опять же рекурсивно но, начиная с нижнего уровня(для реализации возможности вложенных ветвлений) прошелся по этому массиву разбивая строки с содержимым скобок с помощью explode (если не получалось, то значит это просто математическое выражение оно обрамлялось в {{ }} для твига) на логическую часть, ветки прохождения проверки и не прохождения соответственно, из этого формировал строку с синтаксисом твига, и заменял на неё псевдокод в исходной строке.

    Попахивает говнокодом конечно, но ничего более внятного мой мозг выдать не смог.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • MongoDB: перезаписывает ли update одинаковые значения?

    opium
    Пума Тайланд @opium
    Просто люблю качественно работать
    ну как не нашли там об этом черным по белому в самом начале написано
    Ответ написан более трёх лет назад
    15 комментариев
    15 комментариев
  • Как организовать систему лицензий (ключей) для проекта на PHP?

    opium
    Пума Тайланд @opium
    Просто люблю качественно работать
    С учетом того что она написана на джава и перле ещё можно смело продавать без ключей.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как исправить ошибку в PHP коде?

    mumrum @mumrum
    нащайникэ пащиму?!
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • 1 папка и 10 000 картинок или 10 000 папок и по одной картинке в каждой?

    miraage
    Mikhail Osher @miraage
    Старый прогер
    Вам определенно нужен jQuery.
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Как рекурсивно обойти дерево?

    Aliance
    Илья Лесных @Aliance
    for in + рекурсия. Или это так же трудно, как и воспользоваться кнопкой "код" для адекватного форматирования вопроса?
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Где описывается кастомный Smarty тег {$dg}?

    Тимофей Яценко @thekip
    Php/C#/Js Developer
    Это не кастомный тег, это вывод переменной смарти. Ищите в контроллере где эта переменная задается.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Нужно ли хорошо знать математику, чтобы стать программистом? (в частности PHP разработчиком)

    IgorO2
    1001001 111 @IgorO2
    73
    Тот кто пишет то что не нужно, они обманывают Вас. Взять те же самые условные операторы без основ Булевой алгебры, будет сложновато составлять выражения.
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Как можно удобно отправлять запросы (post, get и проч.) на сайт?

    Holzfaller
    Artyom Lagun @Holzfaller
    Ruby / Ruby on Rails developer (full-stack)
    есть ещё Postman - REST Client для хрома. очень удобное приложение
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Какой параметр php.ini влияет на такую ошибку?

    Melkij
    Melkij @Melkij
    PostgreSQL DBA
    Не настройка. Версия PHP.
    empty, являясь языковой конструкцией, а не функцией, до PHP5.5.0 могла проверять только переменные.
    ru2.php.net/empty
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Стоит ли использовать MongoDB?

    Алексей @fuCtor
    Ruby разработчик
    Ситуация такая же была, использовал для хранения MySQL. Работало (в плане записи все шустро). Но был один критичный момент. Т.к. вариантов сообщений было много, и под каждый написать таблицу было не самое лучшее решение + поля переменные. Одним словом структура описана только на верхнем уровне. Укладывать приходилось что-то в поля, что-то в BLOB. Как результат поиск толком не работал. Обработка была тяжелой. Иногда выпадало по таймауту.
    После было решено отказаться в пользу MongoDB. С момента перехода скопилось уже несколько миллионов записей. При этом занимает лишь 3.4Гб оперативы, на диске гиг (половина это индексы). Для анализа настроен инкрементальный MapReduce по расписанию. Поиск укладывается в секунду и меньше. MapReduce (5агрегаций) в среднем выполняется за пару секунд.
    За время эксплуатации никаких нареканий, одно удовольствие. В дальнейшем можно будет поднять кластер и настроить шардинг.

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

    Rowdy Ro @rowdyro
    Нанять людей у которых есть данный опыт.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как ограничить скачивание файла по прямой ссылке?

    fornit1917
    Vit @fornit1917
    На основе заголовка X-Accel-Redirect и директивы internal в nginx можно реализовать любую логику по ограничению доступа. И в отличии от отдачи файла непосредственно php-скриптом, этот вариант намного эффективней, т.к. php-скрипт только проверку доступа будет делать, а отдачей уже займется nginx.
    Пример использования: www.opennet.ru/base/net/nginx_x_accel_redirect.txt.html
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как создать автоматически генерируемое число ПИ?

    iiil
    Юрий Лобанов @iiil
    Инженер и вэб-дизайнер, рисую.
    Сначала подумал - что, б..ть, за бред.
    Потом посмотрел на автора вопроса - все ок, ребята, для него вопрос вполне нормальный.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Что почитать, чтобы подтянуть знания по mysql?

    Melkij
    Melkij @Melkij
    PostgreSQL DBA
    Весьма рекомендую книгу "MySQL. Оптимизация производительности".
    www.ozon.ru/context/detail/id/6573935
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как лучше реализовать парсинг и трансляцию большого кол-ва RSS средствами PHP?

    Melkij
    Melkij @Melkij
    PostgreSQL DBA
    Ну, например:
    ставим сервер очередей
    По крону или ещё как ставятся задачи на обход определённых адресов в очередь.
    Воркеры разбирают задачи из очереди краулера, стучатся по адресу, разбирают результат.

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

    Но если у вас проблема всего-лишь с time limit'ом?...
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
Оценили как «Нравится»
  • 1
  • 2
  • Следующие →
Самые активные сегодня
  • black1277
    black1277
    • 8 ответов
    • 0 вопросов
  • Drno
    • 7 ответов
    • 0 вопросов
  • ThunderCat
    ThunderCat
    • 6 ответов
    • 0 вопросов
  • SoreMix
    soremix
    • 6 ответов
    • 0 вопросов
  • origami
    • 4 ответа
    • 1 вопрос
  • Rsa97
    Rsa97
    • 5 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации