События, публикации, решения по темам: разработка и тестирование программного обеспечения, инструменты автоматизации, системное администрирование, эпизоды.
Разработка приложений
• Кладезь алгоритмов от Алены C++: расстояние Левенштейна, фильтр Блума, красно-черные деревья, развернутые списки, списки с одновременным доступом.
• Пятьдесят полезных инструментов для web-дизайнеров: выбор на любой вкус.
• Уроки CSS: как избежать “плавающих” элементов на web-странице и придать ей законченный вид и красоту (1, 2).
• Десять факторов, ведущих к снижению производительности приложений: утечки памяти, частые обращения к базам данных, издержки синхронизации и др.
• Алгоритм принятия решений при изменении архитектуры информационной системы: did you fuck with it?
• Обзор инструментов для комфортной и эффективной работы в среде .Net.
• Введение в объектно-ориентированное программирование на php для новичков.
• Что такое design patterns и в каких случаях они могут оказаться полезны (на примере php).
• Архитектура информационной системы может варьироваться исходя из стоимости потребления хранилища данных и CPU.
• Как добавить собственную синтаксическую конструкцию в Python? Репортаж с места событий.
• Во втором выпуске журнала “Hacker Monthly” затрагиваются злободневные вопросы производства ПО и прослеживается ироничный взгляд на приложения с теневой, неожиданной стороны.
Тестирование программного обеспечения
• Pradeep Soundararajan рассказывает о пути независимого консультанта-тестировщика: что учесть, к чему стремиться?
• Elisabeth Hendrickson делится мыслями о стратегии “Record-and-Playback”, обозначая плюсы и минусы.
• Покрытие кода модульными тестами: главное – не переборщить.
• Jeff Atwood ставит под сомнение пользу от A/B тестирования, ориентируясь на фильм “День Сурка”.
• Gojko Adzic предлагает вдумчиво подходить к выбору сценариев для автоматизированного тестирования и не пытаться автоматизировать каждый шаг ручных испытаний.
• James A. Whittaker, окунувшись в культуру производства ПО в Google, выделяет три особенности тестирования, делающих этот процесс более управляемым и эффективным.
• Еще одна хвалебная ода TDD из уст инженера Google.
• Перечень и краткое описание бесплатных сервисов для проверки и анализа различных характеристик web-сайтов.
• Marlena рассказывает о первых 90 днях работы тестировщиком в Atlassian и делится своими впечатлениями о процессах, продукте и обстановке в компании.
• Юлия Нечаева рассказывает о подготовке локализованной версии игры “Атлантика”, сделав акцент на наиболее существенных особенностях тестирования.
• I.M.Testy подчеркивает важность проверки приложения при работе с граничными значениями из возможного диапазона.
Инструменты автоматизации
• Selenium: четыре способоа создания скриншотов (Java).
• Adam Goucher, неутомимый исследователь сокровищ Selenium, представляет очередные подборки ссылок (1, 2, 3, 4), приводит пример работы с конфигурационными файлами в связке Python+Selenium и повествует о синхронизации при использовании Selenium на примере C#-скрипта.
• Десять бесплатных инструментов для нагрузочного тестирования web-приложений.
• Corey Goldberg представляет набор любимых инструментов для отслеживания производительности подсистем в Linux.
Системное администрирование
• WordPress: 20 шагов к созданию блога на самой популярной платформе.
• Десять полезных советов по защите блога, работающего на платформе WordPress.
• IBM developerWorks: удаленное управление несколькими Unix-машинами с помощью ssh и функциональности командного интерпретатора (shell).
Разное
• История о том, как студенческий проект принес ощутимую пользу своему университету: электронная очередь абитуриентов.
• Мастерство программиста: можно ли его измерить скоростью написания кода и стажем работы (1, 2)?
• Наш достоверный источник соообщает: испытатели программного обеспечения начального уровня, работающие в Microsoft, способны к шпионским действиям в составе агентурной сети.
• Краткое изложение истории про XSS-атаку на YouTube: два часа на закрытие хакерской норы.
Вышло в эпизодах:
Б1. Папа, а чем Баг отличается от бажка?
Б2. Широтой помыслов.
Б1. Точно так же как Разработчик отличается от кодера?
Б2. Да. И точно так же как тестер отличается от Тестировщика.
Б1. Милый, я беременна. Ты кого больше хочешь: Бага или Багу?
Б2. А можно двоих? Бага позаботится о нас в старости, а Баг продолжит наше дело.
[Три релиза спустя] Т1. Ничего не понимаю: закрывали этот баг три раза, а он целехонький.
Т2. А этот экземпляр откуда? Код не менялся, в прошлом релизе мы не могли его пропустить. Размножаются они, что ли?
Т1. Код не менялся, значит изменилась среда обитания. Обновление операционной системы привело к дополнительной нагрузке на CPU. Мотор стал барахлить, обнажив дефекты в нашем продукте.
Т2. Разумно! А то я уже начал беспокоиться…
Р1. Мечтаю достичь Абсолютной Гармонии. Каждый Метод, каждый Объект внесет неповторимую лепту в бесконечно прекрасное звучание Кода.
Б1. Мечтаю достичь Абсолютного Счастья. Тихо сидеть в концертном зале и наслаждаться Божественной Музыкой Маэстро, Методов и Объектов.
Т1. Почему вторая скрипка фальшивит? А это кто в зале семечками лузгает?
Б1. Ну вот что делать с музыкальными критиками?
Р1. Просто не обращать на них внимания. Поворчат в Абсолютном Вакууме – и обретут Абсолютное Спокойствие…
Б1. Какой баг имеет больше шансов на выживание: тот, который встречается редко, но приносит большой сюрприз, или тот, который встречается часто, но не создает особых неудобств?
Б2. Нужно оценить эти баги по шкале багоущерба. Затем количество единиц, которые “заработал” каждый баг, умножить на вероятность его появления. Баг с меньшим IQ проживет дольше.
Б1. Вот я всегда говорил: не надо зарываться. Будь скромнее – и маглы пройдут мимо!
Всего доброго. Оставайтесь с нами.
Что такое качество программного обеспечения и как его улучшить: теория и практика, задачи и решения, подводные камни и обходные пути.