Я в интернете

РСС    Джейсон-фид

Есть автоматические трансляции в Тумблер и Же-же. Если не работает, напишите мне: ilyabirman@ilyabirman.ru.

Избранное

Позднее Ctrl + ↑

Принцип изолированной оптимизации

Я начал программировать, когда мне было лет 12, и моим первым языком был Паскаль. Компьютеры тогда были медленными и глупыми. Часто приходилось писать фрагменты программ на Ассемблере, чтобы заставить их работать с хоть сколько-нибудь приемлемой скоростью.

Это время приучило меня думать о производительности. Писать код, который делает лишние или бессмысленные вещи, было очень плохо, за это даже на уроках программирования оценки снижали. Так что к каждому куску программы подсознательно задавался вопрос: не зря ли я загружаю компьютер этой работой? Можно ли её избежать?

Сегодня постоянные мысли об оптимальности сильно мешают жить, увеличивают время на разработку и нередко даже снижают качество кода. Я завидую людям, которые начали программировать сравнительно недавно и сразу получили в своё распоряжение мощные компьютеры и языки высокого уровня. Когда они используют регулярные выражения, у них не возникает мысли, что это катастрофически сложная работа, и что надо по возможности её избегать. Благодаря этому у них быстрее выходят работающие продукты.

Да, фанатичная оптимизация всего и вся по-прежнему нужна в некоторых областях (иначе фиг сделаешь Айфон), просто важно понимать, что не во всех.

Сразу оговорюсь, что я не профессиональный программист, и, возможно, для многих буду звучать изобретателем велосипеда и Капитаном Очевидность. Хоть я и получил хорошее техническое образование, профессионально я занимаюсь дизайном, а программирую я для души (и не представляю, как можно это делать за деньги).

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

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

Допустим, я делаю сайт, и для вывода главной страницы «в лоб» нужно 18 запросов к базе. Поскольку в голове постоянные мысли о производительности, то я начинаю думать, как бы подсократить число запросов. Естественно, сразу же обнаруживаются места для оптимизации. Оказывается, что если запрос №1 вернул меньше 10 строк, то запросы 2—5 можно вообще не делать, а результаты запросов 10—12 будут отличаться от результатов запросов 7—9 на константу. Если же строк в первом запросе получилось 10, то нужно проверить, нет ли среди них строки X, потому что если она есть, то не нужны уже запросы 6 и 13 (а они как раз самые тяжёлые).

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

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

Давайте применим принцип изолированной оптимизации. Напишем наш код из 18 запросов «в лоб» и наплюём на его неоптимальность. Теперь посмотрим на него со стороны. Как можно сделать, чтобы он работал быстрее, не меняя его?

Самое первое, что приходит в голову — это всё закешировать. При всей очевидности этого решения, далеко не всегда выбираешь именно его, ведь оптимизации «прямо в коде» кажутся такими нужными и важными (а с ними и кеширование, глядишь, не понадобится). Тем не менее, результат кеширования — это изоляция оптимизационной части кода от смысловой.

Кеширование, конечно, не всегда лечит. Иногда данные устаревают слишком быстро. Тогда делаем более сложную манипуляцию. Делаем все запросы к базе не напрямую, а через специальную умную функцию, которая знает обо всех особенностях данных, за счёт которых число запросов можно снизить. А наша умная функция уже решит, делать ли настоящий запрос или вернуть данные исходя из своих «знаний» и результатов других запросов. Результат, снова в том, оптимизация изолирована от смысла.

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

Обратите ещё внимание, что я тут не борюсь с преждевременной оптимизацией, я говорю именно о том, чтобы просто отделить одно от другого. Если хочется, оптимизацию можно сделать даже до смысловой части (например, заранее спроектировать какую-то подсистему кеширования) — это не противоречит моему принципу. Главное — отдельно.

Лук щипет глаза

Тёма вот задаётся вопросом «Почему лук больше не щипет глаза?». Не знаю, что произошло с Тёмой, но мне как щипал, так и щипет.

Вообще, у меня глаза к луку имеют какую-то аномальную чувствительность. Когда лук начинают резать через две закрытых двери от меня, моим глазам уже становится плохо. Я всегда стараюсь уйти в самый дальний от кухни конец квартиры, и, в идеале, открыть там окно. А саму кухню после резки лука надо ещё час проветривать, чтобы я мог туда зайти и не умереть.

Да что говорить, у меня даже от зелёного лука (который трава) глаза болят, хоть и не так сильно.

Чай или кофе

Я всегда пью чай и никогда не пью кофе. Чё-то не понимаю, в чём фишка кофе.

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

Ещё у «попить кофе» есть оттенок «в перерыве между делами, не слишком затягивая». Поэтому даже если я хочу встретиться с другом, скажем, в Москве, когда я прилетел на 3 сверхнасыщенных дня, то это снова будет называться «попить кофе», потому что чай-то некогда ведь пить.

Лив и лайв

Люди массово путают английские слова live и live — что немудрено, ведь пишутся они совершенно одинаково. Давайте разберёмся.

Live, который «лив» — это глагол, означающий «жить». I live in Chelyabinsk. Live, который «лайв» — это пригалательное, означающее «живой». Когда на Евроспорте в углу написано «Live» — это «лайв», а не «лив». Если услышите, что кто-то называет Лайвджорнал «Ливджорналом», сразу передавайте привет.

Пятая симфония Малера

Пятая симфония Малера — кажется, пока что, самое сложное, что мне удалось распробовать из классики. Серьёзную преграду представляет хотя бы то, что она в пяти частях и исполняется 70-75 минут (хотя, как я понял, для Малера это нормально, есть симфонии и подлиннее). Расскажу о том, как я прошёл путь от «хрень какая-то длинная и несвязанная» до полного восторга.

Я нашёл её на Ютюбе в исполнении Валерия Гергиева на Би-би-си-Промс в Лондоне:

Видео больше не играет на Ютюбе, но есть в «Одноклассниках»

Забегая вперёд скажу, что это лучшее исполнение, которое мне доводилось слышать, рекомендую вам именно его, хоть это и Ютюб.

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

Меня поразило, насколько мгновенно публика начала аплодировать в конце. Я думал: неужели все они знают, что именно на этом месте симфония заканчивается? Знают наизусть более чем часовое произведение?

Переслушал финал несколько раз и понял, что фрагмент от 1:08:28 и до конца (в этом видео) мне очень нравится. Потом я расслышал, что к этому фрагменту Малер начинает готовить нас уже в 1:07:38. Вот он, решающий «заход» на финал, подумал я; слушать симфонию надо отсюда! Какая красивая, торжественная музыка! Потом я дошёл до 1:06:01. Оказывается, уже здесь начинается красота!

За эти последние 2-3 минуты происходит столько всего совершенно разного, что потребовалось пара десятков прослушиваний, чтобы всё это связалось, запомнилось и улеглось в голове. Теперь я уже чувствую, что оттуда ничего не выкинешь и знаю каждое мгновение. Теперь я понимаю, что, конечно, начал бы аплодировать вместе со всеми после последнего аккорда, будь я там.

Так я и исследовал 5-ю часть путём отмотки всё дальше назад. И параллельно пошёл читать о симфонии дальше.

Узнал из Википедии, что самая-то известная часть в симфонии — четвёртая (Адажиетто, начинается в 45:11 в этом видео), и что она — один из самых исполняемых фрагментов музыки Малера. Начал её слушать — действительно красивая. Вообще, я такое медленное не люблю, но тут правда чудесно, особенно ближе к концу, где начинаются совсем неожиданные, но такие красивые переходы. То есть до 48:58 идёт ещё более-менее предсказуемая сладкая история, а вот дальше всё усложняется. Самые волшебные места — 52:45...53:15 (но надо до него дослушать хотя бы с 51:20, не перематывая, иначе непонятно), 53:51...55:10 (54:22, 54:33 — ого!).

Дальше я пошёл тем же путём. Как-то обратил внимание на то, что третья часть тоже заканчивается очень красиво и энергично (может, просто промахнулся при перемотке в четвёртую). Фрагмент с 44:12 о 45:11 — разве не сказка? Постепенно 44:12 превратилось в 43:54, и в 43:08, затем в 42:27, потом в 41:55... Короче, третью часть я разобрал так же, как пятую, с конца.

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

Потом я где-то вычитал, что лучше всех Малера исполняет Рикардо Шайи. Скачал Шайи, послушал, понравилось, но Гергиев всё-таки нравится больше. Акценты у Гергиева стоят именно в тех местах, где мне нравится — а может это просто потому, что я именно его услышал первым. В итоге исполнение Шайи сохранил, но всё-таки не поленился и Гергиева вытащить из Ютюба, сконвертировать в мп3, разделить на части и прописать теги. Позже мне ещё встретился вариант Даниэля Баренбойма — там вообще какой-то кошмар невозможный, не слушайте его.

Естественно, не всякий раз я симфонию слушал, перематывая в конец; иногда всё-таки начинал с начала. И как-то само собой выяснилось, что первую часть я уже неплохо знаю, хотя так целенаправленно, как пятую, четвёртую и третью я её не разбирал. Забавно, что начинается она с явным намёком на пятую же симфонию Бетховена.

В общем, сейчас у меня самое белое пятно — это вторая часть, но это уже не мешает слушать симфонию целиком и наслаждаться. Чего и вам желаю.

Вопросы и ответы о типографской раскладке

О типографской раскладке приходит куча писем с вопросами. Я собрал самые популярные в одном месте. Буду вести здесь такой ФАК.

Вообще

— Как написать знак многоточия?
Этот знак есть в раскладке с первой версии на Альт+/ (это кнопка, где в русской раскладке живёт точка). На картинке его нет, потому что его не рекомендуется использовать (потому что на самом деле такого знака не существует в природе, и его использование — надругательство над здравым смыслом).

— Как пользоваться акцентами?
Все акценты живут на Альт+Шифт+символах (например, на цифре 6 живёт крышечка, а на двоеточии — умляют). Чтобы приделалть любой такой акцент символу, который вы только что ввели, нужно нажать Альт+Шифт и, удерживая их, два раза нажать на кнопку с нужным акцентом. Если же вы хотите ввести букву сразу с акцентом, то нужно сначала нажать Альт+Шифт+акцент, а потом нужную букву. Но имейте в виду, что букв сразу с акцентом мало, и этот способ может не сработать. Если вам нужно, скажем, просто поставить ударение, используйте первый способ. Если вы пишете немецкое слово, и вам нужно написать букву ü, то второй.

— У меня не работает что-то в Пунто-свитчере
Пожалуйста, напишите разработчикам Пунто-свитчера.

— Планируется ли украинская версия?
Уже не раз кто-то делал, выкладывал и потом убирал. Наверняка можно найти что-то и сейчас. Или сделать самому. Павел Урусов предлагает попробовать версию «Гагаджета» (сделана на основе Раскладки 2.0).

— Хочу вводить украинские буквы ї, є и ґ с обычной раскладки
Я согласен, что не очень справедливо, что всякие хитрые французские, немецкие и прочие буквы Раскладка вводить даёт, а украинские — нет. Но пока мне нечего анонсировать в этой связи.

— Хочу сделать раскладку на базе твоей, но как ты к этому отнесёшься?
Я автор схемы расположения символов, пояснительных картинок, названия «Типографская раскладка» и дистрибутивов для Мака и Виндоуса. Выдавать моё за своё нельзя. Но если вам просто понравилась идея сделать раскладку под свои нужды, и вы её сделаете и назовёте своим именем, я не вижу в этом ничего плохого. Конечно, если вы измените пару символов, но при этом даже не сошлётесь на меня, это будет выглядеть не очень красиво.

Мак

— Нафига мне Раскладка, если все эти символы и так можно ввести с клавиатуры?
Ну, не все, да и у меня всё намного логичнее расположено, но если вы уже привыкли к маковскому расположению, то, очевидно, вам моя раскладка ни к чему.

— Куда переехали запятая, точка и всё такое?
Никуда не переехали. Наверное, вы редкий человек, кто на Маке пользовался «стандартным» расположением знаков препинания на месте цифр, как на печатных машинках. Простите, я не поддерживаю это. На моей раскладке знаки препинания расположены как на Винде и на маковской раскладке «Russian — PC». Если вы не хотите использовать такое расположение знаков препинания, то моя раскладка вам не подойдёт.

— Как отключить раскладку U. S., которая мне теперь не нужна?
Отвечают Артём Поликарпов и Женя Степанищев. Используйте их решение на свой страх и риск. Если вас бесит, что раскладка U. S. иногда случайно включается, то я когда-то придумал воркэраунд.

— Как удалить старую типографскую раскладку?
Зайти в папку /Library/Keyboard Shortcuts и стереть оттуда 4 файла старой раскладки (две раскладки и две иконки).

— А где буква „ё“?
Буква „ё“ слева от единицы в ряду цифр. Это работает на русских клавиатурах, а с версии 3.0 — ещё и на американских. Возможно, у вас какая-нибудь ещё экзотическая клавиатура, но тогда я не знаю, что с этим делать. А если вы привыкли к „ё“ слева от Энтера, то придётся переучиться (или использовать другую раскладку), ту „ё“ я не поддерживаю.

— Переключение окон по ⌘` не работает
Тут всё то же, что про букву „ё“.

— У меня не работают шорткаты по-русски в Фотошопе и Ворде
Установите версию 3.0, всё будет хорошо. Я сначала выложил немного покоцанную сборку, и она по прежнему не работала у некоторых ребят. Скачайте самую последнюю с сайта, должна работать.

— Последняя сборка версии 3.0 выдаёт ошибку «cp: ... No such file or directory»
У вас примонтированно одновременно несколько ДМГ-образов с раскладкой. Отмонтируйте всё и запустите последний-распоследний инсталятор.

— У меня не работают шорткаты в Хроме
Пока не знаю, что там с Хромом, у него какие-то свои тараканы. Может быть, когда-нибудь и его раскушу.

— В версии 3.0 не работает длительное нажатие в некоторых приложениях
Да.

Виндоус

— Нафига мне Раскладка, если все эти символы и так можно ввести с клавиатуры?
Если вы помните наизусть альт-коды всех символов, и у вас нет ощущения, что это издевательство над здравым смыслом, то моя раскладка вам ни к чему. Однако практика показывает, что только после перехода на неё люди начинают реально пользоваться всеми клёвыми символами (даже если до этого прекрасно знали их коды).

— Как удалить из списка раскладок стандартные, которыми я больше не пользуюсь?
Нужно, чтобы отключаемая раскладка не была выбрана как раскладка по умолчанию. Ещё некоторые версии Виндоуса не могут отключить раскладку с первого раза (после закрытия окна настройки клавиатуры раскладка вдруг возвращается в список) — в этом случае нужно повторить попытку, и всё получится.

— Почему сочетания Контроль+Альт+буквы вводят символы из раскладки?
В Виндоусе есть два режима работы клавиатуры — когда левый и правый Альты равнозначны и когда правый Альт является синонимом сочетания Контроль+Альт. Поэтому единственный известный мне способ повесить раскладку на правый Альт — это использовать второй режим. Так что сочетания с правым Альтом срабатывают также и по Контроль+Альту. Я не знаю, как это победить.

— Я привык жать Альт+Энтер для разворачивания видео на весь экран
Чаще всего люди в этой комбинации используют правый Альт, и после установки раскладки оно перестаёт работать, потому что раскладка использует второй режим (см. предыдущий вопрос). Могу только предложить переучиться на левый Альт, как это сделал я, когда ещё пользовался Виндоусом.

Другие устройства и системы

— Хочу раскладку под Линукс, Юникс, Убунту и ФриБСД
Что бы это всё ни значило, делайте и распространяйте. Раньше я обещал поставить ссылку со страницы раскладки на версию для чего-то такого, но больше не обещаю. Дело в том, уже три или четыре раза я это делал, а потом мне писали, что у меня на странице дохлая ссылка. Видимо, в мире странных операционных систем такое отношение нормально, но мне это надоело.

— Будет ли типографская раскладка для Айфона и Айпада?
Под эти устройства пока можно писать только отдельные приложения, а клавиатура — это системный элемент, который нельзя изменять. Если в будущих версиях Ай-ОСа Эплы вдруг дадут возможность разработчикам создавать свои клавиатуры, я подумаю о том, как ей воспользоваться. Делать через джейлбрейк я не буду.

— Хочу раскладку под Андроид и Виндоус-фон
Делайте!

Список пользователей и спонсорство

— Как попасть в список пользователей?
В список «Раскладкой пользуются» с удовольствием добавляю всех желающих. Пришлите мне письмо с вашим названием и, если нужно, ссылкой на сайт. Моим ответом на ваше письмо будет добавление ссылки (обычно в течение 2-3 месяцев). Буду рад ответной ссылке.

— А как выглядит спонсорство?
Я представляю себе это как большой красивый логотип наверху страницы раскладки (ну, как здесь). Типа, «Фирма „Дося“ представляет». Спонсором не может стать студия дизайна. Срок, цена, другие условия — предмет для обсуждения. Пишите.

Курс для iOS-разработчиков

«Злые марсиане» попросили вне графика пропиарить мастер-класс про разработку под Айдивайсы, он будет в эти выходные. Текст предоставлен «Марсианами».

Реклама. Текст предоставлен клиентом

Седьмого и восьмого июля Any Void и ZeptoLab, создатели Cut The Rope, проведут мастер-класс по iOS-разработке.

Курс рассчитан на уже практикующих разработчиков. За два дня ребята прокачают участников в двенадцати темах, среди которых:

  • приёмы работы с git;
  • работа с GCD, асинхронность и многозадачность в iOS;
  • работа с сетью и данными: core data, iCloud, push notifications, пул запросов, кэширование;
  • работа с интерфейсом приложения: CoreGraphics, CoreText, CoreAnimation, типовые приёмы работы с навигацией в приложении;
  • тестирование, отладка, деплой и сбор статистики приложений.

Посмотрите полную программу курса на его промо-странице.

Четыре инструктора проведут курс для группы из восемнадцати участников. Осталось всего два места, спешите записаться на курс и стать ещё круче!

Собачники

Собачники — это беда.

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

То есть тут как с курильщиками: есть искренняя и неубиваемая уверенность, что всё окей и твоё увлечение никому не мешает.

Когда ко мне приближается собака, а я отстраняюсь, тупые хозяева спешат сообщить: «да вы не бойтесь, она не укусит!» Вашу мать, да ещё бы она меня укусила, я бы тогда вообще вас всех убил. Она, блин, со своими слюнями и шерстью ко мне лезет, а я-то чистый, уберите это от меня. Вам нравится её гладить, а потом этой рукой бутерброд есть, ну ради бога. Просто нужно хоть на секунду включить мозг и понять, что нормальному человеку это неприятно.

А ещё есть особый сорт тупняка. Собаки же всё время лают (особенно мелкие шавки, на которых если просто посмотреть — они отбегают сразу на сто метров). Как они блин не срывают голосовые связки себе? Ну так вот, проходишь ты мимо такой фигни, она начинает лаять. И тут хозяева начинают переживать, что их фигня орёт на мирного прохожего, и уже сами лают на неё: «Ну-ка тихо! Ты чего разлаялась! Тихо кому говорят!». В результате ты слышишь двойной лай, причём если собаке его ещё можно простить (что с неё взять), то хозяин — ну прям выбешивает! Ты же, гад, прекрасно знаешь, что она не заткнётся, пока сама не захочет, ну молчи хоть ты сам!

Кстати, некоторые говорят, что я не люблю животных. Я не представляю, как можно любить или не любить животных. Животные — это данность, чего к ним чувства испытывать? Это всё равно, что гравитацию не любить. Все отрицательные эмоции в связи с животными у меня направлены исключительно к плохим хозяевам. Очевидно, что я за всю жизнь причинил меньше вреда животным, чем любой собачник.

Рутинную работу сделает «Ассистент»

Мне написал Дмитрий Никитин и попросил рассказать о сервисе «Ассистент».

Реклама

Я не был знаком с сервисом, и Дмитрий дал ссылку на рекламный пост у Лебедева. Может, вы его даже видели. Проблема там для меня — в отсутствии конкретных примеров, о чём я сразу и написал Дмитрию. Там лозунги: «личный помощник на расстоянии», «незаменимый помощник на работе и в жизни», «работает, оставляя больше времени вам». Я сказал, что мне не приходит в голову, как бы я сам мог воспользоваться сервисом. Какие, например, из моих задач, я мог бы поручить ассистенту, который ничего обо мне не знает и находится в другом городе?

Первый пример был про летние отпуска — подбор туров, удобных стыковок, отелей с вайфаем. В общем вся та фигня, которую я ненавижу сам делать, готовясь к любой поездке. Это всё можно поручить ассистенту. А главное — перевесить ему на время отпуска телефон и рабочую почту, надавать всяких заданий (например, пинать кого-нибудь, чтобы работа не стояла).

Потом Дмитрий стал присылать примеры задач, которые настоящие люди поручают «Ассистенту», чтобы я составил представление. Я думал-думал, что с ними делать, и предложил их и опубликовать, ведь там самый сок и жизнь.

Вот несколько хороших примеров (детали немного изменены на всякий случай; в кавычках — цитаты из писем Дмитрия):

  1. Сделать подборку скриншотов устройства кучи конкурирующих сервисов. Это вот дизайнерам. Терпеть не могу регистрироваться на десятке левых сайтов, просто чтобы понять, как у них что-то работает.
  2. Запросить коммерческие предложения у кучи компаний, составить сравнительную ценовую таблицу и прислать. Похожий вариант.
  3. Найти автозапчасть. Популярная задача, муторная. «Было такое, что клиент хотел, чтобы ему привезли на дом без всякой предоплаты, на доверии и при первой же доставке (чтобы думать вообще не приходилось). Удалось на словах уговорить один из магазинов, и клиент всё получил, доставку делали на такси. Оплата, кажется, чуть ли не Яндекс.Деньгами была — тоже как-то договорились (но это не значит, что мы можем договориться всегда и везде, разумеется)».
  4. Найти переводчика в пригороде Вены, который несколько дней будет ездить с клиентом и переводить общение с риэлторами. Это случай, когда я даже не сразу понимаю, как бы я подступился к выполнению этого задания.
  5. Нужно перевезти собаку родственникам в другой город. Узнать как это сделать, кто может помочь и за сколько, как организовать в целом. Я терпеть не могу собачников (кстати, надо будет про это написать), но кейс понятный.
  6. Найти и скачать несколько десятков специфических документов. Если какие-то документы только в платном доступе, купить. Прислать архив и счета одним письмом.
  7. Просто выполнять дела из моего туду-листа. То есть, например, я веду туду-лист в обычно эпловском Ремайндерсе, расшариваю один из списков, и ассистент выполняет дела оттуда. Даже не надо специально ему их поручать.

На сайте «Ассистента» показывают тарифы — там около 400 рублей в час, в зависимости от того, сколько часов покупаешь. Средний чек пользователей получается 100-200 долларов в месяц (в админке показывают историю списаний). Например, задание найти переводчика обошлось клиенту в 420 рублей (за час нашли конкретного человека, готового по звонку выезжать в пригород).

Если деньги кончились на середине задания, его на полпути не бросят. С постоянными клиентами работают в кредит. Неиспользованные деньги могут вернуть (но за всю историю это приходилось делать один раз).

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

ya-ot-birmana

Ссылка: asst24.ru

Бонус-трек. Уже когда заметка была готова, Дмитрий написал:

Блин, ещё вспомнил крутую задачу — клиент из одного города попросил сделать по нужным ему параметрам фотографии строящегося объекта, где он купил недвижимость, в другом городе — интересовал процент готовности, общая стадия строительства. Мы, честно говоря, немного задержали сроки задачи, но всё сделали по удалёнке :-)

Типографская раскладка 3.0

Приветствуйте новую типографскую раскладку!

Типографская раскладка 3.0

В третьей версии — новые символы и акценты для французского, немецкого и испанского языков:
— перевернутые ¡ и ¿;
— буквы ß и ẞ;
— новые акценты: седиль (ça va), кружок (ångström);
— буллит • и знак ø диаметра (специально для Регуляра);

Главная радость для пользователей на Маке — работа русских шорткатов в Фотошопе и Ворде при выбранном русском языке. Кроме того, на Маке теперь поддерживается фича Press and Hold, появившаяся во Льве. Это когда жмёшь на букву, например, s, чуть дольше обычного, и тебе предлагают варианты: ß, ś, š. Очень удобно для тех, кому такие экзотические буквы нужно вводить лишь эпизодически. Ещё на Маке теперь тоже есть инсталлятор — не придётся руками копировать раскладки в труднодоступные папки. Да, ещё порадуются любители покупать Макбуки в штатах: буква „ё“ у них будет работать слева от единицы так же, как у белых людей. И сочетание ⌘` тоже, да.

В моей раскладке всё очень логично. Буква ß живёт на кнопке B, потому что похожа (а S уже занята знаком параграфа). Буллит живёт на кнопке M, потому что «маркер», (а B уже занята). Седиль живёт на букве Z, потому что и похожа, и исторически это и есть z (да и C уже занята). Кружок живёт на букве R, потому что ring (да и O уже занята). Расположение перевёрнутой испанской пунктуации и диаметра вообще не требует объяснения.

Отдельная благодарность Джону Брауни (за победу над Фотошопом) и Шурику Бабаеву (за инсталлятор для Мака).

Качайте, пиарьте, пользуйтесь. И, конечно, становитесь спонсорами (если вы не дизайн-студия).

Ранее Ctrl + ↓