Обновить

Компания Skillfactory временно не ведёт блог на Хабре

Сначала показывать

Как я получил сертификат TensorFlow-разработчика (и как его получить вам)

Время на прочтение12 мин
Охват и читатели11K
image

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

Позвольте мне рассказать вам как я это сделал, и как вам сделать то же самое.

Погодите. Что вообще такое TensorFlow?

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

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

Обычно вы пишете код с использованием TensorFlow на очень понятном Python (именно это требуется для экзамена) или JavaScript (tensorflow.js), и он запускает ряд базовых функций, написанных на C. Эти функции выполняют описанные вами ранее команды (производят множество численных вычислений).

Абстракция — ключ к простому коду

Время на прочтение5 мин
Охват и читатели10K
image

Есть ли способ улучшить свои навыки в 10 раз? Есть ли какой-то волшебный секрет, который — если бы вы только знали это — открыл бы для вас совершенно новый мир мастерства и производительности в разработке программного обеспечения?

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

Да! Есть!

Но даже если я поделюсь им с вами — даже если я подробно изложу его для вас — вам может потребоваться 10 лет, чтобы вырасти и полностью оценить его простоту.

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

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

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

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

Видеоигры — это будущее образования (размышления программиста из Palantir)

Время на прочтение9 мин
Охват и читатели6.8K
Подписывайтесь на канал @META ОБУЧЕНИЕ, где я делюсь своими самыми полезными находками про образование и роль ИТ/игр в образовании (а так же мыслями на эту тему Антона Макаренко, Сеймура Пейперта, Пола Грэма, Джозефа Ликлайдера, Алана Кея)

В подростковом возрасте моё реальное образование складывалось из:

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

Пункты 1-3 не связаны с формальным школьным образованием и сформировались даже скорее вопреки ему. О нечто подобном писал Пол Грэм:


«Кое-что я не понимал в детстве: если ты учишь что-то действительно для себя важное, то удивительно часто тебе приходится изучать это самостоятельно. Мне пришлось самому осваивать Lisp, самому разбираться, как писать эссе и открывать стартап. У меня были примеры перед глазами, но не было учителей или классных занятий.»

Отсюда следует вывод:

1. Вещи, которым вы учитесь самостоятельно закрепляются; вещи, которым вас “научают” улетучиваются


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

Data Science умерла. Да здравствует Business Science

Время на прочтение8 мин
Охват и читатели15K

5 полезных уроков от скромного лосося


image

Три волны развития искусственного интеллекта согласно Evo Pricing, основано на исследованиях DHL.

Данные — ненадежный друг, и с трудом что-то о них можно назвать научным. Что же делать с наукой о данных?

За последние 5 лет я провел собеседования с более чем 1000 кандидатами на должность аналитиков данных, желающих работать в Evo Pricing. В процессе я узнал, что то, как в СМИ изображают данную профессию, в корне неверно; мы не просто подставляем данные в уже готовые алгоритмы.

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

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


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

Тренды в Data Scienсe 2020

Время на прочтение8 мин
Охват и читатели10K
image

Google Trends по запросу «data science»

Краткое изложение


  • По нашим оценкам, вакансии в advanced analytics насчитывают почти 1 миллион человек во всем мире, 291 тысяча из них в США.
  • За последние два года дефицит работ в области data science значительно сократился – были наняты около 800 тысяч специалистов, однако на данный момент десятки вакансий так и остаются нетронутыми, причем подавляющее большинство из них – в США.
  • Самый большой спрос на рабочих в области advanced analytics – в области залива Сан- Франциско с самыми высокими зарплатами и самым большим количеством вакансий, за ней следуют крупные городские центры вроде Нью-Йорка, Бостона, Вашингтона и Сиэтла.
  • Средняя заработная плата по стране у data scientists остается выше $100,000 – эта тенденция просматривается почти во всех штатах, удовлетворенность работой и престиж также остаются на высоком уровне.
  • Для подготовки специалистов в advanced analytics было создано больше ста образовательных программ.
Читать дальше →

Битва ИИ против ИИ: фрод и фейковый контент

Время на прочтение9 мин
Охват и читатели2.5K
image Искусственный интеллект (ИИ) сильно продвинулся в обнаружении попыток мошенничества с банковскими картами. Большинство из нас получали сообщения с просьбами подтвердить покупки, совершенные киберпреступниками. Для составления «синтетических персональных данных», которые копируют типичные модели поведения владельцев банковских карт, используется машинное обучение. Благодаря ему, финансовые учреждения могут в режиме реального времени зафиксировать поведение, отличающееся от нормы. К сожалению, киберпреступники тоже используют ИИ для создания собственных синтетических персональных данных. Они достаточно реалистичны, чтобы обмануть ИИ банков.

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

Стеффен Соррелл из Jupiter Research говорит, что в случае с кредитными картами синтетические персональные данные это легкая добыча. Согласно последнему отчету Jupiter Research о мошенничестве с онлайн-платежами, к 2024 году удастся избежать потери 200 миллиардов долларов на таком виде мошенничества. К этому времени рынок распознавания мошенничества должен достигнуть 10 млрд долларов по сравнению с 8,5 млрд долларов в этом году.
Читать дальше →

Как стать «Суперстариком» (superager)

Время на прочтение4 мин
Охват и читатели6.6K
image

Подумайте, есть ли среди ваших знакомых люди старше 65 лет. Скорее всего, некоторые из них страдают старческими психическими расстройствами, например, забывчивостью или снижением концентрации внимания. Тем не менее отдельным людям почему-то удается сохранить остроту ума. Моему свекру 83 года, он врач на пенсии, но до сих пор редактирует книги и ведет несколько медицинских сайтов.

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

В нашей лаборатории с помощью функциональной магнитно-резонансной томографии мы просканировали и сравнили головной мозг 17-ти суперстариков и их ровесников. Нам удалось выявить ряд различий в некоторых областях. У обычных людей определенные области головного мозга была истончена вследствие возрастной атрофии. Однако, у суперстариков эти области ничем не отличались от нормы для молодых людей, и казалось бы, были не подвластны разрушительному воздействию времени.
Читать дальше →

Прекратите использовать оператор If-else

Время на прочтение4 мин
Охват и читатели30K
image

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

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

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

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

Для тех, кто все еще находится в неведении, вот очень краткое введение.

Вы увеличите сложность с любым новым условным требованием, реализованным с помощью If-else.

Применяя шаблон состояния, вы просто изменяете поведение объектов, используя специализированные объекты состояния вместо операторов If-else.
Читать дальше →

Практическое функциональное программирование

Время на прочтение8 мин
Охват и читатели7.6K
image

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

40 лет назад, 17 октября 1977 года, премия Тьюринга была вручена Джону Бэкусу за его вклад в разработку систем программирования высокого уровня, прежде всего языка программирования Fortran. Всем лауреатам премии Тьюринга предоставляется возможность выступить с лекцией по выбранной ими теме в течение года, в котором они получили премию. Как создатель языка программирования Фортран, можно было ожидать, что Бэкус выступит с лекцией о преимуществах Фортрана и будущих разработках в этом языке. Вместо этого он прочитал лекцию под названием «Можно ли освободить программирование от стиля фон Неймана»? в котором он критиковал некоторые из основных языков того времени, включая Фортран, за их недостатки. Он также предложил альтернативу: функциональный стиль программирования.
Читать дальше →

Интерактивная визуализация данных при помощи Plotly: строим красивые графики с Express и Cufflinks

Время на прочтение12 мин
Охват и читатели40K
image


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

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

Вот камни преткновения, которые могут появиться на пути авантюристов, решивших покорить эту гору:

  • непонятная начальная настройка для работы оффлайн без аккаунта;
  • неимоверное количество строк кода;
  • устаревшая документация;
  • множество различных инструментов Plotly, в которых можно заблудиться (Dash, Express, Chart Studio и Cufflinks).

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

Что должен знать Data Scientist про когнитивные искажения ИИ

Время на прочтение4 мин
Охват и читатели6.1K
image

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

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

  • В статистике: искажение (bias) — это разница между ожиданием оцениваемой величины и ее значением. Такое определение жутко формально, так что позвольте мне его перевести. Искажение описывает результаты, которые систематически не соответствуют ожиданиям. Представьте себе стрельбу из лука, у которого сбит прицел. Высокий уровень искажения не означает, что вы стреляете куда угодно (в этом случае речь идет о дисперсии), суть будет заключаться в том, что даже идеальный лучник будет постоянно промахиваться. В данном контексте слово «искажение» несет в себе небольшой эмоциональный оттенок.

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

Философия преподавания Data Science и Deep Learning от fast.ai

Время на прочтение7 мин
Охват и читатели2.5K
image

Рейчел Томас, соосновательница fast.ai, профессор USF Data Institute

Пол Локхард – кандидат наук в области математики Колумбийского университета, бывший профессор университета Брауна и учитель математики средних классов – в своем важном эссе «Плач математика» описывает ужасный мир, где детям нельзя слушать и исполнять музыку, пока они не проведут десятки лет осваивая нотную грамоту и теорию музыки, транспонируя ноты в другую тональность на своих занятиях. На уроках рисования ученики изучают цвета и кисточки, но смогут начать рисовать только в колледже. Звучит абсурдно, не так ли? Именно так и преподается математика – мы требуем от студентов тратить годы на зубрежку, изучение сухих, не связанных между собой «основ», которые, как мы утверждаем, окупятся в будущем, когда большинство уже бросят сам предмет.

К сожалению, именно здесь и начинается упоминание некоторых из немногих ресурсов по глубокому обучению; обучающихся просят знать определение Гессиана и теоремы разложения в ряд Тейлора для функции потерь, но при этом никогда не приводят примеры фактически работающего кода. Я не виню математику. Напротив же, я люблю математику и даже преподавал её на уровне колледжа, однако не считаю, что это можно назвать хорошим или полезным введением в глубокое обучение.
Читать дальше →

10 ошибок, которые я допустил как Data Scientist

Время на прочтение6 мин
Охват и читатели11K
image

Работать в области data science бывает тяжко, но оно того стоит и, к тому же, приносит хороший доход. Некоторые действия преумножают нашу эффективность (например, отказ от использования Slack). Бездействие порой тоже бывает полезным. Ниже я расскажу о своих ошибках, которые препятствовали развитию либо моей карьеры, либо моей компании.

Непонимание того, что в Data Science существуют различные типы задач


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

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

Множество видов задач и работ скрывается под эгидой data science. Добавьте к этому неразборчивые должностные инструкции и получите рецепт приготовления превосходной путаницы.
Читать дальше →

Память в JavaScript — без утечек

Время на прочтение6 мин
Охват и читатели7.9K
image


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

Вступление


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

Любовный треугольник


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

Это выглядит так:

image

Так что это наш романтический треугольник — Процессор -> Шина -> Память
Читать дальше →

Ближайшие события

Как создать свой первый open source проект на Python (17 шагов)

Время на прочтение10 мин
Охват и читатели67K
Каждый разработчик ПО должен знать как создать библиотеку с нуля. В процессе работы Вы можете многому научиться. Только не забудьте запастись временем и терпением.

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

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

Шаг 1: Составьте план


Мы планируем создать простую библиотеку для использования в Python. Данная библиотека позволит пользователю легко конвертировать блокнот Jupyter в HTML-файл или Python-скрипт.
Первая итерация нашей библиотеки позволит вызвать функцию, которая выведет определенное сообщение.

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

«Самый опасный геймер» (про четвертое измерение, про игры Braid, Witness и их загадочного творца Джонатана Блоу)

Время на прочтение29 мин
Охват и читатели20K
Статья 2012 года

Видеоигры сейчас один из самых прибыльных видов развлечений в Америке, а также один из самых подростковых, глупых и не «нагружающих» мозг. Серьезно? По крайней мере, так считает Джонатан Блоу. Он — самый жесткий критик игровой индустрии и ее самый ценный разработчик, который стремится изменить наше представление об играх и сторителлинге. Следующим релизом, The Witness, Блоу может укрепить свое наследие или закончить карьеру. Может ли истинное искусство процветать в индустрии с многомиллиардным доходом от лазерных пушек и плотоядных пришельцев?



Как и многие состоятельные люди, Джонатан Блоу хорошо помнит момент, когда он стал богатым. В то время, в конце 2008 года, он был в минусе на 40 000 $ и жил в скромной квартире в Сан- Франциско, более трех лет тщательно оттачивая свою видеоигру, Braid — в жанре платформер-головоломка с возможностью изменения масштаба времени. (как если бы, Super Mario Bros. встретился с Борхесом), в которую Блоу влил еще 200 000 $. Хотя Braid был выпущена и разрекламирована прессой, на августовском сервисе Microsoft’s Xbox Live Arcade, Блоу не увидел ни цента от игры, пока в один осенний день он не сел в кафе in the city’s Mission district.



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

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

Data Science «на пальцах». Статистика — это наука менять свой взгляд на вещи в условиях неопределенности

Время на прочтение8 мин
Охват и читатели9K
Сотрудница Google объясняет статистику «на пальцах» для «гуманитариев», которые хотят стать Data Scientists.

image

Что такое статистика? Какой-то устаревший способ погрязнуть в данных. Ага. На 100% технически правильное определение. Теперь давайте посмотрим, что есть статистика как дисциплина.

Статистика — это наука о том, как менять свои представления.

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

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

Байесианцы меняют свое мнение насчет представлений.

Байесовская статистика — это школа мысли, которая использует данные, чтобы обновить ваше представление. Байесианцы предпочитают сообщать результаты, используя доверительный интервал (два числа, которые интерпретируются как “Я считаю, что ответ находится где-то между этим и этим”).
Читать дальше →

Важность «минусования» (downvoting) или ошибки Hacker News

Время на прочтение6 мин
Охват и читатели3.3K
image

Рассказывает Джефф Этвуд, сооснователь Stack Overflow и автор Coding Horror. Эссе 2009 года.

Hacker News Пола Грэма — отличный веб-сайт, на котором можно найти полезные ссылки для программирования и разумные обсуждения. Сайт, в какой-то степени, представляет собой усовершенствованную версию Reddit. Дизайн был непосредственно разработан с целью избежать недостатков программирования reddit.com, и сделано это было не кем-то со стороны (Reddit в свое время был стартапом, профинансированным фондом Пола Грэма Y Combinator). Поэтому мы внимательно изучили данный сайт в процессе разработки Stack Overflow.

Действительно, обсуждения на Hacker News гораздо серьезнее и не такие провокационные, как своего рода анархия на reddit.com. Я лично наблюдал дискуссии, возникающие под моими статьями, опубликованными на обоих сайтах. В эссе “Чему я научился у Hacker News” (рус) Пол пишет:
Очевидно, что Теория разбитых окон применима и к интернет-сообществу. Теория заключается в том, что мелкие правонарушения порождают более серьезные: в районе, где много граффити и разбитых окон происходит больше грабежей. Я жил в Нью-Йорке, когда Джулиани предложил свои реформы, после которых теория разбитых окон стала популярной, а общественное поведение чудесным образом улучшилось. И еще я был пользователем Reddit и наблюдал абсолютно противоположную, но столь же резкую трансформацию там.
Читать дальше →

Советы начинающим веб-разработчикам

Время на прочтение3 мин
Охват и читатели5.8K
Я занимаюсь созданием сайтов в том или ином виде с 1995 года. После 25 лет работы, думаю, что накопил опыта и теперь располагаю достаточными знаниями. Ниже в произвольном порядке изложено несколько моментов, о которых я бы хотел, чтобы начинающие разработчики поразмыслили.

  • Порой сайт — это всего лишь сайт.
  • Браузер уже является клиентом; HTML — это язык, на котором он разговаривает.
  • Веб строится вокруг визуализации на стороне сервера.
  • Вы можете предоставить данные несколькими способами; рассмотрите HTML как один из способов представления данных.
  • Масштабирование на стороне вашего сервера поможет всем, в то время как масштабирование на стороне клиента, помогает только тем, у кого мощное железо и быстрое соединение.
  • Не каждый имеет (или может использовать) мышку.
  • Не каждый имеет (или может использовать) клавиатуру.
  • Не каждый имеет (или может использовать) тачскрин.
  • Не у каждого цвета и картинки отображаются так же, как и у вас.
Читать дальше →

Что я узнал после более чем 1000 code review

Время на прочтение4 мин
Охват и читатели18K
За последние 3 года я рассмотрел более 1000 pull (merge) request’ов. За это время я многому научился — в основном тому, как не проверять код, как сделать процесс менее болезненным, что делает код хорошего качества и так далее.

Pull request должен делать только одну вещь


Это самая важная вещь, на которую стоит обратить внимание.

Делая code review, вы должны держать в голове много вещей. «Что за этим стоит?», «Как это согласуется с остальной частью кода?» и «Будет ли это хорошо работать?» Вот лишь некоторые из вопросов, на которые нужно ответить. Таким образом, когда у вас есть pull request, который пытается решить одну проблему, на некоторые из этих вопросов легче ответить.

Другим важным аспектом является размер pull request’а. Большие запросы требуют экспоненциально больше времени для рассмотрения. И когда я узнаю, что мне нужно потратить более 15 минут на запрос, вам придется подождать до пары часов.
Читать дальше →