#zoom

10 постов
пост №2048ИИ и машинное обучение

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

Окно «Zoom workplace» с пустым календарем (ну не пользуюсь я им!) постоянно вылезает и занимает место на экране, закрывает полезную информацию. Убрать его совсем нельзя — это ведь по сути маркетинг, «давай начинай пользоваться». Меня принципиально не устраивает, что мне пихают рекламу в рабочее пространство.

Я знаю, что технически точно можно написать маленькую программку, которая будет мониторить события операционной системы, ловить появление ненавистного окна и закрывать его автоматически. Но между «теоретически возможно» и «вот сделал», много часов разработки (да и не программировал я для macOS я никогда).

А тут с помощью клода я сделал скрипт для hammerspoon, который идеально решает задачу. Как только окошко появляется — оно мгновенно исчезает. Красота!

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

С другой стороны, если бы не клод, то я не стал бы тратить целый час на это копание, а просто смирился.

А потом я попросил нейросеть перевести всю логику скрипта в маленькую программку на Swift, сделал минимальный интерфейс, чтобы можно было включить/выключить при необходимости, возможность добавления в автозапуск и т. д. Пользуйтесь на здоровье! Исходники открыты, но можно и просто скачать готовую программу, она подписана и нотаризована Apple, никаких лишних уведомлений безопасности.

пост №1664Разработка и инженерия

Я записываю все зум-звонки по умолчанию. Зум напомнил в письме, что за три года я использовал 1,3Тб — 27406% из 5 гигабайт, включенных в тарифный план. Раньше он просто напоминал, а теперь обещает отключить запись, если не заплатить или не удалить лишнее.

Терабайт хранилища в зуме стоит 100 долларов в месяц, следующий шаг — уже 5 терабайт за 500$ в месяц. Облачные хранилища — довольно дорогая штука, но есть замечательный Backblaze, 2ТБ в котором стоят 10$ в месяц. Решено, перегоню все записи в него.

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

За пару вечеров я написал скрипт, который прямо сейчас переносит весь мой архив — 3000 записей. Средняя скорость — 1,3ГБ/минуту. Скрипт можно дергать сколько угодно раз и использовать даже для автоматического переноса всех новых записей. Пользуйтесь на здоровье.

пост №1574Управление и команды

Вернулся старый клиент, просит прислать ещё раз оффер, который мы готовили для него 9 месяцев назад.

Файл по ссылке в google docs почему-то удален, не открывается.

Копии нигде нет. У нас тогда ещё не было наших замечательных менеджеров Ксюши и Даши, которые делают так, что ничего не теряется.

В результате выкрутился тем, что нашел запись Zoom-звонка, в которой я презентую оффер с шерингом экрана — там можно поставить на паузу и увидеть все таблицы. Магия!

У меня зум настроен так, что все встречи по-умолчанию записываются в облако — очень удобно при написании фоллоу-апов.

Ну и для каждого клиента я создаю отдельную «вечноживую» ссылку с его именем, которую закрепляю в общем чате — так легче заходить на встречи и можно просто посмотреть все встречи именно с ним. Горячо рекомендую!

пост №1445Технологии и общество

Раньше, Zoom немного бесил меня тем, что каждый раз при включении записи звонка громко говорит «Recording in progress» (прям как диктофон в британских полицейских процедуралах).

А вчера обнаружил, что клон зума от Амазона — Amazon Chime, так не делает, когда с удивлением осознал, что инженер Амазона записывал весь наш звонок. Я бы аккуратнее шарил экран, если знал об этом.

Имейте в виду.

пост №1218Работа и карьера

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

1. Избавьтесь от промежуточной веб-страницы при переходе по зум-ссылкам. Я для этого использую утилиту choosy. В ней можно настроить, в каком браузере будут открываться те или иные ссылки. Я добавил правило, что ссылки начинающиеся на https://zoom.us/j/ сразу открываются в зуме. Теперь ссылки на зум-созвоны из телеграма или календаря будут сразу запускать зум, без лишних кликов. То же самое можно настроить для фигмы, ноушен и других популярных веб-сервисов. Стоит 10 долларов. Есть бесплатная альтернатива, которая настраивается через js-функцию, а вот альтернатива для windows.

2. Настройте автозамену для ссылки вашего личного кабинета в зуме. В маках и айфонах эта функция называется «замена текста» и работает совершенно магически: набираете заданное вами волшебное слово, нажимаете пробел и оно заменяется на выбранный вами текст или число. У меня ещё настроены «сокращения» для номеров телефона и паспорта — это здорово экономит время и нервы. Андроид клавиатура от гугла такое тоже умеет, а виндоусу потребуется программа, например beeftext.

пост №1206Технологии и общество

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

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

Вот рассекреченное заявление Минюста США в Нью-Йоркский федеральный суд (пресс-релиз), а вот ответ компании зум. Пока что претензии у Минюста только к отдельным сотрудникам компании, а не к фирме целиком, как в случае с хуавэй.

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

Собираетесь бороться с китайским режимом — используйте другие средства связи.

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

пост №987Продукты и дизайн

Zoom — лучшая программа для рабочих видеозвонков. За два последних года я провел в ней не менее 200 часов. Скорее, все 400.

Есть десяток способов созвониться. Телеграм, вацап, facebook messenger, apple facetime, google hangouts/meet, скайп, вайбер, слек, appearin и так далее и так далее.

Для деловых звонков мне важны 3 вещи:
1. идеальное качество звука и видео. Я хочу видеть лица, а не желтые пятна, слышать оттенки голоса, а не железное шипение. При слабом интернете важно четко передать речь, а качеством видео можно пренебречь. На этом этапе отваливаются несколько кандидатов;
2. легко добавлять разных людей в звонок, переслав им ссылку; часть пользуются компьютером, часть айфоном и андроидом. Ещё минус 4 программы;
3. в третьих, возможность одной кнопкой включить запись видео и аудио на сервере, а потом поделиться этой записью по ссылке.

Ой, остался-то один Zoom!

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

Групповые звонки организованные бесплатными аккаунтами ограничены 40 минутами; базовый тарифный план стоит 15 долларов в месяц и купить его достаточно организаторам звонков, а не всем участникам.

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

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

А Zoom горячо рекомендую, он помогает мне работать в распределенных командах.

пост №719Управление и команды

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

Во первых, нужно выбрать, кого собеседовать. Мы смотрим на исходный код. Просим ссылку на репозиторий, zip или, хотя бы, отдельные исходные файлы. Это отсекает часть кандидатов, которые не способны прогать. Сразу видно крутышей, которые пишут так (или такое), что хочется с ними работать.

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

Очень хороший текст о себе, со всеми правильными ключевыми словами, может подкупить моё сердце, но Рома (или другой программист) наверняка спросит «а код-то где?»

Я не даю тестовые задания, потому что боюсь отсечь самых крутых кандидатов, которые «в р** е**** наши тестовые» (не заинтересованы в тестовых), за ними и так очередь стоит. К тому же, код из реального мира лучше синтетического.

Во вторых, никаких собеседований один-на-один: это более утомительно и менее эффективно. Бэкендера мы искали вдвоем с Антоном, фронтов собеседуем с Ромой и с Сашей втроем. При этом иметь со стороны компании больше 3 человек, наверное, тоже перебор.

В третьих, мы не спрашиваем _тупых_ вопросов на _соображалку_ типа «сколько теннисных мячей поместится в Боинг 747». И никаких whiteboard interview, когда просят написать исходный код «здесь и сейчас». Собеседование призвано ответить на три вопроса:

1. Хотим ли мы работать с этим человеком?
2. Захочет ли он работать с нами?
3. Способен ли он выполнять работу, которую мы хотим ему дать?

Сценарий всех собеседований примерно одинаковый:
1. Мы рассказываем о продукте: какую проблему он решает, какие составные части в нем есть (это я люблю рассказывать сам, но порой я учусь смирению и это делает кто-то из программистов);
2. Какие технологии мы используем — тут обычно программисты начинают говорить на птичьем и в глазах кандидата появляется оживление, он начинает задавать вопросы. Хорошо!
3. Как устроен рабочий процесс — бейзкемп, рабочие циклы, разбиение фичи на подзадачи программистами, созвоны, личные встречи, etc. Больше вопросов, наши истории из жизни, в идеале кандидат делится своими.

Это всё нужно успеть проговорить за первые полчаса или быстрее. Мы раскрываемся перед кандидатом, задаем планку того, как и о чем рассказывать.

Дальше кандидат рассказывает о себе. Часто люди просят задать вопросы. Самый главный:

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

Многое можно понять по тому, задает ли кандидат те или иные вопросы. Например, когда мы говорим «react, redux» то классический вопрос чувака «в теме» это «thunk или saga»? Обычно, это начало продуктивной беседы с перекрестными вопросами, когда мы советуемся с кандидатом, узнаем его мнение о той или иной технологии, он узнает больше о нас и нашем подходе к программированию, а мы нащупываем его технический уровень.

Иногда мы спрашивали классические «экзаменационные вопросы» типа «как ты оптимизируешь react-компоненту, чтобы меньше тормозило?», но я считаю этот «экзаменационный» стиль поведения во многом капитуляционным, когда не получается наладить качественный, живой человеческий диалог.

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

P.S. Мы только что провели 7 собеседований за один день и это перебор, так я делать не рекомендую (хотя получилось очень результативно и это балансирует чувство, будто вскопал поле).

P.P.S. Техническое: 1) для бронирования времени собеседования пользуйтесь сервисом appoint.ly, где кандидаты сами выбирают удобное им время из предложенных слотов. 2) проводите собеседования в zoom.us, в режиме gallery, когда экран делится на 3 или 4 части и вы видите лица всех участников сразу. Этот режим максимально приближен к реальной встрече и качество звука в zoom отменное.

А как собеседуете вы? Какое худшее (или лучшее) собеседование было у вас в жизни? Делитесь в чатике @ctodailychat, у нас собралась хорошая компания.