Pull to refresh
13
0
Send message

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

Reading time5 min
Views21K
Недавно мне попался отличный инструмент для анализа PHP кода. Публикую перевод статьи с обзором этого инструмента.


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

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

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

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



Под катом еще несколько примеров.
Читать дальше →
Total votes 165: ↑119 and ↓46+73
Comments37

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

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



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

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

Вышел Chameleon 1.0

Reading time1 min
Views28K
Этой весной на Хабре упоминался проект 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 и выше.

Больше скринов под катом:
Посмотреть
Total votes 32: ↑28 and ↓4+24
Comments41

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

Reading time9 min
Views66K

Задача


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

Условия


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


Решение


Logstash + ElasticSearch + Kibana 3.
Читать дальше →
Total votes 24: ↑20 and ↓4+16
Comments47

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

Reading time1 min
Views43K
monoprice-wifi-microsd-adapter-product-photos09.jpg

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

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

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

Читать дальше →
Total votes 50: ↑46 and ↓4+42
Comments28

Continuous integration для php

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

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

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

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

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


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


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

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

Reading time13 min
Views87K

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

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

Reading time3 min
Views81K


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

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


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


Под катом bash скрипт, который этим занимается
Total votes 166: ↑120 and ↓46+74
Comments67

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

Reading time5 min
Views27K
При создании кластера для обработки звонков на базе CGP возникла необходимость настройки бесперебойного хранилища, монтируемого с нескольких сервров.

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

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

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

Читать дальше →
Total votes 23: ↑20 and ↓3+17
Comments17

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

Reading time2 min
Views198K
imageВ данном посте я расскажу о наиболее интересных командах, которые могут быть очень полезны при работе в консоли. Однозначных критериев определения какая команда лучше другой — нет, каждый сам для своих условий выбирает лучшее. Я решил построить список команд на основе наиболее рейтинговых приемов работы с консолью от commandlinefu.com, кладовой консольных команд. Результат выполнения одной из таких команд под Linux приведен на картинке. Если заинтересовало, прошу под кат.
Узнать больше
Total votes 382: ↑346 and ↓36+310
Comments215

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

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



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

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

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

Reading time1 min
Views51K


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

<a href='http://google.com/' data-intro='Hello step one!' data-step='1'></a>
Читать дальше →
Total votes 139: ↑134 and ↓5+129
Comments24

SystemTap в Linux

Reading time3 min
Views20K
Привет.

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

Всех интересующихся прошу под кат
Total votes 41: ↑39 and ↓2+37
Comments8

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

Reading time6 min
Views25K
Доброго времени суток.

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

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

Reading time1 min
Views4.1K
Привет,

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

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

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

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

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

Reading time1 min
Views5.9K
Привет! image

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

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

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


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

Читать дальше →
Total votes 18: ↑15 and ↓3+12
Comments1

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

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

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

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

а тут немного кода
Total votes 14: ↑12 and ↓2+10
Comments7

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Registered
Activity