Pull to refresh
0
0
Send message

SSLH: Прячем SSH/HTTPS/OpenVPN/Telegram за единым портом 443

Reading time3 min
Views117K
image

SSH/HTTPS/OpenVPN/Telegram и всё на одном порту?! Что?!
— Да!
  • Хотите скрыть наличее у вас некоторых сервисов?
  • В публичной wi-fi сети блокируется всё кроме 443 (https) порта?
  • Настроили Telegram Proxy/OpenVPN и не хотите его «светить» ?
  • SSH подключение к своему серверу из стран с цензурой?

На все эти вопросы ответ один — Мультиплексирование SSL/TLS соединений, или SSLH.

В посте мы рассмотрим как в 1 команду спрятать кучу сервисов за 1 портом.
Читать дальше →
Total votes 83: ↑79 and ↓4+75
Comments100

Расширение процесса сборки с помощью MSBuild

Reading time7 min
Views27K
Цель статьи — рассказать немного о MSBuild, показать что такое таргеты и таски в MSBuild, научить работать с файлом .csproj, дать полезные ссылки. Если у вас будет более подходящее название для статьи, то буду рад обсудить в комментариях.

Меню


Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments11

11 лучших шрифтов для программирования

Reading time3 min
Views255K
Много статей и сайтов сравнивают шрифты для программирования — всё это отличные ресурсы. Так зачем я опять поднимаю эту тему? Потому что сам всегда терялся в десятках шрифтов и не мог понять, какой лучше. Так что я опробовал много шрифтов и выбрал следующие для вас. Они довольно популярны и их легко получить. И самое главное, все эти шрифты бесплатны!

Я ранжировал шрифты по следующим показателям:

  • Насколько различимы схожие символы, такие как 0O, 1lI.
  • Легко ли читается шрифт (ширина строк, ширина/высота символов).
  • И мои личные предпочтения!

Все скриншоты сделаны в VSCode на одном фрагменте кода. Если не обозначено иное, то везде установлен размер "editor.fontSize": 14.
Читать дальше →
Total votes 56: ↑54 and ↓2+52
Comments117

«Прозрачный» HTTPS прокси для обхода блокировок Роскомнадзора

Reading time9 min
Views86K
Привет, хабровчане! Я думаю, многие в последнее время столкнулись с проблемами доступа к нужным ресурсам из-за попыток Роскомпозоранадзора заблокировать Телеграм. И я думаю, комментарии тут излишни. Факт — эти ресурсы ни в чем не виноваты, но они заблокированы. Проблемы возникли с Viber, ReCaptcha, GoogleFonts, Youtube и др. (кроме самого телеграма). Это случилось и в моей организации, причем некоторые невинные сервисы нужны нам как воздух. В какое-то время решалось все использованием прокси серверов, но они были нестабильны или вовсе отключались (их также блокировал наш великий и могучий РКН).

После прочтения кучи статей, пришла идея научить Squid пускать отдельные URL через Tor. Использовать ли такой метод, решать вам. Но скажу, что после реализации пропали все проблемы, которые были до этого. Кому интересно, идем под кат.
Читать дальше →
Total votes 56: ↑49 and ↓7+42
Comments144

О декораторах, сквозной функциональности, CQRS и слоеной архитектуре

Reading time5 min
Views29K
Разработчик SimpleInjector очень любит «декораторы», особенно в сочетании с дженериками вида
QueryHandler<TIn, TOut>, CommandHanler<TIn, TOut>.

Такой подход позволяет «навешивать» на обработчики то, что принято называть cross-cutting concerns без регистрации и смс interception и особой уличной магии вроде Fody или PostSharp.

CQRS не top level architecture, поэтому хочется иметь такие-же декораторы и для классических Application Service. Под катом я расскажу как это сделать.
Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments21

CQRS. Факты и заблуждения

Reading time10 min
Views186K

CQRS — это стиль архитектуры, в котором операции чтения отделены от операций записи. Подход сформулировал Грег Янг на основе принципа CQS, предложенного Бертраном Мейером. Чаще всего (но не всегда) CQRS реализуется в ограниченных контекстах (bounded context) приложений, проектируемых на основе DDD. Одна из естественных причин развития CQRS — не симметричное распределение нагрузки и сложности бизнес-логики на read и write — подсистемы Большинство бизнес-правил и сложных проверок находится во write — подсистеме. При этом читают данные зачастую в разы чаще, чем изменяют.

Не смотря на простоту концепции, детали реализации CQRS могут значительно отличаться. И это именно тот случай, когда дьявол кроется в деталях.
Читать дальше →
Total votes 31: ↑30 and ↓1+29
Comments108

Операционные системы с нуля; Уровень 0

Reading time11 min
Views132K

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


Чем этот курс отличается от прочих других? Большая часть кода пишется самостоятельно и выполняется на вполне реальном современном железе. В качестве целевой платформы выбран Raspberry Pi 3 model B. Т.е. достаточно актуальная архитектура AArch64. ARMv8 Cortex-A53, четыре ядра, 64-бита и вот это всё. В качестве основного языка программирования выбран Rust. Который безопасный, быстрый, без GC и так далее. Его, Rust, предполагается изучать во время курса.


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

Читать дальше →
Total votes 80: ↑78 and ↓2+76
Comments55

Открытый вебинар «Особенности языка JavaScript»

Reading time1 min
Views5.5K
Всем бобра!

Переработали тут по заявкам слушателей программу курса по JavaScript: дописали смежные темы типа сборщиков, тестовых фреймворков плюс догнали чуток изучения подходов по ООП + SOLID, паттерны и ещё мелкие разные изменения. По этому поводу провели достаточно интересный открытый вебинар на тему «Особенности языка JavaScript», где Юрий Дворжецкий рассказывал и показывал (а ещё и спрашивал) основные отличия языка, идиомы JS.


Как всегда ждём вопросы, пожелания, тапки.
Total votes 14: ↑10 and ↓4+6
Comments0

Вопросы для собеседования бэкенд-разработчика

Reading time16 min
Views187K
Этот список появился как личная памятка по темам, которые я обсуждал с коллегами и друзьями и в которых хотел разобраться поглубже…

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

В этом репозитории собран ряд вопросов, связанных с серверной частью, которые можно использовать при проверке потенциальных кандидатов. Ни в коем случае не рекомендуется задавать все вопросы одному кандидату: это займет несколько часов и вообще не имеет смысла, потому что они охватывают слишком широкий спектр тем. Никто не может знать всего. Выберите наиболее актуальный раздел и самые интересные вопросы, чтобы развернуть беседу.
Читать дальше →
Total votes 83: ↑61 and ↓22+39
Comments274

Смерть микросервисного безумия в 2018 году

Reading time12 min
Views100K
Прим. перев.: Этот материал, написанный опытным разработчиком, не задаётся целью похоронить идею микросервисов, как можно подумать, глядя на заголовок. Статья — разумное предупреждение для тех, кто решил, что микросервисы — это «серебряная пуля», которая сама по себе решает все архитектурные и эксплуатационные проблемы. Для демонстрации этого автор собрал и систематизировал популярные проблемы, зачастую встречающиеся в сегодняшних проектах, уже использующих микросервисы или мигрирующих на них.



В последние годы микросервисы стали очень популярной темой. «Микросервисное безумие» выглядит примерно так:

«Netflix хороши в DevOps. Netflix делают микросервисы. Таким образом, если я делаю микросервисы, я хорош в DevOps».
Читать дальше →
Total votes 90: ↑87 and ↓3+84
Comments167

Дополнение к статье «Тонкости резюме в немецкие IT-компании»

Reading time3 min
Views12K
С интересом прочитал статью «Тонкости резюме в немецкие IT-компании». Так как я достаточно долго живу в Германии, то позволю себе несколько замечаний и дополнений, которые надеюсь будут полезны читателям Хабра и не обидят автора.

Начну с того, что за последние восемь лет я поменял три места работы, при этом не написав ни одного резюме.
Читать дальше →
Total votes 33: ↑31 and ↓2+29
Comments30

Оптимизация портфеля ценных бумаг средствами Python

Reading time12 min
Views25K

Введение


На финансовом рынке обращается, как правило, несколько типов ценных бумаг: государственные ценные бумаги, муниципальные облигации, корпоративные акции и т.п.

Если у участника рынка есть свободные деньги, то их можно отнести в банк и получать проценты или купить на них ценные бумаги и получать дополнительный доход. Но в какой банк отнести? Какие ценные бумаги купить?

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

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

Целью настоящей публикации является разработка методов оптимизации портфелей ценных бумаг с использованием библиотеки scipy.optimize. Пришлось исследовать и применить при программировании такие мало известные возможности указанной библиотеки, как введение дополнительных ограничений в функцию цели [2].
Читать дальше →
Total votes 15: ↑10 and ↓5+5
Comments7

Литература на выходные: 15 материалов по структурированию кода для разработчиков

Reading time5 min
Views27K
Одним из параметров оценки кода служит его чистота. Создатель языка моделирования UML Гради Буч (Grady Booch) писал:

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

Сегодня мы собрали для вас список книг и статей по этой теме, которые рекомендуют к прочтению резиденты Hacker News, Stack Exchange и других профильных платформ.

Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments14

VAX — инструмент для визуального программирования, или как написать SQL мышкой

Reading time7 min
Views40K


Я хочу рассказать про созданный мною web редактор для «визуального программирования» и его историю создания.
Читать дальше →
Total votes 49: ↑48 and ↓1+47
Comments88

Обзор анимации с codepen для страниц загрузки сайта

Reading time14 min
Views26K
Обзор анимации с codepen для страниц загрузки сайта

Программисты проверяют идеи для сайтов на площадках: codepen, jsbin, jsfiddle, cssdesk. Потому что там они мгновенно видят результат написанного кода и могут показать его другим.


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


Я решил делать подборки полезных решений с codepen. Первую уже выпускал на хабре «Обзор многоуровневых меню». Теперь вторая — «Обзор анимации для страниц загрузки сайта».


Подборку разделил на 3 статьи.


Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments13

ASP.NET Core: Пример реализации шаблонов проектирования Единица работы и Репозиторий

Reading time8 min
Views31K
В этой статье мы поговорим о шаблонах проектирования «Единица работы» и «Репозиторий» в контексте тестового веб-приложения на ASP.NET Core (с использованием встроенного DI), которое мы с вами вместе и разработаем. В результате мы получим две реализации взаимодействия с хранилищем: настоящую, на основе базы данных SQLite, и фейковую, для быстрого тестирования, на основе перечисления в памяти. Переключение между этими двумя реализациями будет выполняться изменением одной строчки кода.


Читать дальше →
Total votes 25: ↑19 and ↓6+13
Comments58

Как сделать шлем виртуальной реальности своими руками

Reading time6 min
Views59K
Здравствуйте все, кто увлекается гаджетами, стереоскопическим изображением и 3D графикой!

К сожалению, после открытия предзаказов на потребительскую версию Oculus CV1 стало ясно, что данный гаджет оказался не столь доступен, как хотелось бы многим. Действительно, 599$ — это стоимость в США. В России данные устройства будут стоить уже наверняка в районе 800-1000$ первый год-два. HTC Vive начинается от 799$. Пожалуй, сейчас это наиболее передовые устройства VR, но, нужно признать, что они не особо доступны.

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

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

Мы являемся евангелистами компьютерных VR систем в России, и в этой статье хотим показать, каким образом можно собрать-таки настоящий шлем виртуальной реальности у себя дома, даже лучше, чем Oculus Rift DK1, а затем силой инженерной мысли элегантно превратим его в DK2. В итоге, шлем будет совместим с последними версиями SDK и Runtime от Oculus Rift по относительно доступной цене. (Палмер Лаки наверное бы поперхнулся, прочитав эту статью, но мы ведь русские всегда чего-то придумываем и умеем красиво выходить из различных ситуаций).

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



О том, как собрать бюджетный шлем виртуальной реальности, совместимый с Oculus Rift DK2 у себя дома…
...читайте далее, много картинок!
Total votes 24: ↑23 and ↓1+22
Comments36

3d принтер на рельсах за «25 тысяч рублей» своими руками.Основные комплектующие

Reading time2 min
Views34K
После публикации поста меня попросили написать о комплектующих, что-же, пожалуйста :)
В кавычках, потому что курс рубля слабо поддается прогнозу, но я уложился в такую сумму с курсом доллара 55-60 рублей.
Все запчасти относятся только к данному корпусу, который можно заказать написав этому человеку или если вы решите собирать в другой корпус, то могут быть незначительные изменения, но в целом комплектующие совпадают.
Читать дальше →
Total votes 17: ↑13 and ↓4+9
Comments22

DIY порошок для посудомойки: разбираем промышленные средства и улучшаем рецепт

Reading time11 min
Views125K


Внимание! В рецепте с отбеливателем обнаружилась опасность коррозии металла! Не рекомендуется в стандартном применении!

Обзор экспериментов год спустя:
DIY порошок для посудомойки: как не растворить посуду и не повторить моих ошибок. Год экспериментов

В прошлой публикации мы создавали дешевый порошок для посудомойки из желудей и спичек кальцинированной соды и стирального порошка. В этой я расскажу о том, как можно его улучшить с помощью кислородного отбеливателя и где можно купить компоненты для более продвинутой версии. Будем делать упор на эффективности мойки, но даже при этом цена не выйдет за 100 рублей/килограмм. А еще будет рецепт ополаскивателя с себестоимостью в районе 1 рубля за литр. Как справедливо заметил amarao, занятие не для всех и многим проще использовать готовые таблетки. Но в подобных экспериментах с бытовой химией есть что-то от детства, первых опытов по смешиванию соды с уксусом и газировки с мятными конфетами. Так что ощутимая экономия здесь все-таки вторична. Будем развлекаться) Если кому-то лень читать весь текст — в конце поста будут подробные рецепты с рекомендациями.
Читать дальше →
Total votes 123: ↑123 and ↓0+123
Comments351

Биржа торгует ресурсом, акциями и мутными обещаниями: ликбез о деривативах

Reading time4 min
Views16K


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

Например, фьючерс – это когда вы говорите «в конце года я выращу 2 тонны картошки, если вы купите у меня её по 20 рублей за килограмм». Затем куча людей подписывается с вами на 100 килограмм картошки, 20 килограмм, тонну и так далее. При этом, обратите внимание, сделки совершены, экономика крутится, но ещё ни самой картошки, ни денег пока нет.

Через месяц кто-то смотрит фильм «Марсианин» и узнаёт, что планируются поставки картохи с Марса. И решает, что она подешевеет. Догадайтесь, что происходит дальше.
Читать дальше →
Total votes 22: ↑19 and ↓3+16
Comments31

Information

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