Свежие публикации

Здесь собраны все публикуемые пикабушниками посты без отбора. Самые интересные попадут в Горячее.

10 Февраля 2025
891

Ответ на пост «По жалобе Мегафона админы удалили мой пост»4

Ответ MegaFon.help (#comment_340404378)

Сначала операторы оправдывали повышение тарифов тем, что им нужно было "развивать инфраструктуру", "улучшать покрытие", "наращивать мощности"...
Вроде как, "ребята, потерпите!!! Это все временно"!!!

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

Даже "старые" тарифы, даже с учетом инфляции - это не есть "самоокупаемость + небольшой % прибыли"! Не нужно вешать лапшу на уши!!!
Стоимость обслуживания сетей в десятки раз ниже стоимости развертывания их же!
Та же замена Базовой Станции на уже построенной вышке связи - это на порядок меньше затрат, чем ставить новую вышку + новые БС!! Так что разговор о необходимости повышения тарифов из-за "обновления оборудования" - это разговор о повышении сверхприбылей, а не о поддержании ФОТ-а, или чего еще...

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

*Ублю́док (устар., от глагола «ублюдить, блудить»)[1] — выродок, нечистокровный; у людей — незаконнорождённый потомок «чистокровного, благородного» родителя.

Устаревший термин «ублюдок» в биологии в настоящее время полностью вытеснен словом «гибрид».

Википедия

P.S.: По идее, ФАС (если бы в РФ была ФАС, а не ее пародия) должна была бы начать разбирательство уже при введении подобной практики (практики одностороннего изменений условий договора) одновременно всеми конторами, работающими в сфере услуг, но... Раз этого не происходит - нужно понимать, что в ФАС работают такие же «гибриды»...

P.P.S.: Шучу!!! ФАС великолепно работает!!! Только есть один маленький нюанс, который касается всех федеральных и региональных служб и ведомств: в чьих интересах они все работают?

Если начнут "ущемлять" тот же "Мегафон" и контора обратится в ФАС - эти "гибриды" оперативно "отреагируют" и "пресекут". Даже если ИП обратится - отреагируют!!
Проблема в том, что если ты не представляешь юрлицо (НКО, или еще кого), а просто "гражданин" - ты для них не существуешь: нанимай адвокатов за свой счет и бодайся в суде, пытаясь защищать свои Права самостоятельно...

Показать полностью
4

Ответ на пост «Раз так много комментариев в духе "иди работай", "хочешь на всё готовое", "сделай всё сам", я согласен,»2

Не буду предлагать автору поста "уйти в лес" или писать, что его рассуждения ребяческие.

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

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

Уже на этом этапе:

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

Источник: https://www.petshealth.ru/pets/ehkzoticheskie-zhivotnye/prim...

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

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

И так происходит у практически всех стайных животных. Надеюсь никого не обижу, если скажу, что мы в своем роде тоже "стайные животные".

И этот принцип авторитета "вожака" прослеживается во многих областях, например в Армии с принципом единоначалия (иначе бардак будет и соседняя "стая" все "бананы" утащит вместе с самками и другими ресурсами).

Или даже в бытовом укладе, который говорит "уважай старших". Но думаю изначально имелось в виду не слепое уважение по количеству прожитых лет а по опыту. Ведь ранее житие было тяжкое и мало кто доживал до 40 даже. Так что человек с возрастом в 50 лет мог поведать очень много ценного из своего опыта, поэтому и пользовался уважением. Т.е. в определенный момент наступил переход от авторитета "силы" к авторитету "мудрости".

Считаю с вопросом не уникальности появления лидеров в человеческой среде и их руководства вопрос закрыт (в рамках поста, но не в комментариях). Общая моя идея проста - по одиночке выживать сложнее, в группе максимальная эффективность если есть единый лидер. У обезьян это просто самый сильный (и т.д.), у людей этот лидер себя окружает "старейшинами" (мудрыми людьми).

Ещё один интересный вопрос - это разделение труда.

Опять приведу пример из биологии - а именно муравьев и пчел.

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

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

Ладно, предположим их к этому привела эволюция. А что на счет нас - людей?

А нас к разделению труда привела обычная целесообразность.

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

Но со временем люди заметили, что кто-то выполняет ту или иную работу более качественно (и она ему больше нравится).

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

В итоге Вася становится профессионалом в охоте, а Петя - в изготовлении стрел (и других инструментов труда за одно). Ну а их сосед Эдуард делает им первоклассные побрякушки из золота (которые потом попадают на выставки золота Скифов).

Все рады, каждый занимается своим делом.

С появлением оседлого образа жизни процесс разделения труда только лишь интенсифицируется.

А тем более в период появления металлического плуга.

Теперь чтобы создать современное (и эффективное) орудие труда не достаточно посмотреть как это делает старейшина. Этому навыку нужно учиться (как собственно и премудростям возделывания земли).

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

В это же время появляется "ратный люд" - люди, специализирующиеся на охране вот таких вот ремесленников и землепашцев, которые утратили уже навыки вооруженного сопротивления новыми средствами вооружения (мечами к примеру).

Индустриализация и последующая цифровизация общества привела ещё к большему разделению труда.

Это только Робинзон Крузо в романе Даниэля Дэфо несколько десятков лет на острове провел и чуть ли не с нуля там цивилизацию создал (у его прототипа - боцмана Селькирка все не так радужно было).

Да и к тому времени люди ещё не перешли к такому сильному разделению труда.

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

Ну чтож. Всегда есть вариант.

Ответ на пост «Раз так много комментариев в духе "иди работай", "хочешь на всё готовое", "сделай всё сам", я согласен,»
Показать полностью 1
9

Основы программирования на C++: Адаптеры и представления

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

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

Здравствуйте, мои маленькие любители программирования!

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


Адаптеры

1. std::stack

Стек — это структура данных, которая работает по принципу LIFO (Last In, First Out). Это означает, что последний добавленный элемент будет первым извлеченным.

  • Основные операции:

    • push: Добавляет элемент на вершину стека.

    • pop: Удаляет элемент с вершины стека.

    • top: Возвращает элемент на вершине стека без его удаления.

    • empty: Проверяет, пуст ли стек.

#include <iostream>

#include <stack>

int main() {

std::stack<int> s;

s.push(1);

s.push(13);

s.pop(); // Удаляем элемент с вершины (останется только 1)

std::cout << s.top() << "\n"; // Выводим элемент на вершине (1)

if (s.empty()) {

std::cout << "Stack is empty\n";

}

}

Особенности:

  • По умолчанию std::stack использует std::deque для хранения данных, но можно заменить его на другой контейнер, например, std::list.


2. std::queue

Очередь реализует принцип FIFO (First In, First Out). Элементы добавляются в конец очереди, а извлекаются из начала.

  • Основные операции:

    • push: Добавляет элемент в конец очереди.

    • pop: Удаляет элемент из начала очереди.

    • front: Возвращает первый элемент очереди.

    • back: Возвращает последний элемент очереди.

    • empty: Проверяет, пуста ли очередь.

#include <iostream>

#include <queue>

int main() {

std::queue<int> q;

q.push(1);

q.push(13);

std::cout << q.front() << "\n"; // Выводит первый элемент (1)

std::cout << q.back() << "\n"; // Выводит последний элемент (13)

q.pop(); // Удаляем первый элемент (останется только 13)

if (q.empty()) {

std::cout << "Queue is empty\n";

}

}

Особенности:

  • По умолчанию используется std::deque, но можно заменить его на другой контейнер, поддерживающий операции push_back, pop_front и т. д.


3. std::priority_queue

Очередь с приоритетами позволяет быстро получать максимальный (или минимальный) элемент. Она основана на структуре данных "куча".

  • Основные операции:

    • push: Добавляет элемент в очередь.

    • pop: Удаляет максимальный элемент.

    • top: Возвращает максимальный элемент без его удаления.

    • empty: Проверяет, пуста ли очередь.

#include <iostream>

#include <queue>

int main() {

std::priority_queue<int> pq;

for (int x : {3, 14, 15, 92, 6, 0, 1, 10}) {

pq.push(x);

}

while (!pq.empty()) {

std::cout << pq.top() << "\n"; // Выводит элементы в порядке убывания

pq.pop();

}

}

Особенности:

  • По умолчанию используется std::vector для хранения данных.

  • Можно изменить порядок сортировки, передав третий параметр, например, std::greater<int> для получения минимального элемента.


Представления

1. std::string_view

std::string_view — это легковесная обертка над строкой, которая позволяет работать с подстроками без создания их копий. Она не владеет памятью, а лишь ссылается на существующую строку.

  • Преимущества:

    • Быстрее, чем создание новой строки (std::string).

    • Экономит память, так как не копирует данные.

#include <iostream>

#include <string>

#include <string_view>

int main() {

std::string s = "Hello, world! How do you do?";

std::string_view sv = s; // Создаем string_view для строки s

auto sub = sv.substr(7, 5); // Выделяем подстроку "world"

std::cout << sub << "\n"; // Выводит "world"

std::cout << s << "\n"; // Исходная строка не изменилась

}

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

  • std::string_view не позволяет изменять строку.

  • Ссылается на исходную строку, поэтому если строка уничтожается, string_view становится невалидным.


2. Пример некорректного использования std::string_view

Если исходная строка выходит из области видимости, string_view теряет доступ к данным:

#include <iostream>

#include <string>

#include <string_view>

#include <vector>

int main() {

std::vector<std::string_view> lines;

for (int i = 0; i < 5; ++i) {

std::string line;

std::getline(std::cin, line);

lines.push_back(line); // string_view ссылается на временную строку

}

for (auto item : lines) {

std::cout << item << "\n"; // Ошибка! Строки уже уничтожены

}

}

Решение: Используйте std::string, если данные должны сохраняться после выхода из области видимости.


3. std::span

std::span — аналог std::string_view, но для массивов или векторов. Он предоставляет доступ к непрерывной последовательности элементов в памяти.

#include <iostream>

#include <vector>

#include <span>

int main() {

std::vector<int> v = {1, 2, 3, 4, 5};

std::span<int> span(v); // Создаем span для вектора

for (int x : span) {

std::cout << x << " "; // Выводит элементы вектора

}

}

Особенности:

  • Не владеет данными.

  • Может использоваться для работы с подмассивами.


Заключение

Адаптеры и представления позволяют работать с данными более эффективно:

  • Адаптеры (std::stack, std::queue, std::priority_queue) предоставляют специализированный интерфейс для работы с контейнерами.

  • Представления (std::string_view, std::span) позволяют избежать ненужных копирований данных, но требуют осторожности при работе с временными объектами.

Задачи на std::stack

  1. Обратный порядок слов
    Напишите программу, которая принимает строку текста и выводит слова в обратном порядке, используя std::stack.
    Пример:
    Ввод: "Hello world from C++"
    Вывод: "C++ from world Hello"

  2. Проверка правильности скобок
    Напишите программу, которая проверяет, правильно ли расставлены скобки в строке (круглые, квадратные и фигурные). Используйте std::stack.
    Пример:
    Ввод: "{[()()]}" → Вывод: "Правильно"
    Ввод: "{[(])}" → Вывод: "Неправильно"

  3. Калькулятор с обратной польской записью
    Реализуйте калькулятор, который вычисляет выражения в обратной польской записи (RPN). Например:
    Ввод: "3 4 + 2 * 7 /" → Вывод: 2


Задачи на std::queue

  1. Симуляция очереди в банке
    Напишите программу, которая моделирует очередь клиентов в банке. Каждый клиент имеет номер. Программа должна позволять добавлять новых клиентов в очередь и обслуживать их по принципу FIFO.
    Пример:
    Ввод:

    add 1

    add 2

    serve

    Вывод: "Client 1 served"

  2. Поиск минимального элемента в очереди
    Напишите программу, которая находит минимальный элемент в очереди за один проход. Используйте только операции push, pop и front.

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


Задачи на std::priority_queue

  1. Топ-N самых больших чисел
    Напишите программу, которая находит N самых больших чисел из потока данных. Используйте std::priority_queue.
    Пример:
    Ввод: N = 3, данные = {5, 1, 9, 2, 8, 3} → Вывод: {9, 8, 5}

  2. Сортировка задач по приоритету
    У вас есть список задач с приоритетами. Напишите программу, которая обрабатывает задачи в порядке убывания приоритета.
    Пример:
    Ввод:

    Task1 Priority=3

    Task2 Priority=1

    Task3 Priority=2

    Вывод:

    Task1

    Task3

    Task2

  3. Минимальная куча
    Реализуйте минимальную кучу с помощью std::priority_queue и напишите программу, которая выводит элементы в порядке возрастания.


Задачи на std::string_view

  1. Подсчет подстрок
    Напишите программу, которая подсчитывает количество вхождений заданной подстроки в строку, используя std::string_view.
    Пример:
    Ввод: "Hello world", "o" → Вывод: 2

  2. Разбиение строки на слова
    Напишите программу, которая разбивает строку на слова, используя std::string_view.
    Пример:
    Ввод: "Hello world from C++" → Вывод:

    Hello

    world

    from

    C++

  3. Проверка префикса и суффикса
    Напишите программу, которая проверяет, начинается ли строка с заданного префикса и заканчивается ли заданным суффиксом, используя std::string_view.
    Пример:
    Ввод: "Hello world", prefix="Hello", suffix="world" → Вывод: "Да"


Задачи на std::span

  1. Сумма элементов массива
    Напишите программу, которая вычисляет сумму элементов массива или вектора, используя std::span.
    Пример:
    Ввод: {1, 2, 3, 4, 5} → Вывод: 15

  2. Поиск максимального элемента
    Напишите программу, которая находит максимальный элемент в массиве или векторе, используя std::span.

  3. Реверс части массива
    Напишите программу, которая переворачивает часть массива, используя std::span.
    Пример:
    Ввод: {1, 2, 3, 4, 5}, start=1, end=4 → Вывод: {1, 4, 3, 2, 5}


Комбинированные задачи

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

  2. Стек с поддержкой минимума
    Реализуйте стек, который поддерживает операцию получения минимального элемента за O(1). Используйте два std::stack.

  3. Анализ логов
    Напишите программу, которая анализирует лог-файл и выводит топ-N самых частых сообщений. Используйте std::unordered_map для подсчета частот и std::priority_queue для выбора топ-N.

  4. Работа с подстроками
    Напишите программу, которая находит самую длинную подстроку без повторяющихся символов, используя std::string_view.

  5. Многомерные массивы
    Реализуйте функцию, которая работает с двумерным массивом через std::span. Например, найдите сумму всех элементов или максимальный элемент.

Показать полностью

Дизайн-проект квартиры в ЖК «SOUL (Соул)» в Москве: современный интерьер с игрой текстур и оттенков

Дизайн-проект квартиры в ЖК «SOUL» в Москве воплотил идеи современного стиля, где акцент сделан на сочетании текстур и глубине деталей. Квартира площадью 101 м² превратилась в гармоничное пространство, отвечающее запросам активной молодой семьи. Перепланировка не понадобилась, но грамотное зонирование и интеграция архитектурных особенностей позволили подчеркнуть функциональность и эстетику каждого уголка. Интересно, как это получилось? Давайте рассмотрим интерьер по зонам.

Дизайн интерьера квартиры в ЖК «Соул», кухня-гостиная в минималистичном стиле от студии дизайна Artum.

Дизайн интерьера квартиры в ЖК «Соул», кухня-гостиная в минималистичном стиле от студии дизайна Artum.

Маша Черная, арт. директор студии дизайна Artum.

Маша Черная, арт. директор студии дизайна Artum.

Каждый проект в студии Artum — это отражение характера клиента, выполненное на высшем уровне. Ознакомьтесь с нашим портфолио и найдите интерьер, который вдохновит вас.

Посмотреть портфолио 👈


Содержание:

📍 Планировка квартиры в ЖК «SOUL»

📍 Дизайн интерьера кухни-гостиной

📍 Интерьер мастер-спальни

📍 Интерьер второй спальни

📍 Дизайн интерьера кабинета

📍 Ванная комната в мастер-спальне

📍 Вторая ванная комната

📍 Особенности дизайна в ЖК «SOUL»


Планировка квартиры в ЖК «SOUL»

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

Планировка.

Планировка.


Дизайн интерьера кухни-гостиной

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

Визуализация кухни.

Визуализация кухни.

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

Визуализация гостиной.


Интерьер мастер-спальни

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

Визуализация мастер-спальни.

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

Рассчитать стоимость проекта


Интерьер второй спальни

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

Визуализация спальни.

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


Дизайн интерьера кабинета

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

Визуализация кабинета.

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


Ванная комната в мастер-спальне

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

Визуализация санузла в мастер-зоне.


Вторая ванная комната

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

Визуализация ванной комнаты.

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


Особенности дизайна в квартире в ЖК «SOUL»

Ремонт квартиры в ЖК «SOUL» в Москве — пример современного интерьера, где стиль и функциональность переплетаются в единое целое. Геометрические панели, натуральные текстуры дерева и мраморные акценты придают пространству выразительность и глубину. Светлая палитра оттенков подчёркивает простор, а акцентные элементы добавляют интерьеру динамики и характера.

Мы стремились создать интерьер, который гармонично объединяет эстетику и удобство. Этот проект стал отличным примером того, как текстуры могут задать настроение всему пространству.

👉 Запишитесь на бесплатную консультацию дизайнера на объекте и получите расчет стоимости вашего проекта.

Рассчитать стоимость проекта 👈

Показать полностью 19
Мои подписки
Подписывайтесь на интересные вам теги, сообщества, авторов, волны постов — и читайте свои любимые темы в этой ленте.
Чтобы добавить подписку, нужно авторизоваться.

Отличная работа, все прочитано! Выберите