Pull to refresh
0
0
Send message

Подробный разбор симплекс-метода

Reading time6 min
Views265K

Пролог


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

Замечание. Пост будет написан достаточно формальным языком, но будет снабжен комментариями, которые должны внести некоторую ясность. Такой формат позволит сохранить научный подход и при этом, возможно, поможет некоторым в изучении данного вопроса.
Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments27

Поиск научных публикаций в Интернете. Часть 1. Что искать

Reading time7 min
Views18K
Начну с небольшого эпиграфа:

As has often been pointed out, the advent of the internet has
forever changed how information and ideas are distributed

(Plotnik R.E., Paleont. Electr., vol.1, 2010,
palaeo-electronica.org/2010_1/commentary/mainstream.htm)

Я не случайно привёл в качестве эпиграфа отрывок из редакционной заметки в журнале Paleontologia Electronica – я палеонтолог, основной областью моих научных интересов являются изучение юрских отложений и встречающихся в них остатков головоногих моллюсков — аммонитов. Взяться за данный обзор я решил главным образом потому, что других обзоров такого типа мне не попадалось, и в то же время общение с коллегами и выступления перед ними укрепили меня в мысли, что грамотно использовать современные возможности поиска научной информации в сети Интернет умеют очень немногие. Ну а разместить всё это на хабре мне стало интересно в связи с тем, что c одной стороны здесь достаточно регулярно появляются заметки, каким-либо образом связанные с научными публикациями, а с другой стороны — здесь можно получить отклик от людей, связанных с совершенно другими научными направлениями и вообще от науки далёкими, что может дать мне возможность посмотреть на привычные вещи немного с иной стороны. Вполне возможно, что какие-то способы поиска публикаций, известные другим посетителям сайта я мог упустить, и в этом отношении тоже было бы полезно получить какой-нибудь отклик.
Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments16

Откуда «мыло» в WPF и как с ним бороться

Reading time21 min
Views82K


Это руководство для WPF-разработчиков, стремящихся добиться максимально чёткой картинки в своих приложениях. Графическая система WPF до мозга костей векторная, но конечным результатом её работы по-прежнему является растр. Если не уделить этому факту должного внимания, можно столкнуться с различными сортами «мыла» — паразитными артефактами растеризации. В такой ситуации важно не терять присутствия духа, причины их возникновения вполне рациональны, а методы борьбы достаточно просты и эффективны.
Читать дальше →
Total votes 184: ↑175 and ↓9+166
Comments62

Assert-сообщения в тестах

Reading time5 min
Views6.4K
И снова здравствуйте. В преддверии старта курса «Разработчик C#» перевели интересный материал про assert-сообщения в тестах и с радостью делимся с вами переводом.




В этом посте мы поговорим о том, должны ли вы использовать Assert-сообщения в ваших тестах.

Я получил интересный вопрос от коллеги читателя, на котором хотел бы остановиться поподробнее:

У меня вопрос по поводу Assert-сообщений: следует ли использовать перегрузку, содержащую параметр сообщения, и использовать ее для передачи строки, описывающей причину неудачи Assert (также “Утверждения”)?
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments5

Пройти LeetCode за год: экскурсия по сайту и roadmap [обновлено 30.11.2023]

Level of difficultyEasy
Reading time23 min
Views106K

С наступающим наступившим вновь наступающим, Хабр.

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

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

С сайтом несколько больно знакомиться, он отпугивает вездесущими приписками "premium", пользуясь славой ресурса для техсобесов продвигает функционал вроде списков компаний, где встречался вопрос n и симуляции интервью в компанию m, да и сам не особо стремится рассказать о себе, потому в нём зачастую и видно голый задачник с одной страницей "problems".

За всем этим теряется важный пункт – а можно ли использовать сайт не для механического зазубривания популярных вопрос-ответов, а для изучения/закрепления алгоритмов и структур данных? Можно. Но подход к этому нужно формировать самостоятельно.

🏆
Total votes 37: ↑36 and ↓1+44
Comments30

