Pull to refresh
53
0
Виктор @kagen

User

Send message

«Хакинтош» – стоит ли игра свеч?

Reading time4 min
Views351K
imageХочу поделиться своим мнением и опытом относительно работы Mac OS X на обычном PC компьютере. Может кому-то этот топик будет интересен или полезен.

Я разработчик ПО для Mac OS X и iOS. И я обожаю технику и ПО от Apple (но я не являюсь ярым фанатом). За свою жизнь у меня побывало много гаджетов от Apple: PowerBook G4, MacBook, iMac, MacBook Pro, iPhone, iPad и пр.

Техника для меня лишь инструмент достижения целей. В данный момент времени на работе я использую iMac (Core i5), в личных целях: обычный стационарный PC, ноутбук Lenovo, телефон на Android и iPad.

Недавно мне для работы дома понадобился очень мощный компьютер с Mac OS X. По характеристикам из техники Apple подходили лишь топовый iMac (с Core i7-2600 3,4 ГГц) и Mac Pro. Оба стоят просто запредельные деньги — более 100 тыс. рублей. Я психологически не был готов потратить такие деньги на компьютер. Ограничил бюджет суммой 55 тыс. рублей и решил собрать «Хакинтош». Я немного слежу за тематикой «Хакинтош» и имею четкое представление, что «там и как».

Читать дальше →
Total votes 330: ↑239 and ↓91+148
Comments331

Google Docs Viewer

Reading time4 min
Views81K
Google Docs ViewerGoogle Docs Viewer — это онлайн-сервис работающий на платформе Google Docs и позволяющий непосредственно в веб-браузере и без авторизации просматривать документы поддерживаемые сервисом Google Docs, например Adobe PDF, Microsoft Word или Microsoft PowerPoint.

Преимуществом такого варианта является возможность просмотра документов множества форматов без загрузки на локальный диск. Другим преимуществом является безопасность — не все PDF и DOC документы безопасны для просмотра через Adobe Reader и MS Word.

Читать дальше →
Total votes 56: ↑49 and ↓7+42
Comments24

Наши новые персональные данные

Reading time7 min
Views5.5K
Здравствуйте. С этой статьи я хочу начать небольшой цикл статей о защите персональных данных (далее ПД) на территории РФ. Тема очень актуальна, т.к. с 1 января 2011 года вступает в силу федеральный закон №152-ФЗ «О персональных данных» и все государственные и муниципальные учреждения, а так же львиная доля компаний должны выполнить все требования данного закона. И поэтому я хочу объяснить, что же это за закон и с чем его едят.

image
Читать дальше →
Total votes 52: ↑47 and ↓5+42
Comments98

Netgear Universal WiFi Internet Adapter WNCE2001, или как из любого Ethernet на бытовом устройстве сделать WiFi 802.11n

Reading time4 min
Views32K
Обзор некоторых железок должен выглядеть примерно так: «Работает. Серьезных недостатков не имеет. Цена такая-то. Рекомендую». Ну и фотография коробки, чтобы в магазине не промахнуться. Так бы, наверное, и написал о сегодняшнем агрегате, но, боюсь, серьезные парни такую лаконичность не оценят, а для несерьезных писать скучно. Поэтому изложу эти тезисы чуть подробнее – для пущей их ясности.

Итак, у меня на кухне висит телевизор Acer. Простенький такой, 19-дюймовый, с разрешением 1440х900. На нем ребенок во время принятия пищи смотрит мультфильмы, ну и жена на них тоже поглядывает. Конечно, тот ужас-ужас, который идет по эфирным телеканалам, мы ребенку стараемся не показывать. От греха. Поэтому сзади телевизора приклеен на двусторонний скотч плеер WD TV Live, а в него воткнуто две флэшки. И вот с них-то и идет на экран всякое, вроде «Тачек» или «Простоквашино». Разумеется, все это записано в DVD-разрешении, и до поры нам всем всё нравилось. Но вот однажды угораздило меня добыть абсолютно лицензионный (мимо проходи, РАО, мимо) рип пиксаровских «Тачек» в Full HD. Включил я его на телевизоре и, знаете ли, ошалел. Вроде и диагональ маленькая, и разрешение у матрицы не дотягивает до Full HD, но картинка стала настолько лучше, что возвращаться на SD категорически не захотелось.

Netgear WNCE2001
Читать дальше →
Total votes 67: ↑60 and ↓7+53
Comments68

Мониторинг серверов с Intel RMM средствами Zabbix

Reading time3 min
Views8.1K
Исторически сложилось так, что в своей работе мы используем серверы компании Intel. И сейчас, при создании комплексной системы мониторинга, появилась задача — снимать статистику не только по операционной системе, но и по состоянию железа. Но температуру, напряжение, скорость вращения кулеров и многое другое на этих серверах можно получить с BMC только посредством IPMI.
Intel RMM3
Чем мы и займёмся
Total votes 8: ↑8 and ↓0+8
Comments12

Как недорого починить мат. плату или видеокарту

Reading time7 min
Views97K
Привет Хабр, недавно прочёл статью «Как я жарил видеокарту» и хотел бы по этому поводу высказать своё ИМХО и предложить свой вариант, которым давно пользуюсь. Хотелось бы предостеречь от последствий, которые могут возникнуть после прочтения выше указанной статьи, а именно: перегрев, взорваных конденсаторов и полностью убитых зажареных плат. Товарищи! Не переусердствуйте! Этот способ более затратен, но риск убить плату значительно ниже.
(осторожно трафик)
image
Читать дальше
Total votes 109: ↑104 and ↓5+99
Comments74

Делаем веб-клиент GMail удобным

Reading time3 min
Views52K
Если очень постараться, веб-клиент GMail-а можно довести до состояния, когда им более-менее приятно пользоваться. Вот как он выглядит у меня сейчас:



Под катом рассказ о том, какие особенности и как я использую.
Читать дальше →
Total votes 102: ↑86 and ↓16+70
Comments110

Интеграция со службами каталогов при разработке корпоративных порталов на платформе LAMP

Reading time6 min
Views2.4K

Решаемая бизнес-задача / сфера применения


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

Подавляющее большинство крупных предприятий уже активно использует единую авторизацию на основе служб каталогов, доступ к которым осуществляется по Lightweight Directory Access Protocol (LDAP).

Совершенно естественно, что заказчики заинтересованы в интеграции разрабатываемого портала со службами каталогов, а разработчикам выгодно использовать внешнюю систему авторизации с точки зрения сокращения объёма работ в проекте. И хотя в ряд коробочных продуктов класса «Система управления информацией» встроена интеграция со службами каталогов, разработчикам, тем не менее, приходится решать различные технические и организационные вопросы.

Краткое описание проекта


Проект, который реализовывала наша компания в начале 2008 года, представляет собой функционально насыщенный корпоративный информационный портал холдинга, включающего в себя несколько территориально распределенных компаний. Подразделения холдинга большей частью объединены службой каталогов Microsoft Active Directory (AD).

Платформа для реализации проекта: Linux, Apache, PHP, MySQL, Cetera CMS

Основные причины использования авторизации на основе AD в данном проекте:
  • Обеспечение единого центра управления пользователями (собственно, AD) для системных администраторов компании.
  • Упрощение доступа к порталу сотрудников компании, для которых необходимость ввода лишнего пароля могла стать критической для начала использования портала.
  • Большое количество сотрудников компании (несколько тысяч человек), что делает практически невозможным ввод перечня сотрудников в БД портала и распределение персонала по дереву компаний и отделов и телефонному справочнику, реализованному в рамках портала.

Используемые технологии


Две основные задачи — импорт данных из AD и дальнейшая авторизация пользователей, просматривающих страницы портала.
Импорт данных из AD осуществляется через LDAP. LDAP позволяет получить доступ к информации домена — списку пользователей, групп, компьютеров домена и т.д.
Авторизация пользователя производится средствами Apache, а точнее его модуля mod_ntlm (доступен для версий Apache 1.3.х, для 2.2.х используется модуль mod_auth_sspi). Mod_ntlm авторизует пользователя на этапе обращения к странице, и, если пользователь проходит авторизацию, его данные (имена домена и пользователя) передаются в переменных сервера (для PHP это $_SERVER)

Описание полей AD


В рамках данного проекта требовалось получить следующую информацию о пользователе из AD:
  • полное имя (фамилия, имя, отчество)
  • доменное имя
  • email
  • должность
  • принадлежность к компании/отделу (относительно корпоративной структуры заказчика)

Имя пользователя в домене (его логин) хранится в поле SAMAccountName. Title, Department и Company описывают должность, отдел и компанию. Email хранится в поле Mail, полное имя пользователя содержится в поле Name.

Импорт сотрудников


Всякая запись в каталоге LDAP состоит из одного или нескольких атрибутов и обладает уникальным именем (DN — англ. Distinguished Name). Имя может выглядеть, например, следующим
образом:
«cn=Иван Петров, ou=Сотрудники, dc=example, dc=com».

Уникальное имя состоит из одного или нескольких относительных уникальных имен (RDN — англ. Relative Distinguished Name), разделённых запятой. Относительное уникальное имя имеет вид ИмяАтрибута=значение. На одном уровне каталога не может существовать двух записей с одинаковыми относительными уникальными именами. В силу такой структуры имени записи в каталоге LDAP можно легко представить в виде дерева.
Для выполнения поиска по структуре службы каталога требуется указать путь к корневому элементу, относительно которого будет осуществлен поиск. Также можно указать фильтр, состоящий из перечисления имен атрибутов записи и их значений в формате ИмяАтрибута=Значение.
Предположим, что требуется осуществить импорт сотрудников домена COMPANY.RU. Для этого путь поиска будет, например, такой:
cn=Users, dc=COMPANY, dc=RU

cn=Users указывает на т.н. контейнер под название Users.
При выполнении такого поиска без дополнительной фильтрации в результатах могут присутствовать другие элементы помимо самих пользователей. Например, данные о группах. Для получения в результатах поиска лишь данных о пользователях укажем фильтр:
ObjectCategory=Person.

В некоторых случаях пользователи в AD могут размещаться в т.н. Organizational Units. В таком случае используем путь поиска:
ou=Users-and-computers, dc=COMPANY, dc=RU.

Такой путь подразумевает, что данные об учетных записях находятся в Organizational Unit под названием Users-and-computers.
В процессе импорта может возникнуть потребность определения активности учетной записи пользователя. При импорте может быть интересен атрибут учетной записи UserAccountControl, в котором сохраняются в двоичном виде различные свойства учетной записи. Интересным может быть признак ACCOUNTDISABLE (0x0002). Если данный флаг установлен в атрибуте UserAccountControl, учетная запись считается заблокированной.
Для поиска всех активных пользователей потребуется модифицировать фильтр. Он будет таким:
(&(objectcategory=Person)(!(UserAccountControl:1.2.840.113556.1.4.804:=2)))

1.2.840.113556.1.4.804 — т.н. OID (Object IDentifier), данный OID применяется для отбора объектов, выбранный атрибут которых содержит либо все, либо любой из указанных в фильтре битов. Приведенный выше OID признает совпадение, если в атрибуте присутствует любой из указанных битов. 2 — это значение флага ACCOUNTDISABLE. Данный фильтр целиком можно расшифровать так: Атрибут objectcategory равен Person и в атрибуте UserAccountControl не присутствует бит 2 (0x0002)

