...

суббота, 13 июля 2019 г.

[Из песочницы] Вам есть, что скрывать

Привет, Хабр! Представляю вашему вниманию перевод статьи автора «You don’t have nothing to hide» автора Sharon Flitman.

Кажется, приватность в 21м веке становится все более размытым понятием.

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

Сегодня благодаря технологическим «достижениям», нужно прикладывать немалые усилия, чтобы сохранять эту информацию в тайне. Даже если вы не пользуетесь активно социальными сетями, то cookies, GPS и системы распознавания лиц делают каждый наш шаг отслеживаемым, вычисляемым и в целом, доступным.
«Но кого это волнует?» Я часто слышу этот вопрос. «Мне нечего скрывать!».

Нет.

Всем есть что скрывать.

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

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

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

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

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

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

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

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

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

Таким образом, с нас взяли 300 долларов, а человек, сидящий рядом с нами, обеспечивает себе место всего за 150 долларов.

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

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

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

Есть причина, по которой Стив Джобс не разрешал своим детям пользоваться девайсами. Есть причина, по которой Марк Цукерберг скупил все дома, окружающие его и заклеивает камеру телефона и ноутбука.

Не знаю, как вы, но если мой повар не ест еду, которую он приготовил… что-то не так.

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

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

Спойлер концовки

К концу она стала совершенно неспособной поддерживать свою жизнь в качестве здравого члена общества.


Звучит довольно ужасно, правда? К счастью, это просто сериал.

Вообще-то, нет.

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

Как и в «Черном зеркале», оценка гражданина Китая диктует им привилегии и наказания.

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

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

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

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

Вся это ситуация поистине, по-настоящему в ж*пе.

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

К счастью, некоторые системы существуют для защиты нашей конфиденциальности. Они не идеальны… но они — начало.

  • Brave — это бесплатная альтернатива Chrome, Explorer и Mozilla Firefox для просмотра веб-страниц. Это позволяет вам серфить по Интернету без рекламы и cookie, отслеживающих каждое ваше движение.
  • Duck Duck Go — альтернативный поисковик. В отличие от Google, он не отслеживает ваши поиски и, следовательно, не выводит результаты поиска, которые соответствуют вашим ожиданиям.
  • VPN — позволяют шифровать данные, когда они покидают ваш компьютер, что позволяет вам просматривать веб-страницы «анонимно».
  • LastPass — парольный менеджер. Он делает возможным иметь разные пароли для всего, усложнаяя работу хакерам, если они захотят украсть ваши деньги / личность.

Примечание переводчика

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


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

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

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

Но серьезно, это было не так давно, мы все жили так. И как-то же мы выжили.

Единственный вопрос, который остается сейчас, — это то, что мы ценим больше: наше удобство или нашу конфиденциальность.

Ваш ход.

Let's block ads! (Why?)

Если вы не отзовётесь, мы напишем… в «Спортлото»

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

Эти сведения нужны Роскомнадзору для создания информационной системы Центра мониторинга и управления сетью связи общего пользования (для реализации положений закона от 01.05.2019 № 90-ФЗ «об устойчивом Рунете»).


источник

Приложения

Оставим термины «флапанье» и «устройство на палочке» на совести специалистов Роскомнадзора.

Провайдер «МАРТ» доступным языком объясняет суть требований РКН:

Обведены красным так называемые ТСПУ (Технические средства противодействия угрозам), те самые «Чёрные ящики» от РКН. Ставить их предполагается в местах помеченных красным, т.е. на выходе BRAS. BRAS это та железка, где собственно проходит и обрабатывается абонентская сессия. Большинство абонентов получают тут «серый» IP-адрес. Такой адрес не маршрутизируется в Сети, он обязательно должен быть странслирован на сервере NAT (Network Address Translation) в «белый» IP-адрес. Т.о. атаковать «серые» адреса из Интернета затруднительно (не будем вдаваться в технические детали, те кому интересно спросят или погуглят), куда как проще атаковать «белые» адреса серверов NAT или даже пограничных маршрутизаторов.
Теперь внимание! Вопрос: «Почему выбрана такая точка установки ТСПУ? Кто у нас для кого главная угроза?»
И еще, только на нашей сети таких BRAS установлено 6 (Шесть) штук с пропускной способностью 2 порта по 10Gb/s на каждом. А мы не очень большой оператор. Таким образом РКН должен будет поставить нам минимум 6 ТСПУ, а правильнее, чтобы не нарушить схему резервирования, ТСПУ должно быть 12.
По закону эти железки поставляются за счёт РКН, т.е. за бюджетные деньги. Чтобы оно работало, нужно ставить оборудование с приличной производительностью. Такое стоит от 300 т.р за единицу в опте. Значит РКН должен установить на нашей сети свое железо на сумму от 3 млн. 600 тыс. руб. Плюсом можно добавить системы бесперебойного питания от 500 тыс до 1 млн. Ну и немаловажный вопрос, кто будет оплачивать электричество? Это где-то 15 КВА.
Есть и другое, трафик наших абонентов постоянно растёт, значит узел модернизируется, увеличивается количество BRAS и/или пропускная способность их портов. Через год-два мы перейдем на оборудование с портами в 40Gb/s или даже 100. Значит ТСПУ надо будет менять…

Вы же видите, что речь тут вовсе не о безопасности. Такая схема вовсе не обеспечит защиту от внешних атак, не решит она и других задач, которые декларируются. Она повысит риск возникновения отказов, на которые оператор не сможет реагировать. Ну и позволит потратить ваши деньги на ненужное.
Ах да… она позволит в любой момент положить любую сеть из некоего центра!


Замкнутый круг


Роскомнадзор ссылается на «закон о суверенном/устойчивом Рунете», предусматривающий порядок предоставления подобных сведений. Однако он ещё не вступил в силу и начнёт действовать лишь с 1 ноября 2019 года (за исключением отдельных подпунктов, вступающих в силу с 1 января 2021 года). Нормативы не разработаны, некоторые затормозилась по процедурным соображениям.

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

На требования операторов прояснить эту замкнутую ситуацию территориальные управления Роскомнадзора отреагировали по разному.

Енисейское управление Роскомнадзора, к примеру, родило потрясающий своими взаимоисключающими параграфами ответ

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


именно так (по мнению РКН) нужно публиковать нецензурную лексику

А вот заместитель руководителя Роскомнадзор не употребляет вещества, поэтому понимает, что вопрос об ответственности не поднимается.

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

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

Что может сделать оператор связи в этой ситуации?


  • Самый худший вариант — предоставить запрошенные сведения. Это не в ваших интересах. И не в интересах клиентов. Это нужно только Роскомнадзору, ведь у них горят сроки.
  • Не отвечать вовсе (особенно, если не было бумажного письма). Юридических последствий не будет. Но местный филиал РКН может затаить обиду, ведь вы их бросите на растерзание начальству, не кинув даже завалящей бумажки, чтобы прикрыться.
  • Ответить формально, опираясь на законодательство. Лучший вариант. Это вполне реально затянет внедрение «суверенного Рунета». Если Роскомнадзору до зарезу нужны эти данные, пусть берёт их откуда хочет. Хоть в «Спортлото» пишет. Ни один человек, искренне радеющий за связь, не станет помогать им отрезать свою страну от глобальной сети.
    Неугомонный Фил (schors) подготовил вам шаблон ответа. На случай, если это не удовлетворит РКН и они пришлют повторную просьбу, есть ещё один шаблон. Фил молодец. Будь как Фил.

Ноябрь всё ближе, а времени у надзорного органа всё меньше. Продолжение следует…

Let's block ads! (Why?)

Могильник ядерных отходов в Москве может быть поврежден строительством нового шоссе

Представители Greenpeace требуют остановить строительство у могильника радиоактивных отходов. Строительство связано с проведением Юго-Восточной хорды, — одной из частей проекта новых магистралей в столице.
Могильник распологается на террритории Московского завода полиметаллов (ранее – Царицынский химеческий завод, 1914 года рождения). В данный момент завод принадлежит АО “ТВЭЛ”, входящему в состав “Росатома”. “Основной деятельностью ТК «ТВЭЛ» является производство и поставки ядерного топлива для энергетических и исследовательских реакторов. Каждый шестой энергетический реактор в мире работает на топливе, изготовленном ТК «ТВЭЛ».”, — говорится на сайте компании.

В различные периоды завод организовывал и осваивал технологии получения самых разнообразных материалов, в том числе тория и урана (1934—1972 гг.). В то время завод складировал отходы урановых и ториевых руд на прилежащей территории — на крутом берегу Москвы-реки. Опасные вещества просто засыпали песком и глиной. “Сейчас радиационный фон там превышен совсем немного, но если немного разрыть землю — показания приборов резко скачут вверх. Участок открыт для всех и практически не огорожен — только в некоторых местах можно найти остатки старого бетонного забора, желтые таблички и ленточки с надписью «Осторожно: радиация» и «Прохода нет», причем значки постоянно воруют.” — сообщается в исследовании журналистов «The Village».

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


Фото: Портал мэра и правительства Москвы

Часть Юго-Восточной хорды вместе с мостом через Москву-реку пройдет впритык к могильнику. За разработку проекта дороги и моста отвечают Москомархитектура и Институт Генплана Москвы. Москомархитектура говорит, что знает об опасном участке, однако утверждает, что проект хорды не затрагивает земли с «аномалиями и загрязнениями». Работы по возведению моста, согласно свидетельствам, уже активно идут или, как минимум, готовы начаться. Однако, на сайте Стройкомплекса пишут, что вся трасса пока находится в разработке и стройка начнется только в 2020–2022 годах.

Заммэра Москвы по вопросам строительства, Марат Хуснуллин, в ответ на вопросы по данной теме заявил: “ [ ] я вообще в средствах массовой информации это услышал, я даже не знаю, откуда шум такой. Мне никто никогда не докладывал, что у нас там какая-то радиационная обстановка. Это полная ерунда.”

Let's block ads! (Why?)

[Из песочницы] Настройка ClickHouse для интеграционного тестирования в gitlab-ci

У нас был сервис на golang, отдельный топик kafka, clickhouse, gitlab-ci и падающий пайплайн, протухший ssh-ключ и вот это вот все, а еще сезон отпусков, жуткие ливни в городе, сломавшийся ноутбук, алерты по ночам, и горящий прод. Не то, чтобы это все было нужно для этой статьи, но раз показываешь типичные будни тестировщика, то иди в своем намерении до конца. Единственное, что меня беспокоило — это p0. В мире нет ничего более отчаянного, мрачного и подавленного, чем тестировщик, который пропустил это на прод. Но я знала, что довольно скоро я в это окунусь.

Зачем все это?


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

Итого, есть несколько элементов, и граница этих элементов — выход одного и вход другого — это то самое место, где появляются проблемы. Они просто не могут там не появиться.

Яркий пример: в сервисе поле price обрабатывается как float32, в базе оно настроено как decimal(18, 5), подаем с выхода сервиса на базу максимальное значение float32 в качестве тесткейса — ой, база не отвечает. Или уже более грустный пример — база не крашится, но в логах ошибки записи данных в базу нет. просто в базу данные перестают наливаться. Или запись проходит, но с потерей данных или с искажением: поле выходит из сервиса как float64, а записывается как float32. 

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

Задача


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

Выход: интеграционные тесты! 

Реализация и трудности 


Где ломать?


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

Есть test-окружение или qa-стенд: настроено уже получше, за ним даже следят devops, но пока их не пнешь, ничего не произойдет. и еще это окружение часто обновляется. а еще чаще там что-то сломано. 

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

Так что же делать с окружением, когда оно или нестабильное, или боевое? Правильно, создавать свое!

Что делать с базой?


Базу можно запускать несколькими способами.

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

Во-первых, можно поднять покостылить clickhouse-server с нужными настройками, раскатать на нем необходимые sql и общаться с ним посредством clickhouse-client. На первой же успешной попытке положить подобную базу, загрустил и ci. тесты зафейлились, сервер не потух и продолжил работать. Скажем так, до меня до сих пор остается загадкой, почему оно вообще запустилось. (оно само, я ни при чем). Не советую этот вариант.

Удобный вариант из коробки — использование docker образа.
Скачиваем нужную версию к себе на машину. Clickhouse для старта нужен config.xml с настройками. Подробнее тут
Для переиспользуемого образа клика надо создать правильный dockerfile. Указываем в нем, что хотим скопировать config.xl в папку, докидываем другие требуемые конфиги. Обязательно копируем скрипты для разворачивания своей базы. 

Так как к образу мы будем обращаться извне, то надо открыть те порты, по которым будем общаться с кликхаусом. Клик работает на 8123 по http и на 9000 по tcp.

Получаем следующий dockerfile:

From yandex/clickhouse-server

Expose 8123
Expose 9000

Add config.xml /etc/clickhouse-server/config.xml
Add my_init_script.sql /docker-entrypoint-initdb.d/


Как закинуть образ в ci? 


Чтобы с docker-образом как-то работать в ci, его надо там как-то вызвать. 

Можно закоммитить и запушить образ в свой репозиторий и в рамках запуска тестов выполнять docker run с нужными параметрами. Только вот docker-образ клика весит под 350мб. неприлично такие файлы держать в git.

Кроме того, если один и тот же docker-образ нужен на разных проектах (например, разные сервисы пишут в одну и ту же базу), то тем более так делать не стоит. Можно использовать хранилище образов docker registry
Считаем, что в нашем проекте он уже есть и используется. Поэтому логинимся, собираем docker-образ и пушим его туда. 

docker build -t my_clickhouse_image .
docker login my_registry_path.domain.com
docker push my_clickhouse_image


Вжух и наш образ улетел в registry. Обязательно указываем тег при сборке!

База готова.

Подробнее про registry тут

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


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

Все зависит от того, как у нас запускается и используется сервис. Если с сервисом работать как с docker-образом, да и вообще весь .gitlab-ci.yml работает только с ними, то все просто. 
Существует приблуда dind — docker-in-docker. Она указывается как основной сервис, с которым работает ci, и позволяет и докером полноценно пользоваться, и вообще не напрягаться.

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

image: docker:stable
services:
- docker:dind

stages:
- build
  …
- test-click
...
- test
- release
  …

test-click:
  variables:
    VERY_IMPORTANT_VARIABLE: “its value”
  before_script:
  - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
  script:
  - docker pull My_Service_Image
  - docker pull My_ClickHouse_Image
  - docker run -FLAGS My_ClickHouse_Image
  - docker run My_Service_Image /path/to/tests


В официальном докере докера указывается, что не рекомендуется использовать dind, но если очень надо…

В моем проекте сервис надо тестировать через запуск бинарника. Тут и начинается магия
Для этого нужно использовать базу как сервис. Официальная документация gitlab-ci приводит использование контейнера с базой в качестве примера самого распространенного варианта использования docker-контейнера в ci. Даже приведены примеры настроек mysql, postress и redis. Но мы же не ищем легких путей, нам нужен clickhouse.

Подключаем базу! Обязательно указываем alias. если его не указать, то базе будет приписываться рандомное имя и рандомный ip. То есть, будет непонятно, как именно к ней обращаться. С alias такой проблемы не будет — в коде тестов обращение будет выглядеть как, например, по хттп http://my_alias_name:8123.

Для тестов все так же требуется образ базы, который мы старательно запушили в registry. для скачивания образа необходимо выполнить docker login и docker pull, только ci не знает, что такое docker — надо его установить.

Итоговый код для шага в gitlab-ci.yml:

Integration tests:
Services:
- name: my_clickhouse:latest
  alias: clicktest
Stage: tests
Variables:
Variables_for_my_service: “value”
Before_script:
- curl -ssl https://get.docker.com/ | sh
- docker login -u gitlab-ci-token -p $ci_build_token my_registry_path.domain.com
Script:
- ./bin/my_service &
- go test -v ./tests -tags=integration
Dependencies:
- build


Профит


  • У меня есть работающая связка сервис-базка.
  • В рамках автотеста легко обратиться к базе — просто по alias.
  • Обнуляю записи и настройки базы в рамках setup теста, вызываю работу сервиса, он пишет в базу, обращаюсь к базе, смотрю, что база не отвалилась, смотрю, что пришло, валидирую. накидываю побольше тестов.
  • Можно ручками не тестировать!

Результаты


