Как стать автором
Обновить
2
0
sunsey @sunsey

Пользователь

Отправить сообщение

KnpMenuBundle + Sonata. Делаем меню из базы

Время на прочтение9 мин
Количество просмотров12K
Всем приятного времени суток уважаемые хабровчане. Я люблю Symfony. Она мне нравится и я ее обожаю. Еще мне нравится SonataAdminBundle. Думаю многим из вас тоже. Итак, в данной статье я хочу рассмотреть процесс создания меню для сайта при участие в этом процессе KNPMenuBundle + SonataAdminBundle. По сути процесс создания меню достаточно прост и подробно описан на github’e самого бандла, но что если нам необходимо, что бы меню было управляемо из админки? Заинтересовались? Тогда прошу под кат.
Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии6

Модульное тестирование поведения Yii2 с помощью Codeception

Время на прочтение8 мин
Количество просмотров45K
В разработке программного обеспечения написание автоматических тестов часто отодвигается на второй план более насущными проблемами. Так и в моем случае, код писать приходилось, а тесты к нему — нет. При этом давно хотелось попробовать модульное тестирование собственного кода, а тут под руку подвернулось поведение Yii2 ManyToMany Behavior, о котором уже писали на Хабре. Это поведение я сначала немного расширил, а затем решил собрать комплект тестов.

Сами тесты, в том числе те, о которых идет речь в этой статье, можно посмотреть в репозитории по ссылке выше. Все команды выполнялись под Windows с глобально установленным composer, но я думаю, что разработчики, пользующиеся Linux, без затруднений смогут адаптировать их под себя.

Далее мы рассмотрим настройку Codeception с модулем для Yii2 и создание тестов для поведения.
Узнать, как...
Всего голосов 15: ↑14 и ↓1+13
Комментарии12

Чеклист по оптимизации VPS на PHP/Mysql/Nginx

Время на прочтение3 мин
Количество просмотров45K
Как обеспечить более высокую производительность VPS сервера, который работает на Nginx + PHP + Mysql? В этой статье приведен чеклист основных настроек, которые позволят существенно оптимизировать работу сервера. Настройка займет не более 10 минут и не требует ничего, кроме редактирования конфигурационных файлов.
Читать дальше →
Всего голосов 34: ↑17 и ↓170
Комментарии21

Надзиратель для фрилансера: выбираем систему учета рабочего времени

Время на прочтение11 мин
Количество просмотров157K


Чуть более ста лет назад инженер Фредерик Тейлор встал за спиной фабричных рабочих с секундомером и стал измерять, сколько времени они тратят на рутинные операции. Вскоре стало ясно, что их можно «оптимизировать» — повысить производительность с помощью системы научной организации труда. Именно из нее выросло современное массовое производство. Но могли ли тогдашние рабочие представить, что их правнуки примутся измерять свою производительность не по приказу капиталиста, а по собственной инициативе? Современным работникам умственного труда приходится самостоятельно планировать деятельность, а секундомер Тейлора им заменяют специальные программы для учета рабочего времени — тайм-трекеры.
Читать дальше →
Всего голосов 34: ↑30 и ↓4+26
Комментарии53

30 чудных библиотек для PHP программистов

Время на прочтение6 мин
Количество просмотров105K
Предлагаю читателям «Хабрахабра» перевод публикации «30 Amazing PHP Libraries for Programmers and Developers». Авторы собрали несколько удивительных PHP-библиотек, которые помогут реализовать некоторые классные вещи, не прилагая много усилий. Цель обзора состоит в том, чтобы преподнести что-то новое, поэтому список не включает популярные библиотеки.
Читать дальше →
Всего голосов 71: ↑60 и ↓11+49
Комментарии18

Хранение даты в mysql с учетом часового пояса

