Выбор светодиодных ламп. 3. Спектры источников света

В идеале для оценки качества спектра излучения лампы необходим спектрофотометр. В крайнем случае можно использовать спектрофотометры для профилирования/калибровки мониторов (например, ColorMunki) — если такое устройство у вас есть. Покупать же спектрофотометры домой для оценки ламп нет никакого смысла, они стоят от сотен до десятков тысяч долларов.
Тем не менее, для нужд геологов и ювелиров выпускают простейшие спектроскопы на основе диффракционной решетки. Их стоимость от 1200 до 2500 руб. И это забавная и полезная штука.
Читать дальше →

[Из песочницы] Сериализация данных: тест производительности и описание применения

Сериализация

Сериализация (Serialize, в последующем «сохранение») – это процесс сохранения данных объекта во внешнем хранилище. Эта операция работает в паре с обратной – восстановлением данных, называемой десереализацией (Deserealize, в последующем «восстановление»).

Операции сохранения и восстановления данных применяются очень часто. В классических языках программирования готовых механизмов для сохранения и восстановления данных объектов нет и, при возникновении такой необходимости, приходится создавать их самостоятельно. В Java такие готовые механизмы существуют и, даже, в количестве более одного. Давайте разберемся, какие механизмы есть и какие возможности они предоставляют для программ на Kotlin.

Само понятие сериализации никак не привязано к формату данных, в который будут сохранены данные, поэтому вне зависимости от того, какой результат будет получен – бинарный файл с собственной структурой, формат XML, JSON или даже текстовый файл – все это будет сериализацией.

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

Но, помимо работы с элементарными типами, в Java существует несколько разных типов готовых механизмов для сохранения данных классов и множество библиотек, реализующих работу с одними и теми же форматами, отличающихся друг от друга производительностью, объемом и предоставляемыми возможностями.

Ниже будут рассмотрены типовые способы сохранения данных: встроенные в стандартную библиотеку Java, а так же сохранение в формате XML и JSON.

Читать дальше →