Search
Write a publication
Pull to refresh
3
0

Руковожу разработкой всякого разного

Send message

Как писать Go-пакеты

Reading time7 min
Views36K
Пакет Go состоит из Go-файлов, расположенных в одной и той же директории, в начале которых имеется одинаковое выражение package. Пакеты, подключаемые к программам, позволяют расширять их возможности. Некоторые пакеты входят в состав стандартной библиотеки Go. А это значит, что они, если вы пользуетесь Go, уже у вас установлены. Другие пакеты устанавливают с помощью команды go get. Можно, кроме того, писать собственные Go-пакеты, создавая файлы в особых директориях, и придерживаясь правил оформления пакетов.



Материал, перевод которого мы сегодня публикуем, представляет собой руководство по разработке Go-пакетов, которые можно подключать к другим файлам.
Читать дальше →

Когда почта доставляет: боремся с потерями push-уведомлений в iOS

Reading time17 min
Views16K
Со стороны пользователя почтовый клиент — приложение нехитрое. Разработчики Яндекс.Почты даже шутят, что в приложении всего три экрана: список писем; отправка письма; экран about.

Но очень много интересного происходит под капотом. Как многие мобильные приложения, Почта использует push-уведомления, чтобы взаимодействовать с пользователями. Как многие iOS-приложения, Почта теряет часть уведомлений в силу особенностей работы Apple Push Notification Service.

Руководитель iOS-группы Яндекс.Почты Ася Свириденко докажет, что даже с учетом ограничений системы, с потерями push-уведомлений можно и нужно бороться, если они критичны для вашего приложения. Для Почты это так, потому что push-уведомления о новых письмах — это то, ради чего пользователь устанавливает приложение. Если же для вашего приложения доставка push-уведомлений не так критична, узнать, какие велосипеды нагородила мобильная Яндекс.Почта, все равно интересно.


Речь пойдет о remote notification, то есть уведомлениях, которые приходят с сервера через APNs (Apple Push Notification Service). Локальные уведомления затрагивать не будем и поговорим о том:

  • Как выглядит API для работы с push-уведомлениями. Рассмотрим схему доставки push-уведомлений и то, где в этой схеме могут возникать потери. 
  • Как решили бороться с потерями в Яндекс.Почте — об очереди push-уведомлений.
  • Как логировать и какие еще сложности могут встретиться.

Как дебажить переменные окружения в Linux

Reading time4 min
Views30K
Часто бывает так, что приходишь на машину и обнаруживаешь какой-то скрипт, запущенный под системным пользователем неделю назад. Кто его запустил? Где искать этот run.php? Или добавляешь запись в /etc/crontab, а скрипт там падает с ошибкой «command not found». Почему? И что делать? 

У меня есть ответы на эти вопросы.

Читать дальше →

Узнаем паспортные данные физического лица по ФИО (если есть залоговое имущество)

Reading time1 min
Views499K
А так же узнаем ФИО и паспортные данные по номеру автомобиля если он взят в кредит.
Без регистрации и СМС.
Читать дальше →

Как из бумажной безопасности сделать практическую, или зачем нам соблюдение 152-ФЗ и PCI DSS в одном облаке

Reading time5 min
Views7.5K
Наша IaaS-платформа Cloud-152 одновременно сертифицирована по требованиям PCI DSS и имеет аттестат соответствия 152-ФЗ по УЗ-2 (без актуальных угроз 1-го и 2-го типа). Эта же платформа входит еще и в область действия нашей системы управления информационной безопасностью (СУИБ), которую мы сертифицировали по ISO/IEC 27001:2013. Про это и про STAR Cloud Security Alliance (CSA) я обязательно как-нибудь тоже расскажу, но сегодня остановлюсь на плюсах синергии PCI DSS и 152-ФЗ для наших клиентов.
Читать дальше →

Как работают поисковые системы

Reading time28 min
Views84K
Мы разбирали старые письма и наткнулись на статью, которую писал Илья Сегалович iseg для журнала «Мир Internet» в далёком 2002 году. В ней он сравнивает интернет и поисковые системы с чудесами света, размышляет о поисковых технологиях и вспоминает их историю. Несмотря на загруженность по работе, Илья написал статью в рекордные сроки и даже снабдил достаточно подробным словарём терминов, который особенно интересно читать в наши дни. Нам не удалось найти электронную версию журнала со статьей, поэтому сегодня мы публикуем её в нашем блоге, первым автором которого, к слову, был Илья.



Читать дальше →

Сбалансированная разработка в очень больших командах. Доклад Яндекса

Reading time11 min
Views17K
Когда продукт большой, разработчики скатываются в крайности:
— слишком красивый код — медленные релизы,
— слишком много внимания процессам — мало внимания разработке,
— быстрая отправка новых фич в продакшен — слишком плохой код,
— слишком много внимания автотестам — сложно вносить изменения,
— забота о скорости интерфейса — уход от новых фич,
— улучшение UI — мало внимания к архитектуре кода.

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



— Хочется поговорить про то, как жить в больших командах. Большая команда — это когда людей даже больше, чем в этом зале.
Читать дальше →

Развитие команды и рефлексия как управленческая коммуникация тимлида

Reading time11 min
Views22K
Мы уже поднимали тему коммуникации как важнейшего навыка управленца любого уровня. Эффективность коммуникаций в компании напрямую влияет на её развитие, поэтому сегодня подробно обсудим два понятия: развитие и рефлексию.

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


Главным инструментом для развития я считаю рефлексию. Это понятие обычно ассоциируется с ретроспективами, обратной связью, performance-review. Но в основе рефлексии лежит глубинный психологический процесс, поэтому предлагаю начать с основ и рассмотреть рефлексию подробнее.

Примеры использования некоторых новых возможностей JavaScript

Reading time7 min
Views29K
Автор материала, перевод которого мы сегодня публикуем, говорит, что новые возможности JavaScript, которые попали в стандарт ES2019, уже официально доступны в браузерах Chrome, Firefox и Safari, а также на платформе Node.js. Если нужно поддерживать устаревшие браузеры, то воспользоваться новшествами можно, транспилируя JS-код с помощью Babel. Здесь мы рассмотрим примеры использования некоторых новых возможностей JS.


Читать дальше →

22 сайта для программиста, которые помогут заговорить на английском

Reading time3 min
Views133K
Хабр, привет!

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

Приступим!

Учить лексику


Плагины, мобильные приложения и сайты, которые помогут перевести и запомнить незнакомые термины с русского на английский и обратно.

ЛеоПереводчик

С этим плагином удобно переписываться с коллегами. Он автоматически переводит непонятные слова и выражения. Незаменимый инструмент, когда нет времени на доскональные переводы и нужен срочный ответ.
Читать дальше →

Поднимаем сервер 1с с публикацией базы и веб сервисов на Linux

Reading time4 min
Views39K
image

Сегодня я бы хотел рассказать, как поднять сервер 1с на linux debian 9 с публикацией web-сервисов.

Что такое web-сервисы 1с?

Web-сервисы — это один из механизмов платформы, используемых для интеграции с другими информационными системами. Он является средством поддержки SOA (Service-Oriented Architecture) — сервис-ориентированной архитектуры, которая является современным стандартом интеграции приложений и информационных систем. По сути — это возможность создать html страницу с данными, к которой, потом можно обратиться любым другим приложением и забрать их.

Плюсы — работает быстро (даже при достаточно большом объеме данных), относительно удобно.

Минусы — ваш програмист 1с будет много и долго на вас ворчать, пока будет писать веб-сервис для вашей базы. Штука очень своеобразная в написании.

Я не буду рассказывать как написать веб-сервис… я расскажу как его опубликовать на Linux из консоли сервера, а так же немного про установку 1с сервера на Linux.
Читать дальше →

Первое, что нужно сделать, запуская проект на Django

Reading time4 min
Views33K
Приветствую сообщество, встала передо мной задача написать социальную сеть. А коль скоро язык программирования, которым я более-менее владею — это Python, я выбрал фреймворк Django для реализации проекта. Чтобы не тратить время на написание HTML шаблонов и CSS стилей, эти файлы я беру в интернете с пометкой Free. В основном это шаблоны от Colorlib.

Поехали.

Сразу оговорюсь, что использую PyCharm, поэтому могу не знать все команды из файла manage.py.
Читать дальше →

Ограничения 8-битных игр и их точное воссоздание в Unity

Reading time14 min
Views29K
image

Ретро-игры с простыми механиками и пиксельной графикой способны пробуждать тёплые воспоминания у опытных игроков, и в то же время вполне доступны для более юной аудитории. Сегодня многие игры называются «ретро», но для создания ностальгического стиля требуются усилия и планирование. Именно поэтому мы пригласили ребят из Mega Cat Studios помочь нам в обсуждении этой темы. В этом посте мы рассмотрим всё необходимое для создания аутентичной графики в стиле игр для NES, в том числе важные параметры Unity, графические структуры и цветовые палитры.

Создание аутентичного арта в стиле NES


Для начала мы рассмотрим основы создания графики для игр, соответствующих ограничениям классической Nintendo Entertainment System. Это поколение консолей накладывает серьёзные ограничения на художников, стремящихся воспроизвести его аутентичную графику. Это ограничения на используемые палитры и на размер и количество объектов на экране. Кроме того, важно учитывать, что разрешение этой консоли составляет 256×240 пикселей.

Палитры


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


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

Как сохранять сосредоточенность, работая в офисе с открытой планировкой?

Reading time5 min
Views25K


Где вам лучше всего работается?


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

Ответ может оказаться не таким простым, как возвращение к отгороженным «кабинкам». Даже в кабинетах за закрытыми дверями не всегда можно было спрятаться от отвлекающих факторов виртуального мира. Теперь же, когда новые технологии позволяют всегда оставаться на связи, отношение к общению с коллегами изменилось.

Благодаря SMS звонки стали восприниматься чересчур навязчивым способом коммуникации. Чаты превратили электронную почту в нудную рутину. Отключение уведомлений помогает не отвлекаться, но действительно ли это дает возможность войти в состояние «потока» — или так мы просто строим всё более изолированные бункеры?

Дженнифер Брук в качестве специалиста по исследованию кадровых вопросов в компании Dropbox опросила множество людей из самых разных стран. Из разговоров с работниками умственного труда из различных сфер она узнала, как они переключаются между двумя рабочими средами.

Переведено в Alconost
Читать дальше →

Cython: более чем 30-кратное ускорение Python-кода

Reading time4 min
Views104K
Python — это язык, который любят многие программисты. Этим языком невероятно легко пользоваться. Всё дело в том, что код, написанный на Python, отличается интуитивной понятностью и хорошей читабельностью. Однако в разговорах о Python часто можно слышать одну и ту же жалобу на этот язык. Особенно тогда, когда о Python говорят знатоки языка C. Вот как она звучит: «Python — это медленно». И те, кто так говорят, не грешат против истины.

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



Есть несколько способов ускорения Python-программ. Например, можно применять библиотеки, рассчитанные на использование нескольких ядер процессора. Тем, кто работает с Numpy, Pandas или Scikit-Learn, можно посоветовать взглянуть на программный комплекс Rapids, позволяющий задействовать GPU при проведении научных расчётов.
Читать дальше →

Хаки при работе с большим числом мелких файлов

Reading time7 min
Views45K
Идея статьи родилась спонтанно из дискуссии в комментариях к статье «Кое-что об inode».



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

Поэтому делюсь нашим опытом, может кому и пригодится.
Читать дальше →

Цена JavaScript в 2019 году

Reading time12 min
Views27K
За последние несколько лет в том, что называют «ценой JavaScript», наблюдаются серьёзные положительные изменения благодаря повышению скорости парсинга и компиляции скриптов браузерами. Сейчас, в 2019 году, главными составляющими нагрузки на системы, создаваемой JavaScript, являются время загрузки скриптов и время их выполнения.



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

Метрики DevOps – откуда брать данные для расчетов

Reading time3 min
Views4.9K
Честно говоря, Иван часто посмеивался над тщетными усилиями коллег из отдела мониторинга. Они прилагали огромные усилия для реализации метрик, которые им заказывало руководство компании. Они были настолько заняты, что больше никому ничего не хотели делать.

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

Последнее время все только и говорили про LeadTime – время поставки бизнесовых фич. Метрика показала сумасшедшее число – 200 дней на поставку одной задачи. Как же все охали, ахали и воздевали руки к небу!

Через некоторое время шум постепенно затих и от руководства поступил заказ на создание еще одной метрики.

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

Действительно, размышлял Иван, знание числа совершенно никому ни о чём не говорит. 200 дней или 2 дня – нет никакой разницы, потому что по числу невозможно определить причину и понять, хорошо это или плохо.

Это типичная ловушка метрик: кажется, что новая метрика расскажет суть бытия и объяснит какой-то тайный секрет. Все так на это надеются, но ничего почему-то не происходит. Да потому что секрет надо искать вовсе не в метриках!

Для Ивана это был пройденный этап. Он понимал, что метрики – это просто обычная деревянная линейка для измерений, а все секреты надо искать в объекте влияния, т.е. в том, что эту метрику формирует.

Для интернет-магазина объектом влияния будут его клиенты, приносящие деньги, а для DevOps – команды, создающие и раскатывающие дистрибутивы с использованием конвейера.

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

Цель метрик DevOps


Понятно, что всем хочется уменьшить время поставки. 200 дней – это, конечно, никуда не годится.

Но как, вот в чем вопрос?
Читать дальше →

Анализ производительности запросов в ClickHouse. Доклад Яндекса

Reading time18 min
Views31K
Что делать, если ваш запрос к базе выполняется недостаточно быстро? Как узнать, оптимально ли запрос использует вычислительные ресурсы или его можно ускорить? На последней конференции HighLoad++ в Москве я рассказал об интроспекции производительности запросов — и о том, что даёт СУБД ClickHouse, и о возможностях ОС, которые должны быть известны каждому.



Каждый раз, когда я делаю запрос, меня волнует не только результат, но и то, что этот запрос делает. Например, он работает одну секунду. Много это или мало? Я всегда думаю: а почему не полсекунды? Потом что-нибудь оптимизирую, ускоряю, и он работает 10 мс. Обычно я доволен. Но все-таки я стараюсь в этом случае сделать недовольное выражение лица и спросить: «Почему не 5 мс?» Как можно выяснить, на что тратится время при обработке запроса? Можно ли его в принципе ускорить?

Кто такие эйдетики, как работают ложные воспоминания, и три популярных мифа о памяти

Reading time5 min
Views59K
Память — удивительная способность мозга, и несмотря на то, что изучается она довольно давно, существует немало ложных — или, как минимум, не совсем точных представлений о ней.

Расскажем о наиболее популярных из них плюс о том, почему не так-то просто все забыть, что заставляет нас «красть» чужую память и как выдуманные воспоминания влияют на нашу жизнь.


Читать дальше →

Information

Rating
Does not participate
Location
Россия
Registered
Activity