Pull to refresh
48
0.9
Наталья Крапкина @ladynoname

Организатор сообществ DevOps-40, monhouse.tech

Send message

Как я делал первую маркировку рекламы в своём Телеграм-канале (пошаговая инструкция)

Reading time7 min
Views9.2K

У меня небольшой авторский канал на 3 000 подписчиков. Рекламу в нём я продаю как самозанятое физическое лицо (эту роль взяла на себя моя жена). Поэтому рассказ будет о маркировке текстового рекламного поста, где заказчик и исполнитель — физические лица. С помощью кабинета ОРД Вконтакте, который пока что бесплатен.

Читать далее
Total votes 15: ↑12 and ↓3+9
Comments11

Беспроводной тачпад из смартфона

Reading time6 min
Views15K
Когда ты уже не начинающий ардуинщик и погодных информеров у тебя уже несколько штук, хочется чего-то более «оригинального» и «полезного».

Предположим у нас имеется: Arduino Leonardo – 1 штука, Bluetooth модуль – 1 штука, Android смартфон – 1 штука. Ключевое отличие Leonardo от остальных ардуин заключается в том, что она поддерживает протоколы HID, а по-простому может притворятся мышкой или клавиатурой. Выглядит это примерно следующим образом:

#include "Mouse.h" // импортируем библиотеку работы с мышью
void setup(){}            // ничего не настраиваем
void loop()
{
 Mouse.move(10, -15, 3);  // сдвигаем курсор на 10 пикселей вправо, на 15 пикселей вверх и колесо на 3 оборота
}

Как видим все крайне просто. Метод Mouse.move(X, Y, WHEEL) принимает три относительных параметра: 

X – величина смещения в пикселях по оси X (отрицательные значения сдвигают влево)

Y – величина смещения в пикселях по оси Y (отрицательные значения сдвигают вверх)

WHEEL – величина смещения колеса прокрутки (отрицательные значения сдвигают в другую сторону)

Но сама по себе идея двигать курсор ничего не стоит, если не мы его контролируем, а значит нам нужно непосредственно HID (Human Interface Device), или по-простому устройство ввода. В нашем случае мы его сделаем из смартфона, «написав программу» в среде AppInventor, но, предварительно, разберемся с железной частью и напишем скетч для Arduino. Данные в Leonardo со смартфона мы будем отсылать по bluetooth. Модуль bluetooth можно использовать любой подходящий, наиболее популярным решением является HC-05(06). Подключаем по следующей схеме:

Total votes 14: ↑12 and ↓2+10
Comments35

Анонс: Как организовать IT-конференцию и не сойти с ума

Reading time2 min
Views1.1K


Завтра, в 20:00 в наших соцсетях выступит Наталья Крапкина (больше известная как Кейт или
ladynoname), одна из организаторов конференции Chaos Constructions.

Наташа создает курирует IT-сообщества в Петербурге: ITGM 14, митапы DevOps40, MonHouse, и работает как идейный вдохновитель программистских коммьюнити.

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

Стрим можно будет посмотреть в любых наших соцсетях — где удобно, там и смотрите.


Total votes 27: ↑25 and ↓2+23
Comments2

Охота за полярным сиянием: слабые суббури

Level of difficultyEasy
Reading time11 min
Views23K
image

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

Статья подойдет для романтиков, тех, кто любит ночное небо, звезды, тишину и азарт. Для тех, кто не готов стоять в сугробе неделю, ожидая небесного света или жить на краю земли, кто хочет взять ситуацию под контроль и в полной мере насладиться, пожалуй, самым красивым природным явлением. Ловить северное сияние подобным образом можно на северных широтах от 58 до 72.
Читать дальше →
Total votes 49: ↑49 and ↓0+49
Comments23

IT Global Meetup #14 Петербург

Reading time2 min
Views3.1K
23 марта 2019 года пройдет четырнадцатый слет IT-сообществ Санкт-Петербурга IT Global Meetup 2019.

