Как стать автором
Обновить
5
0
Максим Дешкевич @7workers

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

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

Превращаем Gmail в социальный центр коммуникации (Buzz+Twitter+Facebook)

Время на прочтение1 мин
Количество просмотров1K
Что же, у Google появляется все больше социальных сервисов, которыми некоторые из нас пользуются каждый день. Не всегда удобно пользоваться всеми ими + сторонними сервисами по отдельности, поэтому предлагается способ интеграции всех названных в заголовке сервисов в Gmail.

image

Читать дальше →
Всего голосов 84: ↑49 и ↓35+14
Комментарии59

Исследование успешности IT проектов

Время на прочтение2 мин
Количество просмотров879
Здравствуйте, уважаемая аудитория Хабрахабра.

Уже в течение трех месяцев мы проводим исследование успешности программных (IT) проектов. Этот проект был анонсирован во многих известных блогах Рунета, в частности, в блоге Александра Орлова, который является идейным вдохновителем и покровителем проекта. Проект проводится при поддержке Гильдии менеджеров программных проектов.

Почему мы затеяли такой проект?
Читать дальше →
Всего голосов 13: ↑7 и ↓6+1
Комментарии4

Поиск подходящей распределённой кластерной файловой системы

Время на прочтение2 мин
Количество просмотров5.1K
Уважаемое Хабрасообщество!

Хочу просить вашего совета в выборе распределённой кластерной файловой системы, поскольку опыта работы с ними у меня нету, да и сами они достаточно сильно различаются и имеют кучу особенностей. К тому же ещё и ощущается относительный информационный голод в данном направлении — какая либо конкретика просто отсутствует.
Под катом немного информации о том, что я нашел, а так же приглашение к обсуждению темы.
Всего голосов 8: ↑8 и ↓0+8
Комментарии48

Тестирование WEB приложения на браузерах IE под Linux

Время на прочтение2 мин
Количество просмотров1.3K
Чтобы протестировать WEB приложение под Linux я использую Wine, который успешно запускает IE6 и Safari (без SSL). Google Chrome толком запустить не удалось. Про IE7 и IE8 с ies4linux я промолчу.

После непродолжительных поисков в Google я нашёл образы виртуальных машин под Virtual PC с триальной виндой. Вроде то, что надо, но увы Virtual PC под Linux не существует. К счастью последние версии (2.x) VirtualBox умеют работать с образами VHD.
Читать дальше →
Всего голосов 8: ↑5 и ↓3+2
Комментарии3

Найм персонала: О важности примитивных вопросов

Время на прочтение4 мин
Количество просмотров7.3K
Вам приходилось бывать на долгих собеседованиях? На многоуровневых собеседованиях? А может вы такие проводите сами? Многие компании ведут подобную практику, и большие и маленькие, но подобная практика имеет ряд очевидных минусов. Таких, как впустую потраченое время на интервьюирование человека по полной программе, который не подходит просто по техническим навыкам. В данной статье я хочу описать подход к интервью технических навыков (про остальное не забываем, но в статье рассматривать не будем), который, возможно, сбережет вам кучу времени. Сутью подхода является задавание вопросов, которые грамотный специалист расценит как: «Ты что дурак? Меня о таком спрашивать!»
Читать дальше →
Всего голосов 74: ↑49 и ↓25+24
Комментарии129

Собеседование глазами собеседуемого

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

Набросаю несколько мыслей по тому, каким я вижу правильное собеседование на вакансию software developer.


На собеседовании работодатель должен предложить кандидату чашечку кофе/чая. Это обязательно! И с этого нужно начинать. Кофе располагает к беседе. Кандидат чувствует себя комфортней, мозг начинает работать лучше. За одной чашкой можно предложить другую, третью, в зависимости, как пойдет беседа. Удивительно, но в силу недоразвитости культуры проведения собеседования, работодатель игнорирует это элементарное действие… Я уже молчу про то, что в идеале бы угостить бокалом вина. =). И далее, соответственно, как пойдет ). Таким образом, из скучной рутины мы превращаем процесс в увлекательное действие. Это первый сценарий.

  • Не нужно кандидату взрывать мозг хитроумными задачками. На собеседовании его мозг уязвим и откровенно высосанные из пальца задачи только навредят.
  • Идиотские вопросы, типа что такое стек, сколько бит в байте, маразматические – можете ли написать демона под линукс – оставьте себе. Это может обидеть кандидата.
  • Если это C++ вакансия – всю сиплюсплюсную лажу оставьте при себе. Вы испортите впечатление о конторе, спросив, можно ли вызвать чисто виртуальную функцию и сказав, что у нас такое часто бывает, выскакивают разные предупреждающие ассерты.
  • Все вопросы по COM – держите при себе. Вы устарели. Кандидату неприятно будет это осознавать.
  • Хардкорные вроде того, что как узнать, является ли число степенью двойки за O(1) это конечно клево, но кто способен сходу, не зная, родить решение? Зачем это спрашивать?

Ок, что же тогда спрашивать? Элементарно. Никаких заготовок, тестовых заданий, задач на бумаге за отведенное время. Спрашивать нужно о том, что сделал кандидат на предыдущих работах. Конкретно. Никаких абстрактных задачек на поиск пути (хотя можно =), а просто, приближенно к реальности, что и как и почему им было сделано.

Создать контекст и быть внутри этого контекста. Это сложно? Нет. Так почему же лишь единицы это понимают? (единица! =).

И только уже исходя из предпосылок – сделанной кандидатом работы – можно спрашивать связные по теме вещи.

Как-то так. Навеяно ).

Ваша задача, как работодателя, найти, понять, что интересно кандидату. Интересен ли он вам? И смотреть, пересекаются ли ваши интересы, в каких областях и насколько.
Всего голосов 124: ↑68 и ↓56+12
Комментарии155

Темное программирование

Время на прочтение7 мин
Количество просмотров139K
imageПредлагаю перейти на сторону зла, на темную сторону программирования. Ситхи сильнее джедаев. И печенек хватит на всех. Предупреждаю, прежде чем начнете читать далее. Характер при переходе на темную сторону портится.
Прошу под кат
Читать дальше →
Всего голосов 257: ↑203 и ↓54+149
Комментарии212

Regexponline – интерактивный анализатор и редактор регулярных выражений

Время на прочтение4 мин
Количество просмотров52K
Есть одна бородатая шутка: «если у вас есть проблема, и вы собираетесь решать ее с использованием регулярных выражений, то у вас есть две проблемы». Действительно, регулярные выражения – очень мощный и гибкий инструмент, применяемый для решения весьма широкого круга задач. Но, как водится, для поддержания баланса, такой серьёзный инструмент имеет весьма недружелюбный вид.

(<([a-z]+[^>]*)>)(.*)(</\2>)

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

image

Когда-то и мне пришлось по долгу службы подружиться с регулярными выражениями. Прочитав Фридла и несколько статей на Хабре, я, конечно, начал понимать этот синтетический язык. Тем не менее, каждый раз, когда приходилось написать очередную регулярку, я быстро закапывался в нагромождении скобок, слешей, точек, плюсов, знаков вопроса, и других хорошо вам знакомых конструкциях. Разобраться в этой каше было очень сложно, особенно если возвращаешься к задаче месячной давности. Я мечтал об инструменте, который помог бы мне разобраться в собственном творении. Приблизительно подходящих по смыслу сервисов нагуглилось с десяток, но все они приносили мало пользы. Как раз тогда я и начал разрабатывать этот проект.

Итак, regexponline – инструмент, способный наглядно изобразить структуру регулярного выражения, разобрав его по элементарным компонентам; продемонстрировать совпадающие и не совпадающие его части; помочь в написании и отладке выражения, которое почему-то не совпадает с нужной строчкой.
Читать дальше →
Всего голосов 84: ↑81 и ↓3+78
Комментарии74

Linux :: два, три, пять… указателей мыши

Время на прочтение3 мин
Количество просмотров66K
Не знаю зачем мне это пригодится, но очень вдруг захотелось иметь два указателя мыши в Linux, ведь две «мыши» у меня есть — собственно беспроводная мышь и тач-пад. Идея пришла в тот момент, когда я подключил вторую мышь, т.е. третье устройство управления указателем.
Я тоже подключу десять мышей и запутаюсь в указателях
Всего голосов 140: ↑134 и ↓6+128
Комментарии93

