Как стать автором
Обновить
13
0

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

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

Визуализация качества кода с PhpMetrics

Время на прочтение5 мин
Количество просмотров21K
Недавно мне попался отличный инструмент для анализа PHP кода. Публикую перевод статьи с обзором этого инструмента.


PhpMetrics использует D3 и несколько сложных алгоритмов для сканирования кода вашего приложения и вывода замысловатых отчетов по результатам.
image
Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии18

Украшательство Android-телефона: рецепты красивых рабочих столов

Время на прочтение1 мин
Количество просмотров156K
Одним из плюсов телефонов на базе Android является возможность полной кастомизации интерфейса под себя. Благо всевозможных виджетов под систему существует огромное количество. Причем, их настолько много, что пользователи гуглофонов иногда напоминают скульпторов или художников – попробуй совмести все нужное так, чтобы получилось красиво, да еще и учти все нюансы настроек. Одним словом, настройка требует времени, вкуса и недюжинного воображения.

Специально для тех, кто делает первые шаги в настройке своего телефона/планшета, существует отличный сайт Mycolorscreen.com (странно, что о нем не упоминали на хабре), позволяющий посмотреть на примеры кастомизации других пользователей. Причем сайт изобилует не просто примерами, но и детальными рецептами того, как приготовить такой стол самому.



Под катом еще несколько примеров.
Читать дальше →
Всего голосов 165: ↑119 и ↓46+73
Комментарии37

Google: отбор результатов по времени

Время на прочтение1 мин
Количество просмотров2.2K
Изменить параметры выдачи в Google, отталкиваясь от текущей даты, можно довольно простым способом. Для этого достаточно добавить в конец строки простой параметр – &as_qdr=d. После этого нажать «ввод». Появится дополнительное поле для выбора вариантов вывода результата поиска: в любое время, в последние 24 часа, в последнюю неделю, в последний месяц и т.д.



P.S.: Есть рабочий Greasemonkey скрипт: Google Time Search (MODIFIED), чтобы не копировать каждый раз дополнительный параметр. Довольно удобная штука в домашнем хозяйстве.

P.S.2: У меня нет никаких сомнений, что многим данный способ известен. Но друг он как-то поможет и тем, кто про него еще не знает?
Всего голосов 45: ↑42 и ↓3+39
Комментарии25

Вышел Chameleon 1.0

Время на прочтение1 мин
Количество просмотров28K
Этой весной на Хабре упоминался проект Chameleon, который на тот момент был проектом на KickStarter и представляющий из себя лаунчер для Android с любопытной идеей, которая, правда сказать, была в какой-то степени повторена функцией Google Now в летнем релизе Jelly Bean.

Релиз был обещан в сентябре этого года и, как видно, у команды Chameleon все закончилось благополучно не только со сбором средств, а и с разработкой. Сейчас Chamelon доступен в Play Market в двух вариантах — для тех, кто поддержал проект на Kickstarter и может получить результат работы бесплатно и платная версия для всех остальных, желающих попробовать новинку (правда, средняя оценка приложения пока не радует).

Работа лаунчера похожа на работу Google Now — приложение пытается предсказать потребности пользователя в зависимости от времени и места нахождения пользователя. Например, с утра Chameleon показывает почту, утренние новости, обновления социальных сетей, данные о пробках, авариях и тому подобное. Днём — при нахождении на работе — показываются курсы валют, цены на бензин, билеты и другая деловая информация. В вечернее время пользователю будет предлагаться всевозможная развлекательная информация вроде обновления на каналах YouTube, новые статьи Reddit и прочее. При этом все экраны и все виджеты (это HTML5-приложения, API Chameleon прилагается), которые показывают информацию, кастомизируемы пользователем по своему желанию.

Стоимость приложения — 10$ (кстати сказать, бесплатно приложение могут получить те, кто на KickStarter перечислил создателям 5$ и более). Требуемая версия Android — от 3.2 и выше.

