Алексей Махоткин

домашняя страница

Подборка текстов по копирайтингу

37signals: “On Writing: How Conan wrote his pitch-perfect “People of Earth” letter

Jason Fried: The class I’d like to teach

Колесник: До и после: техника создания качественных текстов

Groupon secret copywriting guide

Александр Амзин: Интернет-журналистика 11.07: вышла в виде книги: http://www.ozon.ru/context/detail/id/6754128/

Creatiff.ru: Колонка Игоря из Санкт-Петербурга

Давыдов: Как объявления о знакомствах поднимают продажи

Ogilvy: How to create advertising that sells

BBC Style Guide

The Economist Style Guide

Ролан Барт “Нулевая степень письма”

Ролан Барт “Мифологии”

Стивен Кинг “Как писать книги”

Соколов-Митрич: Мастер-класс, соображение 35-е

18.06: Влад Балин “Миф о документации, продолжение”

27.06: Seth Godin “Writing naked (nakeder than Orwell)”

11.07: “Писательство есть соблазнение”

20.07: natashav: «Язык как отражение отношений между медиком и пациентом» http://natashav.livejournal.com/408622.html http://natashav.livejournal.com/408840.html http://natashav.livejournal.com/409323.html http://natashav.livejournal.com/409505.html

13.10: Jason Fried: “Questions I ask when reviewing a design”

16.10: Wadsworth constant

25.12.2011-21.01.2012: Макс Пастухов о сейлз-леттерах http://maxpastukhov.com/142 http://maxpastukhov.com/475 http://maxpastukhov.com/463 http://maxpastukhov.com/622 http://maxpastukhov.com/books/sales-letter-tutorial

27.01.2012: Анатолий Левенчук «Техника написания больших текстов»

27.01.2012: Мильчин “О редактировании и редакторах”

03.02.2013: Дмитрий Давыдов «Продвижение условного SaaS на запад»

11.02.2013: xkcd: космическая ракета, описанная словарем “1000 самых распространенных слов английского языка”

08.03.2013: “Since copywriting is interface design…”

04.06.2013: Simon P. J. “How to write a great research paper”

Устройство сетевых серверов

UNIX-подобные операционные системы обеспечивают стандартный API для приема и обработки TCP-соединений, который называется Sockets API. Через него также можно отправлять и принимать UDP-пакеты, но в этой книге мы не будем касаться этого вопроса.

Для начала рассмотрим типичные сценарии, относящиеся к обработке TCP-соединений (поверх которых работает львиная доля протоколов, в первую очередь HTTP) на стороне сервера (inetd, Nginx, Apache и множестве других). В этой главе мы опишем простейший базовый случай (один процесс на соединение), pre-fork модель, а также FSM-модель.

Использование GNU Make для многотредовой обработки файлов

Стандартная задача — есть поток входящих файлов, на их основе надо создавать результирующие файлы. Входящих файлов десятки и сотни, постоянно появляются новые. Процессоров на машине много. Хочется сделать просто, надежно, с использованием всех процессоров и с минимальными усилиями. Неоднократно оказывалось, что хорошим инструментом для решения этой задачи может стать старый добрый GNU Make.

Художественная хирургия

Моя любимая история о рефакторинге продакшена из книги Е. В. Кудрявцева «Техника реставрации картин», Издательства Государственной Третьяковской Галлереи [sic!], Москва, 1948 год.

[Partial attacks] с утра весь день я открываю кассу каждые десять минут и перебираю вчерашнюю выручку — шорох и звон успокаивают. дверь с грохотом распахивается, дрожит стекло и меня снова охватывает сострадание: я слышу знакомый запах старого немытого больного тела, засохшей крови, трясущихся рук, перегара, слезящихся глаз, корицы, раскаленного стекла, яблок, соли, железный привкус во рту, тусклая зарешеченная лампа в длинном пустом коридоре, в моих легких уже много лет гниёт болотная вода, и стая птиц снимается с проводов, напуганная далеким взрывом.

Engineering/DevOps блоги

Во-первых, агрегатор разнообразного контента, сфокусированный на scalability: HighScalability.com.

Во-вторых, блоги крупных технологических компаний:

В-третьих, также рекомендуется мудрый твиттер DEVOPS_BORAT.

Номер ревизии в Git

В Subversion есть полезная в некоторых случаях вещь — монотонно увеличивающийся номер ревизии.

Возможно, я предпоследний, кто об этом догадался, но чтобы симулировать его в Git, нужно воспользоваться командой

git log --pretty=oneline | wc -l

которая выдаст число коммитов, предшествующих текущему.

Чтобы добавить к этому номеру уникальность, можно конкатенировать его с текущим sha1 — тогда на разных ветках будут разные номера ревизий.

Конечно, эта схема будет давать сбой при некоторых играх с перезаписыванием истории.

Bash History в терминале Mac OS X

Для Mac OS X оказалось очень удобно поместить в ~/.bash_profile две строчки:

export HISTFILE=~/.bash_history-`tty | sed -e 's/\/dev\///'`
export HISTCONTROL=ignoreboth

Первая строчка делает так, что у bash’ей из разных табов стандартного Terminal теперь будут раздельные файлы с историей команд.

Вторая строчка делает так, чтобы в history не сохранялись а) команды, начинающиеся с пробела (полезно для так или иначе опасных команд) и б) дублирующиеся команды.

Теперь после рестарта компьютера и открытия терминала мы получаем полностью сохранившийся контекст: текущие каталоги, выдачу команд до перезагрузки, а также полную историю каждого окна.

Полезный пример использования Git Stash и Git Diff

В посте ”The second-order-diff Git trick” излагается полезный пример использования git stash.

Вносим массовые изменения в дереве. Если все ок, то делаем git commit, если не все ок — то делаем git stash (а вовсе не git reset, как сделали бы многие). Состояние дерева откатывается до исходного. Вносим исправленные массовые изменения в дереве. Теперь мы можем сказать git diff stash@{0} и увидеть, чем отличаются друг от друга два результата массовых изменений.