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

Reddit

Что может пойти не так с Data Science? Сбор данных

17.07.2020 14:11:33 | Автор: admin

Сегодня существует 100500 курсов по Data Science и давно известно, что больше всего денег в Data Science можно заработать именно курсами по Data Science (зачем копать, когда можно продавать лопаты?). Основной минус этих курсов в том, что они не имеют ничего общего с реальной работой: никто не даст вам чистые, обработанные данные в нужном формате. И когда вы выходите с курсов и начинаете решать настоящую задачу всплывает много нюансов.

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

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

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

А главное, обсудим, что делать, чтобы этого не допустить.

По разным оценкам, очистка, трансформация, data processing, feature engineering и тд занимают 80-90% времени, а анализ 10-20%, в то время как практически весь учебный материал фокусируется исключительно на анализе.

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

И для примера опять же, мы рассмотрим подобные вариации задачи сбора данных и сравнения сообществ для:

  1. Двух сабреддитов Reddit
  2. Двух разделов Хабра
  3. Двух групп Одноклассников

Условный подход в теории


Открыть сайт и почитать примеры, если понятно, заложить несколько часов на чтение, несколько часов на код по примерам и отладку. Добавить несколько часов на сбор. Накинуть несколько часов про запас (умножить на два и прибавить N часов).

Ключевой момент: временная оценка основана на предположениях и догадках о том, сколько это займет времени.

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

  • Какой размер данных и сколько его нужно физически собирать (*см ниже*).
  • Какое время сбора одной записи и сколько нужно ждать, прежде чем можно собрать вторую.
  • Заложить написание кода сохраняющего состояние и начинающего рестарт, когда (а не если) все упадет.
  • Разобраться, нужна ли нам авторизация и заложить время получения доступа по API.
  • Заложить количество ошибок, как функцию сложности данных оценить по конкретной задаче: структура, сколько преобразований, что и как экстрактим.
  • Заложить ошибки сети и проблемы с нестандартным поведением проекта.
  • Оценить, если нужные функции в документации и если нет, то как и сколько нужно для a workaround.

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

И сейчас мы продемонстрируем конкретные примеры, где такие параметры и будут меняться.

Ключевой момент: оценка основана на анализе ключевых факторов, влияющих на объем и сложность работы.

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

Сравнение сообществ Reddit


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

  • Имеется аккуратный, понятный и документированный API.
  • Крайне просто и главное автоматически получается токен.
  • Есть python wrapper с кучей примеров.
  • Сообщество которое занимается анализом и сбором данных на реддите (вплоть до youtube роликов объясняющих, как использовать python wrapper) вот например.
  • Нужные нам методы скорее всего существуют в API. Более того, код выглядит компактно и чисто, ниже пример функции собирающей комментарии к посту.

def get_comments(submission_id):    reddit = Reddit(check_for_updates=False, user_agent=AGENT)    submission = reddit.submission(id=submission_id)    more_comments = submission.comments.replace_more()    if more_comments:        skipped_comments = sum(x.count for x in more_comments)        logger.debug('Skipped %d MoreComments (%d comments)',                     len(more_comments), skipped_comments)    return submission.comments.list()
Взято из этой подборки удобных утилит для обертки.

Несмотря на то что перед нами самый лучший случай здесь все же стоит учесть ряд важных факторов из реальной жизни:

  • Лимиты API мы вынуждены брать данные батчами (спать между запросами и тд).
  • Время сбора для полного анализа и сравнения придется заложить существенное время просто для паука пройтись по сабреддиту.
  • Бот должен крутиться на сервере вы не можете просто запустить его на ноуте, сложить в рюкзак и поехать по делам. Поэтому я запустил все на VPS. По промокоду habrahabr10 можно сэкономить еще 10% стоимости.
  • Физическая недоступность некоторых данных (они видны админам или слишком сложно собираются) это надо учесть, не все данные в принципе можно собрать за адекватное время.
  • Ошибки работы сети: работа с сетью это боль.
  • Это живые настоящие данные они чистыми не бывают.

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

Сравнение разделов Хабра


Переходим к более интересному и нетривиальному случаю сравнению потоков и/или разделов Хабра.

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

  • Сначала вы думаете, что есть API, но его нет. Да-да, у Хабра есть API, но только он недоступен для пользователей (а может и совсем не работает).
  • Потом просто начинаете парсить html import requests, что может пойти не так?
  • А как вообще парсить? Самый простой и часто используемый подход итерировать по ID, отметим, что не самый эффективный и придется обрабатывать разные случаи вот для примера плотность реальных ID среди всех существующих.


    Взято из этой статьи.
  • Сырые данные, завернутые в HTML поверх сети это боль. Например, вы хотите собрать и сохранить рейтинг статьи: выдрали score из html и решили сохранить его как число для дальнейшей обработки:

    1) int(score) кидает ошибку: так как на Хабре минус, как, например в строке "5" это короткое тире, а не знак минуса (неожиданно, да?), поэтому в какой-то момент пришлось поднимать парсер к жизни вот с таким ужасным фиксом.

    try:      score_txt = post.find(class_="score").text.replace(u"","-").replace(u"+","+")      score = int(score_txt)      if check_date(date):        post_score += score
    

    Даты, плюсов и минусов может вообще не быть (как мы видим выше по функции check_date и такое было).

    2) Неэкранированные спецсимволы они придут, нужно быть готовым.

    3) Структура меняется в зависимости от типа поста.

    4) Старые посты могут иметь **странную структуру**.
  • По сути обработку ошибок и что может или не может произойти придется обрабатывать и нельзя предугадать наверняка, что пойдет не так и как еще может быть структура и что где отвалится придется просто пробовать и учитывать ошибки, которые бросает парсер.
  • Потом вы понимаете, что нужно парсить в несколько потоков иначе парс в один потом займет 30+ часов (это чисто время выполнения уже рабочего однопоточного парсера, который спит и не попадает ни под какие баны). В этой статье, это привело в какой-то момент к подобной схеме:



Итого чеклист по сложности:

  • Работа с сетью и парсом html с итерацией и перебором по ID.
  • Документы неоднородной структуры.
  • Много мест, где код может легко упасть.
  • Необходимо писать || код.
  • Отсутствует нужная документация, примеры кода и/или сообщество.

Условная оценка времени для данной задачи будет в 3-5 раз выше, чем для сбора данных с Реддита.

Сравнение групп Одноклассников


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

Начнет с нашего чеклиста сложности и отметим, что многие из них окажутся куда сложнее, чем выглядят вначале:

  • API есть, но в нем почти полностью отсутствуют нужные функции.
  • К определенным функциям нужно просить доступ по почте, то есть выдача доступа не мгновенная.
  • Он ужасно документирован (начнем с того, что всюду мешаются русские и английские термины, причем абсолютно непоследовательно иногда вам нужно просто угадать, что от вас где-то хотят) и, более того, не подходит по дизайну для получения данных, например, нужной нам функции.
  • Требует сессии в документации, а на деле ее не использует и нет никакого способа разобраться во всех тонкостях режимов API, кроме как тыкаться и надеяться, что что-то будет работать.
  • Отсутствуют примеры и сообщество, единственная точка опоры в сборе информации небольшой wrapper на питоне (без большого количества примеров использования).
  • Наиболее рабочим вариантов выглядит Selenium, так как многие нужные данные под замком.
    1) То есть идет авторизация через фиктивного пользователя (и регистрация ручками).

    2) Однако c Selenium никаких гарантий по корректной и повторяемой работе (по крайней в случае с ok.ru точно).

    3) Сайт Ок.ру содержит ошибки JavaScript и иногда странно и непоследовательно себя ведет.

    4) Нужно заниматься пагинацией, подгрузкой элементов и тд

    5) Ошибки API, которые отдает wrapper придется костыльно обрабатывать, например, вот так (кусочек экспериментального кода):

    def get_comments(args, context, discussions):    pause = 1    if args.extract_comments:        all_comments = set()#makes sense to keep track of already processed discussions        for discussion in tqdm(discussions):             try:                comments = get_comments_from_discussion_via_api(context, discussion)            except odnoklassniki.api.OdnoklassnikiError as e:                if "NOT_FOUND" in str(e):                    comments = set()                else:                    print(e)                    bp()                    pass            all_comments |= comments            time.sleep(pause)        return all_comments
    

    Моя любимая ошибка была:

    OdnoklassnikiError("Error(code: 'None', description: 'HTTP error', method: 'discussions.getComments', params: ))

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

Условная оценка времени для данной задачи будет в 3-5 раз выше, чем для сбора данных с Хабра. Несмотря на то что в случае с Хабром мы используем лобовой подход с парсом HTML, а в случае с ОК мы можем в критичных местах работать с API.

Выводы


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

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

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

Если пробежаться краем глаза по характеристикам задачи без дополнительных экспериментов, то Reddit и ОК выглядят похоже: есть API, python wrapper, но по сути, разница огромна. Если судить по этим параметрам, то парс Хабра выглядит сложнее, чем ОК а на практике это совсем наоборот и именно это можно выяснить, проведя простые эксперименты по анализу параметров задачи.

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

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

Подробнее..

Перевод Обход капч с помощью Headless Chrome

26.06.2020 10:22:09 | Автор: admin

Использование 2Captcha and Puppeteer для автоматического прохождения капч



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


image

Amazons CAPTCHA fallback


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


image

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


image

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


Как работает 2Captcha


2Captcha решает много разных типов капчи. Для взаимодействия с 2Captcha используются два адреса: на in.php присылается задача и в ответ Вы получаете captcha_id, на res.php вы по captcha_id получаете ответ, когда он будет готов.


2Captcha решает капчи в нескольких различных стилях с помощью двух, по большей части одних и тех же, конечных точек обработки запросов. Первый запрос передает данные, необходимые для решения капчи, и возвращает ID запроса. В случае капчи на основе изображения, данные будут изображением самой капчи, закодированным в 64base.


image

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


image

С Recaptcha V2 история немного другая. Вы по-прежнему имеете дело с двухступенчатым процессом, что и представленный выше, но отправляете другие данные. Теперь вам нужно отправлять публичный ключ рекапчи (reCAPTCHA sitekey), который можно найти среди атрибутов элемента-контейнера капчи, независимо от того, был ли загружен
image

Получаемый ответ это токен, который нужно отправить вместе с формой и ввести в скрытое текстовое поле с идентификатором g-recaptcha-response. Скриншот ниже показывает, где оно находится, и я специально отключил CSS-свойство display: none, чтобы показать его на странице. Имея возможность редактировать это поле, вам будет проще вручную протестировать ответ 2Captcha, чтобы сократить количество переменных при тестовой интеграции.


image

Для капч, основанных на изображениях, результат доступен почти мгновенно. Для реКАПЧ версии 2 может потребоваться от 15 до 30 секунд.


Автоматизация через Puppeteer


Прежде чем беспокоиться о капче, нужно разобраться со всем прочим, но прежде чем мы сможем это сделать, нужно определиться с нашими инструментами. 3 причины, по которым в данном посте мы будем использовать Googles Chrome:


  1. В нем все очень легко автоматизируется через Puppeteer API.
  2. На нем можно работать как в headless-режиме, так и с графическим интерфейсом, что очень удобно и практично.
  3. Это самый распространенный в мире браузер, поэтому все имеющиеся на сайтах приемы анти-автоматизации имеют меньший шанс срабатывания (например, блокировка Selenium или PhantomJS)

Использование Puppeteer


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


$ npm install puppeteer

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


const puppeteer = require('puppeteer');const chromeOptions = {  headless:false,  defaultViewport: null};(async function main() {  const browser = await puppeteer.launch(chromeOptions);  const page = await browser.newPage();  await page.goto('https://old.reddit.com/login');})()

В этом коде мы указываем два свойства конфигурации при запуске: headless: false, чтобы видеть то, что мы делаем, и defaultViewport: null, чтобы учесть неприятный визуальный глитч, при котором область просмотра не заполняет окно. Ни тот, ни другой не важны для работы браузера в headless-режиме, просто с ними удобней видеть и, что самое важное, делать скриншоты. Например, такой:


image

Это было просто! Теперь мы готовы перейти к следующему шагу автоматизировать регистрацию так, будто капчи никогда и не было. Вот где возможность включать/ выключать headless-режим будет полезна, ведь мы можем управлять браузером от лица человека, когда нужно. Сначала следует понять, как получить доступ к элементам на странице, которые нужно поменять. Запустите браузер и просмотрите открытую страницу через инструменты разработчика Google Chrome (горячая клавиша F12). Далее, найдите текстовые поля, которые нужно будет изменить. (горячие клавиши: +Shift+C на Mac и Ctrl+Shift+C на Windows) В случае с Reddit, нам нужно получить прямой доступ к полю ввода логина, двум полям ввода пароля и кнопке. Электронная почта необязательна, так что можем ее проигнорировать. Печать в текстовых полях через API библиотеки Puppeteer почти до смешного проста: вы просто передаете селектор, который идентифицирует элемент, и желаемую строку с помощью метода .type().


await page.type('#user_reg', 'some_username');await page.type('#passwd_reg', 'SuperStrongP@ssw0rd');await page.type('#passwd2_reg', 'SuperStrongP@ssw0rd');

Производить операции с кнопкой так же удобно, разве что у кнопки на странице Reddit нет связанного с ней идентификатора, так что нам нужен более сложный селектор. Если вы не знакомы с селекторами CSS, то для краткого ознакомления посмотрите Mozilla Developer Network.


await page.click('#register-form button[type=submit]');

Вот и всё! Протестируйте скрипт, чтобы удостовериться, что отправка логина работает. Из-за КАПЧИ, конечно, ничего не получится, но зато мы можем протестировать работу хуков.


image

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


Страница Reddit страдает от состояния гонки, тогда как Google выводит реКАПЧУ после фокусировки на втором поле ввода пароля. То есть наш скрипт выполняется c такой скоростью, что смена фокуса происходит до того, как готов скрипт реКАПЧИ. Есть много решений этой проблемы, но самое простое добавить минимальную задержку, необходимую, чтобы миновать это состояние гонки. Мы могли бы добавить хуки и обработчики событий, чтобы убедиться, что мы действуем только после того, как рекапча загрузилась, но, похоже, самих разработчиков Reddit состояние гонки устраивает, так что нам нет необходимости умничать. Есть много способов организовать задержку, но в опциях Puppeteer, связанных с запуском браузера, есть параметр slowMo, который глобально задерживает все действия на заданное значение. Это очень грубый подход, так как замедляются вообще все действия Puppeteer, но начать с этого можно.


const chromeOptions = {  headless:false,  defaultViewport: null,  slowMo:10,};

После добавления этой опции мы видим, что капча снова работает. Ради забавного эксперимента, можно попробовать пройти капчу прямо сейчас и посмотреть что будет. Поскольку мы используем вариант Chromium с настройками по умолчанию, который запускается библиотекой Puppeteer, и мы управляем им через средства автоматизации, то реКАПЧА будет изо всех сил пытаться доказать, что мы не человек. Вам, вероятно, придется пройти несколько уровней проверки, даже если вы разберетесь со всеми картинками. Когда я тестировал это, мне пришлось пройти через 10 различных повторений, прежде чем я получил зеленую галочку.


К счастью, все это можно сделать намного легче.


Настройка 2Captcha


2Captcha требует API ключ, который выдается при регистрации. Вам также потребуется какое-то количество средств, потому что, не всё в жизни бесплатно. И просто ради смеха, конечно же, вам понадобиться пройти КАПЧУ.


`http://2captcha.com/res.php?key=${apiKey}&action=get&id=${reqId}`;

2Captchas API работает через двухступенчатый процесс, где вы отправляете данные КАПЧИ и получаете результат после возврата ID запроса. Поскольку мы имеем дело с reCaptcha v2, нам нужно будет отправить публичный ключ Reddit, о котором говорилось ранее. Нам также нужно убедиться, что мы выбрали метод userrecaptcha и отправляем URL страницы, на которой расположена реКАПЧА.


const formData = {  method: 'userrecaptcha',  key: apiKey, // your 2Captcha API Key  googlekey: '6LeTnxkTAAAAAN9QEuDZRpn90WwKk_R1TRW_g-JC',  pageurl: 'https://old.reddit.com/login',  json: 1};const response = await request.post('http://2captcha.com/in.php', {form: formData});const requestId = JSON.parse(response).request;

После того как вы сделали этот запрос и получили обратно идентификатор запроса, вам нужно запросить URL res.php, используя ваши ключ API и идентификатор запроса, чтобы получить ответ.


<a href="`http://2captcha.com/res.php?key=${apiKey}&action=get&id=${reqId}`;"></a>

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


Для reCaptcha V2 время нахождения решения может различаться минимум 15 секунд, максимум 45. Ниже показан пример механизма опроса, но в этот раз простого запроса по URL, который может быть интегрирован в ваше приложение так, как вам будет удобно.


async function pollForRequestResults(  key,   id,   retries = 30,   interval = 1500,   delay = 15000) {  await timeout(delay);  return poll({    taskFn: requestCaptchaResults(key, id),    interval,    retries  });}function requestCaptchaResults(apiKey, requestId) {  const url = `http://2captcha.com/res.php?key=${apiKey}&action=get&id=${requestId}&json=1`;  return async function() {    return new Promise(async function(resolve, reject){      const rawResponse = await request.get(url);      const resp = JSON.parse(rawResponse);      if (resp.status === 0) return reject(resp.request);      resolve(resp.request);    });  }}const timeout = millis => new Promise(resolve => setTimeout(resolve, millis))

Как только у вас есть данные ответа, вам нужно вставить результат в скрытое текстовое поле g-recaptcha-response в форме регистрации Reddit. Это не так просто, как использование метода .type() библиотеки Puppeteer, так как элемент невидим и не может получить фокус ввода. Можно сделать его видимым и затем использовать .type(), или же использовать JavaScript, чтобы внедрить значение на страницу. Для добавления JavaScript на страницу, при использовании Puppeteer, у нас есть метод .evaluate(), который принимает либо функцию, либо строку (при передаче функции она просто преобразуется в строку с помощью метода .toString()), и запускает ее в контексте страницы.


const response = await pollForRequestResults(apiKey, requestId);const js = `document.getElementById("g-recaptcha-response").innerHTML="${response}";`await page.evaluate(js);

После внедрения этого значения у нас все готово для завершения регистрации. Это действительно так просто.


Полный скрипт доступен ниже, если вам захочется поэкспериментировать с Puppeteer и/или 2Captcha.


Что вы теперь можете сделать?


Этот пост был написан ради двух вещей:


  1. Показать вам, насколько капчи нехорошая вещь

и


  1. Показать вам, что капчам нет необходимости блокировать вас

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

Подробнее..

Реддит против Wall Street как идёт борьба троллей с финансовыми воротилами

28.01.2021 10:04:30 | Автор: admin

Вы, возможно, слышали о войне Реддита против хедж-фондов Wall Street. Но на Хабре об этом вроде нет, и за последние дни случились новые потрясения. Капитализация GameStop выросла до рекордных $24 млрд. Хедж-фонд признал своё поражение, в бой вступил Илон Маск, а некоторые самые отчаянные тролли уже стали мультимиллионерами.

Предыстория

GameStop сеть офлайн-магазинов по продаже консолей, фильмов и дисков с видеоиграми. Её акции падали на протяжении последних шести лет. Убытки нарастали на фоне развития Amazon и других онлайн-ритейлеров. Для хедж-фондов это был хороший и безопасный метод извлечения прибыли. По данным FactSet, до последних двух недель GameStop являлся лидером в ставках на падение на американском фондовом рынке.

Игроки всё чаще загружают полноценные игры, а не покупают физические носители. GameStop просто не участвует в этом, объясняли аналитики.

Всё это было до троллей с Reddit.

Медленный рост акций GameStopстартовалс публикации в конце ноября пользователя u/Ronoron, участника сообщества Wall Street Bets. Он обвинил кучку упрямых бумеров из хедж-фонда Melvin Capital в ставках на короткие позиции против акций GameStop. Они поставили $200 млн, которые с тех пор, по мере постепенного падения акций, превратились в $500 млн.

Пользователи Reddit возмутились из-за того, что хедж-фонды топят GameStop, как до этого топили Nintendo и другие компании, связанные с видеоиграми.Юзеры решилиначать скупать акции игровой компании, чтобы забрать деньги у этих богатых жадных менеджеров хедж-фондов. По словам создателя сабреддита Джейма Рогозински, WallStreetBets рассматривает торговлю акциями как видеоигру. И они решили сыграть.

11 января в совет директоров GameStopпришелсоучредитель компании Райан Коэн (которому принадлежит около 13% акций компании).Он как раз настаивал на развитии направления онлайн-продаж, что некоторые восприняли как позитивный сигнал. Благодаря активности Reddit и новостям о Коэне за последующие пять дней акции подскочили на 110%.

За один день 22 января, когда стоимость бумаг выросли на 51%, потери хедж-фондов составили $1,6 млрд.

На пике 25 января стоимость одной акции уже превышала $144.Объём торгов составил 175 млн акций это почти в 6 раз больше, чем средний за месяц объём (29,8 млн бумаг).

Но всё это были цветочки. А ягодки начались, когда к битве присоединился Илон Маск.

Эффект Маска

Вторник для GameStop начался очень хорошо: глава фонда Social Capital затвитил, что он купил опционы компании, ставя на то, что акции пойдут ещё выше.

Его ставка оправдалась уже через несколько часов, когда в поддержку мема выступил Илон Маск. Во вторник он дал у себя в Твиттере дал ссылку на сабреддит, ответственный за хайп, и написал "Gamestonk!!". Акции компании тут же поднялись ещё на 90%. А число подписчиков сабреддита повысилось с 2,5 млн до почти 4 млн.

До этого в тот же день "эффект Маска" почувствовала на себе компания, продающая товары для животных. Утром вторника он запостил о шерстяной шапке ручной вязки, которую он купил для своей собаки на Etsy. Это привело к росту акций компании на 8%. А в прошлом году он к своему сожалению написал у себя в Твиттере, что, по его мнению, стоимость акций Tesla слишком завышена, что сразу же привело к падению бумаг более чем на 10%.

Что сейчас

Инвестиционные компании за последние недели потеряли миллиарды долларов, а капитализация GameStop выросла до рекордных $24 млрд.

За два месяца, с поста u/Ronoron 30 ноября, акции сети игровых магазинов GameStop подорожали на 1540%.

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

Хедж-фонд Melvin был вынужден срочно закрыть свою позицию против GameStop. В него будут срочно доинвестировать $2 млрд, чтобы стабилизировать ситуацию. По подсчетам тех же торжествующих пользователей на Реддите, один этот хедж-фонд за последнюю неделю потерял минимум $4 млрд. И должен был обанкротиться при цене акции $175.

Сейчас одна акция компании стоит уже $350. Полгода назад она стоила $4.

Пользователи, которые решили поучаствовать в спасении компании и наказании воротил с Wall Street, озолотились. Некоторые уже стали миллионерами. Один из самых успешных u/DeepFuckingValue, получивший сейчас (по состоянию на 28 января) $48 млн при инвестиции в $53 000. Правда, свои акции он купил ещё в 2020-м, ради мема (#GME YOLO!). И он такой далеко не один.

Мне вот интересно: когда этот эффект прекратится? Какая компания может стать следующей? И что ещё сделает интернет ради мема?

Подробнее..

Как Ревущий Котёнок с Reddit заработал 28.500 на акциях GameStop объясняю простым языком

29.01.2021 12:17:38 | Автор: admin

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

Что произошло: Roaring Kitty атакует!

GameStop это международная сеть магазинов видеоигр, которая переживает далеко не лучшие времена. Низкая прибыльность и непонятные дальнейшие перспективы (кто вообще будет ходить в магазин за тем, что можно просто качнуть из Steam?) привели к тому, что акции компании упали с $55 в 2013 до $4 к середине 2020 года.

Несколько крупных хедж-фондов были убеждены, что падение котировок акций GameStop продолжится: как говорят профессионалы, они зашортили эти акции на крупную сумму. Однако, в январе 2021 года акции внезапно резко пошли вверх особенно в течение 26-27 января, когда котировки достигли $360 (рост в 20 раз по сравнению с ценами на 1 января!).

Оказалось, что за внезапным взлётом акций GameStop стоят скоординированные действия диванных инвесторов из Reddit-сообществаr/WallStreetBets. Причём возглавил атаку на фондовый рынок анонимный финансовый гуру под ником Roaring Kitty (Ревущий Котёнок), который раздаёт инвестиционные советы более чем 50 тысячам своих фолловеров на YouTube.

В итоге ставка Roaring Kitty на рост акций GameStop помогла ему превратить $56.000 в $16.000.000 (фантастическая прибыль в размере более чем 28.500%!), а хедж-фонды с умными дядьками в дорогих костюмах потеряли миллиарды долларов (что почти привело к банкротству одного из них).

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

Без паники сейчас мы на максимально простых примерах разберёмся с ответами на эти вопросы.

Ликбез: как работает рынок

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

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

Но если Фёдор думает, что картошка на самом деле подмороженная и её цена в будущем упадёт (например, до 60) то чтобы превратить эту идею в деньги, ему придётся придумать что-то поинтереснее. Например, он может занять у кого-нибудь мешок картошки с обещанием вернуть через месяц и сразу же продать его по текущей цене за 100. И если через месяц цена действительно упадёт до 60, то он сможет обратно купить с рынка картошку по этой цене, вернуть её согласно уговору, а разница в размере 40 станет его прибылью (ну, за вычетом оговоренного процента по займу, конечно). Вся эта операция и называется встать в шорт, или зашортить.

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

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

Чтобы не попасть в такую неприятную ситуацию, Борис говорит Фёдору: Братиш, давай так я тебе мешок картошки ссужу на время, и даже помогу продать. Но деньги от продажи давай тоже у меня полежат на всякий случай. И ещё давай ты мне сверх этого из своих хотя бы 20 на хранение отдашь а то времена нынче турбулентные, всякое бывает! Теперь Борису гораздо спокойнее с денежным обеспечением сделки вероятность того, что он окажется крайним, сильно снижается: имея на руках 120, при текущей цене в 100 можно быть уверенным, что в случае роста цен можно будет успеть откупить картофель для закрытия шорт-позиции.

Маржин колл надо, Федя, надо!

Теперь давайте представим, что будет, если на следующий день картофельные котировки пойдут не вниз (как того хотелось бы Фёдору), а вверх и достигнут 115. В этот момент Борис-брокер начнёт в панике звонить Фёдору и, периодически срываясь на жаркий мат, кричать: Федя, срочно неси бабло! Если сейчас же ещё 15 не принесёшь то я все твои деньги потрачу на то, чтобы купить мешок картошки и закрыть твой шорт!

Эта ситуация называется маржин колл (margin call) брокер просит довнести обеспечение под угрозой ликвидации позиции. Пока текущая рыночная цена (115) не превышает общей суммы обеспечения (120), брокер может в любой момент откупить картошку обратно и ничего не потерять (все убытки лягут на Фёдора он принёс Борису своих денег 20, а обратно получит всего 5, то есть потеряет 75% своих вложений).

Никакие увещевания Фёдора на тему да это всё временно, картошка мороженная на самом деле, через неделю цена будет не больше 60! Бориса-брокера волновать не будут своими деньгами он рисковать ни за что не захочет, и при любом намёке на недостаточность обеспечения от Фёдора, быстро закроет его шорт (пусть даже это будет означать потерю всех денег для Фёдора).

Шорт сквиз на овощебазе

Мы уже вплотную подбираемся к тому, что же произошло с акциями GameStop. Но сначала нам нужно разобраться с так называемым коротким сжатием (short squeeze).

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

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

Потом вдруг возникает какая-нибудь неожиданная новость: Британские учёные доказали, что мороженный картофель защищает от ковида! Ба-бах, цены на картошку сразу подскакивают с 100 до 130 брокеры мгновенно предъявляют маржин коллы по всем сделкам шорт. Естественно, деньги на довнесение обеспечения есть не у всех; так что большая часть шорт-позиций идёт под ликвидацию.

И тут начинается самое весёлое: по рынку бегает огромное число Фёдоров с квадратными глазами, которые пытаются купить картофеля, чтобы закрыть свои шорты. А его на всех не хватает! Хуже того: продавцы, видя такой ажиотаж, думают: Ну, уж если всем так нужен мой анти-ковидный картофан, то я пожалуй уже не за 130, а за 150 буду предлагать! Фёдоры в шоке, Борис одной рукой пытается накапать себе валидолу, другой отправляет заявки на ликвидацию ещё большего числа шорт-позиций. Веселуха!

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

Как разогнать цену: гамма сквиз

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

Эту ситуацию заметили ребята из r/WallStreetBets во главе с нашим героем Roaring Kitty и правильно её просчитали: если обеспечить должный первоначальный импульс, то можно спровоцировать short squeeze и отправить стоимость акций в космос (как говорят на форумах to the moon!).

Остаётся вопрос: как устроить шорт сквиз? Как придать акциям первоначальное ускорение вверх? Самым простым способом мог бы быть обычный топорный подход: начать массово скупать акции GameStop, по любым ценам. Массированный приток покупателей на рынок заставит цены поползти вверх, приближая опасность губительных для шорт-селлеров маржин коллов. Но у этого способа есть недостаток он требует очень большого капитала, которого у множества мелких частных инвесторов нет. Поэтому вместо скупки самих акций, парни из r/WallStreetBets стали покупать опционы на покупку акций.

В наших картофельных терминах call-опционы выглядят так: приходишь к Борису-брокеру и договариваешься с ним, что в течение месяца у тебя есть право купить у него мешок картошки за 150. За это право ты ему платишь сейчас 10. Борис думает: Сейчас цена картошки всего 100, вряд ли она вырастет на 50% как хорошо, что этот дурачок готов отдать за это бесполезное право целых 10! Вы думаете: Если вдруг цена скакнёт аж до 200, то я смогу купить акции у Бориса по опциону за 150 и заработать целых 50 при первоначальных вложениях всего 10. To the moon!1

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

Теперь представьте рынок, где огромное число инвесторов купили у Бориса-брокера call-опционов на акции GameStop. Пока текущая цена далека от цены исполнения опциона, Борис спокоен: никто не захочет использовать право купить бумагу по 150, чтобы продать её, например, по 110. Но как только текущая цена пересекает заветную точку исполнения в 150, опцион превращается в очень ценную штуку а Борис начинает серьёзно нервничать. Ведь потенциально безграничная прибыль держателя опциона является потенциально безграничным убытком Бориса!

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

Если очень (очень) сильно упрощать, то такая ситуация на рынке называется гамма сквизом (gamma squeeze). Продавцы опционов думали, что их риск невелик; а когда цены на акции поползли вверх и замаячили перспективы гигантских убытков поспешили подстраховаться и стали эти акции скупать по тем ценам, по которым дают сейчас. Естественно, массовая скупка акций приводит к ещё большему росту котировок. Возникший гамма сквиз вызывает шорт сквиз, все эти тенденции влияют и усиливают друг друга, и в конце концов вуаля, акции растут в 20 раз!

Что в итоге

Ситуация ещё далека от завершения, но на текущий момент промежуточные результаты такие:

  • Крупный хедж-фонд Melvin Capital (более $12 млрд), который больше всех шортил акции GameStop, упал на 30% от банкротства его спасло только экстренное вливание внешнего капитала в размере почти $3 млрд. По заявлениям, на текущий момент все его шорт-позиции закрыты.

  • Дерзкие ребята с r/WallStreetBet хвастаются прибылями во многие тысячи процентов. Впрочем, пока эти позиции не закрыты это только так называемая бумажная прибыль. Все одновременно текущие держатели акций и опционов на GameStop продать на пике и зафиксировать прибыль не смогут как только они начнут это делать массово, цена спикирует и вся эта прибыль может так же легко испариться.

  • Среди рыночных аналитиков нет практически никого, кто бы всерьёз верил в то, что справедливая стоимость акций GameStop близка к текущим уровням (она продолжает бешено колебаться в диапазоне от $200 и выше).

  • Крупные брокеры Robinhood и Interactive Brokers ввели ряд ограничений на торговлю акциями GameStop, а также некоторых других компаний, которые обсуждаются на r/WallStreetBets. Потому что манипулировать рынками дело серьёзных дядь в костюмах, а не каких-то мутных ютуберов и чуваков с форума!

  • По состоянию на 28 января, акции GameStop всё ещё зашортены в совокупности на 139% (больше, чем объём бумаг в обращении) а это значит, что предпосылки для очередного шорт сквиза сохраняются.

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

Если статья показалась вам интересной, то буду благодарен за подписку на мойТГ-канал RationalAnswer, где я пытаюсь найти разумные подходы к личным финансам и инвестициям. В частности, всё самое важное, что нужно знать про инвестирование, попробовал ужать в 40 минут в этой лекцииЛичные финансы для разумного человека.

P. S. Личность Roaring Kittyнаконец раскрыли. Его зовут Кит Гилл, ему 34, у него вроде как счастливая семья с маленьким сыном, и он (внезапно!) финансовый советник. Теперь главный вопрос у всех будет ли SEC предъявлять обвинения в манипуляции рынком, и насколько велика вероятность, что Котёнок присядет.

Подробнее..

Перевод Почему я по-прежнему пользуюсь RSS

08.02.2021 20:16:10 | Автор: admin


Я твёрдо верю, что Интернет и его философия максимально проявились именно в RSS.

RSS или Really Simple Syndication является (или был в прошлом, в зависимости от вашей точки зрения) средством, которое объединяет в один канал практически все онлайн-ресурсы. Вы заходите на сайт, если он вам нравится, то добавляете его RSS в свой любимый ридер и с этого момента мгновенно получаете уведомления о любом новом контенте. Вот так просто.

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

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

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

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

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

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

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

  • Reddit по-прежнему поддерживает RSS, достаточно добавить /.rss в конец заданного URL.
  • GitHub позволяет добавить фид активности аккаунтов/организаций, за которыми вы следите, если нажать на значок фида в нижней части страницы вашего аккаунта.

    В коде страницы с коммитами любого проекта есть ссылка на фид такого вида:

    <link href="http://personeltest.ru/aways/github.com/cloudera/flume/commits/master.atom" rel="alternate" title="Recent Commits to flume:master" type="application/atom+xml">
    

  • На YouTube тоже есть поддержка RSS: достаточно вставить ID канала (серию цифр и символов из URL на главной странице канала) в следующий адрес:

    www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID
    

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

Возможно, его золотой век и закончился, но RSS ещё чувствует себя вполне бодрячком при наличии таких сервисов, как Feedly и Newsboat (рекомендую), а также множеством мобильных приложений на любой платформе, позволяющих наслаждаться Интернетом в его лучшем виде.
Подробнее..

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

02.05.2021 22:08:33 | Автор: admin

Анализируем релизы Reddit, Discord и Telegram их команды буквально на днях предложили свой взгляд на интерфейсы для голосового общения. Главный фактор, подстегнувший соцсети к вводу такого функционала, это фантастическая концентрация внимания аудитории и инвесторов на проекте Clubhouse. Как вы уже знаете, он выстрелил в прошлом году, а в апреле 2021-го его капитализацию оценили в четыре миллиарда долларов. Разбираемся, за тем ли зайцем погнались крупнейшие социальные платформы, и как идет этот процесс.

Фотография: Kristina Litvjak. Источник: Unsplash.comФотография: Kristina Litvjak. Источник: Unsplash.com

Дом для Reddit

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

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

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

Фотография: Steven Weeks. Источник: Unsplash.comФотография: Steven Weeks. Источник: Unsplash.com

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

Перестройка в Discord и Telegram

Даже сервисы, казалось бы, не требовавшие доработки, решили подвергнуть локальному переформатированию в свете хайпа вокруг Clubhouse. Чуть более месяца назад Discord представили так называемые Stage Channels каналы, доступные для тематических серверов [отличаются от обычных Discord-комнат по типу и задуманы для сообществ]. Они очень похожи на аудиочаты в Reddit и комнаты в Clubhouse: здесь у модераторов есть возможность назначить спикеров, управлять их микрофонами, а у аудитории присоединяться к прослушиванию бесед и поднимать руку в надежде, что вопрос или реплику дадут произнести в эфире.

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

Фотография: Dan-Cristian Pdure. Источник: Unsplash.comФотография: Dan-Cristian Pdure. Источник: Unsplash.com

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

Глухая стена

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

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


Что еще у нас есть в нашем Мире Hi-Fi:


У нас на Хабре: парочка доступных бандлов с устройствами для аудиозаписи.


Подробнее..

Реддит собирается платить своим удаленным сотрудникам так, будто они работают в Нью-Йорке или Сан-Франциско

29.10.2020 18:20:36 | Автор: admin

Даже сейчас, через 8 месяцев после начала пандемии Covid-19, мы всё еще думаем над тем, как лучше организовать удаленную работу. Каждая компания решает этот вопрос по-разному. Все расходятся даже в вопросах оплаты. Реддит, популярный социальный новостной сайт с 400 сотрудниками и оценкой $3 млрд, выдвинул довольно интересную парадигму. В своем блоге во вторник они опубликовали пост о переходе на постоянную удаленку, и сообщили, как это будет работать в их случае.

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

Мы хотим, чтобы коллектив Reddit был таким же разнообразным, как и его экосистема сообществ и пользователей.

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

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

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

Главный офис Реддита в Сан-ФранцискоГлавный офис Реддита в Сан-Франциско

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

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

По мнению руководителей Реддита, у такой системы есть три плюса:

  1. Возможность привлечь лучший талант (поскольку отсутствует необходимость для них переезжать к локации компании)

  2. Возможность повысить вовлеченность и продуктивность сотрудников

  3. Более эффективное управление существующим офисным пространством, способствующее сотрудничеству и взаимодействию.

До этого крупные IT-компании, вроде Google, Twitter, Facebook и других, уже предлагали своим сотрудникам работать оттуда, откуда они хотят. Но почти все делают намёки, что оплата будет зависеть от региона, в котором собирается жить сотрудник. Указать другой город или штат не выйдет: всё будет видно по тому, где происходит оплата налогов. А если человек врёт еще и об этом тут к нему обратится налоговая служба, IRS США, и можно на много лет улететь за решетку.

Недавно так прославилась калифорнийская компания VMware, принадлежащая Dell. Она предложила каждому удаленному сотруднику, решившему сбежать из дорогого Сан-Франциско, резкое сопращение зарплаты. Если они переедут в Денвер, получат минус 18%. А если в Лос-Анджелес или Сан-Диего будет минус 8%. В итоге релокация для людей становится финансово невыгодной. Всех проблем с переездом и обустройством на новом месте она не стоит. Более того: чем выше зарплата (то есть, чем более важный и ценный сотрудник) тем менее выгодно становится переезжать.

В мае СЕО Facebook Марк Цукерберг тоже объявил о перманентной удалёнке. А затем обрадовал сотрудников, объяснив, что они должны будут сообщать своим боссам, куда переезжают. По словам Цукерберга, у тех, кто отправляется в более дешевые города, зарплата будет скорректирована в соответствии с новыми условиями их проживания. Он также добавил, что Людей, которые не будут с нами честны, ждут серьезные последствия

Пока что тех компаний, которые идут по пути Цукерберга, в Кремниевой долине больше, чем тех, кто готов последовать за Reddit.

Подробнее..

В Reddit через PayPal и Alibaba без релокации и смс

20.01.2021 20:22:57 | Автор: admin

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

Мы нашли человека, который построил впечатляющую карьеру в IT, принимая нетипичные решения. Он уходил от инженерных задач в управленческие, его карьеру не назвать ни вертикальной, ни горизонтальной. Backend Engineering Manager в Reddit Максим Алексеев поделился опытом работы в PayPal и Alibaba.

За 17 лет в IT Макс побывал тимлидом и техлидом, консультировал компании Кремниевой долины в области распределенных кешей и дата-гридов, отвечал за бэкенд, DWH, ML и руководил стартапом SCORR.

Максим рассказал про особенности трудоустройства в американские tech-гиганты и почему он отказывался от релокейта в США. И конечно, мы расспросили, как он набирает специалистов в свою команду в Reddit. Послушать вебинар и посмотреть на Максима можно в нашем видео. Ниже обзор для тех, кто предпочитает читать.

Определяющее решение настарте. Grid Dynamics

Максим начинал инженером: кодил наJava, Scala, Python, затем Kotlin. В2011 собеседовался сразу вдве компании: вхорошо оплачиваемый системный интегратор ивмосковский офис Grid Dynamics. Предложение Grid Dynamics было вдва раза менее денежное, нозадачи итехнологии намного интереснее. Максим выбрал задачи инепрогадал. Grid Dynamics работали сновыми технологиями, которые позже становились мейнстримом. Было много проектов наоптимизацию распределенных систем уклиентов под еще больший трафик инагрузки, нередко использовались публичные иприватные облака. Позже такой набор задач исопутствующих технологий стали именовать highload. Так выбор впользу меньшего посумме оффера оказался более удачным.

Grid Dynamics лидер вобласти технического консалтинга. Поэтому всилу специфики работы Максиму приходилось ездить вСША. Самая короткая подлительности командировка вСанта-Монику заняла пять дней, асамая длинная полгода вкампусе PayPal вСан-Хосе.

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

Бодишоп: хорошо или плохо?

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

  • появляется возможность переехать вдругую страну;

  • это отличная практика иностранного языка;

  • можно набираться разнопланового технического опыта;

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

  • вфирме хорошо налажены бизнес-процессы.

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

Поэтому лучше быстро набраться опыта иследующим шагом выбрать продуктовую компанию. Здесь плюсы очевидны:

  • договор заключается напрямую скомпанией, минуя третье лицо;

  • всегда есть идеология продукта;

  • мотивацию сотрудников подогревают существенными бонусами ивознаграждениями.

Многие русские коллеги Максима поGrid Dynamics успешно переехали вСША. Максим тоже получил предложения оработе вКремниевой долине, нотогда отних отказался.

Стоит ли соглашаться на переезд любой ценой?

В2012 Grid Dynamics закрывали офис вМоскве ипредложили два варианта релокации: впитерский или американский офисы. Чуть раньше Максиму поступило заманчивое предложение напрямую отPayPal. Мечта разработчика сбылась? Возможно. Ноонпризадумался ивыбрал другой путь.

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

Кампусы IT-компаний оборудованы навысшем уровне, работать вних комфортно икруто, номалоэтажная жизнь оказалась слишком скучной после мегаполиса. Любимым развлечением там были поездки наприроду, вэтом смысле Америка бесспорно великолепна. Путешествие попарку Йосемити запомнилось Максиму навсю жизнь. ВСША стоит поехать как минимум, чтобы посетить Редвуд иЙеллоустоун. Новсамих апарт-комплексах Долины ему было нечем заняться: нехватало ощущения хоть какой-то городской жизни.

Жить вСан-Франциско былобы интереснее, ноэтот вариант проигрывал сфинансовой точки зрения. Калифорния один изсамых дорогих штатов вСША. Поданным сайтаGobankingrates.com, еежители тратят нажизнь всреднем на35% больше, чем жители других штатов.

ПоданнымNumbeo.com, стоимость жизни вСан-Франциско такая:

  • Ориентировочные ежемесячные расходы семьи изчетырех человек без арендной платы 323 372,77 (4366,36$).

  • Ориентировочные ежемесячные расходы наодного человека без арендной платы 89 077,47 (1202,77$) .

  • Индекс стоимости жизнивСан-Франциско на126,98% выше, чем вМоскве.

  • Аренда вСан-Франциско всреднем на314,63% выше, чем вМоскве.

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

Актуальные технологии иинтересные задачи ему казались важнее финансовой стабильности имеждународной карьеры разработчика.

Изинженеров вдиректора. Плюсы работы встартапах

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

Изначально Максим собеседовался надолжность CTO, нонаодном изэтапов интервью сучредителями ему предложили еще исменить нынешнего CEO. Отсутствие подобного опыта никого несмутило, ис2013 года Максим стал совмещать сразу две должности. Так онполучил первый опыт именно как менеджер. Пришлось освоиться сKPI, представлением своей компании ипродукта, практикой продаж иразвить способность видеть бизнес-составляющую. Этот опыт очень пригодился позднее.

Проект был чертовски интересным истехнической точки зрения. Посути, это был сбор информации изоткрытых источников (соцсети, объявления), очистка этой информации ипостроение объединенных профилей интернет-пользователей. Информация использовалась для просчета рисков ипрогнозов для МОФ, страховых, банков (для выдачи кредитов, антифрода, форензик расследований ит.д.) Максим сам написал краулер для одной изсоцсетей, нобольше выступал вроли менеджера. Воснове стартапа была работа сbig data имашинным обучением.

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

Изстартапа вкомпанию-гигант. Опыт работы вAlibaba Group

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

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

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

Вначале работы там Максим много кодил сам наJava иKotlin. Набирал команду, которая создала верхнюю часть бэкенда российского Tmall наAliExpress ифронтенд поиска наJava для московской команды. Работа накитайского гиганта предполагала командировки вштаб-квартире вХанчжоу. Атмосфера похожа наКремниевую долину, нонауровне ощущений было нетак комфортно, как вСША. Максиму нехватило американской мультикультурности иевропейской еды :)

Через год-полтора появились другие команды, иуМаксима стало больше менеджерской работы. Программирование ушло навторой план. Появлялись задачи типа написать ad-hoc запрос наSQL, чтобы проверить гипотезу наработоспособность. Рабочий процесс налажен, стабильная карьера навзлете время наслаждаться успехом. Так решилибы многие, нонеМаксим. Внезапно занесколько дней онподнял планку нановый уровень иизменил всё.

Стать первым EMReddit, нанятым неизШтатов

Здесь тоже все решил нетворкинг ирекомендации. Летом 2020 года Reddit ещё неразмещал вакансий, нобывший коллега Максима изGrid Dynamics порекомендовал имего кандидатуру. Интервью состоялось пятого июня, ипредложение оказалось настолько интересным, что через 10дней Максим Алексеев стал первым EMReddit, нанятым неизШтатов.

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

Как попасть вReddit

Что учесть врезюме

Обязательно, обязательно создайте профиль наLinkedIn. ВСША это основной инструмент HR. Они могут нечитать резюме, нопрофиль посмотрят точно. Такие компании, как Facebook, Google иReddit, восновном ищут именно черезLinkedInили повнутренней реферальной программе.

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

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

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

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

<рекламная пауза>

Вg-mateмного вакансий с ремоутом: можно работать из России или другой страны мира назарубежную компанию. Например, есть вакансия Software Engineer (Backend) вReddit.

</рекламная пауза>

Нужныли сертификаты

Особой роли наличие сертификатов неиграет. Насобеседовании будут смотреть нареальные знания изадавать вопросы поним. Но, возможно, дипломы отпризнанных центров сертификации (pythoninstitute.org,education.oracle.com) будут небольшим плюсом. Сертификатыcoursera, edx.org, udacity.com врезюме наLinkedInтоже увеличат шансы. Самое важное уних должна быть актуальная дата.

Как работать: удаленка или офис

Сейчас Reddit активно набирает бэкенд-, фронтенд- имобильных разработчиков. В2021 планируется развитие внутреннегоQA, ноэти вакансии появятся нераньше января. Обычно Reddit предлагает два варианта работы. Первый удаленно, как правило поконтракту. Или full-time employee (FTE) полный рабочий день вофисе или удаленно напостоянной основе вШтатах, Канаде, Великобритании, Ирландии. Можно сначала пойти наконтракт, апотом решить, хотители выпереезжать водну изпредложенных стран.

Вэтом году коронавирус внес поправки вэту схему: Reddit объявил переход навечную удаленку, втом числе идля FTE. Новшество поначалу вышло боком для тех, кто решил перебраться изСан-Франциско вменее затратный город или другую страну. Внекоторых компаниях Долины переехавшим сотрудникам понизили зарплату, пересчитав под зарплатные расценки нового города. Тоестьте, кто получал хорошую зарплату померкам Сан-Франциско, после переезда стали получать сопоставимо хорошую зарплату, например, для Остина.

Оценив ситуацию, Reddit ввел свою политику, отказавшись отпринципа per city. Теперь зарплатную сетку самого дорогого города встране (для Америки это Сан-Франциско иНью-Йорк) Reddit расширил навсю территорию США. Сотрудник будет получать доход как вСан-Франциско, работая изМайами или сфермы вТехасе. Аналогично это работает ивдругих странах присутствия Reddit.

Этапы собеседования

ВReddit проходит четыре отборочных этапа:

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

  2. Backend интервью. Здесь проверят базовые знания (алгоритмы, concurrency, базы данных, web, software design). Соотношение вашего опыта ирезультатов. Причем вопросы будут зависеть отдолжности, накоторую претендует кандидат. Кпримеру, для джуниоров имиддлов будет важно, где учился истажировался, пригодятся результаты насайтах, где решают задачи онлайн:HackerRank,Codility. Авот для синьоров будет важно, вкаких проектах принимал участие ивкакой роли.

  3. System design интервью. Наэтом этапе нужно спроектировать систему. Здесь важно уточнять требования, обоснованно объяснять, почему спроектировал именно так, ипоразмышлять натему, что делать дальше: как деплоить, что икак мониторить, ит.д.

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

  5. * Интервью сменеджером проекта итимлидом. Вфинале собеседований проверяются софт скиллы исмотрят, подходитли человек вкоманду. Здесьже учитывается, куда можно поставить кандидата наусловной шкале higher potential lower potential. Насколько активно человек стремится кличному профессиональному росту. Бывали случаи, когда кандидатам отказывали наэтом этапе, поэтому важно подготовиться ксобеседованию пософт скиллам.

Особенности устройства наработу вСША

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

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

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

Рекомендации Максима: что почитать иизучить

  1. Grady Booch.Object-Oriented Analysis and Design with Applications.

  2. Андрей Робачевский.Операционная система UNIX

  3. Сайты поSystem Design:infoq.com,highscalability.com,blog.acolyer.org

  4. Технологии, которые пригодятся влюбойIT компании: Python, SQL, технологии Big Data, Data Lake, Spark Streaming, Apache Flink.

Крутые работодатели интересные задачи. Зовите /human в нашем боте: @g_jobbot.

Подробнее..

Категории

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

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru