Что же, у Google появляется все больше социальных сервисов, которыми некоторые из нас пользуются каждый день. Не всегда удобно пользоваться всеми ими + сторонними сервисами по отдельности, поэтому предлагается способ интеграции всех названных в заголовке сервисов в Gmail.
Максим Дешкевич @7workers
Пользователь
Исследование успешности IT проектов
2 мин
905Здравствуйте, уважаемая аудитория Хабрахабра.
Уже в течение трех месяцев мы проводим исследование успешности программных (IT) проектов. Этот проект был анонсирован во многих известных блогах Рунета, в частности, в блоге Александра Орлова, который является идейным вдохновителем и покровителем проекта. Проект проводится при поддержке Гильдии менеджеров программных проектов.
Почему мы затеяли такой проект?
Уже в течение трех месяцев мы проводим исследование успешности программных (IT) проектов. Этот проект был анонсирован во многих известных блогах Рунета, в частности, в блоге Александра Орлова, который является идейным вдохновителем и покровителем проекта. Проект проводится при поддержке Гильдии менеджеров программных проектов.
Почему мы затеяли такой проект?
+1
Поиск подходящей распределённой кластерной файловой системы
2 мин
5.4KУважаемое Хабрасообщество!
Хочу просить вашего совета в выборе распределённой кластерной файловой системы, поскольку опыта работы с ними у меня нету, да и сами они достаточно сильно различаются и имеют кучу особенностей. К тому же ещё и ощущается относительный информационный голод в данном направлении — какая либо конкретика просто отсутствует.
Хочу просить вашего совета в выборе распределённой кластерной файловой системы, поскольку опыта работы с ними у меня нету, да и сами они достаточно сильно различаются и имеют кучу особенностей. К тому же ещё и ощущается относительный информационный голод в данном направлении — какая либо конкретика просто отсутствует.
+8
Тестирование WEB приложения на браузерах IE под Linux
2 мин
1.4KЧтобы протестировать WEB приложение под Linux я использую Wine, который успешно запускает IE6 и Safari (без SSL). Google Chrome толком запустить не удалось. Про IE7 и IE8 с ies4linux я промолчу.
После непродолжительных поисков в Google я нашёл образы виртуальных машин под Virtual PC с триальной виндой. Вроде то, что надо, но увы Virtual PC под Linux не существует. К счастью последние версии (2.x) VirtualBox умеют работать с образами VHD.
После непродолжительных поисков в Google я нашёл образы виртуальных машин под Virtual PC с триальной виндой. Вроде то, что надо, но увы Virtual PC под Linux не существует. К счастью последние версии (2.x) VirtualBox умеют работать с образами VHD.
+2
+331
Найм персонала: О важности примитивных вопросов
4 мин
7.4KВам приходилось бывать на долгих собеседованиях? На многоуровневых собеседованиях? А может вы такие проводите сами? Многие компании ведут подобную практику, и большие и маленькие, но подобная практика имеет ряд очевидных минусов. Таких, как впустую потраченое время на интервьюирование человека по полной программе, который не подходит просто по техническим навыкам. В данной статье я хочу описать подход к интервью технических навыков (про остальное не забываем, но в статье рассматривать не будем), который, возможно, сбережет вам кучу времени. Сутью подхода является задавание вопросов, которые грамотный специалист расценит как: «Ты что дурак? Меня о таком спрашивать!»
+24
Собеседование глазами собеседуемого
2 мин
4.5KНабросаю несколько мыслей по тому, каким я вижу правильное собеседование на вакансию software developer.
На собеседовании работодатель должен предложить кандидату чашечку кофе/чая. Это обязательно! И с этого нужно начинать. Кофе располагает к беседе. Кандидат чувствует себя комфортней, мозг начинает работать лучше. За одной чашкой можно предложить другую, третью, в зависимости, как пойдет беседа. Удивительно, но в силу недоразвитости культуры проведения собеседования, работодатель игнорирует это элементарное действие… Я уже молчу про то, что в идеале бы угостить бокалом вина. =). И далее, соответственно, как пойдет ). Таким образом, из скучной рутины мы превращаем процесс в увлекательное действие. Это первый сценарий.
- Не нужно кандидату взрывать мозг хитроумными задачками. На собеседовании его мозг уязвим и откровенно высосанные из пальца задачи только навредят.
- Идиотские вопросы, типа что такое стек, сколько бит в байте, маразматические – можете ли написать демона под линукс – оставьте себе. Это может обидеть кандидата.
- Если это C++ вакансия – всю сиплюсплюсную лажу оставьте при себе. Вы испортите впечатление о конторе, спросив, можно ли вызвать чисто виртуальную функцию и сказав, что у нас такое часто бывает, выскакивают разные предупреждающие ассерты.
- Все вопросы по COM – держите при себе. Вы устарели. Кандидату неприятно будет это осознавать.
- Хардкорные вроде того, что как узнать, является ли число степенью двойки за O(1) это конечно клево, но кто способен сходу, не зная, родить решение? Зачем это спрашивать?
Ок, что же тогда спрашивать? Элементарно. Никаких заготовок, тестовых заданий, задач на бумаге за отведенное время. Спрашивать нужно о том, что сделал кандидат на предыдущих работах. Конкретно. Никаких абстрактных задачек на поиск пути (хотя можно =), а просто, приближенно к реальности, что и как и почему им было сделано.
Создать контекст и быть внутри этого контекста. Это сложно? Нет. Так почему же лишь единицы это понимают? (единица! =).
И только уже исходя из предпосылок – сделанной кандидатом работы – можно спрашивать связные по теме вещи.
Как-то так. Навеяно ).
Ваша задача, как работодателя, найти, понять, что интересно кандидату. Интересен ли он вам? И смотреть, пересекаются ли ваши интересы, в каких областях и насколько.
+12
Темное программирование
7 мин
139KПредлагаю перейти на сторону зла, на темную сторону программирования. Ситхи сильнее джедаев. И печенек хватит на всех. Предупреждаю, прежде чем начнете читать далее. Характер при переходе на темную сторону портится.
Прошу под кат
Прошу под кат
+149
Regexponline – интерактивный анализатор и редактор регулярных выражений
4 мин
53KЕсть одна бородатая шутка: «если у вас есть проблема, и вы собираетесь решать ее с использованием регулярных выражений, то у вас есть две проблемы». Действительно, регулярные выражения – очень мощный и гибкий инструмент, применяемый для решения весьма широкого круга задач. Но, как водится, для поддержания баланса, такой серьёзный инструмент имеет весьма недружелюбный вид.
Такая чупакабра новичка приводит в трепетный ужас, да и знающего человека заставляет невольно поморщить нос. А ваша девушка вообще решит, что вы свихнулись, когда увидит вас за написанием такой конструкции.
Когда-то и мне пришлось по долгу службы подружиться с регулярными выражениями. Прочитав Фридла и несколько статей на Хабре, я, конечно, начал понимать этот синтетический язык. Тем не менее, каждый раз, когда приходилось написать очередную регулярку, я быстро закапывался в нагромождении скобок, слешей, точек, плюсов, знаков вопроса, и других хорошо вам знакомых конструкциях. Разобраться в этой каше было очень сложно, особенно если возвращаешься к задаче месячной давности. Я мечтал об инструменте, который помог бы мне разобраться в собственном творении. Приблизительно подходящих по смыслу сервисов нагуглилось с десяток, но все они приносили мало пользы. Как раз тогда я и начал разрабатывать этот проект.
Итак, regexponline – инструмент, способный наглядно изобразить структуру регулярного выражения, разобрав его по элементарным компонентам; продемонстрировать совпадающие и не совпадающие его части; помочь в написании и отладке выражения, которое почему-то не совпадает с нужной строчкой.
(<([a-z]+[^>]*)>)(.*)(</\2>)
Такая чупакабра новичка приводит в трепетный ужас, да и знающего человека заставляет невольно поморщить нос. А ваша девушка вообще решит, что вы свихнулись, когда увидит вас за написанием такой конструкции.
Когда-то и мне пришлось по долгу службы подружиться с регулярными выражениями. Прочитав Фридла и несколько статей на Хабре, я, конечно, начал понимать этот синтетический язык. Тем не менее, каждый раз, когда приходилось написать очередную регулярку, я быстро закапывался в нагромождении скобок, слешей, точек, плюсов, знаков вопроса, и других хорошо вам знакомых конструкциях. Разобраться в этой каше было очень сложно, особенно если возвращаешься к задаче месячной давности. Я мечтал об инструменте, который помог бы мне разобраться в собственном творении. Приблизительно подходящих по смыслу сервисов нагуглилось с десяток, но все они приносили мало пользы. Как раз тогда я и начал разрабатывать этот проект.
Итак, regexponline – инструмент, способный наглядно изобразить структуру регулярного выражения, разобрав его по элементарным компонентам; продемонстрировать совпадающие и не совпадающие его части; помочь в написании и отладке выражения, которое почему-то не совпадает с нужной строчкой.
+78
Linux :: два, три, пять… указателей мыши
3 мин
66KНе знаю зачем мне это пригодится, но очень вдруг захотелось иметь два указателя мыши в Linux, ведь две «мыши» у меня есть — собственно беспроводная мышь и тач-пад. Идея пришла в тот момент, когда я подключил вторую мышь, т.е. третье устройство управления указателем.
+128
Полезные мелочи в работе веб-разработчика или «Как я мог без этого жить»
4 мин
8.5KЗлой троянец увел у меня аккаунт на хабр, после чего под моим аккаунтом начали публиковаться какие-то тупые мультики. К сожалению узнал я об этом только когда НЛО перевело меня в read-only, а рейтинг ушел в отрицательное значение. Не беда: повод наконец написать пост, который давно собирался.
Веб-разработчику консоль нужна, но не на столько что бы бросив все дела начинать читать толстенные книжки по линуксу. Именно поэтому я учился консольным хитростям от случая к случаю и, судя по моим сотрудникам, многие поступают точно так же. Раскрою пару удобных секретов, без которых я уже не могу жить.
Веб-разработчику консоль нужна, но не на столько что бы бросив все дела начинать читать толстенные книжки по линуксу. Именно поэтому я учился консольным хитростям от случая к случаю и, судя по моим сотрудникам, многие поступают точно так же. Раскрою пару удобных секретов, без которых я уже не могу жить.
+103
Немного о хэшах и безопасном хранении паролей
4 мин
71KUpd. Если вы знаете, что такое BCrypt, можете дальше не читать. Если вы используете PHP 5.5+ то можете прочитать эту статью. Ниже же я изобрел свой велосипед, рабочий, но с двумя рулями, задний запасной. Молод был, горяч.
Привет, хабр! Сегодня, в процессе разработки системы аутентификации для своего проекта передо мной встал выбор — в каком виде хранить пароли пользователей в базе данных? В голову приходит множество вариантов. Самые очевидные:
Привет, хабр! Сегодня, в процессе разработки системы аутентификации для своего проекта передо мной встал выбор — в каком виде хранить пароли пользователей в базе данных? В голову приходит множество вариантов. Самые очевидные:
- Хранить пароли в БД в открытом виде.
- Использовать обычные хэши crc32, md5, sha1
- Использовать функцию crypt()
- Использовать статическую «соль», конструкции вида md5(md5($pass))
- Использовать уникальную «соль» для каждого пользователя.
+43
Повышаем производительность программирования (ментальная карта)
3 мин
20KХочу поделиться с вами своими долголетними наблюдениями о том, как улучшить производительность труда программиста. Вот ментальная карта в виде картинки, вот — в виде mm файла, а ниже — она же в виде вложенных списков.
+36
Создание простой 2D игры на Android
10 мин
375KДоброго дня всем!
Когда я писал эту «игру» у меня возникала масса вопросов по поводу зацикливания спрайтов так что бы они появлялись через определенное время, так же были проблемы с обнаружением столкновений двух спрайтов и более, все эти вопросы я сегодня хочу осветить в этом посте так как в интернете я не нашел нормального ответа на мои вопросы и пришлось делать самому. Пост ни на что не претендует, я новичок в разработке игр под android и пишу я для новичков в данной отрасли. Кому стало интересно прошу под кат.
Когда я писал эту «игру» у меня возникала масса вопросов по поводу зацикливания спрайтов так что бы они появлялись через определенное время, так же были проблемы с обнаружением столкновений двух спрайтов и более, все эти вопросы я сегодня хочу осветить в этом посте так как в интернете я не нашел нормального ответа на мои вопросы и пришлось делать самому. Пост ни на что не претендует, я новичок в разработке игр под android и пишу я для новичков в данной отрасли. Кому стало интересно прошу под кат.
+47
Работа с памятью (и всё же она есть)
13 мин
107KСуществует распространенное мнение, что «рядовому» PHP разработчику практически не нужно заботиться об управлении памятью, однако «заботиться» и «знать» всё же немного разные понятия. Попытаюсь осветить некоторые аспекты управлению памятью при работе с переменными и массивами, а также интересные «подводные камни» внутренней оптимизации PHP. Как вы сможете убедиться, оптимизация это хорошо, но если не знать как именно она «оптимизирует», то можно столкнуться с «неочевидными граблями», которые могут вас заставить изрядно понервничать.
+213
Демоны на PHP
4 мин
76KПамятка начинающему экзорцисту.
Прежде, чем начать: я знаю, что такое phpDaemon и System_Daemon. Я читал статьи по этой тематике, и на хабре тоже.
Итак, предположим, что вы уже определились, что вам нужен именно демон. Что он должен уметь?
Прежде, чем начать: я знаю, что такое phpDaemon и System_Daemon. Я читал статьи по этой тематике, и на хабре тоже.
Итак, предположим, что вы уже определились, что вам нужен именно демон. Что он должен уметь?
- Запускаться из консоли и отвязываться от неё
- Всю информацию писать в логи, ничего не выводить в консоль
- Уметь плодить дочерние процессы и контролировать их
- Выполнять поставленную задачу
- Корректно завершать работу
Отвязываемся от консоли
// Создаем дочерний процесс
// весь код после pcntl_fork() будет выполняться двумя процессами: родительским и дочерним
$child_pid = pcntl_fork();
if ($child_pid) {
// Выходим из родительского, привязанного к консоли, процесса
exit();
}
// Делаем основным процессом дочерний.
posix_setsid();
// Дальнейший код выполнится только дочерним процессом, который уже отвязан от консоли
+146
Мониторинг прогнозированием с помощью rrdtool, как это делается
7 мин
18KВведение
Недавно я описывал созданную мной систему мониторинга транзитного VoIP методом прогнозирования. Самым сильным плюсом данного метода в задаче мониторинга транзитного VoIP является то, что нет необходимости выставлять критерии того, что считать нормальной работой величин, находящихся под мониторингом, а что – потенциальным сбоем.
Ядром системы является rrdtool, в котором реализованы прогнозирование методом Хольта-Винтерса и механизм выявления аберраций.
Мониторинг методом прогнозирования можно использовать не только для VoIP, но и для любого другого типа трафика, а так же, для величин, которые изменяются во времени с некой прогнозируемой цикличностью. В отличие от стандартных методов, при мониторинге с помощью прогнозирования не осуществляет мониторинг состояния величин, находящихся под мониторингом, зато осуществляется мониторинг динамики изменения их состояний во времени.
Если вам интересна математика прогнозирования рекомендую прочесть. Чтобы быть хоть немного в курсе темы, прочтите главу “Метод прогнозирования реализованный в rrdtool” моего предыдущего поста.
+39
AzaThread — многопоточность для PHP с блэкджеком
6 мин
18KВ сети гуляет довольно много решений для эмуляции многопоточности в php. Чаще всего они основываются на форках, но есть и вариации на тему с использованием curl, proc_open и т.п.
Все встреченные варианты по тем или иным причинам меня не устроили и пришлось написать свое решение.
Набор требований у меня был следующий:
В результате получилась библиотека AzaThread (старое название — CThread).
Все встреченные варианты по тем или иным причинам меня не устроили и пришлось написать свое решение.
Набор требований у меня был следующий:
- Использование форков;
- Синхронный режим с сохранением интерфейса при отсутствии необходимых расширений;
- Многократное использование дочерних процессов;
- Полноценный обмен данными между процессами. Т.е. запуск с аргументами и получение результата по завершении;
- Возможность обмена событиями между дочерним процессом-«потоком» и основным процессом во время работы;
- Работа с пулом потоков с сохранением многократного использования, передачи аргументов и получения результатов;
- Обработка ошибок выполнения;
- Таймауты на выполнение работы, ожидание работы потоком, инициализацию;
- Максимум производительности;
В результате получилась библиотека AzaThread (старое название — CThread).
+136
PHP Namespace
6 мин
112KНедавно инкапсулировал свой проект в namespace и столкнулся с проблемой отсутствия нормальной документации. Все, что удалось найти датируется примерно 2009 годом, а на дворе почти 2012… В найденном материале куча нерабочих мест, использующих то, что в нынешней версии php нет. В связи с этим хочу немного осветить этот вопрос.
+32
Оптимизация Ubuntu (и прочих Linux-ов) под SSD
4 мин
205KДоброго времени суток всем читающим. В данной мини-статье мне хотелось бы собрать и рассмотреть основные моменты оптимизации работы (и, конечно, продления жизненного цикла ) твердотельных накопителей. Практически всю информацию можно легко найти в сети, но тут я попытаюсь упомянуть пару подводных камней.
+108
Информация
- В рейтинге
- Не участвует
- Откуда
- Минск, Минская обл., Беларусь
- Дата рождения
- Зарегистрирован
- Активность