Интересное-10

11 техник, которые помогут сосредоточиться на работе – статья об оптимизации продуктивной деятельности. Некоторые вещи вполне очевидны, однако отмечу следующие пункты:

  • Планирование деятельности на следующий день – вещь нужная и важная. Сделав это, получите довольно точный набросок фронта работ на завтра, а значит можно рассчитать его объём и затрачиваемое время. Польза несомненна.
  • Взвешивайте каждую активность. Тут очевидно повышение степени осознанности своих действий.
  • Станьте труднодоступным – хороший пункт, существенно повышающий личную эффективность, не позволяя отвлекаться на несущественные вещи, но подходит, очевидно, не для всех и не всегда

Иран ♥ Telegram – небольшая познавательная статья о функционировании Telegram в Иране. То, как используется этот мессенджер в Иране, напоминает китайский WeChat. Всё-таки текстовый обмен информацией – штука универсальная и эффективная, кто бы что ни говорил.

А вот тут человек провёл эксперимент, работая по 14 часов в день на протяжении месяца и анализируя свою продуктивность.
Интересные и вполне очевидные моменты свёл в следующий список:

  • Кофе, выпитое во второй половине дня, незаметно снижает качество сна. В итоге, мы плохо спим и чувствуем себя разбитыми на следующее утро.
  • Таймер — отличный инструмент. Я очень часто забываю про него или ленюсь, но точно знаю, что с ним работаю эффективнее и устаю меньше. После 25-минутного спринта я даю отдохнуть глазам и мыслям. Бывает, что во время перерыва я осознаю, что работаю над маловажной задачей и после меняю приоритеты – тут, похоже, речь о технике Pomodoro. Подтверждаю – это работает.
  • Для ведения списков больше подходит обычный бумажный блокнот. Да, его нельзя установить на телефон и компьютер. Но он отлично подходит для планирования статей, проектов – в моём случае это тоже верно. Есть хорошая статья про бумажное планирование, которую я ранее уже приводил: Два блокнота, ручка, Evernote и TextWrangler
  • Подниматься рано — эффективно, когда у вас много работы и необходимо время сосредоточиться, но необязательно и иногда для здоровья можно и нужно подольше поспать.
  • Тренировки повышают продуктивность в работе – однозначно так. На себе уже убедился, т.к. занимаюсь в тренажёрном зале + делаю пробежки.

Simple testing can prevent most critical failures . Данная статья показывает ценность тестов при использовании сложных распределённых систем с интенсивной нагрузкой – Cassandra, HBase, HDFS, MapReduce, Redis.
Итоговая мысль статьи приведена уже в самом её начале:

Almost all catastrophic failures (48 in total – 92%) are the result of incorrect handling of non-fatal errors explicitly signalled in software.

Это общая проблема для всех сложных систем, и теме обработки ошибок посвящены сотни статей и целые разделы в книгах о проектировании архитектуры. В реальных проектах часто ошибки не обрабатывают и скрывают, и Erlang с его подходом let it crash мне видится очень грамотным и зрелым решением.

Мораль статьи, которую я для себя вынес – всегда пишите тесты, улучшая покрытие, по возможности используйте практики TDD. И не забывайте о логах и сборе метрик.

P.S. Судя по таблице, приведённой в статье, качество кода СУБД Cassandra весьма и весьма высоко. И действительно, я тоже это подтверждаю, т.к. несколько месяцев назад изучал данный код, разбираясь с некоторыми неочевидными вещами, связанными с атомарностью операций в этой СУБД. Cassandra – редкий пример для Java, когда крупный и сложный проект имеет качественный код.

The Myth of RAM (в четырёх частях)
Серия статей об оперативной памяти, о том, что ожидать быстродействия O(1) от RAM – ошибка, и что вопросы про O-нотацию для сферических алгоритмов в вакууме на интервью – чисто теоретическая вещь, показывающая разве что знание раздела CS, но не более того.
В реальности нужно учитывать многоуровневые кеши, дающие своё latency:

Modern CPUs spend most of their time waiting for RAM. This is why we have the many layers of cache.

Кстати, это неплохая статья “на поспорить” с любителями почесать своё ЧСВ вопросами про O-нотацию. 🙂