Search
Write a publication
Pull to refresh
2
0.1
Сергей @Chelyuk

User

Send message

Почему Биткоин – это хорошо

Reading time4 min
Views38K


Ко мне обратились с просьбой помочь аргументировано доказать, что BTC – это хорошо, несмотря на негативную реакцию на них России и некоторых окрестных стран.

Кстати, как характерно расположились на карте страны, согласно отношению к BTC…

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

Итак – чем же хороши BTC.
Читать дальше →

Maximum Transmission Unit (MTU). Мифы и рифы

Reading time7 min
Views332K
Maximum transmission unit (MTU) это максимальный объём данных, который может быть передан протоколом за одну итерацию. К примеру, Ethernet MTU равняется 1500, что означает, что максимальный объём данных, переносимый Ethernet фреймом не может превышать 1500 байт (без учёта Ethernet заголовка и FCS — Рис. 1).

image
Рис. 1

Давайте пробежимся с MTU по уровням OSI:
Читать дальше →

Катушка Тесла из хозмага

Reading time5 min
Views380K
Имея патологическую тягу к сантехнической фурнитуре никак не могу приучить себя использовать ее по прямому назначению. Всегда в голову лезут идеи, что сделать из труб, фитингов и переходников так, чтобы уже никогда не использовать их в сантехнике. Так получилось и в этот раз. Делаем высоковольтный генератор Тесла на сантехнической фурнитуре.
Что дальше?

Кош на комплексной плоскости

Reading time6 min
Views66K
В какой-то из весенних дней этого года я ехал в троллейбусе и листал комикс о Коше. В одном из выпусков была такая фраза «НО! Её можно понять, она же фракталами в горизонт перетекает, я бы тоже замешкался...». После этого я посмотрел в окно и понял, что если мы возьмём два подходящих дробно-линейных преобразования комплексной плоскости a(z) и b(z), и рассмотрим систему итерированных функций для a(z), b(z), a−1(z), b−1(z), взяв в качестве начального множества картинку с Кошем, то Кош будет перетекать фракталами в горизонт!

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

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



Читать дальше →

Всё, что вы хотели знать о Ethernet фреймах, но боялись спросить, и не зря

Reading time9 min
Views323K
Статья получилась довольно объёмная, рассмотренные темы — форматы Ethenet фреймов, границы размеров L3 Payload, эволюция размеров Ethernet заголовков, Jumbo Frame, Baby-Giant, и много чего задето вскользь. Что-то вы уже встречали в обзорной литературе по сетям передачи данных, но со многим, однозначно, не сталкивались, если глубоко не занимались изысканиями.

Начнём с рассмотрения форматов заголовков Ethernet фреймов в очереди их появления на свет.

Форматы Ehternet фреймов.


1) Ethernet II



Рис. 1
Читать дальше →

Автоматизация тестирования. Начало пути

Reading time10 min
Views112K
Добрый день, Хабр!

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

Настройка маршрутизации по двум провайдерам

Reading time3 min
Views98K
Вчера столкнулся с небольшой проблемой — на машине с Win2k3 установлены 2 сетевых карты, 2 провайдера. Проблема оказалась следующая: подсети пересекаются (точнее — совпадают). Было решено использовать за основной шлюз 1го провайдера, а по внутрисетевым ресурсам гулять — через 2го. И всё бы ничего, но машина должна обслуживать входящие соединения с обоих интерфейсов. Но, благодаря статическим маршрутам, ответы на запросы из подсети 10.0.0.0/8, пришедшей со стороны первого провайдера уходили через канал второго провайдера, что было, мягко говоря, не тем, что нужно. Как решить эту проблему под линухом — я знал (и тоже поведаю в этой заметке). Немного погуглив был найден вариант решения (в msdn'e наткнулись на управления приоритетами соединений). Коллега (WAJIM, привет) подумал — и нашёл 2й вариант. Потом немного (совсем немного) подумал я — и по аналогии появился 2й вариант решения для линуха :)
Итого, под катом вас ожидает 4 варианта решения задачи маршрутизации по 2м провайдерам — 2 под виндовс и 2 под линукс.
понеслась

Микровыпуск СДСМ. Подготовка лаборатории для мультикаст в GNS3

Reading time3 min
Views16K
В этой короткой заметке я хочу рассказать о том, как подготовить тестовый стенд для работы с мультикастом.
Для меня самого эта задача была очень актуальной при подготовке девятого выпуска Сетей Для Самых Маленьких.
Хочется ведь не просто увидеть циферки в консоли, а посмотреть видео.

В качестве эмулятора мы будем использовать GNS.

Поясняющее наглядное видео.



Для примера мы возьмём вот такую сеть:



Здесь R1 олицетворяет собой IP-сеть, редуцированную до одного узла — это в общем-то не имеет значения.
Главный вопрос: что будет на месте мультикастового сервера и клиента.
Читать дальше →

Автоматизированное тестирование веб-приложения (MS Unit Testing Framework + Selenium WebDriver C#). Часть 1: Введение

Reading time4 min
Views63K
image

Введение

Всем Buenos Dias! В своей статье я хотел бы максимально лаконично и просто рассказать о том, как построить процесс автоматизированного тестирования web-приложения с нуля. Первым делом нужно правильно расставить приоритеты и выбрать приемлемое соотношение цена/качество. Сразу определимся — это будет не решение «на коленках» из зоопарка скриптов, которыми часто пользуются при ручном тестировании. В тоже время мы не будем тратить много усилий на проектирование нашего «фреймворка» для автоматизации. Наша цель — предоставить результаты своей бурной деятельности перед руководством в максимально короткие сроки, при этом система должна быть:
  • максимально простой, чтобы тесты могли писать даже специалисты по ручному тестированию
  • гибкой и расширяемой, поскольку мы не можем адекватно оценить весь объем работ на данном этапе
  • кроссплатформенной (Selenium WebDriver C# поддерживает Firefox, Chrome и IE)

В своем примере я буду успользовать .NET (Microsoft Unit Testing Framework) и Selenium WebDriver C#.
Читать дальше →

Создание кроссплатформенного Smart TV приложения на базе библиотеки SmartBox для Samsung, LG, Philips и других

Reading time16 min
Views122K
Ввиду живого интереса к прошлой статье о библиотеке Smartbox, которая призвана стать основой для любого кроссплатформенного SmartTv приложения, я решили описать, как же создать такое приложение разом для трёх вендоров SmartTv устройств:

image
Как создать приложение. Как использовать библиотеку. Как запустить на устройствах и эмуляторах

Пузырьковая сортировка и все-все-все

Reading time5 min
Views641K

Все отлично знают, что из класса обменных сортировок самый быстрый метод – это так называемая быстрая сортировка. О ней пишут диссертации, её посвящено немало статей на Хабре, на её основе придумывают сложные гибридные алгоритмы. Но сегодня речь пойдёт не про quick sort, а про другой обменный способ – старую добрую пузырьковую сортировку и её улучшения, модификации, мутации и разновидности.

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

image: пузырьки

Сделать первый шаг в изучении сортировок

Практика IPv6 — домашняя сеть

Reading time17 min
Views275K
Abstract: Рассказ про некоторые возможности IPv6 на примере конфигурации сложной домашней IPv6-сети. Включает в себя описания мультикаста, подробности настройки и отладки router advertisement, stateless DHCP и т.д. Описано для linux-системы. Помимо самой конфигурации мы внимательно обсудим некоторые понятия IPv6 в теоретическом плане, а так же некоторые приёмы при работе с IPv6.

Зачем IPv6?


Вполне понятный вопрос: почему я ношусь с IPv6 сейчас, когда от него сейчас нет практически никакой пользы?

Сейчас с IPv6 можно возиться совершенно безопасно, без каких-либо негативных последствий. Можно мирно разбираться в граблях и особенностях, иметь его неработающим месяцами и nobody cares. Я не планирую в свои старшие годы становиться зашоренным коболистом-консерватором, который всю жизнь писал кобол и больше ничего, и все новинки для него «чушь и ерунда». А вот мой досточтимый воображаемый конкурент, когда IPv6 станет продакт-реальностью, будет либо мне не конкурентом, либо мучительно и в состоянии дистресса разбираться с DAD, RA, temporary dynamic addresses и прочими странными вещами, которым посвящено 30+ RFC. А что IPv6 станет основным протоколом ещё при моей жизни — это очевидно, так как альтернатив нет (даже если бы они были, их внедрение — это количество усилий бОльшее, чем завершение внедрения IPv6, то есть любая альтернатива всегда будет отставать). И что адреса таки заканчиваются видно, по тому, как процесс управления ими перешёл во вторую стадию — стадию вторичного рынка. Когда свободные резервы спекуляций и хомячаяния адресов закончится, начнётся этап суровой консолидации — то есть выкидывание всего неважного с адресов, перенос всех «на один адрес» и т.д. Примерно в это время IPv6 начнёт использоваться для реальной работы.

Впрочем, рассказ не про будущее IPv6, а про практику работы с ним. В Санкт-Петербурге есть такой провайдер — Tierа. И я их домашний пользователь. Это один из немногих провайдеров, или, может быть, единственный в городе, кто предоставляет IPv6 домашним пользователям. Пользователю выделяется один IPv6 адрес (для маршрутизатора или компьютера), плюс /64 сетка для всего остального (то есть в четыре миллиарда раз больше адресов, чем всего IPv4 адресов быть может — и всё это в одни руки). Я попробую не просто описать «как настроить IPv6», но разобрать базовые понятия протокола на практических примерах с теоретическими вставками.

Структура сети:

(Оригиналы картинок: github.com/amarao/dia_schemes)
  • 1, 2, 3 — устройства в локальной сети, работают по WiFi
  • 4 — WiFi-роутер, принужденный к работе в роле access point (bridge), то есть коммутатора между WiFi и LAN
  • 5 — eth3 сетевой интерфейс, который раздаёт интернет в локальной сети
  • 6 — мой домашний компьютер (основной) — desunote.ru, который раздачей интернета и занимается, то есть работает маршрутизатором
  • 7 — eth2, интерфейс подключения к сети Tiera

Читать дальше →

Как я перестал беспокоиться и полюбил Hyper-V Server

Reading time6 min
Views243K
Как я перестал беспокоиться и полюбил Hyper-V Server

Недавно у меня появилась задача “вжиться в шкуру пользователя” и на деле проверить, как работается на бесплатном Microsoft Hyper-V Server 2012.



Да-да, бесплатный сыр есть не только в мышеловке, но и у Майкрософта. Если вы хотите виртуализовать сервера или хотя бы ваш старый ноутбук, но при этом не хотите платить дополнительные деньги за гипервизор, то Hyper-V Server — это то, что нужно попробовать. Почему? Во-первых, он по-настоящему бесплатен – все функции, включая даже «энтерпрайзные», доступны пользователям сразу и без каких-либо оговорок, во-вторых, он поддерживается и развивается большой компанией, и, в-третьих, это просто старый добрый Windows, хоть и немного обрезанный до Server Core.



Под катом вас ждет рассказ о том, как установить и настроить Hyper-V Server и элегантно обойти ограничения этой платформы при помощи Линукса.


Читать дальше →

Десятка лучших консольных команд

Reading time2 min
Views198K
imageВ данном посте я расскажу о наиболее интересных командах, которые могут быть очень полезны при работе в консоли. Однозначных критериев определения какая команда лучше другой — нет, каждый сам для своих условий выбирает лучшее. Я решил построить список команд на основе наиболее рейтинговых приемов работы с консолью от commandlinefu.com, кладовой консольных команд. Результат выполнения одной из таких команд под Linux приведен на картинке. Если заинтересовало, прошу под кат.
Узнать больше

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

Reading time29 min
Views67K


Долго ли коротко ли длилась история linkmeup, но компания росла, развивалась. Счёт маршрутизаторов уже на десятки, свои опто-волоконные линии, развитая сеть по городу. И было принято решение оформлять компанию, как провайдера и предоставлять услуги доступа в Интернет для сторонних в том числе организаций.
Сама по себе задача административная — лицензии там, поиск клиентской базы, реклама, поставить СОРМ.
Разумеется, с технической стороны тоже нужны приготовления — просчитать ресурсы, мощности, порты, подготовить политику QoS. Но всё это (за исключением QoS) — рутина.

Мы же хотим поговорить о другом — IBGP. Возможно, тема покажется вам несколько притянутой за уши, мол, внутренний BGP — прерогатива достаточно крупных провайдеров.
Однако это не так, сейчас iBGP задействуется в ентерпрайзах чуть ли не чаще, чем в провайдерах. С целью исключительно внутренней маршрутизации. Например, ради VPN — очень популярное приложение на базе BGP в корпоративной среде. К примеру, возможность организовать периметры, изолированные на L3, на уже используемой инфраструктуре очень ценна. А префиксов-то может быть каких-то полсотни, а то и десяток. Вовсе никакой не Full View, однако все равно удобно.

Возможно, к нашей сети Linkmeup это не имеет по-прежнему отношения, но обойти стороной такую концепцию будет совершенно непростительно. Поэтому предположим, что сеть достаточно велика, и у нас есть необходимость в BGP в ядре.

Сегодня обсудим
  • Когда нужен IBGP
  • В чём отличия от EBGP
  • Route Reflector’ы
  • Конфедерации
  • Нерассмотренные в основной статье атрибуты BGP


Традиционное видео


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

Читать дальше →

Кружок электроники: программа занятий

Reading time11 min
Views144K
На прошлой неделе был пост про организацию занятий по электронике в школе. В этом посте, как и обещал, постараюсь изложить свои соображения насчет программы и методики ведения таких занятий.

На данный момент мы успели провести уже три занятия и даже съездили на чемпионат по робо-сумо (пока, конечно, в качестве зрителей). Поэтому хочу поделиться своими первыми впечатлениям.

Читать дальше →

Tizen Native programming. Пишем «Hello Habrahabr» для ОС Tizen

Reading time2 min
Views22K

Как многим известно в скором времени ряды мобильных телефонов пополнят аппараты на ОС Tizen, разрабатываемой совместно компаниями Samsung и Intel. Для разработчиков планирующих заняться написанием приложений под Tizen, была также создана SDK с помощью которой и будет написано наше первое приложение с использованием Tizen Native App Programming в Tizen IDE.
(много картинок)
Читать дальше →

Russian Code Cup 2013: разбираем задачи финала

Reading time20 min
Views28K


23 сентября 2013 года состоялся финал чемпионата по программированию Russian Code Cup 2013.

Первое место занял Петр Митричев (кстати, чемпион RCC 2011). Второй приз взял Геннадий Короткевич, третье — Дмитрий Джулгаков.

Сегодня мы публикуем подробный разбор шести задач, которые были предложены финалистам RCC (спойлер: одна из них так и осталась нерешенной). В программе — сортировка невиданной быстроты, борьба с капибарным гриппом, путешествия роботов и многое другое.

Читать дальше →

«Boost.Asio C++ Network Programming». Глава 3: Эхо сервер/клиент

Reading time9 min
Views70K
Всем привет!
Продолжаю перевод книги John Torjo «Boost.Asio C++ Network Programming».

Содержание:


В этой главе мы реализуем небольшое клиент/серверное приложение, которое, вероятно, будет самым простым клиент/серверным приложением. Это приложение эхо-сервер, который возвращает клиенту то, что тот ему написал, а затем закрывает соединение клиента. Сервер может работать с любым числом клиентов. Когда подключается новый клиент, он шлет сообщение. Сервер получает сообщение целиком и посылает его обратно. После этого он закрывает соединение.
Таким образом, каждый эхо-клиент подключается к серверу, посылает сообщение и читает то, что ответил сервер, убедившись, что это то же сообщение, которое он послал, заканчивает общение с сервером.
Сначала мы будем реализовывать синхронное приложение, а затем асинхронное, так что вы можете легко их сравнить:



Здесь будет приводиться не весь код целиком, а только его части, весь код можно посмотреть по ссылке в конце статьи.
Читать дальше →

Сломается ли база, если выдернуть сервер из розетки, или потроха DB ORACLE для чайников

Reading time5 min
Views29K
Писал для коллег — программистов, далёких от предметной области, которые действительно, искренне не понимали, что такого сложного в базе данных. Они хотели хранить критические данные в простых файлах. Я задавал им каверзные вопросы о надёжности, скорости и одновременном доступе, они пытались «на ходу» придумать хитрые решения. В конце они трезво оценили требуемый объём кода и поняли, что им придётся написать свой маленький ORACLE или, хотя бы, MySQL. Затем я рассказал им, как были решены эти проблемы в DB ORACLE, их поразило изящество некоторых алгоритмов. Лекция понравилась, и я решил выложить её в открытый доступ.

Читать дальше →

Information

Rating
3,866-th
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity