Как стать автором
Обновить
2
0

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

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

Паттерны проектирования в Kotlin

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

Паттерны проектирования в Kotlin


Говорят, что «паттерны проектирования — это обходные пути недостатков определенного языка программирования». Интересное суждение, если бы только оно не было сказано апологетами Lisp и Schema.


Но, похоже, разработчики языка Kotlin восприняли это высказывание по-настоящему близко к сердцу.

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

Анонимная сеть Hidden Lake → анализ QB-сетей, функций шифрования и микросервисов на базе математических моделей

Уровень сложностиСложный
Время на прочтение17 мин
Количество просмотров3.9K

Анонимная сеть Hidden Lake (HL) - это децентрализованная F2F (friend-to-friend) анонимная сеть с теоретической доказуемостью. В отличие от известных анонимных сетей, подобия Tor, I2P, Mixminion, Crowds и т.п., сеть HL способна противостоять атакам глобального наблюдателя. Сети Hidden Lake для анонимизации своего трафика не важны такие критерии как: 1) уровень сетевой централизации, 2) количество узлов, 3) расположение узлов и 4) связь между узлами в сети.

Читать далее
Всего голосов 13: ↑13 и ↓0+16
Комментарии3

P2P-форум с нуля | от NAT hole punching до автономной и полностью децентрализованной сети

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

Многие, кто работают с интернет-сокетами в любой сфере IT, задаются вопросом о пробросе портов. Связано это с тем, что практически во всех домашних/общественных/корпоративных роутерах реализован механизм NAT, который перекрывает прямой доступ к устройствам в этих подсетях извне, общаясь с внешним интернетом от их имени.

У NAT есть киллер-фича — он представляет собой идеальный фаервол: атаки извне не могут использовать порты локальных устройств напрямую, следовательно, это решает проблему атак на сетевую уязвимость ОС.

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

Разнообразные сервисы работают на серверах, т. е. имеют некую ноду, которая имеет белый адрес в интернете (находится не за NAT). Все пользователи же подключаются к этому единому серверу. В таком случае проблема «невидимости» пользователей отпадает. Однако чисто серверное взаимодействие ограничивает скорость участников, так ещё и не отказоустойчиво. Если сервер упадёт, то все клиенты отправятся за ним (считаем, что это одноклеточный сервис не на всяких там kubernetes).

Как вы уже могли были догадаться, даже в реалиях, когда практически все устройства находятся за NATами, P2P реален. Когда вы являетесь участником bittorrent-раздачи, трансфер больших данных осуществляется напрямую. Как это работает? Поиск ответа на этот вопрос завёл меня в глубокие дебри, разгребая которые я написал оверлейную p2p-сеть, где трекерами являются сами её участники. Интересно? Тогда добро пожаловать под кат.
Читать дальше →
Всего голосов 76: ↑76 и ↓0+76
Комментарии25

Собеседование на Java разработчика. Разбор 1606 вопросов и ответов. Часть 2 (с 170 по 269 вопрос)

Уровень сложностиСложный
Время на прочтение102 мин
Количество просмотров21K

Всем привет! Меня зовут Владимир Баганов. Я продолжаю серию статей с простым разбором вопросов на собеседованиях на Java разработчика. Под капотом 269 разобранных вопросов из 1606 вопросов.

Читать далее
Всего голосов 16: ↑8 и ↓8+3
Комментарии3

Собеседование по Java. Разбор 1606 вопросов и ответов. Часть 1 (с 1 по 169 вопрос)

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

Всем привет! Меня зовут Владимир Баганов. Я хочу начать серию статей с простым разбором вопросов на собеседованиях на Java разработчика. Под капотом 169 разобранных вопросов из 1606 вопросов.

Читать далее
Всего голосов 16: ↑8 и ↓8+3
Комментарии14

Как создать анимированные шейдеры в Jetpack Compose

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров3.1K
Jetpack Compose — молодой, но бурно развивающийся фреймворк для разработки под Android, который обладает множеством не всегда очевидных фичей. Сегодня я хотел бы описать одну из таких встроенных возможностей: речь идет об использовании OpenGL-шейдеров. Они позволяют делать красивые анимированные интерфейсы, как на картинке ниже.
image
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии12

Паттерны проектирования на Dart с примерами кода. Часть 1

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

Если вы занимаетесь программированием на Flutter, то наверняка сталкивались с задачами, которые можно было бы решить более эффективно и легко, используя уже проверенные практиками решения. В этом и помогают паттерны проектирования на Dart — шаблоны, которые разработчики применяют для решения часто встречающихся проблем. В двух статьях команда Mad Brains рассмотрит 16 паттернов проектирования на Dart, как они могут быть использованы для улучшения качества кода и повышения эффективности разработки.

Читать далее
Всего голосов 2: ↑1 и ↓10
Комментарии3

3X-UI: Shadowsocks-2022 & XRay (XTLS) сервер с простой настройкой и приятным интерфейсом

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров290K

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

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

Поэтому сегодня мы поговорим об установке и использовании графической панели 3X-UI для сервера X-Ray с поддержкой всего того, что умеет X-Ray: Shadowsocks-2022, VLESS с XTLS и т.д.

Читать далее
Всего голосов 33: ↑32 и ↓1+36
Комментарии198

Вопросы и ответы для собеседования по Kotlin. Часть 1

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров76K
Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии13

Мой опыт разработки программы для игры в шашки с помощью алгоритма минимакс

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

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

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

Читать далее
Всего голосов 21: ↑21 и ↓0+21
Комментарии25

Как работают text2image модели?

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

Вы, наверное, слышали про dalle-2, midjourney, stable diffusion? Слышали о моделях, которые по тексту генерируют картинку. Совсем недавно они продвинулись настолько, что художники протестуют, закидывая в стоки картинки с призывом запретить AI, а недавно, вообще, в суд подали! В этой статье будем разбираться, как такие модели работают. Начнем с азов и потихоньку накидаем деталей и техник генерации.

Читать далее
Всего голосов 62: ↑61 и ↓1+77
Комментарии4

Как стать Android разработчиком в 2023

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

И так, давайте начнем с того, что должен знать и уметь человек, чтобы стать Android разработчиком? Скиллсет будем смотреть по вот этому Roadmap

Читать далее
Всего голосов 14: ↑12 и ↓2+14
Комментарии33

Как работает Activity. Часть 1

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

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

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

В первой части совсем немного расскажу про Binder, про то, как происходит запуск Activity, как стартует процесс приложения и как на вызов Activity влияют флаги и launch mode. Во второй части будет про то, как вызываются методы жизненного цикла Activity, что происходит при сворачивании приложения, и более подробно расскажу про старт первой Activity.

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

Полное руководство по модулю asyncio в Python. Часть 2

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

Публикуем вторую часть руководства по модулю asyncio в Python, в которой представлены разделы оригинала №3 и 4. Читать головокружительную первую часть.

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

Big O нотация в Swift (часть 2 — Сокращение)

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

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

Читать далее
Всего голосов 7: ↑5 и ↓2+4
Комментарии15

Регистрация аккаунта разработчика в Apple: что может пойти не так

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

Чтобы приложение появилось в App Store, нужно заполнить не одну форму, запастись документацией и терпением. В интернете есть гайды, которые подробно рассказывают, как опубликовать продукт. Но не всегда все идет по плану. Мы рассказали историю одной регистрации в Apple Developer Program, которая вместо двух недель затянулась на 3 месяца. О таких нюансах обычно не пишут в официальных инструкциях, но с ними может столкнуться каждый.

Читать далее
Всего голосов 4: ↑2 и ↓2+1
Комментарии25

Не работай как ИП

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

Опрос в нашем телеграм-канале показал, что 20% работников ИТ получали серую зарплату или работали по ГПХ/ИП. В комментариях встречалось мнение, что работа по ГПХ/ИП — это благо. Тема подмены трудовых отношений договорными обширная и выходит за рамки одной статьи. Сейчас мы поговорим о работе в качестве ИП, а в следующих статьях затронем ГПХ, самозанятость и работу без договора.

Читать далее
Всего голосов 66: ↑28 и ↓38-2
Комментарии147

Ученые нашли упражнение, позволяющее худеть, сидя по 10 часов в день

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


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


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


Например, было доказано, что независимо от уровня физической активности слишком много сидения увеличивает риск сердечных заболеваний, диабета, деменции и серьезных проблем со спиной. Более половины всех людей в мире сегодня уже страдают от этих проблем, и больше 80% людей в возрасте 60+.


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


Но похоже, есть способ ускорить обмен веществ в организме, даже сидя за ПК. И точно избежать проблем с метаболизмом и ожирением. Несколько недель назад вышла работа ученых под руководством Марка Гамильтона из Хьюстонского университета. Они разработали технику, позволяющую задействовать неожиданное свойство икроножных мышц, и делать для своего организма полноценную тренировку, не вставая со стула. Оказывается, похудеть, работая в IT, — это не так уж и сложно. Испытываю на себе, полёт нормальный. А какие у вас ноги будут прокачанные!

Читать дальше →
Всего голосов 149: ↑135 и ↓14+151
Комментарии296

Как вывезти наличные доллары (евро или другую валюту) из России. Личный опыт

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

Как мы вывозили деньги (из России) за рубеж в условиях санкций. (июль 2022)

С чего начиналось.

Привет всем, я Михаил, решили мы с женой поехать в путешествие на 6 месяцев примерно, дело хорошее, но накладное. В обычной жизни взяли бы карты и погнали, но в условиях 2022 года для Русских нужен кэш. А так как путешествие длинное, то и кэша надо много. Цель попасть в Латинскую Америку, купить там машину и дальше уже двигаться на авто. Ну и заодно подать документы на ПМЖ, но это уже другая история.

Читать далее
Всего голосов 88: ↑56 и ↓32+41
Комментарии111

Oauth 2.1 spring authorization server + SPA

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

Доброго всем дня уважаемые хабровчане!

До сего момента я являлся лишь читателем этого замечательного ресурса, но вот кажется и пришло время написать мою первую статью.

Oauth 2.1 - дальнейшее развитие популярного фреймворка авторизации Oauth 2.0, который на момент написания статьи всё ещё вроде как находится в стадии черновика. Но тем не менее уже начинает применяться. На хабре уже есть более подробная статья на эту тему.

Из не очень приятного, из Oauth 2.1 убраны варианты получения токена.

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность