Блог хеллоуворлдщика

Практика разговорного английского и не только

Практика разговорного английского и не только

Рано или поздно приходит необходимость с кем-то общаться для поддержания или улучшения своих разговорных навыков на английском языке. И здесь встает вопрос о том, где найти собеседника. Т.к. жизнь меня не свела с таковыми, было решено платить человеку за общение. Как ни странно, в интернете сотни школ английского языка, которые навязывают свои правила или диктую какие-то рамки, в то время, когда мне нужно было оплатить часы и просто разговаривать. В долгих поисках я нашел подходящий мне сервис с тьюторами, где все было, как мне и нужно.

Хочу рассказать всем, кто ищет общение с человеком, носителем языка, какие впечатления оставил от меня сервис Preply. В первую очередь, это гарантия возврата денег в случае, если вы оплатили часы, но не получилось их потратить. Так же, возможность перевести часы другому тьютору при желании. И самое главное, вы платите ровно за то, что вам нужно. Не больше, ни меньше. Сервис участвует только в процессе нахождения друг друга для занятий и оплате. Больше никуда не лезет.

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

Кстати, кроме англоязычных носителей есть еще и другие. =)

Ссылка на Preply.

Читать далее

Заготовка для Zend Framework 3

Заготовка для Zend Framework 3

Почему не каждый фреймворк может похвастаться хорошей сборкой приложения для быстрого начала работы, - подумал я и решил, что надо сделать. Завершил работу над заготовкой приложения для Zend Framework 3. Работы было много. Делал в свободное от основной работы время.

Читать далее

Установка Bower на Debian 7/8

Установка Bower на Debian 7/8

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

Если проект не большой, или еще по каким-то другим причинам, вы не используете сборщик и инструменты деплоя, а обходитесь обычным git push/git pull - эта статья для вас.

Читать далее

Проблема сортировки в MySQL 5.6

Буквально вчера поднял тему о том, что в MySQL есть проблема с сортировкой полей, где есть не уникальные значения и используется пагинации. В случае, когда одна запись в конце странице, а вторая запись в начале следующей, и они одинаковые, да и еще их разделяет пагинация - одна из записей просто исчезает.

Создав в баг-трекере репорт по данной проблеме, я получил подтверждение по MySQL 5.6 и подтверждение о корректной работе на MySQL 5.5 и 5.7.

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

В баг-трекере есть ответ, что это, якобы, нормальная работа. Тогда вопрос: почему в 5.5 и 5.7 такой проблемы нет? Совпадение? Не думаю.

Ссылка на баг-трекере с подробным описанием и ответами: https://bugs.mysql.com/bug.php?id=83191

Читать далее

Именование поля с идентификатором

Практически каждый разработчик именует поля для связи с другой таблицей в формате <имятаблицы>_id. Но, вдруг в проекте вы замечаете, что в одном или в нескольких местах совсем не такое именование, а просто <имятаблицы>. Или наоборот, связи нет, а именовано по подобию <имятаблицы>_id. Это связано с тем, что когда-то эти поля имели (или не имели) связи с таблицей, а позже решили вынести все в код (или в таблицу). В итоге получается не очень красиво.

Читать далее

Создание форм в ZF3

Создание форм в ZF3

Мне очень нравится Zend Framework с выхода 2ой версии, но никогда не нравились формы. Формы в Zend Framework - это, ужас. Причем, мне не ясен подход разработчиков вообще, и не ясно, почему они считает это нормой. Чего же в них плохого?

Плохо то, что мы явно нарушаем принцип единственной ответственности, явно указываем тип поля у входного значения, расширяем элементы через декораторы. Это все очень плохо. Я не хочу знать вообще: какой тип поля у входного значения; я не хочу заботится о представлении в форме; я не хочу заботится о том, как это все будет выглядеть. Я просто хочу указать, что я жду. Все. На этом ответственность формы заканчивается. Не больше, ни меньше. Но как-то не делать так, как задумано - не получится. В любом случае, от типа поля и от трешовой манипуляции с формой в отображении мы не уйдем. Как я с этим борюсь?

Читать далее

Резервное копирование

Резервное копирование

Пару дней назад я выкатил новую версию расширения для резервного копирования, который:

  • умеет лить на FTP используя LFTP
  • работать на OS X и Linux
  • так же хранит архивы N-дней и позже удаляет самые старые из них
  • архивирует используя TAR
  • работает с MySQL и PostgreSQL

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

Если вам дороги ваши данные - используйте резервное копирование. =)

Ссылка на расширение и инструкцию по установке: https://github.com/bupy7/sh-backup

Читать далее

Расширение для работы с URL на Javascript

Как всегда все уперлось к тому, что ничего не нашлось, а очень хотелось. Но, зато нашел куски интересного кода на Gist, которые доработал и выкатил в расширение.

Данное расширение работает с URL, а точнее преобразует строку запроса (query) в объект, и обратно. Плюсом, имеется конкатенация частей URL.

Библиотека очень простая и состоит из одного файла. Больше информации на оф.странице расширения.

Ссылка на расширение: https://github.com/bupy7/js-lib-url

Читать далее

История изменений ActiveRecord модели в Yii2

Данное расширение необходимо всем, кто работает с важным контентом, и хочет иметь историю о всех изменениях по записи. В проектах с частой и очень важной манипуляцией с данными данная возможность очень и очень важна. Иногда не ясно, кто изменил, зачем и когда. Но, не беда, все будет! =)

Расширение имеет единственное хранилище - в базу данных. В файл, увы, реализация мне не нужна, но если кто-то хочется - тот очень легко сможет такое реализовать указав в модуле соответствующий класс хранилища наследовавшись от bupy7\activerecord\history\storages\Base.

Latest Stable Version Total Downloads Latest Unstable Version License

Ссылка на репозиторий: https://github.com/bupy7/yii2-activerecord-history

Читать далее

Обертка Date Range Picker (Bootstrap) плагина для Yii2

Обертка Date Range Picker (Bootstrap) плагина для Yii2

Пошатавшись по GitHub, и поняв, что выбор очень скудный, понял одну вещь: проблема утопающего - дело рук самого утопающего. Поэтому, я взялся за написания обертки над сие прекрасным плагином.

Ссылка на расширение: https://github.com/bupy7/yii2-date-range-picker

Читать далее