Рубрика «case»

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

Такие запросы любят «кушать» процессорное время и активно почитывать данные практически на ровном месте. Причем, это вовсе не обязательно какие-то сложные запросы, наоборот — чем проще он написан, тем больше шансов получить проблемы. А уж если в дело вступает оператор JOIN…

PostgreSQL Antipatterns: редкая запись долетит до середины JOIN - 1

Само по себе соединение таблиц не вредно и не полезно — это просто инструмент, но и пользоваться им надо уметь.
Читать полностью »

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

С год назад мне достался компьютер где-то конца девяностых в очень компактном корпусе. Это не первый компактный компьютер из тех времён, который я встречаю, но это была первая встреча с форм-фактором NLX — попыткой создать новый стандарт компактных корпусов.
Ретро-компьютер в корпусе NLX - 1

Расскажу немножко про формат, а потом и про сам компьютер.
Читать полностью »

Метод CASE: гуманный мониторинг - 1
Дзииииииинь! На часах 3 утра, вы смотрите чудесный сон, и вдруг — звонок. На этой неделе вы дежурите, и, видимо, что-то случилось. Автоматизированная система зовет разобраться, в чем дело. Это важный момент управления современными компьютерными системами, но давайте посмотрим, как сделать уведомления удобнее для людей.

Знакомьтесь с философией мониторинга, родившейся за несколько десятилетий моих дежурств в разных командах по мониторингу. На нее во многом повлияла настоящая библия от Роба Еващука My Philosophy on Alerting (Моя философия уведомлений), включенная в книгу по Google SRE, и книга Джона Олспо Considerations for Alert Design (Замечания по настройке оповещений).

Келли Данн, Ариджит Мукхерьи и Максим Петаццони — спасибо за помощь в редактировании поста.

Что такое CASE?

Я решил придумать красивую аббревиатуру, как у метода USE Брендана Грегга или метода RED Тома Уилки. Я зову это метод CASE. Он описывает четыре момента, на которые нужно обратить внимание при работе с автоматическим мониторингом:

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

«Приходят военные, просят напечатать какую-то штуковину размером со спичечный коробок, сразу покупают принтер и пропадают» из разговора с поставщиками 3d-принтеров

Кейс 3d печати из металла (DMLS): микрореактор для нефтепереработки

На фотографии справа — твит Элона Маска о том, что они напечатали деталь ракетного движка из жаропрочного никель-хромового сплава (Inconel) на 3d-принтере EOS.

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

О том как обстоят дела в мире с сервисами 3d-печати я уже писал на Хабре, с тех пор я заинтересовался на что способны 3d-принтеры по металлу. Для начала я попытался найти в Москве место, где можно потрогать/пофотать это устройство, но столкнулся со сложностями, мол 200 000€, а вы с немытыми руками, либо эти принтеры находятся на территории военных/космических объектов, что без допуска туда нельзя.

Но нашлись питерские коллеги, которые поделились информацией, как они создавали микрореактор на 3d-принтере (от той же фирмы что и у Элона Маска).

Кейс от санкт-петербургского сервиса по 3d-печати:

Заказчик: российская компания нефтеперерабатывающей отрасли
Заказ: микрореактор для нефтепереработки
Требования: температура до 600С, давление до 100 атмосфер, работа в среде водорода и углеводородов, срок эксплуатации — 12 лет.



Подробнее про технологию DMLS,
про принтер EOS M290
и про микрореактор
Читать полностью »

К сожалению, стандарт 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 для строк» почему-то ничего не сказано.
Читать полностью »

Разобьёте iPhone в этом чехле — получите новый бесплатно
Таков лозунг рекламной кампании нового защитного чехла Cellhelmet от компании Cellpig. Всё начиналось как проект на Kickstarter`e, но теперь продукт пошел в массовое производство и доступен в магазинах.Читать полностью »


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