10 лет

Оказывается, 7 января исполнилось 10 лет с первой заметки в этом блоге. Sellme уже, конечно, не торт:

  • 2005 - 407 постов
  • 2006 - 241
  • 2007 - 227
  • 2008 - 83
  • 2009 - 52
  • 2010 - 56
  • 2011 - 13
  • 2012 - 6
  • 2013 - 2
  • 2014 - 6

Тем не менее, я еще тут. О чем вам рассказать?

Октябрьские ссылки

1.

Илья Бирман пишет серию постов про экономику и государство.

Пересказ книги Man, Economy and State Ротбарда (на английском ее можно бесплатно скачать здесь. Я правильно понимаю, что русского перевода этой книги нет?):

и другие хорошие посты:

2.

Переводы статей Олега Андреева про биткоин.

3.

Дополнительное дополнение

Книга Defending the Undefendable Уолтера Блока (на английском, PDF или ePub бесплатно): почему проститутки, сутенеры, наркодилеры, шантажисты, рекламщики, спекулянты, коррумпированные полицейские — герои и делают полезные для общества дела.

(Русский перевод называется Овцы в волчьих шкурах: в защиту порицаемых).

Уроки английского по скайпу

У автора пособия для учителей и репетиторов Language Burger Games () и книги The Art of Cat Photography, а по совместительству моей жены, появилась возможность набрать еще несколько учеников на уроки английского языка по Skype.

Александра преподает английский с 2001 года, и последние несколько лет – только по скайпу.

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

Как строится урок:

Программу я подбираю индивидуально для каждого ученика, потому что все люди разные и каждому интересно и нужно что-то свое. На уроках я использую любую интересную и полезную информацию из интернета, например: трейлеры фильмов, статьи и видео новостей, информацию из Википедии и т.п. Я, так же, беру материалы из учебников изданий Longman, Macmillan и Oxford. Урок проводится на английском языке, но я перевожу на русский, когда это необходимо для ученика. Я строю урок так, что бы ученик мог максимально использовать свои знания непосредственно в общении, мог понимать информацию и выражать свои мысли на английском.

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

Пишите сюда, чтобы узнать больше и записаться: sasha.zakharova@gmail.com. Стоимость одного урока (1 час 15 минут): 20 евро.

Выучите, наконец, английский нормально!

Как выбрать нишу для бизнеса

Дерек Сиверс в недавнем интервью любопытно ответил на вопрос о том, как выбрать нишу, в которой начинать бизнес. Он сказал, что нужно выбрать такую нишу, в которой у вас будет несправедливое преимущество (unfair advantage).

Несправедливым преимуществом Дерек называет ваш уникальный опыт: такой, какого нет у конкурентов в той же нише. Он приводит в пример CD Baby, музыкальный онлайн-магазин, который он основал в 1997 и продал несколько лет назад за много миллионов денег: его несправедливое преимущество состояло в том, что он 13 лет был профессиональным музыкантом и понимал, в отличие от других многочисленных музыкальных стартапов, что именно нужно музыкантам.

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

Джэйсон Коэн, основатель Smart Bear Software, дал такое определение:

Несправедливое преимущество – это такое преимущество, которое нельзя легко скопировать или купить.

Мне не очень нравится термин, но смысл хороший.

Добавлено (2014-02-21): У Макса Крайнова в блоге написано немного подробнее про несправедливое преимущество.

Три черновика

Только что посмотрел видео, в котором Тим Феррисс и Нил Страусс, авторы бестселлеров, обсуждают написание книг, и вот что нашел полезным.

Вы, наверное, слышали, что тексты нужно писать не сразу на публикацию, а постепенно проходя несколько черновых вариантов. Этому даже учат в школе: сначала пишите черновик, а потом переписывайте в чистовик. Обычно писатели советуют делать несколько стадий редактирования, но я не понимал, в чем именно состоят эти стадии, где граница между ними. Что делать в первом черновике, втором, и так далее? И вот, Нил Страусс подсказал.

Первый черновик – для вас

В первый черновик вы записываете все, что пишется. Когда вы закончите работу над ним, перед вами будет лежать большая куча страниц (образно говоря; скорее большой файл) и на этих страницах будет написано все, что вы хотели сказать. Текст больше не сидит у вас в голове, а перенесен “на бумагу”.

Второй черновик – для читателя

После того, как вы напишете первый черновик, пройдите по тексту и посмотрите как он читается. Исправляйте его так, чтобы читателю лучше читалось. На этой стадии вы убиваете своих “детишек”: вещей, на исследование и написание которых вы потратили много времени, которые вам казались очень важными и интересными, но теперь, когда читаете, вы понимаете, что они не такие уж интересные и выкидываете их.

Третий черновик – для ненавистников

Этот этап многие пропускают. В третьем черновике вы смотрите, на какие недостатки в вашем тексте могут указать критики и люди, которые вас ненавидят; соображаете, какие аргументы они могут использовать и отвечаете на эти аргументы в тексте.

Вот такие три этапа. Они не обязательно должны быть именно тремя черновиками, может быть и десять фактических черновиков. И, хотя Тим и Нил говорили про написание книг, эти стадии можно применить при написании чего угодно. Например, постов в блог.

Кстати, если вы читаете и пишете по-английски, подпишитесь на рассылку I Write Like: Become a better writer, где я ежемесячно делюсь советами экспертов про то, как лучше писать. Скоро выйдет февральский выпуск.

О переусложнении проектов

Переусложненный гамбургер (но, наверное, вкусный)

Не надо начинать большой проект. Начните с маленького тривиального проекта, и не ждите, что он станет большим, иначе вы переусложните его и будете считать этот проект более значимым, чем он есть на самом деле на этом этапе. Или — хуже — вас может отпугнуть объем работы, которую вы себе вообразили.

Поэтому начните с малого и думайте о деталях. Не думайте об общей картине и крутой конструкции. Если проект не решает текущую потребность, он почти наверняка переусложнен.

Линус Торвальдс

Наверняка и у вас было такое: вы придумываете классный проект и начинаете активно продумывать его. Первая стадия продумывания: стоит ли вообще этот проект делать и принесет ли он какую-нибудь выгоду или интерес. Вторая стадия: как воплотить проект в жизнь, и какие препятствия могут попасться на пути его реализации.

На второй стадии я не один раз попадался на удочку сомнения и снова возвращался к первой стадии. Мне кажется, этого нужно избегать.

Препятствия, какие-то недодумки и недоделки не должны возвращать наши мысли в первую стадию (стоит ли делать проект), если, конечно, это не какое-нибудь фатальное препятствие (типа теоремы CAP, если планировали сделать систему со всеми тремя свойствами, или период полураспада ДНК, если хотели клонировать динозавров и сделать Парк Юрского периода).

Помните первый iPhone? Там не было даже копирования и вставки текста! Не знаю, были ли у Apple какие-то задумки о том, как реализовать копирование, но факт в том, что отсутствие этой фичи не отложило и не отменило проект.

Не зря стартаперы говорят про MVP, minimum viable product: просто если не сделать минимально пригодный продукт, можно вообще никакого не сделать. Это же относится и к проектированию, не только к непосредственно исполнению: не усложняйте задачу, придумывая препятствия, которых пока нет, и которых может и не будет никогда.

Sellme.ru умер, да здравствует Sellme.biz!

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

Sellme.ru меняет домен на Sellme.biz. Теперь бандиты не смогут отобрать у меня этот блог, они смогут только закрыть к нему доступ на захваченной ими территории.

Исходники сайта, включая все статьи и картинки, теперь можно скачать с Гитхаба.

Я также включил шифрование по умолчанию, поменял дизайн и планирую, наконец, начать сюда снова писать о бизнесе.

У Sellme.biz появился твиттер, где будут анонсироваться новые посты — @sellmebiz. Зафолловьте его.

Старый домен будет продолжать работать в качестве редиректа на новый пока это возможно. Но, пожалуйста, обновите закладки. Новый адрес: https://sellme.biz.

Mémoires 4

Выпустил новую версию Mémoires, моей программы для ведения персонального дневника на Маке.

