Pull to refresh
0
0

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

Send message

Программы-клиенты для протоколов недетектируемого обхода блокировок сайтов: V2Ray/XRay, Clash, Sing-Box, и другие

Level of difficultyMedium
Reading time16 min
Views184K

В предыдущей статье “Современные технологии обхода блокировок: V2Ray, XRay, XTLS, Hysteria и все-все-все” я рассказывал про прокси-протоколы. Теперь настало время рассказать про клиенты: консольные, GUI для десктопа и для мобильных платформ. 

Надеюсь, что эта статья вам окажется полезной, потому что, как выяснилось, найти хороший клиент даже для тех же V2Ray/XRay в наше время не так-то просто. Потому что большая часть того, что находится при поиске в интернете “в лоб” и даже в списках типа Awesome V2Ray - или уже неподдерживаемое, или довольно кривое, или не умеющее в актуальные версии и фичи (например, XTLS и uTLS), а самые жемчужины прячутся где-нибудь в глубинах Github’а и сторов.

Читать далее
Total votes 49: ↑48 and ↓1+56
Comments52

Интернет-цензура и обход блокировок: не время расслабляться

Reading time10 min
Views160K

Disclaimer: практически всё описанное в статье, не является чем-то принципиально новым или инновационным - оно давно известно и придумано, используется в разных странах мира, реализовано в коде и описано в научных и технических публикациях, поэтому никакого ящика Пандоры я не открываю.

Нередко на Хабре в темах, посвященных блокировкам ресурсов встречаются забавные заявления, вида "Я настроил TLS-VPN, теперь будут смотреть что хочу и цензоры мой VPN не заблокируют", "Я использую SSH туннель, значит все ок, не забанят же они SSH целиком", и подобное. Что ж, давайте проанализируем опыт других стран и подумаем, как же оно может быть на самом деле.

Читать далее
Total votes 259: ↑254 and ↓5+319
Comments518

Современные технологии обхода блокировок: V2Ray, XRay, XTLS, Hysteria, Cloak и все-все-все

Reading time20 min
Views327K

Три месяца назад здесь на Хабре была опубликована статья “Интернет-цензура и обход блокировок: не время расслабляться”, в которой простыми примерами показывалось, что практически все популярные у нас для обхода блокировок VPN- и прокси-протоколы, такие как Wireguard, L2TP/IPSec, и даже SoftEther VPN, SSTP и туннель-через-SSH, могут быть довольно легко детектированы цензорами и заблокированы при должном желании. На фоне слухов о том, что Роскомнадзор активно обменивается опытом блокировок с коллегами из Китая и блокировках популярных VPN-сервисов, у многих людей стали возникать вопросы, что же делать и какие технологии использовать для получения надежного нефильтрованного доступа в глобальный интернет.

Мировым лидером в области интернет-цензуры является Китай, поэтому имеет смысл обратить на технологии, которые разработали энтузиасты из Китая и других стран для борьбы с GFW (“великим китайским файрволом”). Правда, для неподготовленного пользователя это может оказаться нетривиальной задачей: существует огромное количество программ и протоколов с похожими названиями и с разными не всегда совместимыми между собой версиями, огромное количество опций, плагинов, серверов и клиентов для них, хоть какая-то нормальная документация существует нередко только на китайском языке, на английском - куцая и устаревшая, а на русском ее нет вообще.

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

Читать далее
Total votes 126: ↑124 and ↓2+153
Comments136

Выход в интернет через аналоговый модем в 2023 году

Reading time12 min
Views26K
Приветствую всех!
Многие из нас успели застать ту эпоху, когда модем был едва ли не единственным доступным способом для выхода в сеть. И многим наверняка будет интересно узнать, на что же способно такое подключение сейчас.



Итак, в сегодняшней статье вспомним dial-up-модемы и всё, что с ними связано. Разберёмся, как в наши дни можно выйти в интернет через такое подключение. Узнаем, получится ли вообще пользоваться современными сайтами. Традиционно будет много интересного.
Читать дальше →
Total votes 78: ↑78 and ↓0+78
Comments85

Величайшие программисты 21 века. Джон-Движок Кармак

Level of difficultyEasy
Reading time9 min
Views47K

Джон Кармак вместе с тёзкой Джоном Ромеро стали родоначальниками игрового жанра FPS. На слабеньких 486SX, без видеокарт (!) они выдали настоящий 3D-шутер без лагов с эффектом присутствия, что стало бомбой для 1993 года — в эпоху пошаговых стратегий и отсутствия скроллинга. Казалось, тут вмешалась чёрная магия…

В принципе, примерно так и есть. В разработке Wolfenstein 3D, Doom и движка Quake Джон Кармак действительно использовал кучу нестандартных приёмов вроде конверсии указателей или выхода за границы объектов, чтобы в циклах получать доступ к другому объекту, который гарантированно идёт следом.

Уровень программирования Doom и Quake до сих пор считается непревзойдённым образцом хакерских оптимизаций, а сам Джон Кармак — эталон сверхэффективного разработчика. Благодаря высочайшему качеству программирования Doom стал феноменом, который изменил мир.
Читать дальше →
Total votes 85: ↑81 and ↓4+113
Comments63

Улучшаем качество кода React-приложения с помощью Compound Components

Reading time10 min
Views7.4K

Я люблю сталкиваться с трудностями. Но с такими, которые можно решить, подумать над интересным решением, подобрать технологию. Люблю быть в потоке, а после решения чувствую себя настоящим профессионалом.

Но есть кое-что, из-за чего я не люблю программировать. Как ни странно, это тоже трудности, только другого рода. Например, когда, чтобы пофиксить баг, приходится разбираться с легаси-компонентом, который написан на классах на 300 строк кода. Разбираясь уже второй час, ловлю себя на мысли, что уже 10 минут просто смотрю в экран, а в голове «из-за угла» выглядывает мысль «Псс, парень, программирование — это не твое». Такие задачи не вызывают удовлетворения.

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

Читать далее
Total votes 27: ↑27 and ↓0+27
Comments5

Архитектура программного обеспечения переоценена, простой и понятный дизайн — недооценен

Reading time10 min
Views46K
image

Вашему вниманию предлагается перевод поста Гергелия Ороса, занимающего должность Engineering Manager в Uber. В нем он делится своим взглядом на проектирование крупномасштабных систем, основанном на собственном практическом опыте работы в Uber и Microsoft. В сочетании с комментариями на Hacker News, которые добавляют весомые контр-аргументы и дополняют точку зрения автора, его статья стала одним из самых интересных постов недели. В статье используется термин «дизайн кода» для сравнения с традиционной «архитектурой» — о нем подробнее можно прочитать здесь.

На мою долю выпало достаточно опыта в проектировании и создании крупномасштабных систем. Я принимал участие в переписывании распределенной системы платежей в Uber, проектировании и релизе Skype на Xbox One и выпуске в открытый доступ RIBs — мобильного архитектурного фреймворка, созданного в Uber. Все эти системы имели тщательно продуманный дизайн, прошли через несколько итераций, с ними связано множество совещаний, проведенных у маркерной доски, и других обсуждений. Затем придуманный дизайн сводился к дизайн-документу, который распространялся среди других разработчиков для сбора дополнительной обратной связи, который продолжался до тех пор, пока мы не переходили к разработке.

Все эти системы отличали большие масштабы: их создавали сотни разработчиков — или они использовали их в своих разработках — и сегодня они бьются в сердцах систем, которыми ежедневно пользуются миллионы людей. Причем, эти проекты создавались не с нуля. Система платежей должна была заменить две другие существующие платежные системы, используемые десятками других систем и дюжинами команд, и все это — без какого-либо ущерба для бизнеса. Переписывание приложения Uber было проектом, над которым одновременно работало несколько сотен инженеров — он включал в себя портирование всей существующей функциональности на новую архитектуру.
Читать дальше →
Total votes 73: ↑66 and ↓7+59
Comments66

Имитация трёхмерных зданий в 2D-игре

Level of difficultyMedium
Reading time7 min
Views15K

Создаём объём при помощи света и теней.

Игра двухмерная, разрабатывается на Game Maker Studio 2 и во время работы я столкнулся с множеством задач а-ля «должно быть красиво». Где-то пришлось придумать свой велосипед, где-то повезло наткнуться на описание решения похожих задач.

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

Внутри есть гифки и картинки!
Total votes 67: ↑67 and ↓0+67
Comments16

REST, что же ты такое? Понятное введение в технологию для ИТ-аналитиков

Reading time17 min
Views270K

Проектирование и работа с REST-сервисами стали повседневными задачами для многих аналитиков. Однако мы часто встречаемся на работе с различными или даже противоречащими друг другу трактовками таких понятий, как REST, RESTful-сервис, RESTAPI.

Сегодня мы разберём, какие принципы вложил в парадигму REST её автор и как они могут помочь нам при проектировании систем.

Выясним, почему существует терминологическая путаница вокруг REST и как нам научиться лучше понимать коллег.

Поговорим о том, как связаны HTTP и REST. А также почему REST противопоставляют SOAP.

Читать далее
Total votes 22: ↑19 and ↓3+20
Comments5

Груг против сложности. Я пролинтил все посты на Хабре про Python, и вот что я нашёл

Reading time52 min
Views60K

В какой-то момент времени я превратился в педанта брюзгу. В фильмах малейшие нестыковки и провалы в логике портят мне весь просмотр. В чатах меня бесит it's вместо its. А в статьях про программирование... Всё плохо. За меня всё уже сказал @AlexanderAstafiev, я лишь процитирую:

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

Самое забавное, что, по моим ощущениям, везде я вижу одни и те же классы проблем. Я даже запилил сервис, где можно закинуть код и получить код ревью, и, собрав немного статистики, понял, что 50 типов ошибок достаточно, чтобы покрыть большую часть проблем в чужом коде. Но выборка у меня была небольшая, и я подумал: а что, если проверить много кода?

И всё заверте...
Total votes 119: ↑114 and ↓5+134
Comments153

Образование в РФ избыточно

Reading time22 min
Views153K

Эта статья призвана дать ответы на вопросы, которые возникают у некоторых студентов во время обучения и после окончания вузов относительно процесса обучения, образования вообще. Вроде таких наивных вопросов:

Для меня, как человека, который верил в то, что учебное заведение призвано ОБУЧАТЬ, это было, мягко говоря, шоком.

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

Также она, возможно, будет небезынтересна родителям, непонимающим для чего система образования РФ делает те или иные вещи.

Еще я попробую дать отпор различного рода пропагандистам многословно рассуждающим о проблемах образования РФ и мнимых путях их решения, о каких-то компетенциях, о нужности или ненужности ЕГЭ, об инновациях и цифровизации в образовании, прочих "внутренних" вещах, но никогда не говорящих о сути системы образования РФ. Это происходит потому, что подобного рода статьи нацелены на сокрытие главной проблемы и внедрении определенных мыслей, а не простом и понятном разъяснении сложившейся ситуации с образованием в РФ.

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

Читать далее
Total votes 274: ↑206 and ↓68+182
Comments1083

Невыжившие в IT

Reading time7 min
Views200K

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

Есть такое понятие – ошибка выжившего. Грубо говоря, о явлении, тенденции или событии судят по людям, которые прошли его успешно – выжили. Совершенно игнорируя информацию о тех, кто успеха не достиг. В результате случайная удача интерпретируется как устойчивая вероятность. Если интересна мат.часть – почитайте Нассима Талеба или Даниэля Канемана. Их книги существенно дешевле курсов по ИТ.

Я опишу типичные ошибки тех, кто не выжил. И, соответственно, не вошёл в ИТ. Всё из опыта личных наблюдений.

Да, если «тут всё неправда», «а вот мой друг Коля успешно…» или «а у меня получилось» - прекрасно, текст не про вас и не для вас. Вы и ваш друг Коля – выжившие.

Читать далее
Total votes 303: ↑290 and ↓13+336
Comments447

Почему некоторым так сложно учиться программированию?

Reading time15 min
Views108K

На эту тему на Хабре была не так давно статья, и там высказывалась мысль, что программирование-де сложная область знаний в принципе и требует некой особой склонности и серьезного бэкграунда.

Однако с этим я согласиться никак не могу. Программирование по содержанию ничуть не сложней многих других отраслей знаний, а в чем-то даже и легче, особенно когда касается прикладных задач. Наткнулся на заметку человека, который высказал весьма небанальную мысль: при обучении программированию "с нуля" этот "ноль" для всех сильно разный. И у меня есть стойкое убеждение, что сложность освоения четко зависит от значения этого нуля. А вот почему он разный и что на него влияет- мне и хотелось бы поразмышлять.

Читать далее
Total votes 252: ↑226 and ↓26+241
Comments720

США объявили войну крипто-анонимности: как санкции на Tornado Cash меняют будущее блокчейна

Reading time21 min
Views39K

Прямо сейчас происходят события, которые могут стать поворотной точкой для всей криптоиндустрии (а заодно и для всех open-source программистов). Тем более странно, что пока эти события вызывают ажиотаж только в узком кругу настоящих криптанов… В этой статье я попытаюсь объяснить, почему вам тоже должно быть дико интересно следить за санкционной драмой вокруг Tornado Cash.

