Поддержите заявку на русский Stack Overflow
Proposed Q&A site for Russian speaking professional and enthusiast programmers.

вторник, декабря 18, 2012

Программисты ненавидят open space

Тревожные новости приходят со всех фронтов. Программистов активно сажают в open space даже в тех компаниях, где это раньше не практиковалось.  Может кто-то книжку написал и она стала новой религией? А заветы Спольски забыты?

Краткая справка для тех, кто случайно не знает, что такое open space - это огромная комната без каких-либо перегородок.

Update: поскольку у людей возникли вопросы по поводу open space - вот вам картинка отсюда. Одна команда (человек 10) в одной комнате, где все друг друга знают - это не open space.



Объяснение этому безобразию всегда одно и то же. "Мы делаем это чтобы программисты лучше коммуницировали". Я всегда думала, что программисты должны программировать. Если мне нужно с кем-то поговорить - ну загляну я к коллеге в соседний офис, пройду пару метров.

Отношение программистов к этому однозначное - open space все люто ненавидят. Кьюбиклы вспоминают с нежностью. Работать в open space невозможно, слишком шумно, сложно сосредоточиться. В open space вы узнаете о своих коллегах сильно больше чем хотели. Вы полностью в курсе, что у Васи напряженные отношения с тещей, что Оля любит бормотать когда работает, и что Максим коммуницирует ну просто без остановки и совершенно невозможно заткнуть этот фонтан красноречия. А вон в том углу ребята поют - день рождения у кого-то. Поэтому люди работают либо рано-рано утром, либо сидят на работе ночами. Либо увольняются (как вариант - не идут работать в open space).

Пока единственное разумное объясение рассаживания программистов в open space, которое я смогла придумать - так дешевле на первый взгляд. Но интересно подсчитать насколько при этом падает производительность.

Дорогие друзья! Если вы работаете (работали) в open space, опишите свои ощущения. Особенно интересно послушать людей, которым это нравится. Я пока ни одного не встречала.

понедельник, ноября 26, 2012

Что такое TCP Incast

TCP Incast - неприятная проблема, возникающая в датацетрах, связанная с работой протокола TCP.

Возникает при следующем сценарии: некий сервер шлет запрос кластеру машин. Все эти машины ему одновременно отвечают. Ответ может быть довольно большой, несколько десятков килобайт. Эти килобайты доходят до свитча, за которым находится наш кластер. Свтич, как это сейчас модно, самый обычный. И буфер у него небольшой. Та часть данных, что в буфер не влезла, будет сброшена. Протокол TCP гарантирует доставку, так что все потерянные пакеты будут посланы еще раз. Вопрос когда. Стандартный RTO (retransmission timeout) - 200 ms. Для какого-нибудь облачного сервиса это много. В результате получаем латентность, наша распределенная система работает слишком медленно.

Здесь описание TCP Incast с правильной картинкой: TCP Incast and Cloud application performance
Еще одно хорошее описание: Fine-grained TCP Retransmissions

Как с этим можно бороться. Простой и действенный способ - уменьшить RTO до 1 ms. Еще можно изменить протокол TCP: Data Center TCP (DCTCP)

Еще пара работ с анализом проблемы с красивыми картинками:
Understanding TCP Incast Throughput Collapse in Datacenter Networks[.pdf]
Safe and Effective Fine-grained TCP Retransmissions for Datacenter Communication[.pdf]

воскресенье, ноября 25, 2012

Несколько крупных IT компаний договорились не переманивать программистов

Обсуждаемая новость последних дней - Пакт о ненападении: Parallels договорилась с «Яндексом», «Касперским» и другими не хантить программистов.

Очень странное решение. Во-первых, оно дает преимущество компаниям, которые в данной инициативе не участвуют.
Во-вторых, интересно, насколько это вообще легально и что по этому поводу думает ФАС.

Программисты недовольны, что ожидаемо. (На недовольных программистов можно посмотреть, например, тут)

среда, ноября 21, 2012

Статья Storage Layout of Polymorphic Objects

Начинающим С++ программистам часто бывает непонятно каким образом и где хранятся виртуальные функции. Статья Storage Layout of Polymorphic Objects рассказ в картинках о том, как будут размещены поля и виртуальные функции объекта, рекомендую.

via Code_Analysis