Больше скринов под катом:
Посмотреть
Всего голосов 32: ↑28 и ↓4+24
Комментарии41

Учимся готовить Log4j + Logstash + ElasticSearch + Kibana 3 + Auth (Google OAuth2/BasicAuth/CAS Authentication)

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

Задача


Настройка удобного средства для обработки и получения логов.

Условия


  1. Лицензия MIT или Apache 2.0
  2. Возможность приема и обработки многострочных сообщений
  3. Простота в настройке и использовании
  4. Возможность работы с логами из Log4j


Решение


Logstash + ElasticSearch + Kibana 3.
Читать дальше →
Всего голосов 24: ↑20 и ↓4+16
Комментарии47

Wi-Fi microSD Adapter: добавляем Wi-Fi модуль к фотокамере

Время на прочтение1 мин
Количество просмотров43K
monoprice-wifi-microsd-adapter-product-photos09.jpg

Ну, или любому другому девайсу, где есть слот для карт памяти формата SD. Дело в том, что на днях компания Monoprice анонсировала Wi-Fi microSD Adapter. Это — адаптер для microSD с модулем Wi-Fi.

Сейчас есть уже фотокамеры с Wi-Fi модулем, но большинство моделей все же не оснащено таким модулем. Есть еще вариант типа Eyefi, но цена такого решения может быть достаточно высока. А девайс от Monoprice стоит меньше 35 долларов США.

Адаптер поддерживает работу с microSD картами с емкостью вплоть до 32 ГБ. Если недостаточно — можно просто заменить карту. А в случае с тем же Eyefi пользователь ограничен размером такой карты, без вариантов.

Читать дальше →
Всего голосов 50: ↑46 и ↓4+42
Комментарии28

Continuous integration для php

Время на прочтение9 мин
Количество просмотров14K
Эту статью написал мой добрый приятель и бывший коллега fred, работающий в команде программистов над большим и сложным проектом, который должен работать 24х7. Если кто-то решит пригласить его на хабр — с удовольствием вышлю его email по хабрапочте. Пожелания и комментарии приветствуются, а я обязуюсь передавать ответы автора в меру своих возможностей.

Меня давно посещала мысль запустить CI-сервер для рабочего проекта. База модульных тестов уже достаточно внушительных размеров, а количество людей в проекте немного увеличилось. Можно было бы наблюдать за тем, как изменяется покрытие тестами кода и соблюдаются стандарты кодирования. И наказывать провинившихся. Шучу.
Некоторое время назад была прочитана книжка Непрерывная интеграция. Улучшение качества программного обеспечения и снижение риска и статья Quality Assurance Tools for PHP, которые и послужили отправной точкой.
Читать дальше →
Всего голосов 82: ↑77 и ↓5+72
Комментарии44

Реализация быстрого импорта из Excel на PHP

Время на прочтение3 мин
Количество просмотров68K
Мы продолжаем рассказывать о технологиях, используемых на нашем сервисе email-маркетинга Pechkin-mail.ru. Одной из ключевых задач любого сервиса, связанного с данными клиентов, является загрузка этих данных на сервис. Для Печкина очень важно быстро и без проблем для пользователя загружать адресные базы, содержащие email-адреса, имена, фамилии и другие дополнительные данные.

Что использовать в качестве инструмента?


В качестве базового стандарта, используемого при импорте адресных баз, мы взяли Microsoft Excel. Объясняется это просто:
  • это стандартный инструмент, которым на базовом уровне владеют 100% пользователей компьютеров. Более того, в бизнесе — это де-факто корпоративный стандарт и используется даже, если на рабочих компьютерах Mac или Linux.
  • Практически все CRM-, CMS-, облачные или десктопные системы имеют экспорт в Excel или CSV, который простым пересохранением приводится к формату XLS или XLSX.
  • Известно также, что “90% ошибок ПО сидит в полуметре от монитора”. Не в обиду будет сказано рядовым пользователям, но мы должны учитывать самый базовый уровень подготовки и тех. поддержке для объяснения достаточно сказать “Загрузите Excel-файл”, а не объяснять процедуру подготовки файла в нужном формате.


Проблему пользователей при импорте адресных баз сняли. Но тут возникает уже проблема непосредственно разработки.
Прочитать о быстрой реализации импорта из Excel на PHP и LibXL
Всего голосов 32: ↑25 и ↓7+18
Комментарии23

Запуск OLAP-сервера на базе Pentaho по шагам

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

Итак, дорогие хабровчане, хочу представить на ваше обозрение инструкцию, как нам пришлось поднимать OLAP-сервер в нашей компании. Шаг за шагом мы пройдем по пути, который был нами проделан, начиная с установки и настройки Pentaho и заканчивая подготовкой таблиц данных и публикацией olap-куба на сервере. Естественно, многое здесь может быть сумбурным/неточным/неоптимальным, но когда нам понадобилось поднять сервер и посмотреть, сможет ли Pentaho заменить нашу самописную статистику, у нас не было и такого…
Дальше много букв и картинок...
Всего голосов 25: ↑24 и ↓1+23
Комментарии4

Бан по континентам

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


В одно прекрасное утро я просматривал логи и задал себе ряд вопросов:

  1. А жду ли я письма из Юго-Восточной Азии? (когда смотрел логи почты)
  2. И с какого перепугу ко мне стучатся ssh брутфорсеры из Штатов?
  3. Мне надо терпеть сетевые сканеры из Австралии?
  4. Кто мне звонит из Африки? (когда разглядывал логи asterisk)
  5. С какой стати к моему POP-серверу обращаются из Латинской Америки?


Почему бы не забанить по континентам? Оставив только нужный континент(ы)?


Под катом bash скрипт, который этим занимается
Всего голосов 166: ↑120 и ↓46+74
Комментарии67

Создание надёжного хранилища раздаваемого нескольким серверам по nfs

Время на прочтение5 мин
Количество просмотров27K
При создании кластера для обработки звонков на базе CGP возникла необходимость настройки бесперебойного хранилища, монтируемого с нескольких сервров.

В качестве дистрибутиа для серверов был взят Ubuntu Server 10.10. Дисковое пространство было разбито на два логических диска (sda1 для установки системы, и sda2 собственно для разделяемого диска).

После установки базовой системы надо дополнительно установить следующие пакеты: heartbeat, pacemaker, drbd8-utils, xfs, xfsprogs, nfs-kernel-server.

Heartbeat и pacemaker нужны для кластеризации серверов. Хранилище сделано на основе drbd, в качестве файловой системы использовалась xfs. Раздача файловой системы серверам сделана по nfs.

Читать дальше →
Всего голосов 23: ↑20 и ↓3+17
Комментарии17

Десятка лучших консольных команд

Время на прочтение2 мин
Количество просмотров198K
imageВ данном посте я расскажу о наиболее интересных командах, которые могут быть очень полезны при работе в консоли. Однозначных критериев определения какая команда лучше другой — нет, каждый сам для своих условий выбирает лучшее. Я решил построить список команд на основе наиболее рейтинговых приемов работы с консолью от commandlinefu.com, кладовой консольных команд. Результат выполнения одной из таких команд под Linux приведен на картинке. Если заинтересовало, прошу под кат.
Узнать больше
Всего голосов 382: ↑346 и ↓36+310
Комментарии215

FightCode: танковые войны на JavaScript

Время на прочтение5 мин
Количество просмотров68K
FightCode — это онлайн-игра для программистов, построенная по образу и подобию классической Robocode. Для программирования танков используется JavaScript, все сражения происходят прямо в браузере, а редактор кода на сайте имеет встроенную «песочницу», которая позволяет в реальном времени видеть эффект от изменений кода. В отличие от многих других подобных игр, создатели неплохо поработали над дизайном — игровое поле и весь сайт в целом выглядят привлекательно и ярко.



Всё это делает FightCode одним из лучших вариантов для новичков в подобных играх или для обучения программированию. Проект довольно молодой, и несмотря на то, что на сайте зарегистрировано почти 9000 игроков, пробиться в первую сотню рейтинга можно без особых усилий. Очень удобно организована система боёв со случайными соперниками — из всех доступных роботов автоматически выбираются те, чей рейтинг близок к вашему. Очки считаются по системе Эло — победа над более сильным противником даёт гораздо больше очков, чем над слабым.

Каждый участник может иметь сколько угодно роботов. Создание нового робота начинается с примитивного шаблона, который не делает почти никаких осмысленных действий. Добавив обработчики основных событий, таких как столкновения или попадания вражеского снаряда можно дать роботу набор «безусловных рефлексов», которые сделают его поведение более целесообразным и послужат отправной точкой для дальнейшего развития.
Вот как это делается:
Всего голосов 88: ↑87 и ↓1+86
Комментарии70

intro.js — пошаговое руководство для веб-страницы

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


Эта маленькая библиотека позволяет очень просто создать пошаговое введение для сайта или приложения. Достаточно добавить атрибуты data-intro и data-step с описанием и номером шага соответственно к нужным элементам страницы. Вот так:

<a href='http://google.com/' data-intro='Hello step one!' data-step='1'></a>
Читать дальше →
Всего голосов 139: ↑134 и ↓5+129
Комментарии24

SystemTap в Linux

Время на прочтение3 мин
Количество просмотров20K
Привет.

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

Всех интересующихся прошу под кат
Всего голосов 41: ↑39 и ↓2+37
Комментарии8

Автоматическое подключение css и js файлов в Yii

Время на прочтение6 мин
Количество просмотров25K
Доброго времени суток.

На этот раз хочу, рассказать о способе автоматического подключения css и js файлов в Yii. Идея заключается в том, что бы к каждому файлу вида привязывать соответствующую папку с ресурсами (css, js, images). Это удобно, т.к. в большенстве случаев конкретные «assets» используются для конкретных файлов вида.
Читать дальше →
Всего голосов 14: ↑10 и ↓4+6
Комментарии16

Патч, позволяющий каждому коннекту иметь много user lock объектов

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

Пока был в отпуске, написал патч для MySQL, позволяющий каждому коннекту владеть несколькими user lock объектами.
Патч доступен здесь:

https://code.launchpad.net/~kostja/percona-server/userlock

Это последний percona-server (5.5) + новые пользовательские локи.

Подробнее про патч написал в своём блоге.
Надеюсь, кому-то окажется полезен. Буду рад комментариям по этой фиче.
Всего голосов 34: ↑29 и ↓5+24
Комментарии11

AWS: IAM роли для серверов

Время на прочтение1 мин
Количество просмотров5.9K
Привет! image

Я хочу рассказать о фиче IAM ролей для серверов в AWS. Роль — это совокупность прав доступа, которые можно применить к серверу. Можем рассмотреть на определённом примере — дать доступ серверу к S3, не забивая никаких ключей вручную.

Приступим к примеру.

1. Создадим роль с нужными правами


Идём в консоль IAM и там создаём роль S3.

Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Комментарии1

Расширяем возможности Asterisk, используя PHP

Время на прочтение4 мин
Количество просмотров56K
Все слышали про мини-АТС нового поколения имя которой Asterisk. Так уж случилось что я заинтересовался этой системой и даже успел сделать пару коммерческих проектов.

В этой статье я хочу немного расказать об интеграции звездочки с языком программирования php. При этом мы будем использовать класс phpagi.

Под катом я приведу примеры использования нескольких методов этого класса которые помогли мне.

а тут немного кода
Всего голосов 14: ↑12 и ↓2+10
Комментарии7

Информация

В рейтинге
Не участвует
Откуда
Екатеринбург, Свердловская обл., Россия
Зарегистрирован
Активность