Читать далее
Total votes 139: ↑131 and ↓8+152
Comments321

20 лет проблем приема платежей

Reading time11 min
Views21K
image
За логотип спасибо yarbabin

Электронные системы расчетов существуют в интернете уже давно, а баги на них встречаются двадцатилетней давности. Мы находили критические уязвимости, позволяющие угнать деньги и накрутить баланс. Сегодня мы разберем типовые реализации приема платежей и связанные с ними проблемы безопасности.
Читать дальше →
Total votes 109: ↑108 and ↓1+131
Comments20

Взлет и падение карманных ПК

Reading time17 min
Views49K
В начале 2000-х годов пределом мечтаний для многих был карманный персональный компьютер — сокращенно КПК. Мимо меня это веяние тоже не прошло. Я долго присматривался и выбирал между Windows Mobile и Palm OS, но все казалось слишком дорогим. Наконец в 2004 году я раскошелился и купил свой первый КПК на базе Palm OS — Zire 31. Тогда он стоил что-то в районе 150 долларов. Работал довольно шустро, имел цветной экран, но надо признать, довольно посредственный. У друга была Sony SJ30, с намного более приятной картинкой. А еще разряжалась моя Зирка (как я ее называл) ужас как быстро. Но в целом, КПК был кайфовым.

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


Приятного чтения!
Total votes 74: ↑73 and ↓1+92
Comments150

Мобильные операторы и их внутренняя кухня

Reading time8 min
Views68K
image

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

Однако каким бы навороченным не был ваш смартфон, существенная часть его магии моментально пропадает стоит вам только очутиться за пределами покрытия мобильной сети. Что в наше время ощущается откровенно так себе, особенно если без связи и интернета приходится сидеть достаточно продолжительное время или уж тем более при возникновении какой-нибудь жуткой непредвиденной фигни.
Читать дальше →
Total votes 75: ↑72 and ↓3+86
Comments120

Мой любимый Git-коммит

Reading time6 min
Views55K
Прим. перев.: Эта публикация британского программиста, ставшая настоящим хитом в англоязычном интернете, ссылается на Git-коммит 6-летней давности. Он был зафиксирован в одном из открытых репозиториев Government Digital Service — службы, занимающейся развитием цифровых услуг в Великобритании и поддерживающей проект GOV.UK. Сам коммит интересен не столько изменениями в коде, сколько сопровождающим их описанием…


Картинка из xkcd #1296

Я обожаю описания коммитов в Git. При правильном применении их можно назвать одним из самых мощных инструментов по документированию эволюции кодовой базы за время ее существования. Свою точку зрения хочу проиллюстрировать на примере моего самого любимого описания.
Читать дальше →
Total votes 145: ↑138 and ↓7+131
Comments93

Пожалуйста, перестаньте рекомендовать Git Flow

Reading time6 min
Views199K
Прим. перев.: Новая статья с критикой полюбившейся многим Git Flow получила столь заметное внимание, что даже оригинальный автор модели обновил публикацию 10-летней давности, актуализировав свой взгляд на её применение сегодня. Публикуем перевод как самой критики, так и официальной реакции.



Git-flow — это методология ветвления и слияния, сильно популяризированная заметкой 2010 года под названием «A Successful Git branching model» (была переведена на хабре как «Удачная модель ветвления для Git» — прим. перев.).

За последние десять лет бесчисленное множество команд пали жертвой этого громкого названия и оказались — не побоюсь этого слова — откровенно облапошены. В своей заметке автор утверждает, что они успешно внедрили эту модель в проекты, но умышленно не раскрывает подробности проектов, которые привели к этой «успешности».

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

На этом можно заканчивать, так? Ну, не совсем. Наверняка некоторые из вас скептически отнеслись к моей цепочке рассуждений, поэтому давайте копнем поглубже и попытаемся понять, почему модель ветвления Git-flow должна поджариться на медленном огне.
Читать дальше →
Total votes 78: ↑69 and ↓9+80
Comments177

Механическая видеостена с ядерным Ambilight на 2300 зон

Level of difficultyEasy
Reading time8 min
Views50K

Однажды я подбирал себе новый монитор и немного увлёкся — получилось чудище во всю стену из трёх телевизоров с ядерной 2318-зональной подсветкой 40 000 люмен на STM32.

Читaть далее
Total votes 112: ↑109 and ↓3+133
Comments136
1
23 ...

Information

Rating
Does not participate
Location
Россия
Registered
Activity