Добавление событий в Team Calendar из странички в Atlassian Confluence

Допустим, вы купили себе Confluence и используете его для планирования совещаний. Потом вы захотели иметь календарь всех совещаний, и чтобы он напоминал сотрудникам о них. И купили Team Calendar.

Теперь, чтобы запланировать совещание, вам нужно сначала создать страничку в Confluence, а потом руками завести совещание в Team Calendar.

На данный момент, нет готовой интеграции для автоматического создания событий из страничек, и REST API не опубликован.

Читать далее Добавление событий в Team Calendar из странички в Atlassian Confluence

Мой инстаграм



Анна Васильевна после прочтения книги Пелевина про лампу Мафусаила, чекистов и масонов, высказала свое мнение: Пелевин словно многосерийная компьютерная игра стиснут в системе координат, одна ось которой названа именем древнеегипетского бога мудрости Тот, а на другой оси отмечена актуальность графики, что есть ключевое мерило качества современного развлекательного гейм (с буквой «м», что важно) продукта. Самой важной для читателя будет та книга Пелевина, что он прочитал в юности. Потому недостаточно сидеть в точке «Пелевин — Тот», а необходимо следить и за тем, чтобы графика была на уровне, тогда текст зайдёт продвинутым школьникам, желающим глянцевым томиком отгородиться от так называемых обычных детей. Как сонная сентябрьская муха Пелевин пытается выбрать ось, чтобы зацепиться за неё лапками и отдохнуть, тогда как лучшие его вещи родились всё–таки в полёте. #пелевин #чтение

О Камю

Вообще, я думал, что всякие такие Камю или там Буковски — это книжки для гуманитаров, которые только и делают, что сидят на ступенях университета и читают эти свои Камю, Прусты или Джойсы.

А стал читать я его в университете, потому что предполагалось тусоваться в компании жостких гуманитариев. И я обдумывал такую миниатюру, как в апогее вечера я вдруг вскакиваю и говорю «Вот вы думаете, что все технари тупые и из книжек читают только мануалы! А вот я — осилил Камю!» и даже бы процитировал бы абзац.

И на следующий день в их твиттерах появись бы записи «живьём видела технаря, который не только мог говорить, но ещё и вызубрил для нас Камю!»

С такой мыслью я закачал свой телефон этим Камю, а потом читал и рыдал, читал и рыдал, право слово.

Вот мой любимый эпизод (целиком — http://www.lib.ru/INPROZ/KAMU/padenie)

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

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

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

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

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

Я повернулся к этому мушкетеру, но, по правде сказать, даже и не увидел его. Едва я повернул голову, как мотоцикл затрещал во всю мочь, а мотоциклист изо всей силы дал мне по уху. Не успел я сообразить, что произошло, как он умчался. Растерявшись, я машинально двинулся к д’Артаньяну, но тут начался отчаянный концерт — за моей машиной уже выстроилась вереница автомобилей.

Снова зажегся зеленый свет. И тогда я, все еще растерянный, вместо того чтобы оттаскать дурака, набросившегося на меня, покорно забрался в машину и поехал, а дурак послал мне вдогонку: «Что, съел?» — и я все еще помню об этом оскорблении.
конец цитаты.

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

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

Матрасный пузырь

Внезапно на сайте Psychology Today ознакомился с материалом «Чего это так много матрасных магазинов в США?»

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

  1. Матрасных магазинов в США примерно как Старбаксов. А Старбаксов — 12 тысяч штук.
  2. Продуктовые магазины делают около 5% прибыли. Матрасная мафия зарабатывает 40-50% на дешёвых матрасах, и до 900% на люксовых (те, которые 3000$ стоят)
  3. Матрасники открывают свои магазины рядом друг с другом, создавая агломерации матрасных магазинов. Это интересный момент — они не ищут районы, где нет конкурентов, а, наоборот, идут туда, где конкурентов много. Потому что покупателю удобнее поехать в «матрасный район» и походить по разным магазинам. Таким образом, увеличивается трафик желающих заиметь матрас!
  4. Американцы не любят покупать матрасы онлайн.
  5. Производители матрасов запаковывают свой товар под десятками различных брендов, под каждую розничную сеть отдельно. Ты приходишь в магазин, находишь там устраивающий тебя «Суперматрас-1000», идёшь в другой магазин, чтобы сравнить цену, и обнаруживаешь, что в других магазинах «Суперматрас-1000» не продаётся. Ну ладно, в Суперматрасе-1000 был гелевый поролон с двойной памятью, а у вас есть гелевый поролон с двойной памятью? Нет, у нас есть матрасы с Осанкопедическим сеном, а также Смарт-климат-пенопластовые.
  6. Когда американцы женятся, они покупают гигантский матрас. Потом, когда разводятся, покупают ещё два односпальных. Похоже, матрасная мафия заинтересована в росте разводов!

Музыка как стартап, или почему iTunes — зло

Это перепост моей статьи с habrahabr.ru

Меня зовут Василий Густелёв, я один из авторов проекта «Музыка Невидимых Людей». Когда нашу музыку не взяли ни на один лейбл, мы создали свой собственный. Выпуская по десятку релизов в год, быстро начинаешь что-то понимать. Оказывается, музыкантам многому можно учиться у стартаперов, а релиз на iTunes — самое распоследнее, чем следует заниматься независимому артисту.

Послушайте нашу музыку, пока читаете

Вообще, если ты независимый музыкант, то размещение на iTunes будет стоить тебе денег. К примеру, на Tunecore цена размещения альбома составляет 30$ за первый год и 50$ за каждый последующий. Но при этом 100% прибыли музыкант забирает себе. Просто выложить свой каталожик сочинённого за долгие годы выходит весьма накладно.
Поэтому, как только мы нашли людей, которые организовали нам публикацию за 30% роялти — мы сразу же открыли лейбл и всем своим знакомым музыкантам предложили вывалить в сеть содержимое архивов. Нехитрая математика подсказывает, что этот вариант выгодней, если доходы с альбома не превышают 160$ в год.

Страшная тайна вот в чём: за четыре года работы лейбла с айтюнса мы лишь один раз вывели четыре тысячи рублей. В остальном релизы зарабатывают в пределах пятисот рублей в год. Площадки вроде Bandcamp дают значительно более серьёзные суммы! И, глядя на все эти отчёты, я хочу с уверенностью вам заявить: единственная польза от айтюнса для независимого музыканта — показывать в баре подружкам, что вы действительно музыкант. Назовём это репутационным моментом. Если девушки в барах и так доверяют вашему статусу как музыканта, лучше вообще не размещать музыку на iTunes.

Давайте посмотрим на деятельность инди-группы, как на стартап. Вы выпускаете товар — музыкальные композиции. И некоторые из вас на основе этого товара оказывают услугу «живая музыкальная программа». Как же нам обеспечить постоянный рост продаж? Я уверен, что основной стратегией инди-музыканта должен быть сбор базы подписчиков. База подписчиков — это ключевой ресурс, и он является главным показателем успешности группы.

Что такое база подписчиков? Это список любых контактов людей, которым нравится ваша музыка, и получив сообщение от вас, они его не выкинут в спам. Мы собираем следующую инфу: имя, телефон, емэйл, адрес в соц сетях и город.

Как пользоваться базой подписчиков?
Когда у вас выходит новая музыка — вы сообщаете это всей базе. Хорошо бы уметь проверять, что сообщение доставлено.
Когда у вас анонсирован концерт — вы выбираете из базы подписчиков с нужного города и сообщаете им.
Если у вас собрана хорошая коллекция контактов, вы сможете обеспечивать определенное количество продаж билетов, и орги будут обожать вас за это. В небольших клубах орги сами не имеют базы своих регулярных посетителей!

Как собирать базу подписчиков в онлайне? Напишу наши идеи:
1. Очевидный путь — это соц сети. Знакомимся через ЛС с людьми, которые вступили в ваш паблик/встречу или лайкали музыку, и если они идут на контакт — заносим в список.
2. Даём скачивать музыку бесплатно, если оставляют свой email. На сайте bandcamp эта функциональность имеется по-умолчанию!
3. Устраиваем онлайн конкурсы, в которых можно поучаствовать оставив свои контакты.

Как собрать базу подписчиков в оффлайне?
На самом деле, никто из моих знакомых музыкантов не собирает списки подписчиков в оффлайне, а только процеживают вступивших во встречи. Между тем, люди, которые подняли свою пятую точку с дивана и пришли к вам на концерт — это самая лояльная аудитория. Если им вкатил концерт, они ваши полностью. В первую очередь, именно они должны составлять основу вашей базы. Ищите способы собрать их контакты! Вот несколько идей:
1. Просто раздавайте на входе анкету, в которой будут вопросы типа «какая песня больше понравилась», и конечно контактные данные. Потом не забудьте прислать им письмо с благодарностью!
2. Давайте скидку на мерч если заполняют анкету
3. Разыгрывайте призы среди тех, кто заполнил анкету
4. Собирайте контакты под предлогом, что пришлете фотки с концерта
5. Если записываете концерт, предлагайте оставить контакты желающим получить запись раньше всех

Если вы сделали концерт и не собрали там новых подписчиков — я вообще не понимаю, зачем вы делали концерт.

Почему айтюнс — зло?
Потому что вы не знаете, кто слушает вашу музыку. Какие-то анонимные люди за полрубля послушали ваши треки, и от этого ни денег ни удовольствия. Очень сложно на айтюнсе попасть в какой-то плейлист или хит-парад, чтобы с вами познакомилась какая-то новая аудитория. Инди-музыка маловероятно попадёт в рекомендации. Вы лежите там на дальней полке, и вас будут слушать только те люди, которых вы направили туда сами. При этом, айтюнс кучу денег забирает себе!
Теперь сравните с bandcamp: вы знаете почту каждого, кто скачал вашу музыку. Вы тут же получаете бабки с каждой продажи, и пропорция там весьма честна. И вы можете продавать мерч через ту же платформу.

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

Бонус-трек: как принимать деньги на бендкемпе?
Меня часто спрашивают, как принимать бабло на бендкемпе. Проблема в том, что бендкемп не принимает оплату в рублях, а на территории нашей страны запрещено продавать что-то в валюте. Paypal очень строго выполняет законы, и запрещает гражданам РФ продавать музыку за валюту. Выход очень прост: обмануть Paypal и сделать вид, что вы европейцы. В Европе гражданам можно продавать их музыку за любую валюту. Конкретно мы сделали так: наш партнёр живёт в Бельгии, у него там есть местная пластиковая карта, к которой он привязал Paypal. Именно этот аккаунт он привязал к Bandcamp. Иностранцы просто рассчитываются в валюте, а если покупку совершает русский, то никакого нарушения не происходит: он покупает как-бы из-за рубежа. Потом мы эти деньги как-нибудь переводим себе.
Главная проблема в том, что у обычных русских людей не всегда есть paypal 🙁 И ваши русские фанаты могут затрудниться купить вашу музыку. Обсудим это в следующий раз.

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

Резюмирую: собирайте базу подписчиков, пользуйтесь bandcamp или подобными сервисами, айтюнс — зло.

Творческих вам успехов!

P.S. буквально завтра Музыка Невидимых Людей начинает запись нового альбома.

Управление рок-группой

Это репост моей статьи с habrahabr.ru

Меня зовут Василий Густелёв, я один из авторов проекта «Музыка Невидимых Людей». Я хочу рассказать вам о способах управления, которые я применял во время создания нашего нового альбома. Вы не найдете в статье никаких ноу-хау, скорее это пример использования популярных методик.

Идея

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

Идея начала рождаться после просмотра видео, где господа играют в каком-то ангаре:

Уточняя требования к помещению, мы сошлись на том, что нам важны высокие потолки и большая площадь комнат. Пришла мысль, что можно поискать коттедж со вторым светом, в нём можно жить и творить, как это делали Led Zeppelin в своём Bron Yr Aur. И как только эта мысль к нам пришла, она больше не давала нам покоя, настолько она была прекрасна.

Стали искать такой коттедж, и вдруг на нас вышел директор строительной фирмы и предложил отличный вариант: два дома с черновой отделкой, которые у него плохо продаются. Электричество, вода и туалет есть, остальное мы достанем.

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

Задача

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

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

  • Музыкальное оборудование
  • Дополнительное оборудование
  • Мебель
  • Бытовые вещи
  • Список личных вещей для участников группы
  • Организовать интернет в студии
  • Въезд и установка
  • Сочинить музыку
  • Записать музыку
  • Обеспечить условия проживания
  • Сбор и выезд

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

Другой пример:
Я утром просыпаюсь и иду умываться, затем туалет, затем завтрак, затем репетиция, затем обед, затем работаем в интернете, затем запись, затем ужин, затем я ложусь спать.
Обдумывая каждый процесс, мы понимаем, что у нас возникает процесс дежурства на кухне, закупки и хранения продуктов, определенная мебель. Размышляя дальше, становится понятно, что можно прикинуть список продуктов и закупать их не в деревне, где находится дом, а ездить в магазин подешевле. Так как холодильника нет, разумно разделить запасы на портящиеся и непортящиеся, и так далее.

Просто оставлю здесь несколько записок, наверняка пригодятся:

Питание:
Завтрак — каша со сгущёнкой, яйца вареные, бутерброды, чай
Обед — суп типа мясо+макароны или картошка, салат типа огурцы+помидоры
Ужин — рис\гречка\макароны\картошка + курица\тушенка

Минимальный рацион на 12 человек на 1 день
Каша на завтрак — 1 упаковка (килограмм)
Сгущенки для каши 1-2 банки
Тушенки — 3 банки
Макарон 3 пачки
Увелка рис — 3 коробки
В обед — палка колбасы, 2 консервы, 1 паштет
Вода
Чай, Кофе, Сахар

Личные вещи участников:
Спальник\Надувной матрас\раскладушка\туристическая пенка
КЛМН: кружка-ложка-миска-нож
Зубная щётка, зубная паста, туалетная бумага, влажные салфетки, прочие интимные вещи
Полотенце, мочалка, гель для душа
Футболки, трусы, носки
Тапочки\шлёпанцы
Ноутбук
Зарядник для мобилы

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

Творческий процесс

Процесс работы над каждой песней состоит из следующих этапов:

  • IDEA Задумка — автор определяет гармонию, ритм, набрасывает мелодию, ищет необычные детали, которые вместе составят идею и настроение песни;
  • PROP Общая композиция — идея отрабатывается на репетиции с музыкантами и обрастает деталями, обнаруживаются слабые места;
  • TEXT Сочинение текста — не обязательно в этом порядке, текст может быть создан заранее. Тем не менее, в этом месте всегда происходит «притирка» текста к треку или наоборот;
  • VOX Вокальная линия — создаётся общая задумка вокальной партии, возможно без деталей;
  • DESIGN Аранжировка — композиция превращается в задание для музыкантов. Автор должен понятным образом объяснить, как в итоге играть;
  • DRAFT Черновая запись — по аранжировке делается черновая запись, которая передается вокалисту для репетиций.
  • После этого трек может снова пройти через пункты 4-5-6, если в нем будут обнаружены недостатки;
  • REC Чистовая запись минуса. Если на этапе DRAFT получился достойный вариант, который всех устраивает, группа может сразу же записаться вчистую;
  • VREC Запись вокала;
  • AREC Запись дополнительных партий — перкуссия, синтезаторы, соло-инструменты.

Ограничения:

 

  • Тексты пишет выделенный человек, занимается этим целый день. Еще один участник группы может писать тексты.
  • Продюсируют треки три человека, но одновременно могут работать только два: один человек работает с группой. Продюсеры работают в отдельном помещении, в наушниках, никому не мешают.
  • Группа одна, записывается и репетирует полным составом, поэтому может работать только над одним треком в момент времени.
  • Звукорежиссёр один, может работать не более 14 часов в сутки. Без него невозможна чистовая запись, но возможны репетиции и черновая запись.
  • Вокалистка одна, может работать только с 11 до 21, не может работать больше трёх часов подряд.
  • Студия одна, и в один момент времени в ней работает один процесс. Этот ресурс является бутылочным горлышком всего процесса. Если бы мы смогли сделать несколько студий, экономия времени составила бы около 30%

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

807d2dd23c03d27078f791d2652d7603

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

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

Очень помогло, что мы фактически могли работать круглосуточно. Например, днём работает вокалистка, вечером мы репетируем песню, ночью барабанщик колдует над своей установкой. Представьте в какой атмосфере сочинялись барабанные партии: ночью, пока все спали, он работал один в пустом доме, за забором которого находится кладбище.

Что получилось

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

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

Как распространять альбом?

Многие начинающие музыканты не имеют чёткого представления, как распространить получившийся альбом, и рассылают его во все площадки одновременно: на iTunes, Rutracker, Bandcamp и даже выкладывают на Dropbox. Я бы хотел посвятить этому отдельную статью, а сейчас расскажу лишь вкратце.
Самая важная метрика для нас — это количество контактных данных людей из вашей аудитории. Важнее получить электропочту вашего слушателя, чем его доллар через айтюнс. Поэтому для размещения музыки я использую Bandcamp: человек может скачать нашу музыку, указав в поле «Цена» значение 0$, но электропочту оставить он обязан. На эту почту он получит уведомления о наших концертах и новых релизах.

Далее, наша задача собирать аудиторию в сообществах (например, в социальных сетях) и направлять этот трафик на сайт с релизом. Когда вы освоите работу с этим одним потоком слушателей, тогда уже можно будет предпринимать усилия по направлению потока слушателей на iTunes (потому что слушателям с Айфоном он удобен) или Google Play (он удобен андроидоманам).

О Музыке Невидимых Людей:

FCC уточнит понятие «высокоскоростной интернет»

Federal Communications Commission хочет заставить американских провайдеров перестань называть их поганые тормозные услуги «высокоскоростным интернетом». Сейчас broadband-ом считается всё, что быстрее 4 Мбит\с. Новая формулировка предполагает обозначить минимальную планку в 10 Мбит\с или даже 25 Мбит\с.

Я, конечно, был дико удивлён ситуацией: оказывается Comcast продаёт 25 Мбит\с за 40$, AT&T называет тариф в 18 Мбит\с за 45$ гордым названием MAX PLUS.

att

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

По исследованию Akamai, Россия находится на 24 месте со средней скоростью 7,4 Мбит\с на юзера и годовым ростом в 34%.aaa1

Я, конечно, был уверен, что раз США является родиной интернета — значит все скорости там. Однако же, все скорости в Европе и богатых странах Азии. Вот какие модные тренды случились в конце 2013 года:

  • Французский провайдер Illiad запустил тариф в 1 Гбит\с за 35 Евро. Зацените, кстати, какие у них приставки используются — с 3G повторителем, который раздаёт на квартиру мобильную сеть. При этом Франция пока уступает России по средней скорости доступа.
  • В Швейцарии Swisscom открыл подключение к 1 Гбит\с за 115$.
  • Финское правительство анонсировало строительство подводной оптики до Германии к 2015 году.
  • В крупных городах России гигабит стоит в районе 30-40$, например вот Питер.
  • В США ценник на гигабит начинается от 35$ в Спрингфилде (где Симпсоны живут) и может доходить до 270$ в Айове.

 

Как DHT в торрентах кладёт центральный роутер (и как побороть это)

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

Суть проблемы

Проблема происходит так: сеть работает стабильно, без предпосылок к аварии. Внезапно процессор на NAT-сервере резко улетает в полку под 100%, отказывает в обслуживании и не пускает в свою консоль. Если отключаем исходящий трафик (внутреннюю сеть) — проблема не решается, если отключаем входящий трафик (аплинк), то процессор моментально расслабляется. Через 30-40 минут вся симптоматика проходит и не воспроизводится.

То, что сервер не отвечает в момент проблемы, существенно затрудняет диагностирование. Коммутатор на аплинке не показывает никакого аномального роста трафика: PPS и скорость потока в норме.

Поиск причин

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

Итак, в какой-то момент нам повезло и проблема продлилась больше, чем 30 минут. Я отключил от сети всех абонентов и стал выводить районами. Довольно быстро локализовал абонента, который провоцировал вредный трафик. Действительно, сервер прекрасно справлялся с тремя тысячами абонентов, но один единственный клиент укладывал его на лопатки.

Конфигурация NAT у нас самая обычная:

ipfw nat $NUM_NAT config igb0 ip $WHITE_IP
ipfw add nat tablearg ip from any to table(2) in recv vlan158
ipfw add nat tablearg ip from table(1) to any out xmit vlan158
ipfw table 1 add 10.1.1.1/32 1001
ipfw table 2 add 31.1.1.1/32 1001 

Таблица 1 содержит соответствие внутренних адресов и номеров NAT instance, таблица 2 содержит соответствие внешних адресов и номеров NAT instance.

Соответственно, чтобы найти источник вредного трафика, я очистил таблицу 2, а затем стал постепенно возвращать в нее записи, наблюдая в соседнем окне за показаниями TOP -SHP. Когда вредный абонент получает интернет, пару минут всё работает нормально, затем нагрузка начинает стремительно расти примерно по проценту в секунду. В этот момент я отключил абонента от сети, вернул всем клиентам сервис и приготовился к экспериментам.

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

tcpdump -w bad.traf host 10.1.1.1

В таком случае tcpdump сохраняет трафик в PCAP-формате, который можно потом воспроизвести либо через tcpdump -r, либо открыть в wireshark, либо подсунуть в генератор трафика, который воспроизведёт трафик в реальные пакеты, что может быть полезно на тестовом стенде.

Затем я открыл файл в wireshark и изучил статистику.
11Трафик, как я и говорил, небольшой: два с половиной мегабита, около тысячи пакетов в секунду. Сделаем выборку статистики по источникам трафика:
11Итак, мы видим огромное количество источников трафика, с которыми наш клиент обменялся менее чем десятью пакетами. И более половины всех пакетов составляют SYN-запросы на установление соединения на порт 6881. В них-то и кроется вся проблема.

Выясняется, что клиентская машина активно участвует в DHT-сети с помощью одного из популярных торрент-клиентов. И другие участники сети активно ломятся к нашему клиенту за обновлением хэш-ключей. За 200 секунд устанавливается 110 000 соединений, большую часть из которых клиент не успевает обработать и оставляет без ответа.

На уровне оборудования это выглядит так: для каждого запроса создаётся новая NAT-трансляция. Т.к. клиентская машина не отвечает на эти запросы в силу загруженности, соединение остаётся полуоткрытым и получает таймаут в 300 секунд согласно предустановкам IPFW.

Через некоторое время часть трансляций устаревает, и NAT instance начинает активно заниматься двумя делами: уничтожением устаревших трансляций и созданием новых. Так как реализация libalias не предполагает размещение NAT Instance в отдельном ядре при большом количестве nat-конфигураций, нагрузка распределяется на все ядра.

Как бороться

1. Как оказалось, без явного указания флага deny_in в конфигурации NAT, входящий пакет будет обработан, даже если это соединение не было инициировано клиентом.  Исходный код libalias можно посмотреть в /usr/src/sys/netinet/libalias/, он хорошо документирован и понятен. Если никто из клиентов не просил соединения с хостом, а пакет всё равно пришёл, libalias будет выяснять, кто последний общался с этим хостом или кто последний принимал сообщения на этот порт. Этот клиент и получит пакет.
Первое, что надо сделать — это повесить deny_in на все NAT instance, где не требуется обрабатывать входящие соединения

2. Если отключить входящие соединения нельзя, можно их  ограничить по скорости.
Один SYN-пакет 62 байт или 496 бит. Значит очередь в 10 килобит\с позволит создавать 20 трансляций в секунду или 6 000 трансляций за 300 секунд (время nat-таймаута для полуоткрытой сессии ) что приемлемо для нашей конфигурации и не нарушит нормального сервиса для клиента.

ipfw pipe 666 config bw 30Kbit/s queue 2 mask dst-ip 0xffffffff
ipfw add 11 pipe 666 tcp from any to «table(72)» dst-port 6881 in recv vlan158 tcpflags syn

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

3. Ряд коллег решают эту проблему закрытием трафика по порту 6881:
ipfw add 11 deny tcp from any to «table(72)» dst-port 6881 in recv vlan158

Я же считаю, что это сомнительное решение: в таком случае syn-flood на любой другой порт положит сервер.

4. Ограничивать максимальное количество трансляций одному клиенту.
К сожалению, libalias не имеет такой настройки и количество трансляций ограничено лишь оперативной памятью. Но  при острой необходимости сделать соответствующий патч будет не сложно: созданием трансляций занимается процедура AddLink в файле /usr/src/sys/netinet/libalias/alias_db.c. В первых строчках этой процедуры можно добавить примерно такой код:
int tot = la->icmpLinkCount + la->udpLinkCount +
(la->sctpLinkCount>>1) + /* sctp counts half associations */
la->tcpLinkCount + la->pptpLinkCount +
la->protoLinkCount + la->fragmentIdLinkCount +
la->fragmentPtrLinkCount;
if (tot > 30000) // где 30 000 — это максимальное количество трансляций для одного NAT Instance
{
fprintf(stderr, » maximum number of translations exceeded\n»);
return (NULL);
}

Мониторинг
Если вы еще не сделали этого, рекомендую добавить в конфигурацию NAT директиву log, что позволит собирать статистику по количеству NAT-трансляций в системе.
Сделать это в командной строке можно будет так:
ipfw nat show | awk ‘{print $12;}’ | awk -F= ‘{print $2;}’ | sort -g

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

 

Логотипы

Придумай логотип урайской больницы и выиграй приз!
Продолжается прием заявок на участие в конкурсе по определению символа -памятного знака в сфере туриндустрии Югры.
Внимание! До 23 января продолжается Конкурс на лучший логотип, посвященный Году культуры и искусства в Урае.

Мне в школьное время всегда было странно, когда в каком-нибудь конкурсе набирают в команду случайных людей, а потом первое задание — придумать название и девиз. И если название команды более-менее полезно в ходе конкурса, то девиз не используется никогда, не определяет поведение участников совсем. Можно заявить, что девиз «Честь превыше всего», а потом в весёлых стартах пару шажочков не добегать до кегли и разворачиваться перед ней, ахаха.

Такая же фигня и с логотипами. Сама по себе картинка — ничто.

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

Инфоканал Телеурай: внутренности

После выступления на CSTB2013 у меня полная почта вопросов по поводу нашего телеканала «Телеурай», поэтому я решил сделать серию статей о разных know-how и рассказать, как там всё устроено.

vlcsnap-2013-02-11-15h50m59s73

Формирует сигнал ПК на Windows 7 с установленной программой DIGI-TV. Компьютер требуется мощный, чтобы видео успевало раскодироваться для эфира. Программа на основе плейлиста крутит по очереди те или иные ролики, и по расписанию включает элементы оформления. Вся идея нашего канала как раз в том, чтобы реализовать максимум возможностей через эти самые «элементы оформления». Например, когда нам нужно вывести на весь экран галерею с картинками, то на самом деле мы вещаем пустой ролик длительностью одну минуту с включеным элементом оформления «flash-баннер», в который загружена наша галерея. Но, об этих ухищрениях позже.

Вещающий ПК подключен по Firewire в Канопус ADVC110 (который теперь GV Thomson), на котором есть композитный выход, который и подается в телевизионный модулятор.

Вот и вся система.

Дополнительно имеется второй мощный ПК, который обсчитывает ролики. Мы используем After Effects. Редактор готовит ролики на своем ноуте сидя в уютном кафе, затем закидывает проект на Рендер-сервер и ставит в расписание на обсчёт. Раз в сутки (поздно ночью) скрипт берёт все ролики и утаскивает по гигабитной сети на вещающий сервер. Мы готовим ролики без сжатия, поэтому минута видео весит гигабайт и выше. Зато вещающему серверу потом проще это выводить.

Обсудим само ПО DIGI-TV.
Софт стоит дёшево, что приводит к определенным трудностям при использовании. Наверняка, если просто гонять плейлист с роликами да бегущей строкой — ничего страшного не произойдет, но мы любим экспериментировать, и в необычном использовании прога любит невероятным образом рухнуть. Например, какое-то время назад у меня сломалась команда в плейлисте «Запустить произвольную программу» — я хотел, чтобы после определенного ролика у меня запускался скрипт для обновления новостей. Так вот, при попытке исполнить это, DigiTV просто вылетал с ошибкой ACCESS_VIOLATION. Саппорт давал советы проверить антивирус, выключить-включить и так далее, хотя судя по всему проблема была связана с безопасностью Windows 7, и решилась в итоге включением режима совместимости с Windows XP для DIGI-TV.
Ну, или модуль «СМС-Чат» выбивает программу с крэшом если в смске будет два переноса строк подряд. Или вот на нашей системе непонятно почему, но DIGITV не хочет забирать звук радио «из системы», пришлось ставить перемычку — из звуковой карты в Canopus — и примешивать звук радио к эфиру.

В следующих сериях рассмотрим конкретно как устроен смс-чат, инстаграм, погода и прочее.