Весенний слет петербургских IT-сообществ стартует в субботу! На островках сообществ можно будет ознакомиться с их деятельностью и принять участие в активностях. ITGM — не форум, не конференция. ITGM — встреча, созданная самими сообществами со свободой действий, докладов и активностей.

image
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments3

FPGA митап в Санкт-Петербурге

Reading time1 min
Views3.6K


Update. Видео выступлений выложены на YouTube:
1) про быстрые платы с FPGA
2) про 10G на Cyclone 10 GX


Более 15 лет мы разрабатываем устройства на FPGA и переносим сложные и разные алгоритмы в FPGA, а площадки для офф-лайн общения в России найти не смогли. Поэтому решили, что надо развивать направление самостоятельно: для начала организуем встречу в Санкт-Петербурге в «митап»-формате для разработчиков FPGA и интересующихся этой тематикой.

Собираемся для неформального общения 29 января в 19:00. Событие называется «Байки FPGA-шников». Будет пара докладов про то, с чем пришлось столкнуться в 2018 году в процессе разработки, разговоры на около-FPGA'шные темы и кофе-плюшки-пицца.

Подробности по ссылке (там же адрес и регистрация).
Читать дальше →
Total votes 34: ↑31 and ↓3+28
Comments6

Культурный Embedded на IT Global Meetup В СПБ

Reading time2 min
Views2.4K
image

Дорогие друзья, 14 мая пройдет большая встреча Петербургских IT сообществ, встречи проводятся два-три раза в год, пространство рассчитано на 800 участников. Каждое из IT сообществ представляет свою программу на мероприятие, обычно это разбор кейсов, мастер-классы, небольшие семинары. В этот раз участие примет 16 сообществ разной IT тематики.

Зарегистрироваться нужно по ссылке.

Пожалуйста, обратите внимание на то, что количество мест — ограничено, пожалуйста, регистрируйтесь только в том случае если действительно собираетесь идти.
Читать дальше →
Total votes 12: ↑10 and ↓2+8
Comments2

Немного об оптимизации задержки передачи данных

Reading time5 min
Views18K
Низкая задержка — важный фактор, обеспечивающий надежную работу и высокую производительность сетей. Приложения для общения в реальном времени, стриминга и проведения транзакций сильно зависят от времени ожидания. Увеличение задержки всего на несколько миллисекунд может привести к искажению изображения и голосов, «зависанию» приложений и финансовым потерям.

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


/ фото Thomas Williams CC
Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments0

Занимательная задачка «Несчастливый билет»

Reading time3 min
Views18K
image Думаю всем с детства знакома задача о счастливом билете. Однако чаще всего поездка в автобусе занимает гораздо больше времени, чем время, потраченное на суммирование первых и последних трех цифр.

И чтобы развлечь себя до конца поездки, я изобрел концепт «Несчастливого билета». Билета, у которого ни одно число из множества значений, полученного при помощи первых трех цифр, не совпадет ни с одним числом из множества значений, полученного при помощи последних трех цифр. Подробности в условии задачи.
Читать дальше →
Total votes 34: ↑27 and ↓7+20
Comments31

Открываем набор на бесплатные курсы по программированию и разработке под FPGA

Reading time4 min
Views17K
Всем привет! Одно из видений нашей компании звучит следующим образом: Мы создаём знания и делимся ими

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

И я с радостью спешу сообщить, что с 1 ноября мы начинаем курсы по следующим направлениям:

  • Разработка под FPGA
  • Программирование микроконтроллеров
  • Системное программирование в Linux
  • Измерение качества телекоммуникационных каналов
  • Основы программной инженерии

Количество мест ограничено, поэтому естественно присутствует входное тестирование.

Прочитать подробности и записаться на курсы можно тут.

А под катом история появления курсов и более подробная информация о направлениях, учебных планах и входном тестировании. Добро пожаловать!
Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments22

SO_TIMESTAMPING в картинках. Прием пакета

Reading time11 min
Views10K

Бывает, что приложению требуется узнать точное время приема или отправки сетевого пакета. Например, для синхронизации часов (см. PTP, NTP) или тестирования задержек в сети (см. RFC2544).


Наивным решением будет запоминать в приложении время сразу после получения пакета от ядра (или перед отправкой ядру):


  recv(sock, buffer, length, flags);
  clock_gettime(CLOCK_REALTIME, timespec);

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


Начиная с версии 2.6.30 Линукс поддерживает опцию сокета SO_TIMESTAMPING. Она позволяет пользовательскому сокету получать временные метки для отправляемых и принимаемых пакетов. Временные метки могут быть сняты самим ядром, драйвером или сетевым устройством (см. список поддерживающих устройств и драйверов). О том, что это вообще такое и как этим пользоваться, стоит почитать в Documentation/networking/timestamping.txt


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

Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments9

Как мы тестировали российский speedtest

Reading time6 min
Views32K
Тестирование сервиса wiTest.ru

Все хотя бы раз в жизни пользовались сервисом speedtest.net для измерения скорости доступа в Интернет дома или на работе. Точность не высокая, но зато бесплатно. Аналогичных сервисов мне лично известно более 20 как российских, так и зарубежных.

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

Стенд тестирования wiTest

В качестве подопытного сервиса мы взяли сервис, который опубликован на сайте Банки.ру.
Читать дальше →
Total votes 17: ↑12 and ↓5+7
Comments46

Связь-2016: что интересного?

Reading time4 min
Views11K
Всем привет!



Пока общественность активно обсуждает неоткрывающиеся двери УАЗа, в Москве, на Красной Пресне, в очередной раз проходит выставка «Связь-2016». Когда мне довелось побывать на выставке года два назад, занимала она больше места. Как минимум, на один павильон. Сейчас занимает 4 зала в двух павильонах. Это не очень много, но если учесть, что сейчас не участвуют члены большой тройки (а раньше они занимали значительную часть), то не так уж и мало. Операторов практически не было, стало больше производителей-разработчиков, и это радует.

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

Добро пожаловать!
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments15

Как мы переводили облако с Ethernet 10G на Infiniband 56G

Reading time4 min
Views61K

Кабель Mellanox MC2609125-005

В нашем случае Infiniband работал бы в пять раз быстрее, чем Ethernet, а стоил бы столько же. Сложность была только одна – всё это нужно было делать без прерывания облачных сервисов в ЦОДе. Ну, это примерно как пересобрать двигатель автомобиля во время движения.

В России таких проектов попросту не было. Все, кто до сих пор пытались переходить с Ethernet на Infiniband, так или иначе останавливали свою инфраструктуру на сутки-двое. У нас же в облачном «плече», которое находится в дата-центре на Волочаевской-1, около 60 крупных заказчиков (включая банки, розницу, страховые и объекты критичной инфраструктуры) на почти 500 виртуальных машинах, размещенных на примерно сотне физических серверов. Мы первые в стране получили опыт перестроения стораджевой и сетевой инфраструктуры без даунтаймов и немного гордимся этим.


Infiniband-кабель на входе в сервер

В итоге пропускная способность каналов связи между серверами «облака» выросла с 10 Гб/сек до 56 Гб/сек.
Читать дальше →
Total votes 78: ↑75 and ↓3+72
Comments111

15 бесплатных онлайн курсов по программированию

Reading time7 min
Views124K
image

Принято считать, что для качественного образования необходимы упорство, время и деньги. Если с первыми двумя пунктами поспорить сложно, над третьим все же можно подумать. Действительно ли материальная составляющая способна определить уровень, а главное, качество образования?

Современная практика показывает: “Хорошо – не значит дорого”, а доступность интернет – ресурсов определяющим фактором в получении образования ставит желание. Получить необходимые знания и интересующую информацию в ведущих университетах России, Европы и Америки сейчас возможно даже не выходя из дома.

Сегодня такой бонус мы подготовили всем, кто давно мечтал заговорить с компьютером на “ты”, но не решался перейти к действиям. Перед вами 15 вариантов самых интересных бесплатных онлайн курсов по программированию, приступить к которым можно будет уже этой весной!
Читать дальше →
Total votes 25: ↑12 and ↓13-1
Comments8

Ethernet + PCIe + FPGA = LOVE

Reading time12 min
Views68K
image

Доступ по Ethernet невозможен без сетевых карточек (NIC). На небольших скоростях (до 1G) NIC встраивают в материнки, а на больших (10G/40G) NIC размещается на отдельной PCIe плате. Основным ядром такой платы является интегральный чип (ASIC), который занимается приемом/отправкой пакетов на самом низком уровне. Для большинства задач возможностей этого чипа хватит с лихвой.

Что делать, если возможностей сетевой карточки не хватает? Либо задача требует максимально близкого доступа к низкому уровню? Тогда на сцену выходят платы с перепрограммируемой логикой — ПЛИС (FPGA).

Какие задачи на них решают, что размещают, а так же самых интересных представителей вы увидите под катом!

Осторожно, будут картинки!
Читать дальше →
Total votes 31: ↑31 and ↓0+31
Comments56

Секреты тестирования Ethernet каналов

Reading time8 min
Views102K
Добрый день, дорогие друзья. Несколько лет работала сисадмином в некотором количестве корпоративных и домашних провайдеров Санкт-Петербурга и по сей день часто сталкиваюсь с тем, что покупая оборудование операторы смотрят больше на цену и описание функций, чем на реальные показатели, о них поставщики обычно ничего не пишут, в следствии чего вместо одного коммутатора приходится устанавливать еще и еще, а качество связи лучше может и не станет. Про существования понятия SLA(Service Level Agreement) тоже не все операторы в курсе, по этой причине собрала достоверную информацию по тестированию сетей и оборудования, и готова предоставить её вашему вниманию.



Читаем
Total votes 19: ↑15 and ↓4+11
Comments94

Захват пакетов в Linux на скорости десятки миллионов пакетов в секунду без использования сторонних библиотек

Reading time8 min
Views86K
Моя статья расскажет Вам как принять 10 миллионов пакетов в секунду без использования таких библиотек как Netmap, PF_RING, DPDK и прочие. Делать мы это будем силами обычного Линукс ядра версии 3.16 и некоторого количества кода на С и С++.



Сначала я хотел бы поделиться парой слов о том, как работает pcap — общеизвестный способ захвата пакетов. Он используется в таких популярных утилитах как iftop, tcpdump, arpwatch. Кроме этого, он отличается очень высокой нагрузкой на процессор.

Итак, Вы открыли им интерфейс и ждете пакетов от него используя обычный подход — bind/recv. Ядро в свою очередь получает данные из сетевой карты и сохраняет в пространстве ядра, после этого оно обнаруживает, что пользователь хочет получить его в юзер спейсе и передает через аргумент команды recv, адрес буфера куда эти данные положить. Ядро покорно копирует данные (уже второй раз!). Выходит довольно сложно, но это не все проблемы pcap.

Кроме этого, вспомним, что recv — это системный вызов и вызываем мы его на каждый пакет приходящий на интерфейс, системные вызовы обычно очень быстры, но скорости современных 10GE интерфейсов (до 14.6 миллионов вызовов секунду) приводят к тому, что даже легкий вызов становится очень затратным для системы исключительно по причине частоты вызовов.

Также стоит отметить, что у нас на сервере обычно более 2х логических ядер. И данные могут прилететь на любое их них! А приложение, которое принимает данные силами pcap использует одно ядро. Вот тут у нас включаются блокировки на стороне ядра и кардинально замедляют процесс захвата — теперь мы занимаемся не только копированием памяти/обработкой пакетов, а ждем освобождения блокировок, занятых другими ядрами. Поверьте, на блокировки может зачастую уйти до 90% процессорных ресурсов всего сервера.

Хороший списочек проблем? Итак, мы их все геройски попробуем решить!
Читать дальше →
Total votes 113: ↑112 and ↓1+111
Comments77

Information

Rating
1,418-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity