Как стать автором
Обновить

Минкомсвязи предложило отдать под 5G телевизионные частоты и поделить регионы между операторами «четверки»

Время на прочтение 4 мин
Количество просмотров 4.2K
IT-инфраструктура *Беспроводные технологии *Разработка систем связи *Стандарты связи *Сотовая связь
imageФото: iStock

Минкомсвязи выступило с идеей передать частоты 694–790 МГц, которые используют телевещательные компании, под нужды развития мобильной связи пятого поколения (5G). Также ведомство считает, что управление сетями можно разделить между операторами «Большой четверки».
Читать дальше →
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 22

Глава Ростелекома: европейскую часть РФ невозможно подключить к 5G

Время на прочтение 2 мин
Количество просмотров 18K
Беспроводные технологии *Стандарты связи *Сотовая связь
image

Министр цифрового развития Максут Шадаев заявил, что для развития сетей 5G в России планируется полностью выделить диапазон частот 4,7-4,9 ГГц. Но президент Ростелекома Михаил Осеевский отметил, выбор данного спектра не позволит покрыть 5G большую часть европейской территории страны. По его словам, в данном диапазоне в регионе уже работают системы оповещения «свой-чужой» для самолетов.
Читать дальше →
Всего голосов 35: ↑34 и ↓1 +33
Комментарии 92

Глава «МегаФона» рассказал, когда деградирует качество сетей 4G

Время на прочтение 2 мин
Количество просмотров 3.7K
Беспроводные технологии *Стандарты связи *Сотовая связь

Гендиректор «МегаФона» Хачатур Помбухчан считает, что качество связи в мобильных сетях четвертого поколения (4G) может ухудшиться, если операторам не выделят новые частоты. «Если в наших агломерациях в течение какого-то осмысленного времени не появится нормальный стандарт 5G, то качество обычного пользовательского опыта мобильной связи начнет деградировать», — уверен он.

Читать далее
Всего голосов 8: ↑7 и ↓1 +6
Комментарии 3

Как указывать диапазоны дат в интерфейсах?

Время на прочтение 5 мин
Количество просмотров 31K
Интерфейсы *Usability *
Однозначного и исчерпывающего ответа на вопрос поверхностный поиск не дал, справочники академического характера чаще всего выдают результаты для изданий (в т.ч. с вариантами использования римских цифр, что не очень подходит для интерфейсов), поэтому хочется понять, как лучше указывать именно диапазоны именно дат и именно в интерфейсах и попробовать сформулировать правило или выявить закономерности. Для этого я вспомнил все, какие мог, кейсы, и упорядочил их в таблице — кейс, числовой пример, формат полный и сокращенный, для дней, недель, месяцев, кварталов, полугодий и лет (внутри поста).

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

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

Например, получаются вот такие странные штуки:


Читать дальше →
Всего голосов 20: ↑17 и ↓3 +14
Комментарии 28

Идиома Ranges

Время на прочтение 11 мин
Количество просмотров 14K
C++ *Алгоритмы *D *
image
Идиома ranges — крайне удачное развитие итераторов. Она позволяет писать высокопроизводительный код, не выделяющий память, где это не надо, находясь на предельно высоком уровне абстракции. Кроме того делает библиотеки гораздо более универсальными, а их интерфейсы гибкими. Под катом краткое описание и практические примеры использования идиомы, тесты производительности, а так же сравнение с популярными реализациями итераторов в C++ и C#.
Читать дальше →
Всего голосов 22: ↑20 и ↓2 +18
Комментарии 23

Ленивые итераторы и диапазоны в C++

Время на прочтение 5 мин
Количество просмотров 6.6K
Программирование *C++ *Алгоритмы *

Для того, чтобы упростить написание и чтение кода, программисты периодически придумывают всякие техники. Об одной из таких техник я уже писал в публикации Долой циклы, или Неленивая композиция алгоритмов в C++.


Однако есть и классическая, более распространённая техника для борьбы с циклами — использование итераторов и диапазонов для ленивых операций над последовательностями. Всё это уже сто лет есть в Бусте и других сторонних библиотеках (к примеру, range-v3) и постепенно просачивается в стандартную библиотеку.


Хотя, в некотором смысле, и в стандартной библиотеке ленивые итераторы уже есть давно (см. std::reverse_iterator).

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

Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 0

Ленивые операции над множествами в C++

Время на прочтение 6 мин
Количество просмотров 11K
Программирование *C++ *Алгоритмы *

В C++ нет понятия "множество". Есть std::set, но это всё-таки конкретный контейнер. Есть функции для работы с упорядоченными диапазонами: merge, inplace_merge, includes, set_difference, set_intersection, set_symmetric_difference, set_union, но это алгоритмы, они не ленивые, и при вызове сразу вычисляют результат. К тому же они предназначены для работы строго с двумя диапазонами.


Что же делать, если, во-первых, диапазонов много (больше двух), а во-вторых, мы хотим вычислять результат не сразу, а по необходимости?


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


В публикации Ленивые итераторы и диапазоны в C++ я разбирал, что такое ленивые диапазоны.
Читать дальше →
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 4

Ленивые диапазоны и стирание типов

Время на прочтение 5 мин
Количество просмотров 4.1K
Программирование *C++ *

В публикации Ленивые операции над множествами в C++ я показал, как можно проектировать ленивые операции над несколькими диапазонами. Теперь я хочу подробнее рассказать о важном решении, делающем такие операции удобными в использовании.


Один из основных моментов в интерфейсе ленивых операций над диапазонами — это возможность следующей записи


burst::merge(std::tie(range1, range2, ...));

То есть возможность работать с произвольным набором исходных диапазонов.


В коде это будет выглядеть как-то так:


const auto odd = std::vector{1, 3, 5, 7};
const auto even = std::list{0, 2, 4, 6, 8};

const auto merged_range = burst::merge(std::tie(odd, even));

const auto expected = {0, 1, 2, 3, 4, 5, 6, 7, 8};
assert(merged_range == expected);

Почему же это так важно, и что стоит за этой записью?


Ответ на вопрос "почему это важно" понятен. Во-первых, это красиво. Кроме того, удобно.
А вот что за этим стоит — и есть суть данной публикации.

Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 8

Как Mozilla упустила (не)очевидную уязвимость

Время на прочтение 9 мин
Количество просмотров 10K
Блог компании SkillFactory Информационная безопасность *Программирование *C *Читальный зал
Перевод

Эксперт из Project Zero рассказывает об уязвимости, простота и очевидность которой поразили его. Но как же эта уязвимость проникла в тестируемый код Mozilla? Разбираемся под катом, пока стартует наш курс по этичному хакингу.

Читать далее
Всего голосов 24: ↑21 и ↓3 +18
Комментарии 9

Алгоритмы диапазонов C++20 — 7 немодифицирующих операций

Время на прочтение 13 мин
Количество просмотров 4.2K
Блог компании SkillFactory Программирование *C++ *Алгоритмы *
Перевод


Библиотека Ranges для C++20 предлагает альтернативы для большинства алгоритмов. На этот раз я хочу показать вам десять немодифицирующих операций. Мы сравним их со «старой» стандартной версией и увидим их преимущества и ограничения.


Подробности — к старту нашего курса по разработке на C++.

Читать дальше →
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 30