Архив за 18 ноября 2014 - 2

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

Вместо новых инвестиций, оба производителя сконцентрируются на получении максимальной прибыли. Представитель Samsung заявил, что компания не намерена дестабилизировать рынок за счёт расширения производственных мощностей. SK Hynix от комментариев отказалась, но источник утверждает, что объёмы инвестиций производителя практически не изменятся по сравнению с нынешним годом, а стратегия компании аналогична таковой у конкурента.

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

Китайская компания Everdisplay, у которой готовы прототипы дисплеев AMOLED для носимой электроники, по сообщению источника, как и было намеченоЧитать полностью »

Стандарт C++11 привнес в язык такую вещь, как пользовательские литералы[1]. Конкретно — дюжину вариантов для определения оператора "", добавляющих небольшой синтаксический сахар, всех, за исключением одного — шаблонного варианта:

template <char...> type operator "" _op();

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

Например:

auto x = 10001000100011001001001010001000_b;

Однако при разработке стандарта было допущено небольшое упущение — шаблонный вариант пользовательского литерала позволяет работать только с числовыми аргументами, несмотря на то, что парсинг их осуществляется посимвольно.
Такое упущение, конечно же, не могло остаться не замеченным, и на этапе согласования стандарта C++14 было предложено решение для строковых аргументов[2]

template <typename CharT, CharT ...String> type operator "" _op();

В скором времени было реализовано в компиляторах GCC[3] и clang (GNU extension). Однако в финальную редакцию стандарта C++14 так и не попало. Впрочем, не будем отчаиваться, есть надежда, что нас обрадует C++17. А пока посмотрим, как можно будет применять новый тип пользовательских литералов.
Читать полностью »

Эскимо — новый Node.js бойлерплэйт для быстрого прототайпинга (MVP).

Даже если интернет заполнен разными бойлерплэйтами и фрэймворками, на нынешний день отсутствует современный, модульный и минимальный бойлерплэйт для запуска прототипов (специально для строительства rapid minimal product-ов «RMVP's»). Проект создается с малого, одним человеком, но потом, под влиянием вкладчиков, он растет до непредсказуемых размеров. Поиск в Google и GitHub про Nodejs бойлерплэйт и Nodejs фрэймворк дает сотни результатов.

Но многие из этих запускателей проектов не имеют автоматизации для развертывания и тестирования продуктов. Некоторые игнорируют практику фронт-энда и не используют Bower, Bootstrap, Font Awesome, S3/CloudFront, clustering и LESS. И ни один бойлерплэйт или фрэймворк не внедрили инъекцию зависимостей с помощью электролита, за исключением Эскимо и проекта Джареда Хэнсона.
Читать полностью »

Основы цифрового звука - 1

Прим. перев.: сегодня мы публикуем перевод статьи из блога Итана Хайна – адъюнкт-профессора по направлению «музыкальные технологии» из Нью-Йоркского Университета. Мы уже публиковали перевод одной из его статей (о визуализации музыки) и решили продолжить эту серию материалом об основах цифрового аудио (эта статья затрагивает базовые моменты превращения аналогового звука в цифровой и будет интересна в первую очередь тем, кто не знаком с этим процессом). Данная тематика обсуждалась и в одном из наших подкастов.Читать полностью »

На проходящем сейчас в Мюнхене мероприятии Fujitsu Forum компания Fujitsu представила передовое решение для биометрической аутентификации по уникальному рисунку кровеносных сосудов ладони. Продажи устройства Fujitsu PalmSecure ID Match, предназначенного для защиты доступа, информации и финансовых операций, стартуют в начале 2015 года. Первыми его смогут приобрести заказчики, расположенные в регионе EMEIA (включает Европу, Ближний Восток, Индию и Африку).

Компания Seasonic решила напомнить нам о приближении зимы новым блоком питания Snow Silent 1050. Он окрашен в необычный для компании белый цвет целиком, даже с кнопкой включения, вентилятором и разъемом сетевого кабеля. При весьма внушительной мощности 1050 Вт новинка имеет фирменную гибридную систему контроля оборотов S3FC, которая включает вентилятор только при нагрузке на блок в 50% или выше. В работе 120-миллиметровый вентилятор с гидродинамическими подшипниками также обещает оказаться достаточно тихим.

Сегодня было объявлено, что Opera Mobile Store заменит Nokia Store в качестве магазина приложений по умолчанию для телефонов Nokia, смартфонов Symbian и Nokia X. Соответствующее соглашение заключили компании Opera Software и Microsoft.

В опубликованном по этому случаю пресс-релиз сказано, что, начиная с первого квартала 2015 года, пользователи, посещающие Nokia Store с устройств Series 40, Series 60, Symbian, Asha и Nokia X, будут автоматически перенаправляться в магазин приложений Opera Mobile Store.

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

При реализации логгирования, задачи для себя были поставлены следующие:

  • Решить задачу на «мета-уровне», чтобы быть отвязанным от конечной реализации
  • Фронтенд апи для логгирования должен быть простым и прозрачным
  • Иметь возможность выключать ненужные уровни логгирования на этапе компиляции одной константой; например: все что выше LOG_NOTICE не должно попасть в результирующий бинари

Фронтенд выглядит так:

1. В конструкторе CConnection мы логгируем:

TestLog::Log<LOG_NOTICE>() << *this << "connection created";

2. Где CConnection унаследован от

public TLogHeader<'c', CConnection>

3.Который, используя CRTP, знает, что в CConnection есть такое:

	using this_t = CConnection;
	int m_id;           using m_id_t = TParamAccessor<this_t, decltype(this_t::m_id), &this_t::m_id>;
	std::string m_name; using m_name_t = TParamAccessor<this_t, decltype(this_t::m_name), &this_t::m_name>;
    char m_state;       using m_state_t = TParamAccessor<this_t, decltype(this_t::m_state), &this_t::m_state>;
	using log_header_param_list_t = std::tuple<m_id_t, m_name_t, m_state_t>;

3. И превращает эти данные в строчку лога:

c:23:test_conn 1:a:connection created

Где через двоеточие перечислены: с — первый параметр шаблона TLogHeader, и далее значения m_id, m_name, m_state

В моем случае все это дальше пишется в rsyslog и там разбирается в соответствующие поля для MongoDB (в зависимости от типа заголовка, т.е. первый параметр до двоеточия).

Сейчас этот подход у меня в продакшене на высоконагруженной системе, так что любые конструктивные камни будут в пику, или лучше под кат. А если лень, то вот работающий пример на http://coliru.stacked-crooked.com/ т.к. по катом кода на 250 строк, но очень много букв в описании.
Читать полностью »

NASA опубликовало карту появления болидов в атмосфере Земли - 1

Несмотря на достаточно частое употребление термина «болид» в научной и научно-популярной литературе, официального определения этого понятия нет. Во всяком случае, нет такого определения у Международного астрономического союза. По уже приведенной выше ссылке на Вики «болид» определяется как метеор яркостью не менее −4m (ярче, чем планета Венера), либо имеющий заметные угловые размеры.

У NASA для термина «болид» схожее определение, специалисты агентства называют так очень яркие метеоры, следствие практически полностью сгорающих в атмосфере Земли небольших астероидов. Так вот, на днях специалисты NASA опубликовали карту появления болидов в атмосфере Земли, с 1994 года по 2013.
Читать полностью »


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