Как стать автором
Обновить
26
0
Акжан @akzhan

CTO, Release manager, Teamlead

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

DI и IoC для начинающих

Время на прочтение4 мин
Количество просмотров129K
Тема DI/IoC достаточно простая, но в сети очень сложно найти хорошее описание того, как это работает и зачем это нужно. Вот моя попытка, с использованием Unity. Хорошо ли объяснена тема – судить вам.

Читать дальше →
Всего голосов 44: ↑35 и ↓9+26
Комментарии46

Grammar Gravity

Время на прочтение1 мин
Количество просмотров789
Довольно часто на Хабрахабре можно увидеть комментарии, которые содержат сообщения о том, что в статью закралась та или иная ошибка. Такие комментарии не относятся непосредственно к теме, которую выносит статья на обсуждение общественности, и отвлекает участников дискуссии от плодотворного её проведения.

Такую информацию нужно отправлять персонально автору, но порой пользователям бывает просто лень открывать свою Хабрапочту и набирать там необходимую информацию для того, чтобы оповестить автора об ошибке. Что же может нам помочь?

Пользовательский скрипт Grammar Gravity поможет вам, не отходя от статьи и её обсуждения, отправить автору сообщение об ошибке в два клика. Вы, как будто бы, пишете обычный комментарий, но, на самом деле, вы отправляете персональное сообщение автору статьи! Красота, не правда ли?

Дорогой Якубович! Передаю привет Максиму Россомахину и Александру Савицкому!

Если же вам недостаточно просто сообщать пользователю об ошибках, вы хотите написать ему полноценное сообщение, то вам следует установить Grammar Gravity Parallel.

Дорогой Якубович! Передаю привет Максиму Россомахину и Александру Савицкому!

Расширение было оттестированно на Firefox 2 и 3, Opera 10, Google Chrome и Safari. Не исключено, что оно будет работать и на других браузерах, которые не попали в вышеперечисленную выборку. Для установки скрипта в Firefox вам понадобится Greasemonkey, в Opera — включить пользовательские скрипты в настройках, в Google Chrome — добавить к опциям ярлыка --enable-user-scripts --user-scripts-dir=\путь\до\директории и положить в ту самую директорию скрипт.

Присылая автору сообщение об ошибке персональным сообщением, вы делаете доброе дело! Мир запомнит вас! Удачи вам!
Всего голосов 129: ↑124 и ↓5+119
Комментарии76

3 in 1: Desktop, Mobile, Web. Кроссплатформенная разработка

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

Разработка в рамках одного проекта несет в себе ряд преимуществ. Во-первых, это позволяет использовать одну реализацию бизнес-логики программы. Во-вторых, это возможность иметь единый набор юнит-тестов. В-третьих, это использование привычного языка(С++) и среды разработки.
Статья описывает некоторые методы программирования и несколько библиотек помогающие создавать кроссплатформенные приложения.
За основу взят опыт создания небольшого приложения типа «калькулятор»

читать дальше
Всего голосов 47: ↑37 и ↓10+27
Комментарии41

Порядок разрешения методов в Python

Время на прочтение15 мин
Количество просмотров182K
В этой заметке рассматривается алгоритм MRO С3 и некоторые специфические проблемы множественного наследования. Хотя и алгоритм и проблемы не ограничиваются рамками одного языка, я акцентировал своё внимание на Питоне. В конце приведён список полезных ссылок по данной теме.
Читать дальше →
Всего голосов 63: ↑62 и ↓1+61
Комментарии12

Расширение Jeditable плагина на примере Wymeditor и JqueryUI.datepicker

Время на прочтение4 мин
Количество просмотров2.5K
Столкнулся с задачей когда надо было сделать на сайте возможность редактировать контент в паблик части по клику на блок. И решил что это неплохой повод освоить jQuery. Скачал jquery, jQuery UI (плагин datepicker), wymeditor и Jeditable плагин.

С интеграцией jeditable все было просто. Плагин очень порадовал, оказался гораздо удобней плагина Editable. А вот с интеграцией с jQueryUI.datepicker и wymeditor’ом пришлось немного повозиться.
Проблема с которой я столкнулся заключалась в том что по поводу расширения плагина jeditable было написано очень мало, точнее только страница с примерами, я до этого с jQuery дел не имел и поэтому пришлось помучаться. Результаты с объяснением ниже, авось кому поможет.
p.s. оказалось что документация есть но я ее плохо искал.
И вот что получилось
Всего голосов 7: ↑6 и ↓1+5
Комментарии12

jQuery Tools v1.0.1

Время на прочтение1 мин
Количество просмотров3.9K
jQuery Tools Logo
jQuery Tools v1.0.1 — это инструмент/библиотека представляет собой файл весом в 5,8 кб включающий в себя наиболее важные компоненты для вебдванольных сайтов, а именно: табы, всплывающие подсказки, плавные переходы, прокрутки, всплывающие окна и т.д.

