Русский
Русский
English
Статистика
Реклама

Блог компании ruvds.com

Как стать тимлидом фронтендеров и как жить после этого расшифровка эфира

27.06.2020 14:19:52 | Автор: admin
15 июня в нашем инстаграм-аккаунте прошел прямой эфир с Ильей, руководителем фронтенд-разработки в Яндекс.Деньги. Выкладываем запись эфира и расшифровку.



Меня зовут Илья, я работаю в компании Яндекс.Деньги и руковожу фронтендом. До этого был бэкенд-разработчиком, писал на C#, около 5 лет назад перешел во фронтенд. Чуть больше года руковожу. Вот такой путь развития. Еще активно участвую в Burning Lead это сообщество для ведущих разработчиков, тимлидов, людей, которые так или иначе пересекаются с задачами управления; надеюсь, ребята из сообщества слушают стрим.


Про Node.js и его использование


Сначала скажу, как она у нас появилась и почему мы ею пользуемся. Исторически сложилось так, что у нас в Деньгах есть полноценный Java-бэкенд, в котором Java-разработчики работают с базами данных, с основной бизнес-логикой. Фронтендеры с бизнес-логикой не работают, мы подготавливаем для себя нужный формат данных и отправляем его на фронтенд, а там уже рисуем их на каком-либо фреймворке. Изначально у нас был Xscript-сервер, который ребята в Яндексе сделали еще в 2000-х годах это наше legacy. Часть логики серверный рендеринг мы писали на XML, XSL/XML преобразования. Так продолжалось очень долго. Потом, когда мы осознали, что разработчиков на XSL/XML стало тяжело искать, мы стали выбирать новый сервер, в который можно было бы писать на бэкенде и потом использовать на фронтенде. Оказалось, что есть целая платформа Node.js.

Тогда Node.js была очень молодой платформой, версия 0.10, наверно. Решено было использовать ее по нескольким причинам: язык Javascript набирал популярность, разработчиков было много; кроме того, серверную и клиентскую логику мог писать один разработчик без суперспецифичных знаний. О своем выборе мы не жалеем: платформа все еще активно развивается, оптимизируется, становится быстрее, получает полезные фичи, имеет активное сообщество.

Поговорим про архитектуру фронтенда и о том, чего мы хотели бы достичь в архитектуре Яндекс.Денег в целом. Так как мы используем Node.js, у нас уже долгое время основой серверного фреймворка служит Express. Он хорошо справляется со своей задачей обрабатывает запросы пользователя и дает ответы, больше от него ничего не нужно. Для него написано множество плагинов. Есть SSR для React-приложений, например; так как основной стек на клиенте это React, SSR не проблема прикрутить. Есть много реализаций; можно даже не писать код: разворачиваешь из NPM, он сам все делает.

Что касается архитектуры мы порядка 4-5 лет живем на Express, и из-за этого возникают некоторые проблемы. У нас довольно много разработчиков в отделе сейчас человек 50 и нам нужно писать понятный для всех код; разработчики могут менять интересы, переходить из команды в команду, и нам нужно, чтобы код был примерно одинаковым, чтобы разработчик в новой команде не тратил по месяцу на акклиматизацию к новому коду. Express довольно низкоуровневый фреймворк, и с ним живется довольно тяжело: каждая команда использует свое видение того, как писать обработчики запросов или бизнес-логику, ходить в бэкенд. Первая попытка наладить архитектуру сервера была совершена, когда мы сделали ProcessFlow. Я на эту тему выступал с докладами рассказывал, как на основе IDEF0 можно построить систему, которая позволит организовать бизнес-логику, задать правила ее написания, сделать поддержку, визуализацию связей между сущностями. Попытка была вполне успешной: в некоторых местах у нас были серьезные проблемы с пониманием кода, и ProcessFlow помогла их решить. Она работает и сейчас, и вполне нас устраивает.

Сейчас у нас идет переезд на NestJS. Это довольно современный серверный фреймворк, позволяет писать контроллеры в парадигме Model-View-Controller, организовывать бизнес-логику; его философия пришла из Angular. Его сильная сторона это правила, они уже на уровне фреймворка определяют написание контроллеров и бизнес-логики. Бесконтрольная среда бывает губительна, когда вас много и все пишут по-разному; лучше иметь свод правил, к которому всегда можно обратиться такой путь мы выбираем. Про NestJS активно рассказывает мой коллега Андрей Мелехов, ведущий подкаст devSchacht; он сейчас описывает процесс переезда на NestJS, обсуждает проблемы.

Мы стремимся к тому, чтобы перевести все приложения на NestJS. Еще мы продумываем более строгие архитектурные правила, чтобы сильнее снизить энтропию между разными приложениями в компании, и проводим дробление приложений по микросервисному подходу. Раньше у нас был монолит, и все было неплохо до того, как наша команда выросла и разработчики начали мешать друг другу по релизам, по функциональности и, кроме того, монолит долго собирался. Мы решили разделяться на микросервисы. Сейчас мы видим, что микросервисы во фронтенде это тяжело: на страничке нужно отобразить несколько доменных областей, при том, что каждый микросервис должен обслуживать только одну область. Мы видим, что микросервисы превращаются в мини-монолиты, и теперь мы смотрим в сторону микро-фронтенда, который позволит адекватно организовать фронтенд без пересечения предметных областей.

Про клиентскую часть


Она состоит из двух больших стеков. Первый это легаси-стек с использованием методологии BEM Naming (определенные названия CSS-стилей, позволяющие избегать пересечений), на основе которой в Яндексе создали фреймворк. Мы использовали его довольно долго, так как мы используем технологический стек Яндекса. Он классный, и в нем работа с компонентами организована примерно так же, как в современных фреймворках: в виде отдельно лежащих блоков, которые удобно поддерживать. Однако он уже устарел, поскольку основан на GQL и не отвечает современным требованиям по UI; на нем очень сложно делать анимации и приложения на клиенте. Мы постепенно переходим на React уже несколько лет (переход продвигается тогда, когда меняется дизайн или функциональность: то есть, все переписывания бизнес-процессов происходят на новой технологии). Он показался нам довольно мейнстримовым то есть, разработчиков на нем много. React основной фреймворк на клиенте, в качестве стейт-менеджера используется Redux; с ним же мы используем Redux-Thunk для асинхронных действий и запросов к бэкенду. В нескольких проектах использовали hooks.

Почему не Angular?


Когда мы выбирали стек, Angular был приблизительно версии 1.5. Он показался нам сомнительным, и мы выбрали другое решение. К последним версиям Angular я не имею претензий, но отказываться от React мы не хотим.

Как я стал тимлидом, почему я выбрал этот путь, какие плюсы и минусы


На самом деле, в каждой компании будут собственные требования к тимлиду или руководителю отдела, но, как мне кажется, есть и определенный план того, что нужно знать и делать, чтобы развиваться в направлении менеджмента. Есть такой подкаст PodlodkaPodcast, они публиковали такой план (роадмап). Крутая штука; там написано, что следует читать для развития нужных softskills на них нужно делать упор. Конечно, у хорошего тимлида должны быть и отличные hardskills: он не просто формальный лидер команды (допустим, 5 человек), он должен доказать свое лидерство, он должен учить свою команду, его люди должны желать научиться программировать так же, как может он. Но важны и softskill: коммуникативные навыки для общения в пределах команды и вне их, для отстаивания мнения команды, для поиска компромиссов. В работе тимлида очень много коммуникаций. Кроме того, нужно уметь проявлять эмпатию: при общении с разработчиками важно устанавливать понимание на уровне чувств, понимать настроение каждого собеседника, определять, чего он хочет. Напрямую это не говорится, но очень хорошо, когда тимлид владеет этим. Здорово, когда к hardskills также прилагается умение наставничества: за таким тимлидом потянутся люди, он будет в состоянии четко формулировать и ставить задачи.

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

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

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

О процессах управления людьми в нашем отделе


Процесс разработки подразумевает общение разработчиков между собой, и у нас есть несколько точек пересечения. Задача на разработку поступает в одну из команд; обычно команда это Java-разработчики, фронтенд-разработчики, менеджер, продукт, обязательно тестировщики. Такая единица, сидит где-то отдельно. Существование других команд для нее особенного значения не имеет само по себе но нам необходимо, чтоб все команды писал приблизительно единообразный код. Для этого нужно общаться, и здесь есть несколько подходов. Во-первых, это происходящие время от времени встречи всего отдела; сейчас мы все собираемся в zoom, но это, конечно, не то. На встречах мы делимся новостями, ребята рассказывают, что они делают у себя в командах: какие у них проекты, какие будут в дальнейшем, что и как они делают. Это помогает строить представление о том, что происходит во фронтенде: он большой, просто так его рассмотреть не выйдет. Еще мы организуем tech talks, разные по масштабам: на всю компанию или на наш отдел, и там представляются технические приемы: например, на одном из них рассказывали, как используются hooks в React, как они влияют на форму, как выглядит код для них, какие плюсы и минусы. Такие доклады интересно слушать, и они помогают распространять по компании знания.Непосредственно в разработке есть процессы, которые позволяют нам общаться так, чтобы писать код, который потом не встретит непонимания на кодревью из-за используемых приемов, компонентов и библиотек то есть, мы стараемся нивелировать плохие последствия от изолированного принятия решений. Этот процесс, который мы называем Logic Review, позволяет нам узнавать мнения экспертов, ведущих разработчиков, старших разработчиков после того, как мы понимаем, как делать определенную задачу то есть, сверить наше видение реализации проекта с видением тех, кто определяет дальнейшее развитие всего отдела. Он позволяет нам обмениваться знаниями, технологиями, и контролировать однородность и архитектуру стека. Конечно, успеть везде и избежать всех проблем на кодревью невозможно, но такая сверка перед началом разработки позволяет уменьшить их количество.

Можно ли обмануть Review 360?


Напомню, что Review 360 это когда все (разработчики, тестировщики, менеджеры), с кем работал человек, которого нужно оценить, опрашиваются по кругу с помощью опросника. Я об этом процессе рассказывал на Burning Lead. Если команда небольшая, как у нас обычно человек 5-10 то этот процесс, собственно, не нужен: тимлид может сам пообщаться с каждым членом команды. Собственно, он и должен общаться с каждым разработчиком раз в 1-2 недели, чтобы понимать, чего хочет разработчик, какое у него настроение, доволен ли он задачами, как он работает, как проходит его рост. Но, когда команда большая например, у меня сейчас больше 50 фронтендеров то на такое личное общение уже не будет хватать времени. У тимлида есть и другие обязанности и проекты, он обязан развивать отдел, он не может тратить все рабочее время только на общение, которое впоследствии нужно будет еще и проанализировать. Поэтому приходится использовать менее точные подходы например, Review 360.

Можно ли его обмануть я думаю, имеется ввиду то, могут ли разработчики договориться между собой и поставить себе высокие оценки? Наверно, могут, но с менеджером и product owner так не договоришься: эти люди преследуют несколько другие интересы, и это будет легко вычислено. То есть можно, но ненадолго. Со временем станет понятно, что разработчик не делает свои задачи. Если product owner говорит, что разработчик не справляется, а другие разработчики ставят ему высшие оценки, то мы ясно понимаем, что существует проблема: либо product owner на него точит зуб, либо другие разработчики чего-то не замечают (или они договорились).

В целом, я думаю, что 360 Review довольно объективная вещь, и мы их проводим с определенным промежутком времени. Опыта по ним накопили еще не слишком много, но мы постепенно двигаемся вперед и совершенствуем методы подсчета статистики и наборы вопросов.

Расскажите про менеджер зависимости, composer и Laravel


Я знаю, что Laravel хороший PHP-фреймворк, и у нас на нем пишут, но сам с этими технологиями почти не работал.

У вас есть разделение на верстальщиков и JS-разработчиков, или разработчик делает все?


У нас подразумевается, что фронтендер это человек, который пишет на JS вызовы к бэкенду, передает на фронтенд и реализует его. Мы не пишем сложную бизнес-логику и взаимодействия с базами данных. Но можно сказать, что фронтендер это фуллстек, потому что он пишет и на клиенте, и на сервере.

Что нужно знать джуниор-фронтенд-разработчику для работы в компании?


К сожалению, сейчас у нас нет открытых вакансий для джунов, но они бывают. Мы требуем знания теории языка Javascript. Это может показаться абсурдным, потому что теория JS в повседневных задачах вроде бы не нужна; однако мы знаем, что человек, изучивший теорию, умеет работать с информацией и воспринимать её. Кроме того, у него есть мотивация: он сел и разобрался с тем, как язык работает; когда он сталкивается с проблемой или сложным местом, он знает, как искать нужную для решения информацию (даже гуглить надо уметь).

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


Про архитектуру я уже немного рассказывал. Библиотека компонентов у нас есть, их несколько. Есть та, которую мы получаем от Яндекса, чтобы визуальный стиль был одинаковым. Есть дизайн-система, которая говорит, какие сетки, цвета, типографику (и т.д.) мы используем на фронтенде то есть, эта система полностью диктует расположение и цветовую схему. Наконец, библиотека общих между приложениями компонентов, которые мы используем. Приложений у нас больше 20 (26?), и во всех она используется; иногда мы довольно сильно ползем по версиям получаются разные версии в разных приложениях, из-за чего может страдать визуальная часть. Это одна из больших проблем устройства микросервисов с общей библиотекой, но мы стараемся.

Какой размер вашей команды?


У меня две роли в компании: я руковожу отделом порядка 50 человек и одновременно являюсь product owner нашей платформенной команды, там 8 человек.

React Native или Flutter?


У нас были эксперименты с React Native, Flutter тогда был очень новым; мы решили, что выберем React Native.

Яндекс хочет свой фрейм запускать?


Нет, BEM это очень старый фреймворк, он устарел, мы вместо него используем React. Никто не хочет запускать новый фреймворк.
Вопрос: на бэкенде только JS, или есть какие-то legacy-части?
Я рассказывал, что у нас есть сервер с Xscript с XML/XSL. Это как раз и есть наше legacy, мы его активно выпиливаем и хотим как можно скорее прекратить его использовать. В основном в 96% случаев у нас используется JS.

Redux-Thunk или Redux-Saga?


Мы использует Thunk. К Saga был подход; может быть, у нас тогда просто не было ребят, которые достаточно хорошо в ней разбираются, но преимуществ над Thunk мы не увидели. Сейчас уже есть подход с hooks, но пока Thunk очень активно используется.

Вы внутри компании или команды ставите задачи по Smart?


Когда мы делаем проекты, цели ставятся по Smart. То есть, мы должны четко представлять, что мы будем делать и к чему прийти. Новичкам тоже задачи ставятся по Smart. Но я не могу сказать, чтобы уже в процессе разработки всегда были четко прописанные задачи: часто, когда ребята в команде создают задачи, они могут быть совершенно по-разному описаны, но для новичков всегда всё описывается так, чтобы было ясно, как идти и к чему. То есть, не все 100% задач ставятся по Smart, но мы активно используем эту методологию.

Насчет микросервисов сейчас выкатили Module Federation Pack 5, можно ли в эту сторону посмотреть?


Да, но это уже, наверно, не микросервис, а микрофронтенд? Нужно будет анализировать, что можно вытащить из этого; просто в лоб микросервисные задачи на фронтенде не очень хорошо решаются.

В чем разница в управлении 5, 10 и 50 людьми?


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

Будет ли массовый переход на NestJS?


Сложно сказать. Может, завтра появится новый фронтенд-фреймворк, превосходящий NestJS, и мы все будем на него переходить. Я думаю, что сейчас NestJS хорошо проработан, но нужно исходить из задачи. Для многих задач, которые мы решаем на Node, не нужен такой серьезный фреймворк например, для лямбда-функций, которые кто-то будет вызывать; но, когда на фронтенде есть развесистая логика, кажется, что подошел бы лучше Nest. Он сейчас хорошо проработан, есть и бэкенд-фреймворк (хотя он был довольно сырым, когда мы смотрели его). Nest развивается и, может быть, станет более популярным, но я не думаю, что будет массовый переход на него, как на Express.

Чем отличаются собеседования на джуна и миддла? Что оценивается во втором случае?


Когда мы собеседуем джуна, мы проверяем мотивацию человека, базовые знания JS, смотрим на коммуникативность и желание развиваться. С миддлом все интереснее: ведь миддлы это люди, которые пишут основную часть кода наших проектов; у них мало встреч, они большую часть времени именно разрабатывают. Мы должны хорошо проверить его hardskills (задачами), узнать, как он рассуждает, поговорить про архитектуру, спросить, как он организует проекты, рассмотреть его стиль написания кода. У самого миддла уже есть сформированные ожидания относительно компании то есть, с нашей стороны нужно донести, чего мы ждем от него и что можем предложить.

Есть ли какая-то боль в твоей команде, которую хотелось бы решить? С чем это связано, и какое может быть решение?


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

Как строите процесс по управлению таким количеством человек? Сколько лидов? Тяжело ставить цели?


Непросто. Очень много коммуникаций. Вместо официальных лидов у нас в каждой команде роль лидера выполняет самый опытный разработчик, который непосредственно работает и общается с людьми, проводит ревью, декомпозирует и нарезает задачи. С каждым таким лидом мы коммуницируем, пересекаемся на ревью. Есть еще более крупные направления (B2B, B2C), и у каждого направления есть человек, который за него отвечает. Он выстраивает работу в своем направлении, в том числе работу с людьми. Я стараюсь общаться как со старшими разработчиками, так и с ведущими разработчиками направления, как можно чаще; еще у нас есть общие встречи старших разработчиков, где мы обсуждаем новости, проблемы команд и процессов, думаем, что делать. Я думаю, старшие разработчики должны ощущать себя некоторой командой, с которой можно свернуть любые горы сделать процессы такими, как нужно, вместо того, чтобы смиряться с неудобствами.

Проводите 1 на 1? Как часто? Лайфхаки?


Собственно, у нас в компании ревью как раз называется 1 на 1. Сейчас я провожу со всеми старшими разработчиками ревью раз в месяц (это реже, чем рекомендуется лучше проводить раз в пару недель). Зачастую нам есть, что обсуждать. Лайфхаков особых нет в литературе достаточно подробно расписано про 1 на 1. Важно давать разработчику говорить он должен говорить примерно 80% времени; в этом суть: задача руководителя создать на ревью дружественную и безопасную атмосферу, чтобы разработчик мог ему рассказать все, что его беспокоит. Это довольно тяжело и не всегда получается, но круто, если 1 на 1 есть, и на них есть, что обсуждать. Их лучше проводить в неформальной обстановке например, можно в парке. Создание комфортной атмосферы может быть разным это не только переговорка в офисе.

Какие вакансии у вас открыты?


В каком направлении? У нас довольно много в разных направлениях. По фронтенду мы ищем нескольких миддл-разработчиков (по-моему, 2), можно и senior.

Какие сложные задачи возникают у руководителя?


Сложно говорить о сложности задач, когда ты их решаешь. Допустим, отказ от легаси это сложная задача. Есть бизнес, который хочет развиваться; есть ты, руководитель, который хочет, чтобы легаси не стало. Нужно находить общий язык с бизнесом и добиваться внесения в бизнес-план задач по отказу от легаси, что нетривиально. Это требует хороших коммуникативных навыков, хорошего фокуса нужно постоянно держать на пульсе руку; задача бизнеса зарабатывать деньги, он не любит отказываться от работающих легаси-систем.
Сложная задача придумывать задачи по улучшению работы в отделе. Нужно анализировать, с какими проблемами сталкиваются разработчики, не забывать улучшать dev-experience. Выявлять проблемы это тоже нетривиально.

Рассматриваете фронтов на удаленке?


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

Что делать, если тимлид слабоват и явно не должен оставаться на позиции?


Нужно использовать механизм подачи обратной связи. Это мощный и классный механизм, но, конечно, нужно делать это аккуратно, чтобы человек не обиделся. Нужно уметь проявлять эмпатию, понимать чувства человека, давать в правильном направлении обратную связь. Он может либо принять, либо не принять ее; если он стал тимлидом, он должен уметь работать над собой и принимать обратную связь. Важно не просто дуться на него из-за того, что он не дотягивает, а сказать ему конструктивно, что, на ваш взгляд, делается плохо, и узнать его мнение. Я сам не мастер подачи обратной связи, мне еще предстоит этому научиться, но я знаю главное правило: говорить про действие, а не про личность. Если рассказать лиду, какие вещи в команде проседают может быть, все починится.



А что дальше?


30 июня в 20:00 в нашем инстаграм-аккаунте будет выступать Влада Рау Senior Digital Analyst в лондонском офисе McKinsey Digital Labs. Сейчас Влада занимается product/data engineering. До своего переезда в Лондон она дважды стажировалась в Google в Дублине, а также училась в ВШМ СПбГУ и IE Business School в Мадриде.

Задать ей вопрос можно в комментариях к этому посту.



Что было ранее


  1. Илона Папава, Senior Software Engineer в Facebook как попасть на стажировку, получить оффер и все о работе в компании
  2. Борис Янгель, ML-инженер Яндекса как не пополнить ряды стремных специалистов, если ты Data Scientist
  3. Александр Калошин, СEO LastBackend как запустить стартап, выйти на рынок Китая и получить 15 млн инвестиций.
  4. Наталья Теплухина, Vue.js core team member, GoogleDevExpret как пройти собеседование в GitLab, попасть в команду разработчиков Vue и стать Staff-engineer.
  5. Ашот Оганесян, технический директор и основатель DeviceLock кто ворует и зарабатывает на ваших персональных данных.



Подробнее..

Перевод Как заработать на веб-скрапинге

27.06.2020 18:17:18 | Автор: admin
А вы знали о том, что то, что вы сейчас читаете, это данные? Вы видите слова, но на серверах всё это хранится в виде данных. Эти данные можно куда-то скопировать, можно разобраться в их структуре, с ними можно сделать что-то ещё. Собственно говоря, только что мы привели упрощённое описание веб-скрапинга. Скраперы просматривают код, из которого созданы веб-сайты (HTML-код), или работают с базами данных, и вытаскивают отовсюду те данные, которые им нужны. Практически каждый веб-сайт можно подвергнуть скрапингу. На некоторых сайтах применяются особые меры, которые мешают работе веб-скраперов. Но тот, кто достаточно хорошо знает своё дело, способен успешно собрать данные с 99% существующих сайтов.



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

Способ 1: создание ботов


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

Для того чтобы продемонстрировать вам технологию разработки и продажи ботов, я создал бота для Airbnb. Этот бот позволяет пользователям вводить данные о некоем городе и возвращает сведения обо всех жилищах, которые в этом городе предлагает Airbnb. Сюда входят данные о цене, рейтинге, о количестве постояльцев, которое может принять дом, о количестве спален, кроватей, ванных комнат. И всё это делается благодаря применению технологий веб-скрапинга при сборе данных из постов, размещаемых на сайте Airbnb.

Для того чтобы показать этого бота в действии, я собираюсь узнать с его помощью о том, что можно снять в Риме, в Италии. Я передаю боту соответствующие данные, а он, за секунды, находит 272 уникальных предложения и оформляет их в виде удобного Excel-листа.


Теперь с такими данными работать гораздо легче, чем на сайте. Можно, например, сравнить разные жилища и их особенности. Кроме того, эти данные удобно фильтровать. В моей семье 4 человека. Если мы соберёмся в Рим, то нам понадобится Airbnb-жильё с как минимум 2 кроватями, отличающееся адекватной ценой. Благодаря тому, что все данные собраны в удобном формате, в Excel, с ними можно весьма продуктивно работать. Как оказалось, моим нуждам удовлетворяют 7 результатов из 272.


Среди этих 7 результатов я выбрал бы жильё Vatican St.Peter Daniel. У него очень хороший рейтинг и, из 7 найденных результатов, оно самое дешёвое ($67 за ночь). После того, как я нашёл то, что меня заинтересовало, я могу взять соответствующую ссылку из таблицы, открыть её в браузере и забронировать жильё.


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

Люди готовы платить за то, что хотя бы немного облегчает им жизнь.

Способ 2: перепродажа товаров, купленных с хорошими скидками


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

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


В каждом интернет-магазине бывают всяческие спецпредложения и распродажи. В карточках соответствующих товаров обычно показывают исходную цену и цену со скидкой. Правда, обычно разницу между новой и старой ценой, выраженную в процентах, не показывают. Например, если часы обычно стоят $350, а на распродаже $300, то можно подумать, что $50 это отличная скидка. Но это, на самом деле, скидка всего в 14,2%. А вот, например, майка, которая обычно стоит $50, а на распродаже её предлагают за $40. Вроде бы $10 это не так уж и много, но это скидка в 20%, то есть более высокая, чем скидка на часы. Эти сведения позволяют экономить или зарабатывать, находя товары с самыми высокими скидками, выраженными в процентах.

Применим эти рассуждения к анализу цен на товары в универсальном интернет-магазине Hudsons Bay. У них постоянно бывают распродажи товаров самых разных марок. Мы, пользуясь технологиями веб-скрапинга, собираемся найти товары с самыми высокими скидками.


После обработки сайта скрапер выдал более 900 товаров, и, как можно заметить, среди них есть всего один, скидка на который превышает 50%. Это товар Perry Ellis Solid Non-Iron Dress Shirt.


Это предложение, ограниченное по времени, поэтому цена на рубашку, в итоге, скоро вернётся к своему обычному уровню примерно в $90. Поэтому, если бы я купил эту рубашку за $40 и потом продал бы её на $30 дешевле её обычной цены, то есть, за $60, я заработал бы $20.

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

Способ 3: сбор и продажа данных


В интернете море бесплатных, доступных каждому данных. Часто эти данные довольно легко собирать, а значит, они легко доступны тем, кто хочет их как-то использовать. Но, с другой стороны, есть данные, собрать которые не так уж и легко. Для их сбора и представления в виде аккуратного набора данных может понадобиться либо много времени, либо много работы. Это стало основой развития рынка продажи данных. Существуют компании, которые занимаются только тем, что собирают данные, которые может быть непросто собрать. Они приводят эти данные в приличный вид, возможно, делают интерфейсы для работы с такими данными, и, за определённую плату, дают работать с этими данными тем, кому они нужны.


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

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

Как я уже говорил, доступ к данным, которые продаёт сайт BigDataBall, есть не только у этого сайта. Например, на сайте basketball-reference.com размещены те же данные, но они не структурированы и не сгруппированы. То есть работать с ними неудобно, их нельзя просто загрузить, сформировав из них необходимый кому-то набор данных. Именно тут нам на помощь и приходит веб-скрапинг. А именно, я хочу собрать с сайта журналы игроков и оформить всё это в виде структурированного набора данных, напоминающего наборы данных BigDataBall. Ниже показан результат сбора данных


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

Не стоит и говорить, что вы вполне можете заниматься тем же самым, чем занимаются сотрудники BigDataBall. А именно: находить данные, которые сложно собирать вручную, собирать их с помощью компьютера и продавать их тем, кто хочет получить их в удобном для работы виде.

Итоги


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

А вы занимаетесь веб-скрапингом?



Подробнее..

Перевод Опенсорс и эксперименты с виртуальным конструктором LEGO

28.06.2020 18:15:43 | Автор: admin
Моё детство примерно на 20% состояло из Dungeons & Dragons (D&D) и на 80% из LEGO. Эти два занятия очень сильно пересекались. Мне, по разным причинам, не разрешали всё время играть в D&D. Но я, привлекая на помощь воображение, и достигнув в этом деле успехов, достойных плута 15 уровня, понял, что создание персонажей AD&D игрой не считается. Воссоздание вселенной DragonLance средствами LEGO очень хорошо помогало мне быть ближе к игре, которая мне очень нравилась.

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



Теперь, хоть я и стал старше, моя любовь к LEGO не угасла. И хотя я и не могу сказать, что очень уж горжусь своими моделями (их называют MOC-моделями), я почувствовал, что просто должен разобраться с тем, как мне документировать то, что создаю. Я никогда не умел очень уж хорошо рисовать. Поэтому я решил обратиться к компьютеру.

CAD для LEGO


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

А вот системы автоматизированного проектирования (Computer-Aided Design, CAD), это уже нечто другое. CAD-приложения пришли на смену обычным чертежам. В них создают спецификации, иллюстрирующие то, как нечто может быть создано в реальном мире. От этих программ ждут точности и реализма.

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

Для того чтобы построить виртуальную модель LEGO, нужны две вещи:

  • Виртуальные детали LEGO.
  • CAD-приложение.

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

Виртуальные детали LEGO


Для того чтобы раздобыть виртуальное представление практически любого из когда-либо созданных строительных блоков для LEGO-моделей, можете воспользоваться опенсорсным ресурсом LDraw. LDraw это открытый стандарт для цифровых моделей LEGO, который включает в себя возможности по описанию размеров и ориентации элементов. В дополнение к работе по описанию деталей средствами LDraw, силами сообщества подготовлены 3D-модели для каждой детали. Это значит, что все желающие могут загрузить тысячи определений деталей, истратив на это не особенно много трафика.

Установка набора деталей


Виртуальные детали очень похожи на изображения, которые используются на сайтах, или на шрифты, применяемые на компьютере. Собственно говоря, соответствующие файлы можно хранить где угодно. Главное, чтобы приложение, в котором планируется работать с деталями, знало о том, где эти файлы находятся. В Linux LDraw-файлы обычно размещают в папке /usr/share/LDRAW. В Windows это обычно C:\Users\Public\Documents\LDraw.

LDraw даёт в наше распоряжение лишь спецификации для каждой детали. Вот, например, как выглядит код описания кубика 1x1:

0 ~Brick 1 x 1 without Front Face0 Name: s\3005s01.dat0 Author: John Riley [jriley]0 !LDRAW_ORG Subpart UPDATE 2004-010 !LICENSE Redistributable under CCAL version 2.0 : see CAreadme.txt0 BFC CERTIFY CCW0 BFC INVERTNEXT1 16 0 24 0 0 0 6 0 -20 0 -6 0 0 box5.dat4 16 10 24 -10 6 24 -6 6 24 6 10 24 104 16 10 24 10 6 24 6 -6 24 6 -10 24 104 16 -10 24 10 -6 24 6 -6 24 -6 -10 24 -104 16 -10 24 -10 -6 24 -6 6 24 -6 10 24 -101 16 0 24 0 10 0 0 0 -24 0 0 0 10 box4t.dat1 16 0 0 0 0 0 1 0 1 0 -1 0 0 stud.dat0

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

Приложение LDView для визуализации деталей


LDView это среда для 3D-рендеринга, напоминающая POV-Ray или Cycles из Blender. Это приложение создано специально для рендеринга .ldr-файлов, то есть CAD-файлов, содержащих данные в формате LDraw.

Если вы работаете на Linux, то, возможно, вы найдёте LDView в своём репозитории ПО. Если в репозитории этой программы не окажется вы можете скачать установщик с сайта проекта. Если вы пользуетесь macOS или Windows, то вам, опять же, нужно будет воспользоваться сайтом LDView.

Просмотр отдельной детали


Легче всего начать цифровое конструирование моделей LEGO, попытавшись визуализировать отдельную деталь.

Сначала откройте ваш любимый текстовый редактор. Это может быть любая программа. Главное чтобы она могла сохранять документы в виде обычного текста. Некоторые текстовые редакторы, в стремлении оказать пользователям добрую услугу, пытаются сохранять текстовые материалы в файлах, в которых, помимо текстов, есть ещё масса служебной информации (вроде .rtf и .doc). Существует множество хороших кросс-платформенных текстовых редакторов. Я, для наших дел, могу порекомендовать довольно-таки минималистичный редактор Geany.

Создадим новый файл с именем 1brick.ldr и введём в него следующий текст:

0 Name: 1brick.ldr0 Author: Seth Kenlon0 clr x y z a b c d e f  g h i <file>1  1 0 0 0 0 0 1 0 1 0 -1 0 0 3001.dat

А теперь взглянем на наше скромное творение:

$ LDView 1brick.ldr


Кубик LEGO

Только что вы создали простой CAD-файл, описывающий один кубик (а именно модель номер 3001), цветовой индекс которого равняется 1 (это синий цвет), расположенный в позиции (0, 0, 0) по осям X, Y и Z. Поворот кубика регулируется с использованием средств матричного преобразования. Их применение, надо признать, не относится к простым математическим вычислениям. Правда, при конструировании LEGO-моделей произвольное вращение деталей требуется сравнительно редко, так как большинство деталей стыкуются друг с другом с использованием шипов.

Любая строка в файле, начинающаяся с 0, содержит либо комментарий, либо метаданные. Строка, начинающаяся с 1, содержит описание детали.

Вы можете попрактиковаться в перемещении и вращении деталей, внося изменения в свой CAD-файл. Обычный кубик имеет в высоту 24 LDU (LDraw Units). Это значит, что ставить детали друг на друга можно, меняя их координату Y с шагом в 24 единицы. Поворачивать детали можно, выполняя матричные преобразования.

Взгляните на этот код:

0 Name: 1brick.ldr0 Author: Seth Kenlon0 clr x y z a b c d e f  g h i file1  1 0 0 0 0 0 1 0 1 0 -1 0 0 3001.dat1  2 0 24 0 -1 0 0 0 1 0  0 0 -1 3001.dat

Вот результат его визуализации.


Два кубика

Конечно, перемещать детали можно вдоль любой из трёх осей. В спецификации LDraw сказано, что кубик 1x1 имеет 20 LDU в ширину и 20 LDU в длину. А это значит, что расставлять такие кубики вдоль оси X можно, меняя их позиции с шагом в 20 LDU.

0 Name: 1brick.ldr0 Author: Seth Kenlon0 clr x y z a b c d e f  g h i file1  1 0 0 0 0 0 1 0 1 0 -1 0 0 3001.dat1  2 0 24 0 -1 0 0 0 1 0  0 0 -1 3001.dat


Ещё два кубика

Порядок сборки модели


Чаще всего формат LDraw используется для того чтобы продемонстрировать порядок сборки модели. А это значит, что нужно описать последовательность шагов сборки. В LDraw это делается с использованием метакоманды STEP.

Для того чтобы испытать эту метакоманду, добавьте в свой файл, между описаниями деталей, следующее:

0 STEP

Готовый файл будет выглядеть так:

0 Name: 1brick.ldr0 Author: Seth Kenlon0 clr x y z a b c d e f  g h i file1  1 0 0 0 0 0 1 0 1 0 -1 0 0 3001.dat0 STEP1  2 0 24 0 -1 0 0 0 1 0  0 0 -1 3001.dat

Теперь в вашем проекте описано два шага. На первом выводится первый кубик, на втором второй. Можно пошагово просматривать .ldr-файлы, пользуясь клавишами-стрелками в верхней панели инструментов LDView, находящимися около подписи Steps.


Панель инструментов для пошаговой визуализации моделей

На одном шаге необязательно должен выводиться лишь один кубик. Как и в случае с инструкциями к наборам LEGO, установку нескольких деталей можно объединить в один шаг. Главное, чтобы это не повредило понятности инструкции.

В LDraw есть и другие команды. Например тут можно рисовать линии, поясняющие расположение деталей, и делать прочие подобные вещи. Соответствующие сведения можно найти в спецификации.

Выяснение кодов деталей


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

Если учесть то, что в LEGO имеется более 11000 уникальных деталей, искать цифровые детали так же сложно, как и обычные. У каждой официальной детали LEGO есть собственный код. Например, тот кубик 2x4, который мы использовали в примере, имеет код 3001. Если вам известен код детали, вы можете просто использовать его в CAD-файле, и соответствующая деталь появится в вашей модели.

В дистрибутиве LDraw имеется файл parts.lst, в котором, с помощью grep, можно найти нужную деталь. Но детали там не всегда описаны по одной и той же схеме. Работая с этим файлом не всегда легко предугадать то, какие именно ключевые слова соответствуют тем или иным деталям. Например как понять, какое слово, curved sloped или angled, лучше всего характеризует некую деталь сложной формы?

Хотя искать детали можно и в parts.lst, в этом деле нам могут помочь некоторые специальные интернет-ресурсы:

  • Lugnet это пользовательская группа, в которой есть база данных со сведениями о кодах деталей LEGO, построенная на основе сведений, взятых из LDraw.
  • BrickLink хороший каталог деталей.
  • Rebrickable ещё один ресурс, на котором есть каталог деталей.

Другие средства для рендеринга моделей


После того, как вы создали свой шедевр, LDView может экспортировать вашу модель, что позволит вам отрендерить её в высоком качестве. Для этого можно воспользоваться POV-Ray опенсорсной программой для фотореалистичного рендеринга трёхмерных моделей. В результате плоды ваших трудов можно будет представить в весьма привлекательном виде. Найти POV-Ray можно или в репозитории программ вашего дистрибутива Linux, или на сайте проекта.

Вот пример команды рендеринга:

$ povray +I1brick.pov +Q11 +W4196 +H2160 +O1brick-high.png

Ниже показан результат визуализации.


Высококачественная визуализация модели

Если вам нужна программа для формирования инструкций по сборке моделей попробуйте опенсорсную LPub3D. Эта программа выводит пошаговые инструкции и список деталей, необходимых на каждом шаге.


LPub3D

Исследование мира LEGO


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

Кроме того, эксперименты с цифровым вариантом LEGO позволяют создавать виртуальные модели, которые могут быть очень сложными, и могут включать в себя любые детали, даже такие, которых нет у создателя модели. Цифровые детали LEGO можно использовать для создания анимаций, для подготовки иллюстраций сложных моделей, или даже для проектирования собственных деталей. В Сети есть несколько сообществ любителей LEGO, и многие из них, вроде BrickHub.org, публикую прекрасные рендеры, в основе которых лежат LDraw-файлы.

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

А вам нравится LEGO?



Подробнее..

Как Тильда убивает рынок веб-фриланса

29.06.2020 12:20:00 | Автор: admin

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

Tilda это визуальный редактор, возведенный в абсолют. В нём можно мышкой набросать статическую страницу произвольной длины и сложности, добавить туда немного динамического функционала, доступного из коробки, и в пару кликов всё это опубликовать. Это очень просто. Слишком просто.

Это зло


Я прозрел, когда пришел в большой проект на Тильде. К тому моменту я успел запустить на ней несколько сайтов разной сложности и был в целом доволен платформой, той легкостью, которую она давала. В проекте почти не нужна был динамика, но была тонна статики, которую мне предстояло организовать и причесать под единый стиль. Сайтом до этого занимался человек, максимально далёкий от дизайна и вёрстки, и в первый же день я сразу всё понял и про человека, и про Тильду, и про грёбаный ужас, который получается когда эти двое встречаются. У сайта был поддомен, на котором шли вообще все продажи, то есть все деньги на сайте крутились на этом поддомене. Знаете, сколько весила его главная страница? СЕМЬДЕСЯТ ВОСЕМЬ МЕГАБАЙТ. Она грузилась ВЕЧНОСТЬ. Что-то купить на сайте можно было только через неё.

Что там так много весило? Картиночки. Вся страница состояла из десятков полноэкранных блоков, на каждом из которых было 3-5 картинок и гифок, в том числе очень тяжеловесных. Некоторые картинки занимали область порядка 300*200 пикселей, но загружались в разрешении 3000*2000. Некоторые гифки весили по 5-10 мегабайт. Это был настоящий Содом, и самое грустное в том, что мне не дали его полностью переписать, только сжать картинки и выкинуть часть бесполезных, уродских гифок.

Тогда я сообразил, что с большой силой приходят большие проблемы. Легко выбрать Тильду, когда вам не нужен сложный дорогой сайт, легко на ней править тексты и картинки, менять дизайн. Но рано или поздно у вас не будет хватать времени или просто станет лень делать всё по уму, грамотно верстать, следить за отступами, адаптивностью, сжимать картинки перед загрузкой (потому что Тильда хоть и пережимает качественные фотографии, на размер файла это сжатие почти не влияет). И тогда ваш милый, аккуратный сайтик захлестнёт волна дерьма, и на него будет неприятно заходить.

А всё почему?


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

Честно говоря, я вообще плохо представляю аудиторию WYSIWYG-редакторов сайтов. До Тильды большинство из них работало через задницу и что-то вменяемое делали только на таком же условно-бесплатном Wix, который обладает всеми теми же недостатками. Так вот, кому нужны визуальные редакторы? Малому бизнесу, который не может отвалить денег за хороший проект? Всяким авторам персональных страничек? Неважно, кто и с какой целью приходит, итог всегда один: сайтом так или иначе занимается один человек, и внешний вид сайта напрямую зависит от его дизайнерских навыков, как правило скудных. А вот функционал вообще от него не зависит и по сути определяется левой пяткой разработчика редактора. Для мелкой статики типа портфолио или странички автосервиса с контактами и формой это не страшно, но стоит немного подрасти и вы попадаете в ад.

Тильда это не Вордпресс


Тильду любят сравнивать с Wordpress. Она изначально выглядит выигрышнее, с её кастомизацией любых элементов, цветов фонов и возможностью в один клик редактировать текст в любом месте страницы. Но с точки зрения динамического функционала WP гораздо, гораздо лучше. Он весь пронизан огромным количеством плагинов для самых разных задумок, и всегда можно дописать новый. Например, интернет-магазины на WP в основном работают на WooCommerce, для которого есть куча тем, плагинов, кастомизации. В Тильде же полноценный интернет-магазин построить практически невозможно, несмотря на заявленный функционал. Есть корзина, есть карточки товаров, можно что-то несложное продавать (курсы, например). На всём остальном Тильда тупо ломается: нету кастомизации корзины, нету хуков вообще, нету даже полноценной базы данных, работающей из коробки! Как следствие, нет фильтрации и сортировки и много чего еще. Если же в Тильде вам чего-то не хватает, есть два пути либо попытаться заколхозить решение через HTML-вставки (соответственно, стили и скрипты подключаются через них же), либо писать в техподдержку и просить допилить.

Кстати, о техподдержке. С ней всё просто:

  1. Она всегда перегружена.
  2. Ей на тебя плевать, если ты не проплатил бизнес-аккаунт.


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

Zero blocks


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


Даже в оформлении плейсхолдера решили не запариваться с адаптивной версткой. И так сойдёт!

Надо сказать, что 99% дизайнерского дизайна на Тильде делается в зеро-блоках (потому что стандартные блоки слишком сильно урезают полёт фантазии и используются исключительно для удобства редактуры), и по моему опыту, по уровню аккуратности и внимания к деталям делаются в точности как на картинке выше.

Mobile friendly


Ещё из хронических болезней Тильды нельзя сделать кастомные меню и навбары, просто нет такого функционала. А готовые очень часто плохо переверстываются на мобильных экранах, заставляя прибегать к особо циничному костылингу одной менюшке устанавливается область отображения от 1200px ширины и больше, другой 1199 и меньше. Всё бы ничего, по сути обычное разделение по @media-запросу, но из-за невозможности адекватно настроить размеры мобильных шрифтов и отступов постепенно половина сайта переезжает на такие дублирующиеся блоки, каждый из которых надо редактирвоать отдельно и следить чтобы ничего не поехало. Отдельный кайф доставляет последовательное отображение этих блоков на странице редактирования, что увеличивает её в полтора-два раза.

Альтернативы


Для преимущественно статического сайта как нельзя лучше подойдёт большинство инструментов JAMstack. Это метод разработки, требующий генерации валидного HTML на этапе деплоя, исключая рендеринг как таковой. Работает максимально быстро, но почти исключает использование динамического контента.

Отличный вариант для размещения статики вроде блога использование Static Site Generator (SSG) в связке с GitHub Pages. Статей и туториалов много, вот например.

С JAMstack также тесно связаны headless (или API-driven) CMS. Они дают больше гибкости, приближаясь по функционалу к традиционным CMS (вот актуальное сравнение с WP), но сохраняют легковесность и безопасность. Подходят для всего, от блога до интернет-магазина, но как правило требуют приличного количества разработки.

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

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

Мораль


Я понимаю, Хабр не самое подходящее место чтобы вещать на аудиторию Тильды. Здесь сидят не домохозяйки с менеджерами, а разработчики и даже тех же фрилансеров тут немного. Но у меня есть мнение и я хочу донести его до всех сопричастных:

  • Тильда зло.
  • WYSIWIG-редакторы сайтов зло.
  • Дизайнеры визуальной вёрстки зло.
  • Фриланс добро.
  • Разделение обязанностей обязательно.




Подробнее..

Перевод Встречаем Angular 10

29.06.2020 18:10:05 | Автор: admin
Вышел Angular 10.0.0! Это мажорный релиз, который затрагивает всю платформу, включая сам фреймворк, библиотеку компонентов Angular Material и инструменты командной строки. Размер этого релиза меньше, чем обычно. Дело в том, что с момента выхода Angular 9 прошло всего 4 месяца.

Мы стремимся к тому, чтобы выпускать каждый год по два мажорных релиза. Делается это по разным причинам. Во-первых чтобы Angular шёл бы в ногу со временем и соответствовал бы современному состоянию экосистемы JavaScript. Во-вторых чтобы у Angular был бы предсказуемый график выхода новых релизов. Angular 11 мы планируем выпустить этой осенью.



Поговорим о том, что нового появилось в Angular 10.

Новый компонент для выбора диапазонов дат


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


Новый компонент

Для того чтобы им воспользоваться, вам понадобятся компоненты mat-date-range-input и mat-date-range-picker.

Вот пример его применения.

Здесь можно узнать подробности о нём.

Предупреждения об использовании CommonJS-импортов


Когда пользуются зависимостями, упакованными в формате CommonJS, это может привести к увеличению размеров приложения и к снижению его производительности.

Начиная с Angular 10 система будет выдавать предупреждения в том случае, если в сборках используются подобные бандлы. Если вы столкнётесь с такими предупреждениями, касающимися ваших зависимостей, перенастройте проект, указав, что вы предпочли бы ESM-бандл (ECMAScript Module).


Применение CommonJS- или AMD-зависимостей может приводить к необходимости принимать меры, помогающие оптимизации проекта

Особый режим, в котором применяются более строгие параметры проекта


Angular 10 предлагает разработчику более строгий вариант настроек проекта, применяемый при создании нового рабочего пространства командой ng new. Вот как это выглядит:

ng new --strict

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

  • Включается строгий режим в TypeScript.
  • Включается строгий режим при проверке типов в шаблонах.
  • Стандартные ограничения размеров различных частей бандла становятся примерно на 75% строже.
  • Включается использование правил линтинга, предотвращающих объявление сущностей типа any.
  • Приложение настраивается так, чтобы его код был бы лишён побочных эффектов, что позволяет эффективнее применять механизм tree-shaking.

Поддержка возможностей Angular в актуальном состоянии


Как это обычно делается в новых релизах Angular, в этот раз мы внесли некоторые изменения в зависимости. Это позволяет Angular использовать самые современные решения из экосистемы JavaScript.

  • Используемая версия TypeScript увеличена до 3.9.
  • Библиотека TSLib обновлена до версии 2.0.
  • Обновлён, до версии 6, линтер TSLint.

Мы, кроме того, поменяли структуру проекта. Начиная с Angular 10 вы сможете работать с файлом tsconfig.base.json. Этот дополнительный tsconfig.json-файл лучше поддерживает механизмы разрешения типов и настроек пакетов, используемые IDE и средствам для сборки проектов.

Новая стандартная конфигурация браузеров


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

Вот параметры браузеров, применяемые по умолчанию в Angular 9.


Параметры браузеров, используемые в Angular 9

Вот что используется в Angular 10.


Параметры браузеров, используемые в Angular 10

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

Улучшение взаимодействия с сообществом любителей Angular


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

Удалённые возможности и возможности, пользоваться которыми не рекомендуется


В Angular 10 мы кое-что убрали, а кое-какие возможности отнесли к разряду запланированных к удалению.

Так, теперь в Angular Package Format больше не входят бандлы ESM5 или FESM5. Это экономит примерно 119 Мб трафика при выполнении команд yarn или npm install для пакетов и библиотек Angular. Эти форматы больше не нужны, так как преобразования, необходимые для поддержки ES5, выполняются в конце процесса сборки.

Мы, основываясь на серьёзном обсуждении с сообществом, решили отказаться от поддержки устаревших браузеров, включая IE 9, 10, а так же Internet Explorer Mobile.

Подробности о том, что удалено из Angular 10, и о том, что признано устаревшим, можно почитать здесь.

Обновление до Angular 10


Для того чтобы узнать подробности об обновлении Angular посетите ресурс update.angular.io. Для того чтобы в ходе обновления всё шло бы хорошо, мы рекомендуем, за один шаг обновления, всегда обновляться лишь до одного мажорного релиза.

Если описать процесс обновления буквально в двух словах, то выглядеть это будет так:

ng update @angular/cli @angular/core

Здесь можно найти подробные сведения об обновлении Angular до версии 10.

А вы уже обновились до Angular 10?



Подробнее..

Новичкам фондового рынка честный разговор об акциях

30.06.2020 12:04:28 | Автор: admin
Телеграмму накатал:

Шлите денег отбатрачу,
Я их все прохохотал.

/В.Высоцкий/


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


Источник

Важный Disclaimer


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

  • Наша серия статей для новичков всех специальностей, а не только для программистов, аналитиков и математиков. Именно поэтому мы не окунаем читателей в разработку своих алгоритмов и сложную аналитику.
  • Мы знаем сами и убеждаем вас работа на бирже не быстрый и не лёгкий способ заработать. Заработать на основной работе и фрилансе проще и эффективнее. Но поскольку интерес к фондовым инструментам непрерывно растёт, мы хотим осветить эту тему доступно для всех. Во многом мы стараемся предостеречь читателей от потери больших сумм.
  • Мы не продаём никакие финансовые продукты и стратегии, единственное, что есть у RUVDS для желающих попробовать себя на фондовом рынке, это сервера с предустановленным ПО METATRADER 5 (такая классная платформа со своим языком программирования и огромными возможностями). Такие же у нас есть и для любых других целей.
  • Если у вас есть вопросы и пожелания, пишите в комментариях. Возможно, в конце цикла мы выпустим публикацию с ответами на наиболее важные вопросы.

Что такое акция?


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

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

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

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

Компании выпускают акции, чтобы привлечь деньги инвесторов. Как только происходит IPO (Initial Public Offering) на бирже, компания становится открыта для внешнего инвестирования. Ну и конечно, вокруг акций компаний начинаются рыночные торги (спекулятивные покупки и продажи и т.д.), то есть пока компания пользуется деньгами инвесторов, инвесторы пользуются акциями для получения спекулятивного дохода (ну или дивидендного дохода).

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

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

Как выбрать акции для покупки?


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

Реальная история автора. В далёком 2008 году я скопил 80 000 рублей и хранил их в банке. Уже тогда я, выпускник финансового факультета, мечтал о карьере финансового воротилы, поэтому следил за всем рынком и торговался в учебных программах за демо-деньги. И вот я увидел, как на фоне кризиса акции Газпрома поехали вниз. Одухотворённый инсайтом, я прямо в обед отпросился из офиса и умчался в банк покупать акции на свои единственные (!) накопления. К моей чести, в банке было 160 человек с такими же симптомами жажда купить/продать свою частичку Газпрома, духота, давка, обмороки. Спустя два обеда я купил акции (обменял свои реальные и многострадальные деньги на запись по счетам) и был счастлив. Уоррен Баффет и Джордан Белфорт никогда себя так не ощущали! Ровно до того момента, как акции превратились в тыкву К слову, моя заработная плата была 19 700. Умён, а?! Кстати, те акции у меня до сих пор на руках. Как памятник моему долбо ну вы поняли.

Итак, в начале августа 2008 я купил 300 акций на 75000 рублей (по 250, на бирже стоили 242), тогда это было шикарное понижение с пика в 360 рублей за акцию. С того момента акции достигали 260 всего пару раз, и на данный момент при цене 193 рубля за акцию я имею 57 900 из своих 75000. Плюс 28 800 дивиденды за всё время. Итого 86 700 р. С учётом инфляции так себе утешение.

Если бы я положил все 80 000 на это время на депозит (средняя ставка за эти годы примерно 5,5%), то сегодня у меня было бы почти 137 000 рублей. Согласитесь, яркая картина ошибки новичка.


Давайте остановимся и извлечём важные уроки для новичков из этого реального примера.

  • Не торгуйте на эмоциях и на падении вашей экспертизы точно не хватает для таких рисков.
  • Не тратьте на формирование портфеля акций последние или важные деньги (например, первый взнос на ипотеку или автомобиль).
  • Не приобретайте ценные бумаги бесцельно, ради эксперимента у вас должна быть стратегия и приблизительная финансовая цель с заданным периодом её достижения. Так вы будете работать над эффективной стратегией, а не искать доход путём перебора.
  • Не приобретайте акции на основании одно фактора: разового падения, выхода новой продукции, назначения нового руководителя и т.д.
  • Не считайте себя покорителем Уолл-стрит, Санкт-Петербургской или Московской биржи. Вспомните себя в первый рабочий день в жизни примерно так же поначалу стоит себя ощущать на фондовом рынке, даже если вы мощный программист, который написал торговый алгоритм. Слишком много подводных камней.

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

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

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

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

Составлять портфель акций стоит не наобум, а исходя из стратегии и анализа.

Методы выбора акций


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

Метод покупки акций Дурацкая четверка


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

Так появилась до дурацкого простая стратегия.

  • Смотрим акции компаний из индекса Доу-Джонса (это вам на Санкт-Петербургскую биржу) и выбираем 10 с самыми высокими дивидендами (эта информация всегда открыта).
  • Выбираем из них пятёрку акций с самой низкой ценой.
  • Инвестируем в акции со второй по пятую, причём 40% денег уходит в компанию с самой дешёвой акцией, а остальные 3 части по 20% в три оставшиеся.

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

Покупка акций под конкретную идею


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

Приведу два ярких примера из последних двух лет.

Первая Apple. В последнее время акции компании хоть и продолжали расти по тренду, но проседали в отдельные периоды, в том числе на фоне экономических войн и особенно заметно на фоне пандемии COVID-19, когда пришлось закрыть заводы в Китае, а потом принять ограничительные меры для магазинов розничных продаж. Однако 15 апреля 2020 года компания в точном соответствии со слухами представила миру удачный сиквел легенды iPhone SE второго поколения. Это достойное устройство, которое хорошо само по себе, но и имидж старшего брата явно сыграет на руку объёму продаж. После этого события начался небольшой рост, который продолжился более уверенным после выплат дивидендов, превышающих прошлогодние. На графике легко увидеть эти события (D это дивиденды):


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


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

Метод покупки сильно недооцененных акций


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

К грэма = (активы компании долги компании) / количество акций компании

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

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

  • Не нужно бросаться покупать такие акции сразу сперва узнайте причину снижения стоимости акций и отрезок времени, на котором происходило падение.
  • Цена не должна быть слишком низкой и постоянно падать на историческом отрезке бросовые акции приобретать опасно, они могут иметь низкую ликвидность.
  • Отношение цены акции к остаточной стоимости основного капитала не должно превышать 0,8.
  • Долги компании, приходящиеся на одну акцию, должны быть менее 10% от её цены.
  • Отношение цены акции к оборотным средствам компании должно быть положительным (положительный денежный поток).
  • Отношение цены акции к объему продаж продукции компании не должно быть выше 0,3.
  • Средний объем торгов за день должен составлять не менее 10 000 акций это, кстати, практически золотое правило для акций любой компании. Объём ниже может говорить о низком спросе на акции, их низкой ликвидности и, как следствие, невостребованности рынком. Кстати, необычный всплеск объёма торгов наблюдается в кризисные периоды, когда все стремятся избавиться от активов на фоне падения рынка.

Я вам здесь привёл три стратегии и, кажется, что первые две ну очень простые, однако во всех случаях рекомендую проводить финансовый анализ деятельности компаний. Погрузиться в это довольно просто: можно просто изучить тему в интернете либо (по мне так, идеальный вариант) купить хороший учебник по финансовому анализу и экономике предприятия. Формулы там далеко не из высшей математики, а вот понимание всех параметров финансовой отчётности вам пригодится (кстати, вам придётся также научиться читать отчётность МСФО (Международные Стандарты Финансовой Отчетности). Это, конечно, вам потребуется со временем и освоится довольно быстро.

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

К слову, вы можете приобрести у вашего брокера готовые пакетные стратегии с учётом свободной суммы, периода вложения, допустимого риска и ожидаемой доходности. Как показывает мой опыт, готовые портфельные стратегии имеют годовую доходность чуть выше банковского депозита и редко улетают в ноль. Но это не ваша работа и не ваше развитие внутри фондового рынка. Это просто способ сохранить и чуть-чуть приумножить деньги (помните об инфляции и о необходимости уплаты НДФЛ 13%).

С чего начать анализ акций?


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

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

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

Дополнительно в основе технического анализа лежит тезис о том, что график цены актива учитывает всё. Это чистая правда: вся необходимая информация уже отражена в динамике цены. Учитываются как объективные факторы, так и психологический настрой трейдеров (например, сейчас вы можете видеть, как каждое сообщение о микровспышке COVID-19 основательно пессимизирует рынок).


Иногда технический анализ выглядит так :)

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

Давайте немного познакомимся с интерфейсами аналитических сайтов.

Заходим на классный сайт investing.com (можно выбрать любой другой).

Мне надоело говорить о Газпроме, давайте рассмотрим акции Tesla


Вы можете увидеть вкладки с новостями по эмитенту, технический анализ (настоящий), форум и т.д. Если вы изучите исторические данные и посмотрите, как влияли события на рост, вы уже сможете понять, стоит ли иметь дело с компанией. Например, высказывания Маска и аварии Tesla на дорогах влияют на движение трендов цены акций гораздо ощутимее, чем презентация Tesla Cybertruck (реакция инвесторов была довольно сдержанной).

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

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


Именно графики разного типа лежат в основе технического анализа. Подробный пример с техническим анализом, сделанным без программы и алгоритма, можно посмотреть здесь (классно разжёвано, нет смысла нам здесь разбирать пример так же).

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

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

Существуют такие вот рекомендации по акциям на основе технического анализа:


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

Для изучения финансового анализа рекомендую вам такие книги:

  • Алексей Герасименко Финансовая отчётность для руководителей и начинающих специалистов
  • Бенджамина Грэхема Разумный инвестор

Для технического анализа:

  • Джек Швагер Технический анализ. Полный курс
  • Джон Мэрфи Технический анализ фьючерсных рынков: теория и практика


Как купить акции и начать с ними торги?


Простой путь


Можно купить акции у эмитента (условно, прийти в Сбербанк и купить акции Сбербанка). Коротко поговорим об этом способе, так как такое инвестиционное поведение имеет место быть. Помните мою историю с Газпромом? Ну так вот, многие тогда купили акции по цене аж в 111-115 рублей и просто держали с того самого 2008 года по 2019-ый. И они немного выиграли, а это не какие-то там трейдеры, а просты пенсионеры, бюджетники и клерки, в которых была жива память о ваучерах (во мне тоже была жива, мозгов не хватало). Они, конечно, не сильно прикидывали стратегию, просто повезло. А вот профессионалы на этих крутых горках заработали очень неплохие капиталы (из реальных простых физиков, кто сидел на QUIK с незапамятных времён, есть результат трёшка в Питере на сочетании кропотливой работы с акциями Газпрома, Сбера и с валютой).

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

Совет простой: если хотите вложить деньги вот так вдолгую, получать дивиденды и потом просто продать акции, то лучше делать это через ИИС (индивидуальный инвестиционный счёт). Не буду здесь писать, что это такое и почему это удобно и выгодно, оставлю ссылку на хороший пост (спойлер: ИИС вещь).

Путь самурая


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

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

Торговые терминалы (QUIK, Metatrader и проч.) в современном мире это важная штука, настоящая торговая платформа, где у вас есть возможность проводить технический анализ, работать с котировками, открывать и закрывать позиции, писать свои алгоритмы (тут Metatrader особенно хорош). Обычно все эти терминалы запускаются с десктопа (ну и выглядят, к слову, как суровый информативный и аналитический десктопный софт). Однако в 2020 году для трейдинга лучше использовать платформы, размещённые на VPS это истина, написанная нервами.

У RUVDS есть специальные образы с трейдерским софтом (для рукожопов), позволяющие запускать адские машинки по смыву семейного бюджета даже на servercore (так, вы же помните, что до середины пути профессионального трейдера нельзя торговать на панике, на негативе и использовать для торговли последние деньги или деньги, отложенные на важные покупки?).

Тут стоит остановиться и сказать, что у нас есть все основания сказать, что в VPS для трейдеров мы лучшие (даже не боясь ФЗ О рекламе): 1. у нас 10 дата-центров по всему миру; 2. умеренные цены на VPS, в которые уже включены лицензии OS Windows (все платформы работают только на ней; 3. мы раньше сами торговали роботами и знаем толк во всех этих крайне важных для автоматизированного трейдинга пингах, latency и т.д. 4. брокеры выбирают именно нас (можете посмотреть в списке клиентов, мы обещали их не рекламировать не рекламируем).

Так, ладно, завязываем с хвастовством. Важно другое.

  1. Торгуя с помощью VPS, вы торгуете довольно секьюрно: ни домашние, ни родные, ни коллеги не спалят, что было у вас на рабочем столе. К тому же никто случайно лапой, мохнатой и хвостатой задницей или ручкой пятилетки не залезет в терминал и не устроит обвал на биржах и ваш личный инвесторский дефолт (про обвал преувеличено, про личные баги их-за посторонних вмешательств жизнь).
  2. Ваши интерфейсы для торговли доступны 24/7 из любой точки мира, где есть интернет, и доступны в том числе через любой терминал, включая планшет и смартфон. Учитывая, что чем дальше, тем больше внимания нужно уделять трейдингу, это очень удобно.
  3. Как только вы отключаетесь, доступ к VPS закрывается, поэтому можно не бояться утери смартфона или ноутбука диким волкам с Уолл-стрит может достаться оборудование (что печально), но не достанется возможность ого, это чё, щас нажмём торгануть вашими активами. Это сейчас смешно, а когда дело доходит уже до 100 000 рублей в обороте, настигает паранойя (про миллион и выше мы молчим, начинающий инвестор резко эволюционирует в серьёзного делового человека с натянутыми стальными канатами вместо нервов).

Короче, записывайте формулу:

торговый робот (платформа, терминал) + VPS = скорость, безопасность, доступность

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

Ваша стратегия торгов сперва будет больше похожа на копирование шагов других трейдеров, но постепенно у вас сформируется своя стратегия. Главное, соблюдать ряд важных правил (и лучше помнить о них всегда).

  • Золотое правило: не шортить (не открывать короткие сделки за счёт получения кредита с плечом от брокера).
  • Не бояться фиксировать убыток и не держать токсичные активы, даже если это грозит вам определённым убытком.
  • Не покупать акции в стадии активного роста.
  • Не покупать акции с негативной репутацией в надежде на отыграть свой доход.
  • Отказаться от приобретения акций компаний-банкротов.
  • Не покупать акции с низкой ликвидностью.
  • Обязательно обращать внимание на дивиденды иногда они покрывают курсовую разницу и выгоднее держать акции ради них (а иногда ради них строить целую стратегию).
  • Быть психологически готовым к убыткам и прибыли, не впадать в азарт, а действовать максимально трезво, хладнокровно и разумно. Это действительно очень трудно, в начале работы с фондовым рынком вы познакомитесь и с паникой, и с эйфорией.

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

Главная причина потери денег в процессе работы с фондовым рынком нехватка знаний. Я сейчас пишу эту статью с некоторым чувством досады, потому что понимаю, что подготовка к работе с фондовым рынком это почти 2 курса вуза и это муторный, сложный процесс. Гораздо приятнее вдохновиться залихватским рассказом опытного инвестора и начать ковырять терминал. И правильно: начинайте, но при этом вы просто обязаны освоить основы фундаментального и технического анализа, финансовой отчётности и проч. Непрерывное самообучение путь серьёзного трейдера. Если вы сразу вламываетесь в терминал хей-хей, у меня 100 000, ставлю на всё, то для вас есть совет из анекдота не умеешь летать не выпендривайся. Не обижайтесь.

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

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

Приступая к работе с акциями в частности с фондовым рынком в целом, помните, что это не разовая игрушка и не компьютерная игра. Эта деятельность легко становится вашей второй работой и отнимает много времени. Я убеждён, что в наше время попробовать себя в инвестировании, освоить основы трейдинга исключительно полезно и нужно, потому что это важная часть экономики и даже ИТ-сферы. Но, начиная, всегда сопоставляйте риски: возможно, добавив к вашей основной работе 2-3 часа нагрузки или взяв сайд-проект по основной специальности, вы заработаете проще и больше.

Решать только вам.

P.S.: в следующей серии будут облигации, там всё гораздо проще. Или нет.



Подробнее..

Перевод Прости, React, но я так больше не могу

30.06.2020 16:15:52 | Автор: admin
Недавно мне попалась фраза усталость от JavaScript, JavaScript fatigue, и я мгновенно понял, что это про меня.

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



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

Но я, почти всегда, ничем таким не занимался. Дело тут было в том, что React и JavaScript, если стремиться быть в курсе всего, что в этих сферах происходит, отнимают слишком много сил и времени. Иногда я по-настоящему опасался того, что мои знания и навыки могут устареть. Всё это оставляло мне очень мало времени на то, чтобы исследовать что-то новое.

Переломный момент


Однажды я понял, что мне придётся платить по счетам усталости от JavaScript. Тогда вышел релиз библиотеки Recoil, предназначенной для управления состоянием компонентов в React. Ещё совсем недавно я зарылся бы в документацию, попробовал бы библиотеку, вдоволь начитался бы исходного кода, стремясь вникнуть в детали реализации. Но в тот раз мне ничего этого делать не хотелось.

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


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

Я хочу объяснить всё предельно ясно, на тот случай, если это прочтёт мой работодатель. Я по-прежнему буду любить свою работу, связанную с JavaScript и React. С понедельника по пятницу я буду предан своему делу так же, как был предан всегда. Я буду учиться новому и пробовать новые инструменты. Но, вне рабочих часов, я, вероятно, буду занят чем-то другим.

Что дальше?


Я пока ещё стою на распутье, но у меня есть некоторые идеи.

Написание статей


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

Небольшие эксперименты с архитектурами, применяемыми в крупномасштабных проектах


Подобные эксперименты можно проводить, пользуясь бесплатным тарифным планом AWS. Раньше мне интересно было этим заниматься. Скажем, я брал простой список кофеен и, на базе SAM, делал из него нечто нереально раздутое. В этом проекте использовались лямбда-функции, DynamoDB и SNS.


Интересные эксперименты с переусложнённой архитектурой

Изучение Rust


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


Результаты исследования Stack Overflow 2020 года

Дело в том, что Rust, 5 лет подряд, лидирует в исследованиях Stack Overflow как самый любимый язык программирования.

Кроме того, меня сильно привлекает то, что Rust компилируется в WASM. А WebAssembly это ещё одна технология, которую мне хотелось бы освоить.

Для того чтобы облегчить себе жизнь, я могу начать с Yew. Это Rust-фреймворк, предназначенный для разработки веб-приложений, создателей которого вдохновила библиотека React. Yew это фреймворк, основанный на компонентах, в котором используются что-то вроде JSX.

Или, хотя это, вероятно, будет сложнее, я, возможно, попробую создать на Rust какой-нибудь инструмент командной строки.

Разработка мобильного приложения на Flutter


Я никогда особенно не интересовался мобильной разработкой. Именно поэтому я и собираюсь её попробовать.


Flutter-приложения пишут на Dart

Во Flutter меня привлекает то, что, используя этот фреймворк, мне не придётся думать о том, для iOS или для Android мне писать приложение. То, что сделано на Flutter, заработает и там, и там. Кроме того, интересным мне кажется язык программирования Dart.

Итоги


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

Но, что бы ни случилось, прямо сейчас я готов к тому, чтобы на какое-то время отстать от бешеных темпов развития React в обмен на изучение чего-то нового.

А вы устали от JavaScript?



Подробнее..

Стримы июля почему токсичные люди самые эффективные, ловушка стабильности, HighLoad на PHP и найм на работу

01.07.2020 12:12:44 | Автор: admin


Привет, Хабр!

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

  • Профессию монетизатора кто эти бездушные люди, которые втыкают внутренние покупки в игры? Со Славой Дреером, монетизатором с 7-летним стажем и продюсером игровых проектов
  • Что делать, если хочется создавать life-changing проекты, а приходится зарабатывать деньги, с продуктовым лидом Arrival Александром Ловягином
  • Как нанять 57 синьоров за 43 дня и быстро их включать в проекты, с заместителем CTO в Delivery Club Андреем Евсюковым
  • Как стать мощным PHP-разработчиком с Александром Высоцким, Senior Backend Developer в Badoo

Напоминаем о формате:


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

Представляем спикеров на июль




Почему у монетизаторов нет души, а токсичные члены команды самые эффективные


Слава монетизатор, гейм-дизайнер и продюсер игр с 12-летним стажем. Работал в игровых подразделениях веб-мани, mail.ru, Фотостраны и принимал участие в более, чем 50 других проектов.

7 июля, в 20:00

Какой полезной информацией владеет Слава:
  • Все о профессии монетизатора: кто эти люди, которые раскидывают по игре платные плюшки и как это делать правильно.
  • Откуда берутся большие пласты игр, в которые люди с интересом играют, но игра при этом не зарабатывает? Что делает монетизатор с такими играми?
  • В каких случаях нужны монетизаторы в проекте?
  • 4 архетипа пользователей: хардкорный игрок, школьник, домохозяйка и офсиный сотрудник, который просто играет чтобы отдохнуть. 4 жизни, которые проживает монетизатор с каждой игрой.
  • Неграмотный сбор аналитики в играх: как нельзя делать, если не хотите остаться с популярной игрой на нулях.
  • Математика стоимости товаров в играх: как рассчитать стоимость каждой плюшки и создать их такими, чтобы их покупали.
  • Почему нельзя делать справедливые игры, где у всех равные возможности?
  • Как считать баланс игр: баланс и псевдобаланс, 2 типа псевдобаланса PVE и PVP, почему надо считать сложный баланс и как это делать.
  • Самый главный человек в игровой команде игровой программист. Почему?
  • Может ли специалист высокого уровня существовать за пределами больших компаний? Как это сделать?
  • Существуют ли на самом деле люди, которые в одиночку создали игры мирового уровня?
  • Можно ли создать игру почти бесплатно?
  • Кто такой хороший менеджер, как им стать и как набрать крутую команду?
  • Два самых главных качества менеджера?
  • Что делать, если проработал в индустрии 8 лет, но особых достижений нет какие выводы о себе делать и как анализировать свою работу? Стоит ли этим заниматься дальше? Нужны ли компаниям такие люди?
  • Почему мода выгонять из команды токсичных людей плохая практика? Почему эти люди одни из самых ценных в команде? Являются ли они проблемой, стоит ли их избегать? Существуют ли они вообще?
  • Какие книги и какие лекции надо почитать прежде чем делать свою игру?








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



Александр Ловягин сейчас Senior Product Designer в Arrival Mobility и работает над производством электротранспорта: автомобилей, автобусов, вэнов нового типа.

Они экологичные, красивые, удобные никаких газов, много света внутри, прозрачные потолки. Есть приложение для автобусов, чтобы видеть сколько людей едет: можно подождать и сесть туда, где меньше людей. Этот транспорт недорогой в производстве UPS London уже закупила мини-вэны от Arrival для доставки грузов, потому что они стоят не дороже, чем на топливе.

Саша продуктовый дизайнер, а не инженер, но тем не менее готов обсудить, как находить интересную работу в IT на уровне крутых продуктов: он прошел путь от проектирования простых лендингов до UX-автопрома и преподавателя Британской высшей школы дизайна.

14 июля, в 20:00

О чем расскажет Саша кроме ответов на вопросы:
  • Автомобили как девайс: как создавать авто, где максимально много света внутри, прозрачный потолок и крутой экспириенс.
  • Как проектировать продукты будущего, которые доступны в реальности и оправданы финансово.
  • Как сохранить свежесть восприятия уходить от устоявшихся паттернов в восприятии людей и перепридумать автобиль заново.
  • Как сделать продукт будущего за те деньги, когда это можно купить сейчас.
  • Поработать с сфере автомобилей заветная мечта продакт-дизайнера. Она реально меняет социальный уклад жизни, экологию, это самые инновации и то, что меняет жизнь людей. Это переводит мир в новую реальность как искать и апллаиться в такие проекты?
  • Почему самый благоприятный период для перемен в транспорте это сейчас.
  • Как разрабатываются интерфейсы внутри автомобиля.
  • Как дизайнеры идут на компромиссы и делают лучше бизнесу, но хуже жизнь людей и их пользовательский опыт.
  • В какую сторону двигаться и расти продакт-дизайнеру.
  • В каких компаниях лучше получать опыт продакт-дизайнеру, чтобы дальше работать в лайф-чейниджинг проектах.
  • Взаимодействие digital-дизайнеров в команде: опыт в Revolut и в Arrival.
  • Как эффективно строить работу продакт-дизайнеру с инженерами и обратно.
  • Советы новичкам в продакт-дизайне: где учиться, как составлять портфолио, куда отправлять резюме.








Как нанять 57 синьоров за 43 дня и быстро включить их в процесс разработки


Андрей занимается созданием инжереной культуры в Delivery Club: найм, формирование команд, создание процессов разработки. До этого разрабатывал на PHP и на go.

21 июля в 20:00

О чем Андрей может интересно рассказать:
  • Как закрыть 50 позиций Senior разработчиков за 43 дня.
  • Как добиться низкого turnover rate с октября 2018 года эта метрика в DC составляет меньше 10%; средним показателем по индустрии считается 12-15%.
  • Как построен процесс онбординга в Delivery Club: как быстро адаптироваться, включаться в работу и деплоить фичи в прод уже через две недели.
  • Что такое кейс-собеседование и почему к нему невозможно подготовиться обычной зубрежкой.
  • Продуктовая трансформация и построение процесса разработки: как масштабировать команду с 35 человек до 150.
  • Как работает фреймворк GIST для верификации продуктовых гипотез, почему команда выбрала его и как он влияет на работу инженеров.
  • Как руководителю инженеров тесно и продуктивно работать с продуктовым отделом и почему это важно для бизнеса.
  • Как выявить мотивацию сотрудника на собеседовании, которая совпадает с культурой вашей компании, и каких разработчиков ищет Delivery Club.
  • Как выглядит фреймворк найма в Delivery Club Tech: последовательность этапов, кейс-интервью, подходы, способы ускорения найма.








Как создаются Highload проекты на PHP



Александр Высоцкий ведущий PHP-разработчик в лондонском офисе Badoo, работает в команде антиспама.

28 июля, в 20:00

Саша ответит на ваши вопросы, а также расскажет:
  • Как PHP позволяет быстро разрабатывать масштабируемый проект и почему он подходит для решения именно их задач.
  • Почему Badoo использует не микросервисы, а монолит.
  • Как релизиться два раза в день, когда у тебя два продукта на нескольких платформах и сотни версий клиента.
  • О специфике работы инженера в антиспам-команде: ML, очень много данных и создание инструментов для других команд.
  • PHP и MySQL: что делать для оптимизации производительности бэкенда.
  • Как перевезти в Лондон жену, чтобы она поступила в университет, а не скучала дома. Налоги, местная медицина, жилье на двоих.
  • Что помогало ему каждый раз адаптироваться на новом месте.
  • Как инженеры Badoo движут русскоговорящее PHP-сообщество: конференции, митапы, блог и неформальные сходки разработчиков.




Не забудьте включить уведомления


Если вы ненавидите пуш-уведомления, вы можете подписаться только на пуши конкретного аккаунта.

Это делается очень просто


Будет ли запись?


Если вы не успеваете послушать эфир онлайн, вы все равно можете задать вопрос и услышать на него ответ в записи.

Чтобы не забыть посмотреть запись, вы можете также включить уведомление о новых постах: как только вы выложим запись в IGTV, вам придет уведомление.

До встречи в эфире!

Подробнее..

Перевод О том, что происходит, когда в поиске Google используют слово vs

01.07.2020 16:06:10 | Автор: admin
Случалось у вас такое: ищете что-нибудь в Google и вводите после искомого слова vs, надеясь на то, что поисковик автоматически предложит вам что-то, немного похожее на то, что вам нужно?


Ввод vs после искомого слова

Со мной такое бывало.

Как оказалось, это большое дело. Это приём, который, при поиске альтернативы чему-либо, способен сэкономить массу времени.

Я вижу 3 причины, по которым этот приём отлично себя показывает в том случае, если его используют для поиска сведений о технологиях, неких разработках и концепциях, в которых хотят разобраться:

  1. Лучший способ изучить что-то новое заключается в том, чтобы выяснить, чем это, новое, похоже на то, что уже известно, или чем новое от известного отличается. Например, в списке предложений, появляющемся после vs, можно увидеть что-то такое, о чём можно сказать: А, так, оказывается, то, что я ищу, похоже на это, мне уже знакомое.
  2. Это простой приём. Для того чтобы им воспользоваться нужно, в буквальном смысле, несколько секунд.
  3. Слово vs это чёткое указание, говорящее Google о том, что пользователя интересует прямое сравнение чего-то с чем-то. Тут можно воспользоваться и словом or, но оно далеко не так сильно выражает намерение сравнить что-то с чем-то. Поэтому, если воспользоваться or, Google выдаст список предложений, в котором более вероятно появление чего-то постороннего.


Обрабатывая запрос bert or, Google выдаёт предложения, касающиеся Улицы Сезам. А запрос bert vs даёт подсказки по Google BERT

Это заставило меня задуматься. А что если взять те слова, что Google предложил после ввода vs, и поискать по ним, тоже добавляя после них vs? Что если повторить это несколько раз? Если так, можно получить симпатичный сетевой граф связанных запросов.

Например, он может выглядеть так.


Эго-граф для запроса bert с радиусом 25

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

Расскажу о том, как строить такие графы.

Автоматизация сбора vs-данных из Google


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

http://suggestqueries.google.com/complete/search?&output=toolbar&gl=us&hl=en&q=<search_term>

URL-параметр output=toolbar указывает на то, что нас интересуют результаты в формате XML, gl=us задаёт код страны, hl=en позволяет указать язык, а конструкция q=<search_term> это как раз то, для чего нужно получить результаты автозавершения.

Для параметров gl и hl используются стандартные двухбуквенные идентификаторы стран и языков.

Давайте со всем этим поэкспериментируем, начав поиск, скажем, с запроса tensorflow.

Первый шаг работы заключается в том, чтобы обратиться по указанному URL, воспользовавшись следующей конструкцией, описывающей запрос: q=tensorflow%20vs%20. Вся ссылка при этом будет выглядеть так:

http://suggestqueries.google.com/complete/search?&output=toolbar&gl=us&hl=en&q=tensorflow%20vs%20

В ответ мы получим XML-данные.

Что делать с XML?


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


Проверка полученных результатов

Я, при проверке результатов, пользовался следующими критериями:

  • Рекомендованный поисковый запрос не должен содержать текст исходного запроса (то есть tensorflow).
  • Рекомендация не должна включать в себя запросы, которые были признаны подходящими ранее (например pytorch).
  • Рекомендация не должна включать в себя несколько слов vs.
  • После того, как найдено 5 подходящих поисковых запросов, все остальные уже не рассматриваются.

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

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


5 результатов

Следующая итерация


Затем эти 5 найденных рекомендаций подвергают такой же обработке, какой был подвергнут исходный поисковый запрос. Их передают API с использованием слова vs и опять выбирают 5 результатов автозавершения, соответствующих вышеозначенным критериям. Вот результат такой обработки вышеприведённого списка.


Поиск результатов автозавершения для уже найденных слов

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

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

Эго-графы


Сетевой граф, который я вам показывал в начале статьи, это так называемый эго-граф (ego graph), построенный, в нашем случае, для запроса tensorflow. Эго-граф это такой граф, все узлы которого находятся на каком-то расстоянии от узла tensorflow. Это расстояние не должно превышать заданного расстояния.

А как определяется расстояние между узлами?

Давайте сначала посмотрим на готовый граф.


Эго-граф для запроса tensorflow с радиусом 22

Вес ребра (weight), соединяющего запрос A и B, мы уже знаем. Это ранг рекомендации из списка автозавершения, изменяющийся от 1 до 5. Для того чтобы сделать граф неориентированным, можно просто сложить веса связей между вершинами, идущими в двух направлениях (то есть от A к B, и, если такая связь есть, от B к A). Это даст нам веса рёбер в диапазоне от 1 до 10.

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

Размер (size) и цвет (color) вершины графа определяется количеством (count) случаев, в которых соответствующий запрос появляется в списке рекомендаций. В результате получается, что чем больше вершина тем важнее представляемая ей концепция.

Рассматриваемый эго-граф имеет радиус (radius) 22. Это означает, что добраться до каждого запроса, начиная с вершины tensorflow, можно, пройдя расстояние, не превышающее 22. Взглянем на то, что произойдёт, если увеличить радиус графа до 50.


Эго-граф для запроса tensorflow с радиусом 50

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

И всё это построено на основе одного единственного ключевого слова.

Как рисовать подобные графы?


Я, для рисования такого графа, использовал онлайн-инструмент Flourish.

Этот сервис позволяет строить сетевые графики и другие диаграммы с помощью простого интерфейса. Полагаю, на него вполне стоит взглянуть тем, кого интересует построение эго-графов.

Как создать эго-граф с заданным радиусом?


Для создания эго-графа с заданным радиусом можно воспользоваться Python-пакетом networkx. В нём есть очень удобная функция ego_graph. Радиус графа указывают при вызове этой функции.

import networkx as nx#Формат исходных данных#nodes = [('tensorflow', {'count': 13}),# ('pytorch', {'count': 6}),# ('keras', {'count': 6}),# ('scikit', {'count': 2}),# ('opencv', {'count': 5}),# ('spark', {'count': 13}), ...]#edges = [('pytorch', 'tensorflow', {'weight': 10, 'distance': 1}),# ('keras', 'tensorflow', {'weight': 9, 'distance': 2}),# ('scikit', 'tensorflow', {'weight': 8, 'distance': 3}),# ('opencv', 'tensorflow', {'weight': 7, 'distance': 4}),# ('spark', 'tensorflow', {'weight': 1, 'distance': 10}), ...]#Построить исходный полный графG=nx.Graph()G.add_nodes_from(nodes)G.add_edges_from(edges)#Построить эго-граф для 'tensorflow'EG = nx.ego_graph(G, 'tensorflow', distance = 'distance', radius = 22)#Найти двусвязные подграфыsubgraphs = nx.algorithms.connectivity.edge_kcomponents.k_edge_subgraphs(EG, k = 3)#Получить подграф, содержащий 'tensorflow'for s in subgraphs:if 'tensorflow' in s:breakpruned_EG = EG.subgraph(s)ego_nodes = pruned_EG.nodes()ego_edges = pruned_EG.edges()

Я, кроме того, воспользовался тут ещё одной функцией k_edge_subgraphs. Она применяется для удаления некоторых результатов, которые не соответствуют нашим нуждам.

Например, storm это опенсорсный фреймворк для распределённых вычислений в реальном времени. Но это ещё и персонаж из вселенной Marvel. Как вы думаете, какие поисковые подсказки победят, если ввести в Google запрос storm vs?

Функция k_edge_subgraphs находит группы вершин, которые невозможно разделить, выполнив k или меньшее число действий. Как оказалось, тут хорошо показывают себя значения параметров k=2 и k=3. Остаются, в итоге, только те подграфы, которым принадлежит tensorflow. Это позволяет обеспечить то, что мы не слишком удаляемся от того, с чего начали поиск, и не уходим в слишком далёкие области.

Использование эго-графов в жизни


Давайте отойдём от примера с tensorflow и рассмотрим другой эго-граф. В этот раз граф, посвящённый ещё кое-чему такому, что меня интересует. Это шахматный дебют, получивший название Испанская партия (Ruy Lopez chess opening).

Исследование шахматных дебютов



Исследование Испанской партии (ruy lopez)

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

Теперь давайте рассмотрим другие примеры использования эго-графов.

Здоровое питание


Капуста! Вкуснятина!

Но что если у вас возникло желание заменить прекрасную, несравненную капусту на что-то другое? Вам в этом поможет эго-граф, построенный вокруг капусты (kale).


Эго-граф для запроса kale с радиусом 25

Покупаем собаку


Собак так много, а времени так мало Мне нужна собака. Но какая? Может что-то вроде пуделя (poodle)?


Эго-граф для запроса poodle с радиусом 18

Ищем любовь


Собака и капуста ничего не меняют? Нужно найти свою вторую половину? Если так вот маленький, но весьма самодостаточный эго-граф, который может в этом помочь.


Эго-граф для запроса coffee meets bagel с радиусом 18

Что делать, если приложения для знакомств ничем не помогли?


Если приложения для знакомств оказались бесполезными, стоит, вместо того, чтобы в них зависать, посмотреть сериал, запасшись мороженым со вкусом капусты (или со вкусом недавно обнаруженной рукколы). Если вам нравится сериал The Office (безусловно, тот, что снят в Великобритании), то вам могут понравиться и некоторые другие сериалы.


Эго-граф для запроса the office с радиусом 25

Итоги


На этом я завершаю рассказ об использовании слова vs в поиске Google и об эго-графах. Надеюсь, вам всё это хотя бы немного поможет в поиске любви, хорошей собаки и здоровой еды.

Пользуетесь ли вы какими-нибудь необычными приёмами при поиске в интернете?



Подробнее..

Как убрать назойливое предупреждение о сертификате для RDP

02.07.2020 12:23:15 | Автор: admin

Привет Хабр, это супер короткое и простое руководство для новичков о том, как подключаться по RDP по доменному имени, чтобы не вылезало назойливое предупреждение о сертификате, подписанным самим сервером. Нам понадобится WinAcme и домен.

Все, кто хоть раз пользовался RDP, видели эту надпись.


В руководстве приведены готовые команды для пущего удобства. Скопировал, вставил и заработало.

Так вот, это окно можно в принципе пропустить, если выдать сертификат подписанный сторонним, трастовым центром сертификации. В данном случае, Lets Encrypt.

1. Добавляем А запись




Просто добавляем A запись и вписываем в неё IP адрес сервера. На этом работа с доменом окончена.

2. Качаем WinAcme


Качаем WinAcme с их сайта. Архив лучше всего распаковать туда, куда вы не доберетесь, исполняемые файлы и скрипты вам еще пригодятся в будущем для автоматического обновления сертификата. Лучше всего вытряхнуть архив в C:\WinAcme\.

3. Открываем 80 порт




Авторизация вашего сервера осуществляется по http, поэтому нам нужно открыть 80 порт. Для этого введите в Powershell команду:

New-NetFirewallRule -DisplayName 80-TCP-IN -Direction Inbound -Protocol TCP -Enabled True -LocalPort 80

4. Разрешаем выполнение скриптов


Чтобы WinAcme смог без проблем импортировать новый сертификат, нужно разрешить выполнение скриптов. Для этого переходив в папку /Scripts/



Перед запуском WinAcme нам нужно разрешить выполнение двух скриптов. Для этого двойным кликом запустите PSRDSCerts.bat из папки со скриптами.

5. Устанавливаем сертификат




Дальше скопируйте строку ниже и введите имя домена, по которому хотите подключатсяь к серверу и выполните команду.

C:\Winacme\wacs.exe --target manual --host VASHDOMAIN.RU --certificatestore My --installation script --installationsiteid 1 --script "Scripts\ImportRDListener.ps1" --scriptparameters "{CertThumbprint}"

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

Готово! Вы великолепны и избавились от надоедливой ошибки.

А какие системные ошибки раздражают вас?

Подробнее..

Перевод Зачем в npm 7 оставили поддержку package-lock.json?

02.07.2020 16:18:36 | Автор: admin
Мне, с того момента, как мы объявили о том, что в npm 7 будут поддерживаться файлы yarn.lock, несколько раз задавали один и тот же вопрос. Он звучал так: Зачем тогда оставлять поддержку package-lock.json? Почему бы не использовать только yarn.lock?.



Краткий ответ на этот вопрос выглядит так: Потому что yarn.lock не полностью удовлетворяет нуждам npm. Если полагаться исключительно на него, это ухудшит возможности npm по формированию оптимальных схем установки пакетов и возможности по добавлению в проект нового функционала. Ответ более подробный представлен в данном материале.

Базовая структура файла yarn.lock


Файл yarn.lock представляет собой описание соответствия спецификаторов зависимостей пакетов и метаданных, описывающих разрешение этих зависимостей. Например:

mkdirp@1.x:version "1.0.2"resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.2.tgz#5ccd93437619ca7050b538573fc918327eba98fb"integrity sha512-N2REVrJ/X/jGPfit2d7zea2J1pf7EAR5chIUcfHffAZ7gmlam5U65sAm76+o4ntQbSRdTjYf7qZz3chuHlwXEA==

В этом фрагменте сообщается следующее: Любая зависимость от mkdirp@1.x должна разрешаться именно в то, что указано здесь. Если несколько пакетов зависят от mkdirp@1.x, то все эти зависимости будут разрешены одинаково.

В npm 7, если в проекте существует файл yarn.lock, npm будет пользоваться содержащимися в нём метаданными. Значения полей resolved сообщат npm о том, откуда ему нужно загружать пакеты, а значения полей integrity будут использоваться для проверки того, что получено, на предмет соответствия этого тому, что ожидалось получить. Если пакеты добавляются в проект или удаляются из него, соответствующим образом обновляется содержимое yarn.lock.

Npm при этом, как и прежде, создаёт файл package-lock.json. Если в проекте присутствует этот файл, он будет использоваться как авторитетный источник сведений о структуре (форме) дерева зависимостей.

Вопрос тут заключается в следующем: Если yarn.lock достаточно хорош для менеджера пакетов Yarn почему npm не может просто использовать этот файл?.

Детерминированные результаты установки зависимостей


Результаты установки пакетов с помощью Yarn гарантированно будут одними и теми же при использовании одного и того же файла yarn.lock и одной и той же версии Yarn. Применение различных версий Yarn может привести к тому, что файлы пакетов на диске будут расположены по-разному.

Файл yarn.lock гарантирует детерминированное разрешение зависимостей. Например, если foo@1.x разрешается в foo@1.2.3, то, учитывая использование одного и того же файла yarn.lock, это будет происходить всегда, во всех версиях Yarn. Но это (как минимум, само по себе) не эквивалентно гарантии детерминированности структуры дерева зависимостей!

Рассмотрим следующий граф зависимостей:

root -> (foo@1, bar@1)foo -> (baz@1)bar -> (baz@2)

Вот пара схем деревьев зависимостей, каждое из которых можно признать корректным.

Дерево 1:

root+-- foo+-- bar|  +-- baz@2+-- baz@1

Дерево 2:

+-- foo|  +-- baz@1+-- bar+-- baz@2

Файл yarn.lock не может сообщить нам о том, какое именно дерево зависимостей нужно использовать. Если в пакете root будет выполнена команда require(baz) (что некорректно, так как эта зависимость не отражена в дереве зависимостей), файл yarn.lock не гарантирует правильного выполнения этой операции. Это форма детерминизма, которую может дать файл package-lock.json, но не yarn.lock.

На практике, конечно, так как у Yarn, в файле yarn.lock, есть вся информация, необходимая для того чтобы выбрать подходящую версию зависимости, выбор является детерминированным до тех пор, пока все используют одну и ту же версию Yarn. Это означает, что выбор версии всегда делается одним и тем же образом. Код не меняется до тех пор, пока кто-нибудь его не изменит. Надо отметить, что Yarn достаточно интеллектуален для того, чтобы, при создании дерева зависимостей, не зависеть от расхождений, касающихся времени загрузки манифеста пакета. Иначе детерминированность результатов гарантировать было бы нельзя.

Так как это определяется особенностями алгоритмов Yarn, а не структурами данных, имеющимися на диске (не идентифицирующих алгоритм, который будет использован), эта гарантия детерминизма, в своей основе, слабее, чем гарантия, которую даёт package-lock.json, содержащий полное описание структуры дерева зависимостей, хранящегося на диске.

Другими словами, на то, как именно Yarn строит дерево зависимостей, влияют файл yarn.lock и реализация самого Yarn. А в npm на то, каким будет дерево зависимостей, влияет только файл package-lock.json. Благодаря этому структуру проекта, описанную в package-lock.json, становится сложнее случайно нарушить, пользуясь разными версиями npm. А если же в файл будут внесены изменения (может быть по ошибке, или намеренно), эти изменения будут хорошо заметны в файле при добавлении его изменённой версии в репозиторий проекта, в котором используется система контроля версий.

Вложенные зависимости и дедупликация зависимостей


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

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

Рассмотрим следующий граф зависимостей:

root -> (x@1.x, y@1.x, z@1.x)x@1.1.0 -> ()x@1.2.0 -> ()y@1.0.0 -> (x@1.1, z@2.x)z@1.0.0 -> ()z@2.0.0 -> (x@1.x)

Проект root зависит от версий 1.x пакетов x, y и z. Пакет y зависит от x@1.1 и от z@2.x. У пакета z версии 1 нет зависимостей, но этот же пакет версии 2 зависит от x@1.x.

На основе этих сведений npm формирует следующее дерево зависимостей:

root (x@1.x, y@1.x, z@1.x) <-- здесь зависимость x@1.x+-- x 1.2.0        <-- x@1.x разрешается в 1.2.0+-- y (x@1.1, z@2.x)|  +-- x 1.1.0      <-- x@1.x разрешается в 1.1.0|  +-- z 2.0.0 (x@1.x)  <-- здесь зависимость x@1.x+-- z 1.0.0

Пакет z@2.0.0 зависит от x@1.x, то же самое можно сказать и о root. Файл yarn.lock сопоставляет x@1.x c 1.2.0. Однако зависимость пакета z, где тоже указано x@1.x, вместо этого, будет разрешена в x@1.1.0.

В результате, даже хотя зависимость x@1.x описана в yarn.lock, где указано, что она должна разрешаться в версию пакета 1.2.0, имеется второй результат разрешения x@1.x в пакет версии 1.1.0.

Если запустить npm с флагом --prefer-dedupe, то система пойдёт на шаг дальше и установит лишь один экземпляр зависимости x, что приведёт к формированию следующего дерева зависимостей:

root (x@1.x, y@1.x, z@1.x)+-- x 1.1.0    <-- x@1.x для всех зависимостей разрешается в версию 1.1.0+-- y (x@1.1, z@2.x)|  +-- z 2.0.0 (x@1.x)+-- z 1.0.0

Это минимизирует дублирование зависимостей, получившееся дерево зависимостей фиксируется в файле package-lock.json.

Так как файл yarn.lock фиксирует лишь порядок разрешения зависимостей, а не результирующее дерево пакетов, Yarn сформирует такое дерево зависимостей:

root (x@1.x, y@1.x, z@1.x) <-- здесь зависимость x@1.x+-- x 1.2.0        <-- x@1.x разрешается в 1.2.0+-- y (x@1.1, z@2.x)|  +-- x 1.1.0      <-- x@1.x разрешается в 1.1.0|  +-- z 2.0.0 (x@1.x)  <-- x@1.1.0 тут бы подошёл, но...|    +-- x 1.2.0    <-- Yarn создаёт дубликат ради выполнения того, что описано в yarn.lock+-- z 1.0.0

Пакет x, при использовании Yarn, появляется в дереве зависимостей три раза. При применении npm без дополнительных настроек 2 раза. А при использовании флага --prefer-dedupe лишь один раз (хотя тогда в дереве зависимостей оказывается не самая новая и не самая лучшая версия пакета).

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

В результате имеется единственный способ, используя который, npm может оптимизировать дерево пакетов, поддерживая, в то же время, создание детерминированных и воспроизводимых деревьев зависимостей. Этот способ заключается в применении lock-файла, принцип формирования и использования которого на фундаментальном уровне отличается от yarn.lock.

Фиксация результатов реализации намерений пользователя


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

Если используется этот флаг, то итоговое дерево для вышеприведённого примера будет выглядеть так:

root (x@1.x, y@1.x, z@1.x) <-- здесь зависимость x@1.x+-- x 1.1.0        <-- x@1.x разрешается в 1.1.0 во всех случаях+-- y (x@1.1, z@2.x)|  +-- z 2.0.0 (x@1.x)  <-- здесь зависимость x@1.x+-- z 1.0.0

В данном случае npm видит, что даже хотя x@1.2.0 это самая свежая версия пакета, удовлетворяющая требованию x@1.x, вместо неё вполне можно выбрать x@1.1.0. Выбор этой версии приведёт к меньшему уровню дублирования пакетов в дереве зависимостей.

Если не фиксировать структуру дерева зависимостей в lock-файле, то каждому программисту, работающему над проектом в команде, пришлось бы настраивать свою рабочую среду точно так же, как её настраивают остальные члены команды. Только это позволит ему получить тот же результат, что и остальные. Если реализация механизма построения дерева зависимостей может быть изменена подобным способом, это даёт пользователям npm серьёзные возможности по оптимизации зависимостей в расчёте на собственные специфические нужды. Но, если результаты создания дерева зависят от реализации системы, это делает невозможным создание детерминированных деревьев зависимостей. Именно к этому приводит использование файла yarn.lock.

Вот ещё несколько примеров того, как дополнительные настройки npm способны приводить к созданию отличающихся друг от друга деревьев зависимостей:

  • --legacy-peer-deps, флаг, который заставляет npm полностью игнорировать peerDependencies.
  • --legacy-bundling, флаг, говорящий npm о том, что он не должен даже пытаться сделать дерево зависимостей более плоским.
  • --global-style, флаг, благодаря которому всех транзитивные зависимости устанавливаются в виде вложенных зависимостей, в папках зависимостей более высокого уровня.

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

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

Производительность и полнота данных


Файл package-lock.json приносит пользу не только тогда, когда нужно обеспечить детерминированность и воспроизводимость деревьев зависимостей. Мы, кроме того, полагаемся на этот файл для отслеживания и хранения метаданных пакетов, значительно экономя время, которое иначе, с использованием только package.json, ушло бы на работу с реестром npm. Так как возможности файла yarn.lock сильно ограничены, в нём нет метаданных, которые нам нужно постоянно загружать.

В npm 7 файл package-lock.json содержит всё, что нужно npm для полного построения дерева зависимостей проекта. В npm 6 эти данные хранятся не так удобно, поэтому, когда мы сталкиваемся со старым lock-файлом, нам приходится нагружать систему дополнительной работой, но это делается, для одного проекта, лишь один раз.

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

Будущие возможности


То, о чём мы тут говорили, может серьёзно измениться, если учитывать различные новые подходы к размещению зависимостей на дисках. Это pnpm, yarn 2/berry и PnP Yarn.

Мы, работая над npm 8, собираемся исследовать подход к формированию деревьев зависимостей, основанный на виртуальной файловой системе. Эта идея смоделирована в Tink, работоспособность концепции подтверждена в 2019 году. Мы, кроме того, обсуждаем идею перехода на что-то вроде структуры, используемой pnpm, хотя это, в некотором смысле, даже более масштабное кардинальное изменение, чем использование виртуальной файловой системы.

Если все зависимости находятся в некоем центральном хранилище, а вложенные зависимости представлены лишь символьными ссылками или виртуальной файловой системой, тогда моделирование структуры дерева зависимостей было бы для нас не таким важным вопросом. Но нам всё ещё нужно больше метаданных, чем способен предоставить файл yarn.lock. В результате больше смысла имеет обновление и рационализация существующего формата файла package-lock.json, а не полный переход на yarn.lock.

Это не статья, которую можно было бы назвать О вреде yarn.lock


Мне хотелось бы особо отметить то, что, судя по тому, что я знаю, Yarn надёжно создаёт корректные деревья зависимостей проектов. И, для определённой версии Yarn (на момент написания материала это относится ко всем свежим версиям Yarn), эти деревья являются, как и при использовании npm, полностью детерминированными.

Файла yarn.lock достаточно для создания детерминированных деревьев зависимостей с использованием одной и той же версии Yarn. Но мы не можем полагаться на механизмы, зависящие от реализации менеджера пакетов, учитывая использование подобных механизмов во многих инструментах. Это ещё более справедливо, если учесть то, что реализация формата файла yarn.lock нигде формально не документирована. (Это не проблема, уникальная для Yarn, в npm сложилась такая же ситуация. Документирование форматов файлов это довольно серьёзная работа.)

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

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

Только package-lock.json, или механизм, подобный этому файлу, способен дать npm такие возможности.

Каким менеджером пакетов вы пользуетесь в своих JavaScript-проектах?

Подробнее..

Прокладываем L2 туннели в OpenVPN

03.07.2020 12:17:33 | Автор: admin

Недавно меня попросили разобраться в настройке L2 туннеля для моста между двумя удалёнными локальными сетями, и я был поражён, насколько мало удобных решений мне удалось найти. Раньше я не интересовался этой темой и наивно полагал, что любой адекватный VPN-протокол умеет ловить широковещательные пакеты и пересылать их по обычному L3 туннелю. К сожалению, доступных из коробки универсальных решений нет. Есть несколько протоколов и инструментов для них, большинство из которых работает в очень ограниченных условиях или вовсе объявлено deprecated. Самым приятным вариантом я поделюсь дальше.

Почему именно L2?


Этим вопросом я задался в первую очередь: я довольно редко работаю с сетевой периферией, и мне казалось что довольно давно уже всё оборудование умеет ходить по L3. Как бы не так: кому-то нужен доступ к офисным принтерам, кому-то к видеорегистраторам, а кто-то просто хочет зарубиться с другом в LAN-дуэли не выходя из дома, разумеется. Также очень привлекательной выглядит идея общих/сетевых папок в офисе, доступных из дома, особенно в период повальной удалёнки.

При этом среди разработчиков VPN-клиентов L2-бриджи почему-то считаются чем-то вроде странного каприза одного-двух процентов пользователей, который по большому счёту никому не нужен. Совсем иначе обстоят дела в промышленных сетях, где много устаревшего или плохо совместимого оборудования, и концепция L2VPN (представленная кучей других аббревиатур) реализована на уровне сети и оборудования провайдера.

Технологии


Их много, и они все работают со странностями и ограничениями:

  • Например, протокол Layer 2 Tunneling Protocol (L2TP) должен, судя по названию, обеспечивать поддержку OSI L2 и в том числе проброс broadcast'a. Но нет, общепринятая связка L2TP + IPsec не позволяет бриджевать сети на уровне L2!
  • PPTP стал мемом из-за крупных уязвимостей, сейчас кое-как починен, но к L2 уже не имеет отношения.
  • MPLS жутко запутанный промышленный протокол на основе меток. Изучить его сложно, а поднять можно только на специализированном железе или RouterOS (с ограничениями, куда ж без них).
  • PPPoE и феерический PPPoEoE тоже работают, но на проприетарных железках. Режим PPPoE вообще есть на многих роутерах, но как его правильно готовить известно по большей части только на фирменном оборудовании типа Cisco.
  • EoIP должен быть стать тем самым L2VPN made right, но он тоже работает только на микротиках, что существенно сужает круг применения. Как и PPTP, использует GRE, не проходит через NAT.

И тут я с удивлением обнаружил, что настоящий Ethernet Bridging умеет OpenVPN!

Мы часто пользуемся личным или рабочим VPNом, у многих он вообще включён на постоянной основе для обхода блокировок (хотя эта тенденция идёт на спад после снятия блокировки Telegram). В своих рабочих задачах я тоже постоянно пользуюсь удаленными хостами для разработки, и почти всегда использую OpenVPN. Долгое время я не понимал, зачем нужна связка OpenVPN Access Server + OpenVPN Connect на клиенте. Для моих задач мне всегда хватало классической версии с ручной правкой конфигов, и выделенные админки и GUI казались неуместными в стройном тонком клиенте. Но оказалось, что для настройки бриджа интерфейс гораздо удобнее чем простыни конфигов в терминале, хотя и с ним не всё идеально.

Настройка


Дело в том, что Access Server (AS) выходил как платный и довольно дорогой продукт, поэтому в него старательно напихали всевозможных плюшек, лишь бы купили. Таким образом в веб-админке появился подпункт меню, позволяющий выбрать режим сети (L2 bridging/L3 routing), а через какое-то время тихонько был оттуда выпилен по всё той же причине это никому не нужно. Тем не менее, сам функционал бриджинга и соответствующие скрипты не удаляли и их по-прежнему можно настроить.

Установка


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

apt update && apt -y install ca-certificates wget net-tools gnupgwget -qO - https://as-repository.openvpn.net/as-repo-public.gpg | apt-key add -echo "deb http://as-repository.openvpn.net/as/debian bionic main">/etc/apt/sources.list.d/openvpn-as-repo.listapt update && apt -y install openvpn-as

После установки сервер поднимется самостоятельно, вы увидите такое сообщение:

+++++++++++++++++++++++++++++++++++++++++++++++Access Server 2.8.4 has been successfully installed in /usr/local/openvpn_asConfiguration log file has been written to /usr/local/openvpn_as/init.logAccess Server Web UIs are available here:Admin  UI: https://185.209.31.165:943/adminClient UI: https://185.209.31.165:943/+++++++++++++++++++++++++++++++++++++++++++++++

Сразу нужно указать пароль для админской учётки:

passwd openvpn

Затем можно открывать админку в браузере (на :943/admin, как указано выше), логиниться под пользователем openvpn с указанным паролем и настраивать сервер.



AS бесплатна для использования двумя пользователями, дальше можно добавлять только за $18/месяц за одного пользователя, так что лучше сразу спроектировать свои процессы под использование туннеля двумя клиентами.

Возвращаем бриджинг


cd /usr/local/openvpn_as/scripts./sacli --key "von.general.osi_layer" --value "2" ConfigPut./sacli start

Если всё прошло успешно, в выведенном json'е будет такое:

{ "errors": {}, "last_restarted": "Thu Jul  2 00:07:37 2020", "service_status": {   "api": "on",   "auth": "on",   "bridge": "on",        ...    }}

В админке статус OSI Layer: 3 (routing/NAT) поменяется на 2 (bridging)

NB: в последних версиях может оставаться информация о L3 при включённом bridge. Почему не разбирался, безопасные в этом плане версии около 2.4

Собственно на этом ноу-хау заканчивается, дальше вам нужно просто настроить под себя сервер, завести второго пользователя через тот же веб-интерфейс и залогиниться на пользовательскую страницу на 943 порту (без /admin). Там будут ссылки на скачивание клиентов OpenVPN Connect под все платформы с запечённым конфигом для подключения (кроме мобильных приложений, там придется вбить адрес вручную, а дальше всё само установится).



После успешного подключения и бриджевания клиентов, будет доступен L2-туннель с TCP/UDP трафиком. Клиенты могут выступать натом для внутренней сети, это всё тоже настраивается в админке.

Подробнее..

Перевод Стилизация контейнеров для содержимого веб-страниц

03.07.2020 16:05:03 | Автор: admin
Содержимое веб-страниц должно быть размещено в некоем элементе, ширина которого, ограничивающая ширину содержимого, позволяет пользователям удобно работать с материалами сайта. Такие элементы называют обёртками (wrapper) или контейнерами (container). Стилизовать контейнеры средствами CSS можно по-разному. Некоторые способы работы с контейнерами ставят дизайнера перед необходимостью решать достаточно сложные задачи.



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

Общие сведения


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

body {max-width: 1170px;margin-left: auto;margin-right: auto;padding-left: 16px;padding-right: 16px;}

Но в современных условиях использование в качестве контейнера элемента <body> может оказаться непрактичным. Контейнер позволяет не допустить выхода дочерних элементов за его границы.


Контейнер не даёт дочерним элементам выходить за его границы

Здесь имеется боковая и основная области страницы. Обе эти области находятся внутри элемента-контейнера. Ему назначен класс .wrapper. Среди прочих свойств контейнера, естественно, задана и его ширина. Структура HTML-кода такой страницы выглядит так:

<div class="wrapper"><aside>...</aside><main>...</main></div>

Без использования элемента-обёртки дочерние элементы будут размещаться, ориентируясь на края экрана. Это может быть неудобным для пользователей. Особенно для тех, которые работают на больших экранах.


Страница без элемента-контейнера, включающего в себя её содержимое

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

О необходимости использования контейнеров для содержимого веб-страниц


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

  1. Использование контейнера улучшает читабельность содержимого страницы. Без контейнера содержимое, вроде текста, может растягиваться на всю ширину экрана. На маленьких экранах подобное может давать вполне приемлемый результат. Но на больших экранах это выглядит очень плохо.
  2. Группировка элементов дизайна страницы упрощает настройку расстояния между ними.
  3. Если элементы дизайна нужно сгруппировать по столбцам, это будет сложно сделать без использования контейнера.

Настройка элемента-контейнера средствами CSS


Теперь, когда мы поговорили об основах применения контейнеров, и о том, какие преимущества даёт их использование, давайте остановимся на том, как настраивать их средствами CSS.

Настройка ширины контейнера



Элемент-контейнер с настроенной шириной

При создании контейнера первое, что нужно решить, это то, какой ширины он будет. На вопрос о желаемой ширине контейнера можно ответить, проанализировав дизайн страницы. В целом, можно сказать, что чаще всего используются контейнеры с шириной, находящейся в пределах 1000px 1300px. Например, в популярном фреймворке Bootstrap используется ширина, равная 1170px.

.wrapper {width: 1170px;}

Здесь показана установка ширины элемента с классом .wrapper в 1170px, но, на самом деле, свойство width для настройки ширины контейнеров использовать не рекомендуется. Дело в том, что это приводит к необходимости горизонтального скроллинга страницы в том случае, если ширина области окна браузера, доступной для вывода страницы, меньше 1170px. Решить эту проблему можно, воспользовавшись свойством max-width:

.wrapper {width: 1170px;max-width: 100%;}

Хотя это вполне рабочий приём, можно полностью избавиться от свойства width и, как в следующем примере, пользоваться лишь свойством max-width:

.wrapper {max-width: 1170px;}

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

Выравнивание контейнера по центру страницы



Контейнер, выровненный по центру страницы

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

.wrapper {max-width: 1170px;margin: 0 auto;}

Вот как, в соответствии со спецификацией CSS, ведут себя отступы, которым назначено значение auto:

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

Если вас интересуют подробности об использовании ключевого слова auto в CSS взгляните на эту мою статью.

Я воспользовался здесь конструкцией margin: 0 auto. Она сбрасывает размеры верхнего и нижнего отступов в значение 0, а левый и правый отступы настраивает в соответствии с особенностями применения ключевого слова auto. У такого шага есть некоторые последствия, о которых я расскажу ниже. А пока же хочу отметить, что рекомендуется использовать полный вариант вышеописанной сокращённой конструкции для настройки внешних отступов:

.wrapper {max-width: 1170px;margin-left: auto;margin-right: auto;}

Настройка левого и правого внутренних отступов



Горизонтальные (левый и правый) внутренние отступы

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

.wrapper {max-width: 1170px;margin-left: auto;margin-right: auto;padding-left: 16px;padding-right: 16px;}

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

Использование процентных значений при настройке контейнеров


Мне, после публикации исходного варианта этого материала, написали об использовании процентных значений при настройке контейнеров. В частности, речь идёт о применении CSS-свойства max-width: 90% вместо использования свойств padding-left и padding-right.


Использование процентных значений при настройке контейнеров и ситуации, когда значение max-width: 90% приводит к приемлемым и неприемлемым результатам

Хотя этот подход оказался вполне рабочим, выяснилось, что на больших экранах 90% ширины области просмотра это слишком много. Но данную проблему можно решить, воспользовавшись медиа-запросом:

.wrapper {max-width: 90%;margin-left: auto;margin-right: auto;}/* Медиа-запрос для больших экранов */@media (min-width: 1170px) {.wrapper {max-width: 1170px;}}

В результате оказывается, что, используя процентное значение, мы усложняем CSS-код. Для того чтобы избавить себя от необходимости применения медиа-запроса, мы можем использовать фиксированное значение для ширины. Ещё одно решение, предложенное в этом твите, заключается в применении комбинации свойств width: 90% и max-width: 1170px:

.wrapper {width: 90%;max-width: 1170px;margin-left: auto;margin-right: auto;}

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

Свойство display элемента-контейнера


Так как для оформления контейнеров используют теги <div>, контейнеры, по умолчанию, являются блочными элементами. Что если понадобится поменять свойство контейнера display на grid, сделав это для того чтобы разместить его дочерние элементы в сетке?

Я не рекомендую этого делать, так как это идёт вразрез с идеей разделения ответственностей. Элемент-контейнер, обёртка, это сущность, предназначение которой заключается в том, чтобы оборачивать другие элементы. Если нужно разместить дочерние элементы контейнера в сетке, тогда стоит добавить в контейнер ещё один <div>, включающий в себя другие элементы, свойство которого display установлено в значение grid. Это будет проще и чище, чем настройка сетки средствами основного контейнера. Такой подход, кроме того, позволяет говорить о том, что в будущем проект, в котором он используется, будет легче поддерживать.

Пусть имеется такой контейнер:

<div class="wrapper"><!-- Содержимое --></div>

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

.wrapper {display: grid;grid-template-columns: 2fr 1fr;grid-gap: 16px;}

Лучше будет использовать такой HTML-код:

<div class="wrapper"><div class="featured-news"><!-- Элементы, которые нужно разместить в сетке --></div></div>

Элемент с классом featured-news можно стилизовать так:

.featured-news {display: grid;grid-template-columns: 2fr 1fr;grid-gap: 16px;}

Обратите внимание на то, что в этом примере мы использовали отдельный элемент <div> в качестве ещё одной обёртки для содержимого страницы. На имена классов, использованных здесь, можете внимания не обращать. Для решения подобной задачи можно подобрать более удачные имена классов, которые подойдут для многократного использования на различных страницах сайта. Однако именование CSS-сущностей выходит за рамки данного материала.

Настройка внешних отступов, разделяющих элементы-контейнеры


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

.wrapper {margin: 0 auto;}

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

Я имею в виду такую схему стилизации:

.wrapper-variation {margin-top: 50px;}

Свойство margin для элемента с классом .wrapper-variation не будет применено к элементу из-за того, что его переопределяет свойство margin: 0 auto. Краткая форма настройки свойства переопределяет его полную форму. Для того чтобы подобного избежать, рекомендуется в таких случаях использовать полную форму записи свойств. То есть, при стилизации элемента с классом .wrapper нужно поступить так:

.wrapper {max-width: 1170px;margin-left: auto;margin-right: auto;padding-left: 16px;padding-right: 16px;}

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


Автономный контейнер и контейнер внутри элемента <section>

Вот HTML-код:

<div class="wrapper mb-5"></div><section><div class="wrapper"></div></section><div class="wrapper"></div>

Вот стиль:

.mb-5 {margin-bottom: 3rem !important;}

При таком подходе CSS-код для элемента-обёртки остаётся в неизменном виде, а расстояния между элементами настраиваются с использованием вспомогательных CSS-классов. Тут у вас может появиться вопрос о том, зачем мне понадобилось использовать на странице несколько контейнеров, когда можно обойтись одним. Обратите внимание на то, что в вышеприведённом HTML-коде имеется элемент <section>, расположенный между двух элементов-обёрток.

Здесь хорошо показывает себя использование модификатора !important. Дело в том, что смысл использования вспомогательных классов заключается в том, чтобы принудительно менять значения свойств. Обеспечить такое поведение можно с помощью !important.

Контейнер внутри полноэкранного элемента


В некоторых случаях бывает так, что есть элемент <section> с фоном, занимающий 100% ширины области просмотра, а внутри этого элемента имеется элемент-контейнер. Эта схема похожа на ту, которую мы рассматривали в предыдущем разделе.

HTML-структура страницы в такой ситуации может выглядеть так:

<section><div class="wrapper"></div></section><section><div class="wrapper"></div></section>

Элемент <section> занимает 100% ширины области просмотра. Этому элементу можно назначить фоновое изображение или фоновый цвет. Контейнер, находящийся внутри этого элемента, не даёт содержимому занимать всю ширину области просмотра.


Элемент <section> занимает всю ширину области просмотра, контейнер ограничивает пространство, в котором выводится содержимое страницы

На этом рисунке у элемента <section> задано фоновое изображение. Он занимает всю ширину области просмотра, а содержимое страницы, выводимое в контейнере, ограничено шириной контейнера.

Нужно ли заключать в контейнер содержимое верхнего блока страницы?


Нужен ли контейнер для оформления верхнего блока страницы, который часто называют Hero Section? Это зависит от каждой конкретной ситуации. Исследуем два самых распространённых подхода к оформлению верхних блоков страниц.

Первый подход предусматривает центровку содержимого блока и ограничение ширины содержимого.


Ширина содержимого верхнего блока страницы ограничена

Второй вариант предусматривает распределение содержимого в пределах верхнего блока.


Содержимое распределено в пределах верхнего блока страницы

Для того чтобы лучше разобраться в этих паттернах, предлагаю исследовать особенности их внутреннего устройства.

Верхний блок страницы, содержимое которого выровнено по центру


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

<section class="hero"><h2><font color="#3AC1EF">How to make bread at home</font></h2><p>....</p><p><a href="http://personeltest.ru/aways/habr.com/sign-up">Sign up</a></p></section>

При стилизации вышеприведённого HTML-кода выровнять его содержимое по центру можно, воспользовавшись свойством text-align:

.hero { text-align: center; }

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

Проблема 1: содержимое раздела прижимается к краям области просмотра


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


Содержимое раздела прижато к его краям

Проблема 2: слишком большая длина строк текста на экранах большого размера


На экранах большого размера текст, оформленный тегом <p>, может быть очень тяжело читать из-за того, что длина абзаца окажется слишком большой. В соответствии с этим документом, рекомендованное число символов в строке составляет 45-75. Выход длины строки за пределы этого диапазона усложняет чтение.


Длина строки слишком велика

Решение проблем


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

<section class="hero"><div class="hero__wrapper"><h2><font color="#3AC1EF">How to make bread at home</font></h2><p>...</p><p><a href="http://personeltest.ru/aways/habr.com/sign-up">Sign up</a></p></div></section>

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

.hero__wrapper {max-width: 720px;margin-left: auto;margin-right: auto;padding-left: 16px;padding-right: 16px;}

Выровнять содержимое верхнего блока страницы по центру можно, используя любой удобный подход. Тут всё зависит от каждой конкретной ситуации. В данном примере для выравнивания контента достаточно воспользоваться свойством text-align: center.

Как выравнивать контейнер: по центру, или по левому краю страницы?


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

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


Выравнивание содержимого на экране ноутбука и на экране настольного компьютера

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

Использование CSS-переменных для создания различных вариантов стилизации контейнеров


Редко бывает так, что все элементы-контейнеры, используемые в некоем проекте, имеют одну и ту же ширину. Ширина контейнера может меняться в зависимости от содержимого контейнера и от того, как именно он используется. Большую гибкость в работе с контейнерами даёт использование CSS-переменных. Это, кроме того, весьма современный подход к настройке контейнеров. Рассмотрим пример.

Вот HTML-код контейнера:

<div class="wrapper"></div>

Вот стиль:

.wrapper {max-width: var(--wrapper-width, 1170px);margin-left: auto;margin-right: auto;padding-left: 16px;padding-right: 16px;}

Если вы внимательно прочли CSS-код, вы могли заметить, что var() передаётся два значения: первое это переменная --wrapper-width, второе это обычное значение 1170px. Второе значение является запасным. Смысл его существования заключается в том, что оно будет использовано в том случае, если значение переменной --wrapper-width окажется неустановленным.

Что это значит? А это значит, что в наших руках оказывается инструмент для создания различных вариантов элементов-обёрток благодаря возможности переопределения значения переменной --wrapper-width. Выглядит это так:

<div class="wrapper" style="--wrapper-width: 720px"></div>

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

  • Добавление к элементу нового класса.
  • Копирование и дублирование существующих стилей.

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

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

Вот HTML-разметка:

<div class="wrapper wrapper--small"></div>

Так выглядит стиль:

.wrapper--small {--wrapper-width: 720px;/* благодаря этому стандартная ширина контейнера будет переопределена. */}

Здесь можно найти рабочий пример.

Использование display: contents


Для начала позвольте немного рассказать о значении contents свойства display. Каждый элемент в CSS это блок. В этом блоке что-то содержится, у него есть внутренние и внешние отступы и граница. Использование свойства display: contents приводит к тому, что блок, которому оно назначено, удаляется из потока документа. Это можно представить себе как удаление открывающего и закрывающего тегов блока.

Вот разметка:

<header class="site-header"><div class="wrapper site-header__wrapper"><!-- Содержимое заголовочной области сайта --></div></header>

Вот стиль:

.site-header__wrapper {display: flex;flex-wrap: wrap;justify-content: space-between;}


Элемент-обёртка

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

.site-header__wrapper {display: contents;}.site-header {display: flex;flex-wrap: wrap;justify-content: space-between;}

Здесь, благодаря использованию свойства display: contents, элемент-обёртка будет как бы скрыт. Теперь, когда свойство display: flex применяется к элементу с классом .site-header, дочерние элементы контейнера становятся дочерними элементами .site-header.


Заголовочная часть сайта занимает, в ширину, всё доступное пространство

Отзывчивый фон и фиксированное содержимое


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

Вот HTML-разметка:

<section><div class="wrapper"></div></section>

Вот стили:

section {background-color: #ccc;}.wrapper {max-width: 1170px;margin-left: auto;margin-right: auto;padding-left: 16px;padding-right: 16px;}

Здесь значения свойств margin-left: auto и margin-right: auto вычисляются путём взятия половины ширины области просмотра и вычитания из неё ширины содержимого. Того же самого можно добиться с использованием внутренних отступов.


Внутренние отступы

section {padding: 1rem calc(50% - 585px);}

Но дело пока ещё не сделано. На мобильных устройствах содержимое будет прижато к краям области просмотра. Решить эту проблему можно, например, так:

section {padding: 1rem;}@media (min-width: 1170px) {section {padding: 1rem calc(50% - 585px);}}

В качестве альтернативного решения можно предложить применение новой CSS-функции max(). Используя её, мы задаём минимальный размер внутреннего отступа, равный 1rem, а в качестве второго значения, передаваемого ей, указываем выражение 50% 585px.

section {padding: 1rem max(1rem, (50% - 585px));}

Если вам интересны подробности о CSS-функциях min(), max() и clamp() вот мой материал на эту тему.

Как вы стилизуете элементы-контейнеры?

Подробнее..

Как жить и работать с психиатрическим диагнозом. Часть 1

04.07.2020 12:05:52 | Автор: admin

И снова привет, Хабр.

Две недели назад я написала пост с каминг-аутом, что я работаю в IT с тяжелым психическим расстройством и предложила задавать вопросы. И форма ответов просто взорвалась! Впервые за время, которое я на площадке, я увидела человеческую часть нашего коммьюнити так близко.

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

Под катом часть первая о жизни с БАР.


Меня зовут Сания Галимова, я хочу поговорить о психических расстройствах, о стигме, и о том, как жить с диагнозом и при этом работать и оставаться в строю. Будет много триггеров и история будет жестокой, поэтому лучше уберите детей от экранов.

Отражение, которое пытается разбить зеркало и убить вас это жесть, у вас такое было регулярно? Вы запомнили это четко? Если да, почему долго не обращались к врачу?


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

Началось все, когда я уехала в школу с пансионатом. Тогда мне было 11 лет. Мы очень много учились, было по 12 часов каждого из двух языков в неделю, много заданий, плохо кормили. Хотя я благодарна школе за знания, за возможности, но это было тяжело. Плюс, к стрессу учебы добавилось то, что (как оказалось) школа спонсировалось экстремистской религиозной организацией и я попала в религиозную секту. Я читала намаз и ходила в закрытых платьях. Это не была медресе, а просто для одаренных детей из деревень с пансионатом, куда было довольно сложно попасть.

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

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

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

Тогда же у меня и дебютировало заболевание, случился первый депрессивный эпизод. После школы я довольно быстро забеременела в 17 и решила оставить ребенка мне очень сильно хотелось его родить и растить, это был замечательный опыт, но физически тяжелый. Потом были годы, когда я с трудом зарабатывала на жизнь себе и ребенку представьте 18-летнюю девчонку с ребенком на руках в Москве. Нужно работать без остановки. Днем я сидела с ребенком, по ночам кодила плохие сайты на php это позволяло как-то держаться.

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

Но в какой-то момент мне исполнилось 23 и я решила, что хватит. Составила список вещей в моей жизни, которые делают меня несчастной: мало денег, нет времени отдыхать, нет хороших отношений, неуютное жилье и так далее. Я закрыла свой бизнес и ушла в ИТ, и каким-то образом мне удалось закрыть список. Я жила в Питере, мне нравился город и новая работа, денег было достаточно, появился классный парень. Но у меня снова началась депрессия. Тогда я сделала логичный вывод, что что-то не так со именно мной не с обстоятельствами, а внутри меня. Так я пошла к психотерапевту и честно все рассказала: про суицидальные мысли, что у меня болит в груди, что я долго сплю. Она направила меня к психиатру.

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

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

Когда болезнь вызвана дисбалансом на уровне химии, психотерапия может быть не нужна?


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

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

Ты все о проблемах на работе, а с личной жизнью как? Кроме путешествий и карьеры


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

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

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

Как с производительностью или креативностью? Сложные проекты и идеи, которые подъемны во время маниакальной фазы, вообще осуществимы?


Да. Вообще, все стоящие проекты, которые я сделала, делались не за один щелчок; реализация проекта может требовать 2-3 месяца включенной работы, когда ты обращаешь внимание и на подрядчиков, и на коллег, решаешь вопросы. Я менеджер, мне важно быть включенным во все задачи.

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

Какие анализы нужно делать; если проблема с биохимией, анализы являются четким индикатором?


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

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

Как перебороть себя и пойти на прием к психиатру?


Я могу рассказать, как переборола себя я. В том разговоре с психотерапевтом, в котором я все честно рассказала, она сказала: у тебя сейчас пограничное состояние, возможно пограничное расстройство личности.

Я спросила: то есть, мне нужно к психиатру?
Она сказала: да, нужно провериться.

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

То есть, надо понять, чего вы хотите от жизни. Если вы хотите выиграть вам придется поехать на прием, это неизбежно.

Каково работается вашим коллегам с вами? Диагноз предполагает внезапную смену настроений и проблемы с коммуникацией


Это вопрос к моим коллегам. Но на двух последних работах коллеги ни разу не видели меня во время эпизодов, потому что я уже 3 года в ремиссии. Если бы я опять попала в одно из состояний, я бы взяла отпуск, и они бы меня все равно не увидели.

Коллеги (не руководство) знали заранее, какой человек приходит в коллектив, или узнали постфактум из статьи?


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

Вижу у своей жены характерные признаки БАР, как можно ей помочь осознать состояние и начать последовательное лечение? Отчасти она понимает, что с ее нестабильным настроением что-то не так, но категорически отказывается признавать себя психической (это цитата)


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

Это очень сложный вопрос. Но у меня есть на него ответ, и он жестокий: НИКАК. Если человек отрицает и не хочет лечиться, не осознает, что ему надо лечиться, то вы ничего не сделаете. Я скажу, почему: я очень много общалась с другими биполярниками и вообще людьми с диагнозами; когда узнала свой диагноз, подписалась на все телеграмм-каналы об этом, мне было интересно узнать, как это.

И оказывается, что в ремиссию не выходит почти никто, хотя я вышла довольно быстро. Я пришла на очередной прием к психиатру и спросила: почему на людей не работают таблетки?

Он ответил, что пока человек не хочет лечиться, пока у него есть бонусы от наличия диагноза, его жалеют, его любят, на него подписываются в интернете он не вылечится. Я не поверила, думала мне просто повезло, а психиатр хочет подогреть мое ЧСВ. Но теперь опыт говорит мне, что он сказал правду.

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

Если биполярникам нравится мания, то почему бы туда не переехать? Зачем быть нормальными? Вряд ли такой Джокер долго протянет, зато умрет счастливым


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

Вообще я хочу привести комментарий от KivApple к предыдущему посту, с которым я совершенно согласна

Вот этот комментарий
Хоть маниакальная фраза, хоть наркотическое опьянение это счастье в кредит. Рано или поздно резервы организма истощаются (а количество возможного к выбросу дофамина и серотонина ограничено, даже наркотики не генерируют эти гормоны, а просто обеспечивают неестественно резкое их высвобождение, ну большинство во всяком случае, у меня знания теоретические, за всё не скажу) и неизбежна депрессия и апатия (употребители психоактивных веществ ещё называют это отходняками). Это как раз в год набирать кредитов на максимальную сумму и отравляться на месяц в кругосветное путешествие. а потом весь год питаться дошираками и жить под мостом, работая на 3 работах, выплачивая кредит. На первый взгляд звучит прикольно, но на практике большинству не понравится. И если наркоупотребители теоретически ещё могут контролировать момент времени взятия кредита и его сумму (да и вообще это их выбор и они ССЗБ), то в случае с психическим заболеванием это куда менее предсказуемо и управляемо, а также не является осознанным выбором.

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


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


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

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

Не могу спать без снотворного. До депрессии сон был нормальный.


По моему опыту, бессонница это самый быстрый убийца. Очень важно получить помощь как можно скорее.

У меня была клиническая депрессия один раз. После того, как я переехала в Питер я два года работала без выходных по 12-16 часов, чтобы запустить бизнес, оплачивать квартиру и няню для двухлетнего ребенка. Это было очень тяжело, сначала у меня была гипомания, потом мания, потом депрессия, а потом у меня началась бессонница.

Я не спала около 3-4 дней, и за это время у меня конкретно поехала крыша. Было очень плохо. На исходе третьих суток у меня было спутанное сознание, и я поняла, что должна так или иначе поспать и либо засну, либо умру, но посплю я в любом случае

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

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

Каждый день я думала, что сегодня должно стать лучше; я и не догадывалась, что депрессия выглядит именно так, думала я просто переработала, устала, приболела, я молодая и сильная, я поправлюсь завтра станет лучше. Но завтра лучше не становилось. В какой-то момент мой один час сна превратился в 20-30 минут.

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

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

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

К чему я это говорю: бессонница это жутко, она может быстро убить. Если у вас есть бессонница решайте эту проблему, пока она не решила вас.

На чем вы специализируетесь по профессии?


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

Повлиял ли БАР на привычки и образ жизни Сании? Работа маркетолога требует маниакальной креативности, возможно, это связано


У меня есть своя теория насчет того, как связаны креативность и БАР. Действительно, есть много указаний на то, что люди с биполярным расстройством более креативны.

Я думаю, что у людей с БАР, особенно в гипоманиакальных и маниакальных состояниях, более эффективно работает мозг. Они могут держать в голове можество вещей и связи между ними, строить сложные системы, все замечать и помнить. Произведения искусства такие, когда ты входишь в картинную галерею и просто застываешь это бесконечно гармоничные системы, в них огромное количество маленьких деталей, идеально и гармонично сложенных. Чем гармоничнее, тем монументальней и прекрасней произведение.

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

Я думаю, с этим же связано то, что у биполярников доказана более высокая чувствительность к произведениям искусства мы их глубже понимаем. Есть еще такой забавный симптом сложный речевой аппарат: человек умеет, любит и практикует говорить сложным, более выразительным языком с большим количеством оригинальных оборотов; я думаю, что моя теория это объясняет.

Но это просто моя теория, которая ничем не подтверждается.

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


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

Я не думаю, что более дешевые психиатры всегда хуже; я слышала, что люди отваливают по 20 штук за один прием, когда как я платила только 2.5. Как-то я сделал глупость: пришла на регулярный прием (просто показаться психиатру и удостовериться, что все идет хорошо);

я такая: класс, у меня новая работа, теперь зарплата лучше, и врач в ответ: о, тогда теперь прием 3500 :)

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

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

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


3-4 дня это уже опасно, лучше сразу врачу. Пусть хоть галоперидол прописывают, только не бессонница.

Наркотики и психические заболевания. Почему нельзя?


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

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

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

Говоришь ли ты партнеру про БАР? Психиатр советует не говорить


Это не дело психиатра, а ваше личное.

Своему партнеру я рассказала сразу, потому что решила, что он имеет право знать, и уйти, если захочет. Но он не ушел. Мы уже 4 года вместе; когда я узнала диагноз, мы были вместе всего 2 месяца. Когда я сказала ему, он лег на диван лицом к стене и весь вечер так думал, а потом сказал, что он будет мне помогать, и мы через это пройдем. И мы прошли.

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

Так что сами решайте, говорить или не говорить, психиатр тут не советчик.

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


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

Как думаешь, опасно пить алкоголь с лекарствами?


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

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


Если бы была возможность вернуться на 10 лет назад, я бы не изменила ничего даже вот эту стремную татуировку, которую я сделала во время мании. Как я уже писала на Хабре жизнь была тяжелой, но жизнь была прекрасной. Было столько всего хорошего! Да, есть моменты, за которые мне стыдно (например, когда за мальчиками бегала), но это даже как-то мило есть о чем пожалеть, о чем посмеяться. Тем более, что я даже в мании принимала хорошие решения. Мне повезло, что я родила ребенка до того, как села на таблетки он скоро в школу пойдет и вообще замечательный. Или мой бизнес я очень многому научилась, встретила потрясающих людей. Это все стоит того.

Мания ведь уравнивает депрессию?


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

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

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


12 раз за ночь в туалете клуба с разными людьми это не прекрасно, это вы потом умрете от стыда (и, возможно, от ВИЧ-инфекции). А простые решения сложных проблем на проверку оказываются ненастоящими. А гениальные планы оказываются недостижимыми.

Каков порог, разделяющий нормальную смену фаз активности и подавленности обычного человека в этом мире, со всеми его нюансами, и диагнозом биполярное расстройство? Что является звоночками диагноза?


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

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

Как найти работу, если тебя уволили, у тебя не самая популярная специализация, при этом шизотипическое расстройство плюс рекуррентная депрессия?


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

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


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

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

Как вести себя, если у близкого человека БАР? Что можно и нужно делать, что нельзя?


Как я уже сказала лечить, поддерживать, помогать. Обещать, что вы всегда будете поддерживать, если вы действительно собираетесь это делать, если вы готовы к этому сложному пути. Не следует относиться к человеку с БАР как к ребенку. Нужно уважать его решения. Я часто получаю письма с подобными вопросами: человек познакомился с девушкой (парнем), начали встречаться, и тут другая сторона говорит, что у него БАР, и он не готов к отношениям, а потом ты не вывезешь, пока.

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

У меня БАР часто это просто вежливая отмазка. Если у человека биполярка, не стоит считать его каким-то ребенком, неразумным, которого вы сейчас спасете. Многие люди с биполяркой многое могут и для себя, и для других, и, если они чего-то не делают, может и просто не хотят.

Посоветуйте, как найти хорошего и доступного по оплате врача в Москве для лечения этого заболевания.


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

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

Как и когда распознать такую особенность у ребенка? Как вести себя, если распознал?


Очень тяжелая тема. Я очень боюсь, что у моего ребенка будет моя проблема, хотя это совершенно не гарантировано например, у моих родителей нет биполярки, и у брата нет, есть только у меня. Я думаю, если вы заметили подобное у ребенка, если у него действительно есть симптомы, и ему тяжело, надо поговорить с ним. Заходить надо именно с такой стороны: Расскажи, тяжело ли тебе? Если тяжело, давай что-то с этим сделаем? Я знаю такую вещь, которая может помочь. Не запугивайте его. Если он маленький можно подать это как есть: тебе тяжело, но есть врачи, которые помогут. Если он взрослый, то все сложнее, и стигма работает, и вот это все. Я думаю, что надо любить и уважать своих детей, и они будут отвечать тем же, и тогда подобные разговоры будут проходить легче.

И, как я уже говорила, если у вашего близкого БАР, самое главное не дать ему убить себя. У нас очень высокий процент самоубийств, выше 25%, кажется, и за этим надо следить.

Здравствуйте, как вы достигли ремиссии? У меня тоже БАР


Здоровья вам. Я достигла ремиссии довольно простым для объяснения, но сложным для выполнения способом. Я нашла хорошего психиатра, и я решила для себя, что буду и хочу лечиться. То есть, я не видела ни одного плюса в БАР, я не хотела маний и гипоманий, я хотела просто вырулить на норму, дожить до старости с большим счетом в банке, классным мужем и большим количеством детей в домике на море. Я осознала, что эта цель будет недостижима, если я не откажусь от этих коротких наркотических приступов удовольствия от мании, поэтому мании мне не хотелось вообще.

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

Повлияло ли БАР на привычки? Как удержать ремиссию?


Да, конечно. Может, вы смотрели фильм Beautiful Mind, про Джона Нэша, который, когда к нему подходят новые люди, спрашивает: ты его тоже видишь? и убеждается, что это не галлюцинация. Иногда я тоже уточняю у мужа, видит ли он что-то, слышит ли он что-то, если что-то необычное. Слава богу, за последние 4 года это всегда было что-то реальное. Я отслеживаю свое состояние, я хорошо сплю, звоню врачу, если происходит что-то не то. Если мне кажется, что что-то не так сразу еду на прием.

Мне несколько раз повышали дозы, и это помогало удерживать ремиссию.

Можно ли в таком состоянии и с таким диагнозом найти себя, самоопределиться с профессией, как это сделать? Спасибо.


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

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

Как понять, где ты, а где диагноз?


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

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

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

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

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

70% моего характера оказалось симптомами. Я это болезнь? Или наоборот? Какая я бы была без болезни? Без болезни меня не существует?

Есть такой сериал Мир Дикого Запада про роботов, которых программируют жить определенной жизнью и проигрывать свои сценарии. Во втором сезоне есть сцена: шлюха из парка видит другого робота, который проживает ее сценарий.

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

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

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

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

У меня всегда оставалась воля, моя собственная, выборы всегда делала я сама неважно, в мании, депрессии, гипомании. Эти выборы делают мой путь уникальным, они делает меня мной.

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

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

Вместо выводов: 5 самых важных пунктов, не все из которых я упомянула на эфире


1. Мой друг очень советует в Москве это место для лечения. Его цитата:
Граждан, имеющих постоянную регистрацию в Москве и страховой полис, они принимают бесплатно. И что самое главное, НЕ заводят специализированные карты. Иными словами никто кроме твоего лечащего врача не знает диагноз.
Штамп никакой ни где не ставится. В легких формах болезни можно, приезжать только днем, а спать дома.

2. Электрошок один из самых эффективных и безопасных способов лечения депрессии. Люди избегают его, потому что это классический элемент ужастика о психиатрической клинике тем не менее, доказано, что это более безопасно для мозга, чем длительное употребление нейролептиков, антидепрессантов и антипсихотиков. Электрошок помогал Кэрри Фишер в борьбе с биполярным расстройством принцессе Лее, о которой мы мечтали все детство. Я сама электрошоковую терапию не пробовала, но если придется пойду.

3. Одна из самых полезных книг о биполярном расстройстве это "Беспокойный ум. Моя победа над биполярным расстройством" Кэй Джеймисон. Это врач-психиатр, специализирующаяся на биполярке и сама страдает БАР. Это та самая книга, которая расставила все точки над i для моей мамы по ее словам, после прочтения ей стало намного проще жить, потому что она поняла все мои срывы, склонность к фатальности и жесткость в некоторых ситуациях.

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

5. Если вы чувствуете, что теряете контроль обратитесь за срочной помощью. Чувствуете, что выйдете в окно позвоните в скорую. Лучше пролежать неделю в клинике и потом рвать всех на соревнованиях в Topcoder, чем уйти так бесславно. Если пытается выйти ваш друг тоже позвоните в скорую. Когда вы успокоите его и уйдете домой с огромной вероятностью он попытается сделать это снова и неважно, что этот человек был душой компании и собрал все дипломы на всеросе. Лучше испортить отношения, чем с тяжелым сердцем прощаться насовсем.

Продолжение завтра в это же время...

Подробнее..

Как жить и работать с психиатрическим диагнозом расшифровка эфира, часть 1

04.07.2020 14:10:42 | Автор: admin

И снова привет, Хабр.

Две недели назад я написала пост с каминг-аутом, что я работаю в IT с тяжелым психическим расстройством и предложила задавать вопросы. И форма ответов просто взорвалась! Впервые за время, которое я на площадке, я увидела человеческую часть нашего коммьюнити так близко.

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

Под катом часть первая о жизни с БАР.


Меня зовут Сания Галимова, я хочу поговорить о психических расстройствах, о стигме, и о том, как жить с диагнозом и при этом работать и оставаться в строю. Будет много триггеров и история будет жестокой, поэтому лучше уберите детей от экранов.

Отражение, которое пытается разбить зеркало и убить вас это жесть, у вас такое было регулярно? Вы запомнили это четко? Если да, почему долго не обращались к врачу?


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

Началось все, когда я уехала в школу с пансионатом. Тогда мне было 11 лет. Мы очень много учились, было по 12 часов каждого из двух языков в неделю, много заданий, плохо кормили. Хотя я благодарна школе за знания, за возможности, но это было тяжело. Плюс, к стрессу учебы добавилось то, что (как оказалось) школа спонсировалось экстремистской религиозной организацией и я попала в религиозную секту. Я читала намаз и ходила в закрытых платьях. Это не была медресе, а просто для одаренных детей из деревень с пансионатом, куда было довольно сложно попасть.

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

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

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

Тогда же у меня и дебютировало заболевание, случился первый депрессивный эпизод. После школы я довольно быстро забеременела в 17 и решила оставить ребенка мне очень сильно хотелось его родить и растить, это был замечательный опыт, но физически тяжелый. Потом были годы, когда я с трудом зарабатывала на жизнь себе и ребенку представьте 18-летнюю девчонку с ребенком на руках в Москве. Нужно работать без остановки. Днем я сидела с ребенком, по ночам кодила плохие сайты на php это позволяло как-то держаться.

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

Но в какой-то момент мне исполнилось 23 и я решила, что хватит. Составила список вещей в моей жизни, которые делают меня несчастной: мало денег, нет времени отдыхать, нет хороших отношений, неуютное жилье и так далее. Я закрыла свой бизнес и ушла в ИТ, и каким-то образом мне удалось закрыть список. Я жила в Питере, мне нравился город и новая работа, денег было достаточно, появился классный парень. Но у меня снова началась депрессия. Тогда я сделала логичный вывод, что что-то не так со именно мной не с обстоятельствами, а внутри меня. Так я пошла к психотерапевту и честно все рассказала: про суицидальные мысли, что у меня болит в груди, что я долго сплю. Она направила меня к психиатру.

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

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

Когда болезнь вызвана дисбалансом на уровне химии, психотерапия может быть не нужна?


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

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

Ты все о проблемах на работе, а с личной жизнью как? Кроме путешествий и карьеры


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

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

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

Как с производительностью или креативностью? Сложные проекты и идеи, которые подъемны во время маниакальной фазы, вообще осуществимы?


Да. Вообще, все стоящие проекты, которые я сделала, делались не за один щелчок; реализация проекта может требовать 2-3 месяца включенной работы, когда ты обращаешь внимание и на подрядчиков, и на коллег, решаешь вопросы. Я менеджер, мне важно быть включенным во все задачи.

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

Какие анализы нужно делать; если проблема с биохимией, анализы являются четким индикатором?


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

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

Как перебороть себя и пойти на прием к психиатру?


Я могу рассказать, как переборола себя я. В том разговоре с психотерапевтом, в котором я все честно рассказала, она сказала: у тебя сейчас пограничное состояние, возможно пограничное расстройство личности.

Я спросила: то есть, мне нужно к психиатру?
Она сказала: да, нужно провериться.

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

То есть, надо понять, чего вы хотите от жизни. Если вы хотите выиграть вам придется поехать на прием, это неизбежно.

Каково работается вашим коллегам с вами? Диагноз предполагает внезапную смену настроений и проблемы с коммуникацией


Это вопрос к моим коллегам. Но на двух последних работах коллеги ни разу не видели меня во время эпизодов, потому что я уже 3 года в ремиссии. Если бы я опять попала в одно из состояний, я бы взяла отпуск, и они бы меня все равно не увидели.

Коллеги (не руководство) знали заранее, какой человек приходит в коллектив, или узнали постфактум из статьи?


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

Вижу у своей жены характерные признаки БАР, как можно ей помочь осознать состояние и начать последовательное лечение? Отчасти она понимает, что с ее нестабильным настроением что-то не так, но категорически отказывается признавать себя психической (это цитата)


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

Это очень сложный вопрос. Но у меня есть на него ответ, и он жестокий: НИКАК. Если человек отрицает и не хочет лечиться, не осознает, что ему надо лечиться, то вы ничего не сделаете. Я скажу, почему: я очень много общалась с другими биполярниками и вообще людьми с диагнозами; когда узнала свой диагноз, подписалась на все телеграмм-каналы об этом, мне было интересно узнать, как это.

И оказывается, что в ремиссию не выходит почти никто, хотя я вышла довольно быстро. Я пришла на очередной прием к психиатру и спросила: почему на людей не работают таблетки?

Он ответил, что пока человек не хочет лечиться, пока у него есть бонусы от наличия диагноза, его жалеют, его любят, на него подписываются в интернете он не вылечится. Я не поверила, думала мне просто повезло, а психиатр хочет подогреть мое ЧСВ. Но теперь опыт говорит мне, что он сказал правду.

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

Если биполярникам нравится мания, то почему бы туда не переехать? Зачем быть нормальными? Вряд ли такой Джокер долго протянет, зато умрет счастливым


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

Вообще я хочу привести комментарий от KivApple к предыдущему посту, с которым я совершенно согласна

Вот этот комментарий
Хоть маниакальная фраза, хоть наркотическое опьянение это счастье в кредит. Рано или поздно резервы организма истощаются (а количество возможного к выбросу дофамина и серотонина ограничено, даже наркотики не генерируют эти гормоны, а просто обеспечивают неестественно резкое их высвобождение, ну большинство во всяком случае, у меня знания теоретические, за всё не скажу) и неизбежна депрессия и апатия (употребители психоактивных веществ ещё называют это отходняками). Это как раз в год набирать кредитов на максимальную сумму и отравляться на месяц в кругосветное путешествие. а потом весь год питаться дошираками и жить под мостом, работая на 3 работах, выплачивая кредит. На первый взгляд звучит прикольно, но на практике большинству не понравится. И если наркоупотребители теоретически ещё могут контролировать момент времени взятия кредита и его сумму (да и вообще это их выбор и они ССЗБ), то в случае с психическим заболеванием это куда менее предсказуемо и управляемо, а также не является осознанным выбором.

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


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


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

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

Не могу спать без снотворного. До депрессии сон был нормальный.


По моему опыту, бессонница это самый быстрый убийца. Очень важно получить помощь как можно скорее.

У меня была клиническая депрессия один раз. После того, как я переехала в Питер я два года работала без выходных по 12-16 часов, чтобы запустить бизнес, оплачивать квартиру и няню для двухлетнего ребенка. Это было очень тяжело, сначала у меня была гипомания, потом мания, потом депрессия, а потом у меня началась бессонница.

Я не спала около 3-4 дней, и за это время у меня конкретно поехала крыша. Было очень плохо. На исходе третьих суток у меня было спутанное сознание, и я поняла, что должна так или иначе поспать и либо засну, либо умру, но посплю я в любом случае

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

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

Каждый день я думала, что сегодня должно стать лучше; я и не догадывалась, что депрессия выглядит именно так, думала я просто переработала, устала, приболела, я молодая и сильная, я поправлюсь завтра станет лучше. Но завтра лучше не становилось. В какой-то момент мой один час сна превратился в 20-30 минут.

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

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

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

К чему я это говорю: бессонница это жутко, она может быстро убить. Если у вас есть бессонница решайте эту проблему, пока она не решила вас.

На чем вы специализируетесь по профессии?


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

Повлиял ли БАР на привычки и образ жизни Сании? Работа маркетолога требует маниакальной креативности, возможно, это связано


У меня есть своя теория насчет того, как связаны креативность и БАР. Действительно, есть много указаний на то, что люди с биполярным расстройством более креативны.

Я думаю, что у людей с БАР, особенно в гипоманиакальных и маниакальных состояниях, более эффективно работает мозг. Они могут держать в голове можество вещей и связи между ними, строить сложные системы, все замечать и помнить. Произведения искусства такие, когда ты входишь в картинную галерею и просто застываешь это бесконечно гармоничные системы, в них огромное количество маленьких деталей, идеально и гармонично сложенных. Чем гармоничнее, тем монументальней и прекрасней произведение.

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

Я думаю, с этим же связано то, что у биполярников доказана более высокая чувствительность к произведениям искусства мы их глубже понимаем. Есть еще такой забавный симптом сложный речевой аппарат: человек умеет, любит и практикует говорить сложным, более выразительным языком с большим количеством оригинальных оборотов; я думаю, что моя теория это объясняет.

Но это просто моя теория, которая ничем не подтверждается.

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


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

Я не думаю, что более дешевые психиатры всегда хуже; я слышала, что люди отваливают по 20 штук за один прием, когда как я платила только 2.5. Как-то я сделал глупость: пришла на регулярный прием (просто показаться психиатру и удостовериться, что все идет хорошо);

я такая: класс, у меня новая работа, теперь зарплата лучше, и врач в ответ: о, тогда теперь прием 3500 :)

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

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

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


