Добрый день.
Баги и дыры
• ShellShock (уязвимость в Bash): нужно ли обновить контроллер ритма сердца и ваш холодильник?
• Shellshock: найденная уязвимость в bash – дело серьезное и опасное для владельцев Web-серверов (и не только). Что нужно знать на эту тему?
• Я к вам пишу – чего же боле? Попытки компьютера предугадать мысли порой бывают смешными.
• Баг в обработке символьных строк помог выявить несколько полезных опций компилятора VC++.
• Отсутствие багов – вещь невероятная и очень подозрительная.
• К каким последствиям может привести экзотическое отслеживание високосного года? К критическим.
• История о том как тестовое окружение катастрофически влияло на production вследствие избыточных прав доступа у разработчиков и их желания тестировать “вживую”.
• Подсказка самому себе на будущее: “Я попал сюда потому что функция не подлежит доработке, а переписать с нуля руки не дошли“.
• Хакер на выдумку горазд: как можно по ошибке раскрыть пароль GMail-аккаунта в одной из многочисленных вкладок браузера.
• История о том как шаблон электронного письма заменял собой багтрекинговую систему, и что из этого вышло.
• Если вы не можете обозначить негативные последствия того или иного бага, то не стоит его эскалировать.
Архитектура систем и разработка приложений
• Секреты Instagram: какими средствами была улучшена производительность приложения?
• Еще одно сравнение Google App Engine и Amazon EC2: установка сервера, лицензия, кастомизация, разработка, специфика, выводы.
• Что такое linearizability и serializability в распределенных системах и управлении данными?
• Переход от LAMP (Linux, Apache, MySQL, Perl/PHP/Python) к MEAN ( MongoDB, Express.js, Angular.js, Node.js): лед тронулся.
• Масштабирование NoSQL-СУБД: не доверяй предположениям, ориентируйся на тесты и наиболее тяжелые варианты развития событий.
• Принципы дизайна: как обеспечить визуальное различение и связь элементов за счет сходства и контраста?
• Как Facebook удается обеспечивать доступ к ресурсам сети с мобильных устройств с различными техническими характеристиками?
• 10 полезных уроков по присмотру за масштабируемыми сайтами на платформе Azure.
• Что каждый программист должен знать об операциях с плавающей точкой?
• Continuous Delivery в Яндексе: как разогнать свой цикл разработки, используя только Open Source решения.
• IBM AIX: шпаргалка (набор команд) на (почти) все случаи жизни.
• Как организованы спам-фильтры в Goolge: рассказ инсайдера.
• Десять типичных способов организации web-сервиса: балансировщики, акселераторы, репликация и другие варианты.
• Подробности архитектуры Twitter, позволяющей компании проводить эффективное масштабирование своего хозяйства.
• Martin Fowler: Vagrant + Chef + rbenv = готовое окружение для разработки в среде Ruby.
• Сервис в облаке или выделенный сервер: хорошая вступительная статья о том что принять во внимание.
• HAProxy: область применения в GitHub, Instagram, Airbnb, Docker и Stack Exchange.
• Что такое gridlock и bottleneck: определение и наглядное визуальное представление.
• Лямбда-выражения в Java 8: краткое введение в тему.
• Назад в будущее с Common Markdown – форматом представления структурированного теста и, в частности, программного кода (1, 2, 3).
• Потеря истории изменений в проекте, переход на Git, разъяснение его преимуществ и способов ими воспользоваться.
• Martin Fowler развивает концепцию микросервисов и делает акцент на пререквизитах к такой методологии разработки.
Тестирование и качество ПО
• Тестирование производительности: количественный анализ и несколько прикладных законов.
• Evil Tester предлагает пример сессии исследовательского тестирования.
• Тестирование CLI-приложения в среде Unix: несколько полезных подходов.
• Если продукт постоянно изменяется в значительной степени, внесение изменений в регрессионные автоматизированные тесты может привести их создателей в самые глубины ада для автоматизаторов.
• Alan Page (Microsoft) забивает болт в ISO 29119 и призывает не отделять процесс тестирования ПО от процесса его разработки.
• Десять советов по написанию модульных тестов, которые стоит учесть при их создании на любом языке программирования.
• Google Testing Blog: продолжение рассказа о создании автотеста для WebRTC-вызова в трансляции видео от одного браузера к другому.
• Тестирование сервисов Twitter: производительность, фреймворк, извлеченные уроки, планы на будущее.
• Эмуляторы, симуляторы и удаленная отладка при тестировании приложений для мобильных устройств.
• Michael Bolton следит за процессом эволюции стандарта ISO 29119 (Software Testing) с изрядной долей сарказма. Бонус: вот почему Michael бьет тревогу.
Человеческий фактор
• Недалекому обывателю трудно понять насколько сложно или легко воплотить ту или иную функциональность с помощью информационных технологий.
• 1. Настоящий лидер говорит “A”, когда все вокруг говорят “Б”. 2. Если при этом лидер выглядит сумасшедшим, то всем остальным нельзя выражать свое мнение (бяка, табу).
• Если соискатель видит насквозь недостатки в системе принятия решений, внедренной в потенциальной компании-работодателе, он является отличным кандидатом на вакантное место.
• Больших шишек можно ввести в заблуждение о прогрессе в проекте с помощью большого кегля, определенных цветов и форм, а также символов денежных знаков.
• Эмуляторы программистов берут на вооружение новые технологии и создают на их основе кошмарные продукты.
• Хорошие новости: GPS-устройства помогут выявить места для установки скамеек, а робот Леночка развлечет пассажиров в аэропорту. (1, 2)
• Программирование на техническом интервью: тяжело в учении, легко в бою.
• Дилберту нужно опровергнуть научный факт, заключающийся в том что повышение зарплаты не сделает его счастливым.
• Fear Driven development: как страх влияет на процесс разработки ПО.
• В команде Дилберта все равны, но есть те кто равнее.
• Превышение пессимистичного прогноза продаж не может служить поводом для гордости.
• Шеф рекомендует Дилберту воздержаться от упоминания багов в разговорах с потенциальными клиентами.
• Семь уроков, которые извлек создатель провалившегося стартапа, будут полезны создателям любого стартапа в IT.
• Как будут выглядеть горячие новости, если заменить в них force на horse.
• Microsoft Windows может стать бесплатной вследствие наличия сильных конкурентов на рынке операционных систем.
• Дилберт ставит на место умника, создающего себе реноме дежурными советами.
Эпизоды
Животный страх:
Б1. Я всегда настраиваюсь на самое худшее.
Б2. То, что нас найдут?
Б1. То, что нас никто не найдет.
Смена профессии:
Б. А не стать ли нам тестировщиками? Кто лучше нас знает где мы сидим?
Т. А не стать ли нам разработчиками? Кто лучше нас знает как делать не надо?
Р. А не стать ли нам менеджерами? Кто лучше нас знает как рулить?
М. Мы лучше всех знаем как разрабатывать и тестировать, но в связи с утечкой кадров лишь вакансия бага открыта…
Как избавиться от пользователей:
М1. Пора закрывать наш полубесплатный продукт. Мало прибыли. Надо сосредоточиться на чем-то другом.
М2. Но у нас же миллионы пользователей. Оставить их без поддержки?
М1. Ну зачем же так сурово? Нужно сделать так, чтобы пользователи сами ушли.
М2. Я придумал: каждая новая версия Skype-клиента делает неработоспособной все предыдущие.
М1. Это слишком просто. Нужно невнятное сообщение об ошибке. Скажем, skype can’t connect. Чтоб не догадались!
Всего доброго, до встречи.
Что такое качество программного обеспечения и как его улучшить: теория и практика, задачи и решения, подводные камни и обходные пути.