Не буду тянуть резину, лучше, как говориться, один раз увидеть, чем сто раз услышать!
Переходим по ссылке и смотрим более 50 (!) демок:

Несколько понравившихся мне демонстраций. Очень рекомендую!
Маскируем фоновое изображение;
AJAX-табы с поддержкой истории переходов;
Неколько всплывающих окошек на одной странице.
Всего голосов 158: ↑152 и ↓6+146
Комментарии85

jQuery Ui.datetimepicker

Время на прочтение1 мин
Количество просмотров32K
Привет! Сегодня решил сойти с ума! Конечно родной datepicker в ui это хорошо, но когда нужно и параметр «время» – данного виджета не хватает.
Внимание! Писал все быстро, инструкцию не пишу т.к. хватает этой.
Думаю разберетесь.
Демо тут.

Всего голосов 78: ↑59 и ↓19+40
Комментарии24

PHPUnit и его Database Extension. Беглый взгляд

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

Пространное и многословное вступление


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

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

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

Перевод: 30 дней Windows Mobile — день второй (Winforms/С# vs WinAPI/C)

Время на прочтение6 мин
Количество просмотров1.6K
Итак, продолжаем перевод цикла статей 30 дней .NET [Windows Mobile]. Напоминаю, что для большего интереса переводятся сразу две статьи — из блога Криса Крафта (Windows Forms — C#) и Кристофера Фэрбейрна (WinAPI — C). На очереди день второй — управление bluetooth. Предыдущая статья из цикла —
http://habrahabr.ru/blogs/mobiledev/61248/.

Читать дальше →
Всего голосов 30: ↑22 и ↓8+14
Комментарии11

Пишем свой плагин для nagios

Время на прочтение1 мин
Количество просмотров9.7K
В своей повседневной работы я очень активно использую nagios. Как мне кажется, это очень мощная система для мониторинга серверов. Можно мониторить загрузку сервера, доступность разных серверов и тд и тп.

Для нагиоса есть очень много плагинов. Большое собрание плагинов находится по адресу nagiosplugins.org. Можно найти подходящий для себя, поставить и наслаждаться жизнью. Но что же делать если ни один плагин не устраивает вас по функционалу? Да ничего. Напишем свой. Это очень просто.

Итак начнем.

Первое что нам нужно знать для написания простейшего плагина это как работает нагиос на базовом уровне.

Он парсит свой конфиг, находит там команду запуска какого-либо плагина и запускает. Например, php -f checkServer.php. checkServer.php выполняет какую-то свою работу по проверке сервера и отдаёт в ответ статусное сообщение и код завершения работы.

Нагиос понимает 4 кода завершения работы
  • 0 — Все ок.
  • 1 — Предупреждение
  • 2 — Критическая ошибка
  • 3 — Что-то неизвестное случилось

Статусное сообщение это любая информация которая выводится скриптом на стандартный вывод.

И так сам скрипт простейшего плагина под nagios(на php).

define( "STATUS_OK", 0 );
define( "STATUS_WARNING", 1 );
define( "STATUS_CRITICAL", 2 );
define( "STATUS_UNKNOWN", 3 );

$checkFilePath = 'file';
if(file_exists($checkFilePath))
{
echo 'File exists. Everything is ok';
exit(STATUS_OK);
}

echo 'File does not exists';
exit(STATUS_CRITICAL);


вот и все — подключаем в нагиос и он будет проверять существует ли файл или нет. Конечно же Вы можете организовать любую проверку бизнес логики своего проекта, вплоть до автоматического тестирования через phpunit.
Всего голосов 31: ↑22 и ↓9+13
Комментарии6

Что скрывает class Empty {}

Время на прочтение3 мин
Количество просмотров9K
Это заметка о методах, которые C++ создаёт автоматически, даже если вы их не создавали.

Для кого эта заметка? Надеюсь, что она будет интересна начинающим программистам на С++. А опытным программистам позволит лишний раз освежить и систематизировать свои знания.

Читать дальше →
Всего голосов 65: ↑58 и ↓7+51
Комментарии65

Микропаттерны оптимизации в Javascript: декораторы функций debouncing и throttling

Время на прочтение2 мин
Количество просмотров58K
Декораторы функций позволяют добавить дополнительное поведение функции, не изменяя ее. Сигнатура оригинальной и декорированной функции полностью совпадают.
Читать дальше
Всего голосов 74: ↑72 и ↓2+70
Комментарии28

Конкурс от ASUS & Intel «Что ты думаешь о будущем?»

Время на прочтение1 мин
Количество просмотров4.7K
Почти каждый день в Интернете появляются новые профессии, которых не существовало раньше. И для них требуются нестандартные, талантливые, современные люди. Сегодня нам нужны профессиональные блоггеры для ведения уникального и пока секретного социального проекта, который вот-вот перестанет быть секретным.

Photobucket

Как найти людей на должность, которой еще не было? С помощью конкурса «Что ты думаешь о будущем?».

Это первый конкурс из целой серии, организуемой Asus и Intel для того, чтобы найти лучших творческих людей Рунета, и дать им возможность получать ценные призы за быстрое и интересное освещение всех самых горячих новостей из мира hi-tech, за свежий взгляд на будущее.

Вас ждут три нетбука Asus Eee PC! Победители будут рассматриваться в качестве сотрудников редколлегии проекта.

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

Возможно, эта новая профессия возникла специально для Вас
Всего голосов 39: ↑23 и ↓16+7
Комментарии56

Data URI [CSS] Sprites 1.1 — Автоматизация процесса сборки css спрайтов

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

Многим профессиональным веб-разработчикам известны приемы оптимизации сайтов. Одним из способов оптимизации является использование CSS спрайтов. Этим же разработчикам известно, какие существуют трудности с формированием, сборкой и пересборкой стандартных спрайтов. В инете можно найти инструменты для автоматизации этого процесса.
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии18

jQuery Timers

Время на прочтение3 мин
Количество просмотров64K
При проектировании интерфейсов пользователя когда-нибудь обязательно встанет задача использования таймеров, и в этой статье я хочу рассказать о замечательном плагине jQuery Timers, который значительно облегчит работу по созданию и применению таймеров в Ваших приложениях.
jQuery Timers — это высокоуровневая абстракция методов setTimeout и setInterval. Используя jQuery Timers, Вы сможете «прикреплять» таймеры к элементам непосредственно в Вашем коде и использовать еще некоторые возможности.
Как обычно, сначала посмотрим пример, а потом разберем исходный код.

Пример и исходный код скачать можно здесь

image
Привет Isis, давно тебя не было, почитаем дальше
Всего голосов 73: ↑63 и ↓10+53
Комментарии35

jQuery ColorPicker — выбираем цвет.

Время на прочтение3 мин
Количество просмотров21K
С удивлением обнаружил, что до сих пор не коснулся темы выбора цвета. Спешу исправить это недоразумение и расскажу о еще одном плагине к библиотеке jQuery — ColorPicker. Сразу хочу предупредить, плагин использует png-файлы, и в нашем любимом IE6 это аукается небольшими проблемами.
Как обычно, сначала демонстрация примеров, а уже потом будем разбираться, как это использовать.

Пример: x3k.name/habrahabr/jquery.colorpicker.html

image
Читать дальше →
Всего голосов 26: ↑20 и ↓6+14
Комментарии10

Реализация интерфейса ElementTraversal

Время на прочтение8 мин
Количество просмотров2.2K
Достаточно много браузеров (Opera 9.6, Google Chrome 2, Safari 4, Firefox 3.5) обзавелись поддержкой весьма удобного интерфейса ElementTraversal, который позволяет перемещаться по DOM-дереву, игнорируя текстовые узлы. В этих браузерах для каждого элемента стал доступен следующий набор новых getter'ов:
  • firstElementChild — первый дочерний элемент;
  • lastElementChild — последний дочерний элемент;
  • nextElementSibling — следующий соседний элемент;
  • previousElementSibling — предыдущий соседний элемент;
  • childElementCount — количество дочерних элементов.
Читать дальше →
Всего голосов 30: ↑26 и ↓4+22
Комментарии17

Шейдеры и немного магии

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

В последнее время я «проникся» идеей создания custom-эффектов в Silverlight 3 beta/WPF. В качестве упражнения решил сделать эффект Джинна на Silverlight. Эффект Джинна — это эффект сворачивающегося окошка в Mac OS:



Для правильной работы демки вам понадобится… Silverlight 3 beta — справа ссылка на установку необходимого рантайма. Итак, вот что из этого получилось: демо (потягайте зеленый квадратик-лампу, нажмите Help).

Для тех, кому интересно узнать, как создавать свои собственные эффекты, и что именно стоит за Genie, я написал этот пост.

Авось, кому-нибудь когда-нибудь да пригодится :).

Отличного программирования, друзья!
Всего голосов 65: ↑40 и ↓25+15
Комментарии27

phpThread: нити в PHP? Запросто

Время на прочтение2 мин
Количество просмотров2.2K
Если вы хотите научиться писать многопоточные приложения на PHP или здорово упростить себе жизнь — статья для вас.

Раньше для этих целей я пользовался либо запуском несколько копий скрипта, либо же использовал pcntl на более низком уровне, чем хотелось бы. Это, а от части и Java-идеология работы с потоками, побудили меня к написанию пакета phpThread.
Читать дальше →
Всего голосов 75: ↑61 и ↓14+47
Комментарии78

Информация

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