Pull to refresh
-2
0
Павел Хориков @Horik_off

Пользователь

Send message

Как я проработала 3 месяца в Я.Маркете и уволилась

Reading time6 min
Views301K

Первая попытка


Все началось с того, что я люблю ходить по конференциям и частенько хожу на них в Яндекс, Mail.ru и другие крупные компании. Однажды мне написал HR из Яндекса и попросила сделать тестовое на стажера фронтенд-разработчика.

Я его сделала, вот оно. По условию оно должно было работать на айфонах и андроидах, поэтому я проверила его в Browser Stack и дописала пару префиксов и css-стилей.

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

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

На интервью я не смогла решить алгоритмические задачки, не знала внутренности JS и меня сбрили.

Это задело мою самооценку и весь следующий год параллельно с работой я учила JS на глубоком уровне и решала задачки на codewars. Здесь можно оценить мой прогресс.
Читать дальше →
Total votes 811: ↑715 and ↓96+619
Comments1016

Будущее JavaScript: классы

Reading time15 min
Views8.2K


Доброго времени суток, друзья!

Сегодня я хочу поговорить с вами о трех предложениях, относящихся к JavaScript-классам, которые находятся на 3 стадии рассмотрения:


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

Вспомним, что такое классы в JavaScript.
Читать дальше →
Total votes 5: ↑2 and ↓3-1
Comments0

Разработка формы на React. Принципы KISS, YAGNI, DRY на практике

Reading time12 min
Views19K
Здавствуйте, в этом туториале мы рассмотрим как разработать очень простую, но контролируемую форму в React, сфокусировавшись на качестве кода.

При разработке нашей формы мы будем следовать принципам «KISS», «YAGNI», «DRY». Для успешного прохождения данного туториала вам не нужно знать этих принципов, я буду объяснять их по ходу дела. Однако, я полагаю, что вы хорошо владеете современным javascript и умеете мыслить на React.
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments34

Пишем свой dependency free WebSocket сервер на Node.js

Reading time11 min
Views12K


Node.js — это популярный инструмент для построения клиент-серверных приложений. При правильном использовании, Node.js способен обрабатывать большое количество сетевых запросов, используя всего один поток. Несомненно, сетевой ввод — вывод является одной из сильнейших сторон этой платформы. Казалось бы, что используя Node.js для написания серверного кода приложения, активно использующего различные сетевые протоколы, разработчики должны знать, как эти протоколы работают, но зачастую это не так. Виной тому еще одна сильная сторона Node.js, это его пакетный менеджер NPM, в котором можно найти готовое решение практически под любую задачу. Используя готовые пакеты, мы упрощаем себе жизнь, переиспользуем код (и это правильно), но в то же время скрываем от себя, за ширмой библиотек, суть происходящих процессов. В этой статье мы постараемся разобраться в протоколе WebSocket, реализуя часть спецификации, не используя внешних зависимостей. Добро пожаловать под кат.

Читать дальше →
Total votes 29: ↑29 and ↓0+29
Comments4

Как стать фронтенд-разработчиком? Пошаговый гид в мир фронтенда

Reading time14 min
Views219K


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

Содержание:

  1. Кто такой фронтендер и чем он занимается?
  2. С чего начать и что читать? Чек-лист обучения
  3. Какие трудности могут быть? Ошибки в начале пути
  4. Подготовка к собеседованию на Junior-разработчика

Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments22

Ошибки в JavaScript: исправляем, обрабатываем, чиним

Reading time8 min
Views13K
Всем привет! Вдохновленные успехом предыдущей статьи, которая была написана в преддверии запуска курса "Fullstack разработчик JavaScript", мы решили продолжить серию статей для новичков и всех тех, кто только начинает заниматься программированием на языке JavaScript. Cегодня мы поговорим об ошибках, которые случаются в JS, а также о том, как именно с ними бороться.



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

Неизвестный тимлид

Читать дальше →
Total votes 15: ↑9 and ↓6+3
Comments5

(Без)опасный онлайн-банкинг: исследование веб-ресурсов банков России и мира

Reading time11 min
Views14K

Мы решили повторить масштабную исследовательскую работу 2015 года и проанализировали безопасность веб-ресурсов ведущих банков мира. Онлайн-банкинг с тех пор стал не просто более распространённым, а даже повсеместным явлением. Действительно, это быстро и удобно, но насколько безопасно? Следуют ли банки best practices?



Как и в прошлый раз, в процессе исследования мы отправляли обычные HTTP- и DNS-запросы, не вмешиваясь в работу банков. То есть все данные собраны так, как это мог бы сделать обычный пользователь, посетив ресурс. Для анализа мы выбрали 200 российских и 400 зарубежных банков. Под катом выдержки из исследования. Полный текст можно найти на нашем сайте.

Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments6

Курс MIT «Безопасность компьютерных систем». Лекция 1: «Вступление: модели угроз», часть 1

Reading time15 min
Views139K

Массачусетский Технологический институт. Курс лекций #6.858. «Безопасность компьютерных систем». Николай Зельдович, Джеймс Микенс. 2014 год


Computer Systems Security — это курс о разработке и внедрении защищенных компьютерных систем. Лекции охватывают модели угроз, атаки, которые ставят под угрозу безопасность, и методы обеспечения безопасности на основе последних научных работ. Темы включают в себя безопасность операционной системы (ОС), возможности, управление потоками информации, языковую безопасность, сетевые протоколы, аппаратную защиту и безопасность в веб-приложениях.

Лекция 1: «Вступление: модели угроз» Часть 1 / Часть 2 / Часть 3
Total votes 23: ↑22 and ↓1+21
Comments10

Криптографические атаки: объяснение для смятённых умов

Reading time33 min
Views52K
При слове «криптография» некоторые вспоминают свой пароль WiFi, зелёный замочек рядом с адресом любимого сайта и то, как трудно залезть в чужую почту. Другие вспоминают череду уязвимостей последних лет с говорящими аббревиатурами (DROWN, FREAK, POODLE...), стильными логотипами и предупреждением срочно обновить браузер.

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

За последние годы коллекция криптографических атак превратилась в зоопарк кричащих логотипов, набитых формулами научных статей и породила общее мрачное ощущение, что всё сломано. Но на самом деле многие из атак основаны на нескольких общих принципах, а бесконечные страницы формул часто сводятся к простым для понимания идеям.
Читать дальше →
Total votes 103: ↑103 and ↓0+103
Comments22

Как работает JS: обзор движка, механизмов времени выполнения, стека вызовов

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

Анализ статистики GitHub показывает, что по показателям активных репозиториев и push-запросов, JavaScript находится на первом месте, да и в других категориях он показывает довольно высокие позиции.


Статистические сведения по JavaScript с GitHub

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

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

Как ни странно, существует множество разработчиков, которые регулярно пишут на JavaScript, но не знают, что происходит в его недрах. Пришло время это исправить: этот материал посвящён обзору JS-движка на примере V8, механизмов времени выполнения, и стека вызовов.
Читать дальше →
Total votes 41: ↑33 and ↓8+25
Comments29

Аудио через Bluetooth: максимально подробно о профилях, кодеках и устройствах

Reading time26 min
Views614K
Комикс XKCD про 14 конкурирующих стандартов: Надпись: СИТУАЦИЯ: есть 14 конкурирующих стандартов. Гик: 14?! Абсурд! Нам необходимо разработать один универсальный стандарт, на все случаи жизни. Спутница гика: Да! Надпись: Скоро: СИТУАЦИЯ: Есть 15 конкурирующих стандартов.

This article is also available in English

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

TL;DR:
  • SBC — нормальный кодек
  • У наушников есть свой эквалайзер и пост-процессинг на каждый кодек отдельно
  • aptX не настолько хорош, как о нём говорят рекламные анонсы
  • LDAC — маркетинговое фуфло
  • Качество звука в режиме разговора всё ещё низкое
  • В браузер можно встроить аудиоэнкодеры на C, скомпилировав в WebAssembly через emscripten, и они не будут особо тормозить.

Total votes 175: ↑171 and ↓4+167
Comments180

Тянем ролик с YouTube и раздаем по WebRTC в реалтайме

Reading time7 min
Views24K


Задача следующая. Провести совместный просмотр ролика с YouTube в реальном времени несколькими пользователями. Зрители должны получать видео одновременно, с минимальной задержкой.
Читать дальше →
Total votes 33: ↑31 and ↓2+29
Comments32

Взлом камер: векторы атак, инструменты поиска уязвимостей и защита от слежки

Reading time6 min
Views47K
image

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

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

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

Далее рассмотрим основные направления атак на системы видеонаблюдения.
Total votes 27: ↑25 and ↓2+23
Comments16

DevConf: как ВКонтакте шел к своей платформе для live-трансляций

Reading time6 min
Views3.6K
DevConf 2018 состоится 18 мая в Москве, в Digital October. А мы продолжаем публиковать доклады с прошлогодней конференции. На очереди доклад Алексея Акуловича из ВКонтакте, где он поведает о том, о чем внимательные читатели уже догадались по сабжу.


В 2015 году мы использовали стороннее решение. Мы встраивали(embed) его плеер на сайт как youtube и оно работало. Работало не идеально, но на тот момент оно нас устраивало по объему трансляций, который через него можно было пустить, а также по качеству и задержкам, которые оно давало. Но мы из него довольно быстро выросли.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments0

Сети для самых маленьких. Часть четырнадцатая. Путь пакета

Reading time38 min
Views94K
A forwarding entity always forwards packets in per-flow order to
zero, one or more of the forwarding entity’s own transmit interfaces
and never forwards a packet to the packet’s own receive interface.
Brian Petersen. Hardware Designed Network

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

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

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

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

Это ли не электрическая магия?

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


Кликабельно и увеличабельно.

Сегодня:


  1. Коротко о судьбе и пути пакета
  2. Плоскости (они же плейны): Forwarding/Data, Control, Management
  3. Кто как и зачем обрабатывает трафик
  4. Типы чипов: от CPU до ASIC'ов
  5. Аппаратная архитектура сетевого устройства
  6. Путешествие длиною в жизнь

Читать дальше →
Total votes 28: ↑28 and ↓0+28
Comments17

Сети для самых матёрых. Часть пятнадцатая. QoS

Reading time66 min
Views171K
СДСМ-15. Про QoS. Теперь с возможностью Pull Request'ов.

И вот мы дошли до темы QoS.

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

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

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

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

Читать дальше →
Total votes 72: ↑72 and ↓0+72
Comments24

Анонс! ACE Stream – P2P Multimedia Platform

Reading time12 min
Views110K
В ближайшее время на смену проекту "Torrent Stream" придет новый проект «ACE Stream».

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

Проект ACE Stream будет разделен на две части:

1. Продукты и решения для конечных пользователей

2. Продукты и решения для профессиональных участников мультимедийного рынка

Коротко о ACE Stream


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

Примечание: ACE Stream, использует в основе технологию P2P (peer-to-peer), разработанную на базе протокола BitTorrent, который признан самым эффективным протоколом для передачи/доставки «тяжелого контента».

ACE Stream, это намного больше, чем просто BitTorrent-клиент для обмена файлами через P2P –сети!


Основные направления специализации платформы: AVoD (Аудио и Видео по Запросу ); Live Stream ( «живое»/потоковое вещание ); Локализация зарубежного BitTorrent-трафика; Децентрализованные социальных сети; IOTT ( Interactive-Over-The-Top ) — Интерактивные сервисы поверх трансляций.

Платформа ACE Stream обеспечивает непревзойдённое аудиовизуальное качество онлайн трансляций/показов в сети Интернет и самую эффективную систему хранения и доставки видео и аудио контента!

Примечание: Пользователи ACE Stream смотрят в онлайне видео с аудиовизуальным уровнем качества, которое более чем в 10 раз превосходит уровень качества роликов на YouTube ( представленных в формате 1080p ) и во много раз превосходит показы/трансляции всех других существующих сервисов VoD и Live Stream, осуществляемые операторами услуг OTT ( Over The Top ), не использующих эффективную P2P технологию.

Кроме этого, ни один из стандартных сервисов Live Stream и ни один из операторов CDN, использующих unicast, не может осуществить/обеспечить прямую трансляцию с таким высоким уровнем качества и на такое количество зрителей, на которое может вещать обычный пользователь ACE Stream, со своего обычного персонального компьютера, при использовании домашнего интернет-канала! ( Никто из существующих операторов CDN не сможет обеспечить unicast трансляцию в формате Full HD, с битрейтом 10 -15 мбит/с, даже для 100 000 одновременных зрителей! )

Подробности


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


Далее
Total votes 34: ↑22 and ↓12+10
Comments110

Онлайн-конференции: стриминг vs вебинар

Reading time7 min
Views9.6K

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


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

Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments2

Транслируем видеопоток с IP-камеры с помощью WebRTC

Reading time9 min
Views258K
Решение задачи онлайн-вещания с IP-камеры, вообще говоря, не требует применения WebRTC. Камера сама является сервером, обладает IP-адресом и может быть подключена напрямую к маршрутизатору с целью раздачи видео-контента. Так зачем же применять технологию WebRTC?

image

Читать дальше →
Total votes 46: ↑46 and ↓0+46
Comments15

Онлайн вещание через Nginx-RTMP: несколько готовых рецептов

Reading time5 min
Views153K
Недавно я наткнулся на топик "Сервер онлайн-вещаний на базе nginx" о замечательном модуле Романа Арутюняна (@rarutyunyan) для nginx: nginx-rtmp-module. Модуль очень прост в настройке и позволяет на основе nginx создать сервер публикации видеозаписей и живого вещания.

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

Читать дальше →
Total votes 38: ↑34 and ↓4+30
Comments22
1
23 ...

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity