Добрый день.
Баги и дыры
• Устранить уязвимость или сохранить совместимость: можно ли убить двух зайцев?
• В жизни существуют родственные отношения, способные завести программу ведения генеалогического древа в тупик.
• Защита данных по следам взлома Sony Pictures: очень важно не только бережно хранить, но и тщательно удалять.
• Отличная статья о том как неполный анализ существующих данных может привести к обманчивым выводам.
• Gerald Weinberg начинает публикацию материалов о наиболее серьезных ошибках в программных продуктах и уроках, которые можно из них извлечь.
• Еще одна жертва “rm -rf $var/”, потерявшая свои данные.
• Я сделаю вам крутой рефакторинг, но не обещаю что после этого все будет работать.
• В красивом коде баги не водятся, или помоги себе сам.
• Трудно найти черную кошку в темной комнате, особенно когда ее там нет.
• Разработчики браузера Aviator хотели как лучше, а получилось как всегда.
• What the fuck? Параметры доступа к базе данных по секрету всему свету и код, который нарочно не придумаешь.
Приложения
• Факир был пьян, и фокус не удался: лебединая песня Google Glass.
• История о том как трехмерное моделирование и печать помогли избавиться от опухоли в черепной коробке.
• Be my eyes: приложение для мобильных устройств облегчает удаленную помощь зрячих слепым.
• Что мы будем делать, когда вычислительная система будет самостоятельно принимать и реализовывать решения, нарушающие закон?
• Стивен Хокинг получает возможность улучшить взаимодействие с компьютером благодаря доработке пакета прикладных программ, которые он использует.
Тестирование и качество ПО
• Google Testing blog: следует избавляться от тестов, которые де-факто не обнаруживают багов и изменение которых слишком трудоемко.
• Michael Bolton учит тестировщиков, ищущих работу и не желающих проходить сертификацию, убийству двух зайцев одним выстрелом.
• Alan Page (Microsoft) делится списком книг, полезных для тестировщика.
• Google Testing Blog: тестирование API, к которому обращаются внешние пользователи, предпочтительнее тестирования классов, обеспечивающих внутреннюю реализацию продукта.
• Подходы к автоматизации тестирования приложений для мобильных устройств: обзорная статья с примерами.
• Michael Bolton полагает, что низкоприоритетные баги заслуживают уважительного отношения.
• BugMagnet – Chrome-расширение для сессий исследовательского тестирования.
Архитектура систем и разработка приложений
• Выбор технологий: хватит экспериментировать, пора за работу.
• Martin Fowler рассказывает об использовании OAuth в простом скрипте, запрашивающем данные с помощью Google API.
• Spartan: что скрывается под капотом нового браузера Microsoft, и как учтены чаяния пользователей.
• Сможет ли браузер Spartan потеснить Firefox и Chrome?
• Программирование на Python: несколько полезных советов.
• Взгляд за ширму: как работают браузеры изнутри?
• Какая цепь событий разворачивается, когда вы набираете google.com в адресной строке браузера и нажимаете Enter?
• Подробное руководство по построению web-сервиса на базе Amazon AWS.
• Пять уроков масштабирования от сервиса Ello: дорога займет в десять раз больше времени чем вы предполагали.
• Дьявол скрывается в деталях, или что понимать под Total Size в диалоге копирования файлов в Windows.
• Почему получатели писем в Microsoft Outlook разделяются точкой с запятой?
• Чуть дольше чем “Спокойной ночи, малыши!”: базовые знания об Awk за 20 минут.
• Статистика сервиса Stack Exchange в открытом доступе.
• Новые возможности Java 8: потоковые операции с фильтрами как замена циклам.
• Сервис AWS от Amazon: масштабирование сейчас и взгляд на будущее.
• История Instagram от первого лица: что привело продукт к триумфальному успеху?
• Nginx: отличная вводная статья по базовым концепциям прокси, буферизации, балансировки нагрузки и кэширования.
• Подборка публикаций на тему производительности web-систем.
• Стоит ли шкурка Angular.js выделки, или возможность решить те или иные проблемы не означает их отсутствия.
• Martin Fowler опубликовал пример сессии подготовительного рефакторинга.
• Как GitHub применяет GitHub для документирования GitHub?
• Далеко не каждая проблема требует своего решения, особенно в ущерб более насущным задачам.
• Jeff Atwood проводит масштабный анализ процедуры логина в информационную систему и рассказывает о том как сделать ее эффективнее.
• Подборка из 10 ошибок, которые наиболее часто допускают программисты при работе с Node.js.
• Создать свой собственный язык программирования не так уж и сложно.
• Python: отличная подборка способов сделать код быстрее (результаты сравнения вариантов прилагаются).
• Настоящий хакер может запустить Quake на осциллографе.
• Линус Торвальдс в присущей ему манере высказывается о параллельных вычислениях.
• Настройка сетевого принтера в домашней сети без необходимости менять значение IP-адреса после перезагрузки роутера.
Между стулом и монитором
• Дилберт охарактеризовал текущую стадию проекта как стадию, на которой начинают задавать глупые вопросы.
• Авгиевы конюшни можно потихоньку расчистить, но лучше свалить при первой возможности.
• Дилберт отказывается от позиции менеджера, потому что ему трудно найти кого-нибудь умнее себя.
• Разработка компьютерных игр: один в поле больше не воин?
• Дилберт не упускает возможности пройтись по псевдолидерству своего руководителя.
• Милые бранятся – только тешатся: компания Microsoft раскритиковала конкурента Google за публичное раскрытие уязвимости в операционной системе Windows 8.1 за два дня до запланированного Microsoft выпуска исправления этой ошибки.
• Прогноз на будущее: потребность в программистах с научным уклоном будет возрастать.
• Издержки профессии: к вопросу установления отношений с прекрасным полом Дилберт подходит с чек-листом.
• Личные дела я сделаю на работе, потому что вне работы у меня нет на них времени.
Эпизоды
Пан или пропал:
Р. Нельзя релизить с таким багом. Замучаемся с саппортом.
М. Если сегодня не взлетим, премии не будет, и закроют продукт.
М. (месяц спустя) Как можно было релизить с таким багом?
Р. А я говорил!
М. Мало говорить. Где анализ рисков, графики, диаграммы?
Р. (месяц спустя) Нельзя релизить с таким багом. Вот анализ рисков, графики и диаграммы.
М. Ты бы лучше больше времени на фикс потратил чем на эту писанину!
Теория вероятности:
Р. 90% вероятности, что багов здесь нет.
Т. 10% вероятности, что баг тут есть.
М. И кому мне, спрашивается, верить?
Один месяц до весны!
Что такое качество программного обеспечения и как его улучшить: теория и практика, задачи и решения, подводные камни и обходные пути.