• Создаем базу данных на примере службы доставки и разбираем запросы SQL
    +2
    Что-то в последнее время часто встречаю хранение данных, относящихся к деньгам в float. Неужели уже вычисления с плавающей точкой стали настолько точными и 2,3 + 3,2 всегда будет равняться 5,5? Зачем сразу учить плохому?
  • Каким будет 2021-й год для PHP?
    +6
    Может я конечно слишком стар, но как по мне, так слон больше эмо, чем панк.
  • Открытая конференция PHP Russia Online
    +1
    Ну если вы так настаиваете, то… ну я ещё раз подумаю :)
  • Открытая конференция PHP Russia Online
    +3
    SamDark, я тут покопался на сайте конференции и не нашёл никакой программы. Можно ли как-то узнать, во сколько начнётся конференция и какое будет расписание? Если я не нашёл это то ссылки будет достаточно.

    Спрашиваю я потому, что 13.05 у нас в стране рабочий день и у меня 100% будут активности по работе. Хотелось бы узнать кто в какое время будет выступать, потому как от этого зависит, есть ли смысл мне регистрироваться на конференцию.

    Заранее спасибо за ответ.
  • Yarn 2 — с Prolog'ом и плагнплеями
    +2
    Т.е. получается я фактически кладу в репозиторий все свои зависимости и таскаю это за собой. В чем принципиальная разница с тем, чтобы я сейчас залил в репу node_modules? Т.е. разворачивание у меня сводится просто к чекауту и всё. Возникает вопрос, зачем мне тогда .lock файл, если все зависимости я таскаю с собой в репозитории? Да и вообще тогда получается мне yarn нужен только чтобы залить зависимости в репозиторий. Я верно понимаю?
  • Yarn 2 — с Prolog'ом и плагнплеями
    +1
    При добавлении пакета он (и все его зависимости), в виде zip архива добавляется в кеш, в папку .yarn в папке пакета (как .git)

    И последствия
    Можно добавлять этот кеш напрямую в гит — и тогда после чекаута у вас сразу будет актуальная версия приложения со всеми зависимостями.


    Это кэш уровня проекта или пакета? Если пакета, то я получаю две копии одного и того же, одна установлена и в той же директории ещё и zip? В любом случае обычно не очень оптимально хранить иметь что-то, что можно потом установить с помощью пакетного менеджера. Это приведёт к тому, что репозиторий будет просто пухнуть, а при обновлерии пакетов в PR будут огромное количество файлов, которое по сути там не нужно.

    Будет ли команда очистки кэша? Ну чтобы хоть каким-то образом поддерживать этот кэш в актуальном состоянии.
  • PHP-Дайджест № 172 (14 – 27 января 2020)
    0
    Хм, да ошибся. Обычно просто использую Debian и Ubuntu, там Opcode Cache расширение ставится автоматом.
  • PHP-Дайджест № 172 (14 – 27 января 2020)
    +1
    Если говорить про Opcode Cache, то в 7.1 с такими проблемами не сталкивался, потом мы сразу на 7.3 прыгнули. Т.е. я бы не сказал что он сильно забагованный был. Ну и зачем отказываться от дополнительной производительности, которую можно получить за просто так. Ну и нюанс в том, что Opcode Cache расширение ставится прямо при установке пыха, его не надо отдельно доставлять, так что проблема достаточно критична. Его придётся скорее специально отключать.
  • PHP-Дайджест № 172 (14 – 27 января 2020)
    +2
    Спасибо за дайджест!
    По поводу php 7.4 сразу в прод я бы не торопился. Сейчас мы сидим на 7.3, сегодня обновились до 7.3.14. До обновления, если не сбрасывать опкэш три или четыре дня подряд, начинались проблемы нереализованными (типа) абстрактными методами, которые пропадали после перезапуска fpm. Так что к 7.4 стоит подходить к осторожностью и первое время точно стоит держать руку на пульсе.
    Чисто моё личное мнение.
  • Меняем фреймворк и профиль работы на ходу — и не только. Что будет на втором митапе PHP NN
    +1
    Спасибо, вам ответный привет. Может как-нибудь и скооперируемся касательно докладчиков и ты ды.
  • Меняем фреймворк и профиль работы на ходу — и не только. Что будет на втором митапе PHP NN
    0
    Надеюсь что и здесь будет отчёт с видео. Удачной встречи, знаю скольких трудов стоит это все организовать :)
  • Меняем фреймворк и профиль работы на ходу — и не только. Что будет на втором митапе PHP NN
    0
    А видео будет? А то приехать я не смогу, а доклад про миграцию интересный, сами как раз сейчас мигрируем.
  • Генерация OpenAPI спецификации на основе функциональных тестов
    0
    Как ни странно, всегда можно лушче (я ещё ни разу не видел код, который нельзя улучшить), я не касаюсь [sarcasm]фатальных недостатков ПО (типа код написан не нами и код написан не на нашем любимом языке программирования)[/sarcasm]. В данном случае, если не зашли, то можно почерпнуть оттуда сведения чтобы обойти все грабли, на которые люди уже наступили в этих проектах, ну и знание какие варианты вообще есть. А вообще писать что-то своё всегда полезно, хотя бы просто для понимания.
  • Генерация OpenAPI спецификации на основе функциональных тестов
    0
    Nelmio api doc bundle умеет генерировать документацию из аннотаций и может работать в паре с rest api bundle для симфони . Заодно можно получить sandbox на халяву так сказать. И писать ничего не надо, прямо пишем метод, в аннотациях к нему пишем документацию и эту документацию сразу преобразуем в html используя этот бандл
  • Multi-source репликация в MySQL5.7
    0
    Можно вообще ключ сделать UUID
  • Multi-source репликация в MySQL5.7
    0
    Запись призводится только тогда, когда большинство серверов с ней согласится, т.е. происходит синхронное согласование. Если происходит сплит, то запись согласуется решением большинства, т.е. надо чтобы было большинство в одном из регионов, иначе будет доступ только на чтение. Далее, при восстановлении соединения, надо учитывать что понадобится некоторое время чтобы нагнать репликацию и там, в зависимости от дельты, будет либо простая репликация, либо стягивание полностью снапшота переключением донора только на чтение. Как-то так.
  • Multi-source репликация в MySQL5.7
    0
    А не сталкивались с проблемой, когда надо прочитать только что сохранённые данные? Например данные могут записаться на мастере не не успевают попасть на slave, тогда в ответе от сервера будут не все данные, которые только что ввели.
  • Утечки памяти в IE8, или страшная сказка со счастливым концом
    0
    К сожалению, репорт не избавляет от необходимости обходить этот баг. По моему опыту, у разных пользователей могут быть разные, порой даже очень старые версии IE. Был случай, когда приходилось проверять скрипты в трёх(!) разных билдах одной и той же версии IE, т.к. в каждой версии были свои уникальные тараканы.
  • Сборник советов и фактов по оптимизации PHP-скриптов
    0
    Кэширование — это только один аспект NOW(), это влияет за собой репликацию как минимум. Что касается системных часов, то я всегда считал что они должны синхронизироваться с эталоном (будет эталоном общедоступный сервер времени или локально поднятый, здесь уже не так важно).
    P.S. Я редко сталкивался с проектами, в которых рассинхронизация времени на милисекунды была бы критична.
  • Сборник советов и фактов по оптимизации PHP-скриптов
    +1
    Вставлю и я своих пять копеек. Например если вы заранее знаете дату, то не стоит писать NOW() в запросе, можно вычислить время на стороне php и сразу подставить в запрос. То же самое в случае field1 -2 > 0, можно просто написать field1 > 2. Примеры синетические, но я думаю мысль в общем понятна.
  • Видеохостинг своими руками
    0
    Как вариант можно попробовать Imagick, по памяти выигрыш точно будет. Причем его можно использовать консольно.
  • Комментарий из публикации, перенесённой в черновики.
  • Google отключит подсказку для «пиратских» запросов
    +4
    Существует опасность что не палец тоже попытается отхватить :)
  • Практические аспекты использования svn:externals
    0
    Возможно я неясно выразился, вопрс касался поддержки репозиториев других систем контроля версий. Про то, что субрепозитории поддерживаются из коробки я знал и так(а это значит что и внешние репозитории меркуриал).
    По поводу выташить, я предпочитаю сам контролировать, что, куда и в каком объеме тащить :).
  • Практические аспекты использования svn:externals
    0
    Субрепозиторий — это полностью репозиторий со всеми плюшками, а вот достать из меркуриала пределенную директорию, не таща за собой весь репозиторий, довольно проблематично(в силу организации самого репозитория в меркуриал). В этом свн выигрывает.
    Внешние репозитории поддерживаются, но надо было плясать с бубном и ставить дополнительные модули. Когда решал данный вопрос, наткнулся на модуль(кажется форест), но завести его нормально не удалось. Кстати, сейчас свн поддерживается из коробки или все еще через плагины?
    Впрочем проблемы в равной степени возникают и при попытке интегрировать между собой что-то в обратную сторону, т.е. забирать чт-то из репозитория меркуриал в свн.
  • Производительность функции unserialize
    +1
    Извините, тормознул.
  • Производительность функции unserialize
    0
    Можно при экспорте запихнуть в теги <?php ?> и потом просто делать include или require, так по крайней мере закешируется опкод. Это если писать в файл. Если в сессию, то такое не пойдет :(
  • Акавита стал жертвой
    0
    Там уже появился PPS
    PPS:
    Да-да, мы в курсе, что Белтелеком предупреждал, не нужно 10 раз повторять.
    Интересно, что следующее в планах — плановый евроремонт в дата-центре с отключением на неделю? Не сомневаемся, что в этом случае тоже предупредят заранее…

    Значит все же предупреждали и отключение не было внезапным.
    То, что отключали так надолго, это плохо, но попытка свалить ответственность за прощелканную вспышку на других, это как-то не очень…
  • Перевод времени
    0
    N97 корректно перевела часы во всех настроенных временных зонах
  • Превентивная защита ваших и не ваших скриптов
    0
    Никто не мешает в nginx добавить location, который будет блокировать обращение к определенным типам файлов по расширению или просто не передавать их на обработку php. Первый вариант:
    location ~ (^\dirname.*\.php$){
    deny all;
    }
    Это только для php, для остального несложно дополнить.
    А вопрос с неотдачей а обработку php решается просто более точным прописыванием того, что отдавать таки можно.
  • Memcached — стратегия кеширования
    0
    Вообще кэш можно использовать не только как промежуточный этап для хранения результатов работы с базой данных, но и просто кэшировать куски страниц, которые достаточно редко меняются, либо некоторая задержка в обновлении этих блоков не играет роли.
    Например на главной странице сайта имеем список самых новых опубликованных статей(сайт не является новостным). То, что статьи будут появляться с задержкой в полчаса для редакторов сайта не играет большой роли. В таком случае, мы кэшируем просто блок с самыми новыми статьями и потом некоторое время берем из кэша. Когда блок будет удален по истечении времени жизни в кэше, мы этот блок полностью перегенерируем.
    Если же на странице имеется несколько таких блоков, то чтобы избежать пиковой нагрузки на базу данных в определенные интервалы времени мы данные помещаем в кэш на определенное время + случайный период времени. Таким образом регенерация данных блоков будет происходить не одновременно и резкого возрастания нагрузки на сервер не будет.
  • Основатель Pirate Bay призывает наказать юристов IFPI денежной DDo$-атакой
    +2
    Не смог прочитать все комментарии, но хочется ответить людям, которые не верят в то, что деньги будут переводить.
    Если вы считаете что этого не будет, достаточно вспомнить эпизод с цветами torrentnews.ru/2009/02/27/svidetel-po-delu-tpb-vy-mozhete-podarit-cvety-moej-zhene/
  • Доступ к приватному видео Вконтакте
    0
    Уважаемый, вы же все равно дергаете скрипт… Как можно понять из поста выше, я писал что можно дергать скрипт, но не накладывал никаких ограничений на то какой, на каком языке и т.д. Перловый скрипт он тот же скрипт, так что помоему мы с вами говорим об одном и том же решении, только разными словами, поправьте меня, если я ошибаюсь.
  • Доступ к приватному видео Вконтакте
    0
    Простите, а как вы ее валидировать будете на нгинксе? Что вы будете спрашивать при этом?
  • Доступ к приватному видео Вконтакте
    0
    Как вариант можно использовать возможности серверов nginx или lighthttpd которые умеют перед отдачей спрашивать скрипт на предмет можно или нельзя. При этом по прямой ссылке видео доступно не будет. При таком раскладе можно публиковать не только хэш, а даже прямой урл. Кому нельзя, доступ не получат.
  • IE8 — критический апдейт для XP
    +4
    Мне кажется что скорее будет переход из ие7 в ие8, а доля ие6 останется, т.к. весьма сомнительно, что люди с отключенными апдейтами, вдруг их резко включат(ие7 тоже входил в обновления).
  • Документы Google Docs опять потеряли приватность
    +1
    Самолет безопасный вид транспорта, риск попасть в катастрофу довольно мал. Однако попробуйте это объяснить людям, находящимся в падающем самолете.
  • Праздники кончились, сюрпризы продолжаются…
    0
    wget это отдельное приложение :). Где-то wget, гдето fetch, разные дистрибутивы используют разные даунлоалеры
  • sspp (Server Status PHP Parser)
    0
    Вот примерный кусок кода(после получения надо отрезать заголовки):
    <?
    $fp=fsockopen('www.yandex.ru',80,$errcode,$errstr);
    stream_set_blocking($fp,0);
    if ($fp){
      $nextquery='
    GET / HTTP/1.1
    Host: www.yandex.ru
    Connection: Close
    
    ';
      $data='';
      fputs($fp,$nextquery);
      while (!feof($fp)){
        $tempstr=fgets($fp,128);
        if($tempstr){
          $data.=$tempstr;
        }
      }
      fclose($fp);
    };
    echo $data;
    ?>
    

    По идее такое работать должно везде.
  • sspp (Server Status PHP Parser)
    0
    Для избежания всяких неожиданностей и неприятностей, обычно забор страницы с внешнего сайта пишу через сокеты и протокол хттп. Просто часто натыкаюсь на то, что урлы открывать с помощью стандартных функций открытия файлов открывать запрещено.