Yii Вышел плагин для phpstorm, поддерживающий yii. Надеюсь автор не забросит его, и из этого получиться что-то более функциональное. Тестирование Функиональное тестирования как сервис - поддерживаются почти все популярные языки, все актуальные браузеры. Сам не пробовал, но судя по фичам у сервиса будут свои пользователи. Процент покрытие тестами в ruby on rails. Работает в связке с travis ci. Сейчас процедура такая: пушим на github, travis-ci выполняет тесты, coveralls показывает как изменилось покрытие кода и показывает красивые отчёты об изменениях.
Парад ссылок №1
Новая рубрика в блоге: парад ссылок. Это что-то наподобие линк-блога, но ориентированного на веб-разработчиков: php, js, администрирование и всё больше о ruby и рельсах. Короче всего, что мне интересно.
Надеюсь, каждый найдёт что-то интересное.
Ускорение скорости работы grep в Mac OS X
На монитор попала статья о том, что grep от gnu быстрее стандартного маковского grep’а в 10 раз Решил проверить у себя. На файле, размером в 720 Мб grep стал быстрей в 36 раз! Неплохо. $ brew install grep $ time /usr/bin/grep "GET /out" nginx-access_log.2 | wc -l 140858 /usr/bin/grep "GET /out" nginx-access_log.2 26.49s user 0.28s system 97% cpu 27.443 total wc -l 0.03s user 0.02s system 0% cpu 27.443 total $ tmp time grep "GET /out" nginx-access_log.
Ограничение прав пользователей в git
Бывали ситуации, когда сделали какой-то внерелизный автономный функционал или просто быстрый хотфикс, а в мастере один из коллег уже успел чего изменить, что ещё не протестировано. А это нарушает одно из правил — в мастере должен быть только стабильный код. Поэтому код в мастер не должен попадать непротестированным.
Почему он это сделал — это другой вопрос: просто не переключил ветку или намеряно. Или к джуниору подбежал директор или менеджер и сказал, что нужно быстро исправить. Тут нужно бить такого программиста по рукам, но лучше предупредить болезнь, чем лечить её =)
Удаление данных из коллекции в Mongodb без блокировки
Задача: удалять устаревшие данные из большой коллекции монги. Можно пойти в лоб и удалять так:
var time = new Date().getTime() - 2*24*60*60;
db.data.remove({updating_time: {$lte: time}})
В этом случае возникнет блокировка, и запросы на чтение будут очень долго выполняется. А система устроена таким образом, что постоянно вставлять и обновлять данные из этой коллекции.
Яндекс.танк — инструмент нагрузочного тестирования
28 июля на я.субботнике был представлен новый инструмент для нагрузочного тестирования Яндекс.танк. Это внутреняя разработка яндекса, которая наконец-то вышла в свет. Видел я этот танк ещё на YaC 2011, когда были соревнования по конфигурированию nginx.
Это консольный инструмент, пока не имеющий графического интерфейса, но дающий довольно полную картину в этой самой консоли.
Yii: рецепты №2
Продолжаю делится интересным о Yii
Шифрование данных
Иногда требуется зашировать данные с возможностью последующей обратной дешифровкой.
В yii есть отличная обёртка для такого рода операций: CSecurityManager::encrypt() и CSecurityManager::decrypt()
Yii: рецепты №1
Пакетирование js и css-файлов и использование зависимостей между этими пакетами.
Есть замечательный инструмент для рисования графиков на js — highcharts, но он использует фреймворк jQuery и сам jQuery не подключает. Соответственно, мы создаём наш пакет, где указываем js и css файлы из highcharts и прописываем зависимость от jQuery.
Редирект при вставки сайта через iframe
Довольно долго бился c запрещением вставки сайта в iframe с указанием белого списка сайтов, которые могу это сделать if (top != self) { var white_list = ['yandex.ru', 'google.com']; var isFriend = false; var hostname = document.referrer.split("/")[2].split(":")[0]; for (var i=0; i < white_list.length; i++) { if (hostname == white_list[i] || hostname == "www." + white_list[i]) { isFriend = true; break; } } if ( ! isFriend ) { window.top.location = window.location.href; } }
Эмуляция хоткея с участием Alt в midnight commander
После перехода на Mac OS X, не как не мог отвыкнуть от использования хоткеев с участием клавиши Alt. Нашёл наконец-то способ, как съэмулировать хоткеи в сочении с Alt. Например, чтобы сделать действие по Alt+c нужно последовательно нажать Esc и c. «А ларчик просто открывался» ©. Тех, кто не знаком с хоткеями в mc, предлагаю ознакомиться с листингом горячих сочетаний mc.