Полезные мелочи в работе веб-разработчика или «Как я мог без этого жить»

Время на прочтение4 мин
Количество просмотров8.4K
Злой троянец увел у меня аккаунт на хабр, после чего под моим аккаунтом начали публиковаться какие-то тупые мультики. К сожалению узнал я об этом только когда НЛО перевело меня в read-only, а рейтинг ушел в отрицательное значение. Не беда: повод наконец написать пост, который давно собирался.

Веб-разработчику консоль нужна, но не на столько что бы бросив все дела начинать читать толстенные книжки по линуксу. Именно поэтому я учился консольным хитростям от случая к случаю и, судя по моим сотрудникам, многие поступают точно так же. Раскрою пару удобных секретов, без которых я уже не могу жить.
Читать дальше →
Всего голосов 129: ↑116 и ↓13+103
Комментарии66

Немного о хэшах и безопасном хранении паролей

Время на прочтение4 мин
Количество просмотров70K
Upd. Если вы знаете, что такое BCrypt, можете дальше не читать. Если вы используете PHP 5.5+ то можете прочитать эту статью. Ниже же я изобрел свой велосипед, рабочий, но с двумя рулями, задний запасной. Молод был, горяч.

Привет, хабр! Сегодня, в процессе разработки системы аутентификации для своего проекта передо мной встал выбор — в каком виде хранить пароли пользователей в базе данных? В голову приходит множество вариантов. Самые очевидные:

  • Хранить пароли в БД в открытом виде.
  • Использовать обычные хэши crc32, md5, sha1
  • Использовать функцию crypt()
  • Использовать статическую «соль», конструкции вида md5(md5($pass))
  • Использовать уникальную «соль» для каждого пользователя.

Читать дальше →
Всего голосов 71: ↑57 и ↓14+43
Комментарии100

Повышаем производительность программирования (ментальная карта)

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

Хочу поделиться с вами своими долголетними наблюдениями о том, как улучшить производительность труда программиста. Вот ментальная карта в виде картинки, вот — в виде mm файла, а ниже — она же в виде вложенных списков.
Читать дальше →
Всего голосов 66: ↑51 и ↓15+36
Комментарии58

Создание простой 2D игры на Android

Время на прочтение10 мин
Количество просмотров374K
Доброго дня всем!

Когда я писал эту «игру» у меня возникала масса вопросов по поводу зацикливания спрайтов так что бы они появлялись через определенное время, так же были проблемы с обнаружением столкновений двух спрайтов и более, все эти вопросы я сегодня хочу осветить в этом посте так как в интернете я не нашел нормального ответа на мои вопросы и пришлось делать самому. Пост ни на что не претендует, я новичок в разработке игр под android и пишу я для новичков в данной отрасли. Кому стало интересно прошу под кат.
Читать дальше →
Всего голосов 87: ↑67 и ↓20+47
Комментарии30

Работа с памятью (и всё же она есть)

Время на прочтение13 мин
Количество просмотров106K
Существует распространенное мнение, что «рядовому» PHP разработчику практически не нужно заботиться об управлении памятью, однако «заботиться» и «знать» всё же немного разные понятия. Попытаюсь осветить некоторые аспекты управлению памятью при работе с переменными и массивами, а также интересные «подводные камни» внутренней оптимизации PHP. Как вы сможете убедиться, оптимизация это хорошо, но если не знать как именно она «оптимизирует», то можно столкнуться с «неочевидными граблями», которые могут вас заставить изрядно понервничать.

Читать дальше →
Всего голосов 235: ↑224 и ↓11+213
Комментарии90

Демоны на PHP

Время на прочтение4 мин
Количество просмотров75K
Памятка начинающему экзорцисту.

Прежде, чем начать: я знаю, что такое phpDaemon и System_Daemon. Я читал статьи по этой тематике, и на хабре тоже.

Итак, предположим, что вы уже определились, что вам нужен именно демон. Что он должен уметь?
  • Запускаться из консоли и отвязываться от неё
  • Всю информацию писать в логи, ничего не выводить в консоль
  • Уметь плодить дочерние процессы и контролировать их
  • Выполнять поставленную задачу
  • Корректно завершать работу

Отвязываемся от консоли


// Создаем дочерний процесс
// весь код после pcntl_fork() будет выполняться двумя процессами: родительским и дочерним
$child_pid = pcntl_fork();
if ($child_pid) {
    // Выходим из родительского, привязанного к консоли, процесса
    exit();
}
// Делаем основным процессом дочерний.
posix_setsid();

// Дальнейший код выполнится только дочерним процессом, который уже отвязан от консоли

Читать дальше →
Всего голосов 188: ↑167 и ↓21+146
Комментарии125

Мониторинг прогнозированием с помощью rrdtool, как это делается

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


Введение


Недавно я описывал созданную мной систему мониторинга транзитного VoIP методом прогнозирования. Самым сильным плюсом данного метода в задаче мониторинга транзитного VoIP является то, что нет необходимости выставлять критерии того, что считать нормальной работой величин, находящихся под мониторингом, а что – потенциальным сбоем.
Ядром системы является rrdtool, в котором реализованы прогнозирование методом Хольта-Винтерса и механизм выявления аберраций.
Мониторинг методом прогнозирования можно использовать не только для VoIP, но и для любого другого типа трафика, а так же, для величин, которые изменяются во времени с некой прогнозируемой цикличностью. В отличие от стандартных методов, при мониторинге с помощью прогнозирования не осуществляет мониторинг состояния величин, находящихся под мониторингом, зато осуществляется мониторинг динамики изменения их состояний во времени.
Если вам интересна математика прогнозирования рекомендую прочесть. Чтобы быть хоть немного в курсе темы, прочтите главу “Метод прогнозирования реализованный в rrdtool” моего предыдущего поста.
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии13

AzaThread — многопоточность для PHP с блэкджеком

Время на прочтение6 мин
Количество просмотров18K
В сети гуляет довольно много решений для эмуляции многопоточности в php. Чаще всего они основываются на форках, но есть и вариации на тему с использованием curl, proc_open и т.п.

Все встреченные варианты по тем или иным причинам меня не устроили и пришлось написать свое решение.
Набор требований у меня был следующий:
  • Использование форков;
  • Синхронный режим с сохранением интерфейса при отсутствии необходимых расширений;
  • Многократное использование дочерних процессов;
  • Полноценный обмен данными между процессами. Т.е. запуск с аргументами и получение результата по завершении;
  • Возможность обмена событиями между дочерним процессом-«потоком» и основным процессом во время работы;
  • Работа с пулом потоков с сохранением многократного использования, передачи аргументов и получения результатов;
  • Обработка ошибок выполнения;
  • Таймауты на выполнение работы, ожидание работы потоком, инициализацию;
  • Максимум производительности;

В результате получилась библиотека AzaThread (старое название — CThread).
Подробности
Всего голосов 156: ↑146 и ↓10+136
Комментарии66

PHP Namespace

Время на прочтение6 мин
Количество просмотров111K
Недавно инкапсулировал свой проект в namespace и столкнулся с проблемой отсутствия нормальной документации. Все, что удалось найти датируется примерно 2009 годом, а на дворе почти 2012… В найденном материале куча нерабочих мест, использующих то, что в нынешней версии php нет. В связи с этим хочу немного осветить этот вопрос.
Читать дальше →
Всего голосов 86: ↑59 и ↓27+32
Комментарии46

Оптимизация Ubuntu (и прочих Linux-ов) под SSD

Время на прочтение4 мин
Количество просмотров204K
Доброго времени суток всем читающим. В данной мини-статье мне хотелось бы собрать и рассмотреть основные моменты оптимизации работы (и, конечно, продления жизненного цикла ) твердотельных накопителей. Практически всю информацию можно легко найти в сети, но тут я попытаюсь упомянуть пару подводных камней.
Читать дальше →
Всего голосов 128: ↑118 и ↓10+108
Комментарии109

Информация

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