Время на прочтение2 мин
Количество просмотров36K
image
Статья о том, как избежать путаницы с датами, хранимыми в mysql.
Эти путаницы возникают по двум причинам:
1. Разные территории нашей планеты имеют разный сдвиг времени.
2. Некоторые страны переходят на летнее время и обратно(карта со странами, переходящими на летнее время).

Многие решают эти проблемы по-разному. Кто-то делает сдвиг даты в SQL запросах, кто-то в php. Кто-то хранит даты в TIMESTAMP, кто-то в DATETIME. Я переискал много источников, но нигде не нашел верного решения данной проблемы на русском. В родной документации по mysql нашел информацию о том, как добиться корректной автоматической конвертации TIMESTAMP в локальное время, но тут тоже свои подводные камни.

Если в php настройка временной зоны делается просто, в mysql возникают сложности, особенно, если доступ к mysql серверу вам ограничен и там еще не установлены некоторые таблицы.
Читать дальше →
Всего голосов 13: ↑9 и ↓4+5
Комментарии8

Самые нужные плагины для Grunt

Время на прочтение6 мин
Количество просмотров49K


Доброго времени суток, всем! Кто-то умный, не помню в какой статье именно на Хабре, буквально недавно размышлял о процессе разработки с явным призывом автоматизировать все, что только можно автоматизировать. И лучше один раз потратить время на автоматизацию, чтобы потом экономить его на протяжении всего проекта.

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

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

Читать дальше →
Всего голосов 53: ↑48 и ↓5+43
Комментарии43

Назад, к технологиям верхнего палеолита, от любимых всеми REST, STATEless, CRUD, CGI, FastСGI и MVC

Время на прочтение7 мин
Количество просмотров68K
«Только со смертью догмы начинается наука.»
// Галилео Галилей


«Я начал завидовать рабам. Они всё знают заранее. У них твёрдые убеждения.»
// х/ф Марка Захарова «Убить дракона» по мотивам пьесы Евгения Шварца


Уже пару лет и дня не проходит, чтобы я не услышал (или не прочитал) от людей, начинающих новые проекты, фразу типа «Возьмем серверный движок для REST API и MVC, и погнали». Сначала я думал, что у этих слов есть один источник, может книжку какую завезли во все магазины или где-то в топе поисковиков лежит статья, зомбирующая разработчиков. Если же выяснять у них, что они понимают под REST и MVC, то можно повредиться умом. Ну с MVC уже все ясно, об этом я уже давно писал, ничего не изменилось, только усугубилось, стоит набрать в Google Images «mvc» и мы увидим страшное, стрелочки в любые стороны. Ну а про REST отвечают следующее: ну как же, нам нужно из браузерного GUI и мобильного приложения вызывать серверные методы, например: setUserCity(userId, cityId) или calculateMatrix(data) или startVideoConverter(options, source, destination) а потом мы столкнемся с большой нагрузкой и архитектура REST все решит. Дальше я задаю вопросы, от которых глаза округляются уже у тех, кто недавно еще горел праведной верой, рвался в бой и точно знал, что к чему в этом мире. Теперь можно перейти к рассмотрению терминологической катастрофы, в эпицентре которой мы с вами пребываем.
Читать дальше →
Всего голосов 121: ↑98 и ↓23+75
Комментарии160

Лучшие компьютерные игры всех времен и народов по версии хабрасообщества 2013 года

Время на прочтение2 мин
Количество просмотров323K


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

Правила простые: в комментариях первого уровня хабраюзер пишет название любимой игры. Разрешается добавить небольшую картинку (высотой до 100 пикселей). Разрешается сделать небольшое описание, строчки на две, лучше со ссылкой на ресурс, где игра хорошо описана. В комментарий второго уровня к играм просьба добавлять интересные факты об игре, что должно прибавить плюсов.

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

Давайте установим срок, до которого продлиться наше обсуждение и голосование. Пусть это будет ночь с 12 на 13 марта. Думаю, что пяти с лишним полных дней будет вполне достаточно.

Мы построим свой музей компьютерных игр, Юзернейм!
Читать дальше →
Всего голосов 199: ↑170 и ↓29+141
Комментарии1887

Правильная утилизация батареек

Время на прочтение3 мин
Количество просмотров366K
Привет, друзья!

Каждый из нас наверняка пользовался в своей жизни батарейками. Пульты, часы, игрушки, телефоны, масса других вещей — в доме всегда есть что-то, что работает на батарейках. А они имеют свойство вырабатывать свой ресурс. Однако все ли знают, что делать с отработавшими батарейками? Выбросить в мусорное ведро вместе с остальным домашним мусором? Это неправильно!

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

Но что такого вредного или опасного в батарейках?
Узнать
Всего голосов 201: ↑193 и ↓8+185
Комментарии176

Обзор Kindle Paperwhite

Время на прочтение5 мин
Количество просмотров327K
Долгожданный Kindle Paperwhite появился в продаже в США 1 октября. К сожалению, насколько я знаю, в других странах он пока недоступен. Наверняка многим интересно, оправдал ли он ожидания…

(Под катом много фото)
Читать дальше →
Всего голосов 81: ↑80 и ↓1+79
Комментарии235

Интервью с астрофизиком Нилом Тайсоном

Время на прочтение1 мин
Количество просмотров23K


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

Читать дальше →
Всего голосов 96: ↑91 и ↓5+86
Комментарии45

NASA Mars Rover успешно примарсился

Время на прочтение2 мин
Количество просмотров17K
Марсоход NASA нового поколения успешно примарсился. Запуск космического корабля доставки с марсоходом состоялся с космодрома на мысе Канаверал 26 ноября 2011 года и почти год спустя, сегодня, 6 августа состоялась успешная посадка. Всеобщее ликование в центре управления полетами NASA можно было наблюдать в прямом эфире. Поистине захватывающий момент.


Читать дальше →
Всего голосов 192: ↑185 и ↓7+178
Комментарии549

В поиске идеальной читалки на Eink: B&N Nook Simple Touch with Glowlight + Android

Время на прочтение4 мин
Количество просмотров112K
image
Давно искал для себя хорошую читалку на Eink. За это время сформировал требования, которым должна отвечать «читалка моей мечты»
  • Однозначно, качественный eink экран. Несмотря на то, что есть и смартфон и планшет, чтение все же удобнее всего именно на качественном eink экране. Не говоря уже о чтении на солнце.
  • Тач интерфейс: за годы использования смартфонов уже отвык от кнопок ;-)
  • Всеядность: чаще всего читаю книги в формате fb2.zip но бывают нужны и другие форматы
  • Подсветка: так уж получилось, что время для чтения удается найти лишь в кровати, а свет включать не хочется дабы не разбудить ребенка.Можно конечно использовать специальные фонарики, но это уже костыли
  • Независимость от компьютера: Не хочется каждый раз когда нужна новая книга, подключаться к компу. Хочу доступ к онлайн OPDS библиотекам или на худой конец к браузеру
  • Автономность- не хочется получить еще одно устройство, которое надо заряжать каждый вечер ;-).
  • Цена- более 150-200 баксов я не готов заплатить за такую книжку.

Существующие на рынке книги удовлетворяют мои требования лишь частично. Ближе всего- PocketBook Touch, но там нет ни подсветки, ни поддержки OPDS. Да и источники получения книг онлайн ограничены в основном их магазином.
И вот с выходом Barnes&Noble Nook Simple Toch with Glowlight на горизонте замаячила надежда наконец-то получить желаемое. Кому интересно, что вышло в результате- прошу под кат:
Читать дальше →
Всего голосов 30: ↑22 и ↓8+14
Комментарии77

Вышел любительский мод к Heroes 3 — Horn of the Abyss

Время на прочтение1 мин
Количество просмотров4.9K


Фанаты серии радуются — появилась возможность поиграть в «свежак» Heroes of Might and Magic III Horn of the Abyss, довольно качественный аддон к оригинальным The Shadow of Death.
Читать дальше →
Всего голосов 76: ↑64 и ↓12+52
Комментарии52

Из html в pdf – легко! Обзор конвертеров

Время на прочтение3 мин
Количество просмотров102K
Ежедневно в процессе деятельности регистратора REG.RU, в котором я работаю программистом, совершаются сотни операций, требующих оформления каких-либо официальных документов. Среди них — различные договоры, счета, сертификаты и т.п., которые необходимо печатать как компании, так и клиентам. Для таких целей хорошо подходит формат PDF, который на сегодняшний день стал де-факто основным для обмена и распространения документации. Основными преимуществами этого формата можно назвать: кроссплатформенность, аппаратную независимость и безопасность. Все вышеперечисленное позволило PDF завоевать популярность среди пользователей и стать одним из самых распространенных.

Как можно создавать документы в формате PDF на лету, из скрипта?
Читать дальше →
Всего голосов 79: ↑70 и ↓9+61
Комментарии24

До безобразия простой способ скачать видео с youtube

Время на прочтение1 мин
Количество просмотров1.1M
image

1. Переходим на страничку с нужным видео
2. В адресной строке заменяем Y (в слове youtube) на
Читать дальше →
Всего голосов 281: ↑208 и ↓73+135
Комментарии165

Колонки одинаковой высоты + border-bottom!

Время на прочтение1 мин
Количество просмотров1.7K

Begin



На хабре наверно уже миллион статей про колонки одинаковой высоты. Вы спросите зачем нам нужна еще одна статья в 1001й раз?

Вот в чем затык



Проблема в том, что колонки одинаковой высоты с нижней границей — не так то просто сделать… В основном, я использую метод с padding-ами, т.е. ставим:

.column {
  padding-bottom: 32750px;
  margin-bottom: -32750px;
}


* This source code was highlighted with Source Code Highlighter.


для колонок, которые должны быть одинаковой высоты,
и помещаем эти колонки во враппер с overflow: hidden.

НО! При этом нельзя задать нижнюю границу для колонок!

Решение



Все очень просто, надо обернуть враппер еще раз и внешнему указать

#container {
  background:transparent url(images/example-6.gif) no-repeat scroll center bottom;
  float:left;
  padding-bottom:1px;
}


* This source code was highlighted with Source Code Highlighter.


Мы просто указали фоновую картинку для внешнего враппера, на которой изображены границы :). Мне в текущем проекте очень помогло. Если есть еще варианты без js буду рад узнать их. Ну я думаю вам станет понятней, если посмотреть на пример: www.ejeliot.com/samples/equal-height-columns/example-6.html

Материал нашел здесь: www.ejeliot.com/blog/61
Всего голосов 18: ↑9 и ↓90
Комментарии20

Доставка Amazon.com

Время на прочтение4 мин
Количество просмотров97K
Несколько лет назад я окончательно и бесповоротно перешел на чтение технической литературы исключительно на английском. Это достаточно распространенный в IT'шных кругах подход, поэтому в этом посте я хотел бы поговорить не о причинах (которые в общем-то лежат на поверхности), а о следствии данного решения. Не о следствиях, а именно о следствии — о том, как я стал постоянным клиентом Amazon'а.

Читать дальше →
Всего голосов 58: ↑49 и ↓9+40
Комментарии113

LG P500 Optimus One

Время на прочтение3 мин
Количество просмотров14K
Здравствуйте, хабражители!
Мне хотелось бы рассказать вам о таком телефоне как LG P500 Optimus One.
image

Он позиционируется как недорогой андроидофон, логичное «продолжение» телефона LG GT540.
Читать дальше →
Всего голосов 72: ↑51 и ↓21+30
Комментарии120

Информация

В рейтинге
Не участвует
Откуда
Харьков, Харьковская обл., Украина
Дата рождения
Зарегистрирован
Активность