Казалось бы, пара строчек настройки в gitlab-ci. Собрать docker образ — просто. Запустить базку локально — просто. у меня за сутки появилась интеграция с первыми тестами, которые нашли проблемы. Но попытки запустить в это в ci обратились в неделю боли и безысходности. А теперь и в недели боли и безысходности разработчиков, которым придется чинить все, что они там напрограммировали.

Что мы сумели сделать?


  • Мы настроили контейнер с clickhouse.
  • Запушили контейнер в локальное хранилище.
  • Научились подтягивать этот образ в шаг ci.
  • Запустили его в раннере.

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

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

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

Let's block ads! (Why?)

Основатели стартапов страдают от депрессии и наркомании. Это цена смелости и яркого воображения

Для инвесторов и работников компании выход стартапа на IPO — праздник, но основателю компании и её исполнительному директору непросто пережить этот момент. Физически тяжело. В целом, первые годы жизни бизнеса — непростое испытание для предпринимателей, пишетThe Wall Street Journal.

Слева на диаграмме показаны результаты исследования 2016 года, проведённого специалистами из Калифорнийского университета в Сан-Франциско, Калифорнийского университета в Беркли и Стэнфордского университета. Это распространённость психических расстройств среди предпринимателей, в сравнении с контрольной группой. Среди них депрессия, ADHD (синдром дефицита внимания и гиперактивности), тревожность, злоупотребление психоактивными веществами и биполярное расстройство. По некоторым показателям предприниматели превосходят контрольную группу в несколько раз.
Результаты получены после опроса 292 предпринимателей. Таковыми считались основатели и сооснователи любого бизнеса или некоммерческой организации, с сотрудниками или без.

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

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

Основатели стартапов находятся под серьёзной нагрузкой, а работа без выходных в сумасшедшем темпе считается делом чести. Добавляется и психологическое давление: «На протяжении всего этапа поиска инвестиций, пока вы не найдёте ведущего инвестора, вы чувствуете себя дерьмом, потому что каждый инвестор, с которым вы разговариваете, объясняет, насколько ваш бизнес отстой», — говорит 46-летний Кимбал Маск (Kimbal Musk), который вместе с братом Илоном продал совместный стартап Zip2 за 307 миллионов долларов. В возрасте 27 лет он заработал больше денег, чем когда-либо мечтал, но после этого впал в депрессию.

Чувствуя себя потерянным, он поступил в кулинарную школу и продолжил запускать стартапы, но теперь исключительно кулинарные: Kitchen Restaurant Group, Big Green и Square Roots.

Другой предприниматель, 34-летняя Ребекка Жан Алонци (Rebecca Jean Alonzi), говорит, что у неё развилась зависимость от сладкой еды, которую она поглощала долгими ночами, работая над стартапом Nourish по доставке еды с ферм в офисы. Выполняя первые заказы от стартапов Кремниевой долины, она набрала 15 кг. Чтобы справиться с зависимостью, девушке пришлось вступить в общество Анонимных Обжор (Overeaters Anonymous) и начать бегать, чтобы похудеть. Потом начались проблемы с концентрацией. В 2012 году психиатр диагностировал у нее синдром дефицита внимания и гиперактивности и прописал стимулятор Adderall. Препарат помог. По словам Ребекки, он сделал её «тощей, стервозной и очень продуктивной».

Однако в течение года начались головные боли, она бросила Adderall, решив, что в процессе создания компании по здоровому питанию причиняет вред собственному телу. Ребекка нашла другой выход: она воспитала нового генерального директора, который вступил в должность в этом году, а сама по-прежнему участвует в работе Nourish как «внутренний предприниматель», ориентированный на новые проекты. Теперь она регулярно занимается «восстановительными» процедурами, такими как глубокое дыхание, прогулки без мобильного телефона и босиком.

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

Например, «гиперэнергетические» способности Брэндона Труакс (Brandon Truaxe) помогли ему запустить успешный и даже культовый косметический бизнес Deciem с сотнями сотрудников, но он сам в непомерных количествах употреблял эфедрин и кофеин. Близкие люди говорят, что Труакс начал использовать кристаллический метамфетамин в начале 2018 года, что сильно дестабилизировало его поведение. В октябре 2018 года инвесторы подали на него в суд за большое количество «тревожных сообщений» в социальных сетях и аренду новой штаб-квартиры без консультации с советом директоров. Основателя отстранили от управления компанией. В прошлом году он был трижды госпитализирован с галлюцинациями от тяжёлого злоуупотребления наркотиками, дважды в Лондоне и один раз в Канаде. В январе 2019 года Брэндон погиб после падения с 32-го этажа своей квартиры.


Брэндон Труакс, основатель культового косметического бренда Deciem

В IT-кругах говорят, что многие стартапы терпят неудачу из-за «человеческого фактора», а не из-за бизнеса. В исследовании 2016 года 92% из более чем 13 000 венчурных капиталистов, опрошенных Национальным бюро экономических исследований, определили «управленческую команду» как главный фактор неудач стартапов. «Шокирует, насколько часто стартапы терпят неудачу из-за недостатков личности и глубоких травм основателей и руководителей», — писал в твиттере Гарри Тан (Garry Tan), управляющий партнёр компании Initialized Capital, которая специализируется на инвестициях в стартапы.


Гениальный программист-самоучка Колин Кролл ушёл из колледжа, чтобы кодить. Запустил стартапы Vine и HQ Trivia и стал миллионером в 30 лет. Погиб в 2018 году от передозировки в возрасте 34 лет

Полученные инвестиции, иногда в миллиарды долларов, зависят от работоспособности основателей — и по этой причине многие скрывают свои проблемы, говорит Бен Таубер, исполнительный тренер Velocity Group: «Если вы поговорите с кем-то, он скажет, что все проблемы решены. Между тем, они убивают его изнутри».

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

Дик Костоло (Dick Costolo) был исполнительным директором компании Twitter с 2010 по 2015 годы. Он превратил небольшой стартап в устойчивый бизнес и вывел компанию на IPO. Сейчас Костоло вспоминает, как справлялся со стрессом. Он говорит, что пришлось серьёзно усилить тренировки: бег, кроссфит, стойки на руках, всё, что могло отвлечь от работы. Управление стрессом стало постоянной задачей: «Нужно было что-тор предпринять. Я был постоянно одержим. Вы просыпаетесь в 3 часа ночи и спрашиваете: ну и что с этим делать?»

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

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


В 2018 году предприниматель Кимбал Маск, младший брат Илона, женился на Кристиане Уайли: дочь миллиардера тоже занимается экоактивизмом

Кимбал Маск рекомендует всем в некотором роде «покинуть планету»; сам он в качестве медитации каждое утро медленно взбивает яйца, а каждый год посещает фестиваль Burning Man.

Let's block ads! (Why?)

Конечно, дали власть и очередь из пулемета. Рак и прочее…опыт с медициной

Доброго времени прочтения, уважаемые читатели Хабра.

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

  • не обращаться ни каким гадалкам, лечением содой и т.п. ни в коем случае, время упустите!!!
  • не паниковать, это лечится! Естественно, до не запущенной стадии
  • бывают и чудеса, сам сталкивался. Когда внезапно иммунитет это перебарывает… Да, почему вы? вот и — а почему для вас не случится чудо?

И, да… Флюорография не помогает. Только КТ органов грудной клетки, если курите… или, лучше бронхоскопия (сейчас делают безболезненно, во сне). Онкомаркеры тоже… 50 на 50, только ПСА (простата), остальные стоят на месте, на ранних стадиях…

Теперь конкретно… Лучшее, что нашел

По исследованиям:

  • «Рэмси Диагностика» на Новослободской. У них врач контролирует КТ, а не только техник. ИМХО — Лютаревич Даната. Цена — где-то до 5 тысяч

    Втрое мнение (с Данатой все совпало 1 к 1) — перекидываете все с дисков. НТРС, там действительно лучшие врачи России. Цена где-то до 4-ых тысяч.

  • По анализам ДНК-Центр . У них цены значительно ниже, я сравнивал сдав у них и в общеизвестной Инвитро. Совпало 1 к 1.
  • Эндо(бронхо)скопист — Кашатников. Но увы, это дорого, если без боли. 11 тысяч где-то, но потом, просыпаетесь и результат готов. Пока спите ничего не чувствуете.
  • УЗИ — Подопригора Л.В.

Врачи и лечение:

Российский центр хирургии им. Б.В. Петровского в принципе. По легким Торакальный хирург Базаров Дмитрий.
Только, сначала не к нему… Базаров может и легкое удалить под ноль, хоть он и один из лучших хирургов по этой части… сначала к Борисову. Если поищете — у него и публикации в Инете и вообще, известен). Он и поддержит и полностью все распишет, что делать, куда идти и как может развиваться.

Цена первичного приема 4 500, у одного и у другого. Вторичный прием у Базарова 2000. Но он хирург! Сначла к Борисову, он онколог. Иначе, может быть глобальное решение — удалить все. Даже когда это не требуется.

Ни дай Бог, но диета в случае онкологии . Она не не вылечит!!! Но организм поддержит.

Помощь, когда уже возможности исчерпаны.

Не болейте, да минет вас это все, тьфу-тьфу-тьфу… Да, если кого интересует — со мной все нормально кончилось :) Долгосрочная ремиссия :)

Let's block ads! (Why?)

Новости недели: цена билета Hyperloop в России, майнинг на ЭВМ программы «Аполлон», ИИ-бот в StarCraft II

image

В этом выпуске читайте:

  • подсчитана цена билета для Hyperloop от Москвы до Санкт-Петербурга;
  • на компьютере программы «Аполлон» попробовали майнить биткоин;
  • VAIO выпустила ноутбук с большим количеством портов;
  • видеоигры не делают людей жестокими, это просто игры;
  • IBM закрыла сделку по приобретению Linux Red Hat;
  • разработчики российского ПО получат 15 млрд поддержки;
  • AlphaStar сразится в StarCraft II на Battle.net.

От Москвы до Питера на Hyperloop


Институт проблем естественных монополий (ИПЕМ) подсчитал стоимость транспортного сообщения на основе системы Hyperloop между Москвой и Санкт-Петербургом. С учетом строительства инфраструктуры, которая составит около 1,18 трлн рублей без учета затрат на отчуждение земли, стоимость проезда составит 27,5 тыс. рублей. Если государство поможет реализовывать этот проект, то цена билета должна упасть до 16,1 тыс. рублей, что все равно слишком много для обычного пассажира.

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

На ЭВМ программы «Аполлон» попробовали майнить биткоины


Специалист по электронике Кен Ширифф смог восстановить бортовой управляющий компьютер программы «Аполлон». После того, как ЭВМ была доведена до рабочего состояния, на машине попробовали майнить биткоины. Речь идет о работе с компьютером, который управлял как командным, так и лунным модулями в ходе миссий полета на Луну.

Собственно, сюрпризов никаких не было — этот компьютер не приспособлен для подобных вычислений. «Попытка добывать биткоины на AGC казалась бессмысленной. Обработка алгоритма хеширования биткоинов на языке ассемблера на этом 15-битном компьютере 60-х годов была сложной задачей, но я заставил его работать», — пишет Кен.

«AGC тратит 5,15 секунд на один хэш SHA-256. Поскольку биткоин использует двойной хэш, это приводит к скорости хэширования 10,3 секунды на хэш. Компьютер потратит в миллиард раз больше времени, чем составляет возраст вселенной, чтобы успешно добыть один блок».

VAIO представила ноутбук с кучей разъемов и портов


Компания VAIO представила новую модель ноутбука — SX12. Диагональ дисплея устройства — 12,5 дюймов, но основная «фишка» этого устройства не в экране. Дело в том, что разработчики оснастили устройство большим количеством портов, большим, чем у практически любого современного ноутбука.

Что касается последних, то у SX12 есть практически все разъемы, которые могут понадобиться в процессе работы. Это три порта USB-A, порт USB-C, полноразмерный слот для карт памяти формата SD, порт для наушников, Ethernet и даже VGA, о котором забывает подавляющее количество производителей. Правда, и стоит устройство немало. За базовую версию придется заплатить немногим свыше $1000, за старшую версию компания просит в два раза больше.

Исследователи: нет, видеоигры не делают людей жестокими


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

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

IBM стала владельцем Red Hat


Корпорация IBM объявила об окончательном закрытии сделки по покупке поставщика открытого программного обеспечения — компании Red Hat за $34 млрд. По словам представителей IBM, давления на новый актив оказываться не будет, компания сбережет свой нейтралитет. В ближайшем будущем планируется выпуск гибридной мультиоблачной платформы следующего поколения.

«Когда мы говорим с клиентами, их проблемы ясны: им нужно двигаться быстрее и дифференцироваться с помощью технологий, — сказал президент и генеральный директор Red Hat Джим Уайтхёрст (Jim Whitehurst) в подготовленном заявлении. — Они хотят построить более коллаборативные культуры, и им нужны решения, которые дают им гибкость для создания и развёртывания любого приложения или рабочей нагрузки в любом месте. Мы считаем, что открытый исходный код стал стандартом де-факто в технологии, потому что он позволяет создание таких решений. Объединение усилий с IBM даёт Red Hat возможность привнести больше инноваций с открытым исходным кодом в ещё более широкий круг организаций и позволит нам масштабироваться, чтобы удовлетворить потребность в гибридных облачных решениях, которые обеспечивают истинный выбор и гибкость».

Разработчикам российского ПО предоставят 15 млрд рублей


Импортозамещение шагает по России — сейчас разработчики отечественного программного обеспечения получат около 15 млрд рублей поддержки. Средства будут выделены в рамках работы по программе «Цифровая экономика». Проект уже готовится группой по направлению «Информационная безопасность» при АНО «Цифровая экономика».

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

AlphaStar от DeepMind сыграет с геймерами в StarCraft II на Battle.net


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


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

Let's block ads! (Why?)

Apple выпустила «тихий» апдейт для Mac, чтоб удалить скрытый веб-сервер от Zoom

Компания Apple выпустила «тихое» обновление для операционной системы macOS. Обновление устанавливается незаметно для пользователя и удаляет уязвимый компонент в популярном приложении для видеоконференций Zoom. Уязвимый компонент — это скрытый веб-сервер localhost, который раньше устанавливался на компьютер при инсталляции клиента Zoom и оставался на компьютере даже после удаления клиента.
В последние несколько дней большой резонанс получило расследование специалиста по безопасности Джонатана Лейтшуха (Jonathan Leitschuh). Он показал, что Mac Zoom Client позволяет любому сайту активировать веб-камеру Mac без согласия пользователя (или присоединиться к текущему разговору). Это позволяет просто вырубить «мак» с любой веб-страницы отправкой непрерывного потока запросов на подключение к некорректному звонку. Соответствующие уязвимости зарегистрированы под номерами CVE-2019–13449 (DoS-атака) и CVE-2019–13450 (веб-сервер). Первую из них Apple исправила в версии клиента 4.4.2, а вторую закрывает нынешним обновлением.

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


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

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