Скриншот Мемуарс 4

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

Скачать можно с официального сайта: http://www.codingrobots.com/memoires/ (сайт тоже полностью обновился).

Кстати, я веду тумблер о разработке (на английском): http://codingrobots.tumblr.com.

С наступающим!

Sellme.biz по почте

Так как Google Reader закрывается, а большинство читателей этого блога пользуется именно им для чтения Sellme.biz, хотел напомнить, что можно подписаться на получение новых заметок по электронной почте:

Введите свой email:

(если форма не работает, кликните по этой ссылке).

Я нынче в блог пишу не часто, но не хотелось бы с вами потеряться. Тем более, скоро будет несколько интересных анонсов.

Немножко нового кода

Написал на Go BLAKE-512 (в дополнение к BLAKE-256) и Skein (Threefish тоже). Обе хэш-функции не выиграли SHA-3, выиграл Keccak. Плохо, Keccak в софте медленный.

SipHash! Я рассказывал про SipHash? Это криптографическая функция (MAC): даете ей 128-битный ключ и текст любой длины, она считает 64-битный хэш. Очень быстро работает (> 1 гигабайта в секунду на компе 2009 года), но самое главное, быстро считает хэш очень коротких текстов (8 байт, например). Ее придумали Jean-Philippe Aumasson и Dan Bernstein для того, чтобы победить HashDoS. Ruby на нее недавно перешел и Rust тоже. Если будете писать хэш-таблицу, обязательно используйте SipHash – она почти так же быстра, как MurMurHash или CityHash, но в отличие от них, безопасна (повторяю – криптографическая функция). Люди-то думали, что достаточно впихнуть любое рэндомное число куда-нибудь в функцию, и тогда коллизии невозможно угадать; а Жан-Филиппе с Бернштейном показали, что это не так: коллизии, например, для MurMur можно сделать такие, что они вообще не будут зависеть от seed будь он хоть трижды рэндомным. Так вот, я, конечно же, написал пакет для Go.

А еще я перевел на Go Бернштейновскую криптобиблиотеку NaCl, а потом оказалось, что Adam Langley работал над тем же. Мы объединили мои версии на Go, его ассемблерные версии, он написал новый интерфейс (лучше), и теперь все это дело живет в официальном репозитории go.crypto (документация тут). Если вам надо что-то зашифровать в своей программе, обязательно используйте NaCl. Она в несколько раз быстрее какой бы то ни было нехардварной комбинации MAC с AES, а самое главное, интерфейс – проще некуда.

В go.crypto, кстати, теперь еще живет scrypt, которую я написал в апреле. Scrypt придумал Colin Percival. Если вам нужен хэш пароля, или надо пароль преобразовать в ключ для шифрования, используете scrypt и будете счастливы. А не как LinkedIn, у которого утекли пароли, или Bitrix24, который хвастается тем, что хэширует пароли “двойным MD5”. Интересно, как они пришли к тому, что двойной MD5 лучше, чем, например, пятерной? Хе-хе.

Richard Hipp придумал для прототипа SQLite4 хорошую кодировку для беззнаковых целых чисел. Опять же, я написал пакетик для Go. Смысл кодировки в том, что маленькие числа кодируются в маленькое количество байт, а большие числа – в большее количество байт, но не равномерно, как, например, у гугловского varint используемого в компрессоре Snappy, а оптимизированно под маленькие числа. Если Snappy кодирует число 200 в два байта, то эта кодировка – в один. Кроме того, по первому байту можно определить сколько еще байт в числе, а у Snappy для этого нужно читать байты до финального.

WebP. Помните еще такой формат картинок? Google придумал, Opera использует в “Turbo”. Так вот они теперь поддерживают альфа-канал в lossy картинках и добавили lossless, который сжимает лучше PNG. Я обновил свой QuickLook плагин (это который показывает картинки, если нажать пробел в Finder) – теперь он поддерживает все нововведения.

Еще я написал кучу строк кода для всяких секретных проектов, но пока рассказать о них не могу, потому что секретные проекты часто не релизятся.

Вроде все.

PS. За моим кодом можно следить на GitHub.