Пример кода на PHP
<?
/**
* Данный код подключается к AD и получает список всех незаблокированных сотрудников
* контейнера Users из домена СOMPANY.RU
* Выводится имя сотрудника, его email, компания, отдел и должность в соответствии с данными,
* полученными из AD
*/
$ds=ldap_connect("1.2.3.4");
if ($ds) {
$r=ldap_bind($ds,'COMPANY\\admin','adminPassword');
$sr=ldap_search($ds,
"cn=Users, dc=COMPANY, dc=RU",
'(&(objectcategory=Person)(!(UserAccountControl:1.2.840.113556.1.4.804:=2)))');

echo "Number of entires returned is " . ldap_count_entries($ds, $sr) . "
";

$info = ldap_get_entries($ds, $sr);
// $info содержит результаты запроса...

for ($i=0; $i<$info["count"]; $i++) {
echo "Name: {$info[$i]['name'][0]}
\n";
echo "Email: {$info[$i]['mail'][0]}
\n";
echo "Company: {$info[$i]['company'][0]}
\n";
echo "Department: {$info[$i]['department'][0]}
\n";
echo "Title: {$info[$i]['title'][0]}
\n";
}

ldap_close($ds);

} else {
echo "Unable to connect to LDAP server";
}
?>

Дополнительная информация по работе с LDAP в PHP может быть получена в документации

Проблемы и решения


Отсутствие в службе каталогов информации о сотрудниках, достаточной для отображения на портале (полные имена, адреса Email, названия подразделений, хобби, поля корпоративной социальной сети и т.д.).


Почти всегда в службе каталогов не содержится вся информация, необходимая для работы портала. Могут отсутствовать как «банальные» данные, например, номер телефона, так и нетипичные для службы каталогов сведения типа «перечень мест предыдущей работы для нужд корпоративной социальной сети». При этом необходимость этих данных для портала сложно недооценивать.

Нашим решением проблемы является хранение учётных записей в службе каталогов, а расширенной информации — в открытой БД портала. Предполагается, что управление списком и ролями пользователей осуществляется в службе каталогов, а всё остальное — задачи портала.

Недостатком решения является необходимость связывания и синхронизации перечней пользователей в службе каталогов и в БД портала.

Важнейшие преимущества:
  • предоставление пользователям возможности самостоятельно дополнять информацию о себе в БД портала с последующей модерируемой загрузкой этих сведений в службу каталогов;
  • возможность быстро настраивать набор полей в профиле пользователя портала без влияния на работу службы каталогов.

Отсутствие в службе каталогов достоверной информации о принадлежности сотрудника к той или иной компании холдинга или отделу


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

Наше решение:
  1. Завести дерево компаний и отделов на портале средствами системы управления контентом, используя данные об организационной структуре, предоставленные заказчиком.
  2. Импортировать сотрудников из службы каталогов со сверкой названий элементов дерева, заведенного в БД портала, с содержимым карточек пользователей службы каталогов.
  3. Пользователей, для которых определить положение в дереве не удалось, импортировать во временную директорию.
  4. По итогам импорта отображать протокол с нотификацией администраторов портала и службы каталогов о недостатках импорта и некачественных записях в службе каталогов.
Rating0
Comments6

Почему важно делать эскизы, прежде чем переходить к прототипу

Reading time5 min
Views55K
Вольный перевод статьи о том, почему важно делать эскизы-зарисовки, прежде чем приступать к проектированию интерфейсов. Мне, как менеджеру проектов и, частично, проектировщику интерфейсов — статья показалась очень полезной. Крайне рекомендуется к прочтению всем участникам проектных команд.



Читать дальше →
Total votes 82: ↑80 and ↓2+78
Comments52

Манипуляция пикселями на холсте с использованием Javascript

Reading time4 min
Views20K
В данной статье будет рассмотрено управление изображением с помощью Javascript и HTML тега canvas. Статья является переводом. Оригинал на phpied.com.
Читать дальше →
Total votes 37: ↑32 and ↓5+27
Comments8

Умный дом от любителя или HomeMatic & Co

Reading time14 min
Views144K
В этом повествовании я бы хотел описать свой собственный опыт в области домашней автоматизации на уровне любителя. В своих экспериментах я столкнулся с довольно простыми в использовании системами HomeMatic и X10, применение которых и хотел бы здесь затронуть.
В новостях часто появляются сообщения, что можно управлять чайником или новогодней гирляндой с iPhone (причем обязательно с iPhone, а то новость не будет понята воспринята массами). При этом у меня каждый раз появляется негодование: ну почему люди так бурно реагируют на такие сообщения? Ведь уже давно существуют решения, которые позволяют это сделать. При этом управлять домом из любого браузера, и да… с iPhone тоже!


WebFront
Читать дальше →
Total votes 157: ↑152 and ↓5+147
Comments114

Ectognathus, робот-хексапод на микро-сервах своими руками

Reading time7 min
Views50K
Добрый день, уважаемые хабровчане. Представляю вашему вниманию статью, в которой я описываю процесс проектирования и создания шестиногого робота полностью с нуля. Вы не найдете здесь надоевших всем ардуин и готовых наборов «хексапод за 5 минут». Из-за большого объема информации, статья будет состоять из нескольких частей, описывающих разные этапы проектирования и освещающих грабли, на которые я наступал в процессе оного.
Итак, встречайте – Ectognathus.
Читать дальше →
Total votes 127: ↑126 and ↓1+125
Comments26

Switchvox Home — IP-АТС для очень малого бизнеса

Reading time4 min
Views13K


Switchvox SMB — это самое популярное коммерческое решение на Asterisk. Система унифицированных коммуникаций, которая сможет удовлетворить потребности любой компании. Веб-панели для операторов call-центра, прием факсов в виде PDF, мощное API, защита от атак на основе fail2ban и многое другое…

Но сегодня не об этом. Компания Digium поддерживает три вариации Switchvox:
  • Switchvox SOHO
  • Switchvox SMB
  • Switchvox Home

Switchvox SOHO и SMB — платные продукты, предназначенные для малого и среднего бизнеса. Имеют немного разный функционал, и для них доступны разные уровни технической поддержки.

Home Edition — бесплатная версия IP-АТС, единственное ограничение которой в том, что в системе может существовать не более восьми пользователей.

Если рассмотреть начинающую IT компанию, стартап, то часто её персонал не достигает ограничений, накладываемых системой. Бухгалтер, пару менеджеров и разработчиков, руководитель — собственно все.

Вы сможете развернуть собственный сервер телефонии всего за несколько часов, при этом Вам даже не нужно знать linux, конфигурацию asterisk, и вообще что такое ssh :) Управление системой осуществляется только через Web-интерфейс.

Обзор этого продукта Вы увидите под катом…

Читать дальше →
Total votes 24: ↑21 and ↓3+18
Comments94

Программируемый выключатель света с дистанционным управлением

Reading time3 min
Views98K
image
Продолжение ранее опубликованных статей, первая, вторая.
В этой статье речь пойдет о программируемом выключателе света с дистанционным управлением. Как и прошлых проектах для отладки и прототипирования, я использую Carduino Nano V.7
Читать дальше →
Total votes 44: ↑39 and ↓5+34
Comments61

STM32F1xx — лечимся от ардуинозависимости вместе

Reading time14 min
Views265K
Добрый день, уважаемые хабровчане!
После длительного перерыва, связанного с защитой дипломного проекта в Бауманке, я снова вернулся к написанию статей. Так как с недавнего времени я занялся 32-битными микроконтроллерами серии STM32F на ядре ARM Cortex-M3, об этом и пойдет мой рассказ. Мне статья поможет систематизировать знания об этих замечательных микроконтроллерах, а вам, я надеюсь, послужит одной из ступеней на пути к их использованию и развеет страхи и сомнения, которые всегда возникают после уютных 8-битных AVRок при упоминании страшных 32-битных монстров.
Итак, почему Cortex, чем же плохи АVR?
Читать дальше →
Total votes 159: ↑157 and ↓2+155
Comments65

Макетная плата MAT90USB162 с аппаратным USB, ЦАП, внешним АЦП и 32Mb DataFlash

Reading time3 min
Views22K
Привет, Хабр!

Хочу представить дипломный проект, который плавно перерос в мелкосерийное производство.

Другие наши проекты здесь

Собственно это Open Source платы для протипирования на базе AVR AT90USB162 с аппаратным USB.
Плата предназначена для начинающих и основной упор делается на изучение периферии UART, SPI, 1-wire.



Документация
Примеры
Примеры-zip
Читать дальше →
Total votes 74: ↑70 and ↓4+66
Comments131

Простой сайт с возможностью авторизации на node.js

Reading time3 min
Views92K
В этой статье я попробую рассказать о том, как с помощью node.js и connect сделать простой сайт с авторизацией. Т.е. такой, где часть контента доступна всем, а часть — только зарегистрированным пользователям. Поскольку express.js основан на connect, практически все, что здесь написано, относится и к нему тоже.
Допустим, что вы уже знаете, что такое node.js и как с ним работать. Также допустим, что у вас уже есть простенький сайт с основной страницей и парой дополнительных. Вот здесь — исходники такого сайта, пример для этой статьи.
Читать дальше →
Total votes 40: ↑31 and ↓9+22
Comments15

Android. Обзор боевых приложений

Reading time2 min
Views318K
Доброго времени суток!

Наряду со статьей "iPhone: MiTM атака из кармана", родилась почти аналогичная статья про Android.

Мы уже знаем, на что способен iPhone. Уступает ли ему Android?

Было рассмотрено около 25 боевых приложений. Хочу предоставить вам результат маленького исследования. Многие приложения даже не запустились, некоторые подвесили телефон намертво, но некоторые даже работали!

Весь софт тестировался на телефоне LG Optimus, с версией Android 2.3.

Итак, краткий обзор боевого софта на Android:

Читать дальше →
Total votes 255: ↑238 and ↓17+221
Comments49

Обнаружение местоположения хоста в неуправляемой сети

Reading time4 min
Views15K
Я хочу продемонстрировать решение задачи, которое большинством «сетевиков» считается невозможной в принципе. Речь идет о вычислении физического местоположения хоста в неуправляемой сети. Под неуправляемой сетью подразумевается сеть на неуправляемых коммутаторах, а под определением местоположения — ответ:

«такой-то хост подключен к свичу, который находится здесь»

Читать дальше →
Total votes 47: ↑44 and ↓3+41
Comments29

Plugin Detector — каталог и рейтинг плагинов jQuery

Reading time6 min
Views5.6K
Последние четыре года я работал верстальщиком в разных питерских веб-студиях.

От полуподвальных контор из 3-5 человек до больших фирм 25-40 человек, работающих на рынке дорогих сайтов для крупных заказчиков. Но независимо от размера компании задачи были одни и те же.
  • нужно продать дизайн
  • сделать сайт, который не стыдно положить в портфолио
  • сделать оригинально, как еще не делали конкуренты

Таким образом, задачи верстальщикам и дизайнерам ставились одинаковые: «давайте что-то креативное, свежее, интересное».

Я очень хорошо понимаю верстальщиков, дизайнеров и владельцев веб-студий, поэтому чтобы облегчить им поиск плагинов под готовый функционал и в то-же время показать что-то свежее, чего еще многие [возможно] не видели, решил уволиться отовсюду, и запустить проект Plugin Detector



В этой статье будет затронуто:
описание функционала, история создания, маркетинг в бизнесе веб-студий и работа с клиентами
Total votes 234: ↑225 and ↓9+216
Comments95

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity