Как стать автором
Обновить
0
0
Евгений Бескончин @inf2k

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

Отправить сообщение

OpenConnect: недетектируемый VPN, который вам понравится

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров220K

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

Классические OpenVPN, Wireguard и IPSec отметаем сразу - их уже давно умеют блокировать и блокировали не раз. Модифицированный Wireguard от проекта Amnezia под названием AmneziaWG — отличная задумка, но есть одно но...

Читать далее
Всего голосов 325: ↑324 и ↓1+323
Комментарии342

Bitcoin in a nutshell — Cryptography

Время на прочтение12 мин
Количество просмотров116K
Одна из причин, почему Bitcoin продолжает привлекать столько внимания — это его исключительная «математичность». Сатоши Накамото удалось создать систему, которая способна функционировать при полном отсутствии доверия между ее участниками. Все взаимодействия основаны на строгой математике, никакого человеческого фактора — вот в чем была революционность идеи, а не в одноранговой сети, как многие думают. Поэтому первую главу я решил посвятить именно математическим основам Bitcoin.

Ниже я постараюсь объяснить вам самые базовые вещи — эллиптические кривые, ECC, приватные / публичные ключи и так далее. По возможности я буду иллюстрировать свои слова примерами кода, преимущественно на Python 2.7, если что-то непонятно — спрашивайте в комментариях.

intro
Читать дальше →
Всего голосов 43: ↑38 и ↓5+33
Комментарии10

«Хакеры и Художники». Как мы 13 лет всем рунетом Пола Грэма переводили

Время на прочтение5 мин
Количество просмотров48K
«Это началось как желание, стало приключением, а закончилось как уникальное дорожное путешествие.»
— к/ф «Трасса 60»



Пол Грэм написал книгу «Hackers and Painters» (оригинал в PDF на английском) когда еще был больше программистом, чем инвестором. С тех пор некоторые моменты устарели (да и arc не взлетел), но большинство мыслей остались актуальными (роль и место ботанов «хакеров» в современном мире, свободомыслие, критическое мышление, способность бросать вызов большим системам и пр). Лично я планирую перечитать всю книгу еще пару раз.

Спасибо Байраму Аннакову за «наводку» на Пола Грэма и Николаю Кононову, который подтвердил, что я на правильном пути.

Содержание


Глава 1 Why Nerds Are UnpopularЗа что не любят ботанов.
Глава 2 Hackers and PaintersХакеры и художники (Habr edition)
Глава 3 What You Can't SayО чем вы не можете сказать.
Глава 4 Good Bad AttitudeСлово «хакер».
Глава 5 The Other Road AheadДругая дорога в будущее, Другая дорога в будущее, продолжение.
Глава 6 How to Make WealthКак стать богатым.
Глава 7 Mind the GapОсторожно, разрыв.
Глава 8 A Plan for SpamПлан для спама.
Глава 9 Taste for MakersВкус — созидателям.
Глава 10 Programming Languages Explained — Языки программирования «в разрезе».
Глава 11 The Hundred-Year LanguageЯзыки программирования через сто лет.
Глава 12 Beating the AveragesLisp: побеждая посредственность.
Глава 13 Revenge of the Nerds — Месть ботанов 1, 2, 3.
Глава 14 The Dream LanguageБыть Популярным, часть 2.
Глава 15 Design and ResearchПроектирование и исследование.

Под катом хронология переводов и благодарности.
Читать дальше →
Всего голосов 28: ↑27 и ↓1+26
Комментарии25

Разблокируем интернет с помощью Mikrotik и VPN: подробный туториал

Время на прочтение3 мин
Количество просмотров149K

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

В качестве VPN я выбрал SoftEther: он настолько же прост в настройке как и RRAS и такой же быстрый. На стороне VPN сервера включил Secure NAT, других настроек не проводилось.

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

Настройка производилась на примере RB3011UiAS-RM на прошивке версии 6.46.11.
Теперь по порядку, что и зачем.
Читать дальше →
Всего голосов 71: ↑67 и ↓4+63
Комментарии75

Как не потерять все деньги за пару минут или риск-менеджмент в алгоритмической торговле

Время на прочтение11 мин
Количество просмотров15K



Введение


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

"Алготрейдер спит — торговля идет!" — любят говорить некоторые трейдеры. Но в реальности не все так просто. Как вы думаете с чего начинается алгоритмическая торговля? С подключения к бирже или написания алгоритма? Для профессионально участника трейдинг начинается с разработки риск-менеджмента.
Читать дальше →
Всего голосов 12: ↑10 и ↓2+8
Комментарии23

Как создать децентрализованное приложение, которое масштабируется? Используйте меньше блокчейна

Время на прочтение6 мин
Количество просмотров7.5K

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


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



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


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


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


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

Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии1

Забудьте о гомоморфном шифровании: теперь у нас есть функциональное шифрование

Время на прочтение6 мин
Количество просмотров11K


Слышали ли вы о функциональном шифровании (ФШ)? Возможно, вы слышали о нём, и для себя поставили его в один ряд с гомоморфным шифрованием, что не совсем неверно, но и не до конца правильно.

Давайте сегодня с вами посмотрим на то, что такое ФШ, разберём пару примеров и то, чем оно отличается от полностью гомоморфного шифрования (ПГШ).

Давайте для начала определимся, что мы имеем в виду, говоря про ФШ. Совсем недавно, в 2010 году, Дэн Боне, Амит Сахай и Брент Уотерс формализовали понятие ФШ. Примерно ФШ можно описать так: это схема шифрования с публичным ключом, где разные ключи для расшифровки позволяют пользователю узнавать об определённых функциях зашифрованных данных.
Читать дальше →
Всего голосов 29: ↑26 и ↓3+23
Комментарии4

Функциональное программирование — это не то, что нам рассказывают

Время на прочтение17 мин
Количество просмотров124K

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



Хотя люди обычно признают удобства ФП фич, ведь намного приятнее писать:


int Factorial(int n)
{
    Log.Info($"Computing factorial of {n}");
    return Enumerable.Range(1, n).Aggregate((x, y) => x * y);
}

чем ужасные императивные программы вроде


int Factorial(int n)
{
    int result = 1;
    for (int i = 2; i <= n; i++)
    {
        result *= i;
    }
    return result;
}

Так ведь? С одной стороны да. А с другой именно вторая программа в отличие от первой является функциональной.


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

Читать дальше →
Всего голосов 267: ↑259 и ↓8+251
Комментарии795

Как устроен AES

Время на прочтение7 мин
Количество просмотров290K

О чём эта статья



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

В этой статье я напишу как устроен алгоритм шифрования AES (которого иногда называют Rijndael) и напишу его на JavaScript. Почему на JavaScript? Чтобы запустить программу на этом языке, нужен только браузер в котором вы читаете эту статью. Чтобы запустить программу, скажем, на C, нужен компилятор и найдётся совсем мало желающих, готовых потратить время на компиляцию кода из какой то статьи. В конце есть ссылка по которой можно скачать архив с html страницей и несколькими js файлами — это пример реализации AES на JavaScript.

Читать дальше →
Всего голосов 120: ↑115 и ↓5+110
Комментарии45

Blockchain на Go. Часть 3: Постоянная память и интерфейс командной строки

Время на прочтение10 мин
Количество просмотров9.5K
Содержание

  1. Blockchain на Go. Часть 1: Прототип
  2. Blockchain на Go. Часть 2: Proof-of-Work
  3. Blockchain на Go. Часть 3: Постоянная память и интерфейс командной строки
  4. Blockchain на Go. Часть 4: Транзакции, часть 1
  5. Blockchain на Go. Часть 5: Адреса
  6. Blockchain на Go. Часть 6: Транзакции, часть 2
  7. Blockchain на Go. Часть 7: Сеть

Вступление


В предыдущей части мы построили блокчейн с PoW системой и возможностью майнинга. Наша реализация всё ближе к полностью функциональному блокчейну, но ей все ещё не хватает некоторых важных функций. Сегодня мы начнем хранить блокчейн в базе данных, после этого сделаем интерфейс командной строки для операций с блокчейном. По сути, блокчейн — это распределенная база данных. Мы пока опустим «распределенная» и сосредоточимся на «база данных».
Читать дальше →
Всего голосов 11: ↑7 и ↓4+3
Комментарии2

Как получить D-U-N-S number бесплатно

Время на прочтение2 мин
Количество просмотров123K


D-U-N-S number — международный идентификатор юридических лиц. В России добровольно его добывают в одном случае: когда в AppStore нужно зарегистрировать компанию-разработчика.

Расскажем, как добыть этот номер бесплатно и сэкономить 12 240.
Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии11

Как довести первый проект до конца. Часть 2. Мифы, ошибки и провалы

Время на прочтение3 мин
Количество просмотров15K


Здравствуйте! Я уже рассказывал в первой статье и интермедиальной статье, как довести свой первый проект до конца. Но в итоге я понял, что эти статьи касаются в первую очередь разработки. А как же продвижение?

И сейчас мы рассмотрим мифы и ошибки, на которых я споткнулся. И, хотя игру хвалили многие, она на момент написания статьи получила только 61 загрузку!

Ну вот как так может быть?
Всего голосов 20: ↑20 и ↓0+20
Комментарии20

Как принять участие в ICO на базе Ethereum. Инструкция для новичка

Время на прочтение5 мин
Количество просмотров17K
Хайп вокруг ICO растёт и ширится, всё новые и новые проекты объявляют о сборе инвестиций этим способом.

Плюсов для команд много, но и для участников ICO, то есть инвесторов, их достаточно. Во-первых, это потенциал роста стоимости токенов. Особенно, если вы участвуете в pre-ICO, когда токены продаются за полцены или даже дешевле. Представьте, если бы вы купили акции Apple, Google или Microsoft на десяток долларов в момент их выхода на биржу, да ещё со скидкой 50%?

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

Всё это очень хорошо и привлекательно, но как же принять участие в ICO человеку, который до 2017 года слышать-то слышал, но не имел никакого практического опыта с криптовалютами? Давайте разберёмся.
Читать дальше →
Всего голосов 22: ↑15 и ↓7+8
Комментарии51

Биржевой зодиак: Какие алгоритмы и инструменты применяются для прогнозирования движения цен акций

Время на прочтение7 мин
Количество просмотров22K


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

По-настоящему эффективную биржевую стратегию можно создать, лишь используя большинство инструментов в комплексе. Тем более что сама стратегия подразумевает несколько этапов, включая сбор и обработку данных, построение алгоритма, отладку и проверку в реальном времени. И для каждого из них можно применять разные методы и математические модели.
Читать дальше →
Всего голосов 12: ↑9 и ↓3+6
Комментарии17

Информация

В рейтинге
Не участвует
Откуда
Новосибирск, Новосибирская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer, Fullstack Developer
Lead
От 300 000 ₽
.NET
ASP.NET MVC
JavaScript
React
TypeScript