PHP7 — необратимое будущее? Проверяемся на совместимость.

Уже давно мне как-то не по себе что-либо делать в виде «чёрной коробки». Тем более программировать. Если что-то начинается не так, сразу запускаю дебаггер и всё становится на свои места. Но что делать с PHP7? Ведь хочешь или нет, но как и раньше с 4 на 5, а потом и на 5.3, всё однозначно перейдёт на 7 версию. Вопрос только в 2016 году или в одном из следующих?

Можно в виртуалке установить PHP7, копию проекта и… что-то увидеть. Или НЕ увидеть. Вот такое тестирование в слепую я и хотел бы избежать. Кто крикнул «Тесты!»? Некоторые штуки писались давным-давно, когда ни про тесты, ни даже про ООП не задумывались.

Но вот не так давно наткнулся на чудесную программу — php7cc. Написана на PHP5, просит 5.3. Натравливаем на любую папку и она проверяет весь код на наличие устаревших элементов относительно версии 7.0. Всё просто и чудесно. Можно прямо на папку с продакшеном натравить, если совсем лень возиться. ;) В результате список всех проблем, если таковые есть. И если используются поросшие паутиной сторонние библиотеки времён 5.0-5.2, то проблемы гарантированно будут! :D

В общем, кому надо — забирайте, проверяйтесь и подготавливайтесь, пока PHP7 на вашем сервере внезапно не стал версией по умолчанию. :)

Кому несколько фотонов быстрого света? :)

Не так давно я делал заметку про фреймворк для языка PHP, Laravel. Прошло какое-то время и я должен признаться, что я немного ошибся в предположениях. На практике 5 часть оказалась на столько крута, что вообще нет смысла хоть сколько-то оставаться с 4.2. Ну только если надо её поддерживать и нет возможности перенести проект на 5.

Впрочем цель этой заметки в другом. Laravel 5 позиционируется как Full-Stack фреймворк, который во многом самодостаточен из коробки. Там много прекрасных компонентов и ещё больше расширений цепляется через Composer. Но всё-же есть ниши, где Laravel не столь хорош — это те сценарии, когда нужно супер-быстрое, отзывчивое приложение. Там, где задержка в ответе в 30-45 миллисикунд от среднего значения, это уже заметный, а может и катастрофичный тормоз. Можно такие приложения писать и на native PHP — и они будут столь же сверх-быстры, но раширять и поддерживать их в команде не так-то уж и просто…

Впрочем, встречайте — Lumen! От создателей своего большого брата Laravel 5 (и частично на его базе и создан). По умолчанию тут отключено практически всё кроме базового скелета приложения. А то, что надо, вы включаете вручную. Всё, на чём можно было сэкономить, не потеряв в гармонии, уже отключено или вырезано под корень. Просто идельная штуковина для небольших сервисов, которые требуют быстрой обработки — какие-нибудь платёжные сервисы, или сервисы каких-то регистраций, где происходят сотни-тысячи запросов/транзакций в секунду.

У меня уже руки чешутся его опробовать. :) Но пока совсем нет на это времени. Впрочем уже есть один проект, который я давно хотел переписать на Laravel, но были некоторые опасения по скорости в будущем в одном месте. Теперь же точно вижу, что самую нагруженную часть однозначно стоит вывести в отдельную сущность и переписать на Lumen. :)

Две утилиты для работы с флешками и картами памяти

В этой заметке я хочу рассказать о двух утилитах, которые оказались просто палочками-выручалочками не один раз. Rufus — создаём загрузочную флешку. SD Formatter — восстанавливаем оригинальную разметку флешки.

Читать далее Две утилиты для работы с флешками и картами памяти

Hyper-V в роли ключевой проблемы для 64-bit виртуалок

Некоторое время назад столкнулся с тем, что замечательный Vagrant не хочет запускаться под Win8.1. Т.е. программа работает, но вот образы грузить не хочет. В качестве эмулятора используется VirtualBox. Хотя эти же самые образы на этом же компе, но под линуксом прекрасно запускались и работали. Как уже позже заметил — образы систем были 64-битные, а в VirtualBox создавались только 32-битные виртуалки.

Сегодня опять вернулся к этой проблеме и решение нашлось. Хотя не знаю, каких радостей  и приключений оно мне может ещё принести, но посмотрим. Суть проблемы в том, что в системе может работать только один менеджер виртуализации. И в винде по умолчанию им был встроенный Hyper-V. Отключаем эту фичу, перезагружаемся и в VirtualBox волшебным образом появляется возможность создавать 64-битные машины. И сразу все несколько образов начинают грузиться как положено.

Собственно сама волшебная команда. Запускать в командной строке с правами админа:

Дополнено:

Похоже, что это просто Windows за несколько лет на столько забилась всем-чем, что выкинуло подобное. На свеженькую-новенькую 8.1 VirtualBox втал ровно, все 64 бита были на месте и ни никаких шаманств не потребовалось вовсе! :)

Линукс десктоп и 21 век :) **UPDATED @6.12.2015

Первый день c Ubuntu прошёл нормально. Пока всё идёт как надо. Но кое-какие тонкие моменты уже начинают проявляться. Самое интересное, что очень многие детали по юзабилити если не полностью, то концептуально сюда перебрались из MacOS X. И это хорошо. По этому общий совет (для переходящих) таков: Если вам нужна какая-то особенность, то ищите схожий вариант реализации. А то интернет весьма полон старых добрых проверенных статей как делать раньше, но среди них весьма редко попадаются современные решения из позднего 21 века. :)

Вот вам первый пример. Даже два в одном.

  1. Настроить подключение к OpenVPN
  2. Подключить win-шару с рабочего файлового сервера

Раньше всё делалось парой скриптов из нескольких комманд. Оно и сейчас, конечно, будет так работать, но вот эстетические чувства (для Desktop системы) уже страдают. :) Да и хочется решение в два клика и без свалки из скриптов. Тем более, что у современной Убунты столь симпатичный внешний вид.
Читать далее Линукс десктоп и 21 век :) **UPDATED @6.12.2015

Back for good

Давным давно меня начало раздражать то, что Windows начала жить своей собственной жизнью. Включена система, не трогаешь её… А внезапно она как начнёт что-то сама делать — и диск под 100%, и проц туда же в компании всех вентиляторов. А минут через 5-10 успокаивается. Быстрая попытка выяснить в чём дело не помогла — фигня через системные службы происходит, так-что это может быть что угодно.

И вот вчера это в очередной раз выбесило на столько, что заменил жёсткий и поставил на него Ubuntu. :) Правда должен сказать пару вещей. С Убунтой последние лет 5 я и так тесно общаюсь, но исключительно с серверной и исключительно через терминал. А вот десктопами полноценно не общался где-то с середины 2000 и надо заметить, всё приятно поменялось в позитивную сторону!

В любом случае — не знаю на сколько я тут долго задержусь и удастся ли вообще на 100% переехать со всем своим багажом задач, но пока пусть будет так. Визуально-эстетически я пока всем доволен.

Zombicide

В данной заметке хотелось бы рассказать о прекрасной настольной игре от Guillotine Games — Zombicide. На детальный обзор это не потянет, т.к. ну слишком много всего. :) Скорее так — на общие впечатления от игры + отчёт по одному сценарию.

Читать далее Zombicide

Laravel Framework

Если вы программируете на PHP, то наверняка вам в последний год попадался на глаза фреймворк Laravel4. Если вкратце, то это то же самое, что и Play! в мире Java/Scala или Rails у Ruby.

Главная и ключевая особенность — полная и законченная структура всего проекта — используется классический MVC (основа частично взята из Symphony). Файлы организованы весьма органично и лаконично. Работа с базой через Eloquent ORM. За визуализацию отвечает Blade. Весьма гибкий и одновременно простой рутер. Ну а в качестве фундамента для всех модулей используется Composer, что даёт очень широкие (если не бесконечно неограниченные) в возможности расширения функциональности. И так можно продолжать долго. ;)

Если вам, как и мне весьма нравится универсальность PHP и нет особого желания переключаться на что-то другое, но при этом хочется получать радость от разработки, а не бороться с ветряными мельницами из проекта в проект и не заниматься перманентным изобретением велосипедов, то 95%, что этот фреймворк станет самым-самым любимым на весьма долгое время.

На подходе (в начале 2015) версия 5, в которой они ещё дальше пошли в сторону самостоятельности проекта. Но четвёрка при этом никуда не денется и ещё долгое время (наверняка весь 2015 год) будет весьма востребована и с активной поддержкой. С лета этого года появилась очень большая информационная поддержка в русскоязычной сфере, что не может не радовать.

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

WordPress 4.1 и новая тема 20-15

На днях вышло очередное обновление WordPress. Оно для меня и осталось бы очередным, если бы не одно НО. Возможно это всё субъективно, но разработчики очень круто запилили редактор.

Тексты набирать стало одно удовольствие! В визуальной форме ну ни чем не отличается от plaintext — всё-равно как в блокноте на своём компе. Никаких микро/нано-лагов, как в прошлых версиях, где тоже всё было в меру плавно, но иногда чуть-чуть чувствовалась задержка. Тут же всё просто летает!

И полноэкранный режим чуть улучшили. Текущий вариант тоже нравится. Но хотелось бы получить и возможность «белого листа».

В общем и целом — разработчики как всегда молодцы! :)