Идеального способа организовать полностью удаленную работу в компании нет, но есть несколько советов, которые помогут сформировать яркую и успешную команду.
С самого начала в компании Close.io работа частично выполнялась удаленно. В маленьком офисе в Пало-Альто нас было шестеро, но мало кого на самом деле заботило, сидит ли кто-то в офисе. У нас не было графика «с восьми до пяти», и все мы много ездили. Иногда в офисе целыми месяцами никто не появлялся — а через несколько недель было ровно наоборот. И раз в квартал мы все отправлялись в командный выезд.
Но прошло три года, и мы начали нанимать новых сотрудников
Первым наняли моего хорошего друга, которого я знал уже пятнадцать лет, — но он жил в Таиланде. Так что на нем мы опробовали новый подход, и получилось отлично. Следующим к нашей команде присоединился тоже хорошо знакомый человек, с которым один из наших основателей вместе рос. И в этот раз с удаленным наймом все прошло гладко.
Третий новичок тоже начала работать удаленно — с ней мы раньше знакомы не были, так что мы заодно проверили свою схему. К тому времени мы уже понимали, что удаленные сотрудники могут стать для нас огромным преимуществом.
Поэтому в том же году мы отказались от офиса. Те шестеро из нас, что жили у залива Сан-Франциско, разъехались по всему миру, и мы полностью перешли на удаленную работу.
Привет, Хабр! Помните недавнюю конференцию Apple, на которой был представлен ARKit? Ой, стоп-стоп, это же блог Microsoft. Хотя, почему бы и нет. Ведь наши партнеры решили поэкспериментировать и совместить новый фреймворк от Apple с возможностями сервиса PowerBi от Microsoft. Подробнее под катом!
Чуть более года назад Ember.js претерпел значительные изменения. В тесном сотрудничестве между инженерами LinkedIn и Open Source сообществом, мы заменили у Ember движок для рендиранга на новую библиотеку, Glimmer VM, что улучшило производительность и значительно уменьшило размер скомпилированных шаблонов.
Glimmer относится к Handlebars шаблонам как функциональный язык программирования и компилирует их в последовательность инструкций, которые могут быть выполнены в браузере. Эти инструкции, или опкоды (прим. переводчика коды операций) кодируются в компактную структуру данных в виде JSON.
Когда мы перенесли наше веб приложение linkedin.com на Glimmer, мы увидели значительные улучшения во времени загрузки. В дополнении к уменьшению размера файлов на 40%, мы также сократили время, затрачиваемое браузером на анализ JavaScript, благодаря компиляции шаблонов в JSON. Более того, это изменение улучшило время загрузки в 90% случаев более чем на 1 секунду.
В этой статье мы обсудим недавний эксперимент по еще большему улучшению времени загрузки, полностью исключив время необходимое для синтаксического анализа скомпилированных шаблонов. Читать дальше ->
Да, всё верно. Среди пользователей «Моего круга» Microsoft Office более популярен чем Golang или Kotlin.
Подробности того, как я это узнал и ссылки под катом. Читать дальше ->
Привет всем, кто пишет код для .NET, особенно многопоточный. Редко встретишь потокобезопасный код без потокобезопасных коллекций, а значит, нужно уметь ими пользоваться. Я расскажу о самой популярной из них — ConcurrentDictionary. В ней спрятано на удивление много интересных сюрпризов: как приятных, так и не очень.
Сначала разберём устройство ConcurrentDictionary и вычислительную сложность операций с ним, а затем поговорим об удобных трюках и подводных камнях, связанных с memory traffic и сборкой мусора.
В статье рассказывается о развертывании Django приложения в облаке AWS с помощью Bitbucket Pipelines. Тем, кому интересна эта тема, добро пожаловать под кат.
Вперед, на мины! Читать дальше ->
Данной публикацией я открываю серию кейсов, в которых буду описывать как наша команда оптимизаторов продвигает сайты и показать владельцам интернет магазинов — на что стоит обращать внимание в конкретной тематике и как можно добиться хороших результатов в привлечении целевого трафика.
Большая семантика и структура
Мы взяли в работу на поисковое продвижение магазин одежды. Семантика была собрана очень большая 180 тысяч запросов, из которых пока реализовали в оптимизации только половину примерно. Первым делом провели технический аудит. У сайта были проблемы с обработкой 404 ошибки, не все типы страниц правильно отдавали ответ о несуществующей странице. Были ошибки с вложенностью заголовков h1-h3. Часть меню было целиком в заголовках h3.
Проработали структуру категорий. Расширили ее в несколько раз. Очень много запросов ушло в страницы тегов. Например, рубашки расширяются таким путем на виды: приталенные, на кнопках, джинсовые, с длинным рукавом и т.д. Читать дальше ->
Сегодня многие компании, начиная новый проект или улучшая существующие системы, задаются вопросом, какой вариант разработки более оправдан — воспользоваться «классическим» трехслойным подходом или же спроектировать систему как набор слабосвязанных компонентов?
В первом кейсе мы можем оптимально использовать весь накопленный опыт и существующую инфраструктуру, но придется терпеть долгие циклы планирований и релизов, сложности в тестировании и в обеспечении бесперебойной работы. Во втором же случае появляются риски в управлении инфраструктурой и самим распределенным приложением.
В этой статье я расскажу, как и почему мы в 2ГИС выбрали второй вариант для построения новой системы, как решали возникающие задачи и какие выгоды от этого получили. Под катом — про Amazon S3, Apache Kafka, Reactive Extensions (Rx), eventual consistency и GitHub, сжатые сроки и невозможность собрать команду необходимого размера из инженеров, использующих один стек технологий.
Новость Недавно в поле зрения ИБ-исследователей попали владельцы прокси-сервиса для Tor, которые грабили своих пользователей и вымогателей. Дело в том, что этот Tor-прокси сервис часто использовался жертвами криптовирусов, неспособными или не готовыми разбираться с установкой браузера Tor. Именно через этот сервис они заходили на .onion сайт злоумышленников. Некоторые вымогатели даже указывали в записках о выкупе ссылку для прямого захода через этот прокси-сервис — как говорится, все для клиента. Вот только при загрузке страниц адрес кошелька вымогателей тихонько менялся на посторонний. Читать дальше ->
Привет, Хабр. Помните офигенную статью «Вы и ваша работа» (+219, 2265 в закладки, 353k прочтений)?
Так вот у Хэмминга (да, да, самоконтролирующиеся и самокорректирующиеся коды Хэмминга) есть целая книга, написанная по мотивам его лекций. Давайте ее переведем, ведь мужик дело говорит.
Это книга не просто про ИТ, это книга про стиль мышления невероятно крутых людей. «Это не просто заряд положительного мышления; в ней описаны условия, которые увеличивают шансы сделать великую работу.»
Мы уже перевели 9 (из 30) глав.
Глава 4. Софт
(За перевод спасибо Станиславу Суханицкому, который откликнулся на мой призыв в «предыдущей главе».) Кто хочет помочь с переводом — пишите в личку или на почту magisterludi2016@yandex.ru
Как я указывал в последней главе, в первые дни существования компьютеров контроль вычислений делался вручную. Медленные настольные компьютеры сначала контролировались вручную, например, умножение выполнялось повтором операции сложения в столбик со сдвигом столбцов после каждого множителя. Деление было реализовано аналогичной операцией повторения вычитаний. Со временем начали применяться электродвигатели как для питания, так и для более автоматического управления операциями умножения и деления. Читать дальше ->
В недавней статье наш коллега Дмитрий Марущенко yojick рассказал о том, как доставлять динамические обновления переводов с сервера на мобильные устройства. В продолжение темы сегодня поговорим о том, как мы используем эти обновлённые переводы в наших приложениях.
Исторически сложилось, что все основные мобильные платформы «из коробки» обладают превосходной поддержкой локализации сообщений. В iOS, Android и Windows Phone приложение можно локализовать без всяких трудностей. Все средства для этого уже встроены в IDE: просто укажите нужный язык в списке поддерживаемых локализаций, введите текст на этом языке — и всё остальное за вас сделает IDE. Работает как часы. Но у этого подхода всё же есть недостатки.
Нашли в тексте ошибку? Хотите что-то перефразировать? Вам нравится экспериментировать с разными обращениями к разным целевым группам? Во всех случаях ответ один: придётся пересобирать приложение, снова выкладывать его в магазин, проходить проверку, получать одобрение, публиковать новую версию со всеми изменениями и ждать, чтобы пользователи обновили приложение на своих устройствах. Даже если все процедуры пройдут без заминок, это займёт дни или недели. А если пользователи не захотят обновляться? Или того хуже — не смогут этого сделать по техническим причинам вроде неподдерживаемой ОС? Тогда нежелательный текст в вашем приложении проживет гораздо дольше, чем хотелось бы.
Это довольно неудобно. К счастью, нам удалось решить эту проблему на разных платформах (с учётом особенностей каждой из них). И мы рады поделиться своим решением. Читать дальше ->
Последние три года я занимаюсь разработкой серверов на Node.js и в процессе работы у меня накопилась некоторая кодовая база, которую я решил оформить в виде фреймворка и выложил в open-source.
Основными особенностями фреймворка можно назвать:
простую архитектуру, без всякой JS – магии
автоматическую сериализацию/десериализацию моделей (например, не нужно проверять пришло ли поле с клиента, все проверяется автоматически)
возможность генерации схемы API
генерацию документации на основе схемы
генерацию полностью типизированного SDK для клиента (на данный момент речь про JS frontend)
В данной статье мы поговорим немного о Node.js и рассмотрим данный фреймворк
Сегодня мы подготовили для вас дайджест, в котором собрали посты с кейсами миграции ИТ-инфраструктуры компаний в облако IaaS, руководства по работе с виртуальными машинами, а также полезные материалы о программировании. В подборку вошли свежие публикации из Первого блога о корпоративном IaaS и нашего блога на Хабре, подготовленные нашими специалистами.
В последнее время я часто делюсь своими мыслями о паролях. Здесь у нас абсолютный краеугольный камень безопасности — парадигма, которую понимает каждый человек с онлайновым аккаунтом — и в то же время мы видим фундаментально разные подходы к этому вопросу со стороны разных сервисов. У некоторых есть строгие правила по сложности паролей. У других небольшая максимальная длина. Некоторые не разрешают копировать из буфера обмена. Другие заставляют регулярно менять пароль. Такая несуразица повсюду.
В прошлом году я писал руководство по аутентификации в современную эпоху и говорил о многих вышеупомянутых требованиях. В частности, я обращал внимание на то, как современные представления противоречат многим традиционным представлениям о правильной работе с паролями. В той статье обильно цитируются руководства от британского центра по кибербезопасности NCSC и американского NIST — и в ней развенчиваются многие из старых мифов. Избавьтесь от правил сложности, разрешите длинные пароли, не запрещайте копировать из буфера обмена и откажитесь от обязательной смены паролей. Однако там нет ничего относительно минимальной длины, и это заставило меня задуматься — какое число будет правильным? Читать дальше ->
С 16 по 18 февраля в Сколково мы будем проводить Cradle: Rave. Это самое большое мероприятие Сбербанк Технологий, которое объединит все, чем мы занимаемся — Artificial Intelligence, Machine learning, чат-боты, квантовые технологии, DevOps, IoT, блокчейн, big data, мобильную разработку. По последним двум темам организуем хакатоны с денежными призами, по блокчейну — джем-сессию в экзотическом формате «печа-куча», а приправим все россыпью интересных докладов и митапов. Подробности под катом.
Давайте продолжим рассматривать планшет YB1-X90L, который я начал исследовать в предыдущей публикации: Рис.1. Общий вид планшета
Поиск в Google выдал, что планшет создан на процессоре Intel Atom x5-Z8550, имеющем 4 ядра [1,2]. Для пользователя, как всегда, имеются 2 внешних элемента управления стандартного назначения:
кнопка Power — включение/выключение планшета;
качелька Vol+/Vol- — управление громкостью встроенных динамиков, которых, кстати, два.
Ну, что ж, поэкспериментировав с ними, я обнаружил, что существуют 4 варианта загрузки. Так и появилась эта статья…
2.Режимы загрузки планшета.
Полностью выключенный планшет YB1-X90L можно включить четырьмя способами, т.е. запустить его в одном из четырех режимов работы: Читать дальше ->
Эта криптография доступна и, в основном, используется различными подсистемами ядра (в kernel space): IPsec, dm-crypt и др. Воспользоваться функциями Crypto API из пространства пользователя (user space) также возможно через Netlink-интерфейс, в который, начиная с версии 2.6.38 ядра, введено семейство AF_ALG, предоставляющее доступ к криптографии ядра из user space кода. Однако, существующего функционала иногда недостаточно, таким образом появляется необходимость расширения Crypto API новыми алгоритмами.
В последние годы вопрос обхода различных блокировок сайтов стоит достаточно остро. Проще всего решить ее можно с помощью прокси-расширений для браузера. А поскольку самым популярным браузером сейчас является Chrome, то я решил собрать в одном материале все самые адекватные варианты прокси и VPN-расширений для него. Читать дальше ->
Это 4-я статья из цикла переводов текстов зарубежных представителей опенсорс движения. Значительная часть предыдущих статей была посвящена анализу причин, мешающих разработчикам активнее участвовать в OS проектах.
Сегодняшний текст посвящен поиску решения одной из ключевых проблем опенсорса: трудности финансирования проектов. Мне эта статья понравилась в первую очередь сравнительным анализом различных способов привлечения денег на опенсорс разработку — что, конечно, не умаляет прочих ее достоинств.
Было бы очень интересно узнать об опыте читателей – пользовались ли вы какими-либо из описанных автором сервисами/инструментами? Какие увидели преимущества/недостатки, что сработало/не сработало?
Мы разрабатываем большое модульное UI-приложение, состоящее из большого количества плагинов с разными циклами релиза. Весь код располагается в одном репозитории, так что к разработчикам постоянно приходит QA-специалист и спрашивает: «А какой компонент поменялся? Какую версию выкладывать, чтобы проверить задачу?». Вопрос оказался актуален не только на UI (C#), но и на backend (Java). После наших опрометчивых обещаний все писать ручками я предложил автоматически формировать нужный список на базе изменившихся файлов в момент merge pull-request-а. В этой статье мы расскажем, как организовали это через расширение функциональности сборок на TeamCity (TC) без администраторских прав на сервере и установки внешних плагинов.