Здравствуйте, уважаемые читатели. В этой статье речь пойдет об одном подходе к автоматическому порождению программ по блочной модели задачи, к решению обратной задачи (восстановления модели исходной проблемы по уже порожденной программе), а также к решению проблемы верификации порожденных программ. Сама по себе тема очень серьезная, но статью я, по возможности, постараюсь сделать популярной (без тяжеловесного обзора аналогов, строго оформленной теоретической части и прочих сложностей), с примерами и описанием различных применений.
Читать полностью »
Рубрика «php» - 50
Автоматическое порождение программ, обратная задача и некоторые связанные с ними решения
2018-08-19 в 17:27, admin, рубрики: php, Prolog, Алгоритмы, верификация программ, естественно-языковой интерфейс, порождение программ, Программирование, Проектирование и рефакторинг, реконструкция алгоритмаПочти OCR для получения пароля VPNBook. PHP + Mikrotik
2018-08-16 в 14:04, admin, рубрики: mikrotik, php, vpnbook, реверс-инжиниринг, Серверное администрирование, Сетевые технологииНедавно VPNBook стал публиковать пароль вместо прямого текста в виде изображения. «Ну как же так» — подумал я и начал искать пути решения этой проблемы. Распознаем «картиночный» пароль VPNBook на PHP. И, конечно, скрипт для Mikrotik.
Читать полностью »
PHP, YII2 и формирование больших excel-файлов
2018-08-16 в 13:11, admin, рубрики: box spout, Excel, php, phpspreadsheet, yii, yii2, формирование больших файловНачало
Одна поддерживаемая нашей компанией учетно-отчетная система начала очень быстро разрастаться в количестве хранимых данных. Система написана на PHP с использованием фреймворка Yii2. Изначально отчеты строились через библиотеку PhpSpreadsheet, которая пришла на смену, уже давно ставшему deprecated, PhpExcel.
Среди разного вида отчетности был один очень крупный – фактически полный набор всех хранящихся в БД данных должен выгружаться в одну excel-таблицу. На начальном этапе проблем не возникало, но когда объем стал превышать многие сотни тысяч записей, то скрипт формирования выгрузки стал отваливаться в timeout limit.Читать полностью »
Что не так с популярными статьями, рассказывающими что foo быстрее чем bar?
2018-08-09 в 12:23, admin, рубрики: performance optimization, php, кавычки, производительность, Разработка веб-сайтов, тестирование производительностиПримечание переводчика: я тоже думал, что время статей "Что быстрее — двойные или одинарные кавычки?" прошло еще 10 лет назад. Но вот подобная статья ("What performance tricks actually work") недавно собрала на Реддите относительно большой рейтинг и даже попала в PHP дайджест на Хабре. Соответственно, я решил перевести статью с критическим разбором этих и подобных им "тестов".
Есть множество статей (и даже целых сайтов), посвященных запуску разнообразных тестов, сравнивающих производительность различных синтаксических конструкций, и заявляющих на этом основании что одна быстрее другой.
Главная проблема
Такие тесты являются неверными по многим причинам, начиная с постановки вопроса и заканчивая ошибками реализации. Но что важнее всего — подобные тесты бессмысленны и в то же время вредны.
- Бессмысленны потому, что никакой практической ценности не несут. Ни один реальный проект еще никогда не был ускорен с использованием методов, приводимых в таких статьях. Просто потому, что не различия в синтаксисе имеют значение для производительности, а обработка данных.
- Вредны потому, что они приводят к появлению дичайших суеверий и — что еще хуже — побуждают ничего не подозревающих читателей писать плохой код, думая при этом что "оптимизируют" его.
Этого должно быть достаточно, чтобы закрыть вопрос. Но даже если принять правила игры и притвориться, будто данные "тесты" имеют хоть какой-то смысл, то выяснится, что их результаты сводятся лишь к демонстрации необразованности тестировщика и отсутствия у него всякого опыта.Читать полностью »
PHP-Дайджест № 136 (24 июля – 6 августа 2018)
2018-08-06 в 6:21, admin, рубрики: async, laravel, Magento, php, PHP 7.3, php-дайджест, phpstorm, ReactPHP, symfony, yii, zend, Блог компании Zfort Group, дайджест, Разработка веб-сайтовСвежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.3.0 Beta 1, PhpStorm 2018.2, Composer 1.7 и другие релизы, принят стандарт PSR-17, обзор Yii 3.0, альтернативная реализация Fiber API для асинхронных приложений, порция полезных инструментов, и многое другое.
Приятного чтения!
Наиболее востребованные языки программирования – 2018
2018-08-01 в 6:32, admin, рубрики: javascript, php, Блог компании HeadHunter, зарплата, Исследования и прогнозы в IT, Карьера в IT-индустрии, Статистика в IT, теги никто не читаетОчередная статистика от hh.ru под катом. Вкратце — очень хотелось посчитать, на каких языках чаще всего пишут отечественные разработчики и какие языки чаще других ищут работодатели. Итого — посчитал, что указывали в вакансиях и в резюме в первом полугодии 2018 и 2017 годов. Получилось что получилось.
9 платных, условно-бесплатных и бесплатных программ для трекинга кода приложений
2018-07-29 в 18:10, admin, рубрики: django, Go, java, node.js, php, pythonТрекинг кода must-have в среде разработки. Но вот насколько нужен этот же инструмент в продуктиве? Тот, кто лишь кропотливо собирает логи скажет «ну его нафиг, мой ELK меня не подводит» и будет по-своему прав. До поры до времени.
Адаптивный Waveform для вашего аудиосервиса
2018-07-23 в 10:29, admin, рубрики: css, javascript, JS, php, адаптивная вёрстка, адаптивный дизайн, Алгоритмы, интерфейсы, обработка изображений
Когда мне понадобилось для сайта одной радиопередачи наладить выкладку аудио архива, помимо админки нужен был еще и аудиоплеер. Радиопередача шла 40 минут плюс две музыкальные паузы. Использовать Waveform в таких длинных форматах особенно удобно, поэтому как и многие музыкальные сервисы, я решил использовать это решение в оформлении плеера.
При планируемом будущем редизайне сайта и, возможно, будущих мобильных приложений, растровый waveform тут просто клином упирался. Он не адаптивен, его крайне ресурсоемко редизайнить, если он в растре.
Читать полностью »
PHP-Дайджест № 135 (9 – 23 июля 2018)
2018-07-23 в 1:48, admin, рубрики: async, laravel, Magento, php, PHP 7.3, php-дайджест, ReactPHP, symfony, yii, zend, Блог компании Zfort Group, дайджест, Разработка веб-сайтов, ссылкиВ выпуске: PHP 7.3 alpha 4, ReactPHP 1.0 LTS и другие релизы, свежее предложение «Namespace Visiblity for Class, Interface and Trait» из PHP Internals, ведеозаписи докладов и вебинаров, порция полезных инструментов, и многое другое.
Приятного чтения!
Учим wordpress (и не только) отрисовывать быстро Youtube плееры
2018-07-22 в 11:43, admin, рубрики: php, wordpress, YouTube, оптимизация сайта, плагины для wordpress, Повышение конверсии, Разработка веб-сайтов
Я вспомнил сайт одного старого приятеля-программиста, у которого в ленте сайта один хип-хоп, лет 6 назад он плевался на скорость загрузки страниц: «да-да-да, надо переделать, да ничего сложного там нет...» а вот зашел сейчас — все по-старому :-) Не смотря на простые технические решения, допускаю, что не только у меня есть такой приятель. Поэтому эта маленькая техническая заметка.