Метка «switch»

Дата центр циклопических размеров и Tier IV, как это может быть? Знакомьтесь — SuperNAP 8

Читать полностью »

Трафик приложений в сети предприятия постоянно растет, а с развитием виртуализации появляются новые решения и сервисы, для которых рекомендуемые скорости интерфейсов на оборудовании уже составляют 10Гбит/c. Для малого и среднего бизнеса на сегодняшний день выгодно использовать технологию Ethernet — как для подключения пользователей, серверов, телефонии и прочего, так и для подключения систем хранения, т.е. организации SAN. В данной статье представлен обзор коммутаторов с 24 10Gb оптическими портами. Для сравнения мы взяли 5 коммутаторов ведущих производителей:
Читать полностью »

Читая посты на Хабре, наткнулся на такой вопрос. В комментариях были предложены решения, но ни одно не подходило автору в виду накладных расходов на вызовы функций. И тогда я задумался, а действительно почему бы не использовать обычный switch, рассчитывая из двух параметров один хеш, который и использовать в switch. Но глянув на пример автора вопроса внимательнее я понял, что такой вариант просто так не пройдет, так как надо отлавливать default вложенных switch'ей.
Читать полностью »

Да, это целая статья по самому обычному switch в JDK 7. Бывает так, что накопленный материал кажется интересным и малоизвестным, а потом оказывается, что любая бабка у подъезда уже 50 лет знает об особенностях реализации switch. Но я попробую. Для затравки, предлагаю 3 вопроса:

  1. (Простой) Каков результат работы этого кода?
    switch(5){
    default: System.out.print(0);
    case 1: System.out.print(1); break;
    case 4: System.out.print(4);
    case 2: System.out.print(2);
    }

  2. Следующие 2 варианта практически одинаковы. Немного отличаются литералами.
    //Вариант 1
    switch("BBBBBB"){
    case "AaAaAa": break; 
    case "AaAaBB": break;
    case "AaBBAa": break;
    case "AaBBBB": break;
    case "BBAaAa": break;
    case "BBAaBB": break;
    case "BBBBAa": break;
    case "BBBBBB": break;
    }
    //Вариант 2
    switch("BBBBBB_8"){
    case "AaAaAa_1": break;
    case "AaAaBB_2": break;
    case "AaBBAa_3": break;
    case "AaBBBB_4": break;
    case "BBAaAa_5": break;
    case "BBAaBB_6": break;
    case "BBBBAa_7": break;
    case "BBBBBB_8": break;
    }

    Почему первый switch выполняется в несколько раз медленнее, по крайней мере, с отключенным JIT (-Djava.compiler=NONE)? Сами проверьте в цикле! JIT таким кодом не проведешь, но если немного пошаманить, то небольшая разница будет заметна.

  3. Какова вычислительная сложность алгоритма нахождения совпадающего значения среди n case-ов (по крайней мере, в JDK 7)?

Читать полностью »

К сожалению, стандарт C++ не допускает применения операторов switch-case к строковым константам. Хотя в других языках, вроде C#, такая возможность имеется прямо «из коробки». Поэтому, понятное дело, многие C++ программисты пытались написать свою версию «switch для строк» — и я не исключение.
Для C++03 решения не отличались красотой и лишь усложняли код, дополнительно нагружая приложение в рантайме. Однако с появлением C++11 наконец-то появилась возможность реализовать такой код:

   std::string  month;
   std::string  days;

   std::cout << "Enter month name: ";
   std::cin  >> month;

   SWITCH (month)
   {
      CASE("february"): days = "28 or 29"; break;

      CASE("april"):
      CASE("june"):
      CASE("september"):
      CASE("november"): days = "30"; break;

      CASE("january"):
      CASE("march"):
      CASE("may"):
      CASE("july"):
      CASE("august"):
      CASE("october"):
      CASE("december"): days = "31"; break;

      DEFAULT: days = "?"; break;
   }

   std::cout << month << " has " << days << " days." << std::endl;

Реализация этой конструкции весьма проста. Она основана на constexpr-функциях из C++11, благодаря чему почти все вычисления производятся ещё на этапе компиляции. Если кого-то интересуют её детали, добро пожаловать под кат — благо на Хабре о «switch для строк» почему-то ничего не сказано.
Читать полностью »

H3C: Производительный коммутатор с пол пинкаВ содружестве HP и 3Com родилось аббревиатурное имя для активного сетевого оборудования — H3C. В золотой середине из гигабитной линейки коммутаторов производителя оказался H3C S5120SI.
Не смотря на подробное и захватывающее чтиво User Guide и Command Reference в объеме 800 страниц каждая, настройку и управление можно уложить в 4 листа, доступно для обывателя.
Советы по первичной настройке, под катом.
Читать полностью »

Рад поделиться новостью о начале проекта с народным финансированием «Андроид розетка»!
image

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

Приветствую! Это статья об истории (надеюсь) начала еще одного «инновационного» проекта.

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

Итак, история

Я работаю аналитиком в одной софтверно-телекомовской компании и имею хороший опыт формулирования, структуризации бизнес и системных требований. Однако, чистая аналитика пока не позволяет человеку получать готовые результаты даже несмотря на то, что позволяет вполне детально спроектировать решение какой-нибудь задачи. В прошлом году решил изучить прикладной язык программирования и начал с Java. Нашел давно заброшенный мною курс основ этого языка на intuit и дочитал. Был приятно удивлен, как быстро изучается язык, когда есть хорошая база UML.

Чтобы знания были не ради знаний я решил по окончанию курса лекций написать что-то полезное для общественности — начал с программы для андройд. Для этого изучил его фрэймворк и сделал простейшую программу PIN card для напоминания пин-кодов с помощью парольной карты (хороший реализаций на андройде не нашел — решил сделать). За пол года скачали 50 человек за доллар.
Читать полностью »

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

Передо мной встала задача сделать зарезервированный канал между двумя географически разделенными сегментами сети. Географически они разделены на 2 здания между которыми была прокинута медная витая пара 100Мб/с и оптика 1000Мб/с. Задача состоит в том, чтобы при отключении оптики автоматически включилась медная витая пара. Отключение может произойти из-за низкой надежности оптических конверторов (они довольно старые и глючные, подлежат замене).

Данное решение сделано на 2х коммутаторах D-Link DSG-1261T, а зарезервировал канал я с помощью Spannignx Tree Protocol. Кому интересно добро пожаловать под кат!
Читать полностью »

DIY или Сделай Сам / Как из китайского роутера сделать управляемую розетку, или ещё один проект для умного дома и офиса
Последнее время на Хабре всё больше статей на тему «Умный Дом», «Сделай Сам», и меня это радует. Внесу и я свой скромный вклад в развитие цивилицазии. Добро пожаловать в мир умных вещей!
Краткая предистория

Сначала был хаос… Пропустим этапы сотворения мира и эпоху динозавров и перейдём сразу к 21 веку. Кругом беспроводные технологии, электроника повсюду, космические корабли летят к Марсу…
Открыв для себя китайские интернет-магазины разных товаров, я накупил всякого добра. В частности, были куплены наборы для дистанционного управления лампочками: пультик и к нему несколько коробочек. В результате я сделалЧитать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js