3-4 дня это уже опасно, лучше сразу врачу. Пусть хоть галоперидол прописывают, только не бессонница.

Наркотики и психические заболевания. Почему нельзя?


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

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

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

Говоришь ли ты партнеру про БАР? Психиатр советует не говорить


Это не дело психиатра, а ваше личное.

Своему партнеру я рассказала сразу, потому что решила, что он имеет право знать, и уйти, если захочет. Но он не ушел. Мы уже 4 года вместе; когда я узнала диагноз, мы были вместе всего 2 месяца. Когда я сказала ему, он лег на диван лицом к стене и весь вечер так думал, а потом сказал, что он будет мне помогать, и мы через это пройдем. И мы прошли.

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

Так что сами решайте, говорить или не говорить, психиатр тут не советчик.

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


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

Как думаешь, опасно пить алкоголь с лекарствами?


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

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


Если бы была возможность вернуться на 10 лет назад, я бы не изменила ничего даже вот эту стремную татуировку, которую я сделала во время мании. Как я уже писала на Хабре жизнь была тяжелой, но жизнь была прекрасной. Было столько всего хорошего! Да, есть моменты, за которые мне стыдно (например, когда за мальчиками бегала), но это даже как-то мило есть о чем пожалеть, о чем посмеяться. Тем более, что я даже в мании принимала хорошие решения. Мне повезло, что я родила ребенка до того, как села на таблетки он скоро в школу пойдет и вообще замечательный. Или мой бизнес я очень многому научилась, встретила потрясающих людей. Это все стоит того.

Мания ведь уравнивает депрессию?


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

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

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


12 раз за ночь в туалете клуба с разными людьми это не прекрасно, это вы потом умрете от стыда (и, возможно, от ВИЧ-инфекции). А простые решения сложных проблем на проверку оказываются ненастоящими. А гениальные планы оказываются недостижимыми.

Каков порог, разделяющий нормальную смену фаз активности и подавленности обычного человека в этом мире, со всеми его нюансами, и диагнозом биполярное расстройство? Что является звоночками диагноза?


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

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

Как найти работу, если тебя уволили, у тебя не самая популярная специализация, при этом шизотипическое расстройство плюс рекуррентная депрессия?


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

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


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

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

Как вести себя, если у близкого человека БАР? Что можно и нужно делать, что нельзя?


Как я уже сказала лечить, поддерживать, помогать. Обещать, что вы всегда будете поддерживать, если вы действительно собираетесь это делать, если вы готовы к этому сложному пути. Не следует относиться к человеку с БАР как к ребенку. Нужно уважать его решения. Я часто получаю письма с подобными вопросами: человек познакомился с девушкой (парнем), начали встречаться, и тут другая сторона говорит, что у него БАР, и он не готов к отношениям, а потом ты не вывезешь, пока.

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

У меня БАР часто это просто вежливая отмазка. Если у человека биполярка, не стоит считать его каким-то ребенком, неразумным, которого вы сейчас спасете. Многие люди с биполяркой многое могут и для себя, и для других, и, если они чего-то не делают, может и просто не хотят.

Посоветуйте, как найти хорошего и доступного по оплате врача в Москве для лечения этого заболевания.


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

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

Как и когда распознать такую особенность у ребенка? Как вести себя, если распознал?


Очень тяжелая тема. Я очень боюсь, что у моего ребенка будет моя проблема, хотя это совершенно не гарантировано например, у моих родителей нет биполярки, и у брата нет, есть только у меня. Я думаю, если вы заметили подобное у ребенка, если у него действительно есть симптомы, и ему тяжело, надо поговорить с ним. Заходить надо именно с такой стороны: Расскажи, тяжело ли тебе? Если тяжело, давай что-то с этим сделаем? Я знаю такую вещь, которая может помочь. Не запугивайте его. Если он маленький можно подать это как есть: тебе тяжело, но есть врачи, которые помогут. Если он взрослый, то все сложнее, и стигма работает, и вот это все. Я думаю, что надо любить и уважать своих детей, и они будут отвечать тем же, и тогда подобные разговоры будут проходить легче.

И, как я уже говорила, если у вашего близкого БАР, самое главное не дать ему убить себя. У нас очень высокий процент самоубийств, выше 25%, кажется, и за этим надо следить.

Здравствуйте, как вы достигли ремиссии? У меня тоже БАР


Здоровья вам. Я достигла ремиссии довольно простым для объяснения, но сложным для выполнения способом. Я нашла хорошего психиатра, и я решила для себя, что буду и хочу лечиться. То есть, я не видела ни одного плюса в БАР, я не хотела маний и гипоманий, я хотела просто вырулить на норму, дожить до старости с большим счетом в банке, классным мужем и большим количеством детей в домике на море. Я осознала, что эта цель будет недостижима, если я не откажусь от этих коротких наркотических приступов удовольствия от мании, поэтому мании мне не хотелось вообще.

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

Повлияло ли БАР на привычки? Как удержать ремиссию?


Да, конечно. Может, вы смотрели фильм Beautiful Mind, про Джона Нэша, который, когда к нему подходят новые люди, спрашивает: ты его тоже видишь? и убеждается, что это не галлюцинация. Иногда я тоже уточняю у мужа, видит ли он что-то, слышит ли он что-то, если что-то необычное. Слава богу, за последние 4 года это всегда было что-то реальное. Я отслеживаю свое состояние, я хорошо сплю, звоню врачу, если происходит что-то не то. Если мне кажется, что что-то не так сразу еду на прием.

Мне несколько раз повышали дозы, и это помогало удерживать ремиссию.

Можно ли в таком состоянии и с таким диагнозом найти себя, самоопределиться с профессией, как это сделать? Спасибо.


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

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

Как понять, где ты, а где диагноз?


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

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

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

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

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

70% моего характера оказалось симптомами. Я это болезнь? Или наоборот? Какая я бы была без болезни? Без болезни меня не существует?

Есть такой сериал Мир Дикого Запада про роботов, которых программируют жить определенной жизнью и проигрывать свои сценарии. Во втором сезоне есть сцена: шлюха из парка видит другого робота, который проживает ее сценарий.

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

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

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

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

У меня всегда оставалась воля, моя собственная, выборы всегда делала я сама неважно, в мании, депрессии, гипомании. Эти выборы делают мой путь уникальным, они делает меня мной.

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

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

Вместо выводов: 5 самых важных пунктов, не все из которых я упомянула на эфире


1. Мой друг очень советует в Москве это место для лечения. Его цитата:
Граждан, имеющих постоянную регистрацию в Москве и страховой полис, они принимают бесплатно. И что самое главное, НЕ заводят специализированные карты. Иными словами никто кроме твоего лечащего врача не знает диагноз.
Штамп никакой ни где не ставится. В легких формах болезни можно, приезжать только днем, а спать дома.

2. Электрошок один из самых эффективных и безопасных способов лечения депрессии. Люди избегают его, потому что это классический элемент ужастика о психиатрической клинике тем не менее, доказано, что это более безопасно для мозга, чем длительное употребление нейролептиков, антидепрессантов и антипсихотиков. Электрошок помогал Кэрри Фишер в борьбе с биполярным расстройством принцессе Лее, о которой мы мечтали все детство. Я сама электрошоковую терапию не пробовала, но если придется пойду.

3. Одна из самых полезных книг о биполярном расстройстве это "Беспокойный ум. Моя победа над биполярным расстройством" Кэй Джеймисон. Это врач-психиатр, специализирующаяся на биполярке и сама страдает БАР. Это та самая книга, которая расставила все точки над i для моей мамы по ее словам, после прочтения ей стало намного проще жить, потому что она поняла все мои срывы, склонность к фатальности и жесткость в некоторых ситуациях.

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

5. Если вы чувствуете, что теряете контроль обратитесь за срочной помощью. Чувствуете, что выйдете в окно позвоните в скорую. Лучше пролежать неделю в клинике и потом рвать всех на соревнованиях в Topcoder, чем уйти так бесславно. Если пытается выйти ваш друг тоже позвоните в скорую. Когда вы успокоите его и уйдете домой с огромной вероятностью он попытается сделать это снова и неважно, что этот человек был душой компании и собрал все дипломы на всеросе. Лучше испортить отношения, чем с тяжелым сердцем прощаться насовсем.

Продолжение завтра в это же время...

Подробнее..

Перевод Обзор технологий скроллинга

04.07.2020 16:09:21 | Автор: admin
Анимации, имеющие отношение к скроллингу веб-страниц, существуют уже многие годы. В последнее время подобные анимации стали распространённее. Возможно, дело тут отчасти в том, что устройства, используемые для работы в интернете, стали мощнее. Эти устройства способны нормально обрабатывать и выводить больше визуальных эффектов, чем раньше.



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

Технологии для реализации специфических механизмов скроллинга


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

CSS-свойство position: sticky


Если вам нужно, чтобы некий элемент не прокручивался бы вместе с остальным содержимым страницы, то при стилизации этого элемента достаточно применить свойство position: sticky. Это простой и понятный приём, его поддержка встроена в современные браузеры. Но для того, чтобы это работало бы в IE и в некоторых мобильных браузерах, понадобится полифилл. Если вам интересна эта тема взгляните на данный материал.


Синий элемент упирается в верхнюю часть контейнера и не прокручивается вместе с остальными элементами

Вот демонстрация такого скроллинга.

Эффект параллакса


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


Эффект параллакса: элементы движутся с разной скоростью.

Вот демонстрация эффекта параллакса.

Прокрутка с привязкой к определённым точкам


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


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

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

Плавная прокрутка


Плавный скроллинг поддерживается средствами браузера при прокрутке страницы до определённого раздела с использованием метода window.scrollTo() в JavaScript, или даже с применением CSS-свойства scroll-behavior. В настоящее время для реализации плавного скроллинга со сглаживанием движений колеса мыши требуются специальные JavaScript-библиотеки. Но при применении таких библиотек нужно обеспечить их нормальное взаимодействие с другими технологиями скроллинга. Кроме того, использование плавного скроллинга это далеко не всегда хорошая идея.

Технологии скроллинга общего назначения


В настоящее время нет способа, применяя лишь CSS, запускать какие-либо анимации скроллинга общего назначения, основываясь на позиции прокрутки (хотя имеется предложение, в соответствии с которым в отдалённом будущем в нашем распоряжении могут появиться некие анимации, основанные на технологиях скроллинга общего назначения). В результате, если вы хотите анимировать элементы при скроллинге, вам нужно, как минимум, использовать некоторый объём JavaScript-кода для достижения требуемого эффекта. Существуют два метода применения JavaScript для анимирования элементов при скроллинге. Первый заключается в использовании API Intersection Observer, второй в обработке события scroll.

Использование API Intersection Observer


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

Использование события scroll


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

Учитывая это, нужно отметить, что данный подход к анимации скроллинга может создать немалую нагрузку на систему. Так происходит в том случае, если разработчик не заботится о производительности и не ограничивает частоту обработки события scroll. Кроме того, в распоряжении программиста, который решит пользоваться событием scroll, не будет удобного API, позволяющего реализовывать различные сценарии скроллинга. Именно поэтому часто, вместо того, чтобы реализовывать механизмы обработки события scroll самостоятельно, есть смысл применить специализированную библиотеку, авторы которой уже позаботились и о влиянии обработки события scroll на производительность, и об API. Некоторые из этих библиотек даже способны помочь разработчику при возникновении проблем с размерами элементов

Инструменты для создания механизмов скроллинга общего назначения


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

ScrollMagic


Библиотека ScrollMagic даёт нам сравнительно простой API, позволяющий создавать различные эффекты при скроллинге. Эта библиотека может работать совместно с различными библиотеками для анимации, наподобие GSAP и Velocity.js. Правда, в последние несколько лет эта библиотека недостаточно хорошо поддерживается. Это привело к тому, что была создана библиотека ScrollScene.

ScrollScene


ScrollScene это, в сущности, обёртка, которая направлена на то, чтобы повысить удобство работы с библиотекой ScrollMagic и (или) с API IntersectionObserver. Здесь используется собственная версия ScrollMagic, которая отличается лучшей поддержкой, чем обычный вариант библиотеки. Тут имеются и дополнительные возможности, наподобие проигрывания видео и поддержки контрольных точек, влияющих на анимацию. Кроме того, эта библиотека использует GSAP.

ScrollTrigger


Библиотека ScrollTrigger это официальный GreenSock-плагин для GSAP. Эта библиотека отличается большим набором возможностей, её API кажется мне самым простым из API существующих библиотек для скроллинга. Используя эту библиотеку, вы полностью контролируете то, где именно начинается и заканчивается анимация скроллинга, вы можете анимировать при прокрутке всё что угодно (WebGL, canvas, SVG, DOM), можете закреплять элементы на время выполнения анимации. Этим возможности данной библиотеки не ограничиваются. Кроме того, эту библиотеку поддерживает GreenSock, получить помощь по её использованию можно на форумах GreenSock.

Библиотека, достойная упоминания: Locomotive Scroll


Библиотека Locomotive Scroll не стремится к реализации столь же широкого набора возможностей, как другие библиотеки, о которых мы говорили. Её основная цель реализация плавной прокрутки. Используя её, кроме того, можно анимировать некоторые свойства DOM-объектов, используя атрибуты data-*, или пользоваться обработчиком onscroll для анимирования объектов других видов.

Сравнение технологий и инструментов


Вот сравнение технологий скроллинга.

API Intersection Observer Плавная прокрутка Точки привязки в CSS CSS-эффект параллакса CSS-свойство position: sticky
Закрепление элементов - - - - +
Эффект параллакса - - - + -
Управление динамикой анимации - - -
Использование контрольных точек - + - -
Динамическая пакетная обработка элементов + - - - -
Поддержка эффектов горизонтального скроллинга + + + + +
Подходит для продакшна (хорошая браузерная поддержка) +
Полная свобода в анимировании - - - - -
Поддержка разработчиком n/a n/a n/a n/a n/a
Работа с DOM, Canvas, WebGl, SVG + - - - -
Поддержка изменения размеров элементов + + + + +
Ограничивает анимацию только релевантным разделом + + + - +
Различает направления скроллинга - - - -
Технология, встроенная в браузер + + + + +

Вот сравнение рассмотренных библиотек.

ScrollTrigger Locomotive Scroll ScrollScene ScrollMagic
Закрепление элементов + + +
Эффект параллакса + + + +
Управление динамикой анимации +
Использование контрольных точек +
Динамическая пакетная обработка элементов + - + -
Поддержка эффектов горизонтального скроллинга + + + +
Подходит для продакшна (хорошая браузерная поддержка) + + +
Полная свобода в анимировании + + +
Поддержка разработчиком + + + -
Работает с DOM, Canvas, WebGl, SVG + + +
Поддержка изменения размеров элементов + + +
Ограничивает анимацию только релевантным разделом + -
Различает направления скроллинга + + +
Технология, встроенная в браузер - - - -

Итоги


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

Я обычно, для настройки скроллинга, рекомендую использовать библиотеку ScrollTrigger. Она позволяет достичь всего, на что способен чистый CSS, а так же многого другого. Эта библиотека берёт на себя заботу о браузерной поддержке тех или иных технологий, облегчает выполнение вычислений, что позволяет тому, кто её использует, просто заниматься своими делами.

Какие технологии вы используете при настройке скроллинга в своих проектах?

Подробнее..

Как жить и работать с психиатрическим диагнозом. Часть 2 практические вопросы

05.07.2020 12:20:18 | Автор: admin

Кэрри Фишер, известная ролью принцессы Леи всю жизнь сражалась с биполярным расстройством ей не помогали лекарства, только электрошок. Она мой любимый биполярник, поэтому и иллюстрирует эту статью

Это вторая часть расшифровки эфира про жизнь и работу в IT с биполярным расстройством, первую и нулевую часть про мою историю, как я этому училась на своих ошибках, можно прочитать в анонсе и первой части расшифровки.

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



Как найти норм психиатра? Стоит ли идти по стандартному пути через бюджетные учреждения?


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

Расскажу, как я нашла психиатра. У меня была одна хорошая знакомая женщина-психотерапевт, и она через своих знакомых направила меня к моему врачу. Это был мужчина за 40 с большим стажем, и его от других отличало то, что он не застрял в тех знаниях, которые в него вложили еще в универе 25 лет назад. Он все время ездит на конференции, читает про новые лекарства, общается с другими врачами, читает исследования на английском, сам выступает то есть, он активно включен в свою работу. И он специализируется именно в биполярке: ищите того врача, у которого есть специализация, в которой он разбирается. Голова и мозг это очень сложно.

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

Были ли какие-то проблемы на работе из-за биполярки?


Да, были. С моей первой ИТ-работы меня уволили, потому что я два месяца сидела, смотрела в монитор и ничего не могла поделать. Это меня как раз подтолкнуло к тому, чтобы пойти к психиатру и получить диагноз. Конфликты были только из-за того, что я вела себя хреново. Все будет хорошо.

Как отличить депрессию от биполярки?


При БАР первого и второго типа бывает мания или гипомания. То есть, если график настроения в виде пилы, и эмоциональность выкручена в сторону хорошего настроения сверх того, что люди чувствуют, без причины, то это, вероятно, биполярка. Точно определит психиатр.

Помогают ли препараты лития?


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

Интересно, а с возрастом состояние может ухудшаться или улучшаться? Как болезнь развивается в связи со старением?


С возрастом становится хуже, болезнь прогрессирует. У меня и мании, и депрессии постепенно становились глубже.

Хотелось бы узнать, сколько в среднем и по максимуму проходят эпизоды?


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

Может ли из-за расстройства потеряться материнский инстинкт и чувства к родным? Как это поправить?


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

Может ли на фоне биполярного расстройства болеть спина и триггерные точки?


Да, болеть может абсолютно все, особенно во время депрессии. Может тошнить, может подниматься температура все что угодно.

Как выходили из синдрома навязчивых состояний, паттернов поведения? Типа переедания, потери интереса к внешнему виду, излишней чистоплотности


Я просто жила с этим; а когда я начала лечиться, все это прошло.

Осветите, пожалуйста, БАР второго типа?


Если кратко, бывает два типа БАР. Биполярники первого типа имеют полноценные, ярко выраженные мании у них сносит крышу не только во время депрессии, но и во время мании. Я уже говорила, что в таких случаях ускоряется речь, уменьшается время сна, появляются психотические симптомы. У биполярников второго типа бывает гипомания, с повышенным настроением и работоспособностью, которая не развивается в полноценную манию. БАР второго типа часто путают с рекуррентной депрессией.

Как заинтересовать человека снова вернуться к жизни?


Никак. Интерес к жизни вернется, если он сможет выздороветь.

Как заинтересовать человека бороться за себя и за свое счастье? Жалость к самому себе ведет к бездействию и обидам в прошлом


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

Как понять, что проблема не от болезни, а от паттерна поведения? Как не потерять работу и при этом выйти из прокрастинации?


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

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

Что, если я постоянно чувствую обиду непонятно на что?


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

Возможно, вы неправильно рефлексируете это состояние как обиду. Может быть, это состояние вроде душевной боли; если оно стабильно остается, даже когда вы радуетесь значит, это депрессия. Нужно пойти к психиатру и поговорить с ним. Это не означает, что вы точно станете постоянным клиентом: возможно, это связано у вас с чем-то, что проходит, что можно вылечить навсегда и не возвращаться к лекарствам. Обязательно сходите.

Что делать, если от лекарств, назначенных психотерапевтом, человек становится вялым, ничего не хочет, постоянно лежит и бездействует и есть постоянные побочки?


Во время периода подбора препаратов случается разное. У них действительно очень много побочных эффектов. Когда я только начала принимать лекарства, у меня была депрессия я спала по 14 часов в сутки; я прочитала километровый список побочек и там была сонливость. Я подумала: теперь 20 часов будет, что ли? Я засыпала на совещании, во время разговора по скайпу, один раз во время личного разговора. В общем, пока лекарства подбираются, побочек будет много, и они будут тяжелые. Это трудно проходить, но необходимо.

У меня эндогенная депрессия, мне теперь всю жизнь пить лекарства? Я начала лечение недавно


Это вам скажет психиатр. Зависит от причины депрессии.

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


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


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

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


К которым будет иметь доступ служба безопасности будущих работодателей? Или для сохранения анонимности следует посещать частные клиники? Депрессия с суицидальными мыслями длиной в 2 года, с периодами неполной ремиссии и ухудшением состояния, без мании.

Если у вас депрессия с суицидальными мыслями точно надо к врачу. Это мерзкая вещь, зачем с ней жить? Ее надо выкинуть на помойку, и для этого нужен врач. Официально в России давно нет такой вещи, как учет; все ваши данные охраняются медицинской тайной. Конечно, строгость законов компенсируется необязательностью исполнения, и я не могу гарантировать, что это никуда не выплывет, поэтому, если вы беспокоитесь об анонимности, лучше ходить к частным врачам. Когда я ходила к своему врачу, я не предъявляла документов можно даже ходить под выдуманным именем.

Пожалуйста, дайте совет. Сыну 9 лет, ему поставили ОКР, потому что появились навязчивые мысли, ранее был СДВГ


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

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

Как вы вышли из маниакальной фазы в первый раз и как выходите сейчас?


Сейчас, если у меня начинается маниакальная фаза, я звоню врачу. Он повышает дозу. Это единственный способ и не стоит себя обманывать, что это можно контролировать. Если вы биполярник, надо сидеть на фарме.

Что вы можете посоветовать родственнику человека с таким диагнозом?


Как я уже говорила: заботиться, помогать, поддерживать, склонять к походу к врачу.

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


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

Мой психотерапевт это мой психиатр. Долго искал квалифицированного человека


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

Психолог не психотерапевт. Хотя бы по образованию: терапевт (в России) врач, а диплом психолога можно получить после курса или вообще самоназваться


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

Все эти понятия нельзя путать. Если есть серьезные проблемы: депрессия, бессонница, суицидальные мысли надо сразу идти к психиатру. Если менее серьезные проблемы (я обижен на свою маму) можно пойти к психотерапевту.

БАР вызывается генетически обусловленным недостатком ионов лития?


Это ложь, литий помогает не всем биполярникам. Никто не знает, откуда берется БАР. Есть некоторые доказательства по поводу генетических предпосылок, но, например, не у всех однояйцевых близнецов развивается БАР. Скорее, тут много разных факторов: генетика, состояние, среда, стрессы, но точно никто пока не знает.

С какого специалиста лучше начать? Ответь, пожалуйста


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

Таблетки всю жизнь пить?


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

Большинство депрессивных расстройств незаметны на МРТ?


Да, это правда.

Могут ли при БАР быть психосоматические головные боли, онемение, сдавливание затылка? Особенно во время эмоциональных порывов и усталости. На МРТ ничего нет.


Да, могут быть. У меня было похожее.

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


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

Есть похожие спады и подъемы, но они слабо выражены, галлюцинаций не было, стоит ли волноваться?


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

Какие обследования и анализы вы сдавали для подтверждения диагноза?


БАР не выявляется никакими анализами.

Везения не существует, крепко обнимите своих друзей


Спасибо.

Можно ли с этим диагнозом, находясь в терапии, водить автомобиль?


Лучше не надо. Многие лекарства вызывают сонливость и снижают внимание, депрессия также снижает внимание, а в мании можно не замечать многие вещи. В других странах биполярникам запрещено водить машину и иметь оружие, но у нас помните про строгость законов и необязательность исполнения? Мой психиатр на вопрос о вождении ответил: как знаете кто-то и после трех таблеток галоперидола нормально водит. Я слегка удивилась. В общем, переходите дорогу осторожно. Я думаю, что водить с БАР безответственно. Если у вас есть эти симптомы или вы под таблетками, лучше не водить машину.

Как триггернуть инверсию фазы?


Никак, это неуправляемо.

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


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

Думаю, нет. Я знаю, что во время депрессии может быть ощущение, что внутри тебя пустота и чувств нет. Но такого, чтобы было диаметральное изменение нет. Эпизодическую ярость в расчет не берем.

Если дать фазе развиться, то до какой степени исчадием ада может стать ваш (надеюсь) любимый муж в вашем восприятии?


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

Как отделить длительные соматические расстройства от расстройств психики? Могут ли соматические перерасти в расстройства психики?


Я не знаю.

Всю свою осознанную жизнь борюсь с двумя состояниями:


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

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

Стоит упомянуть, что мания не сразу становится манией. Бывает гипомания продуктивная, классная, приятная, которая постепенно перерастает в манию.

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


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


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

Большая нервно-психическая нагрузка провоцирует развитие БАР?


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

Подсел на лекарства, без них не получается. Была ли у вас зависимость, если да как вы с нее сходили? Или вы постоянно пьете таблетки?


Как я уже сказала, я пью таблетки всегда, и буду пить их всегда.

Панический страх эскалаторов, не могу ездить вообще. Это к психиатру или к психотерапевту?


Я рекомендую начать с психотерапевта. Вы не говорите, что у вас есть галлюцинации или что-то еще страшное поэтому сходите к психотерапевту, поговорите с ним об этом.

Что серьезнее биполярка или шиза?


Это одинаковые по тяжести болезни.

Клэр Дейнс хорошо сыграла БАР в Родине?


Я начала смотреть, но меня не очень зацепило. Не могу ответить.

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


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

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


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

Да, транскрипт будет. Я скажу так: если у вас есть силы общаться с друзьями и читать книги, скорее всего, у вас нет глубокой депрессии. Я думаю, что уборка, работа и прочие вещи возможны, когда вы в ресурсном состоянии; чтобы выйти в него, нужно достигать хотя бы каких-то успехов. Мы как крысы, которые нажимают на кнопку, получают удовольствие и нажимают дальше. На работу хочется ходить, когда в ней есть какие-то успехи, продвижение, цели. Когда этого нет, ничего не получается. Может, у вас есть возможность сменить сферу деятельности на ту, которая будет вас вдохновлять, и в которой будут лучше получаться результаты?

Откуда это? Это врожденная особенность мозга, или это приобретенное? Мне кажется, у меня такой диагноз в жизни гонюсь за идеальным образом себя, а он недостижимый, и, наверно, это меня и сломало страшно


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

У меня БАР второго типа, лечусь около года. Возможно ли вообще выйти в ремиссию, а потом отказаться от медикаментов? Можно ли поддерживать себя естественными средствами?


Если вы бросите таблетки, скорее всего, болезнь вернется. Шизофрения и БАР это тяжелые психические заболевания, которые надо постоянно контролировать фармой.

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

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


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

Похоже, у меня неконтролируемые психические проблемы


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


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

У меня диагноз органическое поражение ЦНС, синдром деперсонализации, дереализации, депрессивный синдром с тревогой


Мне 54, мучаюсь уже 20 лет. С психиатром уже перепробовали все возможное, улучшений почти нет. У меня руководящая должность, работать тяжело. Может, посоветуете что-то?

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

Алкоголь и БАР можно ли?


Нельзя. Но я пью.

Какова твоя схема лечения, которая вывела ремиссию?


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

***

Bthw, подписывайтесь на наши каналы, где мы проводим прямые эфиры с ребятами из IT, чтобы не пропускать интересные вам записи:


До встречи в следующих эфирах!

Подробнее..

Перевод О появлении поддержки CUDA в WSL 2

05.07.2020 16:17:42 | Автор: admin
Компания Microsoft, откликаясь на многочисленные просьбы пользователей, представила в мае 2020 года на конференции Build новую возможность подсистемы Windows для Linux 2 (Windows Subsystem for Linux 2, WSL 2) поддержку видеоускорителей. Это позволит запускать в WSL 2 приложения, занимающиеся специализированными вычислениями. Поддержка GPU откроет дорогу профессиональным инструментам, поможет решать в WSL 2 задачи, которые в настоящее время можно решать только в Linux. Теперь подобные задачи можно будет решать и в Windows, пользуясь возможностями GPU.

Крайне важно тут и то, что в WSL приходит поддержка программно-аппаратной архитектуры параллельных вычислений NVIDIA CUDA.

Материал, перевод которого мы публикуем, подготовлен специалистами NVIDIA. Здесь речь пойдёт о том, чего можно ожидать от CUDA в Public Preview-версии WSL 2.


Запуск AI-фреймворков, используемых в Linux, в WSL 2-контейнерах

Что такое WSL?


WSL это возможность Windows 10, которая позволяет использовать инструменты командной строки Linux непосредственно в Windows без необходимости сталкиваться со сложностями применения конфигурации двойной загрузки. WSL представляет собой контейнеризованное окружение, которое тесно интегрировано с ОС Microsoft Windows. Это позволяет запускать Linux-приложения вместе с традиционными Windows-приложения и с современными приложениями, распространяемыми через Microsoft Store.

WSL это, преимущественно, инструмент для разработчиков. Если вы работаете над некими проектами в контейнерах Linux, это значит, что вы можете заниматься теми же делами локально, на Windows-компьютере, используя привычные инструменты Linux. Обычно, чтобы запустить подобные приложения на Windows, нужно потратить много времени на настройку системы, нужны какие-то сторонние фреймворки, библиотеки. Теперь, с выходом WSL 2, всё изменилось. Благодаря WSL 2 в мир Windows пришла полная поддержка ядра Linux.

WSL 2 и технология паравиртуализации GPU (GPU Paravirtualization, GPU-PV) позволили Microsoft вывести поддержку Linux в Windows на новый уровень, сделав возможным запуск вычислительных нагрузок, рассчитанных на GPU. Ниже мы подробнее поговорим о том, как выглядит использование GPU в WSL 2.

Если вас интересует тема поддержки видеоускорителей в WSL 2 взгляните на этот материал и на этот репозиторий.

CUDA в WSL


Для того чтобы воспользоваться возможностями GPU в WSL 2, необходимо, чтобы на компьютере был бы установлен видеодрайвер, поддерживающий Microsoft WDDM. Подобные драйверы создают производители видеокарт такие, как NVIDIA.

Технология CUDA позволяет заниматься разработкой программ для видеоускорителей NVIDIA. Эта технология поддерживается в WDDM, в Windows, уже многие годы. Новый контейнер WSL 2 от Microsoft даёт возможности по GPU-ускорению вычислений, которыми может воспользоваться технология CUDA, что позволяет выполнять в среде WSL программы, рассчитанные на CUDA. Подробности об этом можно узнать в руководстве пользователя по работе с CUDA в WSL.

Поддержка CUDA в WSL включена в драйверы NVIDIA, рассчитанные на WDDM 2.9. Эти драйверы достаточно просто установить в Windows. Драйверы пользовательского режима CUDA в WSL (libcuda.so) автоматически становятся доступными внутри контейнера, их может обнаружить загрузчик.

Команда NVIDIA, занимающаяся разработкой драйверов, добавила в драйвер CUDA поддержку WDDM и GPU-PV. Сделано это для того чтобы эти драйверы могли бы работать в среде Linux, запущенной на Windows. Эти драйверы всё ещё находятся в статусе Preview, их релиз состоится только тогда, кода состоится официальный релиз WSL с поддержкой GPU. Подробности о выпуске драйверов можно найти здесь.

На следующем рисунке показана схема подключения драйвера CUDA к WDDM внутри гостевой системы Linux.


WDDM-драйвер пользовательского режима с поддержкой CUDA, выполняющийся в гостевой системе Linux

Предположим, вы разработчик, который установил дистрибутив WSL на последнюю сборку Windows из Fast Ring (сборка 20149 или старше) Microsoft Windows Insider Program (WIP). Если вы переключились на WSL 2 и у вас есть GPU NVIDIA, вы можете испытать драйвер и запустить свой код, выполняющий GPU-вычисления, в WSL 2. Для этого достаточно установить драйвер в хост-системе Windows и открыть WSL-контейнер. Здесь вам, без дополнительных усилий, будет доступна возможность работы с приложениями, использующими CUDA. На следующем рисунке показано, как в WSL 2-контейнере выполняется TensorFlow-приложение, использующее возможности CUDA.


TensorFlow-контейнер, выполняющийся в WSL 2

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

NVIDIA всё ещё активно работает над этим проектом и вносит в него улучшения. Мы, кроме прочего, работаем над добавлением в WDDM API, которые раньше были рассчитаны исключительно на Linux. Это приведёт к тому, что в WSL, без дополнительных усилий со стороны пользователя, сможет работать всё больше и больше приложений.

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

NVML


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

Мы начали работу с основного драйвера CUDA, что позволит пользователям запускать большую часть существующих CUDA-приложений даже на ранней стадии появления поддержки CUDA в WSL. Но, как оказалось, некоторые контейнеры и приложения используют NVML для получения информации о GPU даже до загрузки CUDA. Именно поэтому добавление поддержки NVML в WSL это одна из наших первоочередных задач. Вполне возможно то, что скоро мы сможем поделиться хорошими новостями по поводу решения этой задачи.

GPU-контейнеры в WSL


В дополнение к поддержке в WSL 2 DirectX и CUDA, NVIDIA работает над добавлением в WSL 2 поддержки NVIDIA Container Toolkit (раньше эта технология называлась nvidia-docker2). Контейнеризованные GPU-приложения, которые дата-сайентисты создают в расчёте на запуск в локальной или облачной среде Linux, теперь могут, без внесения в них каких-либо изменений, запускаться в WSL 2, на компьютерах, работающих под управлением Windows.

Каких-то особых пакетов WSL для этого не требуется. Библиотека времени выполнения NVIDIA (libnvidia-container) может динамически обнаруживать библиотеку libdxcore и пользоваться ей в ситуации, когда код выполняется в WSL 2-среде с поддержкой GPU-ускорения. Это происходит автоматически, после установки пакетов Docker и NVIDIA Container Toolkit, так же, как и на Linux. Это позволяет, без дополнительных усилий, запускать в WSL 2 контейнеры, в которых используются возможности GPU.

Мы настоятельно рекомендуем тем, кто хочет пользоваться опцией --gpus, установить последнюю версию инструментов Docker (19.03 или свежее). Для того чтобы включить поддержку WSL 2, следуйте инструкциям для вашего дистрибутива Linux и установите самую свежую из доступных версий nvidia-container-toolkit.

Как это работает? Все задачи, характерные для WSL 2, решаются средствами библиотеки libnvidia-container. Теперь эта библиотека может, во время выполнения, обнаруживать присутствие libdxcore.so и использовать эту библиотеку для обнаружения всех GPU, видимых этому интерфейсу.

Если эти GPU нужно использовать в контейнере, то, с помощью libdxcore.so, выполняется обращение к месту хранения драйверов, к папке, которая содержит все библиотеки драйверов для хост-системы Windows и WSL 2. Библиотека libnvidia-container.so отвечает за настройку контейнера таким образом, чтобы можно было бы корректно обратиться к хранилищу драйверов. Эта же библиотека отвечает за настройку базовых библиотек, поддерживаемых WSL 2. Схема этого показана на следующем рисунке.


Схема обнаружения и отображения в контейнер хранилища драйверов, используемая libnvidia-container.so в WSL 2

Кроме того, это отличается от логики, используемой за пределами WSL. Этот процесс полностью абстрагирован с помощью libnvidia-container.so и он, для конечного пользователя, должен быть как можно прозрачнее. Одно из ограничений этой ранней версии заключается в невозможности выбора GPU в окружениях, в которых имеется несколько GPU. В контейнере всегда видны все GPU.

В WSL-контейнере можно запустить любые Linux-контейнеры NVIDIA, с которыми вы уже знакомы. NVIDIA поддерживает самые интересные инструменты и рабочие процессы, характерные для Linux и используемые профессионалами. Загрузите интересующий вас контейнер из NVIDIA NGC и испытайте его.

Сейчас мы расскажем о том, как запускать в WSL 2 контейнеры TensorFlow и N-body, рассчитанные на использование GPU NVIDIA для ускорения вычислений.

Запуск контейнера N-body


Установим Docker, воспользовавшись скриптом установки:

user@PCName:/mnt/c$ curl https://get.docker.com | sh

Установим NVIDIA Container Toolkit. Поддержка WSL 2 доступна, начиная с nvidia-docker2 v2.3 и с библиотеки времени выполнения libnvidia-container 1.2.0-rc.1.

Настроим репозитории stable и experimental и GPG-ключ. Изменения в коде времени выполнения, рассчитанные на поддержку WSL 2, доступны в экспериментальном репозитории.

user@PCName:/mnt/c$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)user@PCName:/mnt/c$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -user@PCName:/mnt/c$ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.listuser@PCName:/mnt/c$ curl -s -L https://nvidia.github.io/libnvidia-container/experimental/$distribution/libnvidia-container-experimental.list | sudo tee /etc/apt/sources.list.d/libnvidia-container-experimental.list

Установим пакеты времени выполнения NVIDIA и их зависимости:

user@PCName:/mnt/c$ sudo apt-get updateuser@PCName:/mnt/c$ sudo apt-get install -y nvidia-docker2

Откроем WSL-контейнер и запустим в нём демон Docker. Если всё сделано правильно после этого можно будет увидеть служебные сообщения dockerd.

user@PCName:/mnt/c$ sudo dockerd


Запуск демона Docker

В другом окне WSL загрузим и запустим контейнер симуляции N-body. Нужно, чтобы у пользователя, выполняющего эту задачу, было бы достаточно полномочий для загрузки контейнера. Следующие команды может потребоваться запустить с использованием sudo. В выводимых данных можно увидеть сведения о GPU.

user@PCName:/mnt/c$ docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark


Запуск контейнера N-body

Запуск контейнера TensorFlow


Испытаем в Docker, в среде WSL 2, ещё один популярный контейнер TensorFlow.

Загрузим Docker-образ TensorFlow. Для того чтобы избежать проблем с подключением к Docker, выполним следующую команду в режиме sudo:

user@PCName:/mnt/c$ docker pull tensorflow/tensorflow:latest-gpu-py3

Сохраним немного изменённую версию кода из 15 урока руководства по TensorFlow, посвящённого использованию GPU, на диск C хост-системы. Этот диск, по умолчанию, монтируется в контейнере WSL 2 как /mnt/c.

user@PCName:/mnt/c$ vi ./matmul.pyimport sysimport numpy as npimport tensorflow as tffrom datetime import datetimedevice_name = sys.argv[1] # Choose device from cmd line. Options: gpu or cpushape = (int(sys.argv[2]), int(sys.argv[2]))if device_name == "gpu":device_name = "/gpu:0"else:device_name = "/cpu:0"tf.compat.v1.disable_eager_execution()with tf.device(device_name):random_matrix = tf.random.uniform(shape=shape, minval=0, maxval=1)dot_operation = tf.matmul(random_matrix, tf.transpose(random_matrix))sum_operation = tf.reduce_sum(dot_operation)startTime = datetime.now()with tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(log_device_placement=True)) as session:result = session.run(sum_operation)print(result)# Вывод результатовprint("Shape:", shape, "Device:", device_name)print("Time taken:", datetime.now() - startTime)

Ниже показаны результаты выполнения этого скрипта, запущенного со смонтированного в контейнере диска C. Скрипт выполнялся, сначала, с использованием GPU, а потом с использованием CPU. Для удобства объём представленных здесь выходных данных сокращён.

user@PCName:/mnt/c$ docker run --runtime=nvidia --rm -ti -v "${PWD}:/mnt/c" tensorflow/tensorflow:latest-gpu-jupyter python /mnt/c/matmul.py gpu 20000


Результаты выполнения скрипта matmul.py

При использовании GPU в WSL 2-контейнере наблюдается значительное ускорение выполнения кода в сравнении с его выполнением на CPU.

Проведём ещё один эксперимент, рассчитанный на исследование производительности GPU-вычислений. Речь идёт о коде из руководства по Jupyter Notebook. После запуска контейнера вы должны увидеть ссылку на сервер Jupyter Notebook.

user@PCName:/mnt/c$ docker run -it --gpus all -p 8888:8888 tensorflow/tensorflow:latest-gpu-py3-jupyter


Запуск Jupyter Notebook

Теперь у вас должна появиться возможность запускать демонстрационные примеры в среде Jupyter Notebook. Обратите внимание на то, то, что для подключения к Jupyter Notebook с использованием браузера Microsoft Edge, нужно, вместо 127.0.0.1, использовать localhost.

Перейдите в tensorflow-tutorials и запустите блокнот classification.ipynb.

Для того чтобы увидеть результаты ускорения вычислений с помощью GPU, перейдите в меню Cell, выберите Run All и посмотрите журнал в WSL 2-контейнере Jupyter Notebook.


Журнал Jupyter Notebook

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

Обзор WSL


Для того чтобы понять то, как поддержка GPU была добавлена в WSL 2, сейчас мы поговорим о том, что собой представляет запуск Linux на Windows, и о том, как контейнеры видят аппаратное обеспечение.

Компания Microsoft представила технологию WSL на конференции Build в 2016 году. Эта технология быстро нашла широкое применение и стала популярной в среде Linux-разработчиков, которым нужно было запускать Windows-приложения, вроде Office, вместе с инструментами разработки для Linux и соответствующими программами.

Система WSL 1 позволяла запускать немодифицированные исполняемые файлы Linux. Однако здесь использовался слой эмуляции ядра Linux, который был реализован в виде подсистемы ядра NT. Эта подсистема обрабатывала вызовы, поступающие от Linux-приложений, перенаправляя их соответствующим механизмам Windows 10.

Система WSL 1 была полезным инструментом, но она не была совместима со всеми Linux-приложениям, так как ей требовалось эмулировать абсолютно все системные вызовы Linux. Кроме того, медленными были операции по работе с файловой системой, что приводило к недопустимо низкой производительности некоторых приложений.

Учитывая это, Microsoft решила пойти другим путём и выпустила WSL 2 новую версию WSL. Контейнеры WSL 2 выполняют полные Linux-дистрибутивы в виртуализованном окружении, но при этом используют все полезные возможности новой системы контейнеризации Windows 10.

В то время как WSL 2 использует Hyper-V-сервисы Windows 10, это не традиционная виртуальная машина, а, скорее, легковесный вспомогательный механизм виртуализации. Этот механизм отвечает за управление виртуальной памятью, связанной с физической памятью, позволяя WSL 2-контейнерам динамически выделять память, обращаясь к хост-системе Windows.

Среди основных целей создания WSL 2 можно отметить увеличение производительности работы с файловой системой и обеспечение совместимости со всеми системными вызовами. Кроме того, WSL 2 создавали, стремясь улучшить уровень интеграции WSL и Windows. Это позволяет удобно работать с Linux-системой, выполняемой в контейнере, пользуясь средствами командной строки Windows. Это, кроме того, повышает удобство работы с файловой системой хоста, автоматически монтируемой в выбранные директории файловой системы контейнера.

WSL 2 была представлена в Windows Insider Program в виде Preview-возможности и была выпущена в самом свежем обновлении Windows 10, в версии 2004.

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

Linux-ядро WSL 2


Ядро Linux, применяемое в WSL 2, собрано Microsoft на основе самой свежей стабильной ветки, с использованием исходного кода, доступного на kernel.org. Это ядро было специально настроено для WSL 2, оптимизировано с точки зрения размеров и производительности с целью обеспечения работы Linux в среде Windows. Ядро поддерживается через механизм Windows Update. Это значит, что пользователю не нужно заботиться о том, чтобы загружать последние обновления безопасности и улучшения ядра. Всё это делается автоматически.

Microsoft поддерживает в WSL несколько дистрибутивов Linux. Компания, следуя правилам опенсорс-сообщества, опубликовала в GitHub-репозитории WSL2-Linux-Kernel исходный код ядра WSL 2 с модификациями, необходимыми для интеграции с Windows 10.

Поддержка GPU в WSL


Разработчики Microsoft добавили в WSL 2-контейнеры поддержку реальных GPU с использованием технологии GPU-PV. Здесь графическое ядро операционной системы (dxgkrnl) маршалирует драйверу режима ядра, который находится на хосте, вызовы от компонентов пользовательского режима, выполняемых в гостевой виртуальной машине.

Компания Microsoft разработала эту технологию в виде возможности WDDM, с момента её появления вышло уже несколько релизов Windows. Эта работа была проведена с привлечением независимых производителей аппаратного обеспечения (Independent Hardware Vendor, IHV). Графические драйверы NVIDIA поддерживали GPU-PV начиная с ранних дней появления этой технологии в Preview-версиях продуктов, доступных в Windows Insider Program. Все GPU NVIDIA, поддерживаемые в настоящий момент, могут быть доступны ОС Windows, выполняемой в гостевом режиме, в виртуальной машине, использующей Hyper-V.

Для того чтобы в WSL 2 можно было бы пользоваться возможностями GPU-PV, Microsoft пришлось создать базу своего графического фреймворка для гостевой системы Linux: WDDM с поддержкой протокола GPU-PV. Новый драйвер Microsoft находится за dxgkrnl, за системой, отвечающей за поддержку WDDM в Linux. Код драйвера можно найти в репозитории WSL2-Linux-Kernel.

Ожидается, что dxgkrnl обеспечит поддержку GPU-ускорения в контейнерах WSL 2 в WDDM 2.9. Microsoft говорит о том, что dxgkrnl это GPU-драйвер Linux, основанный на протоколе GPU-PV, и о том, что у него нет ничего общего с Windows-драйвером, имеющим похожее имя.

В настоящее время вы можете загрузить Preview-версию драйвера NVIDIA WDDM 2.9. В ближайшие несколько месяцев этот драйвер будет распространяться через Windows Update в WIP-версии Windows, что делает ненужными ручную загрузку и установку драйвера.

Основные сведения о GPU-PV


Драйвер dxgkrnl делает доступным, в пользовательском режиме гостевой системы Linux, новое устройство /dev/dxg. Сервисный слой ядра D3DKMT, который был доступен в Windows, тоже был портирован, как часть библиотеки dxcore, на Linux. Он взаимодействует с dxgkrnl, используя набор частных IOCTL-вызовов.

Гостевая Linux-версия dxgkrnl подключаются к ядру dxg на Windows-хосте, используя несколько каналов шины VM. Ядро dxg на хосте обрабатывает то, что ему приходит от Linux-процесса, так же, как то, что приходит от обычных Windows-приложений, использующих WDDM. А именно, ядро dxg отправляет то, что получило, KMD (Kernel Mode Driver, драйверу режима ядра, уникальному для каждого HIV). Драйвер режима ядра подготавливает то, что получил, для отправки аппаратному графическому ускорителю. На следующем рисунке показана упрощённая схема взаимодействия Linux-устройства /dev/dxg и KMD.


Упрощённая схема, иллюстрирующая то, как компоненты Windows-хоста обеспечивают работу устройства dxg в гостевой системе Linux

Если говорить об обеспечении подобной схемы работы в гостевых системах Windows, то можно сказать, что драйверы NVIDIA поддерживают GPU-PV в Windows 10 уже довольно давно. GPU NVIDIA могут быть использованы для ускорения вычислений и вывода графики во всех Windows 10-приложениях, использующих слой виртуализации Microsoft. Использование GPU-PV позволяет и работать с vGPU. Вот несколько примеров подобных приложений:


Вот как выглядит запуск DirectX-приложения в контейнере Windows Sandbox с применением видеоускорителя NVIDIA GeForce GTX 1070.


В контейнере Windows Sandbox ускорение графики выполняется средствами NVIDIA GeForce GTX 1070

Поддержка пользовательского режима


Для того чтобы добавить в WSL поддержку вывода графики, соответствующая команда разработчиков из Microsoft, кроме того, портировала на Linux компонент пользовательского режима dxcore.

Библиотека dxcore предоставляет API, который позволяет получать сведения об имеющихся в системе графических адаптерах, совместимых с WDDM. Эту библиотеку задумывали как кросс-платформенную низкоуровневую замену для средства работы с DXGI-адаптерами в Windows и Linux. Библиотека, кроме того, абстрагирует доступ к сервисам dxgkrnl (IOCTL-вызовы в Linux и GDI-вызовы в Windows), используя слой API D3DKMT, который используется CUDA и другими компонентами пользовательского режима, полагающимися на поддержку WDDM в WSL.

По сведениям Microsoft, библиотека dxcore (libdxcore.so) будет доступна и в Windows, и в Linux. NVIDIA планирует добавить в драйвер поддержку DirectX 12 и API CUDA. Эти дополнения нацелены на новые возможности WSL, доступные благодаря WDDM 2.9. Обе библиотеки, представляющие API, будут подключены к dxcore для того чтобы они могли бы давать dxg указания по поводу маршалирования их запросов к KMD на хост-системе.

Попробуйте новые возможности WSL 2


Хотите использовать свой Windows-компьютер для решения настоящих задач из сфер машинного обучения и искусственного интеллекта, и при этом пользоваться всеми удобствами Linux-окружения? Если так, то поддержка CUDA в WSL даёт вам отличную возможность это сделать. Среда WSL это то место, где Docker-контейнеры CUDA показали себя как самое популярное среди дата-сайентистов вычислительное окружение.

  • Для того чтобы получить доступ к Preview-версии WSL 2 с поддержкой GPU-ускорения, вы можете присоединиться к Windows Insider Program.
  • Загрузите свежие драйверы NVIDIA, установите их и попробуйте запустить в WSL 2 какой-нибудь CUDA-контейнер.

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

А вы уже пробовали CUDA в WSL 2?

Подробнее..

Перевод Vue.js для начинающих, урок 1 экземпляр Vue

06.07.2020 18:16:50 | Автор: admin
Сегодня мы предлагаем вашему вниманию перевод первого урока учебного курса по Vue.js для начинающих. Освоив этот урок, вы узнаете о том, что такое экземпляр Vue, и о том, как приступить к разработке собственных Vue-приложений.



Предварительные требования


Предполагается, что тот, кто решит освоить этот курс, обладает знаниями в области базовых веб-технологий: HTML, CSS и JavaScript.

В этом курсе мы займёмся разработкой страницы, представляющей собой карточку товара.

image

Страница, разработкой которой мы будем заниматься

Цель урока


В этом уроке мы разберёмся с тем, как использовать Vue для вывода данных на веб-странице.

Начальный вариант кода


Мы начнём работу с очень простого HTML- и JavaScript-кода, расположенного в двух файлах.

Файл index.html:

<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width, initial-scale=1"><title>Product App</title></head><body><div id="app"><h1>Product Name</h1></div><script src="main.js"></script></body></html>

Файл main.js:

var product = "Socks";

В этом курсе в качестве среды, в которой предлагается выполнять домашние задания, используется платформа codepen.io. Соответствующие заготовки оформлены в виде CodePen-проектов. Тем, кто проходит этот курс, рекомендуется самостоятельно запускать весь код, который они здесь встречают.

В интерфейсе CodePen есть три области для кода. Это, соответственно, поля HTML, CSS и JS. Код, введённый в полях CSS и JS, автоматически подключается к веб-странице, описанной в поле HTML. То есть для того чтобы воссоздать в среде CodePen вышеприведённый пример нужно ввести в область HTML код, содержащийся в теге <body> файла index.html без последней строчки, подключающей main.js, а в область JS код main.js.


Начало экспериментов в CodePen

Использовать CodePen для запуска кода примеров необязательно. Вы вполне можете использовать какой-нибудь другой онлайн-сервис, или можете обойтись локальной средой разработки, воссоздав у себя описываемые здесь файлы.

Задача


Нам нужен механизм, который позволяет взять значение, имеющееся в JavaScript-коде, например то, что записано сейчас в переменную product, и поместить его в код веб-страницы, в тег h1.

Решить эту задачу нам поможет фреймворк Vue.js. Вот официальное русскоязычное руководство по нему.

Первым шагом нашей работы с Vue будет подключение фреймворка к странице. Для этого внесём изменения в файл index.html, добавив в него, прямо над кодом подключения файла main.js, следующее:

<script src="http://personeltest.ru/aways/unpkg.com/vue"></script>

Далее, в main.js, вводим следующий код, убрав из него объявление переменной product:

var app = new Vue({el: '#app',data: {product: "Socks"}})

Теперь нужно связать DOM с данными экземпляра Vue. Делается это с использованием особой HTML-конструкции, с помощью синтаксиса Mustache, при применении которого используются двойные фигурные скобки:

<div id="app"><h1>{{ product }}</h1></div>

JavaScript-выражение в фигурных скобках будет заменено на значение свойства product объекта data.

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


Данные перенесены из JavaScript на HTML-страницу

Как видите, нам удалось перенести данные из JavaScript-кода на HTML-страницу. А теперь давайте разберёмся в том, что мы только что сделали.

Экземпляр Vue


Вот схема кода, с помощью которого создают экземпляр Vue:

var app = new Vue({options})

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

Подключение экземпляра Vue к элементу веб-страницы


Обратите внимание на следующее свойство объекта с опциями, использованного при создании экземпляра Vue:

el: '#app'

С помощью этого свойства мы подключаем экземпляр Vue к элементу нашей страницы. Благодаря этому мы создаём связь между экземпляром Vue и соответствующей частью DOM. Другими словами, мы активируем Vue в элементе <div> с идентификатором app, записывая '#app' в свойство el объекта с опциями, который был использован при создании экземпляра Vue.

Размещение данных в экземпляре Vue


В экземпляре Vue имеется место для хранения данных. Эти данные описывают с помощью свойства data объекта с опциями:

data: {product: "Socks"}

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

Использование JavaScript-выражений в HTML-коде


Если нам нужно, чтобы значение свойства product вывелось бы там, где выводится текст заголовка первого уровня, имя этого свойства можно поместить в двойные фигурные скобки в соответствующем теге:

<h1>{{ product }}</h1>

Фактически, речь идёт о том, что в двойных фигурных скобках находится JavaScript-выражение, результаты вычисления которого фреймворк подставляет в тег <h1> в качестве текста.

Важный термин: выражение


Выражения позволяют использовать значения, хранящиеся в экземпляре Vue, а так же JavaScript-конструкции, применение которых позволяет создавать какие-то новые значения.

Когда Vue видит выражение {{ product }}, он понимает, что мы ссылаемся на данные, связанные с экземпляром Vue, используя ключ product. Фреймворк заменяет имя ключа на соответствующее ему значение. В данном случае это Socks.

Примеры выражений


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

{{ product + '?' }}{{ firstName + ' ' + lastName }}{{ message.split('').reverse().join('') }}

Знакомство с реактивностью


Причина, по которой Vue сразу же после загрузки страницы выводит в теге <h1> значение, соответствующее свойству product, заключается в том, что Vue это реактивный фреймворк. Другими словами, данные экземпляра Vue связаны со всеми местами веб-страницы, в которых есть ссылки на эти данные. В результате Vue может не только вывести данные в некоем месте страницы, но и обновить соответствующий HTML-код в том случае, если данные, на которые он ссылается, будут изменены.

Для того чтобы это доказать, давайте откроем консоль инструментов разработчика браузера и изменим значение, записанное в свойство product объекта app. Когда мы это сделаем, например, введя в консоли app.product = 'Coat', изменится и текст, выводимый на странице.

image

Изменение значения свойства product приводит к изменению текста, выводимого на веб-странице

Видите, как легко это делается?

Практикум


Добавьте к уже имеющимся в экземпляре Vue данным ключ description, содержащий текст A pair of warm, fuzzy socks. Затем выведите значение этого ключа в элементе <p>, который должен находиться ниже элемента <h1>.

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

Вот решение задачи.

Итоги


Поговорим о том, что мы сегодня изучили:

  • Мы узнали о том, как начать разработку Vue-приложения, создав экземпляр Vue, и о том, как выводить данные на веб-страницу.
  • Экземпляр Vue является корнем каждого Vue-приложения.
  • Экземпляр Vue подключается к выбранному при его создании элементу DOM.
  • Данные, хранящиеся в экземпляре Vue, можно выводить на страницу, используя синтаксис Mustache, в котором используются двойные фигурные скобки, {{ }}, содержащие JavaScript-выражения.
  • Vue это реактивный фреймворк.

Планируете ли вы пройти этот курс?

Подробнее..

Сверхточный Raspberry PI Stratum 1 NTP сервер

07.07.2020 12:09:02 | Автор: admin
В этой статье я расскажу, как собрать Stratum 1 NTP сервер на Raspberry PI для синхронизации времени за скромную сумму и навсегда забыть о проблемах, связанных с не совпадающим временем на всех ваших устройствах. А самое главное, он будет давать результат на два порядка точнее, чем обычный сервер.

В предыдущей статье, посвященной синхронизации времени по радио и СРНС (системы радионавигационной связи), я не успел рассказать про выбор приёмника GPS / ГЛОНАСС с выходом PPS. Между тем от этого зависит точность приёма сигнала, величина может составить от одной миллисекунды до нескольких микросекунд и зачастую это имеет решающее значение.

Для самого точного приема сигнала времени нужен приёмник GPS / ГЛОНАСС с выходом PPS. Дело однако в том, что на российском рынке не просто раздобыть устройство с такими характеристиками по доступной цене. Много таких моделей давно уже перестали выпускать, а в заброшенных интернет магазинах с версткой 1990-х остались лишь их описания с предложением подписаться на уведомление при поступлении товара.


Полный список протестированного GPS оборудования можно найти на GitLab ресурсе NTPSec. Не трудно заметить, что незначительное число представленных в списке устройств имеют отметку 3-4 звезды и опцию PPS. Таким образом, в шорт-лист попадают следующие приёмники.

  • Garmin GPS-18, не USB *** (приблизительная цена 10 тыс. р.)
  • GlobalSat MR-350P ****
  • Jackson Labs FireFly-II ***
  • Magellan Thales AC12 ***
  • Motorola Oncore GT+ ***
  • Navisys GR601-W ****
  • SkyTraq SKG16B ****
  • Trimble Lassen IQ ***
  • u-blox ANTARIS LEA-4T ***
  • u-blox EVK 6H ****
  • u-blox LEA SQ ****

4* Отличная производительность: gpsd распознает приёмник быстро и надежно, а отчеты сформировано полностью и правильно.

3* Хорошая производительность: gpsd с незначительными проблемами или задержкой распознаёт устройства, но отчеты сформировано полностью и правильно.

Если вас не пугает цена этих моделей, а также нет большого желания возиться с железками, можете не читать дальше. Приемник, подключенный к серверу по USB, или RS232 интерфейсу обеспечит гораздо большую точность определения времени, чем NTP сервер, работающий по tcp/ip. Но если путь самурая вам не чужд, тогда давайте собирать свой Raspberry PI NTP сервер с GPS синхронизацией времени.

Собираем Raspberry PI


Итак: берем следующие компоненты для нашего микро сервера.

  1. Плата Raspberry Pi 4 Model B, 4 GiB ОЗУ (6200 руб.);
  2. Корпус, например такой (890 руб.);
  3. Micro SD карта на 32 GiB, можно и 16 GiB; (540 руб.)
  4. GPS модуль на чипе u-blox NEO-M8 (1700 руб. с антенной);
  5. GPS антенна на 15 dB;
  6. Паяльник.

Вообще-то, u-blox NEO-M8 оснащен UART интерфейсом, но для PPS выхода необходимо припаять pin-3 на GPS модуле к соответствующему GPIO коннектору на плате Raspberri Pi. Модуль швейцарской компании завоевал популярность у специалистов и это не случайно, характеристики говорят сами за себя.

  • Поддерживаемые СРНС: BeiDou, Galileo, GNSS; GPS/QZSS, GLONASS;
  • Напряжение питания: 2.7...3.6 В;
  • Интерфейсы: UART, USB, SPI, DDC, I2C;
  • Поддерживаемые протоколы: NMEA 0.183 version 4.0, UBX (binary), RTCM 2.3;
  • Чувствительность при обнаружении: -167 дБм;
  • Чувствительность при слежении: -160 дБм;
  • Время холодного старта: 26 с;
  • Время горячего старта: 1.5 с;
  • Потребляемая мощность: 35 мВт;
  • Рабочая температура: -40...+85 С;
  • Размеры: 16х12.2х2.4 мм

В такой конфигурации с новейшим оборудованием примерная общая цена Raspberry PI в собранном виде составит 9330 руб. Можно сэкономить, купив Raspberry PI 3, или четверку с 2 GiB ОЗУ. Можно еще сэкономить на GPS чипе, u-blox NEO-6M с антенной стоит около 650 руб. Тогда цена NTP сервера упадет до 5500 руб.


GPS/Глонасс модуль UBLOX NEO 8M

Может возникнуть вопрос, для чего нужны все эти капиталовложения и какую точность обеспечивает тот, или иной способ синхронизации времени. Небольшая сводная табличка для справки.
Источник сигнала времени Погрешность
GPS с атомными часами 50 nSec
KPPS 1 Sec
PPS 5 Sec
Интерфейс USB 1.1 1 mSec
Интерфейс USB 2.0 100 Sec (100000 nSec)
NTP по сети ~30 mSec

Kernel PPS (KPPS) отличается от PPS тем, что использует функцию ядра Linux / Unix для точной временной отметки изменения состояния в строке PPS. Обычный же PPS реализован в user-space. Если ядро Linux поддерживает KPPS через API RFC 2783, gpsd воспользуется им для увеличения точности.

Во многих дистрибутивах Linux имеется пакет pps-tools, который обеспечивает поддержку KPPS и устанавливает timepps.h заголовочный файл. Обязательно установите этот пакет.

(1:1146)$ sudo emerge -av pps-toolsLocal copy of remote index is up-to-date and will be used.These are the packages that would be merged, in order:Calculating dependencies... done![binary   R    ] net-misc/pps-tools-0.0.20120407::gentoo  0 KiBTotal: 1 package (1 reinstall, 1 binary), Size of downloads: 0 KiBWould you like to merge these packages? [Yes/No] 

Таким образом, подключив GPS приёмник с PPS выходом по USB мы получаем 300-кратное повышение точности синхронизации времени. Чтение с чипа GPS на плате в режиме KPPS даёт прирост точности еще на два порядка.

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


Raspberry Pi GPS/RTC Expansion Board

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

Установка ОС


Существует Raspberry PI OS, а. k. a. Raspbian, можно просто пойти по ссылке, скачать свежую версию и установить её. Многие так и делают, но давайте вспомним, что Raspberry PI 4 поддерживает 64-битную операционную систему, в то время как Raspberry PI OS пока имеет лишь 32-битные модификации Debian Linux для архитектуры Arm.

Существует такая точка зрения, что на 64-битная ОС неоправдана на Raspberry PI 4, так как нет возможности обеспечить прирост производительности из-за особенностей архитектуры и сборки. Мне эта точка зрения представляется сомнительной, об этом уже писали на Хабре 64-битная ОС быстрее.

Существует порт Debian Linux для архитектуры arm64, однако дистрибутив Убунту для Raspberry PI имеет внятную страницу и инструкцию. На странице находим дополнительное подтверждение тому, что лучше выбрать 64-битную ОС.



Инвентарь для установки:

  • Raspberry Pi 4;
  • USB-C кабель питания для Pi 4;
  • Micro SD карта с установочным образом Убунту;
  • Монитор с выходом HDMI;
  • Кабель MicroHDMI;
  • USB клавиатура.

Следующий этап запись установочного образа на Micro SD карту. Если у вас под рукой нет специализированной утилиты и программы под эти цели, в простейшем случае достаточно.

sudo dd if=/path/to/ubuntu-core-arm64.iso of=/dev/mmcblk0 status=progress

Точное название устройства видно в выводе dmesg при обнаружении нового устройства.

PM: Adding info for No Bus:179:0device: 'mmcblk0': device_addPM: Adding info for No Bus:mmcblk0

Вставив Micro SD карту, подключив HDMI-монитор, USB-клавиатуру, и кабель питания загружаетесь в Ubuntu Server на Raspberry Pi. Имя пользователя и пароль по умолчанию ubuntu.

Настройка NTP сервера


  1. Если Raspberry PI включен в консольном режиме (headless), то для начала необходимо определить IP адрес устройства. С рабочей станции наберите следующую команду.

    (1:1151)$ arp -na | grep -i "dc:a6:32"
    

    Ели же Pi подключен к HDMI монитору и USB клавиатуре, пропустите шаги 1-2 и переходите сразу к установке пакетов.
  2. Подключитесь по ssh

    (1:1152)$ ssh ubuntu@<Raspberry Pis IP address>
    
  3. Установите необходимые пакеты.

    user@server ~$ sudo apt-get install aptitudeuser@server ~$ sudo aptitude install wpasupplicant gpsd chrony
    
  4. Настройте Wi-Fi соединение с помощью wpasupplicant.
  5. В Linux UART0 интерфейс Pi представлен файлом устройства /dev/ttyAMA0. Для того чтобы освободить UART0 интерфейс для GPS приёмника нужно поменять параметры загрузки ядра Linux. Необходимо отключить console=ttyAMA0,115200, заменив на console=tty1. Для этого в файле /etc/default/grub надо поменять GRUB_CMDLINE_LINUX_DEFAULT. Если существует файл, /boot/config.txt, в нем также можно задать те же опции.

    Raspberry Pi 4 имеет 6 UART-ов
    Название Тип Устройство Назначение
    UART0 PLO11 /dev/ttyAMA0 вторичный (Bluetooth)
    UART1 mini UART /dev/ttyS0 основной
    UART2 PLO11
    UART3 PLO11
    UART4 PLO11
    UART4 PLO11
    По умолчанию UART2-5 выключены.

    Как видно из названия, UART0 полноценный серийный порт и он имеет более высокую производительность, чем обрезанный UART1, он же mini UART. Поэтому будет не лишним перевести Bluetooth на UART1 с тем, чтобы основной поток данных шел через UART0. Для этого в /etc/default/grub, или /boot/config.txt ставим enable_uart=1.
  6. В файле /etc/defaults/gpsd следует выставить.

    DEVICES="/dev/ttyAMA0 /dev/pps0"GPSD_OPTIONS="-n"USBAUTO="false"
    
  7. Запустите, или перезапустите gpsd.

    user@server ~$ sudo /etc/init.d/gpsd startuser@server ~$ sudo /etc/init.d/gpsd restart
    
  8. Проверка работы модуля GPS.

    user@server ~$ cat /dev/ttyAMA0user@server ~$ cgps -suser@server ~$ ppstest /dev/pps0
    
  9. Отредактируем файл /etc/ntp.conf.

    Все строки, содержащие сетевые публичные Stratum 1, 2 NTP сервера (такие, как pool [0-9].subdomain.pool.ntp.org) следует закомментировать, чтобы использовать лишь GPS/PPS источники данных.

    # GPS Serial data reference (NTP0)server 127.127.28.0 minpoll 4fudge 127.127.28.0 flag1 1 time1 0.9999 refid GPS #flag1 - PPS on
    

    # GPS PPS reference (NTP1)server 127.127.22.0 minpoll 4fudge 127.127.22.0 flag3 1 refid PPS #flag3 - enable KPPS API
    

    Верхняя запись NTP0 указывает на универсальный источник времени, доступный почти на всех устройствах GPS. Нижняя запись NTP1 определяет гораздо более точный PPS источник.
  10. Перезапустите ntpd

    user@server ~$ sudo /etc/init.d/ntpd restart
    

Использованные материалы



Подробнее..

Категории

Последние комментарии

© 2006-2020, personeltest.ru