Еще раз про IP-адреса, маски подсетей и вообще

Reading time7 min
Views1.5M
Чуточку ликбеза. Навеяно предшествующими копипастами разной чепухи на данную тему. Уж простите, носинг персонал.

IP-адрес (v4) состоит из 32-бит. Любой уважающий себя админ, да и вообще айтишник (про сетевых инженеров молчу) должен уметь, будучи разбуженным среди ночи или находясь в состоянии сильного алкогольного опьянения, правильно отвечать на вопрос «из скольки бит состоит IP-адрес». Желательно вообще-то и про IPv6 тоже: 128 бит.

Обстоятельство первое. Всего теоретически IPv4-адресов может быть:
232 = 210*210*210*22 = 1024*1024*1024*4 ≈ 1000*1000*1000*4 = 4 млрд.
Ниже мы увидим, что довольно много из них «съедается» под всякую фигню.


Записывают IPv4-адрес, думаю, все знают, как. Четыре октета (то же, что байта, но если вы хотите блеснуть, то говорите «октет» — сразу сойдете за своего) в десятичном представлении без начальных нулей, разделенные точками: «192.168.11.10».

В заголовке IP-пакета есть поля source IP и destination IP: адреса источника (кто посылает) и назначения (кому). Как на почтовом конверте. Внутри пакетов у IP-адресов нет никаких масок. Разделителей между октетами тоже нет. Просто 32-бита на адрес назначения и еще 32 на адрес источника.
Читать дальше →
Total votes 286: ↑261 and ↓25+236
Comments204

Сети для самых маленьких. Часть пятая. ACL и NAT

Reading time28 min
Views423K


Продолжаем развитие нашей маленькой уютной сети Лифт ми Ап. Мы уже обсудили вопросы маршрутизации и стабильности, и теперь, наконец, выросли для подключения к Интернету. Довольно заточения в рамках нашей корпоративной среды!
Но с развитием появляются и новые проблемы.
Сначала вирус парализовал веб-сервер, потом кто-то притаранил червя, который распространился в сети, заняв часть полосы пропускания. А ещё какой-то злодей повадился подбирать пароли на ssh к серверу.
А представляете, что начнётся, когда мы подключимся к Интернету?!
Итак, сегодня:
1) учимся настраивать различные списки контроля доступа (Access Control List)
2) пытаемся понять разницу между ограничением входящего и исходящего трафика
3) разбираемся с тем, как работает NAT, его плюсы, минусы и возможности
4) на практике организуем подключение к Интернету через NAT и увеличим безопасность сети, используя списки доступа.

Читать дальше →
Total votes 91: ↑90 and ↓1+89
Comments49

Сети для самых маленьких. Часть третья. Статическая маршрутизация

Reading time28 min
Views570K
Мальчик сказал маме: “Я хочу кушать”. Мама отправила его к папе.
Мальчик сказал папе: “Я хочу кушать”. Папа отправил его к маме.
Мальчик сказал маме: “Я хочу кушать”. Мама отправила его к папе.
И бегал так мальчик, пока в один момент не упал.
Что случилось с мальчиком? TTL кончился.




Итак, поворотный момент в истории компании “Лифт ми Ап”. Руководство понимает, что компания, производящая лифты, едущие только вверх, не выдержит борьбы на высококонкурентном рынке. Необходимо расширять бизнес. Принято решение о покупке двух заводов: в Санкт-Петербурге и Кемерово.
Нужно срочно организовывать связь до новых офисов, а у вас ещё даже локалка не заработала.
Сегодня:
1. Настраиваем маршрутизацию между вланами в нашей сети (InterVlan routing)
2. Пытаемся разобраться с процессами, происходящими в сети, и что творится с данными.
3. Планируем расширение сети (IP-адреса, вланы, таблицы коммутации)
4. Настраиваем статическую маршрутизацию и разбираемся, как она работает.
5. Используем L3-коммутатор в качестве шлюза

Читать дальше →
Total votes 108: ↑104 and ↓4+100
Comments49

Сети для самых маленьких. Часть вторая. Коммутация

Reading time18 min
Views774K


После скучного рассказа о подключении к кошкам переходим к настройке сети. В этот раз темы будут для новичков сложные, для старичков избитые. Впрочем сетевым аксакалам едва ли удастся почерпнуть что-то новое из этого цикла. Итак, сегодня:
а) аккуратно впитываем теорию о коммутаторах, уровнях сетевой модели, понятии инкапсуляции и заголовков (не пугайтесь — еще не время),
б) собираем спланированную в нулевой части цикла сеть,
в) настраиваем VLAN'ы, разбираемся с access и trunk-портами и тегированными Ethernet-фреймами,
г) соотносим текущие знания со стеком протоколов TCP/IP и моделью OSI (да, наконец-то мы ее коснёмся).



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

Читать дальше →
Total votes 92: ↑88 and ↓4+84
Comments45

Сети для самых маленьких. Часть шестая. Динамическая маршрутизация

Reading time43 min
Views477K


Сеть “Лифт ми Ап” вместе со своим штатом разрастается вдоль и поперёк. Обслуживание ИТ-инфраструктуры вынесли в отдельную специально созданную организацию “Линк ми Ап”.
Буквально на днях были куплены ещё четыре филиала в различных городах и инвесторы открыли для себя новые измерения движения лифтов. А сеть выросла с четырёх маршрутизаторов сразу до десяти. При этом количество подсетей теперь увеличилось с 9 до 20, не считая линков точка-точка между маршрутизаторами. И тут во весь рост встаёт управления всем этим хозяйством. Согласитесь, добавлять на каждом из узлов маршруты во все сети вручную — мало удовольствия.
Ситуация усложняется тем, что сеть в Калининграде уже имеет свою адресацию и на ней запущен протокол динамической маршрутизации EIGRP.
Итак, сегодня:
— Разбираемся с теорией протоколов динамической маршрутизации.
— Внедряем в сеть “Лифт ми Ап” протокол OSPF
— Настраиваем передачу (редистрибуцию) маршрутов между OSPF и EIGRP
— В этом выпуске мы добавляем раздел “Задачи”. Идентифицировать по ходу статьи их будут такие пиктограммы:


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

Читать дальше →
Total votes 87: ↑83 and ↓4+79
Comments64

Сети для Самых Маленьких. Микровыпуск №5. FAQ по сетевым технологиям

Reading time12 min
Views106K
Пока весь мир с замиранием ждёт 11-го выпуска СДСМ, посвящённого MPLS BGP L3VPN, я решил сделать вольный перевод неплохой статьи Джереми Стреча с Packetlife.net.

Это подборка небольших FAQ для новичков.

#На каком уровне OSI работает протокол Ч?
#Какая разница между маршрутизатором и многоуровневым коммутатором?
#Какая разница между forwarding и control planes?
#Какая разница между MTU и MSS?
#Какая разница между интерфейсами VLAN и BVI?
#Как работает туннельный интерфейс?
#Что означают четыре типа адресов в NAT?
#Могу ли я использовать адрес сети и широковещательный адрес в NAT-пуле?
#Почему нам нужны IP-адреса? Разве нам не хватит MAC-адресации для всего?
#Позволяет ли QoS расширить пропускную способность?
Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments7

Сети для самых маленьких. Часть десятая. Базовый MPLS

Reading time45 min
Views388K
Сеть нашей воображаемой компании linkmeup растёт. У неё есть уже магистральные линии в различных городах, клиентская база и отличный штат инженеров, выросших на цикле СДСМ.
Но всё им мало. Услуги ШПД — это хорошо и нужно, но есть ещё огромный потенциальный рынок корпоративных клиентов, которым нужен VPN.
Думали ребята над этим, ломали голову и пришли к выводу, что никак тут не обойтись без MPLS.

Если мультикаст был первой темой, которая требовала некоторого перестроения понимания IP-сетей, то, изучая MPLS, вам точно придётся забыть почти всё, что вы знали раньше — это особенный мир со своими правилами.



Сегодня в выпуске:


А начнём мы с вопроса: «Что не так с IP?»

Читать дальше →
Total votes 72: ↑72 and ↓0+72
Comments49

Задачки по сетям. Странное падение

Reading time1 min
Views16K
Новая сетевая задачка из необычных.

Вот упрощённая топология:



Имеем опорную сеть, с запущенным MPLS TE. Поверх сети организована услуга VPLS для крупного клиента.
Между маршрутизаторами натянуты TE-Туннели, в которые трафик VPLS заворачивается с помощью политик.

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

Одним чудесным утром всё пропало — два линка, изображённые красным, упали (физически, порвали оптику, например). И как бы логично, что стали недоступны узлы 2 и 3. Но вот странность: вслед за ними клиент стал жаловаться на проблемы с узлом 4 — сервисы тоже перестали работать. После восстановления повреждённых линий всё починилось на всех узлах.

Внимание, знатоки, вопрос: кто виноват и что делать?
Total votes 22: ↑17 and ↓5+12
Comments43

Задачки по сетям. Проблемы в сети MPLS TE

Reading time1 min
Views20K
Как инженера тех.поддержки вендора и автора цикла «Сети для самых маленьких» и подкаста для связистов, меня часто спрашивают, чем мне приходится заниматься на работе и как накапливается опыт.
Итак, я занимаюсь решением проблем.
Хотел бы предложить хабрасообществу сетевиков новый формат статей — задачки. Я описываю симптомы, предоставляю данные, которые вы попросите, вы ищите решение.

Итак, начнём с простого: имеем вот такую MEN-сеть:



На ней запущен MPLS TE. R1 является центральным устройством, обеспечивающий подключение к Интернету и контроллерам базовых станций. Всё организовано через L2VPN. До 2G БС, конечно, проведён TDM.
Время от времени на сети происходит странное: базовые станции теряют синхронизацию с контроллерами. На фиксированной сети начинаются потери, и скорость падает значительно.
Всё это относится к сегменту доступа, подключенному к R4.

Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments34

АДСМ6. Интерфейсы взаимодействия с сетевыми устройствами

Reading time81 min
Views16K

Это вторая статья - техническо-практический разбор протоколов и интерфейсов автоматизации сети.

Если хочется исторической справки, я отсылаю читателя к статье-спутнику, в которой мы двигаемся от начала времён в будущее человечества. Какую роль сыграли в нашем настоящем IETF, ISO, олдовые и современные вендоры и даже просто люди.
В этой же мы раскрываем дерево XML, пробуем на вкус капабилити NETCONF, шлём первые RPC и наконец уже расставим в правильном порядке буквы YANG, OpenConfig, gNMI.

Практическую пользу вам принесут только обе прочитанные статьи. Вторая без первой будет непонятна. Первая без второй - беллетристика.

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

АДСМ5. История сетевой автоматизации

Reading time37 min
Views9.3K

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

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

АДСМ4. Жизненный цикл сетевого оборудования и архитектура системы автоматизации

Reading time25 min
Views6.3K
Продолжаем наш забег по сетевой автоматизации.
Итак, сеть спроектирована, IPAM запущен. И вот-вот начнут съезжаться миллионы наших стоек. Будем готовиться к этому.

Мы всё дальше от фантазий и абстрактных разговоров и ближе к практике.

И всё же снова сделаем отступление. Большое дело начинается с большого перекура.

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

Однако рано или поздно всё равно любая задача декомпозируется до уровня отдельных сетевых коробок.

И если про сеть как единый организм мы уже поговорили в 0-й статье, то теперь пришло время разобраться отдельными органами.



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

Естественно, всё это интересует нас с точки зрения автоматизируемости. Поэтому ещё мы нарисуем архитектуру системы автоматизации.

Кстати, не так давно вышла просто восхихитительная обзорная статья Дмитрия Тесля о процессе и инструментах сетевой автоматизации. Он смог лаконично изложить то, вокруг чего я пляшу уже несколько выпусков АДСМ. Настоятельно рекомендую прочитать её перед тем, как приступать к этой.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments0

Автоматизация Для Самых Маленьких. Заметки. RESTful API

Reading time14 min
Views84K
Эта статья — одна из обещанных коротких заметок по ходу цикла статей Автоматизация Для Самых Маленьких.
Поскольку основным способом взаимодействия с IPAM-системой будет RESTful API, я решил рассказать о нём отдельно.



Воздаю хвалы архитекторам современного мира — у нас есть стандартизированные интерфейсы. Да их много — это минус, но они есть — это плюс.

Эти интерфейсы взаимодействия обрели имя API — Application Programming Interface.

Одним из таких интерфейсов является RESTful API, который и используется для работы с NetBox.



Если очень просто, то API даёт клиенту набор инструментов, через которые тот может управлять сервером. А клиентом может выступать по сути что угодно: веб-браузер, командная консоль, разработанное производителем приложение, или вообще любое другое приложение, у которого есть доступ к API.

Например, в случае NetBox, добавить новое устройство в него можно следующими способами: через веб-браузер, отправив curl'ом запрос в консоли, использовать Postman, обратиться к библиотеке requests в питоне, воспользоваться SDK pynetbox или перейти в Swagger.

Таким образом, один раз написав единый интерфейс, производитель навсегда освобождает себя от необходимости с каждым новым клиентом договариваться как его подключать (хотя, это самую малость лукавство).
Читать дальше →
Total votes 13: ↑11 and ↓2+18
Comments8

Автоматизация Для Самых Маленьких. Часть Вторая. Дизайн сети

Reading time9 min
Views19K
В первых двух статьях я поднял вопрос автоматизации и набросал её фреймворк, во второй сделал отступление в виртуализацию сети, как первый подход к автоматизации настройки сервисов.
А теперь пришло время нарисовать схему физической сети.

Если вы не на короткой ноге с устройством сетей датацентров, то я настоятельно рекомендую начать со статьи о них.

Все выпуски:


Описанные в этой серии практики должны быть применимы к сети любого типа, любого масштаба с любым многообразием вендоров (нет). Однако нельзя описать универсальный пример применения этих подходов. Поэтому я остановлюсь на современной архитектуре сети ДЦ: Фабрике Клоза.
DCI сделаем на MPLS L3VPN.

Поверх физической сети работает Overlay-сеть с хоста (это может быть VXLAN OpenStack'а или Tungsten Fabric или что угодно другое, что требует от сети только базовой IP-связности).



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

Мы выберем сферический ДЦ в вакууме:

  • Одна версия дизайна везде.
  • Два вендора, образующих две плоскости сети.
  • Один ДЦ похож на другой как две капли воды.



Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments2

Автоматизация Для Самых Маленьких. Часть 1.1. Основы виртуализации

Reading time15 min
Views45K
Предыдущая статья рассматривала архитектуру виртуализированной сети, underlay-overlay, путь пакета между VM и прочее.
Роман Горге вдохновился ею и решил написать обзорный выпуск о виртуализации вообще.

В данной статье мы затронем (или попытаемся затронуть) вопросы: а как собственно происходит виртуализация сетевых функций, как реализован backend основных продуктов, обеспечивающих запуск и управление VM, а также как работает виртуальный свитчинг (OVS и Linux bridge).

Тема виртуализации широка и глубока, объяснить все детали работы гипервизора невозможно (да и не нужно). Мы ограничимся минимальным набором знаний необходимым для понимания работы любого виртуализированного решения, не обязательно Telco.



Содержание


  • Введение и краткая история виртуализации
  • Типы виртуальных ресурсов — compute, storage, network
  • Виртуальная коммутация
  • Инструменты виртуализации — libvirt, virsh и прочее
  • Заключение




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

Information

Rating
Does not participate
Registered
Activity