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

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

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

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

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

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

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

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

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

Дополнено:

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

Laravel Framework

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

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

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

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

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

Модификация плагина Lightbox2 под ресурс poga.lv

В виду того, что свои фотографии (которые я изредка выкладываю в блог) я храню на ресурсе poga.lv, то мне хотелось как-то упростить их ввод. Оригинальный плагин можно скачать там, а изменённый тут. Как установливать плагины читайте в документации.

Изменения. (только файл wp-lightbox2.php)

  • Изменено описание планина (версия)
  • Изменено название кнопки
  • Изменена функция сбора и вставки данных

Как пользоваться.
В первом окне вас просят вставить ссылку на картинку. Годится рабочая ссылка на картинку любого размера.

Во втором окне вас спрашивают указать размер уменьшенной фотографии в блоге. По умолчанию это s (примерно 240×180). варианты там написаны.

В третьем окне вас спрашивают указать размер увеличенной картинки (которая откроется потом). Конечно, если вы на сервер закачали фотографию размером 640х480, то она не растянется до 800х600 или больше, даже если вы укажете размеры b или p. ;)

Далее идёт описание фотографии — отображается внизу полной картини и при наведении на уменьшенную копию.

И в пятом окне вас просят указать группу. Если у вас на одной странице несколько фотографий и у всех одна группа, то вы сможете их просматривать вперёд/назад просто кликая на правой/лавой половинке увеличенной фотографии.

Заключеие.
Значения под себя вы можете изменить отредактировав файл wp-lightbox2.php вручную. Подстроив всё под себя, вставка фотки у меня теперь выглядит так: ctrl+V, Enter, Enter, Enter, Enter, Enter. ;)

Надеюсь это плагин пригодится ещё кому-нибудь кроме меня.

Текущая ситуация с SMS Sender’ом

На данный момент текущая версия — 0.0.1 (июль 2004-го года).

Сейчас это всё находится в стадии pre-alpha. По отзывам текущая версия работает на многих телефонах с поддержкой J2ME. Лично проверял на различных Nokia Series40 и Series60, Samsung X100, Motorolla C650.

Как только будет рализован список To-Do, так сразу же выложу для публичного скачивания. А пока эта программа только для внутреннего пользования.

To-Do v0.0.2:

  • Переделать сетевой код в многопотоковый и при отсылке выводить некое извещение об отсылке
  • Вынести парсинг на сторону сервера для уменьшения траффика (это будет очень заметно при отсылке на LMT)
  • Добавить сохранение различных настроек (автоподпись, последний номер, текст последнего сообщения)
  • Переделать немного интерфейс
  • Добавить поддержку оператора Triatel
  • Добавить поддержку оператора ZetCom (Amigo)

Когда это всё будет сделано — неизвестно.