Pull to refresh
-7
Артем @cyber_uaread⁠-⁠only

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

Send message

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

Reading time7 min
Views21K
image

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

Но есть способ и получше. Используя случайных чисел и их генерирование иным образом, мы можем создавать захватывающий игровой процесс, создающий «идеальный» уровень сложности, не выбешивая при этом игроков. Но прежде чем мы перейдём к этому, давайте рассмотрим основы генераторов случайных чисел (или RNG).
Читать дальше →
Total votes 30: ↑27 and ↓3+24
Comments22

Как спрятать DNS-запросы от любопытных глаз провайдера

Reading time16 min
Views235K

Настройка 1.1.1.1 от Cloudflare и других DNS-сервисов по-прежнему требует навыков работы в командной строке



Шифрование трафика между вашим устройством и DNS-сервисом помешает посторонним лицам отслеживать трафик или подменить адрес

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

DNS — это телефонный справочник Сети, выдающий фактический сетевой адрес IP, связанный с хостингом и доменными именами сайтов и других интернет-служб. Например, он превращает arstechnica.com в 50.31.169.131. Ваш интернет-провайдер предлагает DNS в пакете услуг, но он также может журналировать DNS-трафик — по сути, записывать историю ваших действий в интернете.

«Открытые» DNS-сервисы позволяют обходить сервисы провайдеров ради конфиденциальности и безопасности, а кое в каких странах — уклоняться от фильтрации контента, слежки и цензуры. 1 апреля (не шутка) компания Cloudflare запустила свой новый, бесплатный и высокопроизводительный DNS-сервис, предназначенный для повышения конфиденциальности пользователей в интернете. Он также обещает полностью скрыть DNS-трафик от посторонних глаз, используя шифрование.
Читать дальше →
Total votes 37: ↑37 and ↓0+37
Comments49

Книга «Безопасность в PHP» (часть 3). Межсайтовый скриптинг (XSS)

Reading time17 min
Views33K


Книга «Безопасность в PHP» (часть 1)
Книга «Безопасность в PHP» (часть 2)


Межсайтовый скриптинг (XSS) — пожалуй, самый типичный вид уязвимостей, широко распространённых в веб-приложениях. По статистике, около 65 % сайтов в той или иной форме уязвимы для XSS-атак. Эти данные должны пугать вас так же, как пугают меня.

Читать дальше →
Total votes 38: ↑36 and ↓2+34
Comments48

N+6 полезных книг

Reading time4 min
Views46K


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

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

Коллаборация — Мортен Хансен
Это инструкция по совместной работе и взаимодействию между людьми в команде и командами. Она меня здорово успокоила рядом исследований, например, тем, что вообще-то не надо заниматься нетворкингом, если ты занимаешься делом. Не надо знать 200-400 человек, чтобы найти нужного — надо знать 10 человек, каждый из которых знает по 50-100. А это в разы проще и эффективнее. Нетворкинг для интроверта — это прекрасно.
Читать дальше →
Total votes 43: ↑41 and ↓2+39
Comments16

Анимации на GPU: делаем это правильно

Reading time20 min
Views55K

Думаю, все уже знают, что современные браузеры умеют рисовать некоторые части страницы на GPU. Особенно это заметно на анимациях. Например, анимация, сделанная с помощью CSS-свойства transform выглядит гораздо приятнее и плавнее, чем анимация, сделанная через top/left. Однако на вопрос «как правильно делать анимации на GPU?» обычно отвечают что-то вроде «используй transform: translateZ(0) или will-change: transform». Эти свойства уже стали чем-то вроде zoom: 1 для IE6 (если вы понимаете, о чём я ;) для подготовки слоя для анимации на GPU или композиции (compositing), как это предпочитают называть разработчики браузеров.


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

Total votes 78: ↑78 and ↓0+78
Comments26

Moscow JS 40 — отчёт, отзывы гостей и видеозаписи

Reading time2 min
Views5.6K

Всем привет! Мы не успели оглянуться, как закончились все оффлайн-места на Moscow JS 40, который прошёл в нашем офисе 1 марта. Записаться успели не все желающие. Хорошие новости: уже появились видео и презентации от докладчиков. Под катом — видеозаписи, презентации, ссылки на фотоотчёт и отзывы слушателей.


Участники встречи говорили про мотивацию и трудности создания сервиса скриншотов веб-страниц, обсуждали developer experience и flow, разбирались с AST-парсерами и проводили экскурс в компьютерную лингвистику.


Total votes 28: ↑27 and ↓1+26
Comments0

Attention! S in Ethereum stands for Security. Part 2. EVM features

Reading time8 min
Views6.1K


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

Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments4

Как вести переговоры с англоговорящими коллегами: инструкция

Reading time5 min
Views20K
Многие взрослые студенты начинают подтягивать свой английский в первую очередь для работы. Английский уже давно является языком международного бизнеса: где бы вы ни находились, с какими бы компаниями ни вели дела, чаще всего все переговоры и сделки по продаже ведутся на английском языке. Курсы бизнес-английского обычно знакомят вас с самой ходовой лексикой, например, названием должностей, структурой компаний и навыками бизнес-переписки. Но чаще всего вам придется вести переговоры, будь то переговоры по телефону или лично. С чего начать планирование переговоров и нужно ли их вообще планировать? Какая лексика потребуется в самом начале? Уместен ли small talk в бизнес-переговорах? Разбираемся с основами.


Читать дальше →
Total votes 29: ↑25 and ↓4+21
Comments16

Информационная безопасность банковских безналичных платежей. Часть 1 — Экономические основы

Reading time11 min
Views40K


О чем исследование
Ссылки на другие части исследования



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

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

Исследование получилось довольно обширным, поэтому публиковаться будет по частям. И начнем мы с первой части, которая расскажет о том, что такое безналичные платежи с экономической точки зрения.
Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments23

Технопорно с WebAssembly

Reading time13 min
Views9.9K

По просьбам трудящихся, пишу о внутреннем устройстве WebAssembly.


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


В итоге, наш технобордель выглядит так:



  • Интерпретатор
  • Интерфейс к хосту
  • Стек
  • Хранилище кода
  • Память
  • Таблица

Займёмся делом!

Читать дальше →
Total votes 37: ↑36 and ↓1+35
Comments11

Лучшие практики CI/CD с Kubernetes и GitLab (обзор и видео доклада)

Reading time5 min
Views46K


7 ноября на конференции HighLoad++ 2017, в секции «DevOps и эксплуатация» прозвучал доклад «Лучшие практики CI/CD с Kubernetes и GitLab». В нём мы делимся практическим опытом решения проблем, возникающих при построении эффективного процесса CI/CD на базе указанных Open Source-решений.

По традиции рады представить видео с докладом (около часа, гораздо информативнее статьи) и основную выжимку в текстовом виде.
Total votes 21: ↑21 and ↓0+21
Comments8

WebRTC: как два браузера договариваются о голосовых и видеозвонках

Reading time7 min
Views20K

Спойлер: никак. За них это делает разработчик.

Когда много лет назад начали убивать Flash, пострадали не только браузерные игры. Flash традиционно была сильна в голосовых и видеозвонках: прямой доступ к микрофону, камере, динамикам, возможность работать с UDP-пакетами. В HTML5 заменой стала технология WebRTC. Та самая, которая несколько месяцев назад наконец-то приземлилась в Safari и Edge. Теперь можно звонить с веб-страницы, открытой на iPhone, на другую веб-страницу, например, открытую в Firefox Quantum на линуксе.

Одна из «фишек» WebRTC, которой не было у Flash — это возможность P2P-соединений между браузерами. Но чтобы peer-to-peer работал, программисту придется помучиться. О том, как браузеры договариваются куда слать UDP-пакеты, и что при этом должен сделать разработчик — под катом.
Читать дальше →
Total votes 29: ↑28 and ↓1+27
Comments16

Что такое service mesh и почему он мне нужен [для облачного приложения с микросервисами]?

Reading time8 min
Views69K
Предисловие от переводчика: Эта неделя ознаменовалась выходом Linkerd 1.0, что является отличным поводом рассказать не только об этом продукте, но и о самой категории такого программного обеспечения — service mesh (дословно переводится как «сетка для сервисов» или «сервисная сетка»). Тем более, что авторы Linkerd как раз опубликовали соответствующую статью.

tl;dr: Service mesh — это выделенный слой инфраструктуры для обеспечения безопасного, быстрого и надёжного взаимодействия между сервисами. Если вы создаёте приложение для запуска в облаке (т.е. cloud native), вам нужен service mesh.

За прошедший год service mesh стал критически важным компонентом в облачном стеке. Компании с большим трафиком, такие как PayPal, Lyft, Ticketmaster и Credit Karma, уже добавили service mesh в свои приложения в production, а в январе Linkerd — Open Source-реализация service mesh для облачных приложений — стал официальным проектом фонда Cloud Native Computing Foundation этот же фонд недавно передали containerd и rkt, а ещё он известен как минимум по Kubernetes и Prometheus — прим. перев.). Но чем же является service mesh? И почему он стал внезапно необходим?


В этой статье я дам определение service mesh и прослежу его происхождение через изменения в архитектуре приложений, произошедшие за последнее десятилетие. Я отделю service mesh от связанных, но отличающихся концепций: шлюза API, edge proxy, корпоративной сервисной шины. Наконец, я опишу, где нужен service mesh, и что ожидать от адаптации этой концепции в мире cloud native.
Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments4

Как JVM аллоцирует объекты?

Reading time16 min
Views36K

Как JVM создает новые объекты? Что именно происходит, когда вы пишете new Object()?


На конференциях периодически рассказывают, что для аллокации объектов используются TLAB'ы (thread-local allocation buffer): области памяти, выделенные эксклюзивно каждому потоку, создание объектов в которых очень быстрое за счет отсутствия синхронизации.


Но как правильно подобрать размер TLAB'а? Что делать, если нужно выделить 10% от размера TLAB'а, а свободно только 9%? Может ли объект быть аллоцирован вне TLAB'а? Когда (если) обнуляется выделенная память?
Задавшись этими вопросами и не найдя всех ответов, я решил написать статью, чтобы исправить ситуацию.


Перед прочтением полезно вспомнить как работает какой-нибудь сборщик мусора (например, прочитав этот цикл статей).

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

Дюжина приемов в Linux, которые действительно сэкономят уйму времени

Reading time9 min
Views137K


Эта статья также есть на английском.

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

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

Под катом — дюжина приемов в командной строке — из личного опыта.
Читать дальше →
Total votes 128: ↑122 and ↓6+116
Comments169

Краткий курс машинного обучения или как создать нейронную сеть для решения скоринг задачи

Reading time28 min
Views217K
image

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

Если тебе интересно машинное обучение, то приглашаю в «Мишин Лернинг» — мой субъективный телеграм-канал об искусстве глубокого обучения, нейронных сетях и новостях из мира искусственного интеллекта.

Вопросы, которые разобраны в статье:

• Как собрать и подготовить данные для построения модели?
• Что такое нейронная сеть и как она устроена?
• Как написать свою нейронную сеть с нуля?
• Как правильно обучить нейронную сеть на имеющихся данных?
• Как интерпретировать модель и ее результаты?
• Как корректно оценить качество модели?
Поехали!
Total votes 51: ↑42 and ↓9+33
Comments43

React, встроенные функции и производительность

Reading time13 min
Views30K
Когда мне приходится рассказывать о React, или когда я даю первую лекцию учебного курса, показывая всякие интересные вещи, кто-нибудь непременно спросит: «Встроенные функции? Слышал, они медленные».



Этот вопрос появлялся далеко не всегда, но в последние несколько месяцев мне, в роли автора библиотеки и преподавателя, приходится отвечать на него чуть ли не каждый день, иногда — на лекциях, иногда — в твиттере. Честно говоря, я от этого уже устал. К сожалению, я не сразу сообразил, что лучше изложить всё в виде статьи, которая, надеюсь, окажется полезной для тех, кто задаётся вопросами производительности. Собственно говоря — перед вами плод моих трудов.
Читать дальше →
Total votes 24: ↑20 and ↓4+16
Comments23

Математические основы биткойн-блокчейна

Reading time5 min
Views61K
Сегодня биткойн продолжает набирать популярность, а индустрия разрабатывать все новые приложения для работы с криптовалютой. Одной из причин такой популярности является строгая математическая база, на которой строится биткойн.

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

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

Читать дальше →
Total votes 26: ↑22 and ↓4+18
Comments23

Пять простых шагов для понимания JSON Web Tokens (JWT)

Reading time5 min
Views672K

jwt


Представляю вам мой довольно вольный перевод статьи 5 Easy Steps to Understanding JSON Web Tokens (JWT). В этой статье будет рассказано о том, что из себя представляют JSON Web Tokens (JWT) и с чем их едят. То есть какую роль они играют в проверке подлинности пользователя и обеспечении безопасности данных приложения.

Читать дальше →
Total votes 28: ↑24 and ↓4+20
Comments60

Топливо для ИИ: подборка открытых датасетов для машинного обучения

Reading time6 min
Views81K


Связанные проекты сообщества Open Data (проект Linked Open Data Cloud). Многие датасеты на этой диаграмме могут включать в себя данные, защищенные авторским правом, и они не упоминаются в данной статье


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


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


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

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

Information

Rating
Does not participate
Date of birth
Registered
Activity