Apple, видимо, изначально не считала её уязвимостью. Ведь это так удобно: вы можете послать кому-угодно ссылку по почте или в мессенджере (например, https://zoom.us/j/492468757), получатель нажмёт на неё — и у него на компьютере волшебным образом откроется клиент Zoom. Настоящая магия.

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

Исследователь сообщил в Apple об уязвимости 26 марта 2019 года, в том числе предложил описание хотфикса Zoom, которое можно было реализовать путём простого изменения логики сервера. На подтверждение уязвимости Zoom потребовалось 10 дней. Первое реальное обсуждение темы состоялось 11 июня 2019 года, всего за 18 дней до окончания 90-дневного срока публичного раскрытия. В ходе этой встречи были подтверждены детали уязвимости и обсуждён запланированный патч для Zoom. Но Джонатан говорит, что в их запланированном исправлении он уже изначально мог описать способ обхода. По сути, Apple не смогла чётко сформулировать суть уязвимости и быстро выпустить эффективный патч.

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

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

Как часто делает Apple, обновление устанавливается на компьютеры пользователей без их ведома. Представитель Zoom Присцилла Маккарти (Priscilla McCarthy) сказала TechCrunch: «Вместе с Apple мы работали над тестированием этого обновления. Мы ожидаем, что проблема веб-сервера сегодня будет решена. Благодарим пользователей за терпение, поскольку мы продолжаем работать над решением их проблем».

Обновление можно установить самостоятельно из командной строки:

softwareupdate -i MRTConfigData_10_14-1.45 --include-config-data

Более четырех миллионов пользователей в 750 000 компаниях по всему миру используют Zoom для видеоконференций.

Let's block ads! (Why?)

[Перевод] Пингвин в окне: о потенциале и перспективах WSL2

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

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


В мае этого года компания Microsoft объявила, что WSL2, новейшая версия подсистемы Windows на Linux, будет работать на полноценном ядре Linux, собранном в компании.
Таким образом, Microsoft впервые включает в Windows ядро Linux в качестве одного из компонентов. Также Microsoft вводит в Windows командную строку, которая расширит возможности PowerShell и WSL.

Как ядро Linux для WSL2, созданное силами Microsoft, так и новая командная строка Windows интересны, прежде всего, разработчикам.

«Это наиболее сильный ход в партии против AWS,» отмечает Джошуа Швартц, руководитель программ цифровизации в консалтинговой компании A.T. Kearney.

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

Что делает WSL2

WSL2 – это новейшая инфраструктура подсистемы Windows для Linux. Она позволяет радикально повысить производительность файловой системы и обеспечивает полную совместимость с системными вызовами.

Один из основных запросов WSL-сообщества был связан с доработкой функционала. На WSL2 работает гораздо больше инструментов под Linux, чем на WSL, в частности, Docker и FUSE.
WSL2 обрабатывает интенсивные файловые операции, в частности, git clone, npm install, apt update и apt upgrade. Фактическое увеличение скорости зависит от конкретного приложения и от того, как оно взаимодействует с файловой системой.

Первые тесты показали, что WSL2 примерно в 20 раз быстрее WSL1 справляется с распаковкой tar из zip. При использовании git clone, npm install и cmake в различных проектах система показывала рост производительности в два-пять раз.

Поможет ли это завоевать доверие разработчиков?

В сущности, Microsoft стремится обрести признание и доверие в сообществе разработчиков, берясь за разработку собственной версии ядра Linux для поддержки процессов WSL2 – считает Коди Суонн, CEO в Gunner Technology.

«Если не считать разработки строго под Windows, создание всех прочих приложений – облачных, мобильных, веб-приложений – на ПК было крайне неудобным, из-за чего разработчику так или иначе приходилось загружать дистрибутив Linux параллельно с ОС Windows. Microsoft это признала и предложила решение,» заключает он.

Маловероятно, что внедрение собственного ядра Linux серьезно скажется на работе с системой с точки зрения обычного пользователя. Однако, в таком случае открываются возможности для более тесного взаимодействия между службами Microsoft и операционной системой Linux.
Такой ход со стороны Microsoft действительно очень грамотный, поскольку помогает глубже проникнуть в сообщество разработчиков, а также активно пользоваться продуктами, которые развивает кто-то еще – то есть, подключиться к опенсорсу – считает Суонн.

Добро пожаловать в Нью-Майкрософт

Тренд в сторону создания и поддержки ядра Linux «специально под Windows» отражает решительную направленность развития в сторону опен-сорса, которую продвигает CEO Сатья Наделла (Satya Nadella). Microsoft уже не тот, что при Гейтсе и Балмере, когда все хранилось за проприетарным частоколом, а об интероперабельности никто и не задумывался.

«Сатья полностью преобразил Microsoft в гораздо более современную платформу, и эта стратегия окупилась сторицей. Привет, капитализация в триллионы долларов», — говорит Швартц.

По мнению Чарльза Кинга, главного аналитика в Pund-IT, два основных достоинства Microsoft связаны с эффективностью и безопасностью.

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

Разработчики – также в выигрыше

Двоичные файлы Linux выполняют многие функции при помощи системных вызовов, например, обращаются к файлам, запрашивают память и создают процессы. WSL1 опирается на уровень трансляции, интерпретирующий многие из этих системных вызовов и позволяющий им взаимодействовать с ядром Windows NT.

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

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

Полностью опенсорсный инструмент

Разработка собственного ядра Linux компанией Microsoft стала кульминацией многолетней работы, проделанной Linux Systems Group, а также многих других команд, действующих во всей корпорации Microsoft – свидетельствует Джек Хэммонс (Jack Hammons), менеджер программ в Linux Systems Group, Microsoft.

Ядро, предоставляемое для WSL2, будет полностью опенсорсным, и Microsoft выложит на GitHub инструкции о том, как собрать такое ядро. Компания будет взаимодействовать с разработчиками, желающими помочь проекту, и стимулировать восходящие изменения.
Разработчики Microsoft создавали WSL2 при помощи систем непрерывной интеграции и непрерывной доставки, действующих в компании. Этот софт будет обслуживаться через систему обновлений Windows и будет полностью прозрачен для пользоваться. Ядро будет оставаться актуальным и включать все возможности новейшей стабильной ветки Linux.

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

Восходящие изменения становятся обязательными

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

Цель Microsoft, активно использующей Linux –стать дисциплинированным членом этого сообщества и поставлять вносимые изменения в распоряжение сообщества. Чтобы добиться стабильности веток, связанных с долгосрочной поддержкой, некоторые патчи – например, содержащие новые возможности – могут включаться лишь в новые версии ядра, а не портироваться в текущую версию LTS в режиме обратной совместимости.

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

Более приятное оформление окон

Microsoft также анонсировала выход готовящейся «зимней» версии Windows Terminal – это новое приложение для пользователей, работающих с инструментами командной строки и оболочками, в частности, Command Prompt, PowerShell и WSL.

Терминал Windows

Windows Terminal 1.0 предлагает множество настроек и конфигурационных возможностей, дающих более полный контроль над оформлением окна терминала, а также над оболочками/профилями, которые должны открываться как новые вкладки.

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

Microsoft прекращает доработку имеющейся консоли Windows, а создает новую с нуля, решив применить при этом свежий подход. Windows Terminal устанавливается и и работает параллельно с имеющимся приложением Windows Console, поставляемым «из коробки».

Как это работает

Когда пользователь Windows 10 напрямую запускает Cmd/PowerShell/т.д, срабатывает процесс, прикрепленный к обычному экземпляру Console. Механизм конфигурации нового терминала позволяет пользователям Windows создавать множество профилей для всех желаемых оболочек/приложений/инструментов, будь то в PowerShell, командной строке, Ubuntu, или даже при SSH-соединениях с Azure или устройствами Интернета Вещей.

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

Основные достоинства нового командного интерфейса Windows – множество вкладок и красивый текст. Поддержка множества вкладок считалась самым востребованным запросом по поводу разработки терминала. Красивый текст получается благодаря движку рендеринга на основе DirectWrite/DirectX, оснащенного GPU-ускорением.

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

Обратная совместимость остается в полном порядке, хотя, при желании можно попробовать и Windows Terminal.

Хронология: как это будет

Microsoft будет предоставлять Windows Terminal через Microsoft Store в Windows 10 и регулярно его обновлять. Таким образом, пользователи всегда будут работать с новейшими версиями и самыми последними доработками – практически без лишних усилий.

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

Исходный код Windows Terminal и Windows Console уже выложен на GitHub.

Что нас может ждать в дальнейшем?

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

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

Он думает, что в обозримом будущем компания сосредоточит основную работу на обеспечении все более тесной совместимости Windows и Linux и их взаимном дополнении.

Джошуа Швартц полагает, что в данном случае потребуется взвесить, каковы будут вложения в эту работу, и какова – отдача от нее. Если бы сегодня Microsoft была совсем молодой компанией, то, вероятно, все делала бы на основе Linux. Однако, портирование всех наработок, уже имеющихся у Microsoft, на нативную архитектуру Linux, сегодня представляется дорогостоящим и сложным проектом, который едва ли хорошо окупится. Любители Linux получат себе Linux, а основная архитектура останется нетронутой.

Когда Apple в 2000 году заново изобрела Mac OS, эта операционная система строилась на основе BSD Unix, которая более схожа с Linux, чем с DOS. Сегодня же новая версия Microsoft Windows создается именно на базе Linux.

Возможно, перед нами отворяется новая дверь?

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

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

Более важный стратегический вопрос заключается в том, какие новые стратегические возможности открывает такой ход для самой платформы Microsoft?

Azure – облачная экосистема от Microsoft – уже предоставляет колоссальную поддержку Linux. Ранее Windows хорошо поддерживала Linux при помощи виртуальных машин.

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

Let's block ads! (Why?)

пятница, 12 июля 2019 г.

[Из песочницы] Обновляем проекты Unity Android для совместимости с архитектурой ARM64

Google предложил разработчикам обновить приложения для совместимости с архитектурой ARM64 в срок до 1 августа 2019 года, если они не соответствуют этим требованиям


Найдем и включим поддержку ARM64 в Unity


Для включения, откроем настройки File — Build Settings, далее — Player Settings для платформы Android. В открывшемся инспекторе, видим на вкладке Other settings раздел Configuration.
image

Обратите внимание! Опция Scripting Backend должна быть установлена в IL2CPP. И после включения этой опции потребуется иметь установленный NDK Android, если он не установлен!

Скачиваем последнюю стабильную версию, прописываем пути к ней — и «упс», самая новая версия NDK для Unity почему-то не подошла!

image

Не тратьте время, как это сделал я, на скачивание последней стабильной версии с номером 20. Размер этого пакета около 2Gb. Начинайте качать версию r16b (64-bit).

Скачать именно эту, требуемую версию NDK Android r16b (64-bit) для Windows
можно здесь.

После, естественно, распаковать, положить в надежное доступное место и при сборке билда указать путь к этому месту. Или же, сразу прописать этот путь в главных настройках Unity, там есть такое поле для прописывания пути к NDK, а меню называется внешние компоненты (External Tools).

В результате, в опции Target Architectures должен стать активным флажок ARM64. До этих манипуляций флажок был неактивным:

image

Если в проекте используется Vuforia, ее также требуется обновить


Проекты с использованием Vuforia — ранние версии 64x не поддерживали. Однако, начиная с версии 8.1 Vuforia поддерживает 64-х разрядность.

Лучше всего обновляться непосредственно из Unity. Для этого, идем в меню Window — Vuforia Configuration (Ctrl-Shift-V) — и в инспекторе смотрим на самый верх — если доступно обновление и версия Vuforia не самая новая, то будет доступна ссылка на скачивание — именно она позволяет загружать исполняемый файл обновления.

Второй способ для проверки обновления — можно открыть меню Help — Vuforia Engine — Check for Updates. И если есть обновление, то оно будет предложено к скачиванию.

После скачивания, распакуйте. Внутри должен быть исполняемый файл примерно с таким именем UnitySetup-Vuforia-AR-Support-for-Editor-2018.4-2019.1.exe. Отличаться может версия вашего редактора.

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

  1. Принять лицензионное соглашение
  2. Если Unity редактор открыт, то будет предложено его закрыть
  3. Выбрать путь к редактору Unity и нажать Update

Причем, если у вас установлен Unity Hub, то путь возможно будет выглядеть как то так: «C:\Program Files\Unity\Hub\Editor\2018.4.3f1\».

Будьте повнимательней с путями и все получится. Когда я указывал путь до той папки, где непосредственно лежит Unity.exe то получал ошибку: «Не могу найти Unity.exe». Правильный путь указывается только до названия версии редактора!

Еще одни грабли могут быть тут. Возможно, вы сами найдете на сайте Вуфории ссылку на Vuforia SDK Engine 8.3: developer.vuforia.com/downloads. Но, здесь скачиваются zip архивы с исходниками SDK, и автоматически установить это в Unity не получится. Не используйте этот архив! Скачивайте файл обновления только по ссылке в редакторе.

Все рекомендации относятся к обновлению Vuforia если у вас установлена Windows. Если же у вас Mac, то отличий немного, разве что в написании путей к папке с редактором Unity. И конечно, выбирайте версии пакетов под свою платформу правильно.

На этом все, спасибо аудитории, надеюсь статья кому-то поможет.

Подробности о требованиях Google.

Информацию по IL2CPP смотрите в разделе 6 помощи.

Версии NDK Android.

Vuforia о поддержке ARM64 и обновлении до версии 8.3.

Let's block ads! (Why?)

Как строить, развертывать и тестировать Waves RIDE dApp

Здравствуйте! В статье я покажу, как написать и запустить на ноде Waves обычный dApp. Рассмотрим необходимые инструменты, методы и пример разработки.

Схема разработки dApps и обычных приложений почти не отличается:

  • Пишем код
  • Пишем автоматизированное тестирование
  • Запускаем приложение
  • Тестируем

Инструменты


1. docker для запуска ноды и Waves Explorer

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

  • Вам постоянно будут нужны новые аккаунты с тестовыми токенами. Кран тестовой сети переводит по 10 WAVES каждые 10 минут.
  • Среднее время блоков в тестовой сети – 1 минута, в ноде – 15 секунд. Это особенно ощутимо, когда транзакция требует нескольких подтверждений.
  • В общедоступных тестовых нодах возможно агрессивное кэширование.
  • Еще они могут быть временно недоступны из-за технического обслуживания.

Далее буду считать, что вы работаете со своей нодой.

2. Инструмент командной строки Surfboard

  • Скачайте и установите Node.js с помощью ppa, homebrew или exe здесь: https://nodejs.org/en/download/.
  • Установите Surfboard – инструмент, который позволит запустить тесты на существующей ноде.
npm install -g @waves/surfboard


3. Плагин Visual Studio Code

Шаг необязателен, если вы – не фанат IDE и предпочитаете текстовые редакторы. Все необходимые инструменты – это утилиты командной строки. Если используете vim, обратите внимание на плагин vim-ride.
Скачайте и установите Visual Studio Code: https://code.visualstudio.com/

Откройте VS Code и установите плагин waves-ride:

Браузерное расширение Waves Keeper: https://wavesplatform.com/products-keeper

Готово!

Запустите ноду и Waves Explorer


1. Запустите ноду:
docker run -d -p 6869:6869 wavesplatform/waves-private-node


Проследите, чтобы нода запускалась через REST API в http://localhost:6869:


Интерфейс Swagger REST API для ноды

2. Запустите экземпляр Waves Explorer:

docker run -d -e API_NODE_URL=http://localhost:6869 -e NODE_LIST=http://localhost:6869 -p 3000:8080 wavesplatform/explorer


Откройте браузер и перейдите в http://localhost:3000. Увидите, как быстро строится пустая цепь локальной ноды.


Waves Explorer отображает экземпляр локальной ноды

Структура RIDE и инструмент Surfboard

Создайте пустую директорию и выполните в ней команду

surfboard init


Команда инициализирует директорию со структурой проекта, приложения типа «hello world» и тесты. Если откроете эту папку с VS Code, то увидите:


Surfboard.config.json

  • Под папкой ./ride/ найдете одиночный файл wallet.ride – директорию, где расположен код dApp. Мы кратко проанализируем dApp в следующем блоке.
  • Под папкой ./test/ найдете файл *.js. Здесь хранятся тесты.
  • ./surfboard.config.json – конфигурационный файл для запуска тестов.

Envs – важная секция. Каждая среда настраивается так:
  • Конечная точка REST API ноды, которая будет использоваться для запуска dApp и CHAIN_ID сети.
  • Секретная фраза для аккаунта с токенами, которые будут источниками токенов вашего теста.

Как видите, surfboard.config.json по умолчанию поддерживает несколько сред. По умолчанию выставлена локальная среда (ключ defaultEnv – изменяемый параметр).

Приложение Wallet-demo


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

Рассмотрим простое приложение Wallet-demo. Каждый может отправить на адрес dApp токены. Вывести можно только свои WAVES. Две @Callable функции доступны через InvokeScriptTransaction:

  • deposit(), которое требует прикрепленного платежа в WAVES
  • withdraw(amount: Int), который возвращает токены

На протяжении всего жизненного цикла dApp, структура (address → amount) будет поддерживаться:
Вот код для полного понимания ситуации:
# In this example multiple accounts can deposit their funds and safely take them back. No one can interfere with this.
# An inner state is maintained as mapping `address=>waves`.
{-# STDLIB_VERSION 3 #-}
{-# CONTENT_TYPE DAPP #-}
{-# SCRIPT_TYPE ACCOUNT #-}
@Callable(i)
func deposit() = {
 let pmt = extract(i.payment)
 if (isDefined(pmt.assetId))
    then throw("works with waves only")
    else {
     let currentKey = toBase58String(i.caller.bytes)
     let currentAmount = match getInteger(this, currentKey) {
       case a:Int => a
       case _ => 0
     }
     let newAmount = currentAmount + pmt.amount
     WriteSet([DataEntry(currentKey, newAmount)]) 
   }
 }
@Callable(i)
func withdraw(amount: Int) = {
 let currentKey = toBase58String(i.caller.bytes)
 let currentAmount = match getInteger(this, currentKey) {
   case a:Int => a
   case _ => 0
 }
 let newAmount = currentAmount - amount
 if (amount < 0)
   then throw("Can't withdraw negative amount")
   else if (newAmount < 0)
     then throw("Not enough balance")
     else ScriptResult(
       WriteSet([DataEntry(currentKey, newAmount)]),
       TransferSet([ScriptTransfer(i.caller, amount, unit)])
      )
 }
@Verifier(tx)
func verify() = false

Пример кода можно также найти на GitHub.

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


Если хотите использовать другой текстовый редактор при компиляции файла, используйте

surfboard compile ride/wallet.ride


Это выведет ряд base64 скомпилированного кода RIDE.

Тестовый сценарий для ‘wallet.ride’


Посмотрим на тестовый файл. Работает на фреймворке JavaScript’s Mocha. Есть функция «Before» и три теста:
  • «Before» финансирует несколько аккаунтов через MassTransferTransaction, компилирует скрипт и развертывает его в блокчейне.
  • «Can deposit» отправляет в сеть InvokeScriptTransaction, активируя функцию deposit() для каждого из двух аккаунтов.
  • «Can't withdraw more than was deposited» тестирует, что никто не сможет украсть чужие токены.
  • «Can deposit» проверяет, что выводы обрабатываются корректно.

Запуск тестов с Surfboard и анализ результатов в Waves Explorer


Для запуска теста выполните
surfboard test


Если у вас есть несколько сценариев (например, нужен отдельный скрипт развертывания), можете запустить
surfboard test my-scenario.js


Surfboard соберет тестовые файлы в папке ./test/ и запустит сценарий в ноде, которая настроена в surfboard.config.json. Спустя несколько секунд вы будете наблюдать что-то подобное:
wallet test suite
Generating accounts with nonce: ce8d86ee
Account generated: foofoofoofoofoofoofoofoofoofoofoo#ce8d86ee - 3M763WgwDhmry95XzafZedf7WoBf5ixMwhX
Account generated: barbarbarbarbarbarbarbarbarbar#ce8d86ee - 3MAi9KhwnaAk5HSHmYPjLRdpCAnsSFpoY2v
Account generated: wallet#ce8d86ee - 3M5r6XYMZPUsRhxbwYf1ypaTB6MNs2Yo1Gb
Accounts successfully funded
Script has been set
   √ Can deposit (4385ms)
   √ Cannot withdraw more than was deposited
   √ Can withdraw (108ms)
3 passing (15s)


Ура! Тесты пройдены. Теперь взглянем на то, что происходит при использовании Waves Explorer: просмотрим блоки или вставим один из указанных выше адресов в поиск(например, соответствующий wallet#. Там можно найти историю транзакций, состояние dApp, декомпилированный двоичный файл.


Waves Explorer. Приложение, которое только что развернули.

Несколько советов по Surfboard:

1. Чтобы тестировать в среде testnet, используйте:

surfboard test --env=testnet


Получить тестовые токены

2. Если хотите посмотреть JSON-версии транзакций и как они обрабатываются нодой, запустите тест с -v (означает ‘verbose’):

surfboard test -v


Использование приложений с Waves Keeper


1. Настройте Waves Keeper для работы: http://localhost:6869


Настройка Waves Keeper для работы с локальной нодой

2. Импортируйте секретную фразу с токенами для сети? Для простоты используйте начальное seed вашей ноды: waves private node seed with waves tokens. Адрес: 3M4qwDomRabJKLZxuXhwfqLApQkU592nWxF.

3. Вы можете запустить одностраничное безсерверное приложение самостоятельно, используя npm. Или перейдите к существующему: chrome-ext.wvservices.com/dapp-wallet.html

4. Введите адрес кошелька из тестового запуска (подчеркнут выше) в текстовое поле адреса dApp

5. Впишите небольшую сумму в поле «Deposit» и нажмите кнопку:


Waves Keeper запрашивает разрешение, чтобы подписать InvokeScriptTransaction с платежом 10 WAVES.

6. Подтвердите транзакцию:


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

7. Наблюдайте за транзакцией с помощью Waves Explorer. Введите ID в поисковое поле

Выводы и дополнительная информация


Мы рассмотрели инструменты разработки, тестирования, развертывания и использования простых dApps на Waves Platform:
  • Язык RIDE
  • Редактор VS Code
  • Waves Explorer
  • Surfboard
  • Waves Keeper

Ссылки для тех, кто хочет продолжить изучать RIDE:

Больше примеров
Онлайн IDE с примерами
Документация Waves
Чат разработчиков в Телеграме
Waves и RIDE на stackoverflow
NEW! Онлайн-курсы по созданию dApps на Waves Platform

Продолжайте углубляться в тему RIDE и создайте свой первый dApp!

TL;DR: bit.ly/2YCFnwY

Let's block ads! (Why?)

[Перевод] Что я узнал о машинном обучении, поработав в 12 стартапах

Всем привет.

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

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

За время работы я пришел к таким выводам:

Продукт важнее ИИ


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

Вскоре я понял, что даже точные модели машинного обучения не ценны сами по себе. Ценность ИИ и машинного обучения напрямую зависит от ценности продукта, в котором они используются. Цель стартапа – научиться создавать продукты, основанные на машинном обучении.

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

Стремитесь к синергии между данными и продуктом


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

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

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

Сначала данные, потом ИИ


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

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

Инвестируйте в коммуникацию


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

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

«Простые и очевидные решения» не так очевидны


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

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

Если сомневаетесь, покажите данные пользователям


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

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

Выстраивайте доверие


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

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

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

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

Всем знаний!

Let's block ads! (Why?)

По следам Highload++ Siberia 2019 — 8 задач по Oracle

Приведем выдержки из документации (12.1.0.2) по хранению различных типов данных в Oracle.

CHAR Data Type
The CHAR data type specifies a fixed-length character string in the database character set. You specify the database character set when you create your database. Oracle ensures that all values stored in a CHAR column have the length specified by size in the selected length semantics. If you insert a value that is shorter than the column length, then Oracle blank-pads the value to column length.

VARCHAR2 Data Type
The VARCHAR2 data type specifies a variable-length character string in the database character set. You specify the database character set when you create your database. Oracle stores a character value in a VARCHAR2 column exactly as you specify it, without any blank-padding, provided the value does not exceed the length of the column.

NUMBER Data Type
The NUMBER data type stores zero as well as positive and negative fixed numbers with absolute values from 1.0 x 10-130 to but not including 1.0 x 10126. If you specify an arithmetic expression whose value has an absolute value greater than or equal to 1.0 x 10126, then Oracle returns an error. Each NUMBER value requires from 1 to 22 bytes. Taking this into account, the column size in bytes for a particular numeric data value NUMBER(p), where p is the precision of a given value, can be calculated using the following formula: ROUND((length(p)+s)/2))+1 where s equals zero if the number is positive, and s equals 1 if the number is negative.

Кроме того, возьмем выдержку из документации насчет хранения Null–значений.

A null is the absence of a value in a column. Nulls indicate missing, unknown, or inapplicable data. Nulls are stored in the database if they fall between columns with data values. In these cases, they require 1 byte to store the length of the column (zero). Trailing nulls in a row require no storage because a new row header signals that the remaining columns in the previous row are null. For example, if the last three columns of a table are null, then no data is stored for these columns.

Исходя из этих данных, строим рассуждения. Считаем, что в БД используется кодировка AL32UTF8. В этой кодировке русские буквы будут занимать 2 байта.

1) A и X, значение поля a 'Y' занимает 1 байт, значение поля x ‘Д’ – 2 байта
2) B и Y, ‘Вася’ в b значение дополнится пробелами до 10 символов и займёт 14 байт, ‘Вася’ в d – займет 8 байт.
3) C и K. Оба поля имеют значение NULL, после них есть значащие поля, поэтому занимают по 1 байту.
4) C и Z. Оба поля имеют значение NULL, но поле Z – последнее в таблице, поэтому места не занимает (0 байт). Поле С занимает 1 байт.
5) K и Z. Аналогично предыдущему случаю. Значение в поле K занимает 1 байт, в Z – 0.
6) I и J. Согласно документации, оба значения займут по 2 байта. Длину считаем по взятой из документации формулы: round( (1 + 0)/2) +1 = 1 + 1 = 2.
7) J и X. Значение в поле J займет 2 байт, значение в поле X займет 2 байта.

Итого, правильные варианты: С и Z, I и J, J и X.

Let's block ads! (Why?)

Как ухаживать за электровелосипедом

Я люблю свою лошадку, причешу ей шёрстку гладко…


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

Недавно в нашем блоге был рассказ о том, как проходит процесс сборки электровелосипеда в том случае, если вы его заказываете в разобранном виде — на примере Twitter Mantis-E0. Сегодня, как тогда и обещали — пара слов об уходе за электровелосипедом — на примере двухподвеса Twitter AM26-E1.

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

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


Настройка под себя


Любой автомобилист перед началом движения всегда должен начинать с настройки посадки: сиденье → ноги → спинка → руль → подголовник → зеркала. С велосипедом та же история, но попроще: прежде чем взбираться на железного коня, надо убедиться в том, что у него не отвалится колесо, не провернётся руль и т.д. Но прежде чем ехать, нужно настроить велосипед под себя: положение седла и руля, а также всех рукояток/переключателей на нём. Если неправильная посадка в автомобиле может простить некоторые огрехи и позволит доехать из пункта А в пункт Б, то с велосипедом иначе: постоянная неправильная посадка негативно скажется на здоровье (а оно дороже любых электровелосипедов) — усталость спины, ног, запястий, шеи. Ну и безопасность, конечно же.

Велосипед нужно покупать с таким размером рамы, чтобы она соответствовала росту велосипедиста: подобных табличек в сети полно. В модельном ряду электровелосипедов Twitter присутствуют модели с рамами 15-17 дюймов, а также «универсальная» в TW-E9L, о котором мы уже писали.

Затем нужно настроить высоту седла. Для этого существует несколько методов (гуглите методы Холмса, Лемонда, 109%), но самым часто практикуемым является «метод пятки»: сидя на седле, в нижнем положении педали, ваша нога должна быть полностью разогнута в колене.

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

Ну и последнее: отрегулируйте жёсткость переднего амортизатора (если такая настройка предусмотрена — как, например, в Twitter AM26-E1). Бывает так, что ход вилки настолько большой и лёгкий, что при торможении передним тормозом можно запросто устроить тройной тулуп.

TO


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

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

По-хорошему, проверять/обслуживать узлы велосипеда надо перед каждым выездом:

  • Давление в шинах (для MTB не менее 2 атмосфер)
  • Состояние цепи (загрязнение, смазка, натяг)
  • Тормоза (состояние диска и колодок, регулировка зазоров, состояние гидролинии, рукояток)
  • Крепление колёс (протягивание эксцентриков), руля и седла
  • Люфты (руля, втулок, кареточного узла, шатунов)
  • Заряд устройств (в фаре, заднем фонаре, основного аккумулятора)

Ниже поговорим про основные проблемы и о том, как их решать.

Переключение скоростей


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

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

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

Также цепь может слетать из-за какой-либо деформации (в цепи или на звёздах) во время эксплуатации. Например, не рекомендуется ездить на «крайних» скоростях, в которых цепь идёт наперекос (из-за чего она растягивается или перетирается со временем). То есть если у велосипеда 3*8=24 скорости, то на деле это вовсе не значит, что на всех скоростях получится долго проездить: на некоторых кататься просто «вредно».

Ну и самая частая проблема: цепь слетает из-за неотрегулированных переключателей. И на переднем и на заднем переключателе есть по два винтика (торчащих или утопленных в корпусе), подписанных как L (low, отвечает за малые передачи — большие звёзды) и H (high, отвечает за большие передачи — малые звёзды). Эти винтики определяют предел хода переключающего механизма.


Регулировочные винтики в Twitter AM26-E1.


Регулировочные винтики в Twitter Mantis-E0.

Настройка начинается с самой маленькой скорости. Ролики заднего переключателя должны быть в одной плоскости со звёздочкам — если это не так, то регулируем H-винтик, чтобы всё было ровно. Затем переключаемся на малые передачи и регулируем L-винтик, чтобы ролик и звёздочка также были в одной плоскости. За этим надо следить: если велосипед упал и переключающий механизм (лапка) погнулся, то может случиться так, что цепь не просто слетит; гораздо хуже, если на одной из скоростей он переключится «внутрь» колеса, заденет спицы со всеми вытекающими — тогда придётся менять половину велосипеда :)

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


L- и H-винтики передних звёзд в AM26-E1 слегка утоплены в корпусе переключателя

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

Цепь


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


Чистая цепь


А тут уже явно есть потребность в чистке

Для начала берём газету — «Комсомольская Правда» отлично подойдёт, хотя у «Московского Комсомольца» тоже есть немало сторонников. Стелим её под велосипед, в районе цепи. Чистим от грязи: можно использовать специальные щётки, но можно обойтись и обычной тряпкой. Затем берём маслёнку (как вариант — шприц с тонкой иглой или аэрозоль), помещаем над цепью и тихонько сжимаем (чтобы из неё капало масло, а не текло), одновременно с этим крутя педали (чтобы цепь двигалась). После смазки всей цепи желательно ещё пару минут покрутить педали, а затем сухой тряпкой/салфеткой убрать всё «лишнее».

Не забывайте, что цепь это расходник. Поэтому если после зимы всё заржавело — проще заменить цепь, а не заниматься реанимацией. Ресурс цепей разный, 1000-2000 км, для определения уровня износа есть специальный инструмент — цепемер. 

Тормоза


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

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

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

Если же скрип постоянный, значит что-то обо что-то трётся — тормозной диск о колодки, либо колодки о диск :) Оба варианта не идут на пользу ни диску, ни колодкам. Решение простое: отрегулировать зазор между тормозным диском и калипером (aka тормозная «машинка», aka суппорт), для чего на последнем имеются несколько болтиков. Важно: зазор между колодкой и ротором не должен быть очень большим, иначе торможение будет менее эффективным.

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

Аккумулятор


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

В электровелосипедах Twitter используются литиево-ионные аккумуляторы производства LG, различных конфигураций. Почти во всех случаях аккумулятор съёмный — за исключением модели TW-E9L, у которого основной аккумулятор спрятан внутри карбоновой рамы. 

На тему продления жизни аккумуляторов в сети есть немало публикаций — одна из них с Хабра (удивительно, что у статьи более миллиона просмотров). Процитируем советы оттуда:

  1. Не допускайте перегрева
  2. Не допускайте полного разряда
  3. Раз в 3 месяца полностью разряжайте и заряжайте аккум
  4. Используйте оригинальное зарядное устройство

Добавим от себя: 
  1. В велосипедах Twitter используются как качественные аккумуляторы, так и контроллеры для них, во время заряда предусмотрена защита от перенапряжения, перезаряда, переразряда, перегрузки, замыкания, перегрева, переполюсовки. Поэтому остаётся лишь следить за состоянием аккумулятором вне поездок.
  2. При длительном бездействии (например, если не катаетесь зимой и в межсезонье), если храните велосипед в холодном гараже — желательно снимать аккумулятор и хранить его дома в полуразряженном состоянии при температуре 15-20 градусов. 
  3. Старайтесь не кататься при температурах ниже —10°С.

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

Гигиена


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

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

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

* * *

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

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

* * *

Оптимальный, как нам кажется, вариант — использовать съёмные полноразмерные крылья, чтобы на устройство летело минимум грязи; их можно промыть хоть в ванной, хоть на мойке. А остальное — влажными салфетками. Да, это займёт больше времени, но зато можно «помыться» где угодно: на улице, на лестничной клетке, да хоть в квартире. Из плюсов: во-первых, так получится чище (нежели струёй воды), а во-вторых — протирая сантиметр за сантиметром, вы сможете тщательно следить за состоянием всех компонентов и вовремя замечать какие-то аномалии (сколы, потёртости, разбалтывания и т.д.). 


В некоторых случаях не помогут и крылья

* * *

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



На этом всё. Делитесь в комментариях своими советами по уходу за двухколёсными друзьями!

Let's block ads! (Why?)