Pull to refresh
18
0
Sasha Rudenko @sasharu

User

Send message

Диаграммы последовательности — единственная хорошая вещь, которую UML привнес в разработку ПО

Level of difficultyEasy
Reading time11 min
Views9.3K

От переводчика:

Я веду телеграмм‑канал, посвященный системному анализу, и провожу тренинги, и в какой‑то момент задался вопросом — а актуален ли сейчас UML? Если посмотреть обсуждения на SO, Reddit'e и в блогах — видно очень много постов в вопросом «Is UML Dead?». Я начал искать публикации на эту тему, и через некоторое время обнаружил этот пост, в котором были ссылки на статьи, которые я уже нашел, и ещё на некоторые, которых я до этого не видел. Мне показалось, это очень хороший сборник мнений, если вас тоже интересует судьба UML.

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

Читать далее
Total votes 17: ↑15 and ↓2+19
Comments17

Bleeding-edge обход блокировок с полной маскировкой: настраиваем сервер и клиент XRay с XTLS-Reality быстро и просто

Level of difficultyEasy
Reading time11 min
Views503K

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

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

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

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

Продираемся сквозь сети в Kubernetes: Load-Balance, BGP, IPVS и все такое прочее

Level of difficultyMedium
Reading time6 min
Views8.8K

Привет, Хабр! Мы в команде Nova Container Platform сделали перевод статьи для тех, кто хочет разобраться, как строить сети в Kubernetes. Делюсь им, надеюсь, вам будет полезно.

В мире Kubernetes мы каждый день слышим, как ipvs сравнивают с iptables, или, скажем, pureLB с metalLB, или же виртуальную топологию (overlay) с физической (underlay), или Nodeport с Loadbalance, и т.д. Сейчас я вам все растолкую.

Читать далее
Total votes 10: ↑10 and ↓0+14
Comments0

Репликация в Tarantool: конфигурирование и использование

Reading time16 min
Views7K


Я вхожу в Tarantool Core Team и участвую в разработке движка базы данных, внутренних коммуникаций компонентов сервера и репликации. И сегодня расскажу, как устроена репликация.
Читать дальше →
Total votes 55: ↑55 and ↓0+55
Comments11

Приложения для Tarantool. Часть 3. Тестирование и запуск

Reading time5 min
Views8.4K

Приложение для Tarantool — это, по сути, набор хранимых процедур, используемых как API. Данные обрабатываются на стороне хранилища, что позволяет значительно повысить производительность. Однако поддержка хранимых процедур может превратиться в кошмар.


Может. Но не сегодня.


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


Читать дальше →
Total votes 45: ↑43 and ↓2+41
Comments0

Июньская ситуация с недоступностью ресурсов из-за блокировок веб-сайтов

Reading time4 min
Views59K
Все провайдеры интернета в России вынуждены блокировать ссылки, внесенные в Единый реестр запрещенных сайтов. Он представляет собой огромную свалку ссылок (в том числе не соответствующих стандартам), доменов и IP-адресов. Общей методики блокировок не существует, есть только абстрактные рекомендации от Роскомнадзора, поэтому каждый провайдер блокирует сайты по-своему, в меру понимания реестра, своей технической продвинутости и бюджета.

Подавляющее большинство провайдеров используют те или иные системы анализа трафика, чтобы блокировать конкретные URL, а не IP-адрес: аппаратные комплексы DPI, открытые DPI под Linux, прозрачные прокси-серверы. Этого вполне достаточно для блокировки ссылок в HTTP, но не все системы поддерживают анализ домена (параметра SNI) в HTTPS-трафике, из-за чего провайдерам с такими системами приходится блокировать HTTPS-ссылки реестра по IP-адресу.

Также в реестре есть сайты, внесенные по домену, без указания протокола. Некоторые провайдеры блокируют такие записи по IP-адресу, другие — только HTTP и HTTPS-протокол у этих доменов. Чтобы не покупать дорогие конфигурации DPI, которые могут анализировать весь огромный поток трафика, провайдеры пропускали через DPI только известные IP-адреса заблокированных сайтов, и обходились конфигурацией дешевле.
Читать дальше →
Total votes 81: ↑80 and ↓1+79
Comments255

Типичные распределения вероятности: шпаргалка data scientist-а

Reading time11 min
Views132K

У data scientist-ов сотни распределений вероятности на любой вкус. С чего начать?


Data science, чем бы она там не была – та ещё штука. От какого-нибудь гуру на ваших сходках или хакатонах можно услышать:«Data scientist разбирается в статистике лучше, чем любой программист». Прикладные математики так мстят за то, что статистика уже не так на слуху, как в золотые 20е. У них даже по этому поводу есть своя несмешная диаграмма Венна. И вот, значит, внезапно вы, программист, оказываетесь совершенно не у дел в беседе о доверительных интервалах, вместо того, чтобы привычно ворчать на аналитиков, которые никогда не слышали о проекте Apache Bikeshed, чтобы распределённо форматировать комментарии. Для такой ситуации, чтобы быть в струе и снова стать душой компании – вам нужен экспресс-курс по статистике. Может, не достаточно глубокий, чтобы вы всё понимали, но вполне достаточный, чтобы так могло показаться на первый взгляд.
Читать дальше →
Total votes 86: ↑85 and ↓1+84
Comments28

Вы — не Google

Reading time7 min
Views103K
Мы, программисты, иногда почему-то сходим с ума. Причём по каким-то совершенно нелепым причинам. Нам нравится думать о себе, как о супер-рациональных людях, но когда дело доходит до выбора ключевой технологии нового продукта, мы погружаемся в какое-то безумие. Вдруг оказывается, что кто-то слышал что-то об одной классной вещи, а его коллега читал комментарий о другой на Хабре, а третий человек видел пост в блоге о ещё чём-то похожем… и вот мы уже пребываем в полнейшем ступоре, беспомощно барахтаясь в попытках выбора между совершенно противоположными по своей сути системами, уже и забыв, что мы вообще пытаемся выбрать и почему.

Рациональные люди не принимают решения таким образом. Но именно так программисты часто решают использовать что-то вроде MapReduce.

Вот как комментировал этот выбор Joe Hellerstein своим студентам (на 54-той минуте):

Дело в том, что в мире сейчас есть где-то 5 компаний, обрабатывающие данные подобных объёмов. Все остальные гоняют все эти данные туда-сюда, добиваясь отказоустойчивости, которая им на самом деле не нужна. Люди страдают гигантоманией и гугломанией где-то с середины 2000-ых годов: «мы сделаем всё так, как делает Google, ведь мы же строим один из крупнейших (в будущем) сервисов по обработке данных в мире!»

image

Сколько этажей в вашем датацентре? Google сейчас строит четырёхэтажные, как вот этот в Оклахоме.
Читать дальше →
Total votes 252: ↑249 and ↓3+246
Comments197

Scheduling: мифы и реальность. Опыт Яндекса

Reading time10 min
Views48K
В последние пару лет я занимаюсь построением различных планировщиков, и мне пришло в голову поделиться своим нелёгким опытом с коллегами. Речь идёт о двух категориях коллег. Первые — это желающие узнать, как разработать свой scheduler за 21 день. Вторые — те, кому нужен новый scheduler совсем без смс и регистрации, просто чтобы работал. Особенно хотелось бы помочь второй категории людей.

Сундуков А.А. Очередь. 1986. Холст, масло

Сначала, как водится, стоит сказать несколько общих слов. Что такое scheduler (планировщик, или, для простоты, «шедулер»)? Это такая компонента системы, которая занимается распределением ресурса или ресурсов системы по потребителям. Разделение ресурса может происходить в двух измерениях: в пространстве и времени. Планировщики чаще всего фокусируются на втором измерении. Обычно под ресурсом подразумевают процессор, диск, память и сеть. Но, что греха таить, шедулить можно и любую виртуальную ерунду. Конец общих слов.
Читать дальше →
Total votes 86: ↑82 and ↓4+78
Comments8

Лекции Технотрека. Проектирование СУБД (осень 2016)

Reading time4 min
Views30K

image


Продолжаем публикацию наших образовательных материалов. Этот курс посвящен изучению основ языка SQL с учетом особенностей объектно-реляционной базы данных PostgreSQL. Программа предусматривает комплексный подход к изучению стандартизованного языка SQL на платформе PostgreSQL, включая некоторые минимальные возможности администрирования пользователей, ролей, схем, базовых таблиц и других объектов базы данных. Мы рассмотрим основы работы с базой данных PostgreSQL и некоторые особенности SQL применительно к ней. Более подробно — под катом.

Total votes 43: ↑40 and ↓3+37
Comments8

Создание и тестирование Firewall в Linux, Часть 2.2. Таблицы Firewall. Доступ к TCP\IP структурам

Reading time8 min
Views18K
Содержание первой части:


Содержание второй части:

2.1 — Введение во вторую часть. Смотрим на сеть и протоколы. Wireshark.
2.2 — Таблицы Firewall. Transport Layer. Структуры TCP, UDP. Расширяем Firewall.
2.3 — Расширяем функциональность. Обрабатываем данные в user space. libnetfilter_queue.
2.4 — Бонус. Изучаем реальную Buffer Overflow атаку и предотвращаем с помощью нашего Firewall'а.
Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments0

Erlang и его процессы

Reading time7 min
Views19K

0 Преамбула


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

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

В данной статье автор осветит функциональный язык программирования Erlang, парадигма которого может звучать так: «все является процессами». В первой части данной стати будет дана вводная информация по созданию и коммуникации процессов между собой, во второй мы остановимся на планировании процессов внутри виртуальной машины Erlang и спецификации процессов. Статья адресована для новичков, кто хочет начать создавать сложные, многопоточные и отказоустойчивые приложения на языке Эрланг.
Читать дальше →
Total votes 47: ↑45 and ↓2+43
Comments23

Ваш язык программирования — отстой

Reading time54 min
Views139K
1 Почему JavaScript отстой
• 1.1 Плохая конструкция
• 1.2 Система типов
• 1.3 Плохие функции
• 1.4 Отсутствующие функции
• 1.5 DOM
2 Почему Lua отстой
3 Почему PHP отстой
• 3.1 Исправлено в поддерживаемых в настоящее время версиях
4 Почему Perl 5 отстой
5 Почему Python отстой
• 5.1 Исправлено в Python 3
6 Почему Ruby отстой
7 Почему Flex/ActionScript отстой
8 Почему скриптовые языки отстой
9 Почему C отстой
10 Почему C++ отстой
11 Почему .NET отстой
12 Почему C# отстой
13 Почему VB.NET отстой
15 Почему Objective-C отстой
16 Почему Java отстой
• 16.1 Синтаксис
• 16.2 Исправлено в Java 7 (2011)
• 16.3 Модель
• 16.4 Библиотека
• 16.5 Обсуждение
17 Почему Backbase отстой
18 Почему XML отстой
19 Почему отстой XSLT/XPath
20 Почему CSS отстой
• 20.1 Исправлено в CSS3
21 Почему Scala отстой
22 Почему Haskell отстой
23 Почему Closure отстой
24 Почему Go отстой
• 24.1 Базовые средства программирования (базовый язык)
• 24.2 Взаимосовместимость
• 24.3 Стандартная библиотека
• 24.4 Набор инструментальных средств
• 24.5 Сообщество
25 Почему Rust отстой
• 25.1 Безопасность
• 25.2 Синтаксис
• 25.3 Конструкция API и система типов
• 25.4 Сообщество
• 25.5 Набор инструментальных средств

Почему JavaScript отстой


Учтите, что некоторые положения относятся не к самому JavaScript, а к программным интерфейсам веб-приложений (https://developer.mozilla.org/en/docs/Web/API).

Плохая конструкция

• Каждый скрипт исполняется в едином глобальном пространстве имён, доступ в которое возможен в браузерах с оконным объектом.
• Camel-регистр никуда не годится:

XMLHttpRequest
HTMLHRElement

Читать дальше →
Total votes 314: ↑167 and ↓147+20
Comments353

Современная операционная система: что надо знать разработчику

Reading time22 min
Views67K

Александр Крижановский (NatSys Lab.)


Александр Крижановский

Нас сегодня будет интересовать операционная система – ее внутренности, что там происходит… Хочется поделиться идеями, над которыми мы сейчас работаем, и отсюда небольшое вступление – я расскажу о том, из чего состоит современный Linux, как его можно потюнить?

По моему мнению, современная ОС – это плохая штука.




Дело в том, что на картинке изображены графики сайта Netmap (это штуковина, которая позволяет вам очень быстро захватывать и отправлять пакеты сетевого адаптера), т.е. эта картинка показывает, что на одном ядре с разной тактовой частотой до 3 ГГц Netmap позволяет 10 Гбит – 14 млн. пакетов в сек. отрабатывать уже на 500 МГц. Синенькая линия – это pktgen – самое быстрое, что, вообще, есть в ядре Linux’а. Это такая штуковина – генератор трафика, который берет один пакет и отправляет его в адаптер много раз, т.е. никаких копирований, никакого создания новых пакетов, т.е., вообще, ничего – только отправка одного и того же пакета в адаптер. И вот оно настолько сильно проседает по сравнению с Netmap (то, что делается в user-space показано розовой линией), и оно вообще где-то там внизу находится. Соответственно, люди, которые работают с очень быстрыми сетевыми приложениями, переезжают на Netmap, Pdpdk, PF_RING – таких технологий море сейчас.
Читать дальше →
Total votes 102: ↑94 and ↓8+86
Comments51

Определение веса значимости пользователей по отношению друг к другу на основании их действий (Tarantool+Lua)

Reading time13 min
Views10K
Есть система с множеством пользователей. Каждый пользователь системы может осуществлять действия по отношению друг к другу. На основании этих действий рассчитывается вес. Необходимо иметь возможность для каждого пользователя получать список остальных пользователей системы, отсортированный в порядке убывания веса. Характеристики весов у бездействующего пользователя меняться не должны.



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

Читать дальше →
Total votes 39: ↑36 and ↓3+33
Comments3

Tarantool как сервер приложений

Reading time8 min
Views29K
Привет, %хабраюзер%. Команда Тарантула продолжает делиться инсайтами и экспертизой для эффективной работы с данными в высоконагруженных проектах. Сегодня мы попытаемся разобраться, почему же Tarantool — это «два в одном»: не только база данных, но и сервер приложений. Наверное, некоторые слышали о Тарантуле как о сверхбыстром персистентном in-memory хранилище с поддержкой репликации и хранимок на Lua. Представьте, что мы берём кусочки Redis, добавляем замороженный Node.js, сверху заправляем Go, после чего варим, медленно перемешивая, в течение пяти минут после закипания. Казалось бы, при чём здесь Application Server?


Читать дальше →
Total votes 61: ↑59 and ↓2+57
Comments59

SBC+VPN+Tor+obfsproxy в кармане

Reading time7 min
Views42K
В этой статье будет рассказано об одном из вариантов получения переносного решения с Tor, VPN и обфускацией, к которому можно подключить свои мобильные устройства, ПК или ноутбук.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments25

Coursera закрывает курсы на старой платформе. Материалы можно скачать до 30 июня (есть скрипт)

Reading time6 min
Views70K

Ничего личного, просто бизнес


Если подумать, что самое важное принёс интернет в нашу жизнь? Что сильнее всего изменило общество, что наиболее ценное? Сложно ответить, трудно выбрать среди всего, слишком много вариантов приходит на ум. Один из этих вариантов — массовое открытое онлайн-образование, бесплатное и доступное для всех жителей Земли образование высочайшего уровня, c применением технологий электронного обучения и открытым доступом через интернет. Независимо от места жительства и финансового достатка каждый человек в мире сейчас может получить образование на высочайшем уровне, прослушать лекции лучших в мире специалистов по эффективным учебным программам, которые раньше были доступны только в элитных университетах.
Читать дальше →
Total votes 37: ↑36 and ↓1+35
Comments79
1
23 ...

Information

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