пятница, 11 октября 2013 г.

Почему мы не тестируем. Практика проведения технического интервью

Я руковожу разработкой ПО уже достаточно много лет. За эти годы мне пришлось провести более тысячи интервью и посчастливилось захантить больше сотни классных программистов. Естественно, у меня сложилась определенная практика проведения технических собеседований, которой я собираюсь поделиться. Возможно, это окажется кому-то полезным.

Ставим задачу
Кого ищем? Ищем эффективных бойцов. Известно, что эффективность программистов со схожим опытом может отличаться в 10 раз (Ф. Брукс) или даже в 27 раз (Р. Гласс). Сразу, оговорюсь, эффективность это не только количество трупов враговреализованных требований к ПО на единицу трудозатрат, но и умение результативно взаимодействовать с окружающими. Это важно, потому что по моим наблюдениям 50% проектных человеко-часов тратится на коммуникации. У нас это называется «синхронизация ментальных моделей».

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

вторник, 8 октября 2013 г.

Новые подробности о Valve Steam Machine


Позавчера стала известна некоторая новая информация об игровой приставке Steam Machine компании Valve, касающаяся начинки перспективных устройств. Сообщается, что Steam Machine изнутри будет похожа на игровой ПК для Windows с процессором Intel Core различных модификаций, 16 Гб памяти DDR3 и гибридным диском от 1 до 8 Тб. В качестве видеокарты будет использоваться Nvidia GeForce GTX 660 в младших моделях и GTX 760/780 в более дорогих. 
Представители Valve особо подчеркивают, что Steam Machine будет собираться из стандартных компонентов, а пользователи будут иметь возможность ее апгрейдить. Наконец, последняя новость от Valve, пока в виде намека: для тех, кто не собирается покупать отдельный ПК для игр, компания готовит решение для трансляции Steam игр с компьютера в другой комнате на HD TV.

Tips & tricks for MySQL Developers. Работа с SQL

Эта статья задумана мной как сборник некоторых интересных моментов по использованию и оптимизации SQL запросов в БД MySQL, на мой взгляд, плохо освещенных в интернете. Так, из статьи вы узнаете о конструкции with rollup, и о том, как переписать подзапросы in и not in на join'ы, а так же обновление и удаление данных в нескольких таблицах — одним запросом, и многое другое. Начнем по порядку.


Переписываем подзапросы с in и not in на join'ы


Одни из самых распространённых подзапросов являются запросы с in и not in. Причём, мы знаем, что в MySQL join запросы отрабатывают быстрее за счёт эффективного построения плана выполнения запроса оптимизатором (для других БД это утверждение может быть диаметрально противоположным), поэтому попробуем переписать классические подзапросы на join. Как мы это будем делать? Для начала уясним то, что in запросы выводят все значения, которые присутствуют в обоих таблицах, а значит такому запросу будет однозначно соответствовать внутренний inner join. Запросы с not in наоборот выводят все значения, которые не присутствуют в подзапросе, а значит им уже будет соответствовать внешний outer join. Итак, начало положено, попробуем с этим что-нибудь сделать.

Для примера буду использовать тестовую БД world, которую можно взять с официального сайта mysql здесь

Угроза дефолта США вызывает опасения по всему миру

Стивен Эрланджер | The New York Times
Финансовый тупик в Вашингтоне "вызывает нервную дрожь по всему свету, от Лондона до Бали, на фоне растущей тревоги, что США могут потерпеть дефолт по своему государственному долгу, что приведет к глобальным финансовым проблемам и подрыву хрупкого экономического выздоровления во многих странах", - пишет The New York Times
Через пять лет после того, как финансовый кризис в Соединенных Штатах поспособствовал распространению глубокой мировой рецессии, политики всего мира снова опасаются побочного эффекта. На этот раз их страны могут стать жертвами не эксцессов Уолл-Стрит, но политической системы в Вашингтоне, которая, с точки зрения многих иностранных наблюдателей, похоже, больше не может функционировать эффективно, отмечает Стивен Эрланджер.
Президент США Барак Обама, оставшийся дома из-за политического кризиса, не смог присутствовать на встрече лидеров АТЭС в Индонезии в понедельник, что позволило Китаю подчеркнуть свою роль в регионе, говорится далее.
Один из участников саммита, президент России Владимир Путин выразил сочувствие к Обаме, возможно, в сардонической манере, отмечает автор. "Мы видим, что происходит сейчас во внутриполитической жизни Соединенных Штатов. И это непростая ситуация", - сказал Путин, добавив: "Я думаю, если бы я был в его положении, я бы тоже не приехал".
"Международное сообщество вопрошает: сохранили ли Соединенные Штаты волю к действию? - отметила старший научный сотрудник лондонского института Chatham House Ксения Дорманди. - И голосование по Сирии, и нынешний бюджетный кризис тревожат мир", - сказала она, имея в виду внезапное решение Обамы обратиться к Конгрессу с просьбой одобрить нанесение удара по Сирии.
Ален Фрашон, обозреватель французской газеты Le Monde, отметил: "Вашингтон больше напоминает итальянскую политическую систему, с ее постоянными кризисами, чем такую президентскую систему, как раньше".
"Люди обеспокоены потолком госдолга - достаточно совсем немногого, чтобы начать новый кризис на финансовых рынках", - считает он, указывая, что тревога царит во всей Европе. Новый финансовый спад грозит коснуться и Франции, не только Греции, Португалии и Испании, полагает Фрашон.

Интересные факты о деньгах

Невозможно заработать все деньги на свете, даже сосчитать их очень сложно. Не менее сложно собрать вместе все интересные факты и истории о деньгах, но «Моё дело» не прекратит попыток делать это — представляем вашему вниманию свежую подборку «денежных фактов».

Using Special Keys in Selenium IDE

I added special keys support to the sendKeys command in Selenium IDE v2.3.0. Not just in normal playback, but also in Webdriver playback. Along with this, I added special keys support to all the officially supported formatters for Java, Ruby, Python and C#. And also the Perl Webdriver formatter. Yes, the Perl Webdriver formatter, it exists and will be released soon. It is unofficial, but I will maintain it to the level of other officially supported formatters. Wait for it.

Нулевая скорость при полном разгоне.

К приложению, к тестированию которого сейчас прилагаются мои усилия, бесплатно прилагается ядрённый батон функционал в виде AJAX.
Отличие этой технологии не только в асинхронной передаче данных между клиентом и сервером, но и в скорости обработки кликов.
Когда по сайту кликают руки человеческие, то все местами работает хорошо. А когда кликать начинает резвый Selenium IDE, то вскорости начинаются траблы с неуспеванием подгружения данных.
Уж мы и clickAndWait используем, и жесткие паузы, и мягкие waitForTextPresent – но трабла имеет место быть.
Позавчера методом злобного от бессилия тыка обнаружилось, что если перед прогоном некоторых тест-сьютов выставлять скорость выполнения кликов в режиме середины между Fast и Slow, то дела с тестированием посредством браузера слегка налаживаются.
Вчера выяснилось, что глаз видит, да сознание забывает ограничивать эту самую скорость.
Сегодня выяснилось, что в Selenium IDE есть команда, которая самостоятельно насильно устанавливает определенную скорость выполнения скриптов – setSpeed: