• Как сделать расширение на PHP7 сложнее, чем «hello, world», и не стать красноглазиком. Часть 1

    • Tutorial

    Зачем?


    Я пишу эту статью для того, чтобы путь, который у меня занял в общей сложности не меньше года, читатель смог пройти за пару часов. Как показал мой личный опыт, просто программировать на Си несколько легче, чем заставить работать серьезное расширение для PHP. Здесь я максимально подробно расскажу вам о том, как сделать расширение на примере библиотеки libtrie, реализующей префиксное дерево, более известное как trie. Я буду писать и параллельно выполнять описываемые действия на свежеустановленной системе Lubuntu 18.04.

    Начнем.
    Читать дальше →
  • Как создать процедуральный арт менее чем за 100 строк кода

    • Translation


    Generative art (генеративное или процедуральное искусство) может отпугнуть, если вы никогда с ним раньше не сталкивались. Если коротко, то это концепция искусства, которое буквально создает само себя и не требует хардкорных знаний программирования для первого раза. Поэтому я решил немного разбавить нашу ленту, погнали.
    Читать дальше →
  • Middleware и возможности Pipeline в Laravel



    Laravel — это поистине большая и сложная система, которая старается решить большинство бытовых задач веб разработчика максимально элегантным способом и собрать в себе как можно больше инструментов и, что очень важно — с как можно более человеческим интерфейсом.

    И сегодня речь пойдет об одном из таких инструментов, а точнее о его использовании и реализации со стороны программиста. Отсутствие полноценной документации, а также отсутствие русскоязычных статей и очень малое количество статей иностранных — подтолкнуло меня к решению раскрыть некую завесу тайны об этой интересной возможности фреймворка и выбору этой темы в качестве моей первой статьи на Хабре.
    Читать дальше →
    • +30
    • 8.6k
    • 9
  • PHP-Дайджест № 142 (15 – 29 октября 2018)


      Свежая подборка со ссылками на новости и материалы. В выпуске: Будущее PHP и Zend Framework, RFC из PHP Internals о повышении производительности, порция полезных инструментов, новый слоник PHP доступен для заказа, и многое другое.

      Приятного чтения!

      Читать дальше →
    • Подключение phpStorm tasks к Битрикс24

      • Tutorial
      Добрый день.

      Хочу поделится опытом подключения phpStorm к Битрикс24 для быстрого доступа к задачам и учета времени на их выполнение.

      К сожалению Битрикс24 не входит в список поддерживаемых багтрекеров, а необходимость у меня появилась.
      Читать дальше →
    • Пишем онлайн чат на Websockets используя Swoole



      Тема Websocket`ов уже не раз затрагивалась на Хабре, в частности рассматривались варианты реализации на PHP. Однако, с момента выхода последней статьи с обзором разных технологий прошло уже более года, а миру PHP есть чем похвастаться за прошедшее время.

      В данной статье я хочу представить русскоязычному сообществу Swoole — Асинхронный Open Source фреймворк для PHP, написанный на Си, и поставляемый в виде pecl-расширения.

      Исходники на github.
      Читать дальше →
    • Теперь я тимлид, но почему мне так плохо? Практические советы

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



        То, что доклад на эту тему был признан лучшим на конференции для тимлидов и о тимлидах, показывает, насколько действительно часто встречается такая ситуация. Но надо признать, конечно, что Евгений Кот (bunopus) заработал это «признание» еще и великолепным перформансом. С удовольствием делимся с вами его записью.
        Читать дальше →
        • +50
        • 35.9k
        • 9
      • Be a security ninja: запись вебинаров и бонусный уровень


           
          Информационная безопасность – одна из дисциплин, набирающих бешеную популярность в последние годы. Мы решили помочь всем желающим и организовали цикл бесплатных вебинаров по информационной безопасности. Сегодня мы публикуем видеозаписи и анонсируем бонусный уровень, посвященный практической информационной безопасности.
          Читать дальше →
          • +20
          • 11.7k
          • 3
        • Data-mining и Твиттер

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


            Предлагаю угадать, какую технологию обрамляет это облако слов?


            Облако


            Используя Твиттер API можно извлекать и анализировать самую разнообразную информацию. Статья о том, как это осуществить с помощью языка программирования R.

            Читать дальше →
            • +18
            • 3.6k
            • 7
          • Автоматизация с Codeception + Gherkin + PageObject для самых маленьких


            Не найдя в интернете ни одного конкретного примера реализации Gherkin с паттерном проектирования Page Object для Codeception, подумалось, что будет не лишним рассказать интернету о собственной реализации этого паттерна.

            Эта статья рассчитана скорее на тех, кто уже немного знаком с Codeception или похожими фреймворками, но ещё не знает, как при помощи Page Object сделать тесты более читаемыми, упростить их поддержку и сократить объемы лишнего кода. Тем не менее, я постаралась пошагово изложить все основные моменты сборки проекта автоматизации с нуля.
            Читать дальше →
          • Колонки RADIOTEHNIKA S-30 от старых к новым

            image

            Привет, меня зовут Артем Денисов. Я программист, увлекаюсь электроникой и всякими такими интересными штуками. Много лет читал хабрахабр, а теперь вот решил и сам статью написать.

            Эта история началась в старом, темном и страшном подвале. В котором я обнаружил
            древние советские колонки RADIOTEHNKIKA S-30. Которые мне достались от моего деда.

            Выбрасывать их было жалко, поэтому я решил их восстановить. Сделать возможность прослушивания музыки с телефона и тд. тп. Кому интересно, добро пожаловать под кат.

            ВНИМАНИЕ!!! Много фото и видео.
            Читать дальше →
          • Работа с изображениями на Python

              Тема сегодняшнего разговора — чему же научился Python за все годы своего существования в работе с изображениями. И действительно, кроме старичков родом из 1990 года ImageMagick и GraphicsMagick, есть современные эффективные библиотеки. Например, Pillow и более производительная Pillow-SIMD. Их активный разработчик Александр Карпинский (homm) на MoscowPython сравнил разные библиотеки для работы с изображениями на Python, представил бенчмарки и рассказал о неочевидных особенностях, которых всегда хватает. В этой статье расшифровка доклада, который поможет вам выбрать библиотеку под свое приложение, и сделать так, чтобы она работало максимально эффективно.


              О спикере: Александр Карпинский работает в компании Uploadcare и занимается сервисом быстрой модификации изображений на лету. Участвует в разработке Pillow — популярной библиотеки для работы с изображениями на Python, развивает собственный форк этой библиотеки — Pillow-SIMD, который использует современные инструкции процессоров для наибольшей производительности.
              Читать дальше →
              • +49
              • 24.7k
              • 9
            • Приглашаем на хакатон JETHACK



                Друзья, приглашаем всех на хакатон JETHACK, который пройдёт 20-21 октября. Нужно будет решить задачу по соотношению облака точек заданной 3D-модели, чтобы на выходе получилась программа, которая позволит искать несоответствия между архитектурным планом и готовым объектом.

                Чтобы поучаствовать в хакатоне, вам надо собрать команду из 2-4 человек. Если вы полагаете, что можете решить задачу самостоятельно, то можете зарегистрироваться без команды… Ограничений по языкам программирования нет! «Кодить» будем все выходные: начнем в субботу, а закончим вечером в воскресенье (при желании, можно будет остаться и на ночь). Чай, кофе, печеньки, пицца и пуфики/диванчики прилагаются :).

                А победившая команда получит всё и сразу — приз в 200 000 руб.!
                Читать дальше →
              • Flutter — новый взгляд на кроссплатформенную разработку

                  В августе 2018 года Flutter стал самой запрашиваемой кроссплатформенной технологией на Stack Overflow.


                  image


                  В нашем блоге Артем Зайцев и Евгений Сатуров из студии Surf, сертифицированного агентства Google, расскажут, почему и как так получилось:


                  Кроссплатформенные решения давно привлекают желающих быстро и незатратно запустить MVP-продукт одновременно под несколько платформ. Причина проста — единая кодовая база. Ее легче поддерживать: артефакты централизованы, нет дублирования логики и правок одних и тех же багов под каждую из платформ. Да и людей для ее поддержки и создания требуется меньше — нет необходимости содержать двух нативных разработчиков.

                  Читать дальше →
                • Нейронная сеть с использованием TensorFlow: классификация изображений

                  Привет, Хабр! Представляю вашему вниманию перевод статьи "Train your first neural network: basic classification".



                  Это руководство по обучению модели нейронной сети для классификации изображений одежды, таких как кроссовки и рубашки. Для создания нейронной сети используем python и библиотеку TensorFlow.

                  Читать дальше →
                • Вам действительно нужны entrust или laravel-permission для реализации вашей авторизации?

                  • Translation
                  «Так… мне нужна простая авторизация. Какая-нибудь админская роль, и может роль редактора/модератора. Сейчас погуглим. О! Для laravel уже есть готовые пакеты! zizaco/entrust, spatie/laravel-permission и другие! Давай выберем какой-нибудь!»

                  Примерно так все и происходит. Потом миграция пакета добавляет в базу 5 табличек для хранения ролей, пермишенов и их отношений. Все правила авторизации, такие как роли 'admin' и 'editor' могут делать 'edit posts', хранятся в этих таблицах. Обычно в проекте много копий базы данных. Копии разработчиков, тестовая база(ы) и продакшен. В итоге все эти правила авторизации вынуждены синхронизироваться между базами данных.

                  Читать дальше →
                • Зеев Сураски: Будущее Zend Engine и Zend Framework

                  • Translation


                  В июне 2015 года было анонсировано поглощение Zend, компании-разработчика ядра языка PHP, американской компанией Rogue Wave Software. В феврале 2016 года об уходе из Zend заявил ее сооснователь и до 2015 исполнительный директор Энди Гутманс.
                  На этот раз второй из основателей Zend Technologies Зеев Сураски в своем блоге поделился планами.

                  Читать дальше →
                • Конференция про Python и про общение

                    Традиционно Python используют для создания сетевых сервисов, бэкенда в вебе и, конечно, для сбора и обработки данных, как правило Больших. Эти направления в равных долях с экосистемными докладами и постараемся обсудить на грядущей Moscow Python Conf++. Эта конференция для Python-разработчиков состоится в Москве 22 и 23 октября, и я возглавляю её Программный комитет. Программа, можно сказать, выстрадана, нам удалось сделать её именно такой, как мы и планировали, — разнообразной. Бэкенд, Big Data и особенности языка, у нас гармонично сочетаются с докладами по тестированию, искусственному интеллекту, безопасности и DevOps. Хочется заранее поделиться с вами результатом, поэтому предлагаю обзор докладов по секциям — то, что к вам никак не относится, можно проматывать.



                    Хотя, подождите, не спешите перескакивать на следующую тему. На картинке выше написано: «Профессиональная конференция» — то есть, предназначена она для профессиональных разработчиков. Но гостями мы видим не только собственно Python-разработчиков, но еще программистов, преимущественно использующих другой стек, но заинтересованных в возможностях Python для вспомогательных задач. Последним должны зайти доклады, например, про Apache Kafka, Wagtail, SQLAlchemy или линтеры.
                    Читать дальше →
                    • +30
                    • 4.6k
                    • 4
                  • Мультиязычные деревья в Yii2 на примере создания модуля меню

                    Вступление


                    Многие начинающие веб-разработчики сталкиваются с необходимостью создания меню, каталогов или рубрикаторов для своего проекта на Yii2, которые бы имели иерархическую структуру, но при этом поддерживали мультиязычность. Задача довольно простая, но не совсем очевидная в рамках данного фреймворка. Есть большое количество готовых расширений для создания древовидных структур (меню, каталогов итд.), но довольно сложно найти решение, которое бы поддерживало полноценную работу с несколькими языками. Причём речь тут идёт не о переводе интерфейса штатными средствами фреймворка, а про хранение данных в базе на нескольких языках. Также достаточно сложно найти удобный и полностью работоспособный виджет для управления деревом, который мог бы также работать с многоязычным контентом без сложных манипуляций с кодом.


                    Я хотел бы поделиться рецептом того, как можно создавать подобные модули на примере реализации модуля меню. Для примера я буду использовать шаблон приложения Yii2 App Basic, но вы можете адаптировать всё под свой шаблон, если он отличается от базового.

                    Читать дальше →
                  • GitHub анонсировал собственный CI/CD и начал раздавать инвайты

                      На прошедшей «GitHub Universe» компания анонсировала много разного, но меня больше всего «зацепило» их собственное CI/CD решение. Основано на Docker, может собирать и выполнять контейнеры по пушу в репозиторий, появлению нового тикета, созданию релиза. здесь можно оставить заявку на участие в публик бете, Microsoft будет выдавать инвайты небольшими пачками. Под катом — мои спекуляции чем такая штука может быть нам полезна при живых GitLab и CircleCI.
                      Читать дальше →