Какой человек не любит халявы? Практически все ее просто обожают, и я не исключение. Вдохновленный статьей «Взломать Wi-Fi за 10 часов» я достал из недр харда BT5, скачанный ранее, и записал его на болванку. Результат не заставил себя ждать, и первый пароль был получен на следующее утро. И понеслась…
User
Взломать Wi-Fi за 10 часов
12 min
1.5MЕще не так давно казалось, что беспроводная сеть, защищенная с помощью технологии WPA2, вполне безопасна. Подобрать простой ключ для подключения действительно возможно. Но если установить по-настоящему длинный ключ, то сбрутить его не помогут ни радужные таблицы, ни даже ускорения за счет GPU. Но, как оказалось, подключиться к беспроводной сети можно и без этого — воспользовавшись недавно найденной уязвимостью в протоколе WPS.


+284
KPI, или пособие по командному самоубийству
11 min
449KДля написания этой заметки  было затрачено:
Много денег и времени. Пожалуй, самым затратным (по нервам, времени и деньгам) был эксперимент над собственной командой, о котором мне безумно неловко вспоминать. Но об этом — ниже.
Рано или поздно, наверное, у каждого директора возникает желание платить по справедливости. За выполенную работу. И очень многие сейчас пытаются внедрять KPI (ключевые показатели эффективности). Работает так: вы, как владелец бизнеса, назначаете конкретные цели для сотрудников. Они достигают или не достигают поставленных целей в процессе работы. Тем, кто достиг — выдается плюшка (денежная премия).
Ну, логично же, что:
А вот с творческими единицами (дизайнерами, программистами) — все значительно сложнее.
Мы недавно провели опрос руководителей ведущих диджитал-агентств и веб-студий страны на тему «а как вы используете KPI по отношению к труду творческих единиц», в результате получили вот такую картинку:

Некоторые компании (15%) применяют KPI для оценки эффективности труда программистов и дизайнеров.
- 68338 километров на поездки.
- 72 человеко-часа на почтовую переписку.
- 423 человеко-часа на эксперименты с коллективом в 30 человек.
- 88 часов на подготовку докладов и выступления на конференциях.
- 17 чашек кофе на беседу с мудрыми людьми на афтепати.
- Порядка 25 часов на набор этого текста и правку багов в нем :).
- До смерти замученный копирайтер, который был вынужден разбирать мои черновики, аудиозаписи и вообще ему спасибо.
Много денег и времени. Пожалуй, самым затратным (по нервам, времени и деньгам) был эксперимент над собственной командой, о котором мне безумно неловко вспоминать. Но об этом — ниже.
Рано или поздно, наверное, у каждого директора возникает желание платить по справедливости. За выполенную работу. И очень многие сейчас пытаются внедрять KPI (ключевые показатели эффективности). Работает так: вы, как владелец бизнеса, назначаете конкретные цели для сотрудников. Они достигают или не достигают поставленных целей в процессе работы. Тем, кто достиг — выдается плюшка (денежная премия).
Смысл такого подхода: платить по справедливости. На сколько наработал — столько и получил. Это честно, это логично, это — прекрасно!
Ну, логично же, что:
- Продажникам нужно назначать процент с оборота. Волки должны быть голодными. (Да, есть альтернативное мнение, что применить такой подход — значит «обложить себя дополнительным налогом». Но как по мне — тут все справедливо :-)).
- Офисному планктону — ставить оклад. Стабильность для них — ооочень важное условие существования.
А вот с творческими единицами (дизайнерами, программистами) — все значительно сложнее.
Мы недавно провели опрос руководителей ведущих диджитал-агентств и веб-студий страны на тему «а как вы используете KPI по отношению к труду творческих единиц», в результате получили вот такую картинку:

Некоторые компании (15%) применяют KPI для оценки эффективности труда программистов и дизайнеров.
+98
Фриланс в РФ собираются узаконить
2 min
58KГосдума Российской Федерации собирается 16 октября рассмотреть законопроект о дистанционной работе, в котором будут внесены необходимые изменения в трудовое законодательство для случаев «удалённой» работы. Пресс-служба Министерства труда и социальной защиты, силами которого разработан законопроект, пояснила, что под понятия фрилансера будут попадать аудиторы, бухгалтеры, юристы, переводчики, дизайнеры, программисты, редакторы и журналисты.
Что собираются принять? Прежде всего работодатель будет обязан заключать с фрилансером официальный трудовой договор; при этом на исполнителя будут распространяться такие же права и обязанности, как и на обычных работников. Также в Трудовой Кодекс РФ будет введено понятие «удаленного рабочего места», описаны некоторые особенности аттестации таких рабочих мест, режим и охрана труда. Указывается, что фрилансер, заключая трудовой договор, сможет предоставлять все документы в электронном виде, избегая услуг обычной почты.
Что собираются принять? Прежде всего работодатель будет обязан заключать с фрилансером официальный трудовой договор; при этом на исполнителя будут распространяться такие же права и обязанности, как и на обычных работников. Также в Трудовой Кодекс РФ будет введено понятие «удаленного рабочего места», описаны некоторые особенности аттестации таких рабочих мест, режим и охрана труда. Указывается, что фрилансер, заключая трудовой договор, сможет предоставлять все документы в электронном виде, избегая услуг обычной почты.
+43
NoSQL базы данных: понимаем суть
9 min
595KВ последнее время термин “NoSQL” стал очень модным и популярным, активно развиваются и продвигаются всевозможные программные решения под этой вывеской. Синонимом NoSQL стали огромные объемы данных, линейная масштабируемость, кластеры, отказоустойчивость, нереляционность. Однако, мало у кого есть четкое понимание, что же такое NoSQL хранилища, как появился этот термин и какими общими характеристиками они обладают. Попробуем устранить этот пробел.


+129
Почему лучше верстать в соответствии с БЭМ — практические примеры
5 min
61KПро БЭМ (методология написания CSS от Яндекс — Блок__Элемент_Модификатор ← наиболее правильная запись расшифровки) нынче можно услышать на каждом шагу. Дело оказалось благим и покатилось по миру. Яндекс даже полез в W3C (связано это или нет — не знаю, но надеюсь, что да — [на самом деле нет]).
Думаю многие, кто ещё не пробовал, но прочитал описание БЭМ, задаются справедливым вопросом: «какая практическая польза от всего этого действа?» На самом деле, не смотря на то самое развёрнутое описание, конкретно уловить основную «фишку» довольно сложно. Описано конечно много плюсов и общее ощущение от методологии положительное, и кажется, что вроде как и не плохо бы попробовать, но нехватает чего-то конкретного. Прямо вот примера на живом что ли. Вот у меня сайт, вот вёрстка не по БЭМ, почему я должен всё менять? Особенно, если учесть тот факт, что БЭМ в принципе отметает все селекторы кроме классов, неужто за это время столько умных мужей в W3C не осознали, что всё настолько неправильно?
За сим возьму на себя смелость привести несколько примеров с которыми вы (конечно если вы каким-то образом связаны с вёрсткой) сталкиваетесь, не побоюсь этого слова, ежедневно. И что изменится в таких ситуациях если бы вёрстка была изначально выполнена в БЭМ.
Думаю многие, кто ещё не пробовал, но прочитал описание БЭМ, задаются справедливым вопросом: «какая практическая польза от всего этого действа?» На самом деле, не смотря на то самое развёрнутое описание, конкретно уловить основную «фишку» довольно сложно. Описано конечно много плюсов и общее ощущение от методологии положительное, и кажется, что вроде как и не плохо бы попробовать, но нехватает чего-то конкретного. Прямо вот примера на живом что ли. Вот у меня сайт, вот вёрстка не по БЭМ, почему я должен всё менять? Особенно, если учесть тот факт, что БЭМ в принципе отметает все селекторы кроме классов, неужто за это время столько умных мужей в W3C не осознали, что всё настолько неправильно?
За сим возьму на себя смелость привести несколько примеров с которыми вы (конечно если вы каким-то образом связаны с вёрсткой) сталкиваетесь, не побоюсь этого слова, ежедневно. И что изменится в таких ситуациях если бы вёрстка была изначально выполнена в БЭМ.
+41
Красной таблетки не существует
5 min
128KО чем это
Я долгое время был адептом идей о
— Что можно с помощью ООП решить все проблемы масштабирования программ;
— Что с помощью одной методологии можно выстроить разработку проектов;
— Что с помощью нескольких гениальных книг можно научиться проектировать интерфейсы.
На самом деле, после пары десятков проектов я пришел к выводу, что все это — не более чем заблуждения, и чудеса происходят только в книгах авторов, которые делают на своих бестселлерах миллионы. Или в головах консультантов, которые делают деньги, продавая вам фуфло в виде Agile, KPI и прочих умных слов.
Я не сделаю, возможно, в этом посте никаких открытий. Но сэкономлю вам пару лет, если вы решитесь поверить моему опыту.
+297
Легкая прогулка от функтора через монаду к стрелке
8 min
28K
Давайте совершим прогулку по цепочке Pointed, Functor, Applicative Functor, Monad, Category, Arrow, в процессе которой я попытаюсь показать что все это придумано не для того что бы взорвать мозг, а для решения вполне реальных проблем, притом существующих не только в haskell. Большая часть кода написана на C#, но думаю и без его знания можно будет понять что к чему.
+31
RCC 2012 Глазами простого смертного
3 min
12KRCC – мероприятие, безусловно, очень высокого класса. И суть даже не в самом ивенте – чемпионатов по программированию сейчас хватает, а спортивное программирование как дисциплина развивается достаточно активно. Особенность RCC в том, что это единственный «кубок», который сочетает в себе целый набор условий, которые ставят его если не на мировой уровень, то близко к нему. Если с официальным отчётом вы уже ознакомились, то «гостевой» можете почитать у меня.

+19
Решение японских кроссвордов на Haskell
12 min
26KЯпонский кроссворд — головоломка, в которой по набору чисел нужно воссоздать исходное черно-белое изображение. Каждой строке и каждому столбцу пикселей соответствует свой набор, каждое число в котором, в свою очередь, соответствует длине блока подряд идущих черных пикселей. Между такими блоками должен быть хотя бы один белый пиксель, но точное их число неизвестно. Журналы, целиком посвященные этим головоломкам, есть в большинстве газетных киосков, так что, думаю, почти все с ними хоть раз да встречались, и потому более подробное описание здесь можно не приводить.
В какой-то момент мне захотелось «научить компьютер» решать японские кроссворды так, как решаю их я сам. Никакой высокой цели, just for fun. Потом уже были добавлены способы, которые сам я применять не могу в силу ограниченных возможностей человеческого мозга, но, справедливости ради, со всеми кроссвордами из журналов программа справляется и без них.
Итак, задача простая: решить кроссворд, а если решений много, то найти их все. Решение написано на Haskell'е, и, хотя код достаточно существенно дополняет словесное описание, даже без знания языка общую суть понять можно. Если хочется пощупать результат вживую, на странице пректа можно скачать исходники (бинарных сборок не выкладывал). Решения экспортируются в Binary PBM, из него же можно извлекать условия.

Несмотря на то, что я пытался писать максимально понятно, это не в полной мере мне удалось. Под катом очень много букв и кода и почти нет картинок.
В какой-то момент мне захотелось «научить компьютер» решать японские кроссворды так, как решаю их я сам. Никакой высокой цели, just for fun. Потом уже были добавлены способы, которые сам я применять не могу в силу ограниченных возможностей человеческого мозга, но, справедливости ради, со всеми кроссвордами из журналов программа справляется и без них.
Итак, задача простая: решить кроссворд, а если решений много, то найти их все. Решение написано на Haskell'е, и, хотя код достаточно существенно дополняет словесное описание, даже без знания языка общую суть понять можно. Если хочется пощупать результат вживую, на странице пректа можно скачать исходники (бинарных сборок не выкладывал). Решения экспортируются в Binary PBM, из него же можно извлекать условия.

Несмотря на то, что я пытался писать максимально понятно, это не в полной мере мне удалось. Под катом очень много букв и кода и почти нет картинок.
+50
Переезд с PostgreSQL 9.0 на 9.2 под нагрузкой
6 min
9.9KВсем доброго времени суток!
Как известно, недавно вышел PostgreSQL 9.2 с массой интересных и полезных вещей. Недолго думая мы решили обновить наш кластер потоковой репликации с 9.0 на 9.2. Все бы ничего, если бы не несколько обстоятельств:
Чтож, так даже интересней… Как мы это делали и что из этого вышло читайте дальше.
Как известно, недавно вышел PostgreSQL 9.2 с массой интересных и полезных вещей. Недолго думая мы решили обновить наш кластер потоковой репликации с 9.0 на 9.2. Все бы ничего, если бы не несколько обстоятельств:
- это продакшен с большой суточной посещаемостью.
- даунтайм исключен.
Чтож, так даже интересней… Как мы это делали и что из этого вышло читайте дальше.
+51
Фриланс. Видеть цель и преодолевать препятствия
6 min
17KЭта статья – о стандартных управленческих методах, которые помогают повысить эффективность работы и быстро занять высокую позицию даже в такой, казалось бы, не ассоциирующейся с понятием «управление» области, как фриланс.
Речь пойдет о вполне прозаических вещах: стратегическом и календарном планировании, учете и отчетности.
Все, что написано в статье, я проверил на себе в течение года и убедился, что метод работает.
Речь пойдет о вполне прозаических вещах: стратегическом и календарном планировании, учете и отчетности.
Все, что написано в статье, я проверил на себе в течение года и убедился, что метод работает.
+21
Таблица уровней для системного администратора
1 min
24KНесколько лет назад после прочтения матрицы компетентности программиста я поискал аналогичную матрицу для системных администраторов. Ближашее что я тогда нашел это Sage Level Job Descriptions, но меня не оставляло желание составить для системных администраторов аналогичную таблицу.
Я несколько раз начинал это делать, потом бросал и снова начинал, и только теперь наконец-то сделал:

Я несколько раз начинал это делать, потом бросал и снова начинал, и только теперь наконец-то сделал:

+27
Как стать фрилансером
8 min
76KФормирование виртуальной личности
Сетевая жизнь ничем не отличается от реальной. Врать или не врать это ваше личное дело. Но несколько простых правил негативно влияющих на ваш заработок стоит запомнить:
- вам нет 18. Стереотип безответственной школоты ничем не уничтожить
- вконтакте вас зовут Вася, на бирже Петя, а вебмани будет выдавать, что вы Маша. Мало кто задумывается в самом начале пути о своём виртуальном профиле, а зря, потом уже ничего не изменить. Подумайте не только о достоверности вводимых данных, но и о их «чистоте». Если юзер под вашим ником будет на форуме phpclub-а просить научить его программировать, то будьте готовы к внезапно потерянным клиентам.
- дайте будущему заказчику максимум информации о себе: телефон, скайп, аська, номера кошельков и счетов.
- уделите внимание социальным сетям. Ни что так не компрометирует исполнителя, как страничка вконтакте содержащая мат, падонские выражения и т д
- поставьте себя на место заказчика и проверьте на чистоту и логичность всю эту информацию через поисковые системы
- старайтесь писать без ошибок и опечаток. Про матершину в общении с заказчиком думаю даже говорить не стоит.
Привыкайте жить в новую эпоху…
+48
Как подружить Truecrypt loader и Grub 2?
5 min
23K
Сегодня я расскажу, как подружить загрузчик от программы шифрования Truecrypt и никсовский загрузчик Grub 2. Такая необходимость может возникнуть (и неотвратимо возникает) при попытке установить рядом на одном жёстком диске ОС Windows, зашифрованную бесплатной программой Truecrypt, и unix-образную операционную систему, например Ubuntu.
Основная проблема заключается в том, что Grub не умеет работать с ключами truecrypt и не может расшифровать виндошный раздел, а truecrypt loader не [всегда] умеет загружать другие операционные системы. Существует два основных подхода к решению задачи.
+31
Немного Rails трюков
3 min
11K
Хочу поделиться в вами несколькими трюками, которые помогут сделать работу с Ruby on Rails лучше, быстрее, а также позволят вам много зарабатывать и более лучше одеваться.
+26
Как я сам научился программировать за 8 недель
3 min
568KДля многих, кто никогда не программировал, обучение программированию кажется невероятно сложной задачей. Как бы то ни было, спасибо тому огромному количеству ресурсов, которые недавно стали доступны в Интернет и являются бесплатными — самообучение программированию никогда еще не было таким простым.
Я начал изучать программирование в начале этого года, и могу сказать по своему опыту, что изучение достаточного количества материала, чтобы создать свой собственный прототип не такая уж и сложная задача, как вам кажется. В самом деле, если вы хотите иметь рабочий прототип в течение двух месяцев, не прибегая к использованию отгулов, это абсолютно выполнимая задача.
Ниже я описал простой путь от ничего не зная о разработке программного обеспечения до обладания рабочим прототипом за восемь недель, который примерно повторяет шаги, которые я выполнил.
Я начал изучать программирование в начале этого года, и могу сказать по своему опыту, что изучение достаточного количества материала, чтобы создать свой собственный прототип не такая уж и сложная задача, как вам кажется. В самом деле, если вы хотите иметь рабочий прототип в течение двух месяцев, не прибегая к использованию отгулов, это абсолютно выполнимая задача.
Ниже я описал простой путь от ничего не зная о разработке программного обеспечения до обладания рабочим прототипом за восемь недель, который примерно повторяет шаги, которые я выполнил.
+47
Шпаргалка начинающего Debian/Ubuntu администратора по управлению пакетами
3 min
294KДолгое время меня глодало незнание того, как сделать некоторые элементарные вещи в дебиановских менеджерах пакетов, но, как часто бывает, спросить рядом было не у кого, а до написания куда-либо руки не доходили. И вот наконец вопросы вызрели и я написал свой вопрос в дебиановскую рассылку. Естественно оказалось что пропустил что-то очевидное, но и узнал много неочевидных полезностей, посему решил набросать шпаргалку, авось кому пригодится.
+77
Миллион одновременных соединений на Node.js
9 min
106K
TL;DR:
- Node.js v0.8 позволяет обрабатывать 1 млн одновременных HTTP Comet соединений на Intel Core i7 Quad/16 Gb RAM практически без дополнительных настроек.
- На 1 соединение тратится чуть больше 10 Kb памяти (4.1 Kb Javascript Heap + 2.2 Kb Node.js Native + 3.8 Kb Kernel)..
- V8 Garbage Collector не рассчитан на управление > ~500Mb памяти. При превышении нужно переходить на альтернативный режим сборки мусора, иначе «отзывчивость» сервера сильно уменьшается.
- Подобный опыт можно (и нужно!) без особых затрат повторить самому (см. под катом).
+181
Я, наверное, знаю ООП. Опыт объектно-ориентированного программирования и дизайна. Ответ «не знающим ООП.»
8 min
35KПосле появления статей типа "Я не знаю ООП" — возникает желание внести ясность, «сорвать покровы» и «докопаться до истины».
Обычно выделяют (читай: на собеседовании требуют назвать) четыре «принципа объектно-ориентированного программирования»: абстракцию, инкапсуляцию, наследование и полиморфизм.
На мой взгляд (не говоря о том, что абстракция и полиморфизм могут быть запросто отнесены к подразделам наследования), принцип тут один, в общем, тот же самый, что при проектировании баз данных: представление всего в виде объекта — некоторой штуковины со свойствами. Набор обычно бывает фиксированным, и тогда говорят о классе объектов, а даже если понятия класса и нет, то наличие свойств с определёнными названиями подразумевается логикой программы, т.е. нечто типа класса в виде некоего минимального набора свойств всё равно присутствует. В общем, воззрения восходят к давнему С-шному/паскалевскому типу данных struct/record. Потом к этому добавили немного «функциональности» (в смысле функционального программирования): значением свойства может быть функция, причём такая, которая имеет доступ к самой структуре/записи, значением одного из свойств которой она является. Сей феномен, в лучших традициях немецкого латиноязычного нейминга (когда опция называется «вариантом», а степень числа — «потенцией»), назвали «методом». Желание повторно использовать код, в сочетании с представлением каждого предмета как некоего подобия паскалевской «записи», привело к появлению концепции «наследования».
Принципы объектно-ориентированности
Обычно выделяют (читай: на собеседовании требуют назвать) четыре «принципа объектно-ориентированного программирования»: абстракцию, инкапсуляцию, наследование и полиморфизм.
На мой взгляд (не говоря о том, что абстракция и полиморфизм могут быть запросто отнесены к подразделам наследования), принцип тут один, в общем, тот же самый, что при проектировании баз данных: представление всего в виде объекта — некоторой штуковины со свойствами. Набор обычно бывает фиксированным, и тогда говорят о классе объектов, а даже если понятия класса и нет, то наличие свойств с определёнными названиями подразумевается логикой программы, т.е. нечто типа класса в виде некоего минимального набора свойств всё равно присутствует. В общем, воззрения восходят к давнему С-шному/паскалевскому типу данных struct/record. Потом к этому добавили немного «функциональности» (в смысле функционального программирования): значением свойства может быть функция, причём такая, которая имеет доступ к самой структуре/записи, значением одного из свойств которой она является. Сей феномен, в лучших традициях немецкого латиноязычного нейминга (когда опция называется «вариантом», а степень числа — «потенцией»), назвали «методом». Желание повторно использовать код, в сочетании с представлением каждого предмета как некоего подобия паскалевской «записи», привело к появлению концепции «наследования».
+11
Information
- Rating
- Does not participate
- Registered
- Activity