Pull to refresh
2
0
Send message

Надежный обход блокировок в 2024: протоколы, клиенты и настройка сервера от простого к сложному

Level of difficultyMedium
Reading time45 min
Views138K

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

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

Читать далее
Total votes 506: ↑498 and ↓8+490
Comments351

Вы и Брэд Питт похожи на 99%

Reading time14 min
Views23K

Завтра в отпуск


Мы в отделе аналитики онлайн-кинотеатра Okko любим как можно сильнее автоматизировать подсчёты сборов фильмов Александра Невского, а в освободившееся время учиться новому и реализовывать классные штуки, которые почему-то обычно выливаются в ботов для Телеграма. К примеру, перед началом чемпионата мира по футболу 2018 мы выкатили в рабочий чат бота, который собирал ставки на распределение итоговых мест, а после финала подсчитал результаты по заранее придуманной метрике и определил победителей. Хорватию в четвёрку не поставил никто.


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

Уронить запад
Total votes 62: ↑57 and ↓5+52
Comments10

Восемь именных законов в UX дизайне (часть 2)

Reading time8 min
Views14K


Эта статья является продолжением опубликованной ранее первой части. Если вы еще не успели ознакомиться с ней, рекомендую начать именно с нее.
Total votes 11: ↑10 and ↓1+9
Comments2

Восемь именных законов в UX дизайне ( часть 1)

Reading time6 min
Views33K
В UX дизайне, как и в любой другой сфере деятельности, есть свои принципы и законы. В этой статье я бы хотел разобрать восемь из них, которые названы в честь их создателей.


Total votes 37: ↑36 and ↓1+35
Comments24

Как происходит рендеринг кадра A Plague Tale: Innocence

Reading time5 min
Views8.7K

Предисловие


Как и в других моих исследованиях, давайте начнём с введения. Сегодня мы рассмотрим последнюю игру французского разработчика Asobo Studio. Впервые я увидел видео этой игры в прошлом году, когда коллега поделился со мной 16-минутным геймплейным трейлером. Моё внимание привлекла механика «крысы против света», но мне не особо захотелось играть в эту игру. Однако после её выхода многие стали говорить, что она выглядит так, как будто сделана на движке Unreal, но это не так. Мне стало любопытно увидеть, как работает рендеринг и насколько вообще разработчики вдохновлялись Unreal. Ещё меня заинтересовал процесс рендеринга стаи крыс, потому то в игре она выглядела очень убедительно и к тому же является одним из ключевых элементов геймплея.

Когда я начал попытки выполнить захват игры, то подумал, что придётся сдаться, потому что ничего не срабатывало. Хотя игра использует DX11, который сейчас поддерживают практически все инструменты анализа, мне не удалось заставить работать ни один из них. Когда я пытался использовать RenderDoc, игра вылетала при запуске, и то же самое происходило с PIX. Я по-прежнему не знаю, почему так происходит, но к счастью, мне удалось выполнить несколько захватов с помощью NSight Graphics. Как обычно, я поднял все параметры до максимальных и начал искать подходящие для анализа кадры.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments2

Реализация алгоритма Левенберга-Марквардта для оптимизации нейронных сетей на TensorFlow

Reading time23 min
Views29K

Это tutorial по библиотеке TensorFlow. Рассмотрим её немного глубже, чем в статьях про распознавание рукописных цифр. Это tutorial по методам оптимизации. Совсем без математики здесь не обойтись. Ничего страшного, если вы её совершенно забыли. Вспомним. Не будет никаких формальных доказательств и сложных выводов, только необходимый минимум для интуитивного понимания. Для начала небольшая предыстория о том, чем этот алгоритм может быть полезен при оптимизации нейронной сети.




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


Kushnir, D., Velker, N., Bondarenko, A., Dyatlov, G., & Dashevsky, Y. (2018, October 29). Real-Time Simulation of Deep Azimuthal Resistivity Tool in 2D Fault Model Using Neural Networks (Russian). Society of Petroleum Engineers. doi:10.2118/192573-RU


Одним вечером я показал, как keras реализовать простую нейронную сеть, и друг на работе запустил обучение на насчитанных данных. Через пару дней обсудили результат. С моей точки зрения он выглядел перспективно, но друг сказал, что нужны вычисления с точностью прибора. И если средняя квадратичная ошибка (mean squared error) получилась в районе 1, то нужна была 1е-3. На 3 порядка меньше. В тысячу раз.

Читать дальше →
Total votes 73: ↑70 and ↓3+67
Comments15

Джентльменский набор программиста UE4, ч. 1

Reading time3 min
Views48K


Давно хотелось составить список навыков и инструментов, которыми, по моему мнению, должны входить в «джентльменский набор» любого программиста под Unreal Engine 4. Буквально на днях, в чатике по UE4 я встретил такое:

> blueprints, animation dev, tech art, ai, multiplayer, editor extensions. первое, что пришло в голову

> Что приходит на ум: blueprints, animations, AI, material editor, widgets, slate, editor extensions, ue4 plugins, physics, lighting, rendering, c++
+ Сколько времени работал(а) с движком и страна, всё :)

В таких формулировках всё сказанное — лишь набор слов. Поэтому я собрался и составил вопросник для тех, кто хочет быть UE4-программистом, и который позволяет оценить свой уровень тем, кто уже считает себя продвинутым программером под UE4.
Читать дальше →
Total votes 29: ↑28 and ↓1+27
Comments5

“Акварельная” частота 96 fps: революция или форматный бунт в кинематографии

Reading time6 min
Views57K
Свершилось, в этом месяце появился первый в истории фильм, снятый с частотой 96 fps. Картину создал русский документалист Виктор Косаковский. Фильм представили на Венецианском кинофестивале, он тепло принят критиками и профессионалами от кинематографа. Картину назвали «Aquarela» — это документальный артхаус, где “главным героем” является вода. Фильм снимали на Байкале, в Гренландии, в северных регионах России и прочих живописных местах с большим количеством воды в разных агрегатных состояниях.



Фильм хвалят Hollywood reporter, Variety, Stereo.ru и другиме ресурсы. Критики отдельно отмечают операторскую работу и режиссерский замысел, который, по мнению Косаковского, был бы невозможно реализовать в полной мере без использования съемки в 96 fps. Под катом подробно о повышении частоты в кинематографе, новом фильме и возможностях человеческого зрения.
Total votes 38: ↑36 and ↓2+34
Comments197

Где мои деньги чувак: оформление и бандлы Steam, локализация и дистрибуторы

Reading time27 min
Views19K
Это длиннющие следующие три части из цикла «где мои деньги, чувак» в которых мы будем говорить о важности оформления странице на Steam, работе с комьюнити и важности региональных ограничений. Посмотрим на дистрибьюторов и рынок 3d-party дистрибуции, альтернативных открытых платформах, бандлах, фондах и лучших практиках краудфандинга в 2018 году. Наконец, посмотрим на то, что важно для безболезненной локализации игр и сколько это стоит.

Помимо веселых гифок мы снова будем считать чужие деньги и строить грандиозные планы покорения мира.
Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments13

Ранняя вселенная 5. Космологическое красное смещение и динамика однородной расширяющейся вселенной, часть 1

Reading time22 min
Views6.2K
На сайте бесплатных лекций MIT OpenCourseWare выложен курс лекций по космологии Алана Гуса, одного из создателей инфляционной модели вселенной.

Вашему вниманию предлагается перевод пятой лекции: «Космологическое красное смещение и динамика однородной расширяющейся вселенной, часть 1».
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments8

Создание игры на Lua и LÖVE — 6

Reading time19 min
Views3.8K
image

Оглавление

Оглавление


  • Статья 1
    • Часть 1. Игровой цикл
    • Часть 2. Библиотеки
    • Часть 3. Комнаты и области
    • Часть 4. Упражнения
  • Статья 2
    • Часть 5. Основы игры
    • Часть 6. Основы класса Player
  • Статья 3
    • Часть 7. Параметры и атаки игрока
    • Часть 8. Враги
  • Статья 4
    • Часть 9. Режиссёр и игровой цикл
    • Часть 10. Практики написания кода
    • Часть 11. Пассивные навыки
  • Статья 5
    • Часть 12. Другие пассивные навыки
  • Статья 5
    • Часть 13. Дерево навыков

14. Console

15. Final

Часть 13: Дерево навыков


Введение


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

Сначала мы рассмотрим способ задания каждого узла, затем узнаем, как считывать эти определения, создавать необходимые объекты и применять к игроку соответствующие пассивные навыки. Затем мы перейдём к основным объектам (узлам и связям), а потом рассмотрим сохранение и загрузку дерева. А в конце мы реализуем функционал, необходимый для того, чтобы игрок мог тратить очки навыков на узлы дерева.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments4

Введение в квантовые вычисления

Reading time5 min
Views24K
Привет, Хабр! Совсем недавно мы рассказывали вам о квантовых вычислениях и языке Q#. Сегодня же мы уйдем в теорию еще глубже и рассмотрим историю квантовых вычислений. Кроме того, в этой статье вы найдете 5 требований к квантовому компьютеру. Какими свойствами должна обладать машина будущего? Читайте под катом!

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

Квантовые вычисления и язык Q# для начинающих

Reading time13 min
Views77K
Возможно, вы узнали о выпуске пакета средств квантовой разработки Quantum Development Kit и подумали, что это звучит безумно круто… а потом вспомнили, что про квантовую механику почти ничего не знаете. Но ничего страшного. Через 30 минут вы будете знать о кубитах, суперпозиции и квантовой запутанности достаточно, чтобы написать свою первую программу и, что более важно, неплохо понимать, что она делает.

Читать дальше →
Total votes 50: ↑48 and ↓2+46
Comments21

Марвин Мински «The Emotion Machine»: Глава 2 «Мы хотим создать машину, которая гордилась бы нами»

Reading time12 min
Views2.4K
image

§2-7 Связи новорожденных и животных

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

Естественно, эта зависимость проистекает из нашей инфантильной беспомощности: ни один младенец не выживет, если уйдет от родительской опеки. Конечно, это происходит, не потому что младенцы не могут долго двигаться самостоятельно, а связано с тем недостатком, что в первые несколько месяцев младенцы не могут следовать за своими матерями. К счастью, люди обычно не испытывают большого вреда от этого недостатка, потому что мы развили систему обратной связи: мать Кэрол почти всегда осознаёт (в разной степени в разное время) то, что происходит с её дочерью, и поэтому её внимание быстро возвращается на ребёнка при малейшем подозрении если что-то идёт не так.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments0

Жизнь внутри черной дыры

Reading time10 min
Views119K
Знаю, что здесь это якобы не приветствуется, но делаю кросс-пост отсюда по прямой просьбе автора — Горькавого Николая Николаевича. Есть некоторый шанс, что их идея перевернёт современную науку. И лучше прочитать о ней в оригинале, чем в пересказе рен-тв или ленты.ру.

image

Для тех, кто не следил за темой. Рассмотрим две вращающихся друг вокруг друга чёрных дыры, допустим, массами 15 и 20 единиц (масс Солнца). Рано или поздно они сольются в одну черную дыру, но её масса будет не 35 единиц, а, скажем, всего 30. Остальные 5 улетят в виде гравитационных волн. Именно эту энергию улавливает гравитационный телескоп LIGO.

Суть идеи Горькавого и Василькова в следующем. Допустим, вы наблюдатель, сидите в своём кресле и чувствуете притяжение 35 единиц массы делить на квадрат расстояния. И тут бац — буквально за секунду их масса уменьшается до 30 единиц. Для вас, в силу принципа относительности, это будет неотличимо от ситуации, когда вас отбросило в обратном направлении с силой в 5 единиц, делить на квадрат расстояния. То есть, неотличимо от антигравитации.

Читать дальше →
Total votes 91: ↑86 and ↓5+81
Comments600

Сжатие текстур в Android: сравнение форматов и примеры кода

Reading time11 min
Views38K
Назовите самый лучший формат сжатия текстур. Может это PNG, ETC, PVRTC, S3TC, или ещё какой-нибудь? Вопрос непростой, но очень важный. От ответа зависят качество визуального оформления, скорость работы и размеры Android-приложений. Дело осложняется тем, что универсального «самого лучшего формата» попросту не существует. Всё зависит от потребностей разработчика.



Технология наложения текстур на двумерные или трёхмерные модели широко применяется в компьютерной графике. Делается это для того, чтобы улучшить детализацию объектов, которые представлены моделями. Android поддерживает множество форматов сжатия текстур, каждый из них обладает собственными преимуществами и недостатками.
Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments13

Графическое описание владения и заимствования в Rust

Reading time2 min
Views14K

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



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


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

Игры для программистов, часть вторая

Reading time5 min
Views81K
Прошло четыре с половиной года с тех пор, как я, пользуясь свежеполученным инвайтом, написал предыдущий хабрапост с подобным заголовком. Большой срок для игровой индустрии. Успело появиться много новых хороших игр, и недавно я ощутил настоятельную необходимость поделиться знанием о них с широкой общественностью.

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

Infinifactory


image
И что же это за майнкрафт такой?
Total votes 58: ↑57 and ↓1+56
Comments74

Игры для программистов

Reading time3 min
Views134K
Должен признаться, что я плохой программист. Я не люблю настраивать Maven и писать конфигурации для Spring Framework. Я не знаю в деталях, как работает JVM (да и в общих чертах представляю это себе довольно смутно). Я плохо понимаю паттерны проектирования, а любая новая технология вводит меня в уныние. И тем не менее, я люблю программировать.

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

Минуточку внимания.

Я не стану говорить о Robot Battle и тому подобных вещах. Вот не стану и всё. Возможно, я странный человек, но мне не нравится иметь дело с чем-то, хоть отдалённо напоминающим реальную физику. Интересующиеся могут почитать об этой игре здесь, а статья немного о другом.

Так о чём же статья?
Total votes 120: ↑102 and ↓18+84
Comments89

Игры, в которых нужно писать код: Grid Garden, Elevator Saga и другие

Reading time3 min
Views137K

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

Total votes 72: ↑72 and ↓0+72
Comments46
1

Information

Rating
Does not participate
Registered
Activity